Houdiniで作成したRigidbodyシミュレーションをVertex Animation TextureでUnrealEngineに持っていきます。
HoudiniでRigidbodyアニメーションを作成します。
Houdini Vretex Animation Texture - Rigid from Borndigital on Vimeo.
OUTにGameDev Vertex Animation Texture HDAを作成します。
MethodはRigid(Rigid Body Dynamics)を設定します。
Target Texture sizeは生成されるテクスチャの横のサイズです。
Rigidはトポロジが変化しません。そのため、ポリゴン数より小さい場合は縦に折り返して追加されます。
Geometry Pathは出力ジオメトリとなります。
Position Map Pathは、各頂点の位置を記録します。
Rotation Map Pあthは、各頂点の回転を記録します。
Frame SettingsはVertex Animation Textureとして出力が必要なフレームを指定します。
設定が終わったら、Renderボタンをクリックします。
終了するとファイルが生成されています。
UnrealEngineに持ち込むために下記のパラメーターは覚えておきます。
更に下に表示されるSample UE4 Shader Code にてRigid Vertex Animation UE4 Codeをコピーします。
UE4を起動し、Houdiniから出力した3つのファイルをContents Browserにインポートします。
ビューポートにメッシュをドラッグします。ジオメトリとしてはアニメーションが行われていません。
ジオメトリをダブルクリックしてエディタを開きます。
Building Settingsを開き、Use Full Precision UVsをオンにします。
Apply Changesをクリックして、エディタを閉じます。
Vertex Animation Texture用にマテリアルを作成し、ダブルクリックしてマテリアルエディタを開きます。
先ほどHoudiniでコピーしたShader Codeをマテリアルエディタにペーストします。
必要なネットワークが柵瀬されます。
Tangent Space Normalはオフにして、Num Customized UVsを3に設定します。
フラグの指示に従いすべて接続し、Saveしてマテリアルエディタを閉じます。
コンテンツブラウザにMaterial Instanceを追加します。
マテリアルインスタンスをダブルクリックしてマテリアルエディタを開きます。
Parentに先ほど作成したマテリアルをロードします。
マテリアルエディタでマテリアルを使用するジオメトリをPreview Meshにドラッグするとエディタでも任意のジオメトリで確認できます。
rotation_textureちtranslation_textureを有効にして、テクスチャをドラッグします。
Scalar Paramterをすべて有効にします。
Houdiniで取得しておいたパラメーターを入力してください。
ビューポートでMaterial Instanceを割り当てると下記のようにジオメトリがシミュレーションしているように見せることができます。
テクスチャを2のべき乗にしたい場合は、下記のチュートリアルをご参照ください。