On this page

プラグインは、Mayaメッシュの入力と出力の両方に対応しています。

入力

Mayaメッシュは、Houdiniアセットにポリゴンとして入力されます。 Mayaメッシュを入力すると、プラグインは、さらにそのメッシュに関する様々な他の情報を追加Houdiniジオメトリアトリビュートとして格納します。

法線

アトリビュート

タイプ

説明

N

vertex float3

すべての頂点の法線を格納します。

maya_locked_normal

vertex int

頂点の法線がロックされているかどうかを格納します。 値がゼロ以外の場合、その法線はロックされています。 値がゼロの場合、その法線はロック解除されています。

maya_hard_edge

vertex int

頂点で表現されているエッジがハードエッジかどうかを格納します。 Mayaでは、これはエッジのプロパティです。 しかし、Houdiniにはエッジアトリビュートの概念がないため、そのプロパティはエッジの1つ目の頂点に格納されます。 値がゼロ以外の場合、そのエッジはハードエッジです。 値がゼロの場合、そのエッジはスムーズです。

アセットの作成時、 Convert Maya Hard Edge to Group シェルフを使用することで、maya_hard_edge Vertexアトリビュートをmaya_hard_edgeエッジグループに変換することができます。 これにより、以降のアセットはハードエッジをエッジグループ表現として扱うことができます(たいていの場合、その方が簡単です)。

UV

アトリビュート

タイプ

説明

uv, uv2, uv3, …

vertex float3

頂点のUVを格納します。各UVセットは、異なるアトリビュートとして格納されます。

maya_uv_name

Detail文字列タプル(サイズはUVセットの数です)

maya_uv_mapped_uv

Detail文字列タプル(サイズはUVセットの数です)

アセットはこれを使用して、Mayaの元のUVセットの名前を照会することができます。 maya_uv_nameは、MayaのUVセットの元の名前を格納し、maya_uv_mapped_uvは、Houdiniの呼応するVertexアトリビュートの名前を格納します。 これら2つの文字列は同じ数の要素を持っている必要があります。

例えば、アセットが dirt という名前のMaya UVセットを必要としている場合、アセットはまずmaya_uv_name文字列から dirt を検索します。 それが2番目の要素に該当したとします。 次にアセットはmaya_uv_mapped_uv文字列のその2番目の要素にアクセスし、Houdiniアトリビュートの呼応する名前を探します。 そのアトリビュート名はおそらくuv2でしょう。

maya_uv_name

Detail文字列

現在のUVセットの名前を格納します。

カラーセット

アトリビュート

タイプ

説明

Cd, Cd2, Cd3, …

vertex float3

Alpha, Alpha2, Alpha3, …

vertex float

各カラーセットの頂点カラーおよびアルファを格納します。 各カラーセットのカラーとアルファは、個別のアトリビュートとして格納されます。 Alphaアトリビュートは、Mayaカラーセットにアルファが含まれている場合にのみ存在します。

アセットはこのアトリビュートセットを使用して、Mayaの元のカラーセットの名前を照会することができます。 maya_colorset_nameには、Mayaのカラーセットの元の名前を格納し、maya_colorset_mapped_Cdmaya_colorset_mapped_Alphaには、Houdiniの呼応するVertexアトリビュートの名前を格納します。

例えば、アセットが diffuse という名前のMayaカラーセットを必要としている場合、アセットはまずmaya_colorset_name文字列から diffuse を検索します。 それが2番目の要素に該当したとします。 次にアセットはmaya_colorset_mapped_Cd文字列のその2番目の要素にアクセスし、Houdiniアトリビュートの呼応する名前を探します。 そのアトリビュート名はおそらくCd2でしょう。

アトリビュート

タイプ

説明

maya_colorset_name

Detail文字列タプル

サイズはカラーセットの数です。

maya_colorset_mapped_Cd

Detail文字列タプル

サイズはカラーセットの数です。

maya_colorset_mapped_Alpha

Detail文字列タプル

サイズはカラーセットの数です。

maya_colorset_current

Detail文字列

現在のカラーセットの名前を格納します。

maya_colorRep

Detail文字列

サイズはカラーセットの数です。

このアトリビュートは、マッピングされたカラーセットのそれぞれのカラー表現を記録します。 RGBA、RGB、AなどのMaya UI表現名が使用されます。 また、入力カラー表現に基づいて、呼応するCdおよびAlphaアトリビュートを作成するかどうか決めますが、出力上のカラーマッピングからカラー表現を再構成するよりも、明示的にカラー表現を維持する方が簡単だと思います。

Note

Mayaは空っぽのカラーセットと部分的なカラーセットをサポートしていますが、Houdiniはそれをサポートしていません。 そのため、設定されていないカラーはすべてデフォルトに初期化されます(設定されてないRGBとRGBAがHoudiniに送られる場合は黒、Houdiniにアルファのみがある場合、Mayaに戻されるのは白)。 設定されていないアルファは1に設定されます。

シェーディンググループ

アトリビュート

タイプ

説明

maya_shading_group

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、editPointsOnlyrenderableOnlyが含まれます。 houdiniInputGeometryノードには、facetsOnly Setを含めるためのオプションが追加されています。

出力

Houdiniアセットから出力されるポリゴンは、Mayaメッシュとして出力されます。 そのポリゴンが出力されると、プラグインは様々なHoudiniジオメトリアトリビュートを認識します。 認識されたアトリビュートは、Mayaの同等のアトリビュートに変換されます。

法線

アトリビュート

タイプ

説明

N

vertex float3

すべての頂点の法線を設定します。

maya_locked_normal

Vertex int

頂点の法線をロックするかどうかを設定します。 値がゼロ以外の場合、法線はロックされます。 値がゼロの場合、法線はロック解除されます。

maya_hard_edge

Vertex int

頂点によって表現されているエッジをハードエッジにするかどうかを設定します。 Mayaでは、これはエッジのプロパティです。 しかし、Houdiniにはエッジアトリビュートの概念がないため、プロパティはエッジの1つ目の頂点に格納されます。 値がゼロ以外の場合、エッジはハードエッジです。 値がゼロの場合、エッジはスムーズです。

アセットの作成時、 Convert Maya Hard Edge to Attribute シェルフを使用することで、maya_hard_edgeエッジグループをmaya_hard_edge Vertexアトリビュートに変換することができます。 これにより、以降のアセットはハードエッジをエッジグループ表現として扱うことができます(たいていの場合、その方が簡単です)。

UV

アトリビュート

タイプ

説明

uv, uv2, uv3, …

point,vertex float2,float3

頂点のUVを割り当てます。それぞれのUVアトリビュートは、異なるUVセットの割り当てに使用されます。

maya_uv_name

Detail文字列タプル

サイズはUVセットの数です。

maya_uv_mapped_uv

Detail文字列タプル

サイズはUVセットの数です。

このアトリビュートセットは、Houdini UVアトリビュートの名前をMayaのUVセットの名前にマッピングするのに使用されます。 maya_uv_nameはMayaのUVセットの名前を設定するのに使用され、maya_uv_mapped_uvは呼応するHoudiniのUVアトリビュートの名前です。 これら2つの文字列は同じ数の要素を持っている必要があります。

マッピング情報をHoudiniで作成されたメッシュに追加する時、または、新しいUVセットをMayaで作成されたメッシュの出力に追加する時は、Pythonノードを使用して文字列アトリビュートを作成したり、そのサイズを設定することができます(詳細は、カラーセットのセクションのサンプルを参照してください)。

maya_uv_current

Detail文字列

現在のUVセットを設定します。

カラーセット

アトリビュート

タイプ

説明

Cd, Cd2, Cd3, …

Detail, Primitive, Point, Vertex float3

Alpha, Alpha2, Alpha3, …

Detail, Primitive, Point, Vertex float

各カラーセットの頂点カラーおよびアルファを設定します。 Alphaアトリビュートは任意です。

maya_colorset_name

Detail文字列タプル

サイズはカラーセットの数です。

maya_colorset_mapped_Cd

Detail文字列タプル

サイズはカラーセットの数です。

maya_colorset_mapped_Alpha

Detail文字列タプル

サイズはカラーセットの数です。

このアトリビュートセットは、HoudiniのカラーおよびAlphaアトリビュートの名前をMayaのカラーセットの名前にマッピングするのに使用されます。 maya_colorset_nameは、Mayaのカラーセットの名前を設定し、maya_colorset_mapped_Cdmaya_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"))

アトリビュート

タイプ

説明

maya_colorset_current

Detail文字列

現在のカラーセットを設定します。

maya_colorRep

Detail文字列タプル

サイズはカラーセットの数です。

Mayaからでない、新しいカラーアトリビュートを追加した場合、maya_colorRepアトリビュートを使用して出力カラーセットにカラー表現を設定したり、どのカラーチャンネルを出力に設定するのかを決めることができます。 RGBA、RGB、AなどのMayaのUI表現名が使用されます。 maya_colorRepが見つからない場合や有効でない場合、またはカラーセットにマッピングが指定されていない場合は、結果のカラーセットはRGBAになります。

シェーディンググループとマテリアル

アトリビュート

タイプ

説明

maya_shading_group

primitive string

Mayaの名前を付けたシェーディンググループをポリゴンに割り当てますシェーディンググループは、シーンに既に存在している必要があります。

ファイルテクスチャがMaya向けにベイクされているマテリアルがHDAにある場合は、出力テクスチャに対する変更が更新されるのを確認できるようにするために、MayaのDisplayプリファレンスでMaterialLoadingModeImmediate に設定することをお勧めします。

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 を使用して、メッシュを異なるオブジェクトに分割する方法です。 ただしこれは、ピースが既に個別のシェルの場合にのみ可能です。

Maya

はじめよう

入力および出力のジオメトリ

Houdini Engine for Mayaを使用する

リファレンス