SubtitleとAnimateを組み合わせてテキストを移動させる
2008-04-08 追記: この方法には問題があります。詳しくは、Subtitle フィルタにとって -1 は魔法の値を参照してください。
にーやんのブログ :: Project N: 024 - 文字雨(Animateフィルタを使う)のように、Subtitle フィルタと Animate フィルタを組み合わせれば、テキストを移動させたり、拡大縮小したりすることができます。簡単な例をあげながら、これをもう少し説明したいと思います。
# ソースクリップ
BlankClip(200, 320, 240, fps=29.97)
BlankClip フィルタを使って空のクリップ(200frames, 320x240, 29.97fps)を作成します。今回は、これをソースクリップとして使用します。
font = "MS Pゴシック" # フォント
size = 36
text_color = color_lightpink # フォントの色($FFB6C1)
halo_color = color_hotpink # 文字の縁の色($FF69B4)
フォントの色や大きさなどを指定しておきます。フィルタの中で直接指定してもOKです。その場合は、下記のスクリプトの font, size, text_color, halo_color となっているところを変更します。
color_lightpink と color_hotpink は、AviSynthで使用出来る色のプリセットです。プリセット値は、AviSynth と一緒にインストールされる colors_rgb.avsi(plugins フォルダの中にあります)の中で設定されています。colors_rgb.avsi は、オートローディング機能で、自動的に読み込まれます。10 進数か 16 進数を使って指定してもかまいません。
# 右から左へ移動
Animate(0, 29, "Subtitle",
\ "キタ━(゚∀゚)━!",320,100,0,29,font,
\ "キタ━(゚∀゚)━!",-200,100,0,29,font)
Subtitle フィルタの引数のうち、x だけが変化していることに注意してください。0 フレームのときは x = 320、29 フレームのときは x = -200 の位置に配置されます。日本語(2バイト文字)なので、それに対応しているフォントを指定する必要があります。
# 下から上へ移動
Animate(30, 59, "Subtitle",
\ "萌えーっ!!",70,240,30,59,font,size,text_color,halo_color,
\ "萌えーっ!!",70,-50,30,59,font,size,text_color,halo_color)
今度は y の値だけが変化しています。
# 拡大
Animate(60, 89, "Subtitle",
\ "萌えーっ!!",160,120,60,89,font,1,text_color,halo_color,
\ "萌えーっ!!",-40,80,60,89,font,96,text_color,halo_color)
size を変化させることで、テキストの拡大や縮小も可能です。ただし x と y を固定にすると、左上から右斜め下へと拡大(縮小の場合は、その逆)するように見えてしまいます。これを防ぐために、x と y の値も変化させています(適当)。
Subtitle フィルタには、テキストの配置に関する align という引数もあります。今回は align は使用しませんでしたが、これを組み合わせてみてもいいかもしれません。
# 左上から右下へ移動
Animate(90, 159, "Subtitle",
\ "/⌒ヽ ちょっと通りますね",-200,0,90,159,font,16,$FFFFFF,$000000,
\ "/⌒ヽ ちょっと通りますね",350,150,90,159,font,16,$FFFFFF,$000000)
Animate(90, 159, "Subtitle",
\ "/ ´_ゝ`)",-210,18,90,159,font,16,$FFFFFF,$000000,
\ "/ ´_ゝ`)",340,168,90,159,font,16,$FFFFFF,$000000)
Animate(90, 159, "Subtitle",
\ "| /",-210,36,90,159,font,16,$FFFFFF,$000000,
\ "| /",340,186,90,159,font,16,$FFFFFF,$000000)
Animate(90, 159, "Subtitle",
\ "| /| |",-208,54,90,159,font,16,$FFFFFF,$000000,
\ "| /| |",342,204,90,159,font,16,$FFFFFF,$000000)
Animate(90, 159, "Subtitle",
\ "// | |",-216,72,90,159,font,16,$FFFFFF,$000000,
\ "// | |",334,222,90,159,font,16,$FFFFFF,$000000)
Animate(90, 159, "Subtitle",
\ "U .U",-222,90,90,159,font,16,$FFFFFF,$000000,
\ "U .U",328,240,90,159,font,16,$FFFFFF,$000000)
x と y の両方を変化させることで、斜め方向への移動も可能です。
# 上から下へ移動
Animate(160, 199, "Subtitle",
\ "萎え . . . orz",70,-50,160,199,font,36,color_olivedrab,
\ "萎え . . . orz",70,240,160,199,font,36,color_olivedrab)
これは下から上への移動の逆です。
FadeOut(30)
最後はフェードアウト。
これを 1 つの AVSファイルにまとめて、MPEG-1 形式の動画に変換してみました。
あまりなめらかとは言えないかもしれませんが、一応、動いています。
スポンサード リンク
writeback message: Ready to post a comment.
- [Preview]ボタンをクリックすると、コメント内容をプレビューすることができます(JavaScript使用)。
- スパム対策としてリファラチェックを行っています。セキュリティソフトの設定でリファラを無効にしていると投稿できません。
- エントリの内容と無関係と思われるコメントやトラックバックは削除されます。
- 当ブログへの言及リンクがないトラックバックはブロックされます。



