注意点
Apprentice で作成された Houdini デジタルアセットは Houdini Engine や Houdini Engine Indie で使用できません。Houdini内では使用できますが、Houdini Engineプラグインを通して他のツールで使用できるHoudiniデジタルアセットを作成することができません。
そのため、今回のチュートリアルでApprenticeを使用している方は、Houdini Engineを使用した部分は進めることができません。予めご了承ください。
デジタルアセットの作り方に関しては、「【初心者向けHoudiniトライアル004】HoudiniデジタルアセットをHoudiniで使用するアレコレ」をご確認ください。
使用するデータのダウンロード
商用版(HoudiniFX/Core)の方はこちらからデジタルアセットをダウンロード
※前回までに作成したデジタルアセットで、2つ目のRemeshが非常に広い範囲だと計算にかなり時間がかかることがわかりました。そのため、2つ目のRemeshを削除しています。
使用するHoudiniバージョン
Houdini 18.0.460
Houdini Engineプラグイン
前回の説明でHoudiniデジタルアセットを説明しました!
このHoudiniデジタルアセット自体はHoudini内で使用することがもちろんできますが、UnityやUnrealのようなゲームエンジン上、またはMayaや3dsMaxのようなDCCツール内で、このアセットをプラグインのように使いたいと思います。
これを実現するのがHoudini Engineという技術です。Houdini Engineは誰でも他のアプリケーションのためにプラグインを書くことを可能にするAPIです。現在、SideFXからはUnreal、Unity、Maya、3ds Max用プラグインが提供されています。
Houdini Engineのインストール
Houdini Engineプラグインのインストーラーは、Houdini本体のインストーラーと同じです。
Houdini本体インストーラーを実行し、途中でどのHoudini Engineプラグインをインストールするかをチェックします。
今回はHoudini Engine for Mayaで、Houdiniデジタルアセットを使用する方法を試してみましょう。
Houdini Engine for Maya ドキュメント
Houdini Engine for Mayaが正しくロードされているか確認する
基本的にはインストール後、MayaのプラグインマネージャーでHoudini Engine for Mayaをロードする事で使用できるようになります。
Houdini Engine がサポートしているMaya前バージョンのプラグインはHoudiniインストールディレクトリ\engine\maya内に保存されています。(デフォルト:C:\Program Files\Side Effects Software\Houdini 18.0.460\engine\maya)
通常、Maya がデフォルトの場所にローカルにインストールされている場合、インストー ラはプラグインを Maya に登録するために必要な手順を実行します。しかし、別のバージョンの Maya を後からインストールした場合等、プラグインが自動的に Maya に登録されない場合があります。このような場合、プラグインを Maya に登録するための追加の手順が必要になることがあります。
デフォルトインストールでHoudini Engine がMayaに表示されない場合
Windowsなどでプラグインを登録するには、ファイルをコピーします。
例えば、Houdini18.0.416のMaya2019用プラグインをコピーする場合、下記のファイルを
C:\Program Files\Side Effects Software\Houdini 18.0.460\engine\maya\maya2019\houdiniEngine-maya2020
下記のディレクトリへコピーします。
C:\Program Files\Autodesk\Maya2019\modules
または、Linuxでは、下記ファイルを
/opt/hfs18.0.460/engine/maya/maya2020/houdiniEngine-maya2019
下記ディレクトリへコピーします。
/usr/autodesk/maya2019/modules
Mayaを起動し、Plug-ins Managerを開きます。
Houdini EngieのLoadedとAuto loadを有効にします。
メニューにHoudini Engieが追加されたことを確認します。
Houdini デジタルアセットをMayaにロードする
- Houdini Engine>Load Assetを選択します。
- 自分で作成したまたはダウンロードしたrope.hdaを選択しOpenボタンをクリックします。
Houdini デジタルアセットが読み込まれると、Attribute Editorが開き、そこにデジタルアセットのオプションが表示されます。
このデジタルアセットは2つの入力を必要とします。しかし、入力名がSub-Network Input #となっていてそれぞれ何が必要なのかわかりません。
そこで、このアセットをHoudiniで開き、オプション名を変更したいと思います。 - Outlinerを表示し、rope1を選択します。
- Houdini EngineメニューからDebugging>View Assets in Houdiniを選択します。
Houdiniが起動すると、HDAが既に読み込まれていることがわかります。 - ropeジオメトリをダブルクリックして中に入ります。
入力にマウスのカーソルを合わせると、入力名がSub-Network Inpt #1になっていることがわかります。 - rope1 デジタルアセットをダブルクリックして中に入ります。
下記のようになっており、Sub-Network Input #1は、ロープを巻き付ける断面を定義するグリッド、Sub-Network Input #2は、ロープを巻き付けるジオメトリノードを入力することがわかります。 - uキーを押して、rope デジタルアセットの外にでます。
- ropeデジタルアセットを右クリックし表示されたメニューからType Propertiesを選択します。
- Type Propertiesウィンドウが開いたら、Input/Outputタブを選択してください。
ここで、各入力にLabelを設定することができます。
下記のように名前を変更してください。 - 名前を変更で来たら、Applyボタンをクリックします。
クリックすると、下記のような注意が表示されます。
現在、デジタルアセットが変更できないようにロックがかかっています。 - Unlock and Saveをクリックして、Type Propertiesウィンドウの変更を保存します。
Unlock and Saveを押すことで入力名の変更が保存され、デジタルアセットも編集可能な状態にロックが解除されました。 - Acceptボタンをクリックし、Type Propertiesウィンドウを閉じてください。
- 更にデジタルアセットの中身を変更します。
- Cleanの後にNormalノードを追加して、ノーマルをジオメトリに追加します。
- uキーを押して、ネットワークを上がり、デジタルアセット上で右クリックします。
- Save Node Typeを選択し、デジタルアセットの変更を保存します。
- Mayaに戻り、rope1を選択します。
- Houdini Engine>Reload Assetを選択します。
- そのままUIは更新されないため、rope1の選択を解除し、再度選択します。
入力名が無事更新されていることがわかります。
デジタルアセットの入力にMayaジオメトリを設定する
実際にMayaのジオメトリにHoudiniデジタルアセットを使用して、ロープを設定してみます。
- Mayaで下記のようにロープを設置したいジオメトリ(1つに統合する必要があります)と、ロープを設置する場所を決めるプレーンを作成します。
この時に、ロープを設置するオブジェクト全体を囲んだ空間があまりにも大きいとRemeshにとても時間がかかります。 - ropeデジタルアセットのAttribute Editorを開きます。
- Outlinerからマウスの中ボタンを使用し、ロープを設置したいジオメトリへドラッグします。
- Enterキーを押し確定します。
- 次にOutlinerからマウスの中ボタンを使用し、プレーンをドラッグします。
- ドラッグしたら、Enterキーを押してください。
Cookが始まり、画面下に計算中であるスライダーが表示されます。 - クックが完了すると下記のようにロープが作成されます。
- ロープが細いのでRope RadiusやDivide Lengthを調整しRopeの外観を修正してください。
もしパラメーターの最大値を変更したい場合は、Debbug ModeでHoudiniでアセットを開きType Propertiesウィンドウにてパラメーター設定を変更することができます。
但し、この状態はHoudini デジタルアセットの結果を計算し生成しています。そのため、シーンを保存し、再度開きなおすと、Ropeデジタルアセットが再計算されます。
再計算が必要になるということは、HoudiniEngineのライセンスが必要になるため、ライセンスがない場所では開けなくなります。
そのため、ここで形状が固まったら、ropeアセットをデジタルアセットから切り離す必要があります。
Bake Asset、Freeze Asset、Delete Historyに関して
Houdini Engineのメニューをみると、Bake、Freezeなどいくつかのメニューがあります。
現在のデジタルアセットの構造は下記のようになっています。
Bake Asset
アセットのすべての出力が切断され、子ノードがhoudiniAssetノードから分離されます。
- Houdini デジタルアセットを選択し、Baks Assetを実行します。
現在のデジタルアセットから分離したMayaジオメトリとしてropeデータ作成されました。この場合、元のHoudini デジタルアセットノートは残っているため、そのまま新しい設定を適用することも可能です。
Freeze Asset
アセットをフリーズすることで、アセットの出力をキャッシュし、エンジンでのアセットのロードとクッキングを無効にすることができます。これにより、フリーズしたアセットを持つMayaシーンをhoudini以外のアーティストに渡すことができ、そのアーティストはエンジンのライセンスを取得することなく、シーンをロードしてhoudini以外の部分で操作することができます。
- Houdini デジタルアセットを選択し、Houdini Engine > Freeze Assetを実行します。
新しいデータが作成されるわけではありません。クックできないようになっているため、デジタルアセットのパラメーターも変更することはできません。
ただし、シーンを保存して、再度開きなおすときクックが行われないためシーンを開くことにかかる時間を短くすることができます。
また、Houdini Engineライセンスが取得できない環境で開く必要がある場合、Freezeしておくとデータを壊さず開くことができます。 - Houdini Engine > Unfreeze Assetを選択します。
再度クックされ、パラメーターの変更が可能になります。
Bakeしたジオメトリは再度Houdiniデジタルアセットに戻すことはできませんが、Freezeは、再度Houdini Engineでクックされる状態に戻すことができます。
History
一部のアセットは、Maya コンストラクション ヒストリーとして直接ネットワーク接続できるようになりました。SOP アセットはメッシュのコンストラクション ヒストリーに適しており、オブジェクト アセットはより複雑な出力が可能です。
Houdini デジタルアセットをノードエディタで確認すると、下記のように入力と出力をネットワークとしてみることができます。
入力を変えたい場合、Attribute Editorから接続を行うこともできますし、ノードエディタにて接続を変更することも可能です。
Delete History
通常のMaya Delete Historyは、
Maya標準のDelete Historyを実行する前はこのような感じです。
Delete Historyを行うと、Shapeノードのin Meshの入力は削除されますが、それ以外の接続が残るため、ヒストリー全体を削除することができません。
- Houdini Engine > Delete Historyを実行します。
Shapeに接続されていた、Houdini Engineノードがヒストリーとして削除され、Mayaジオメトリノードのみになります。
Bakeとは異なり、Houdini デジタルアセットが、シーンから削除されます。
このレッスンではHoudiniデジタルアセットをMayaプラグインのように使用し、最終的にHoudiniから切り離す方法を学習しました!
次回からは、異なるレッスンを始めたいと思います。