Houdini で定義したアルファ値を Unreal で読み込むための方法
使用したビルド: Houdini 15.5.730 (730 以降必須)
1. HDA 作成
- Torus を作成、I キーなり、ダブルクリックで中に入る。
- torus1 の出力から、TAB->Attribute Create を実行、attribcreate1 が出来る。
- attribcreate1 の出力から、TAB->Color を実行、color1 が出来る。
- color1 の出力から、TAB->Attribute Create を実行、attribcreate2 が出来る。
- Name を Alpha (A は大文字)
- Class を Vertex
- Type は Float のまま
- Value を 0.5 とする。
- attribcreate2 の Value (0.5) 上で、RMB->Copy Parameter を実行
- attribcreate1 のValue のフィールド、先に 0.5 としたところで、RMB->Paste Copied Relative Reference とする。
- これにより attribcreate1 のCd[3] (RGBA の A) の値が
ch("../attribcreate2/value1v1")
と記述され、attribcreate2 の Alpha の値でコントロールされる。 - attribcreate2 の出力から TAB->Null を作成、null1 ができる。このノードを OUT などと改名、表示およびレンダリングフラグを指定。
- ここまで作成した 5つのノードをすべて選択、Create Subnet from Selected ボタンをクリックして、サブネットワークに入れ、名前を vtx_alpha_test などとする。
- vtx_alpha_test を選択、RMB->Create Digital Asset を実行。ファイル名、ディレクトリ名を決定。Accept を押す。
- Accept を押したことにより表示される Edit Operator Type Properties ウィンドウの Parameters タブ以下で
attribcreate2 の Vlaue パラメータを Existing Parameters リストにドラッグ&ドロップ。
- Name を Cd_Alpha
- Label を Cd Alpha
- Type を Color and Alpha
- Range のトグルをオンにして、最小値と最大値を 0 と 1
- 次に進む前に vtx_alpha_test ノード上で RMB->Save Node Type で保存。
2. Unreal での読み込み
- Unreal を起動、プロジェクト (何でも良い) を開く。
- Content ブラウザに作成した HDA をドラッグ&ドロップ。
- Content ブラウザに登録された HDA をビューポートにドラッグ&ドロップ。
- 右下の Alpha のスライダを調整してもビューポートに効果が現れない。
3. Unreal でシェーダの調整
Houdiniがデフォルトで使用しているシェーダは Alpha 値を考慮していない。そこでシェーダを入れ替える必要がある。
- Unreal 画面右下の Houdini Generated Meshes をクリックして開く。
- 2つあるアイコンのうち、下の方のシェーダボールの右側の "hou" の文字の部分をクリック、メニューを開いてBrowse で "m_ver..." とタイプし始めると、M_VertexTranslucent というシェーダが選択可能になる。これを選択。
- M_VertexTranslucent をアサインしたあとに、Alpha のスライダを変更すれば Alpha による透過が UE4 のビューポートでも確認できる。
- M_VertexTranslucent のシェーダボールをダブルクリックしてエディタを開けば、このシェーダは非常に単純なシェーダであることがわかる。
まとめ
- Houdini で RGBA は Cd[3] と Alpha でも Cd[4] で持つことも可能。
- 現時点では、HoudiniのビューポートはCd[3]と Alpha を想定している。
- 頂点カラーなどを UE4 に渡すには、Cd[4] で渡すのが良い。
- Cd[4]で定義した Alpha は Houdini のビューポートに表示されないので、Alpha アトリビュートを別途作成、その間で参照できるようにする。これは今後改善されそう。
0 件のコメント:
コメントを投稿