Language:

Datasmith で Deltagen および VRED を使用する

ここに含まれる内容はドラフトであり、まだ実験的段階のものですが、ユーザーの皆様に先行してご紹介いたします。今後のアップデートをお待ちください!

Datasmith を使用して 3DExcite Deltagen または Autodesk VRED から Unreal Editor にシーンを取り込むにあたり、Datasmith によるシーンの処理方法について、 Datasmith の概要NEW!  および Datasmith インポート プロセスについてNEW! で説明されている基本事項以外にも何点か追加で知っておくべきことがあります。

ワークフロー

Deltagen と VRED からのインポートを実行できるのは Datasmith Plus の利用資格がを持つユーザーのみです。詳細については こちら までご連絡ください。

Deltagen

Datasmith は Deltagen に対して Export ワークフローを使用するので、Datasmith を使用して Deltagen のコンテンツを Unreal に取り込むには以下を実行する必要があります。

  1. Deltagen にビルトインされているエクスポート機能を使用して、Deltagen のシーンを 「.fbx」 ファイルにエクスポートします。

  2. Datasmith Deltagen Fbx インポータを使用してそのファイルを Unreal Editor に取り込みます。 Unreal Engine 4 に Datasmith コンテンツをインポートするNEW! を参照してください。

VRED

Datasmith は VRED に対して Export Plugin のワークフローを使用するので、Datasmith を使用して VRED のコンテンツを Unreal に取り込むには以下を実行する必要があります。

  1. VRED のプラグイン スクリプトをインストールし、これを使用して VRED のシーンを 「.fbx」 ファイルにエクスポートします。VRED から Datasmith のコンテンツをエクスポートするNEW! を参照してください。

  2. Datasmith VRED Fbx インポータを使用して、エクスポートした 「.fbx」 ファイルを Unreal Editor に取り込みます。Unreal Engine 4 に Datasmith コンテンツをインポートするNEW! を参照してください。

バリアント

Deltagen と VRED 用の Datasmith FBX インポータは、Deltagen または VRED のシーンで定義したバリアントとバリアント セットを Unreal に取り込みます。一連の専用ブループリント関数を使用して、ランタイム時にプロジェクト内でこれらのさまざまなバリアントとバリアント セットを選択することができます。

Unreal プロジェクトを実行するプレイヤーにこれらのバリアントをランタイム時にどのように選択させるか、そして適切なブループリント関数をトリガーするゲームプレイ コードを作成するかどうかについては、実際の状況に応じて決めてください。例えば、プレイヤーがバリアントを選択するための UI または一連のメニューを作成したり、キーが押された時やその他の入力に応じてバリアントをトリガーさせたりする場合などがあります。Datasmith インポータには UI またはメニューの作成に必要なツールが用意されていますが、作成自体は行いません。

バリアント データについて

インポータは、プロジェクト内の Datasmith シーン アセットの横に新規の 「Variants」 フォルダを作成します。このフォルダ内にデータ テーブル アセットが作成されて、ソース シーンで検出したバリアントがここに保存されます。

このテーブルの各行は、ランタイム時にアクティベート可能な単一のバリアントまたはバリアント セットのレコードです。このデータ テーブル アセットをダブルクリックすると、それに含まれるデータを確認することができます。プロジェクト内で利用可能なバリアントやバリアント セットの名前を参照したり、各バリアントが制御するアイテムの詳細を確認したりする必要がある場合に便利です。

下の DataTable エディタの画像では、 [Data Table (データ テーブル)] パネル (1) にシーン内の各バリアントが一覧表示されており、 [Row Editor] パネル (2) には、上のパネルで現在選択しているバリアントの詳細が表示されています。

VRED からのシーンの場合は、ジオメトリ バリアントには _GV 、マテリアル バリアントには _MV 、バリアント セットには _VS などと、すべてのバリアントの名前にそのタイプを示すサフィックスが 1 つ付加されます。VRED では、タイプが異なる限り、複数のバリアントに同じ名前を使用することが許可されています。サフィックスを付加することで、Unreal での作業時にこれらの変数を区別しやすくなります。

バリアントの選択

Deltagen および VRED 用の Datasmith FBX インポータは、次のクラスのうちの 1 つの新規インスタンスをレベルに追加します。

  • Deltagen の場合は BP_VariantSelector

  • VRED の場合は VREDVariantsSelector

このバリアント セレクタ アクタにはバリアント データ テーブルへの参照が自動的に設定されるため、Datasmith によってソース ファイルからインポートされたすべてのバリアント データにアクセスできます。バリアント セレクタ アクタは、インポートしたシーン階層最上部の、Datasmith シーン アクタ直下のルート アクタへの参照も持っているため、バリアント間で入替えを行った際に修正が必要なシーンのエレメントを検出することができます。これらの設定は、[Details (詳細)] パネルの [Deltagen] または [VRED] セクションにあります。

バリアント セレクタの詳細

シーンにカメラのバリアントが含まれる場合、そのバリアント セレクタにレベルの Camera アクタへの参照を付加することも可能です。新規のカメラ バリアントを選択した際は、ここで設定した Camera アクタの 3D 変換が常にアップデートされます。

バリアント セレクタ クラスには、いくつかのブループリント関数がプリセットされています。これらの関数をランタイム時に呼び出して、レベルでどのバリアントを表示するかを選択できます。 

バリアント セレクタ アクタを編集すると、これらの関数が [My Blueprint] パネルの関数リストに表示されるので、イベント グラフにドラッグして、作成したカスタム イベントに応じて呼び出すようにすることができます。

バリアント セレクタ関数

異なるブループリント クラスまたは作成した UMG ウィジェットからこれらのブループリント ノードを探す

  1. 新規の変数を作成して、そのタイプを BP_VariantSelector または VREDVariantsSelector クラスへのオブジェクト参照として設定します。 レベルに配置したバリアント セレクタ オブジェクトをポイントするようにこの変数を設定します。

  2. この変数の Get ノードをイベント グラフに追加して、出力ピンからドラッグして新規のノードを作成します。

  3. [Deltagen] または [VRED] カテゴリを確認して、目的のバリアントを制御する関数を見つけます。

ノードの一覧が表示されたら、次の操作を実行します。

  • Select Variant ノードの 1 つを使用して、アクティベートする特定のバリアントの名前を指定する。

  • ノードの Get ノードを使用して、データ テーブルに含まれるデータから、目的のバリアントとバリアント セットの名前とタイプを読み取る。特定の変数名を UI にハードコード化するのではなく、シーンで利用可能な実際の変数の名前に基づいてプログラミング的に UI を作成する場合に非常に有用です。

以下に、UMG UI ウィジェット内でこれらのブループリント API 関数を使用する方法を示します。バリアント ノードは強調表示されています。 

アニメーション

アニメートされたシーンのエレメントが Deltagen または VRED のシーンに存在する場合、Datasmith FBX インポータはバリアントをインポートするのとまったく同じ方法で、これらのアニメーションを Unreal に取り込みます。これらのアニメーションは、別のヘルパー クラスで公開される一連のブループリント関数を使用して、プロジェクトでランタイム時に再生、停止、リセットすることができます。

バリアントと同様に、Unreal プロジェクトを実行するプレイヤーにこれらのアニメーションをランタイム時にどのようにトリガーさせるか、そして適切なブループリント関数を呼び出すゲームプレイ コードを作成するかどうかについては、実際の状況に応じて決めてください。例えば、プレイヤーがアニメーションを選択するための UI または一連のメニューを作成したり、キーが押された時やその他の入力に応じてアニメーションをトリガーさせたりする場合があります。Datasmith インポータには UI またはメニューの作成に必要なツールは用意されていますが、作成自体は行いません。

アニメーション データについて

インポータは、プロジェクト内の Datasmith シーン アセットの横に新規の 「Animations」 フォルダを作成します。このフォルダには以下のものが作成されます。

  • アニメーションのカーブ アセットを保存する 「Curves」 フォルダ。これらの各アセットには、インポータによりソース ファイル内で検出された単一のシーン エレメントの未処理のアニメーション カーブが含まれています。

  • インポータによりソース シーン内で検出されたアニメーションを記録するデータ テーブル アセット。このテーブルの各行は、ランタイム時に有効にできる単一のアニメーションのレコードです。利用可能なアニメーションの名前を参照したり、各アニメーションが制御するシーン アイテムの詳細を確認したりする必要がある場合に、このアセットをダブルクリックして開くことができます。 [Data Table (データ テーブル)] パネル (1) にはシーン内の各アニメーションが一覧表示されます。[Row Editor] パネル (2) には、上のパネルで現在選択しているアニメーションの詳細が表示されています。

各アニメーションは異なる複数のトラックで構成されており、各トラックは、インポータによって 「Curves」 フォルダに作成されたカーブ アセットの 1 つを参照します。

vred-animation-curve-setting.png

アニメーションの制御

FBX ファイルにアニメーションが含まれる場合、Deltagen および VRED 用の Datasmith FBX インポータは、次のクラスのうちの 1 つの新規インスタンスをレベルに追加します。

  • Deltagen の場合は BP_AnimationPlayer

  • VRED の場合は VREDAnimationPlayer

このアニメーション プレーヤー アクタにはアニメーション データ テーブルへの参照が自動的に設定されるため、Datasmith によってソース ファイルからインポートされたすべてのアニメーション データにアクセスできます。アニメーション プレーヤー アクタは、インポートしたシーン階層最上部の、Datasmith シーン アクタ直下のルート アクタへの参照も持っているため、それらのアニメーションを再生するよう選択した際に修正が必要なシーンのエレメントを検出することができます。これらの設定は、[Details (詳細)] パネルの [Deltagen] または [Default (デフォルト)] (VRED 向け) セクションにあります。

アニメーション プレーヤーの詳細

アニメーション ブループリント API

アニメーション プレーヤー クラスにはいくつかのブループリント関数がプリセットされており、ランタイム時にこれらを呼び出して、レベルで再生するアニメーションとそのタイミングを選択することができます。

アニメーション プレーヤー アクタを編集すると、これらの関数が [My Blueprint] パネルの関数リストに表示されるので、イベント グラフににドラッグして、作成したカスタム イベントに応じて呼び出すようにすることができます。

アニメーション プレーヤー関数

異なるブループリント クラスまたは作成した UMG ウィジェットからこれらのブループリント ノードを探す

  1. 新規の変数を作成して、そのタイプを BP_AnimationPlayer または VREDAnimationPlayer クラスへのオブジェクト参照として設定します。 レベルに配置したアニメーション プレーヤー オブジェクトをポイントするようにこの変数を設定します。

  2. この変数の Get ノードをイベント グラフに追加して、出力ピンからドラッグして新規のノードを作成します。

  3. [Call Function (呼び出し関数)] カテゴリ (Deltagen を使用した作業であれば [Deltagen] カテゴリも) を確認して、目的のアニメーションを制御する関数を見つけます。

頻繁に使用するノードは次のとおりです。

ノード名

説明

Play Animation

ノードに渡した名前と一致する名前のアニメーションを再生します。

Reset

レベル内のアニメート可能なアクタをすべてデフォルトのトランスフォームにリセットします。

Set Animation

このアニメーション プレーヤーで現在実行中のアニメーションを切り替えます。

Update Animation

現在のアニメーションをノードに渡した時点で評価して、レベル内でアニメートされているすべてのアクタのトランスフォームを、これらのトランスフォームに一致するように設定します。

Get Animation Names

Play Animation ノードに渡すことができるすべてのアニメーションの名前を含む配列を返します。

以下に、UMG UI ウィジェット内でこれらのブループリント API 関数を使用する例を示します。アニメーション ノードは強調表示されています。

UI ウィジェットのアニメーション関数

クリックしてフルサイズで表示