明けましておめでとうございます。

あけましておめでとうございます。

本年もtxt2exoや、てさぐれOP検証動画(これ以上作るかわからない)などよろしくお願いします。

 

せっかくなので、2015-01-01 0:00:00投稿動画の速報(567件)を出しておきますので、何かの役に立てば幸いです。

2015年01月01日0時0分0秒投稿動画

今のところ削除動画は含んでいないつもりですが、すでに削除されている場合はご了承ください。

 

また確定版は気が向けば出します。

近況とか

寒くなってきましたね。私は風邪をひきました。

2014年秋アニメの放送がはじまってようやく折り返し地点というところですが、今期は豊作すぎて他のことをする時間が取れないという悲劇…

最近の状況を1文で書くと、
円盤を追い出す活動は少し落ち着いたけれど、他にもバーテックスやアルティメギルと戦ったり、経営建て直ししたり、ちょっとハッピープロジェクトに参加してみたり、他にもピアノ弾かされたりいろいろしてたら、にゃんめるが車に轢かれて万策尽きたー
という感じです。

具体的に書くと、「天空のメソッド」「俺、ツインテールになります。」「結城優奈は勇者である」「甘城ブリリアントパーク」「大図書館の羊飼い」「四月は君の嘘」「グリザイアの果実」「SHIROBAKO」などなど観てるということです。

毎クール恒例になりつつあるよくあるOP検証動画シリーズですが、上の理由もあり2014年秋アニメ編は全く手を付けていないので、投稿時期はさながら制作するかどうかも不明です。

もし作るとなれば、クリスマスぐらいには完成させたいですね。←やる気の欠片も見えない

私としては他の方にも作っていただきたいです。他人の採点基準も気になる。

こうは言いましたが少しずつ作っていこうと思います、よろしくお願いします。

 

次はtxt2exoの話。

この頃C言語の勉強を始めたので、時期を見て書き直したいと考えています。今はHSP。

 

さらに次はニコニコ関連の話題。

最近これにつきっきりでして、ずっとPHPにかかりきりです。データベースの勉強を兼ねてニコログを始めたのですが、ほんとはもっと大規模なサイトを考えています。

現在公開されているのは、カテゴリ合算24時間総合ランキングTop100の各動画直近168件のタグ履歴ですが、ローカルサーバー内では、他に各動画のタグ・動画タイトル・動画説明文履歴(2014/7/23以降)や、ユーザー/チャンネル毎の投稿動画一覧、投稿日時動画検索など、いろいろな機能があるのである程度まとまったら公開しようと考えています。

ただデータベース容量(現時点で33.5GB)や、サーバーの用意など課題は山積しているので実現は不透明。

あとはデータベースの設計上タグ検索が難しく、最近割と唸ってますw もうちょっと頑張ってみます。

 

最後に…

ハナヤマタのOP/ED発売記念イベント(10/25@大阪日本橋)に行ってきたのですが、楽しかったです。また機会があれば行ってみたいですね♪

キャラソンの発売記念イベントも行けたらいいな。

ニコニコ動画関連サイトまとめ

ニコニコ動画はAPIも提供されていて、それを利用したウェブサイトも多く存在します。ちょっと気になったのでどれくらいあるか軽く調べてみました。(APIを利用していないサイトも含む)

 

軽く探しただけでこれだけあったので、実際にある数はどうなんでしょうね。ちなみにこっそり自分のサイトも混ぜておきました(笑)

個々のサイトの特長なども紹介したいのですがなにせ数が多いのでやめておきます。少し書くならばニコニコチャートやnicozonは個人的には昔からあるイメージがありますし、ばっちりサーチはコメントから動画の評価を算出できる個性的で面白いサイトだと思います。

また、こういう系のサイトは増えやすく減りやすいというか、今日存在していても明日には無くなっているものもあるかもしれませんね。とりあえず今の段階でリンクは全て生きています。

txt2exo Ver0.3.0(ββ)

開発中バージョンの更新については記事を書かないことにしてたのですが、ルビ機能がある程度まとまってきたので。

txt2exoのルビ機能については、0.3.0(β)にて試験実装され、昨日公開の0.3.0(ββ)にて読み込み関連の処理はほぼ完成したといってもよいかもしれません。

ルビ編集については、txt2assのルビ入力同様の操作でルビを入力することが出来ますが、0.3.0(ββ)で以前から多く要望のあったルビ付きタイムタグファイルの読み込みに対応しました。

ただ、私自身がRhythmicaLyricsでルビを入力しないのでうまく動くかは不安です。txt2assで出力したルビ付きタイムタグファイル(*.kra)についてはテストをして、読み込めることを確認していますが、ファイルによってはうまく読み込めない可能性もあります。その場合はコメントでもメールでもいいので連絡していただけるとありがたいです。

txt2exoのルビ機能はまだ読み込み関連が形になっただけであり、レイアウト関連は(ルビに限らず)まだまだです。これからも少しずつ改善していきたいと考えていますので、不満があれば遠慮せずにコメントしていただけると幸いです。

txt2exo Ver0.3.0(ββ)のダウンロードはこちらのページからお願いします。

ニコログ

ニコニコ動画の過去タグ(タグ履歴)閲覧サービス、『ニコログ』を作ってみました。

レンタルサーバーでは更新ができないので、1時間毎にデータを更新します。

今のところ対象動画は総合ランキング (毎時・カテゴリ合算)のTop100動画で、ランキングから外れると削除されます。

http://www.nicolog.jp/

URLは上の通りとなっています。

試験運用中のため、予告なくサービスを中断したり、中止したりする場合があります。

タイトルや、動画説明の変更も記録しているのでいつか公開してみようと思っています。

何かご意見等ありましたらお気軽にコメントください。

ニコニコ動画のタグの話とか

ニコニコ動画のタグって面白いんだけれども、履歴が見られないという欠点があったりしまして、どうにかならないかなぁと思ったりもします。

ニコタグっていうサービスもあったんだけど、時系列的変化が分からないというか、なんかいまいちだなぁと思うわけでして…

そんなこともあってローカルでニコニコ動画のタイトル・タグ・動画説明文の履歴が見れるようにしてみたんですね。さすがに全部の動画はとれないので、各カテゴリの毎時ランキングTOP100の最新と1時間前、あと新着動画だけですが…

公開するのもいいかなーとも思いつつ、結構サーバーが重くなるし、データベースが容量を半端無く食うので外部に置けないということになり、自宅サーバーかなぁとか考えたり…でも電気代が………

ちょっといい案あったらお願いします。ちなみにPHP+MySQLです。

とりあえず、7/25以降のデータはありますので、メールとかしてくれたら送るかもしれません。

sm24086442 – Daydream cafe ご注文はチノですか full

↑2014/8/4 9時時点のサンプルですが、眺めているだけでもなかなかおもしろいです。
他にも動画説明文の履歴も残ってたり。

でもよくよく考えたら怖いシステムかもしれません。もし説明文が原因で荒れて書き換えてもログが残ってるという………

取得にはgetthumbinfoとなんか名前分からないAPI使ってます。

まぁそんな感じで。

他愛もない話でした。

 

[追記]

sm1097445 【初音ミク】みくみくにしてあげる♪【してやんよ】

これ、時間ごとに「朝みっく」「昼みっく」「夕みっく」「夜みっく」「深夜みっく」とタグが書き換わっているんですが、「夕みっく」と「深夜みっく」は気まぐれで、つかない日も割とあるんですね。

HSPで文字を縁取りする

久しぶりにHSP触りました。

txt2exoのプログラムで少しきになるところがあった(プレビューの縁取り)ので、そこをモジュール化してみました。

実際はもう少し違うプログラムですが、ここでは文字の縁取り部分だけです。

#module
#deffunc fuchimes str a , int n, int r , int g , int b
bold = n
color_r = r : color_g = g : color_b = b

;色範囲を0~255に制限
if color_r > 255 : color_r = 255
if color_g > 255 : color_g = 255
if color_b > 255 : color_b = 255
if color_r < 0 : color_r = 0
if color_g < 0 : color_g = 0
if color_b < 0 : color_b = 0

if bold < 0 : bold = 0

;現在のカラーコードを一時保存
ncolor_r = ginfo_r
ncolor_g = ginfo_g
ncolor_b = ginfo_b

redraw 0

;縁描画
color color_r,color_g,color_b
pos ginfo_cx-boid , ginfo_cy-boid
repeat bold*2+1 ;縦移動
	cposy_x = ginfo_cx : cposy_y = ginfo_cy
	repeat bold*2+1 ;横移動
		cposx_x = ginfo_cx : cposx_y = ginfo_cy
		mes a
		pos cposx_x+1 , cposx_y
	loop
	pos cposy_x , cposy_y+1
loop

;中心文字描画
color ncolor_r,ncolor_g,ncolor_b
pos cposy_x+bold , cposx_y-bold
mes a

redraw 1

return
#global

fuchimes "Hello World!",5,100,140,235

fuchimes “文字列”,縁の太さ,カラーコードR,カラーコードG,カラーコードB

文字色は現在の色設定、縁の色はfuchimes命令中で指定した色です。

まぁグーグル先生にかかればこんなの他にいくらでも見つかると思います。

多分これよりも処理が早いものもあると思いますが、頻繁に書き換えないのならこれでいい気もします。

あと、改行を含んでも大丈夫だと思います。

参考になれば。

あらかじめ色を指定(ここでは、255,255,128)しておくとこんな感じになる

てさぐれ!部活もの OP検証動画《春アニメ編》解説①


いつもならだいたいアニメが始まって1ヶ月程度で完成するのだが、今期はM3の放送開始が遅かったり、作品数が多かったりして1ヶ月も伸びてしまった…

今回は動画投稿のためだけにプレミアム会員登録したので、画質が向上していると思います。

さて、実は今回他者様のアニメーションスクリプト以外にいくつか自分でスクリプトを書きました。

  • 採点基準(改変)
  • 彼女がフラグをおられたら(作成)
  • 健全ロボ ダイミダラー(作成)
  • ノーゲーム・ノーライフ(作成)
  • 棺姫のチャイカ(作成) (省略)
  • ラブライブ!(作成)
  • 結果発表(改変)

ここでは自作スクリプトだけ紹介します。

ここではスクリプトをそのまま掲載していますが、暇があればanmファイル(アニメーション効果から選択できるようになる)にしてアップします。

 

彼女がフラグをおられたら

これはテキスト色がころころ変わるスクリプトです。

テキストオブジェクトにて「文字毎に個別オブジェクト」にした上でスクリプト制御で以下のように入力します。

color = {"e40683","5bb431","ef8200","00b3ec",}
selcolor = color[(obj.index+math.floor(obj.time))%4+1]
obj.effect("単色化","color",selcolor,"輝度を保持する",0)

1行目は使用するカラーコードを書き、2行目でcolor配列の中から1つを選び、3行目で単色化フィルタをかけることで色を適用しています。

2行目の「%4」の4は色数を示していますので、色数を増減させる場合は注意してください。

また、今回は変数に時間(小数点以下切り捨て)を指定していますが、乗除することで色の変更速度を調節できます。

 

健全ロボ ダイミダラー

背景の「ミダラ!」の色をランダムに変化させる部分だけですが。

r = string.format("%2x",obj.rand(0,255,1,math.floor(obj.frame/5)+1))
g = string.format("%2x",obj.rand(0,255,1,math.floor(obj.frame/5)+2))
b = string.format("%2x",obj.rand(0,255,1,math.floor(obj.frame/5)+3))
color = r..g..b
obj.effect("単色化","color",color,"輝度を保持する",0)

まず、これは画像ループで個数を増やし、個別オブジェクト化していることに注意してください。

この場合ではフレームを5で割ったものを切り捨てているので、5フレームごとに変化しています。

0-255の範囲を変更すると明るめ/暗め、◯色寄りといったことが出来ると思います。

 

ノーゲーム・ノーライフ

項目の文字が横にほわっと広がるスクリプトです。

アニメOPのスタッフクレジットっぽく作成しました。フレームおくりしながら見るとわかると思いますが、本物とは若干挙動が異なるので注意してください。

また、┌文字列┘という形式で入力されることが前提となっていますのでこの点も注意してください。

time = 0.3
if (obj.time<time) then
  obj.ox = obj.ox*math.sin(math.rad(90*obj.time/time))
end
if (obj.index==0) then
  obj.oy = obj.oy-40
  obj.ox = obj.ox-30-10/time*obj.time
elseif (obj.index==obj.num-1) then
  obj.oy = obj.oy+40
  obj.ox = obj.ox+30+10/time*obj.time
end
if (obj.time>=time) then
  if (obj.index==0 or obj.index==obj.num-1) then
    obj.ox = obj.ox*(1+(obj.time-time)*0.3)
    obj.alpha = 1.2-(obj.time-time)*2
  end
end
if (obj.index>=1 and obj.index<=obj.num-2) then
  bokashi = 20-20/time*obj.time*2+obj.index*2
  if (bokashi>20) then
    bokashi = 20
  end
  obj.effect("ぼかし","範囲",bokashi,"縦横比",0)
end
if (obj.time>=obj.totaltime-0.3) then
  bokashihani = 100/0.3*(obj.time-obj.totaltime+0.3)
  obj.effect("ぼかし","範囲",bokashihani,"縦横比",0)
end

詳しい解説は省きます。

 

ラブライブ!

ラブライブ!でのスクリプトは、スポットライト図形オブジェクト+マスクフィルタとカメラ制御のシャドーを用いてスポットライトを模したものです。

他の場面では役に立ちそうにありません。

x = 270*math.cos(math.pi/2*obj.time)
y = 230*math.cos(math.pi*obj.time+math.pi/2)-580
x2 = 150*math.cos(math.pi/4*obj.time)
y2 = 220*math.cos(math.pi/2*obj.time+math.pi/2)-580
size = 120
obj.effect("マスク","X",x,"Y",y,"サイズ",size,"type",1,"マスクの反転",1)
obj.effect("マスク","X",-x2,"Y",y2,"サイズ",size,"type",1,"マスクの反転",1)

スクリプトを読んでもらえればわかると思いますが、これは高校数学で習うリサージュ曲線の式です。

応用すれば他の用途でも使うチャンスがあるかもしれません。

個人的にはこれの発展形でAviUtl講座の動画でも作ろうかなと考えています。

 

以上、自作アニメーションスクリプトの紹介でした。

ウィッチクラフトワークスED

ちょっとどうでもいいことしたくなった。ほんとに雑記だわ。

ウィッチクラフトワークスEDの横スクロールのシーン繋げたらきれいにできそうと思ってつなげてみた。

クレジット部分をよけながら貼り付けていったら結構大変だった。

wcw_ed1 wcw_ed2

 

結論:時間のムダだった。

HSPで文字に間隔を空けて表示する②

昨日の続きです。

HSP命令リファレンスを眺めていたらsplit命令を見つけたので、字間を空けて表示するモジュールを改良して改行に対応してみました。

#module ;字間で表示命令(改行対応版)
#deffunc jikanmes str a ,int b,int c
_a = a
split _a,"\n",d
cx = ginfo_cx
posx = cx : posy = ginfo_cy
foreach d
	sdim buf,strlen(d(cnt))*2+2
	cnvstow buf,d(cnt)
	repeat
		pos posx,posy
		tmp = wpeek(buf,cnt*2)
		if tmp = 0 : break
		mes cnvwtos(tmp)
		posx = posx+ginfo_mesx+b
	loop
	posx = cx : posy = posy+ginfo_mesy+c
loop
return
#global

jikanmes "あいうえお\nかきくけこ\nさしすせそ",20,30

第2引数が文字間隔、第3引数が行間隔となっています。

改行コードごとに配列に格納し、それぞれ前回と同じ処理をしています。

また、mes命令と同様、あらかじめpos指定しておけば、その点を基準に描画されます。