コンテンツにスキップ

Unreal Engine でのスケルトンの制御

Designer のスケルトンのジョイントデータは、RenderStream を介して Unreal Engine のインスタンスに渡すことができます。これにより、ゲームエンジンでモデリングされたスケルトンが Designer 内のスケルトンの動きをミラーリングし、モーションキャプチャやアニメーションのデータを受け取れるようになります。スケルトンのすべての機能をサポートするには、Unreal Engine 5.7 以降が必要です。

最初のステップは、Designer でスケルトンをセットアップすることです。このスケルトンは、モーションキャプチャシステムからのライブデータで制御することも、FBX アニメーションから再生することも、ジョイントを操作して手動で制御することもできます。Designer でのスケルトンのセットアップ手順については、スケルトンのドキュメントを参照してください。

また、標準のワークフローに従って、Unreal Engine アセットを使用する RenderStream レイヤーをセットアップする必要があります。詳細については、Unreal RenderStream の概要を参照してください。

Skeleton パラメーターを RenderStream に公開する

Section titled “Skeleton パラメーターを RenderStream に公開する”

スケルトンのデータは、他の公開パラメーターと同様の方法で Designer から Unreal に渡されます。Unreal Engine で公開 Skeleton パラメーターをセットアップするには:

  1. FBX モデルをインポートするなどして、Unreal プロジェクトにスケルトンアセットを追加します。Unreal Engine のドキュメントのアニメーション可能なキャラクターの作成を参照してください。

  2. 選択した Level Map で、メニューバーの Blueprint アイコンを左クリックし、Open Level Blueprint(Level ブループリントを開く)を選択します。

Level Blueprint を開く

  1. 左側で Variables に移動し、+ アイコンをクリックして新しい変数を追加します。

  2. 変数の名前を変更し、変数の型を Skeleton -> Soft Object Reference に変更します。

  3. 変数の横にある目のアイコンをクリックして、Instance Editable(インスタンスを編集可能にする)を有効にします。

  4. Compile を押します。

  5. 次に、新しい変数を選択した状態で、Details(詳細)パネルの Default Value フィールドで使用するスケルトンを選択します。

スケルトン変数のセットアップ

  1. Unreal プロジェクトを保存し、Designer の RenderStream レイヤーでアセットを選択します。Skeleton 変数が公開パラメーターとして表示され、Designer 内の対応するスケルトンオブジェクトにリンクできるようになります。

Designer でスケルトンの公開パラメーターを選択する

スケルトンのトラッキングデータの適用

Section titled “スケルトンのトラッキングデータの適用”
  1. Unreal Engine のスケルトンは、それを使用する Skeletal Mesh によって参照されます。Skeletal Mesh を選択し、Details(詳細)パネルで Anim Class を見つけます。既存の Anim Blueprint を開くか、新しい Anim Blueprint を作成します。

Anim Blueprint の作成

  1. AnimGraph タブに移動します。右クリックして、グラフに RenderStream Skeleton Pose ノードを追加します。通常、Base Pose 入力には何も接続する必要はありません。

  2. RenderStream Skeleton Pose ノードを Output Pose ノードに接続します。より複雑なグラフでは、Output Pose ノードに渡す前にグラフ内でポーズを処理することもありますが、通常は必要ありません。

Anim Graph のセットアップ

  1. Unreal Engine のスケルトンが Designer のスケルトンと完全に一致している場合は、これだけでスケルトンのジョイントデータを適用できます。ただし、ほとんどの場合、データを特定のスケルトンのレイアウトにリターゲティングする必要があります。

スケルトンデータのリターゲティング

Section titled “スケルトンデータのリターゲティング”

Designer では、ジョイントはスケルトン内でそれぞれ固有の名前によって識別されます。この名前は、トラッキングソースや FBX ファイルから取得される場合があります。RenderStream アセットでは、独自の定義済みスケルトンを持つ既存のキャラクターを対象とします。このスケルトンでは、ジョイントの識別に異なる規則が使われている場合があります。たとえば、Designer のスケルトンよりはるかに多くのジョイントを持っていたり、ジョイント名が異なっていたりします。そのため、RenderStream 経由で受信したスケルトンデータを、対象のキャラクターに再マッピングする必要があります。

Disguise RenderStream プラグインは、RenderStream Skeleton Pose ノードの一部として自動リターゲティングを適用します。これにより、Designer のスケルトンのジョイントデータを、Unreal のさまざまな類似したボーンレイアウトに簡単に適用できます。必要なのは、Designer のスケルトンの各ボーンに対応する、Unreal のスケルトンのボーンを選択することだけです。

  1. Anim Blueprint を開きます。
  2. RenderStream Skeleton Pose ノードを選択し、Details(詳細)パネルで Maps and Sets を展開します。
  3. Bone Name Map を展開して入力します。これにより、Designer からストリーミングされるボーン(左側)が Unreal のスケルトン(右側)に接続されます。
  4. Skeleton Layout を変更して、既知のボーン名のセットでマップを埋めます。または、Designer から送られてくるボーン名を反映するように、エントリを手動で追加、削除、変更します。これらのボーン名は、Designer のスケルトンエディターの Joints セパレーターで確認できます。
  5. マップの右側で、Unreal のスケルトンの対応するボーンを選択します。
  6. すでに正しいレストポーズになっていて調整すべきでないボーンがある場合は、対応する Skip オプションを選択します。これは、足首のようにスキニングがスケルトン間で異なるボーンに便利です。
  7. デフォルトでは、リターゲティングは回転のみを適用し、ボーンの長さは変更しません。ボーンの長さも受信データに合わせるには、Align Bone Lengths オプションを選択します。
  8. ボーンが正しくリターゲティングされているかわからない場合は、Designer のスケルトンエディターの Joints で Zero Pose をクリックし、RenderStream の実行中にジョイントの回転を 1 つずつ調整して、スケルトンがどのように動くかを確認することでテストできます。

スケルトンジョイントのリターゲティング

RenderStream Skeleton Pose ノードのリターゲティングは、さまざまな開始ポーズの Unreal スケルトンに対応できますが、手のひらを下に向けたニュートラルな T ポーズまたは A ポーズのスケルトンで最もうまくいきます。必要に応じてデフォルトのポーズを変更するには:

  1. スケルトンの静的アニメーションがまだない場合は作成します。アニメーションブループリントのウィンドウで、Create Asset → Create Animation → Reference Pose に移動します。
  2. アニメーション内のボーンを操作し、+ Key をクリックして操作が保存されるようにします。
  3. アニメーションブループリントで、RenderStream Skeleton Pose のオプションの Base Pose 入力に接続する Sequence Player ノードを追加します。
  4. Sequence Player の詳細設定で、新しいアニメーションを Sequence として選択します。
  5. ブループリントをコンパイルして保存します。