Vertex Animation Texture Unreal


Texture Based Animation による Houdini で作成した特殊効果を Unreal に持っていく方法を紹介する。

使用したソフトウェア

  • Houdini 16.0.457 (要 Houdini 16.0)
  • Unreal 4.14.1 (要 4.14 以降)

0. Vertex Animation Texture に関して

破壊やデフォメーションの結果をリアルタイム環境で再生するには、頂点単位でのアニメーションカーブの出力を行なったり、ボーンデフォメーションなどに変換して出力するのが従来の方法であったが、各頂点のアニメーションデータをテクスチャに書き出し、GPUで演算させることにより、従来よりも高解像度のデフォメーションまたはシミュレーション結果を高速に再生することが出来るようになる。

考え方としては、ピアノロールの要領で、頂点 (バーテックス) の変位をフレーム単位で格納し再生する。通常、トランスレーション(移動)と回転の二つを考慮しなければならないので、テクスチャも移動用と回転用の2つが必要となる。デフォメーションでは、回転ではなく、法線方向を記録する場合もある。

これらの XYZ の各値が RGB チャネルにそれぞれバーテックス順にフレーム単位で最初のフレームから最後のフレームまで記録される。 例えば、1024 頂点(バーテックス)を持つジオメトリのデフォメーションを 24フレーム記録する場合、1024x24 のテクスチャを2枚書き出すこととなる。この場合、実際のテクスチャの解像度は 1024x24でも、途中で折り返して、512x48でも記録されている内容は同じ。頂点数が使うテクスチャの横解像度よりも大きい場合には折り返すしかない。出力されるテクスチャの横幅は、ROP 内で定義する。

1. ファイルのダウンロード

  1. SideFXSamples_x.zip (995MB) をダウンロード。
      パスワードは要問い合わせ
      ダウンロードしたファイルを解凍すると約 1.15GB になる。
  2. Zip ファイルを解凍する。解凍したフォルダ以下、Source/VertexAnimationTexture/vertex_animation_textures.hda を HDA パス (例: MyDocuments/houdini16.0/otls) にコピーまたは移動。
  3. Houdini 16 を起動、/out 以下で TAB->Vertex Animation Texture ノードが作成できれば、HDA は正しく認識されている。

2. Unreal プロジェクト

  1. Unreal 4.14.1 を起動。Browse ボタンをクリック、上で解凍した SideFXSamples.uproject を開く。無事に開けば上のようなアニメーションが再生されるはず。
  2. Unreal Editor (以下 UE4) の Content Browser の左側で最上層の Content をクリック選択、右側で New Folder を作成、MyFile などと名前を付ける。
  3. 自分で作成した ファイルを Unreal に読み込む時にはこのディレクトリ以下に読み込むと良い。その際には、右側の World Outliner で、元々シーンにあるサンプルは隠してしまうのが良いかもしれない。ライト各種とSkySphere 以外は、それぞれ目を閉じた状態にする。

3. 自分でエフェクトを作成する

9 件のコメント:

  1. データ確認させて頂きました。有難う御座います。
    サクションフォースのhipにエラーが有りました。
    キャッシュのgeoファイルが無いそうです。

    返信削除
  2. どのファイルをどこで開いたときにそのエラーがでるのでしょうか?

    返信削除
  3. suction_force.hipの/obj/fluidtank_fluid/compressed_cacheの中の
    /obj/fluidtank_fluid/compressed_cache/read_backで


    Error
    Unable to read file "H:/Data2/houdini/SideFXSamples_v2/Source/VertexAnimationTexture/Fluid/SuctionForce/geo/suction_force.compressed_cache.75.bgeo.sc".

    というエラーが出ています。

    返信削除
    返信
    1. zipファイルにはキャッシュが含まれておりません。
      よって、自分で作らないとダメですね。
      /obj/fluidtank_fluid/import_fluidtank
      の Save to File ボタンをクリックしてでキャッシュを書き出して、compressed_cache でそのキャッシュを読み込む必要があります。

      削除
  4. また全てのhipファイルを開いた際に
    Warning : The following node types are using incomplete assete definitions:
    Driver/vertex_animation_textures
    という警告が出ます。

    返信削除
    返信
    1. おそらく、このシーンファイルが作られたときの Houdini 16と現行の Houdini 16ではアセットの定義が少し異なるのではないかと思います。
      正しく動かすには、このZip に入っている HDA を使う必要があります。
      それでもダメであれば、少し古い Houdini 16を使うか、もしくはこちらでシーンファイルをアップデートする必要がありますね。

      削除
  5. 他にもSoftbody.hipを開いた時に

    Load warnings for H:\Data2/houdini/SideFXSamples_v2/Source/VertexAnimationTexture/Soft/Softbody/soft_body.hip

    Warning:

    /obj/geo1/solidembed1:

    Skipping unrecognized parameter "useremesh".
    Skipping unrecognized parameter "resolvecollisions".


    /obj/AutoDopNetwork/geol:

    Skipping unrecognized parameter "sepparm5".
    Skipping unrecognized parameter "solidstiffness".
    Skipping unrecognized parameter "sepparm8
    Skipping unrecognized parameter "volumemassdensity".
    Skipping unrecognized parameter "sepparm7
    Skipping unrecognized parameter "aniso".
    Skipping unrecognized parameter "targetstiffness".
    Skipping unrecognized parameter "thicknessenable".
    Skipping unrecognized parameter "thicknesscolor".
    Skipping unrecognized parameter "penetrationenable".
    Skipping unrecognized parameter "penetrationcolor".
    Skipping unrecognized parameter "velocityenable".
    Skipping unrecognized parameter "velocityscale".
    Skipping unrecognized parameter "velocitycolor".
    The following node types are using incomplete asset definitions:
    Driver/vertex_animation_textures

    という警告が表示されます。
    またこのhipファイルの/obj/geo1/filecache1/read_backで


    Error
    Unable to read file "H:/Data2/houdini/SideFXSamples_v2/Source/VertexAnimationTexture/Soft/SoftBody/geo/soft_body.filecache1.100.bgeo.sc".

    というエラーが表示されています。

    返信削除
    返信
    1. これも上記と同じですね。キャッシュをZip に含めると非常にファイルが大きくなるので含まれておりません。
      HDA は更新されているかもしれません。

      近々、作者と確認してみます。4月以降になるかもしれませんが。

      削除
  6. ご回答有難うございました。
    参考にさせて頂きます。

    返信削除