Material Assignment

ここでは、Houdini でのマテリアルのアサイン方法を、オブジェクト単位、グループ単位、SHOP Networkの作成の3つに分けて説明する。

使用したバージョン: 14.0.361
シーンファイルへのリンクは一番下にあり。

1. オブジェクト単位でのアサイン

オブジェクト単位でマテリアルをアサインするには、オブジェクトノードのMaterial タブでマテリアルをアサインする。

  1. Create シェルフから Torus を Ctrl キーを押しながらクリック。トーラス (torus_object1) が原点に作成される。
  2. Material Palette を開き、Mantra Surface を左のタブから右側 (/shop) にドラッグ&ドロップ。
  3. 配置されたマテリアル (mantrasurface)の Base Color を赤 (白以外何色でも良い)にする。
  4. torus_object1 の Material タブをクリック、Material 脇の Open floating operator chooser をクリックし、/shop/mantrasurface を選択。Accept ボタンを押して確定。
  5. これでオブジェクト単位でマテリアルがアサイン出来た。
  6. 解除するには、追加されたマテリアル名を削除。次に進むために、一度解除する。

2. グループ単位でのアサイン

グループ単位 (コンポーネント単位) でマテリアルをアサインするには、group ノードを使ってグループを定義、Material ノードを追加しグループ名を元にマテリアルをアサインする。

  1. ビューポートで、トーラスの上半分の面を選択。
    • Space + 3 で Front カメラビューに
    • 4 で Primitive (面) 選択モードに
    • Select Visible Geometry を OFF にする。
    • バウンディングボックス選択で上半分を選択。
    • Space + 1 で Perspective カメラビューに戻る。
  2. カーソルがビューポート内にある状態で、TAB->Groupとして選択面をグループに追加。
    • ネットワークエディタでは、/obj/torus_object1 の中に、torus1 -> group1 という形でノードが出来ている。

      group1 のNumber -> Pattern 以下には、"144-287" と設定されているはず。
  3. group1 の出力から TAB->Material ノードを作成。

    この Material ノード (material1) は M@yaでいうところのシェーディンググループ。
  4. material1 の 1 タブの Group に group1 を、Material に /shop/mantrasurface を設定。

    ディスプレイフラグをこのノードに設定すればトーラスの上半分だけが、赤く(もしくは設定した色に) なる。
  5. 先ほど同様 Material Palette を開き、Mantra Surface をもう一つ作成 (mantrasurface1)し、別の色 (青) を指定。
  6. material1 タブに戻り、Number of Materials を 1 から 2 に変更。
  7. 「2」のタブで、Group に !group1 (頭に"!" を付けると NOT となり、group1 で指定されたもの以外を指定可能) を、Material に /shop/mantrasurface1 を設定。
  8. これでオブジェクトの上半分が赤、下半分が青になった。

3. SHOP ネットワーク

通常マテリアルは、/obj/shop 以下に作られる。マテリアルの定義をノードネットワークの任意の位置に配置したい場合には、SHOP Network ノードを作成し、その中にマテリアルノードを配置。こうすることで、デジタルアセットを作成する時などにSHOP Networkノードごとアセット内にマテリアルを含めることが可能になる。

  1. Network パネルで /obj/torus_object1/ 内で TAB->SHOP Network を実行。

    shopnet1 ができる。
  2. Material Palette を開くと、元々あった /shop に加え、今作成した /obj/torus_object1/shopnet1 が追加されているのがわかる。
  3. /obj/torus_object1/shopnet1 に Checkerboard と UV Map の二つを追加。
  4. 先ほど作った material1 ノードをコピペ (Ctrl+C, Ctrl+V) し、material2 ノードを作成。
  5. material2 ノードの「1」タブで、Material 脇の Open floating Operator Chooser ボタンをクリック、
    1. uvmap を選択。
    2. Export Relative Path をオンにして Accept ボタンをクリックし確定する。
      これでマテリアルへのパスが "../shopnet1/uvmap" と相対パスで記述される。
  6. 「2」タブでも同様の操作を繰り返し、checkerboard を選択。以下のように設定される。

    ただし、ビューポートに表示されているトーラスにはテクスチャが正しく反映されていない。

    この理由はトーラスに UV の設定が無いから。
  7. ネットワークパネルで UV Texture ノードを作成、group1 と material 2 の間に挿入。

    これによりビューポート上にもテクスチャが正しく反映される。

    こうして作ったネットワークは/obj/torus_object1 以下にすべてのノードがあるため、デジタルアセットとして完結させやすい。

まとめ

  1. オブジェクト単位でマテリアルをアサインするには、オブジェクトノードのMaterial タブでマテリアルをアサインする。
  2. グループ単位 (コンポーネント単位) でマテリアルをアサインするには、group ノードを使ってグループを定義、Material ノードを追加しグループ名を元にマテリアルをアサインする。
  3. マテリアルの定義をノードネットワークの任意の位置に配置したい場合には、SHOP Network ノードを作成し、その中にマテリアルノードを配置。こうすることで、デジタルアセットを作成する時などにSHOP Networkノードごとアセット内にマテリアルを含めることが可能になる。
    • この場合、マテリアルまでのパスを相対パスで設定すること。
  4. テクスチャつきのマテリアルを使用する場合にはジオメトリに対してUVが必要。UVを与えるには UV Texture ノードまたは UV Project ノードなどを使う。UV に関する詳細はまた別の機会に。

シーンファイル:


最終更新: 2021-03-15

0 件のコメント:

コメントを投稿