On this page |
特定のアセットをMayaのコンストラクションヒストリーとして直接接続できるようになりました。 通常、SOPアセットはメッシュコンストラクションヒストリーとして適切に機能し、より複雑な出力を持ってしまう可能性があるObjectアセットは、旧式のアセット構造でもっと上手く機能します。 ただし、ジオメトリの入力と出力をそれぞれ最低でも1つ含んでいるアセットであれば、それをコンストラクションヒストリーとして適用することができます。
Mayaコンストラクションヒストリーとしてのアセット ¶
ヒストリーアセットとクラシックアセットとの違いは、Mayaオブジェクトとの接続方法です。 大まかには、以下を想定しています:
-
アセットノードは、ターゲットのMayaジオメトリの上流で接続され、新しいシェイプは作成されません。
-
ヒストリーアセットは、直接チェーン接続するか、または、ネイティブのMayaヒストリーノードと混在させることができます。
-
ヒストリーアセットは、メッシュに、または、メッシュ上のコンポーネント選択に適用することができます。
これが機能するには、以下を前提とします。アセットが以下の基準を満たさない場合は、クラシックアセットとして使用を続ける必要があります。
-
既存のメッシュヒストリーが、1番目の入力に接続されます。
-
1番目の出力が既存のメッシュシェイプに接続され、その他すべての出力は無視されます。
-
追加の入力をヒストリーアセットに接続できますが、関係があるのは1番目の出力への影響のみです。
-
ターゲットメッシュにコンストラクションヒストリーがない場合、ターゲットメッシュシェイプのコピーを上流にプッシュして、ヒストリーチェーンを固定します。
-
フェースまたは頂点コンポーネント選択がある場合、入力ジオメトリ上に適切なタイプのグループを作成します(inputPrimitiveComponentまたはinputPointComponentという名前)。アセットがこの名前のコンポーネントグループを使用しない場合、何も作用しません。
-
ヒストリーアセットを同期してはいけません。その出力は、元のターゲットシェイプに接続したままにする必要があります。アセットに複数の出力がある場合は、クラシックアセットとして適用する必要があります。
以下は、ヒストリーアセットを操作するための追加メニューアイテムです:
-
addAssetToHistory
-
removeAssetFromHistory
-
deleteHistory
-
hideAssetNodes
houdiniAssetノードは、Syncによって出力Mayaジオメトリシェイプを作成するのに必要な情報と、作成後にそれらのノードを接続するためのMayaジオメトリデータの両方を出力します。
アセットをヒストリーに追加する ¶
選択した既存のアセットノードをヒストリーとして、選択したメッシュに適用します。
選択したメッシュにヒストリーとしてアセットを追加するためのMELコマンドは以下の通りです:
houdiniEngine_addHistory($assetNode)
ヒストリーからアセットを除去する ¶
ネイティブのMayaヒストリーノードが削除されると、Mayaは上流と下流のヒストリーのギャップを再接続します。Mayaはプラグインノードをヒストリーとして認識しないため、このコマンドによって、アセットノードと関連するinputGeometryノードを削除して、ヒストリーのギャップを再接続します。
対応するMELコマンドは以下の通りです:
MEL ¶
houdiniEngine_removeHistory($assetNode);
ヒストリーを削除する ¶
ネイティブのMaya Delete Historyコマンドが使用されると、Mayaはプラグインノードをヒストリーとして認識するため、最も近い上流アセットノードまでさかのぼってヒストリーを削除します。 このコマンドは、houdinAssetノードとそのヒストリーを含むコンストラクションヒストリーを削除するためのものです。
対応するMELコマンドは以下の通りです:
MEL ¶
houdiniEngine_deleteHistory($meshShape);
アウトライナでアセットを表示/非表示する ¶
ヒストリーアセットノードはトランスフォームノードから派生していますが、その下では出力を親子化しないため、アウトライナでアセットを表示してもあまり役に立たないことがあります。 Show/Hideサブメニューには、3つのオプションがあります。
-
Hide all Assets in Outliner
-
Hide history Assets in Outliner
-
Show All Assets in Outliner
これらのメニューアイテムは、アセットノードでhiddenInOutlinerアトリビュートを設定しその表示方法を制御します。
対応するMELコマンドは、以下の通りです:
MEL ¶
houdiniEngine_showOutliner(int $show, int $history)
シェルフからアセットを適用する ¶
便利なことに、お気に入りのHoudiniアセットをメッシュに直接適用するシェルフボタンがあります。
シェルフボタンを使用すると簡単にこれを行なえますが、最初にシェルフボタンが押された時にプラグインが既にロードされているとは限りません。
以下は、シェルフボタンのサンプルです。サンプルのextrudeアセットのロードや接続を試みる前に、プラグインのロードとUIファイルのソーシングを行ないます。
これは現在(17.0 Beta)、アセットが$HOUDINI_MAYA_ASSET_PATH
内のどこかがデフォルトアセット位置にあると想定したものですが、Betaのフィードバックに応じて変更される可能性があります。
MEL ¶
if(!`pluginInfo -query -loaded houdiniEngine`) loadPlugin houdiniEngine; if(!`exists houdiniEngine_loadAndAddHistory`) source houdiniEngineHistoryAsset; if(!`exists houdiniEngine_findAsset`) source houdiniEngineUtils; $assetNode = `houdiniEngine_loadAndAddHistory "extrude.hda" "Object/extrude"`;