筆者環境
・Bifrost2.5.0.0
・Maya2020.2

今回はノードの取り扱いと、グラフ上を流れるデータのデバッグ表示を見ていきましょう。
(当ブログで[]でくくっているものはBifrostGraphEditor内のノード名です)

ノードの取得

ノードの取得はグラフ上でTabボタンを押して起動するTabメニューから行います。Tabメニューにはカテゴリーごとに整理されたノードツリーが表示されますので、階層を順に辿ってノードを見つけることができます。
bifrost

ノード名が分かっている場合は、検索ボックスを使用すると素早く取得ができます。ワード検索もできるので例えば[get_point_position]を見つけたい場合は、pointやpositionと入力すれば候補リストに出てきます。
bifrost

またはノード名のイニシャルでも検索できます。
例えば[get_point_position]はgppで検索候補にリストアップされます。
bifrost

Tips

[input],[output]もTabメニューから取得しグラフ上に複数配置することが出来ます。これによってグラフのスパゲッティー化を軽減し、可読性を上げるレイアウトにすることができます。
下図のグラフを見てみましょう(★マークがinputノードです)

シンプルなグラフですが上側は[input]から延びるラインがゴチャゴチャし始めていますよね。これは先行きが不安です。
下側ではデータを使用する周辺に[input]を配置したので、すっきりしましたね。後にグラフを見直した時も読み易そうです。

 

Tips

ポート上の右クリックメニュー > Move Toでポートを別の[input],[output]へ移動することができます。ポートの接続は維持したままの移動となるのでグラフ整理の際に重宝します。
bifrost

ノードの接続と解除

接続と解除の操作はMayaのノードエディタと同じ仕組みが採用されています。
接続:
ポート間をドラッグ&ドロップするやり方と、ポートをクリックした後に接続先のポートをクリックする2種類の方法があります。後者の方法では最初のクリックの後にグラフの画面移動やズームといった表示操作が可能です。遠く離れたポートと接続したい場合に便利ですね。
bifrost

接続の解除:
ポート間のラインを掴んで引き剥がすか、[Shift]+[Alt]キーで起動するカットツールで切断する方法があります。
bifrost

Tips

ポートの接続先を探すモードの状態でTabメニューを起動してノードを取得すると、システムが最適だと判断したポート間が接続された状態でノードの取得が行えます。
(判定がイマイチなノードもありますが改善に期待しましょう)
bifrost

ノードグラフの操作履歴

グラフの操作は全てmelコマンドとしてスクリプトエディタにログが残ります。普段のMayaのスクリプト制作と同じ手順でノードグラフを操作するスクリプトが作成可能です。

ノードグラフのコピー&ペースト

複製したいノードを選択して[Ctrl]+[C]でコピー/[Ctrl]+[V]でペーストが出来ます。ペーストはシーン上の別のBifrostGraphや、別のMayaのBifrostGraphへも実行可能です。
また面白い機能としてテキストデータとしてペーストが出来ます。
bifrost

これをコピーしてBifrostGraphエディタ上でペーストすると、ノードグラフが再現されます。
bifrost

テキストなのでチャットやメールで手軽にグラフを共有することができますね。

例えば下の添付ファイルは最近傍探索のグラフをテキストで保存したものです。文面をコピーしてBifrostGraphエディタ上でペーストしてみてください。
02.zipのsample1.txt
bifrost

このグラフを動作させるためには[data]のtarget_meshとstart_positionに入力が必要です。それぞれを[input]に接続しMayaからメッシュとロケータのポジションを接続してください。
bifrost

結果を[output]に接続するとロケータの位置からメッシュへの最も近い場所に向けた矢印が描画されたと思います。
bifrost

テキスト保存は一時的にグラフを共有したい場合や、バックアップを取っておきたい場合に重宝しますよ。

ウォッチポイント

ウォッチポイントを使えば、グラフ上を流れるデータを確認できます。ライン上の右クリックメニューで有効/無効を設定します。
bifrost

ウォッチポイントには現在流れている値だけではなく、機能をONにして以降計測されたデータの最小値/最大値も表示されます。
bifrost

配列データの場合は配列要素数と要素内の最大値/最小値が表示されます。
bifrost

値の表示位置はライン上に現れる目玉アイコンをドラッグ&ドロップすることで動かすことができます。
bifrost

ウォッチポイントは便利な機能ですが、配列データの詳細が見れなかったり、グラフ上でノードと重なって見づらかったりとまだまだ不満な点があります。今後大幅なアップデートが予定されているようなので、楽しみに待ちましょう。
bifrost

Tips

ウォッチポイントで表示している値は、melコマンドで取得することができます。
bifrost

[output]を介さずにグラフから値を取得したい場合に便利ですね。

次回はBifrostの「データタイプ」について取り上げます。
ではまた~。

高島 正規
テクニカルアーティスト

長年シネマティックアーティストとしてフェイスリグやフェイシャルモーションの制作を担当。現在は技術戦略グループに所属し、DCCツールのプラグイン開発のための内製C++ライブラリの構築と、Bifrostを用いたツール開発を行っている。