検索
Start typing to search...

ブループリントを使用した追加の制御

Author: Aximmetry

はじめに

本ドキュメントでは、Aximmetryからデータを送信することでUnrealプロジェクトを制御する方法を説明します。これにはAX Scene Editorの使用が必要です。さらに、UnrealプロジェクトからAximmetryへ映像コンテンツを送信する方法についても取り上げます。

これらの機能は、オブジェクトの移動、光強度の調整、アニメーションの開始、Aximmetryからのモデルやテクスチャの管理など、シーンをより細かく操作したいユーザーにとって特に有用です。

レベルブループリント

本ドキュメントで説明するすべての操作は、AX Scene Editorのレベルブループリント内で実行されます。レベルブループリントは特殊なブループリントの一種であり、レベル全体のグローバルイベントグラフとして機能します。

レベルブループリントにアクセスするには、エディタ内のブループリントアイコンを選択し、レベルブループリントを開くを選択します:

Aximmetryブループリントノード

AX Scene Editorには、Aximmetryからのデータを受け取れる専用ブループリントノードが含まれています。

ブループリント内にこれらのノードを追加するには、イベントグラフの空いている領域を右クリックします。次に、ノードリスト内のAximmetryカテゴリを探し、利用可能なすべてのAximmetryブループリントノードを見つけます:

これらのノードは、Color、Integer、Logical、Scalar、Text、Transformation、Trigger、Vector、Videoなどの異なるデータタイプを処理するように設計されています。ビデオデータタイプの場合、UnrealからAximmetryへビデオコンテンツを送信することも可能です。

AximmetryのUnrealモジュールで赤いチェーンリンクボタン をクリックしてピンリストを更新すると、ブループリントノードがピンとして表示されます:

ライブ同期モードでは、AXシーンエディタで再生ボタンを押すとチェーンリンクボタンが自動的に表示されます。ただし、クック済みモードでは、チェーンリンクボタンを表示させるにはプロジェクトをクックする必要があります。

通常、Aximmetryのブループリントノードには以下のピンが含まれます:

  • Name: AximmetryのUnrealモジュール内でピンの名前を設定します。名前は必須です。
  • Order Index: AximmetryのUnrealモジュール内でピンの表示順序を決定します。Order Indexの番号が大きいほどピンの位置は下になります。ただし、0インデックスのピンは最も最後に配置されます。
  • デフォルト値: ピンが接続されていない場合、AximmetryのUnrealモジュール内でピンのデフォルト値を設定します。
  • 返り値: Aximmetryから受け取る値です。

名前順序インデックスデフォルト値の各ピンは静的です。つまり、ブループリント内でこれらのピンに接続しても影響を受けません。

注記: シーン内の複数のオブジェクトが同一のブループリント(レベルブループリントではない)を使用している場合、Aximmetryノードからは同一のデータしか受け取れません。ノードの名前が静的であるため、オブジェクト間の動的な区別が不可能だからです。オブジェクト固有のデータ処理を可能にするには、各オブジェクトごとに個別のブループリントを作成するか、各オブジェクト向けにデータを独自に解析する方法を実装する必要があります。

注記:すべてのAximmetryブループリントノードはAX Scene Editorに組み込まれています。Unreal Engineの標準版では利用できません。

Get Aximmetry Logical

このLogicalピンデータ型は、Aximmetry内でバイナリON/OFFスイッチとして機能し、AX Scene EditorのUnrealプロジェクト内要素の単純な切り替えを可能にします。

例:アクターオブジェクトを非表示にする場合

まず、アウトライナーからドラッグ&ドロップでLevel Blueprintにオブジェクトを追加します:

NOTE: アウトライナーからオブジェクトを参照できるのは、シーン(レベル)に直接接続されているLevel Blueprintのみです。

次に、Set Actor Hidden In Game、Get Aximmetry Logical、およびEvent Tickノードを追加し接続します:

NOTE: イベント型ノードには特別な実行ピンがあり、ブループリントノードのアクティベーションをトリガーします。Event Tickノードの場合、実行ピンは各フレームで実行をトリガーします。この実行ピンメカニズムはUnreal固有の機能です。一方、AximmetryのFlow Editorはモジュール実行のためのより自動化されたシステムを採用しています。

Aximmetryでは、赤いチェーンリンクボタン が表示され、クリックすると、Unrealモジュールに論理ピン(Hide Floor)が追加されます。ピンの状態は、Unrealモジュールが選択されている場合、Pin Valuesパネルからオン/オフを切り替えることができます:

Aximmetry トランスフォーメーションの取得

Transformation ピンデータタイプは、位置、回転、スケーリングの空間的組み合わせを表します。

これは特に、AX Scene Editor と Aximmetry を頻繁に切り替える必要なく、Aximmetry 内のシーンでオブジェクトを移動させる場合に有用です。さらに、Aximmetry でのアニメーション使用など、動的なオブジェクトの動きを容易にします。

このセクションでは、Aximmetry内からアクターオブジェクトのトランスフォーメーションを制御する方法を学びます。

最初に、オブジェクトが移動可能に設定されていることを確認してください。設定されていない場合、シーンの実行開始後に位置を変更できません。このオプションは詳細パネルのトランスフォームセクションにあります:

次に、オブジェクトをブループリントに追加します。前のセクションと同様に、OutlinerからオブジェクトをドラッグアンドドロップでLevel Blueprintに配置します。この例では、デモ用にキューブのようなオブジェクトを使用しています。

次に、Set Actor Transform、Get Aximmetry Transformation、およびEvent Tickノードを追加し接続します:

NOTE: オブジェクトがアクターでない場合、Set Actor Transformの代替ノードが必要になる場合があります。

チェーンリンクボタン をクリックした後、Aximmetryに変形が表示されます。

オブジェクトの変形を操作する方法は複数あります。ここでは3つの一般的な方法を説明します:

  • Pin Value Edit:
  • 静的な位置値を正確に設定するには、Unreal モジュールの作成した変換ピンを Pin Values パネルで編集します:


  • Direct Value Control:
  • 個々の変換値を動的に制御するには、Transformation Compose と Vector Merge モジュールを使用します:

  • Sequencer を使用したアニメーション:
  • オブジェクトの変換を時間とともに変更するアニメーションを作成するには、Sequencer モジュールと Sequence Node モジュールをペアで接続します:


  • シーンノードモジュールを使用する:
  • 変換を制御する実用的な方法は、シーンノードモジュールを追加し、そのWorld Transfピン(初期状態では非表示 — 上部右隅の展開リストボタンをクリックして表示)を、Unreal Blueprintで作成したUnrealモジュールのピンに接続することです:

  • 編集モードを有効にするには、編集 / シーン編集オンメニューでプレビューウィンドウを選択するか、メニューバーのクイックボタンを使用します:

  • NOTE: カメラコンパウンドのプレビューピンがプレビューの出力チャネルに接続されていることを確認してください。
  • シーンノードモジュールを選択すると、プレビュー画面上でオブジェクトの変換調整が可能になります:

NOTE: Unreal から Aximmetry の座標系に位置や変換を変換するには、[Common_Studio]:Compounds\Tools\Unreal_Transformation.xcomp コンパウンドを使用してください。

NOTE: ブループリントの変換ピンをベクトルに分割し、さらにスカラー要素に分解するには、Split Struct Pinオプションを使用できます。これは、変換を右クリックしてアクセスできます:

Aximmetry Trigger を取得

The Triggerピンデータタイプは、さまざまなアニメーションやタイミング機能を開始/停止するための開始/停止信号として機能します。

Get Aximmetry Trigger、Event BeginPlay、Bind Event to Trigger、およびCustom Eventノードを追加し接続します。

Bind Event to Triggerノードは、 Context Sensitive検索がオフの場合にのみ検索可能です。

Event BeginPlayノードは、以前の例で使用されたEvent Tickノードの代わりに使用する必要があります。

カスタムイベントの実行ピンに希望のブループリント論理を接続します。例えば、当社の例では、パーティクルシステムのアクティベーションをイベントにリンクしました:

上記のノードをUnrealのブループリントエディターにコピーして貼り付けるには、このボックスをクリックし、CTRL + Aで全テキストを選択、CTRL + Cでコピーし、UnrealのブループリントでCTRL + Vで貼り付けます。

Aximmetryでは、トリガーピンをさまざまな方法で利用できます。実用的なアプローチの1つは、トリガーをコントロールボードのボタンとして配置することです。これには、コントロールボードピンコレクターの特殊な複合体を使用します:

この設定により、プロダクション内でパーティクルシステムをトリガーする便利なアクセスが可能です:


NOTE: コントロールボードに他の種類のGet Aximmetryノードを露出させることも可能です。

Get Aximmetry Video

The Video ピンデータタイプは、動画フレームまたは画像(静的テクスチャ)として機能します。

このテクニックは、シーン内に仮想スクリーン(テレビのようなもの)を作成するために頻繁に使用されます。詳細な例については、Aximmetry からの Unreal における仮想スクリーンドキュメントを参照してください。

ガンマ補正オプション

Get Aximmetry Video ブループリントノードには、S RGB ピンが搭載されており、受信した動画が sRGB または 線形 として処理されるかを決定します。

S RGB は、色情報を含むテクスチャ(シーンにレンダリングされるカメラ映像など)には有効にし、シェーダーの数値計算に使用されるテクスチャ(例:ノーマルマップ、マスク)には無効にします。このオプションは8ビットテクスチャにのみ影響します。Unrealでは、8ビット以外および浮動小数点テクスチャはすべて線形として扱われます。

Unrealからのビデオ

現在、UnrealからAximmetryへのデータ送信はビデオ出力に限定されていますが、将来的に他のデータタイプにも対応予定です。

Set Aximmetry Videoブループリントノードは、テクスチャをAximmetryに送信する機能を提供します。各出力に異なる名前を割り当てることで、複数のSet Aximmetry Video出力を使用可能です。

Set Aximmetry Video自体はガンマ補正を行いません。生成される出力は、接続されたテクスチャまたはレンダリングターゲットの設定とピクセル形式に依存します。デフォルトの出力は、ピクセル形式に関わらず常にsRGBとして扱われます。

シーンにSet Aximmetry Videoノードが存在しない場合、Unreal Projectモジュールのデフォルト出力は、Unrealが画面に表示するシーンをミラーリングし、ラベル「out」が付いた見えないSet Aximmetry Videoノードと同様の機能を果たします。このデフォルト出力のフォーマットは、編集 / プロジェクト設定 - レンダリング / デフォルト設定 / フレームバッファ ピクセルフォーマットで設定できます:

コンテキスト依存

デフォルトでは、新しいブループリントノードを追加しようとした際に、すべてのブループリントノードが表示されません。

特定のブループリントノードが表示されない場合は、コンテキスト依存検索オプションをオフにすると、利用可能なすべてのブループリントノードが表示されます:

記事内容

Loading
Close
Loading spinner icon
1/10