MayaMASHを使用した植物の配置エフェクト・CGスーパーバイザーの河村です。人嫌いのレニー』でちょっとした森を作成することになりました。森などの自然系のセットはデータが巨大になってしまうのが悩ましいところですが、モデルをASSキャッシュに変換しaiStandInでロードすることで対応しました。いわゆるディレイド・ロード・プロシージャルという手法です。使用した3DソフトはMaya、Houdini、レンダラーはArnoldです。​ASSというのはArnoldネイティブのシーン記述言語でRendermanでいうところのRIBファイルにあたります。前もってモデルをASSキャッシュに変換しておき、キャッシュへの参照情報だけを持ったaiStandInというノードをシーン内に配置することでMayaのメモリ負荷を低く抑えたままヘビーなジオメトリをレンダー時に動的にロードすることができます。ASSへの変換はスクリプトを用意しリガーにお願いしてセットの出荷前に一括適用してもらうことにしました。変換前のMayaシーンはファイルサイズが大きくモデラーはとても大変そうでしたが、aiStandInを使用することでレンダリングモデルは非常に軽くなりレンダリング時間も現実的な範囲におさまりました。中遠景の大量の草はHoudiniのFur(カーブプリミティブ)とインスタンスで作成しHtoAでASS出力、MayaにaiStandInでロードしました。ちなみに水のシミュレーションや雲のボリュームデータの作成にもHoudiniを使用しています。このプロジェクトでは森の木全部が風で揺れたりするといった状況がなかったのでこれで充分でした。今回は次のプロジェクトに向けて以下のお題で植物の作り方を試してみます。アンビエントモーション付きのセットとして出荷Maya2017にMASHというモーショングラフィック用の機能がついています。今回はそれを使用してみます。MASHの出力はMayaのインスタンサーノードにつながっていてポイントインスタンサーとして使用できそうです。通常のインスタンサーはパーティクルを使用するのでモデラーには敷居が高いのですが、MASHはペイントでインスタンスを配置する機能などがあり少しアーティスト向きと言えそうです。MASHには他にもいろいろな機能があるのですが、今回は植物の配置に使用するだけなのでごく基本的な機能だけ使用します。Update3から植物の配置用にそのものズバリのWorldというノードが追加されていますが少しテクニカルなので今回は使用しません。風で揺れる木と草を作成します。今回はテストなので簡単にペイントエフェクトのプリセットで作成しました。ペイントエフェクトには風のパラメータがあるのでそれで揺らしています。ポリゴンにコンバートしてAlembicで出力しブレンドシェイプを使って90フレームループを作成しました。この木と草をMASHを使用して配置します。遠景にはデフォルトのDistributeノードのMeshモードを使用、カメラ前はPlacerノードを使用します。配置後にID、Random、Offset、Visibilityノードを使用して調整します。(今回は使っていません)Viewport表示が重くなってきたらインスタンサーノードでバウンディングボックス表示に切り替えます。Viewを使用しIPRレンダーしながら作業しました。インスタンス数は10万インスタンスくらいなら問題なさそうです。1種類の木と草でもキャッシュのタイミング違い3パターンで十分なバリエーションが作成できました。木が1万本、草のパッチが4万個ありますがMayaシーンファイルは10MB程度、Alembicキャッシュは木が37MBで草が4.4MBでした。レンダリングは上の絵で1分程度です。手法としては問題なさそうです。今後はこの木や草のモデルを高品位のものに差し替え、ディスプレースメントマップなどでディテールを加えて品質を上げていきます。結果は次のプロジェクトをお楽しみに。