筆者環境
・Bifrost2.5.0.0
・Maya2020.2
今回はノードの取り扱いと、グラフ上を流れるデータのデバッグ表示を見ていきましょう。
(当ブログで[]でくくっているものはBifrostGraphEditor内のノード名です)
ノードの取得
ノードの取得はグラフ上でTabボタンを押して起動するTabメニューから行います。Tabメニューにはカテゴリーごとに整理されたノードツリーが表示されますので、階層を順に辿ってノードを見つけることができます。
ノード名が分かっている場合は、検索ボックスを使用すると素早く取得ができます。ワード検索もできるので例えば[get_point_position]を見つけたい場合は、pointやpositionと入力すれば候補リストに出てきます。
またはノード名のイニシャルでも検索できます。
例えば[get_point_position]はgppで検索候補にリストアップされます。
Tips
[input],[output]もTabメニューから取得しグラフ上に複数配置することが出来ます。これによってグラフのスパゲッティー化を軽減し、可読性を上げるレイアウトにすることができます。
下図のグラフを見てみましょう(★マークがinputノードです)
シンプルなグラフですが上側は[input]から延びるラインがゴチャゴチャし始めていますよね。これは先行きが不安です。
下側ではデータを使用する周辺に[input]を配置したので、すっきりしましたね。後にグラフを見直した時も読み易そうです。
ノードの接続と解除
接続と解除の操作はMayaのノードエディタと同じ仕組みが採用されています。
接続:
ポート間をドラッグ&ドロップするやり方と、ポートをクリックした後に接続先のポートをクリックする2種類の方法があります。後者の方法では最初のクリックの後にグラフの画面移動やズームといった表示操作が可能です。遠く離れたポートと接続したい場合に便利ですね。
接続の解除:
ポート間のラインを掴んで引き剥がすか、[Shift]+[Alt]キーで起動するカットツールで切断する方法があります。
ノードグラフの操作履歴
グラフの操作は全てmelコマンドとしてスクリプトエディタにログが残ります。普段のMayaのスクリプト制作と同じ手順でノードグラフを操作するスクリプトが作成可能です。
ノードグラフのコピー&ペースト
複製したいノードを選択して[Ctrl]+[C]でコピー/[Ctrl]+[V]でペーストが出来ます。ペーストはシーン上の別のBifrostGraphや、別のMayaのBifrostGraphへも実行可能です。
また面白い機能としてテキストデータとしてペーストが出来ます。
これをコピーしてBifrostGraphエディタ上でペーストすると、ノードグラフが再現されます。
テキストなのでチャットやメールで手軽にグラフを共有することができますね。
例えば下の添付ファイルは最近傍探索のグラフをテキストで保存したものです。文面をコピーしてBifrostGraphエディタ上でペーストしてみてください。
02.zipのsample1.txt
このグラフを動作させるためには[data]のtarget_meshとstart_positionに入力が必要です。それぞれを[input]に接続しMayaからメッシュとロケータのポジションを接続してください。
結果を[output]に接続するとロケータの位置からメッシュへの最も近い場所に向けた矢印が描画されたと思います。
テキスト保存は一時的にグラフを共有したい場合や、バックアップを取っておきたい場合に重宝しますよ。
ウォッチポイント
ウォッチポイントを使えば、グラフ上を流れるデータを確認できます。ライン上の右クリックメニューで有効/無効を設定します。
ウォッチポイントには現在流れている値だけではなく、機能をONにして以降計測されたデータの最小値/最大値も表示されます。
配列データの場合は配列要素数と要素内の最大値/最小値が表示されます。
値の表示位置はライン上に現れる目玉アイコンをドラッグ&ドロップすることで動かすことができます。
ウォッチポイントは便利な機能ですが、配列データの詳細が見れなかったり、グラフ上でノードと重なって見づらかったりとまだまだ不満な点があります。今後大幅なアップデートが予定されているようなので、楽しみに待ちましょう。
次回はBifrostの「データタイプ」について取り上げます。
ではまた~。
高島 正規
テクニカルアーティスト
長年シネマティックアーティストとしてフェイスリグやフェイシャルモーションの制作を担当。現在は技術戦略グループに所属し、DCCツールのプラグイン開発のための内製C++ライブラリの構築と、Bifrostを用いたツール開発を行っている。