OnlyFaceエクスポートの解説:QuickMagic フェイストラッキングをあらゆるパイプラインで活用する
要点
QuickMagicのOnlyFaceエクスポートは、フェイシャルモーションキャプチャをスタンドアロンのFBXファイルとして抽出する特殊な出力形式です。ボディやハンドのデータは含まれず、52のARKit互換ブレンドシェイプチャンネルが収められています。この軽量なFBXは、Blender、Unreal Engine、Unity、Maya、3ds Max、iClone、その他ブレンドシェイプデータを読み取れるあらゆるDCCツールに取り込めます。これにより、フェイストラッキングを他の要素から切り離し、顔はQuickMagic、ボディは別のツールというように、自由に組み合わせられます。これはベンダーロックインなしに、AIフェイストラッキングをプロダクショングレードのアニメーションパイプラインに統合する最も柔軟な方法です。
OnlyFaceエクスポートとは?
QuickMagicは13以上のエクスポート形式(FBX、BVH、BIP、C4D、VMD、Mixamo、UE4/5プリセット、Roblox、UniRobotなど)に対応しています。その中でもOnlyFaceはユニークです。標準のFBXエクスポートはボディスケルトン、ハンドジョイント、フェイシャルブレンドシェイプを1つのモノリシックファイルにまとめますが、OnlyFaceはフェイシャルアニメーションデータのみを出力します。
これはデータが少なくなるように聞こえるかもしれませんが、多くのプロダクションワークフローではまさに必要なものです。その理由は次のとおりです。
OnlyFaceが解決する問題
従来のモーションキャプチャパイプラインでは、顔と体は別々に、または異なるソースからキャプチャされることがよくあります。ゲームスタジオがボディモーションキャプチャにQuickMagicを使用しながら、クローズアップ用に高忠実度のiPhone TrueDepth顔キャプチャを欲しがる場合があります。VTubeアーティストは手動でボディをアニメーション化しながら、AIフェイストラッキングを表情に使うかもしれません。インディー開発者はボディアニメーションパックを購入しつつ、カスタムのフェイシャルパフォーマンスを必要とするかもしれません。
これらすべてのケースで、すべてをまとめたモノリシックFBXは摩擦を生み出します。
- 不要なデータを手動で除去しなければならない
- ファイルサイズが肥大化する(30~80MB vs 顔のみで1~5MB)
- スケルトン階層の競合がインポートエラーの原因になる
- QuickMagicの顔と他のボディソースを簡単に混在させられない
OnlyFaceはこれらすべてを排除します。顔専用のアニメーション層として、クリーンで目的に特化したフェイシャルモーションキャプチャFBXをどんなパイプラインにもドロップできます。
OnlyFace FBXファイルの中身
QuickMagicからOnlyFaceをエクスポートすると、次の内容を含む単一のFBXファイルが得られます。
| コンポーネント | 説明 |
|---|---|
| ヘッドメッシュ | 簡略化されたニュートラルポーズのヘッドメッシュ(ブレンドシェイプのキャリアとして使用)。これは最終的なキャラクターではなく、データの入れ物です。 |
| 52 ARKitブレンドシェイプ | Apple ARKitブレンドシェイプセット全体のフレームごとの重み値(0.0~1.0)。瞬き(eyeBlinkLeft/Right)、眉(browDownLeft/Right、browInnerUp)、口(mouthSmile、mouthFrown、jawOpen、mouthPucker)、頬(cheekSquint)、鼻(noseSneer)、舌(tongueOut)を含みます。 |
| フレームタイミング | 選択したFPS(24、30、60、120)でのアニメーションキーフレーム。元のビデオタイミングに同期。 |
| (オプション)オーディオ同期 | ソースビデオに音声が含まれている場合、QuickMagicはタイミングの同期を保持するため、ブレンドシェイプのキーフレームが台詞や発声のビートと一致します。 |
OnlyFace vs 標準FBX vs 他のフェイストラッキングエクスポート
OnlyFaceの位置づけを理解するために、代替手段と比較してみましょう。
| 機能 | QuickMagic 標準FBX | QuickMagic OnlyFace | iFacialMocap FBX | Live Link Face |
|---|---|---|---|---|
| ボディスケルトンを含む? | はい(完全な階層) | いいえ | いいえ | いいえ |
| ハンドジョイントを含む? | はい | いいえ | いいえ | いいえ |
| フェイシャルブレンドシェイプ | 52 ARKit | 52 ARKit | 52 ARKit | 52 ARKit(ストリーミング) |
| 一般的なファイルサイズ | 30~80 MB | 1~5 MB | 0.5~3 MB | リアルタイムストリーム(ファイルなし) |
| 入力方法 | 事前録画ビデオ(任意のカメラ) | 事前録画ビデオ(任意のカメラ) | iPhone TrueDepth(ライブ) | iPhone TrueDepth(ライブ) |
| 必要なハードウェア | 任意のカメラ/スマホ | 任意のカメラ/スマホ | iPhone X+のみ | iPhone X+のみ |
| パイプラインの柔軟性 | 中程度(モノリシック) | 高い(モジュール式) | 高い | 高い(ただしライブのみ) |
| 最適な用途 | ボディ+顔+手、単一エクスポート | 顔のみのワークフロー、混合パイプライン | 高忠実度ライブiPhoneキャプチャ | Unreal Engineライブセッション |
OnlyFaceを使うべき場合
- すでに別ソースからボディアニメーションがある場合
- 購入したアニメーションパックに表情を追加する場合
- ウェブ/クラウドストレージのためにファイルサイズを小さくしたい場合
- キャラクターがARKit互換の顔リグを持っている場合
- 複数のビデオから顔データをバッチエクスポートしたい場合
OnlyFaceを使うべきでない場合
- ボディ、手、顔を1つのエクスポートで必要な場合(標準FBXを使用)
- ターゲットキャラクターがARKit以外の顔リグを持つ場合(リマッピングが必要になる可能性あり)
- リターゲティングのために完全なスケルトン階層が必要な場合
- リアルタイムライブパフォーマンスをしている場合(ストリーミング未対応)
QuickMagicからOnlyFaceをエクスポートする方法(ステップバイステップ)
OnlyFace FBXをパイプラインにインポートする
OnlyFace FBXは標準のARKitブレンドシェイプ規則に従っているため、主要なツールでのインポートは簡単です。最も一般的なパイプラインで機能させる方法は次のとおりです。
Blender
File → Import → FBXに移動し、OnlyFace FBXを選択します。Blenderはすでにシェイプキーが設定されたヘッドメッシュをインポートします。オブジェクトデータプロパティパネルに52のシェイプキーが表示され、それぞれがタイムライン上にキーフレーム化された値を持ちます。これらのシェイプキーを自分のキャラクターに転送するには:(1) ソース(OnlyFaceヘッド)を選択し、次にターゲットキャラクターメッシュを選択します。(2) Blenderの組み込みShape Key Transfer(Object Data → Shape Keys → "Transfer Shape Key"、名前が一致している必要あり)を使用します。(3) アニメーションカーブがキャラクターの同一ブレンドシェイプ名にコピーされます。
Unreal Engine 5(MetaHumanを含む)
OnlyFace FBXをUnrealのコンテンツブラウザーにインポートします(ドラッグ&ドロップまたはインポートボタン)。インポート時に、FBXインポートオプションで"Import Morph Targets"がチェックされていることを確認してください。これによりブレンドシェイプアニメーションデータが取り込まれます。インポートされたアセットは、各ARKitブレンドシェイプに対応するモーフターゲットを持つスケルタルメッシュになります。
特にMetaHumanの場合:MetaHumanの顔は直接モーフターゲットではなくアニメーションカーブで駆動されます。標準的なワークフローは次のとおりです。(1) OnlyFace FBXを一時的なスケルタルメッシュにインポートします。(2) モーフターゲットの値を読み取るアニメーションブループリントを作成します。(3) Curve Remapノードを使用して、各ARKitブレンドシェイプ値を対応するMetaHumanアニメーションカーブに変換します。(4) MetaHumanのFaceコンポーネントにアニメーションブループリントを適用します。EpicのドキュメントでこのARKit-to-Curveリマッピングの詳細を確認できます。
Unity
OnlyFace FBXをUnityプロジェクトのAssetsフォルダーにドラッグします。UnityはブレンドシェイプをSkinnedMeshRendererコンポーネントのBlendShapesとして認識します。プログラムからアクセスできます。
// キャラクターからSkinnedMeshRendererを取得
SkinnedMeshRenderer smr = GetComponent<SkinnedMeshRenderer>();
// ブレンドシェイプのウェイトを設定(例:mouthSmileを0.8)
int index = smr.sharedMesh.GetBlendShapeIndex("mouthSmile");
smr.SetBlendShapeWeight(index, 80f); // 0~100の範囲
// または、フルアニメーションを再生:
// FBXのアニメーションクリップをインポートし、Animatorコントローラーを使用
// ブレンドシェイプキーが自動的にアニメーションします
FBXに埋め込まれたアニメーションクリップは、52のブレンドシェイプすべてを自動的に駆動します。Animator Controllerを作成し、クリップを割り当てれば、Unityが残りを処理します。
Maya
File → Importを使用し、OnlyFace FBXを選択します。Mayaは各ARKitシェイプに対応するブレンドシェイプデフォーマーを持つメッシュを作成します。アニメーションは各ブレンドシェイプウェイト属性のキーフレームとして保存されます。自分のリグに転送するには:(1) 自分のキャラクターメッシュをインポートします。(2) OnlyFaceメッシュを選択し、次にShiftキーを押しながらキャラクターを選択します。(3) Deform → Blend Shape → Addを使用し、"Target Shape Options → In-Between"のチェックを外します。(4) ブレンドシェイプ名が一致すれば、Mayaが自動的に接続します。詳細については、Maya統合ガイドをご覧ください。
iClone / Character Creator
iCloneとCharacter Creator(CC)は、標準キャラクターリグにARKitブレンドシェイプサポートを内蔵しています。File → Import → FBXからOnlyFace FBXをインポートします。CCキャラクターで「Facial Profile」が有効になっている場合(CC4キャラクターではデフォルトでオン)、iCloneは自動的にARKitブレンドシェイプ名を内部の表情システムにマッピングします。フェイシャルアニメーションがすぐにキャラクターの顔に表示されます。手動マッピングは不要です。



