HomeコンピュータAviUtl › てさぐれ!部活もの OP検証動画《春アニメ編》解説①

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

[nicodo display=”player” width=”550″ height=”330″]sm23722613[/nicodo]
[nicodo display=”player” width=”550″ height=”330″]sm23722646[/nicodo]

いつもならだいたいアニメが始まって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講座の動画でも作ろうかなと考えています。

 

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

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>