2020-09-01

Edge selection with Houdini Engine for Maya


ここでは Maya で行ったエッジ選択を Houdini Engine プラグインでロードした HDA に渡す方法と新しい Launcher による Houdini のインストールに関して簡単に説明する。



使用したビルド:

スクリプト及びシーンファイルへのリンクは一番下にあり。

1. Houdini 18.0.567 .iso ファイル

Daily Build ダウンロードページから Houdini 18.0.567 を見に行くと、現時点では .iso のみの提供となっている。これをインストールするには

  1. ISO を CDROM の要領でマウントする。
  2. マウントしたスペースには Launcher のインストールオプションしかないので、これをインストール。その後、Launcher を起動し、右上のギアアイコンから Installation Source -> Choose Offline Install Source を選択し、マウントした場所の data ディレクトリを指定。
  3. Houdini インストール後、Houdini Engine のインストールが別途必要。これも Launcher から行う。
  4. ただし、Launcher から Maya プラグインをインストールした場合、module ファイルが正しく更新されていない可能性があるので、これを確認する。
    • module ファイルは、デフォルトでは、C:\Program Files\Autodesk\Maya2019\modules\houdiniEngine-maya2019 としてできる。
    • Launcher からインストールされた Houdini は新たに C:\Program Files\SideFX\Houdini18.0.567\としてインストールされる。
        Side Effects Software が SideFX となっただけでなく、Houdini とバージョン番号の間のスペースもなくなったことに注意。
  5. Maya を起動して Houdini Engine プラグインがロードできれば問題ない。

1a. 567 にアップデートできない場合 スクリプトの置き換え)

下記 zip ファイル内にある houdiniEngineSelection.pyC:\Program Files\Side Effects Software\Houdini 18.0.xxx\engine\maya\maya2019\scripts にペーストし既存のものを置き換える。

  • Houdini Engine for Maya プラグインがインストールされていることが前提。
  • 必要だと思えば既存の houdiniEngineSelection.py のバックアップを取っておく。

2. HDA の作成

以下の長い手順に沿ってアセットを作るのが面倒だと思うのであれば、hda ファイルをパスに配置して、「3. Maya プラグインでのコンポーネント選択の処理」に進む。

Houdini Enginie for Maya プラグイン経由で Maya でのコンポーネント選択を HDA で扱う上でのサンプル HDA が SideFX フォーラム で紹介されている。ただし、このファイルにはまだ問題が存在し、エッジ選択で動作しない。それを修正したのが 18.0.567。よって、このワークフローをもとにエッジでの操作を行う最も手っ取り早い方法は上記リンクから mayaSelectionToGroup.hda をダウンロードして変更を加えること。

  1. mayaSelectionToGroup.hda を HDA のパス (例えば My Documents/houdini18.0/otls/) に配置する。
  2. Houdini 18.0 を起動し、Windows ー> Asset Manager ないし、Assets -> Asset Manager... を実行する。
      どちらであっても Asset Manager ウィンドウが開く。
  3. Asset Manager の Operators タブ内の Operator Type Libraries > Scanned Asset Library Directories を展開し、上記のパスを探し、Sop/mayaSelectionToGroup をハイライト選択する。
  4. ハイライト選択した Sop/mayaSelectionToGroup 上で RMB->Duplicate... を実行。
    • Operator Name を、例えば、mayaEdgeBevel
    • Operator Label を、例えば、Maya Edge Bevel
    • Save to Library は そのままでも (この場合一つの .hda ファイルに二つのアセットができる)、別ファイル (例えば mayaEdgeBevel.hda) などにしても良い。
    • Accept を押して作業を確定する。
    Asset Manager は閉じてしまって良い。
  5. ネットワークエディタで Geometry ノードを作成し、その中に入り、TAB-> Digital Assets -> MayaEdgeBevel を実行。
  6. MayaEdgeBevel は入力ノードが必要なので、Torus なり Grid なりを作成し、Primitive Type をPolygon にし、MayaEdgeBevel に接続する。
  7. 出来た MayaEdgeBevel で RMB-> Allow Editing of Contents を実行。
  8. さらに RMB-> Type Properties を実行して Edit Type Properties ウィンドウを開き、Parameters タブに行く。
  9. Parameters タブに行き、中央の Existing Parameters 以下で Base Group (basegroup) をハイライト選択し、次の操作を行う。
    • 右側の Parameters タブ以下の Tag 以下で sidefx::maya_component_selection_type をハイライト選択、Tag Value を edge に設定。
    • Action Button タブをクリック。ここのスクリプトを以下のように書き換える
      import soputils;
      kwargs['inputindex'] = 0
      kwargs['geometrytype'] = hou.geometryType.Edges
      soputils.selectGroupParm(kwargs)
    この HDA のままだと Mountain を ポイントに対して実行しているが、これだとエッジに対する効果がわかり辛いので、Mountain の代わりに PolyBevel をエッジに対しかけられるようにする。
  10. mayaEdgeBevel1 の中に入り、PolyBevel ノード (polybevel1) を作成。
    • group1 の出力を polybevel1 に接続。
    • polybevel1 に表示フラグを設定。
    • polybevel1 の Group Type を Edges にする。
  11. group1 を選択し、
    • group1 の Group Type を Edges にする。
    • Intial Merge を Union with Existing にする。
  12. Edit Operator Type Property ウィンドウに戻り、
    • パラメータとして登録されている Height と Element Size を削除。
    • polybevel1 の Distance を追加。
    • polybevel1 に表示フラグを設定。
    Accept を押して確定し、RMB -> Save Node Type とすれば、任意のエッジに対し、Bevel がかけられるアセットとなる。

3. Maya プラグインでのコンポーネント選択の処理

作ったアセットを Maya に持ち込み、Maya のエッジ選択を検証する。

  1. Maya を起動し、Houdini Engine メニューより上記で作成した mayaEdgeBevel.hda をロードする。
  2. ジオメトリが必要なので、Poly Cube (pCube1) を作成。
  3. アウトライナなどで pCube1 を選択したまま、HDA (mayaEdgeBevel1) をShift 選択し、アトリビュートエディタで Set to Selection をクリック。
  4. Distance の値を上げると、ベベルがすべてのエッジにかかっているのがわかる。
  5. アトリビュートエディタの Copy Tab ボタンをクリックして、エディタをフロート状態に切り離す。
  6. ビューポートで pCube1 をクリック、RMB->Edge 選択モードに移り、pCube1 上のエッジをいくつか選択し、浮いている方のアトリビュートエディタ (mayaEdgeBevel1 ノードが編集状態) で Base Group 脇の Use Selected Edges をクリック。
      すると Base Group に p2-3 p1-3 p3-5 などと Houdini のエッジ選択形式で入る。
  7. pCube1 を選択し、Ctrl+H で隠すと、mayaEdgeBevel1 の結果が現れる。
      隠した pCube1 を改めて表示するには Shift+H。

シーンファイル

0 件のコメント:

コメントを投稿