電話動画 → フェイシャルブレンドシェイプ → Blender

動画からのフェイシャルモーションキャプチャ: QuickMagic スマホMoCapガイド

通常のスマートフォンで顔のパフォーマンスを録画し、QuickMagic でブレンドシェイプアニメーションを抽出し、ARKit形式のチャンネルをBlenderキャラクターにリダイレクトし、表情の範囲とジッターを補正して、その結果をMaya、Unreal Engine、Unityに送ります。

公開日: 2025年3月28日 · 更新日: 2026年7月15日 · QuickMagic 編集チーム

オリジナルのQuickMagicフェイシャルモーションキャプチャチュートリアル表紙: 電話動画とBlender顔アニメーション
このHTMLファイルに元の記事の表紙が圧縮されて直接埋め込まれています。
直接の回答: スマホを目の高さに置き、顔をきつくフレーミングし、柔らかく均一な照明を使用し、無表情から始めて、短いパフォーマンスを録画します。元の動画を QuickMagic にアップロードし、アクティブなプランで利用可能なフェイシャルまたはOnlyFaceワークフローを選択し、まばたき、顎、左右の表情を検査し、フェイシャルアニメーションをエクスポートし、Blenderにインポートし、ソースブレンドシェイプ値をターゲットキャラクターのシェイプキーにドライバーまたは明示的なマッピングで接続します。

現在のワークフローの事実

キャプチャハードウェア通常のRGB電話動画
深度センサーQuickMagic 動画入力には不要
無料プラン最大30秒、FBX形式
Only Face形式StarterおよびProfessionalに記載
ターゲット要件ブレンドシェイプ、フェイシャルジョイント、またはマッピングされたコントロール
コア転送方法チャンネルマッピング + 範囲再マッピング
元の記事の修正: 現在の無料プランでは60秒ではなく30秒の制限がリストされており、Only Faceは現在の無料プランの形式リストではなく、StarterおよびProfessionalの形式に記載されています。この記事では、Human Generatorのキャラクターが自動的に直接 QuickMagic 転送に対応していると説明していましたが、実際の運用では、インストールされているアドオンバージョンの正確なシェイプキー名、範囲、転送機能を確認してください。

オリジナルの顔キャプチャチュートリアルを見る

電話動画からBlenderフェイシャルMoCapへ

オリジナルの電話動画、QuickMagic、Blenderのフェイシャルモーションキャプチャワークフローを実演しています。

YouTubeで動画を開く

QuickMagic AI + Blender Human Generatorフェイシャルアニメーション

Human Generatorを使用した有料のBlenderキャラクターワークフローのオプションを示しています。

YouTubeで動画を開く

両方のプレーヤーは静的なYouTube iframeを使用しており、実行時にJavaScriptを必要としません。ブラウザ、地域、ネットワーク、またはローカルファイルビューアが埋め込み再生をブロックする場合は、赤い直接リンクボタンを使用してください。すべての記事画像はこのHTMLファイルに埋め込まれています。

フェイシャルモーションキャプチャが生成するもの

フェイシャルモーションキャプチャは、目に見える表情を時間変化するコントロールに変換します。ブレンドシェイプワークフローでは、各コントロールは顎を開く、まぶたを閉じる、眉を上げる、唇を圧縮する、頬を膨らませるなどの動きを表します。アニメーションは、時間経過に伴う係数値のシーケンスであり、最終的なキャラクターメッシュではありません。

Appleは、ARKitの顔表情を、特定の顔の特徴の動きに関連付けられた名前付き係数の辞書として文書化しています。これらの係数は2Dまたは3Dキャラクターを駆動できます。QuickMagic のOnlyFaceドキュメントには、ARKit互換の52ブレンドシェイプワークフローが説明されています。

ARKit互換はすべての顔でプラグアンドプレイとは限りません。 キャラクターは同じ名前を使用できますが、異なる乗数、制限、または補正シェイプが必要になる場合があります。スタイライズされたキャラクターでは、意図的に非線形の応答曲線が必要になることがよくあります。

1追跡可能な電話パフォーマンスを録画する

カメラ位置、フレーミング、照明を示す電話顔キャプチャ設定
安定したクリアなRGB動画で、QuickMagic ワークフローには十分です。深度ハードウェアは不要ですが、深度ベースのシステムは他のパイプラインで別のキャプチャオプションです。
  • スマホを目の高さに置き、安定させます。
  • 眉、あご、両頬が常に見えるように顔をフレーミングします。
  • 柔らかく均一な正面または斜め正面の照明を使用します。
  • 約2秒間の無表情から始めます。
  • 明確なまばたき、顎の開閉、笑顔、しかめ面、唇をすぼめる、眉の動きを行います。
  • 左右非対称の表情を含めて、ミラーリングされたマッピングを検出できるようにします。
  • メガネの反射、目の前の髪、口を覆う手、急な頭の動きを最小限に抑えます。
  • 再圧縮されたSNSコピーではなく、元のカメラファイルをアップロードします。
録画の選択肢推奨開始点理由
解像度可能な限り1080p以上目、唇、眉の細部を保持
フレームレート通常の演技は30 FPS。計画が対応していれば速い表情は60 FPSカーブ密度と可動の詳細のバランス
レンズ非常に近い超広角フレーミングは避ける顔の遠近歪みを軽減
頭部の動き適度で制御されたもの顔を読みやすく保ち、表情と頭部姿勢を分離

2QuickMagic でフェイシャルアニメーションを処理し検証する

  1. QuickMagic にサインインし、該当する動画からMoCapへのワークフローを開きます。
  2. 元の電話動画をアップロードします。
  3. アクティブなプランで利用可能な場合、フェイシャル処理またはOnlyFace形式を選択します。
  4. 必要なフレーム範囲のみを使用します。
  5. アニメーションを生成します。
  6. 無表情、まばたき、顎の開き、唇の閉じ、笑顔、眉、非対称の表情を確認します。
  7. サポートされている有料プランで、可視のソーストラッキングが間違っている場合に2Dリファインメントを使用します。
  8. 必要なFBX/フェイシャル出力をエクスポートし、未編集のソースファイルを保存します。
「1~3分」などの普遍的な処理時間を記載しないでください。処理時間はキュー優先度、クリップ長、選択機能、サービス負荷によって異なります。

ソースとターゲットのフェイシャルチャンネルを理解する

ターゲットキャラクターのフェイシャルリグにマッピングされたQuickMagic ARKitスタイルソースチャンネルの図
ソースはアニメーション係数を提供します。ターゲットは、それらの係数がその顔をどのように変形させるかを決定します。

最小限の有用な検証セット

  • jawOpen
  • eyeBlinkLeft および eyeBlinkRight
  • mouthSmileLeft および mouthSmileRight
  • browInnerUp
  • mouthPucker
  • 少なくとも1つの頬/鼻の表情
  • ターゲットがサポートしている場合の視線チャンネル

3つのマッピングケース

ソースとターゲット推奨アプローチ
名前と意味が一致する直接ドライバーを作成し、ゲインとクランプを調整します。
意味は一致するが名前が異なる明示的なマッピング辞書を作成します。
ターゲットがジョイント/コントローラーを使用するドライバー、ノード、またはドリブンキーを介して係数をコントローラートランスフォームまたは属性にマッピングします。

3組み込みシェイプキーとドライバーを使用したBlenderワークフロー

QuickMagic FBXインポートからターゲットシェイプキードライバーマッピングと検証までのBlenderワークフロー
Blenderはブレンドシェイプを「シェイプキー」と呼びます。ドライバーを使用すると、すべてのキーフレームを手動で複製せずに、ソースシェイプキーの値をターゲットシェイプキーの値に接続できます。
  1. Blenderを開き、File → Import → FBX を選択します。
  2. アニメーションを有効にして QuickMagic フェイシャルFBXをインポートします。
  3. ソース顔メッシュを選択し、Object Data Properties → Shape Keys を確認します。
  4. タイムラインをスクラブして、ソースシェイプキーの値がアニメーションすることを確認します。
  5. ターゲットキャラクターを同じシーンに読み込みます。
  6. ターゲットにシェイプキーまたは別の制御可能なフェイシャルリグが含まれていることを確認します。
  7. 各ターゲット表情について、一致するソース値を読み取るドライバーを追加します。
  8. ターゲットの表情が弱すぎたり強すぎたりする場合は、ゲイン、クランプ、またはカスタム応答曲線を追加します。
  9. ベイクまたはソースの削除前に、完全なクリップをテストします。
Blenderの現在のFBXドキュメントでは、インポートされたアクションをオブジェクト、ボーン、またはシェイプキーにリンクできると記載されています。アニメーションが自動的にターゲットにアタッチされると想定するのではなく、どのオブジェクト/アクションがカーブを受け取ったかを常に確認してください。

Blenderスクリプト: 一致するシェイプキー名のドライバーを作成する

以下のスクリプトは、名前がソースシェイプキーと完全に一致するすべてのターゲットシェイプキーに対してクランプされたドライバーを作成します。実行する前にBlenderファイルを複製し、2つのオブジェクト名を変更してください。

# Blender: 一致するフェイシャルシェイプキー名のドライバーを作成
# Blenderのスクリプトワークスペースで実行する前に、これら2つのオブジェクト名を編集してください。
import bpy

SOURCE_OBJECT = "QuickMagic_SourceFace"
TARGET_OBJECT = "Target_Character"
GAIN = 1.0

source = bpy.data.objects.get(SOURCE_OBJECT)
target = bpy.data.objects.get(TARGET_OBJECT)

if source is None or target is None:
    raise RuntimeError("ソースまたはターゲットオブジェクトが見つかりませんでした。")

if not source.data.shape_keys or not target.data.shape_keys:
    raise RuntimeError("両方のオブジェクトにシェイプキーが含まれている必要があります。")

source_keys = source.data.shape_keys.key_blocks
target_keys = target.data.shape_keys.key_blocks

created = []
skipped = []

for target_key in target_keys:
    name = target_key.name
    if name == "Basis":
        continue
    if source_keys.get(name) is None:
        skipped.append(name)
        continue

    # ターゲット値に既存のドライバーがあれば削除します。
    try:
        target_key.driver_remove("value")
    except TypeError:
        pass

    fcurve = target_key.driver_add("value")
    driver = fcurve.driver
    driver.type = "SCRIPTED"

    variable = driver.variables.new()
    variable.name = "src"
    variable.type = "SINGLE_PROP"
    variable.targets[0].id_type = "KEY"
    variable.targets[0].id = source.data.shape_keys
    escaped = name.replace("\\", "\\\\").replace('"', '\\"')
    variable.targets[0].data_path = f'key_blocks["{escaped}"].value'

    # 共通の0-1ターゲット範囲にクランプします。
    driver.expression = f"min(max(src * {GAIN}, 0.0), 1.0)"
    created.append(name)

print(f"{len(created)}個のドライバーを作成しました。")
print("スキップされた一致しないターゲットキー:", skipped)

スクリプト実行後

  1. タイムラインをスクラブし、ターゲットがアニメーションすることを確認します。
  2. 印刷された一致しないターゲットキーのリストを確認します。
  3. 異なる名前のチャンネルを手動でマッピングします。
  4. 必要に応じて GAIN または個々のドライバー式を変更します。
  5. 左右のチャンネルを注意深くテストします。

オプションのHuman Generatorワークフロー

Human Generatorは有料のBlenderキャラクター生成アドオンであり、QuickMagic の要件ではありません。現在のマーケットプレイスのリストは最新のBlenderバージョンをサポートしていますが、購入ティア、Blender互換性、転送ツールは現在の製品ページで確認する必要があります。

  1. Human Generatorを文書化されたBlenderアドオンワークフローを通じてインストールします。
  2. フェイシャルシェイプキーシステムを持つキャラクターを作成または読み込みます。
  3. QuickMagic ソースFBXをインポートします。
  4. ソースとターゲットのシェイプキー名を比較します。
  5. アドオンがソースデータを明示的にサポートしている場合は、その文書化された転送機能を使用するか、Blenderドライバーを使用します。
  6. ターゲット固有の表情の強さと補正シェイプを調整します。
すべてのHuman Generatorキャラクターが自動的に正確なソース名を含んでいる、またはすべてのチャンネルが自動一致することを約束しないでください。インストールされているバージョンと実際に生成されたキャラクターを確認してください。

フェイシャルアニメーションのクリーンアップとキャリブレーション

表情が弱すぎる

その特定の表情のチャンネルゲインを増やすか、より急な応答曲線を使用します。

表情が強すぎる、または顔をクリップする

ターゲット値をクランプし、ゲインを減らします。複数のシェイプが過度に組み合わさっていないか確認します。

まばたきが不完全

動画でまぶたが見えていたことを確認し、まばたきのゲインを調整し、ターゲットのまぶたの変形が不完全な場合は補正シェイプを追加します。

リップシンクがぼやけている

顎の開きと唇の閉じを維持します。子音のタイミングを除去するような広範なスムージングは避けてください。

左右の表情が反転している

片方だけの笑顔と眉上げをテストし、ミラーリングされたソース/ターゲットマッピングを修正します。

ジッター

目に見えてノイズのあるチャンネル区間のみをスムージングします。自然な目の動き、まばたき、発話の明瞭さ、非対称な演技は保持します。

同じフェイシャルデータをMaya