unreal alpha handling

Houdini で定義したアルファ値を Unreal で読み込むための方法

使用したビルド: Houdini 15.5.730 (730 以降必須)

1. HDA 作成

  1. Torus を作成、I キーなり、ダブルクリックで中に入る。
  2. torus1 の出力から、TAB->Attribute Create を実行、attribcreate1 が出来る。
    1. 表示フラグ (青) を attribcreate1 に
    2. Name を Cd (C は大文字)
    3. Class を Vertex
    4. Type は Float のまま
    5. Size を 4 にする (これにより RGBA によるデータの格納が可能)
    6. Value を {0, 0, 1, 0.5 } (青、すぐに上書きされるので何でも良い。)
  3. attribcreate1 の出力から、TAB->Color を実行、color1 が出来る。
    1. 表示フラグ (青) を color1 に
    2. Class を Vertex
    3. Color Type を Random
  4. color1 の出力から、TAB->Attribute Create を実行、attribcreate2 が出来る。
    1. Name を Alpha (A は大文字)
    2. Class を Vertex
    3. Type は Float のまま
    4. Value を 0.5 とする。
  5. attribcreate2 の Value (0.5) 上で、RMB->Copy Parameter を実行
  6. attribcreate1 のValue のフィールド、先に 0.5 としたところで、RMB->Paste Copied Relative Reference とする。
      これにより attribcreate1 のCd[3] (RGBA の A) の値が
      ch("../attribcreate2/value1v1")
      と記述され、attribcreate2 の Alpha の値でコントロールされる。
  7. attribcreate2 の出力から TAB->Null を作成、null1 ができる。このノードを OUT などと改名、表示およびレンダリングフラグを指定。
  8. ここまで作成した 5つのノードをすべて選択、Create Subnet from Selected ボタンをクリックして、サブネットワークに入れ、名前を vtx_alpha_test などとする。
  9. vtx_alpha_test を選択、RMB->Create Digital Asset を実行。ファイル名、ディレクトリ名を決定。Accept を押す。
  10. Accept を押したことにより表示される Edit Operator Type Properties ウィンドウの Parameters タブ以下で attribcreate2 の Vlaue パラメータを Existing Parameters リストにドラッグ&ドロップ。
    1. Name を Cd_Alpha
    2. Label を Cd Alpha
    3. Type を Color and Alpha
    4. Range のトグルをオンにして、最小値と最大値を 0 と 1
    とし、Apply, Accept を押して閉じる。
  11. 次に進む前に vtx_alpha_test ノード上で RMB->Save Node Type で保存。

2. Unreal での読み込み

  1. Unreal を起動、プロジェクト (何でも良い) を開く。
  2. Content ブラウザに作成した HDA をドラッグ&ドロップ。
  3. Content ブラウザに登録された HDA をビューポートにドラッグ&ドロップ。

      ビューポートを見ると 0.5 に設定した Alpha の値が使われていないように見える。
  4. 右下の Alpha のスライダを調整してもビューポートに効果が現れない。

3. Unreal でシェーダの調整

Houdiniがデフォルトで使用しているシェーダは Alpha 値を考慮していない。そこでシェーダを入れ替える必要がある。

  1. Unreal 画面右下の Houdini Generated Meshes をクリックして開く。
  2. 2つあるアイコンのうち、下の方のシェーダボールの右側の "hou" の文字の部分をクリック、メニューを開いてBrowse で "m_ver..." とタイプし始めると、M_VertexTranslucent というシェーダが選択可能になる。これを選択。
  3. M_VertexTranslucent をアサインしたあとに、Alpha のスライダを変更すれば Alpha による透過が UE4 のビューポートでも確認できる。
  4. M_VertexTranslucent のシェーダボールをダブルクリックしてエディタを開けば、このシェーダは非常に単純なシェーダであることがわかる。

まとめ

  • Houdini で RGBA は Cd[3] と Alpha でも Cd[4] で持つことも可能。
      現時点では、HoudiniのビューポートはCd[3]と Alpha を想定している。
  • 頂点カラーなどを UE4 に渡すには、Cd[4] で渡すのが良い。
      Cd[4]で定義した Alpha は Houdini のビューポートに表示されないので、Alpha アトリビュートを別途作成、その間で参照できるようにする。これは今後改善されそう。

0 件のコメント:

コメントを投稿