2017/05/12(金) [n年前の日記]
#2 [cg_tools] Apophysisでアニメーションを作成
Apophysis + スクリプトで、アニメーションを作成できるらしいので試したり。レンダリング時間が不安だけど、画質をめちゃくちゃ落とせばなんとかなるのではないか、と。それに、動いてれば結構分からないものだし。
◎ Apophysis用スクリプトについて。 :
以下は、Apophysis 2.02 に同梱されていた、Animation Render.asc というスクリプトの内容。微妙に書き換えてしまったけど…。とりあえずコレを使えばアニメーションが生成できる、らしい。
処理内容としては、全ての三角形を少しずつ回して、その都度レンダリングして画像を保存。フレーム数分(360度回るまで)繰り返す、みたいな感じだろうか。
構文としては、おそらく以下のような感じ、だと思う。たぶん。
上記スクリプトは直接スクリプトファイル(.asc)を書き換えて設定を変更するけど、そのあたりをダイアログで入力できる、 _CJ-AnimationRender.asc というスクリプトもあるそうで、今回はこちらを使わせてもらったり。ありがたや。
{ ************************************ } { Animation rendering example script. } { Mark Townsend, September 2003. } { *************************************} { Set the size of the rendered frames. } Renderer.Width := 1280; Renderer.Height := 720; { Need to calculate the scale of the flame for the image size... } SetRenderBounds; { I set sample density set for reasonable speed. Increase it for higher quality images, which will take longer to render. The other Flame parameters will use the default display values. } Flame.SampleDensity := 200; for j := 0 to 119 do // 120 frames, begin for i := 0 to Transforms - 1 do begin SetActiveTransform(i); { 360 degrees / 120 will give an animation that cycles seamlessly. } Rotate(3.0); end; { The filename needs to be changed for each frame, otherwise they'd just be rendered over and over to the same file. I use 0000.bmp to 0099.bmp } Renderer.Filename := 'D:\tmp\apophysis_render\' + Format('%.4d', [j]) + '.bmp'; Render; end; UpdateFlame := False;
処理内容としては、全ての三角形を少しずつ回して、その都度レンダリングして画像を保存。フレーム数分(360度回るまで)繰り返す、みたいな感じだろうか。
構文としては、おそらく以下のような感じ、だと思う。たぶん。
- コメント文は、「{」「}」 で挟む。
- 命令文の最後には「;」がつく。
- 変数への代入は、「:=」を使う。
- Renderer.Width、Renderer.Height は、レンダリング画像の横幅と縦幅。
- SetRenderBounds で、レンダリング画像サイズを確定してる?
- Flame.SampleDensity が小さい値なら、ドットは目立つけどレンダリングはすぐ終わる。大きい値なら、ドットは目立たなくなるけど時間がかかる。
- for j:=0 to 119 do begin 〜 end で、フレーム数分のループをしてる。
- for i := 0 to Transdorms - 1 do begin 〜 end で、全ての三角形に対して処理をしてる。
- 三角形は、回転だけを行ってる。360度回れば元の場所に戻ってくる。(ループアニメになる)
- Renderer.Filename で、レンダリング画像の保存ファイルパスを指定。
- Render でレンダリングして画像を保存。
上記スクリプトは直接スクリプトファイル(.asc)を書き換えて設定を変更するけど、そのあたりをダイアログで入力できる、 _CJ-AnimationRender.asc というスクリプトもあるそうで、今回はこちらを使わせてもらったり。ありがたや。
◎ Apophysisのスクリプトエディタがなんだか妙。 :
フォントが欠けて表示される…。おそらく日本語環境で起きる問題だろうけど…。
何かしらのテキストエディタを使って編集したほうがいいのかもしれない。
おそらくだけど、Delphiの構文を流用すれば色分け表示できるんじゃないかと…。例えば、 _Meryエディタ で、表示 → 編集モード → Delphi にしたら、それっぽく色分け表示できた。
何かしらのテキストエディタを使って編集したほうがいいのかもしれない。
おそらくだけど、Delphiの構文を流用すれば色分け表示できるんじゃないかと…。例えば、 _Meryエディタ で、表示 → 編集モード → Delphi にしたら、それっぽく色分け表示できた。
◎ 結果画像。 :
こんな感じの動画が作れた。
Apophysis 2.09 + CJ-AnimationRender.asc で連番bmpを出力。AviUtl で mp4 に変換。
YouTube にアップロードすると、相変わらずガビガビ動画になるなあ…。
Apophysis 2.09 + CJ-AnimationRender.asc で連番bmpを出力。AviUtl で mp4 に変換。
YouTube にアップロードすると、相変わらずガビガビ動画になるなあ…。
[ ツッコむ ]
以上です。