先日は、
にて、Blenderで使える機能について紹介しましたが、その中で、ダイナミックペイントについても紹介しました。この機能は、ディスプレイスメントマップのようにペイントの状態でオブジェクトの形状を変形できる機能になりますが、
■ ダイナミックペイントのテスト
のような表現もできます。先日は、YouTubeに
■ パーティクル+ダイナミックペイント
のような物もアップしましたが、今回は、このダイナミックペイントについて紹介しようかなと思います。
UPBGEではこれを動かす場合どうすればいいのかは模索中ですが、アニメイテッドテクスチャーを使う方法やパーティクルを使う方法もあるようなので、色々試してみようかなと思っています。
B lenderとUPBGE
先日、Blender 2.83 LTSがリリースされ、2年間の長期サポート版となるバージョンが今回から登場することになりました。
この方式は、Linuxなどで見かける方式ですが、BlenderもLTS版が出るようです。LTSのフィードバックが通常版に適応されるわけではないようですが、通常のバージョンアップと長期サポート版の2種類が今後はリリースされることになります。当然、最新機能は通常版で体験できるようになりますが、今年の夏に出るバージョンは2.8系ではなく、2.9になります。
現在は、公式サイトにて2.9.0 Alphaがリリースされており、
のように8日に最新版がアップデートされています。そして、このバージョンをベースに開発されている、BlenderのゲームエンジンのUPBGEのアルファ版も9日にリリースされています。
現行版は、2.83 LTSですが、2.9.0 Alphaの機能も体験できます。
ダ イナミックペイント
ダイナミックペイントを使うと、
のように凹凸が付きますが、オブジェクトを動かすと動作するので、
のようにキーフレームを打って対象のオブジェクトを動かします。
ダイナミックペイントはポリゴンメッシュの頂点座標の変化で形状の変化を発生支えてるので、効果が出ている場所は、
のように変化しています。
ダ イナミックペイント(オブジェクトを用意する)
まず、
の状態から、【 SHIFT 】 + 【 A 】 でメニューを呼び出して、平面を追加して、【 S 】キーを押した後にカーソルを動かして
のように拡大します。そして、 【 TAB 】キーでエディットモードに入り、
のように面のメニューから、
のように細分化を選択します。すると、
のように画面左端にプロパティーが出るので、
のように分あk津数を100にします。その後、【 TAB 】キーでレイアウトのモードの戻し、
のようにオブジェクトのメニューから
のようにスムースシェードを指定します。すると、エッジが立たない状態でひょじされるようになります。角張った形状を表示する際にはフラットシェードを指定しますが、今回は柔らかい形状にしたいのでスムースシェードを指定します。これで、変形する部分とペイントを行う対象の設定は終わりです。
ダ イナミックペイント(オブジェクトの設定)
ダイナミックペイントでは、
■ ブラシ
■ キャンバス
を設定することになります。今回は平面が変形するので、平面がキャンバスでCUBEがブラシになります。
のように平面を選択して、
のようにダイナミクスからダイナミックペイントを選択し、
のようにタイプを 【 キャンバス 】 にします。この状態で、
の平面はキャンバスになりました。タイプの設定ですが、
のようにブラシとキャンバスがあり、ブラシの挙動をキャンバスに反映させる仕様になります。
キャンバスの設定の前に、CUBEに対してブラシの設定を行います。
のようにCUBEを選択して、
のようにダイナミックペイントを選択して、
のようにタイプで 【 ブラシ 】を選択します。すると、
のようにカラーや速度の設定が可能になります。今回はソースをメッシュボリュームにしています。それ以外の設定も可能で、
のように速度の変化や波の深度変化などにも対応しています。
ダ イナミックペイント(キャンバスの設定)
キャンバスの設定をすると、
のようになりますが、
のような設定項目が出てきます。この時のサーでーすの指定を行いますが、
の部分で変化を指定します。サーフェースタイプには、
のような物があります。この設定で、
の平面の変化の仕様が変わります。今回は、
のように並みに設定したのですが、設定後には、
のようにCUBEの周辺のメッシュの状態が変形しています。
モ ーションの設定
ダイナミックペイントはブラシの動きで機能するダイナミクス何度絵、ブラシの挙動を指定します。これはキーフレームを打って挙動を追加していくことになりますが、
のようにCUBEを選択して、
のようにキーフレームの先頭を選択します。今回は、最初の場所は原点にするので、この状態で、 【 I 】 キーを押してメニューを呼び出して、
のように【 ビジュアル位置/回転/拡縮 】を選択します。これで、移動と回転だけでなく、拡大縮小の変化もキーフレームに登録できます。
次に、キーフレームを移動して、
のように指定後に、オブジェクトを移動させて、
のように 【 I 】 キーでメニューを呼び出して登録します。すると、
のように中間地点では移動していますから、ダイナミックペイントが機能しています。
ダイナミックペイントですが、タイプを変更すると効果が変わるので、
のように平面を選択して、
のようにディスプレイスを指定すると、
のようにくぼみができます。ダイナミックペイントだけだと、
■ ダイナミックペイントのテスト
の動画のようになりますが、先日の
■ パーティクル+ダイナミックペイント
では、パーティクルを飛ばしています。その為、この処理については、別に実装することになります。
パ ーティクルを実装する
今回は、オブジェクトパーティクルを実装するので、すがボルトを飛ばす事にしました。Blenderではプリリファレンスでアドオンを追加すると標準実装のメッシュに
のような感じのものがありますが、この中のボルトを追加します。
のようにパーティクルのプロパティーを選択して、レンダリング方法の場所をオブジェクトに変更し、インスタンスオブジェクトにパーティクルとして散布するオブジェクトを指定します。そして、
のように移動をするように指定をします。挙動や発生数や発生フレームは動かしながら調整することになります。配置をすると、
のような感じになりますが、開始と終了のフレームを0にして寿命を動画のフレーム数にすると、この状態が維持されますが、今回は動かすので、寿命と開始と終了のフレームを変更します。
パーティクルは、プロパティーの実で設定するので、動かしながら数量や状態を調整することになります。
動 画の調整
とりあえず、
のようにキーフレームを打ち、
のようにパーティクルも出るようになったので、書き出す準備をします。今回は、アンダーにするので露出補正を入れました。露出補正を入れると、
のような感じになります。
動 画の書き出し
Blenderでは、レンダリングで、画像と動画の書き出しができますが、出力の設定を変更しないと適正な状態にはなりません。
今回は、フルHDの24Fなので、Blenderの標準設定で書き出していますから、解像度やフレームレートを変更していませんが、書き出しを行う上での出力先やコンテナファイルの指定やコーディックの設定を行う必要があります。
の場所で設定ができますが、最初にファイルフォーマットを決めます。
Blenderではデフォルトだと静止画の出力設定になっているので、8bitのPNGで書き出す指定になっていますが、今回は動画なので、ここを変更する必要があります。ファイルフォーマットのタブをクリックすると、
のような仕様が表示されますが、動画の場合、
■ Motion JPEG
■ RAWなAVIファイル
■ ffmpegで選択できるコーディック各種
を選択できます。それ以外は画像なので、大量の画像がシーケンシャルファイルとしてフレーム数分だけ出力されます。
YouTubeにアップする場合、MP4コンテナが推奨されているので、MP4コンテナ(MP4boxかな?)に指定します。
ここで 【 ffmpeg動画 】 を選択して、コーディックを選択します。▼で畳んであるので項目をクリックすると開けるので、そこからコーディックとして、
DNxHDはフルHDまで使用できるアビッドのコーディックになりますが、アップルのProRESなどと同じような仕様の物になります。
VP9やWEBMはGoogleが提供しているライセンスフリーのコーディックで、Theoraも同様のコーディックになります。
今回は音声を使っていませんが、オーディオが存在する場合にはコーディックの設定が可能で、
の中から選択できます。ライセンスの音大が出ないコーディックだと、Vorbiesが使えますが、民生のコーディックの組み合わせの
■ MPEG-4 AVC/H.264 + AAC
■ MPEG-4 AVC/H.264 + AC3
なども設定できます。
書き出しの設定は終わっていますが、ダイナミックペイントもパーティクルも実行しながら演算すると破綻するので、BAKEを行います。平面を選択してダイナミクスのプロパティーを開くと下の方に
のようにキャッシュの項目がありますからここで、
のように 【 全物理演算をベイク 】 を選択します。
すると、演算が始まるので、終わるまで待つことになりますが、終了すると、
のような状態になります。この状態で再生すると、パーティクルとダイナミックペイントが適応されているので、この状態で、
のようにメニューからレンダーを選択し、アニメーションレンダリングをクリックする事で動画を書き出しが始まります。
ちなみに、この挙動と書き出し時間ですが、動画で見たほうが解り易いので、YouTubeに動画をアップしておきました。
■ プレビューとレンダリング
今回の作業環境は一番下に記載していますが、10年前のCPUと5年前のローエンドのQuadroとHDDの構成でメモリーも足りない状態で作業をしていますが、こんな感じに動作します。
今 回の作業環境
■ Core i5 650
■ H55M-Pro
■ DDR 1333 2GBx2+1GBx2(DUAL CH)
■ Quadro K620(PCI Express x16 【GEN2動作】)
■ SATA HDD
■ WINDOWS 10 x64 (1909)
■ Blender 2.82a (x64) + 2.83 LTS
■ UPBGE 0.3 Alpha & 0.2.5
■ Gimp 2.10.18 (x64)