【Maya】Bifrostことはじめ

Maya2019.2からBifrost2.0が使えるようになりました!

Maya のプラグインである Bifrost は、3D アーティストやテクニカルアーティストがすばやく簡単に本格的なエフェクトを作成できる新しいプログラミング環境を提供します。
テクニカルアーティストは、Bifrost グラフ エディタを使用してグラフをカスタマイズ作成し、スタジオでパッケージ化して、その場でアーティストに渡すことができます。
https://area.autodesk.jp/information/bifrost-2-for-maya/

とのことです。テクニカルアーティストなのでやらないといけないですね。しかたないですね。

というわけで簡単にノードを組んだりしてみます。

プラグインをロードしてBifrostのグラフエディタを開いてみる

f:id:tm8r:20190820094654p:plain
なにはともあれロードです。
ちょっとだけ時間がかかるので普段使わない場合はAutoLoadにはチェックしないようにしましょう😎

f:id:tm8r:20190820094714p:plain
Window>Bifrost Graph Editorで開きます。

ノードを組んでみる

f:id:tm8r:20190820094825p:plain
まずはCreate>New Graphから新しいグラフを作成します。

f:id:tm8r:20190820094950p:plain
Createにも右クリックメニューにもノードを作るようなメニューがありませんが、落ち着いてTabキーを押してみます。
すると作成可能なノード一覧とインクリメンタルサーチが表示されます。

f:id:tm8r:20190820154724p:plain
ためしにget_point_positionとset_point_positionというノードを追加し、上のように接続します。

流れでいうと以下のような感じです。

  1. inputでgeometryを外から取得する
  2. get_point_positionで指定geometryの頂点位置を取得
  3. set_point_positionで指定geometryの頂点位置をget_point_positionで取得した頂点位置に変更したgeometryを出力
  4. outputでset_point_positionが出力したgeometryを外から取得できるようにする

f:id:tm8r:20190820095027p:plain
次に作成したグラフ(birostGraph1)をMayaのノードと接続するためにノードエディタを開きます。

適当なCubeを作成し、OutMeshをbirostGraph1のGeometryに接続します。
結果はbifShape1というbifShabe型のノードに出力されるので、bifShape1をノードエディタで選択してマニュピレーターで適当に移動しておきましょう。
(bifShapeはビューポート上で掴めなかったりと色々扱いづらいですが、解決方法は後で説明します)

f:id:tm8r:20190820095303g:plain
適当に頂点を移動してみるとちゃんと変更が反映されています。
(これだとinputのgeometryを直接out_geometryに繋ぐのと変わらないですけど気にせずやっていきましょう)

出力結果をShapeに適用する

上に書いたとおりbifShapeは扱いづらいので、次は出力結果をMayaの通常のShapeに適用してみましょう。

f:id:tm8r:20190820095546p:plain
ノードエディタでTabキーを押して、「Maya」と入力してbifrostGeoToMayaが表示されたらクリックしてノードを追加します。

f:id:tm8r:20190820095602p:plain
そして追加されたbifrostGeoToMaya1のBifrostGeoとbifrostGraph1のOutGeometryを接続します。
次に先程作ったCubeを複製して、これのInMeshとbifrostGeoToMaya1のMayaMesh[0]を接続します。

f:id:tm8r:20190820154841p:plain
このままだと法線が適用されないので、bifrostGeoToMaya1をアトリビュートエディタで開いてTransfer Normalsにチェックを入れます。
これでShapeに結果を適用できたので、transformで普通に移動や回転もできます。

bifrostGraph完全に理解した。

Backdropをつける

ノードを組んでるとこのへんのノードは実際のところ何してるの?みたいなグルーピングをしたいときありますよね。

f:id:tm8r:20190820095356p:plain
そんなときは対象のノードたちを選択して右クリックし、Create Backdropを選択します。

f:id:tm8r:20190820095456p:plain
するとこのようにいい感じになります(語彙力)
Backdropをダブルクリックするとテキスト入力ができるので、初見の人が死なないようによしなにコメントを入れておくとよさそうです。

Compoundにする

作成したグラフは書き出して再利用することも可能なので、他のところでも使えるようなグラフはひとまとめにしておくとよいです。

f:id:tm8r:20190820095519p:plain
というわけでまとめたいノードたちを選択して右クリックし、Create Compoundを選択します。

f:id:tm8r:20190820095531p:plain
Compoundになりました。
Compoundのノードはダブルクリックすることで中身を編集可能です。

先程使ったget_point_positionやset_point_positionもCompoundなノードなので、ダブルクリックして中身を見てみるとお勉強になっておすすめです。

f:id:tm8r:20190820132716p:plain
ちなみにノード名にリファレンスのアイコンがついてるCompoundなノードはそのままだと編集できません。
編集したい場合はノードを右クリックしてMake Editableを選択することで編集可能になります。

グラフのデバッグ

ノードの任意の接続にどんなデータが流れているか、Watchpointを追加することで確認できます。

f:id:tm8r:20190820133651p:plain
確認したい接続を右クリックし、Add Watchpointを選択します。

f:id:tm8r:20190820133720p:plain
便利…Mayaの全ノードエディタにほしい…。
尚、追加された目のアイコンを選択してドラッグすると位置が移動できるので、見やすいところに移動しましょう。

ちなみにdump_objectというノードを使用するとこのようなデータをtxtファイルとして出力することも可能です。
参考:Mayaヘルプ:グラフの診断およびデバッグ

おわり

ゆめがひろがる。
どうでもいいんですけどbifrostってバイフロストって読むんですね!びふろすとだと思ってました。口にする前に気づけてよかった大賞2019。

何ができるかいまいち分からんとか、やりたいことがあるけどどうやるか分からん、みたいなときはWindow>Bifrost Browserから読み込めるサンプルを見てみるとヒントが見つかるかもしれません。


あとはこういったサンプルがフォーラムに投稿されていたりするので、フォーラムを覗いてみるのもよいですね。最&高。
forums.autodesk.com

次はなんちゃってブレンドシェイプとか、Mayaのブレンドシェイプだと適用されない法線の適用とか、グラフのインポートとエクスポートあたりについて書くかもしれません!

スポンサーリンク