Texture Based Animation による RBD (リジッドボディダイナミクス) の Unreal での再生方法を紹介する。
使用したソフトウェア
- Houdini 16.0.457 (要 Houdini 16.0)
- Unreal 4.14.1 (要 4.14 以降)
1. ファイルのダウンロード
- こちらのページを参照。
2. RBDシーンの作成
- 新しいシーンで Create シェルフの Torus を Ctrl キーを押しながらクリック。
- torus_object1 が原点に出来る。
- Translate Y の値を 2 にして、トーラスを原点より少し上に配置。
- torus_object1 を選択したまま、Model シェルフの Shatter を実行。
- ネットワークビューが、/obj/torus_object1 内に移る。
- /obj/torus_object1/chunkcenters の Force Total Count を 40ぐらいに設定、破片の数を増やす。
- voronoi_fracture1 の出力に、UV Unwrap を作成して接続。表示フラグ(青)をこのノード (uvunwrap1) に設定。
- これがテクスチャアニメーション出力の基となるUV になる。
- U キーを押して、階層を一つ上がり、torus_object1 を選択したまま、Rigid Bodies シェルフの RBD Fractured Objectツールを実行。表示されるダイアログでは、必ず RBD Packed Object を選択。
- 再生すればトーラスが落下するが、何も当たるものがない。
- Collisions シェルフのGround Plane をクリックして実行。
- 再生すれば、今度は地面に衝突してバラける様子になる。
- この現状の設定に対し240フレームでは長すぎるので、アニメーションの最終フレームを120フレームにする。
3. テクスチャによるシミュレーションの出力
- シーンを保存して $HIP の位置を確定する。これによりテクスチャの出力先が決まる。
- ここでは t2_rbd.hip とする。
- /out 以下に行くか、ROP Network ノードを作成しその中に入り、TAB -> Vertex Animation Texture ノードを作成。
- vertex_animation_textures1 ノードが出来る。
- vertex_animation_textures1 ノードで、
- Method を "Rigid (RBD)" に
- Export Node を /obj/torus_object1/dopimport1 に
- 出力したいテクスチャ解像度、パスなどを変更しても良い。ここではデフォルトのまま。
- Render ボタンをクリックして出力を行なう。
BBOX MAX と BBBOX MIN の値は後ほど使う。 - Render->Mplay->Load Disk Files... を実行、$HIP 以下の export/ ディレクトリに行けば、の3つのファイルが出力されている。
4. Unreal でのテクスチャアニメーションの読み込み
- Unreal 4.14.1 を起動。SideFXSamples.uproject を開く。
- 上で作成した MyFile をクリックして中に入り、Add New の隣にある Import ボタンをクリック。開いたブラウザで上で作成した t2_rbd_mesh.fbx、t2_rbd_pos.exr、t2_rbd_rot.exr をまとめて選択し、まとめてインポートする。
- インポートされたファイルのある部分で RMB->Materials&Textures->Material Instance を実行。出来たマテリアルの名前を t2_rbd とする。
- t2_rbd をダブルクリックして、マテリアルを開き、Details 以下の Parent の部分、None となっているところをクリックし、ポップアップメニューを表示、Browse のテキストフィールドに "rigid" などと入力して、M_RigidVertexAnimation を選択。
- rotation_texture と translation_texture のトグルをそれぞれオンにして、
- rotation_texture には、t2_rbd_rot
- translation_texture には、t2_rbd_pos
- 少し下にスクロールして、
- Number of Frames のトグルをオンにして、値を 119にする。
- PivotMax は、ROP での BBOX MAX の値。 2.25 を入力する。
- PivotMin は、ROP での BBOX MIN の値。 -0.75 を入力する。
- speed は今はそのまま 0.05。
- Save アイコンをクリックして保存。パネルを閉じる。
- コンテンツブラウザで、t2_rbd_mesh を見つけ、ダブルクリックして、パネルを開く。
- Materials 以下 Element0 の右側の WroldGridMaterialとなっているところをクリックしてメニューを開き、t2_rbd マテリアルを指定。
- 下に少しスクロールしトグルの集まりから Use Full Precision UVs を見つけ、オンにする。
- さらに下に少しスクロールして、Apply Changes ボタンをクリック。パネルを閉じる。
- コンテンツブラウザから t2_rbd をビューポートにドラッグ&ドロップ。右下の Transform の部分で、Scale をすべて100 にする。
- シミュレーションのスピードが遅ければ、コンテンツブラウザから t2_rbd マテリアルを再度開き、PivotMin 直下にある speed パラメータのトグルをオンにし、値を例えば0.3などとしてみる。
0 件のコメント:
コメントを投稿