Vertex Animation Texture について


こんにちは、篠島です。最近はゲーム関連でよく聞くようになったVertex Texture Animation (VAT)について説明したいと思います。

 

VATとは何か

VATとはそれぞれのピクセルに頂点の位置、回転などの情報を特定のフレーム分含めたデータの事です。それをゲームエンジン内で読み込むことにより、Houdiniで作った色んなエフェクトをゲームエンジン内で再現できるようになります。現状は位置と回転用に使われていますが、自分な好きなアトリビュートをテクスチャに焼き込み、シェーダーで読み込みアイデア次第で色々ができると思います。
テクスチャのサイズですが、ポイントの数、フレーム数が多くなるに連れてテクスチャサイズも大きくなります。

 

テクスチャの出力の仕方は Gave Development Tool の中に含まれているVertex Animation Texture ROPを使います。
Gave Development Tool のインストールの仕方はこちらの記事で説明しています。

 

簡単なパラメーターの説明

Method

どのタイプのデータを出力するかを指定します。Rigid Body と Fluid ではシミュレーションタイプタイプが異なるので、ここはしっかりと選びます。

Export Node

どのジオメトリを出力するかを指定します。

Target Texture Size

出力するテクスチャのピクセルサイズを指定します。例えば下の図のように938×119のテクスチャがあるとし、Target Texture Sizeを512に変更すると頂点数938は512よりも多いので、フレーム119の部分を2倍にして(512×238)、その部分にはみ出た部分のデータを書き込みます。

Export for Mobile

デフォルトでテクスチャは32bitのEXRファイルが出力されるようになっています。Export for Mobile をONにすると16bitのファイルが出力され、単純にファイルサイズは1/2になります。ビット数が減る分情報の正確さが変わってしまうので状況に応じて使い分けましょう。でも大体16bitあれば十分なのではないかと思います。

Data For Realtime Shader

ここはユーザーは何も設定しません。Renderを押してテクスチャを出力した際にデータがここに現れ、Unreal や Unity 内でシェーダーを設定する時にここの情報が必要になってきます。
なんでバウンディングボックスの情報が必要なのかというと、デフォルトでテクスチャの情報はノーマライズされて0-1に収められてしまうので、これをゲームエンジン内で元の値に戻すために必要になってきます。

Advanced内部のアトリビュート

どのアトリビュートを位置、回転として出力するかの設定です。これを変えることで自分の好きな情報をテクスチャに書き出し、ゲームエンジン内で使うことが出来ます。

 

 

VATテクスチャの使い方

VATテクスチャの使い方(Unity)はSideFXのページに詳しく書かれていますのでそちらを参照してください。