2021/07/13(火) [n年前の日記]
#2 [blender] blenderで煙アニメを作成
blender でアニメっぽい煙アニメを作れないかと実験してたけど、おそらくそれっぽい感じで作成できた気がする。環境は Windows10 x64 21H1 + blender 2.83.16 LTS x64。
こんな感じになった。
結構それっぽいアニメになったように思うのだけど、どうだろう…。
作業中の画面は以下のような感じ。
一応念のために .blend も zip にして置いときます。
_smoke_test02.blend.zip
こんな感じになった。
結構それっぽいアニメになったように思うのだけど、どうだろう…。
作業中の画面は以下のような感じ。
一応念のために .blend も zip にして置いときます。
_smoke_test02.blend.zip
◎ 手順をメモ。 :
blender のパーティクル機能を使って、オブジェクトを大量に発生させる。以下の記事がとても参考になった。ありがたや。
_[2.8]Blenderひとりもくもく会:パーティクル編|MITSUDA Tetsuo|note
パーティクル関係の設定は以下のような感じ。
当初、パーティクルが下に落ちていって困ったけれど、フィールドの重み → 重力、を 0 にしたら落下しない状態になってくれた。
発生させるオブジェクトは、Cube(立方体) にした。Cube 追加してから、細分化。細分化の際に、スムーズを掛けて、丸い形にしていく。その後、頂点のランダム化で凸凹に。更に、サブディビジョンサーフェイスで滑らかに。
セルルック風のマテリアル指定は、以下のような感じに。
マテリアル設定については、以下の記事がとても参考になった。ありがたや。
_【Eevee】Blender2.8でトゥーンシェーダーを作る! - もろりんの3DCGブログ(改装中)
レンダリング関係の設定は以下。
アニメーションをレンダリング。アルファチャンネルを含んだRGBAの連番画像(.png)として出力。
ffmpeg を使って、連番画像を .avi に変換。出力フォーマットは UtVideo。UtVideo は可逆圧縮なので画質劣化が無く、かつ、アルファチャンネルを含めることができる。
これで、連番画像が .avi になった。以下のような動画ができる。
輪郭線を追加する。今回は AviUtl 1.10 + 拡張編集プラグインを使った。拡張編集ウインドウに .avi を追加して、縁取りフィルタを使って輪郭線を追加。ついでに背景も白くする。
以下のような動画が出来上がった。
ということで、blender を使っても、Moho と同様に、煙アニメは作れそうだなと…。
_[2.8]Blenderひとりもくもく会:パーティクル編|MITSUDA Tetsuo|note
パーティクル関係の設定は以下のような感じ。
当初、パーティクルが下に落ちていって困ったけれど、フィールドの重み → 重力、を 0 にしたら落下しない状態になってくれた。
発生させるオブジェクトは、Cube(立方体) にした。Cube 追加してから、細分化。細分化の際に、スムーズを掛けて、丸い形にしていく。その後、頂点のランダム化で凸凹に。更に、サブディビジョンサーフェイスで滑らかに。
セルルック風のマテリアル指定は、以下のような感じに。
マテリアル設定については、以下の記事がとても参考になった。ありがたや。
_【Eevee】Blender2.8でトゥーンシェーダーを作る! - もろりんの3DCGブログ(改装中)
レンダリング関係の設定は以下。
- レンダーエンジンは Eevee。
- カラーマネジメント → ビュー変換、は、標準に。これにしないと色が正確に出ない。
- フィルム → 透過、にチェックを入れて、背景を透明にした。
アニメーションをレンダリング。アルファチャンネルを含んだRGBAの連番画像(.png)として出力。
ffmpeg を使って、連番画像を .avi に変換。出力フォーマットは UtVideo。UtVideo は可逆圧縮なので画質劣化が無く、かつ、アルファチャンネルを含めることができる。
ffmpeg -framerate 24 -i render\%04d.png -vcodec utvideo smoke_test02.avi
- -framerate 24 で、24FPSを指定。
- -i render\%04d.png で、renderフォルダ内の 0001.png - xxxx.png を入力ファイルとして指定。
- -vcodec utvideo で、UtVideoフォーマットを指定。
- smoke_test02.avi が出力ファイル名。
これで、連番画像が .avi になった。以下のような動画ができる。
輪郭線を追加する。今回は AviUtl 1.10 + 拡張編集プラグインを使った。拡張編集ウインドウに .avi を追加して、縁取りフィルタを使って輪郭線を追加。ついでに背景も白くする。
以下のような動画が出来上がった。
ということで、blender を使っても、Moho と同様に、煙アニメは作れそうだなと…。
◎ 余談。Freestyleで輪郭線。 :
当初、blender の Freestyle機能で輪郭線を追加しようとしたのだけど。パーティクルの数が増えていくにつれて、Freestyle の処理時間がどんどん伸びていって…。そのうち、1フレームのレンダリングで1分以上かかるようになってしまったので、使用は諦めた。
おそらくだけど、背面法とやらで輪郭線が出るようにすれば、短いレンダリング時間でも輪郭線が出せたのではないかなと。
あるいは、レンダリング後のノード設定?を工夫すれば、blender上でも AviUtl で行ったような処理ができたのかもしれない。そのあたりはまだ不勉強で、実際にできるかどうか分からんけど…。
おそらくだけど、背面法とやらで輪郭線が出るようにすれば、短いレンダリング時間でも輪郭線が出せたのではないかなと。
あるいは、レンダリング後のノード設定?を工夫すれば、blender上でも AviUtl で行ったような処理ができたのかもしれない。そのあたりはまだ不勉強で、実際にできるかどうか分からんけど…。
◎ 余談。相対パスの指定。 :
レンダリング結果を出力するフォルダパスを、D:\hoge\fuga\render\ みたいな指定にしながら作業していたのだけど。この状態だと .blend ファイルを別の環境に持っていった際に不具合が出るわけで…。そのあたりのフォルダ指定については、.blendファイルのある場所を基準にして相対パスで指定できないのかなと。
ググってみたら、以下のページが見つかった。
_File Paths ・ Blender Manual
_Opening & Saving ・ Blender Manual
「//」をつければ .blendファイルのある場所を指定したことになるらしい。つまり、.blendファイルのある場所に render というフォルダが存在するなら、「//render\」という指定でOKということになるのだろう…。たぶん。
手元の環境で試してみたところ、たしかに render\ 以下に画像が出力された。
ググってみたら、以下のページが見つかった。
_File Paths ・ Blender Manual
_Opening & Saving ・ Blender Manual
The default path // refers to the folder of the currently open blend-file (see Relative Paths for details).
「//」をつければ .blendファイルのある場所を指定したことになるらしい。つまり、.blendファイルのある場所に render というフォルダが存在するなら、「//render\」という指定でOKということになるのだろう…。たぶん。
手元の環境で試してみたところ、たしかに render\ 以下に画像が出力された。
[ ツッコむ ]
以上です。