modoの「自然科学ベースの日光」「自然科学ベースの太陽」、いわゆるフィジカルスカイとフィジカルサンの時間をアニメーションさせて、タイムラプスっぽい表現の作り方について書いてみたいと思います。
時間経過のアニメーション
modoでは日の出から日の入りまでのアニメーションが簡単に作れます。空のような環境は、シェーダーツリーのEnvironment Material で環境タイプを「自然科学ベースの日光」を設定します。
ライトの設定の「自然科学ベースの太陽」をONにして、「時」チャンネルを設定すると時間に応じた照射をシミュレーションすることができます。このシーンでは 04:30~20:00 までアニメーションを設定しました。
雲のアニメーション
雲の表現にはボリュームを使用しています。Multi-Fractalレイヤーを追加して、レイヤーエフェクトを「ボリューメトリック密度」に設定します。雲の動きはMulti-Fractalのテクスチャロケータの位置をアニメーションさせています。ボリュームの位置は動かしていません。
雲の量を朝夕と日中で変化させるために「上部クリップ」にキーを設定しました。
ボリュームの形状は「立方体」、「半径」を300mに設定して、トランスフォームのスケール Yを10%にして平面的なボリュームにしています。位置は見た目で適当に配置してます。
ボリュームのシェーディングは時間に応じて「密度」「スキャッタリング」「アンビエント」「アンビエント色」をアニメーションしています。
「密度」は朝夕の時間が 10、日中は 7 に設定して雲の厚みを変化させています。同様に「スキャッタリング」も朝夕は 10%、日中は 200% に設定して雲を白くしています。
「アンビエント」「アンビエント色」はボリュームの色に、空の色を反映するために使用しています。modoのボリュームはGIが使用できないので、ボリュームをそのまま使用すると空から浮いて見えます。
「自然科学ベースの日光」で空のアニメーションを設定したら、「アンビエント色」に5~10フレーム間隔でキーを設定して、空の色をスポイトします。
「アンビエント」は朝夕 0 、日中は 1 に設定して「アンビエント色」の影響の強さを設定しています。
300mのように大きなサイズのボリュームを使用する場合は「サンプリングレート」の値に注意する必要があります。ボリュームの「半径」を大きくすると、テクスチャのバンディングのような縞模様が目立つようになります。下の画像は半径100mで サンプリングレート 1 の場合の画像です。
サンプリングレート 0.5 に下げると模様が目立たなくなります。ただしレンダリング時間も長くなるので、あまり小さな値は使用しない方がいいです。
草のアニメーション
草のアニメーションはダイナミックカーブとファーマテリアルを使用しています。
地面のモデルからヘアーツールの「ガイドを生成」を使用して、「セグメント数」3のガイドを作成します。
作成したガイドに「ダイナミックカーブ生成」でダイナミクスを適用して、「ジョイント角度制限」に小さな値を設定して動き過ぎないようにします。
草を動かすためにTurbulence Forceを追加してランダムにガイドが揺れるように設定します。
Fur Material を追加して、ガイドを「方向」に設定するとガイドに合わせてファーが動くようになります。ガイドは「シェイプ」「方向+長さ」「範囲」に設定してもアニメーションします。
本当は「シェイプ」を使用したかったのですが、GLではファーがアニメーションするのにレンダリングでは動かなかったり他のパラメータの影響があるようで、いまいちイメージ通りに動かなかったです。
草の質感
草の質感はこんな感じです。
Variation Textureでファー一本一本に色のランダムさを加えます。ファーが単色だと人工的に見えるので、ファーやヘアーを使用する場合はVariation Textureを使用すると自然に見えるようになります。
Gradient の入力パラメータを「ファーパラメトリック長」にして、草の根元から先端にかけて「サブサーフェース量」が変化するように設定しています。同様に「サブサーフェース色」も設定します。
サブサーフェースを使用することで、逆光のとき葉先の黄色が強くでるように設定してます。
チキンのアニメーション
チキンが組み上がるアニメーションは、プロシージャルモデリング機能を使用しています。
骨組みアニメーションのスケマティックです。
「Merge Meshes」したチキンのモデルを「Push」でマイナス方向に縮めます。「Edges to Curves」のカーブモードを「エッジ毎」にして、メッシュの形状のポリラインを生成します。「Delete_1」で全てのポリゴンを削除してポリラインだけにします。「Delete_2」ではリニアフォールオフを使用してポリラインを削除するアニメーションを設定しています。
最後にアイテムのカーブタブで「カーブのレンダリング」をONにすると、ポリラインをレンダリングすることができます。
チキンの面アニメーションのスケマティックです。
「Merge Meshes」したチキンのポリゴンを「Delete」で削除しています。ランダムに削除するためにSelectionに「Select Random」というアセンブリを使用します。Percentage Selected チャンネルにキーを設定すると、ランダムにポリゴンを削除するアニメーションを作ることができます。
カメラの位置やフレームごとに明るさにもランダムな変化をつけるか迷いましたが、とりあえず単純なタイムラプス表現でした。
Edges to Curvesを使うと、骨組みっぽくモデルを手軽に作ることができるので便利ですね。こういった時間経過のアニメーションは、ゲームエンジンの方が天候を変化させたり色々できて便利な気がしますが、レンダリング時間を気にしなければmodoでも手軽に作れます。
ファーでチラツキの少ないレンダリング設定についても書きたかったのですが、テキスト量が多くなりそうだったので記事を分けて書いてみたいと思います。