On this page |
プラグインは、Mayaメッシュの入力と出力の両方に対応しています。
入力 ¶
Mayaメッシュは、Houdiniアセットにポリゴンとして入力されます。 Mayaメッシュを入力すると、プラグインは、さらにそのメッシュに関する様々な他の情報を追加Houdiniジオメトリアトリビュートとして格納します。
法線 ¶
アトリビュート |
タイプ |
説明 |
---|---|---|
|
vertex float3 |
すべての頂点の法線を格納します。 |
|
vertex int |
頂点の法線がロックされているかどうかを格納します。 値がゼロ以外の場合、その法線はロックされています。 値がゼロの場合、その法線はロック解除されています。 |
|
vertex int |
頂点で表現されているエッジがハードエッジかどうかを格納します。 Mayaでは、これはエッジのプロパティです。 しかし、Houdiniにはエッジアトリビュートの概念がないため、そのプロパティはエッジの1つ目の頂点に格納されます。 値がゼロ以外の場合、そのエッジはハードエッジです。 値がゼロの場合、そのエッジはスムーズです。 アセットの作成時、 Convert Maya Hard Edge to Group シェルフを使用することで、 |
UV ¶
アトリビュート |
タイプ |
説明 |
---|---|---|
|
vertex float3 |
頂点のUVを格納します。各UVセットは、異なるアトリビュートとして格納されます。 |
|
Detail文字列タプル(サイズはUVセットの数です) |
|
|
Detail文字列タプル(サイズはUVセットの数です) アセットはこれを使用して、Mayaの元のUVセットの名前を照会することができます。
例えば、アセットが dirt という名前のMaya UVセットを必要としている場合、アセットはまず |
|
|
Detail文字列 |
現在のUVセットの名前を格納します。 |
カラーセット ¶
アトリビュート |
タイプ |
説明 |
---|---|---|
|
vertex float3 |
|
|
vertex float |
各カラーセットの頂点カラーおよびアルファを格納します。 各カラーセットのカラーとアルファは、個別のアトリビュートとして格納されます。 Alphaアトリビュートは、Mayaカラーセットにアルファが含まれている場合にのみ存在します。 |
アセットはこのアトリビュートセットを使用して、Mayaの元のカラーセットの名前を照会することができます。
maya_colorset_name
には、Mayaのカラーセットの元の名前を格納し、maya_colorset_mapped_Cd
とmaya_colorset_mapped_Alpha
には、Houdiniの呼応するVertexアトリビュートの名前を格納します。
例えば、アセットが diffuse という名前のMayaカラーセットを必要としている場合、アセットはまずmaya_colorset_name
文字列から diffuse を検索します。
それが2番目の要素に該当したとします。
次にアセットはmaya_colorset_mapped_Cd
文字列のその2番目の要素にアクセスし、Houdiniアトリビュートの呼応する名前を探します。
そのアトリビュート名はおそらくCd2
でしょう。
アトリビュート |
タイプ |
説明 |
---|---|---|
|
Detail文字列タプル |
サイズはカラーセットの数です。 |
|
Detail文字列タプル |
サイズはカラーセットの数です。 |
|
Detail文字列タプル |
サイズはカラーセットの数です。 |
|
Detail文字列 |
現在のカラーセットの名前を格納します。 |
|
Detail文字列 |
サイズはカラーセットの数です。 このアトリビュートは、マッピングされたカラーセットのそれぞれのカラー表現を記録します。 RGBA、RGB、AなどのMaya UI表現名が使用されます。 また、入力カラー表現に基づいて、呼応するCdおよびAlphaアトリビュートを作成するかどうか決めますが、出力上のカラーマッピングからカラー表現を再構成するよりも、明示的にカラー表現を維持する方が簡単だと思います。 |
Note
Mayaは空っぽのカラーセットと部分的なカラーセットをサポートしていますが、Houdiniはそれをサポートしていません。 そのため、設定されていないカラーはすべてデフォルトに初期化されます(設定されてないRGBとRGBAがHoudiniに送られる場合は黒、Houdiniにアルファのみがある場合、Mayaに戻されるのは白)。 設定されていないアルファは1に設定されます。
シェーディンググループ ¶
アトリビュート |
タイプ |
説明 |
---|---|---|
|
PrimitiveまたはDetail文字列 |
オブジェクトまたは各ポリゴンに割り当てられているシェーディンググループの名前を格納します。 |
コンポーネント選択 ¶
メッシュコンポーネントを選択し、入力に対してaddToSelectionを実行すると、inputGeometryノードにinputComponentsアトリビュートが設定され、入力ジオメトリに呼応するグループが作成されます。 そのグループが何か効果を持つようにするには、さらにアセットが名前の付いたコンポーネントグループを使用している必要があります。 このinputComponentsアトリビュートはタイプがcomponentList型なので、アトリビュートエディタに表示されませんが、以下のようにしてアトリビュートを設定することができます:
setAttr houdiniInputGeometry1.inputComponents -type "componentList" 5 "f[106:116]" "f[126:136]" "f[146:156]" "f[166:176]" "f[186:196]" ; getAttr houdiniInputGeometry1.inputComponents; // Result: f[106:116] f[126:136] f[146:156] f[166:176] f[186:196] //
コンポーネント選択に使用するグループは、houdiniInputGeometryノードが作成された後に指定することができます。 この例では、プリミティブグループを指定されていますが、ポイント選択はそのHDAには関係していないのでポイントグループは指定されていません。
コンポーネントが選択されていても、グループが指定されていない場合は、デフォルトグループが作成されます。
-
inputPrimitiveComponent
- フェースを選択 -
inputPointComponent
- 頂点を選択
Sets ¶
メッシュが属しているほぼすべてのMaya Setは、Houdiniプリミティブグループに変換されます。
Mayaツールによって内部的に使用されている特定のタイプのSetは省略されます。
その理由は、出力ジオメトリからのコンポーネントをそのタイプのSetに追加するとMayaツールが適切に動かない可能性があるためです。
その特定のタイプのSetには、verticesOnly、edgesOnly、editPointsOnly
、renderableOnly
が含まれます。
houdiniInputGeometry
ノードには、facetsOnly Setを含めるためのオプションが追加されています。
出力 ¶
Houdiniアセットから出力されるポリゴンは、Mayaメッシュとして出力されます。 そのポリゴンが出力されると、プラグインは様々なHoudiniジオメトリアトリビュートを認識します。 認識されたアトリビュートは、Mayaの同等のアトリビュートに変換されます。
法線 ¶
アトリビュート |
タイプ |
説明 |
---|---|---|
|
vertex float3 |
すべての頂点の法線を設定します。 |
|
Vertex int |
頂点の法線をロックするかどうかを設定します。 値がゼロ以外の場合、法線はロックされます。 値がゼロの場合、法線はロック解除されます。 |
|
Vertex int |
頂点によって表現されているエッジをハードエッジにするかどうかを設定します。 Mayaでは、これはエッジのプロパティです。 しかし、Houdiniにはエッジアトリビュートの概念がないため、プロパティはエッジの1つ目の頂点に格納されます。 値がゼロ以外の場合、エッジはハードエッジです。 値がゼロの場合、エッジはスムーズです。 アセットの作成時、 Convert Maya Hard Edge to Attribute シェルフを使用することで、 |
UV ¶
アトリビュート |
タイプ |
説明 |
---|---|---|
|
point,vertex float2,float3 |
頂点のUVを割り当てます。それぞれのUVアトリビュートは、異なるUVセットの割り当てに使用されます。 |
|
Detail文字列タプル |
サイズはUVセットの数です。 |
|
Detail文字列タプル |
サイズはUVセットの数です。 このアトリビュートセットは、Houdini UVアトリビュートの名前をMayaのUVセットの名前にマッピングするのに使用されます。
マッピング情報をHoudiniで作成されたメッシュに追加する時、または、新しいUVセットをMayaで作成されたメッシュの出力に追加する時は、Pythonノードを使用して文字列アトリビュートを作成したり、そのサイズを設定することができます(詳細は、カラーセットのセクションのサンプルを参照してください)。 |
|
Detail文字列 |
現在のUVセットを設定します。 |
カラーセット ¶
アトリビュート |
タイプ |
説明 |
---|---|---|
|
Detail, Primitive, Point, Vertex float3 |
|
|
Detail, Primitive, Point, Vertex float |
各カラーセットの頂点カラーおよびアルファを設定します。 Alphaアトリビュートは任意です。 |
|
Detail文字列タプル |
サイズはカラーセットの数です。 |
|
Detail文字列タプル |
サイズはカラーセットの数です。 |
|
Detail文字列タプル |
サイズはカラーセットの数です。 |
このアトリビュートセットは、HoudiniのカラーおよびAlphaアトリビュートの名前をMayaのカラーセットの名前にマッピングするのに使用されます。
maya_colorset_name
は、Mayaのカラーセットの名前を設定し、maya_colorset_mapped_Cd
とmaya_colorset_mapped_Alpha
は、HoudiniのカラーおよびAlphaアトリビュートをMayaの対応するカラーセットにマッピングするのに使用されます。
マッピング情報をHoudiniで作成されたメッシュに追加する時、または、新しいカラーセットをMayaで作成されたメッシュの出力に追加する時は、Pythonノードを使用して文字列アトリビュートを作成したり、そのサイズを設定することができます:例えば、
cs_mapped_Cd = geo.addAttrib( hou.attribType.Global, "maya_colorset_mapped_Cd", "Cd") cs_name = geo.addAttrib( hou.attribType.Global, "maya_colorset_name", "NewCol") cs_mapped_Alpha = geo.addAttrib( hou.attribType.Global, "maya_colorset_mapped_Alpha", "Alpha") cs_mapped_Cd.setSize(2) cs_name.setSize(2) cs_mapped_Alpha.setSize(2) geo.setGlobalAttribValue( "maya_colorset_mapped_Cd", ("Cd", "Cd2") ) geo.setGlobalAttribValue( "maya_colorset_name", ("NewCol","NewCol11")) geo.setGlobalAttribValue( "maya_colorset_mapped_Alpha", ("Alpha", "Alpha1"))
アトリビュート |
タイプ |
説明 |
---|---|---|
|
Detail文字列 |
現在のカラーセットを設定します。 |
|
Detail文字列タプル |
サイズはカラーセットの数です。 Mayaからでない、新しいカラーアトリビュートを追加した場合、maya_colorRepアトリビュートを使用して出力カラーセットにカラー表現を設定したり、どのカラーチャンネルを出力に設定するのかを決めることができます。 RGBA、RGB、AなどのMayaのUI表現名が使用されます。 maya_colorRepが見つからない場合や有効でない場合、またはカラーセットにマッピングが指定されていない場合は、結果のカラーセットはRGBAになります。 |
シェーディンググループとマテリアル ¶
アトリビュート |
タイプ |
説明 |
---|---|---|
|
primitive string |
Mayaの名前を付けたシェーディンググループをポリゴンに割り当てますシェーディンググループは、シーンに既に存在している必要があります。 ファイルテクスチャがMaya向けにベイクされているマテリアルがHDAにある場合は、出力テクスチャに対する変更が更新されるのを確認できるようにするために、MayaのDisplayプリファレンスで |
Sets ¶
すべてのHoudiniプリミティブグループはMaya Setに変換されます。 Maya Setがまだ存在していない場合は作成されます。
Note
Houdiniグループはクックの度に簡単に変更できます。 Maya Setはディペンデンシーグラフレベルで作成および変更されるため、Houdiniグループよりも変更が簡単ではありません。 そのため、この方法でHoudiniグループを出力すると、同期の問題が生じます。 Houdiniグループに変更がある場合、同期されるまで、その変更はMayaに反映されません。
対応していないポリゴン ¶
アセットが出力するジオメトリには、Mayaが対応していないポリゴンが含まれている場合があります。 そのようなポリゴンは同じポイントを参照した複数の頂点を持っていて、Houdiniではブリッジや穴に使用されています。 そのようなポリゴンが発生しやすいソースは粉砕ジオメトリです。
Mayaは、そのようなポリゴンを内部的に変換します。 しかし、これによってトポロジーが変わってしまい、結果として他のHoudiniアトリビュート(UVやカラーなど)をその変換されたポリゴンにもはや適用できなくなります。 プラグインはそのようなポリゴンを検出すると警告メッセージをプリントします。
複数のピース ¶
入力 ¶
複数のMayaメッシュは、それぞれのアセット入力に接続することができます。 1つの階層または複数のオブジェクトを選択して、 Set to Selection を行ないます。 各メッシュのシェイプが個別に入力され、すべての入力がHoudini側でMerge SOPを使用して結合されます。 入力を追加または削除するには、目的の入力を選択し、再度 Set To Selection を行ないます。
出力 ¶
Houdiniからジオメトリを出力する際、ジオメトリを分割してMayaメッシュオブジェクトにしたい場合があります。 例えば、ジオメトリを粉砕する場合です。残念ながら、現在のところ理想的な解決策はありません。 しかし、いくつか試すことのできる回避策があります。
1つは、Houdiniグループを利用する方法です。アセットが個別のピースを個別のHoudiniグループに配置して、それがMaya Setに変換されます。 その後Maya内部では、Maya Setを使用して個々のピースを特定し操作することができます。
もう1つは、Mayaの Edit Mesh → Separate を使用して、メッシュを異なるオブジェクトに分割する方法です。 ただしこれは、ピースが既に個別のシェルの場合にのみ可能です。