メインコンテンツまでスキップ

カスタムキャラクターでプラグインを使用する方法

このガイドでは、非MetaHumanキャラクター向けにRuntime MetaHuman Lip Syncをセットアップするプロセスを説明します。このプロセスには、アニメーションの概念とリギングに関する知識が必要です。特定のキャラクターへの実装に支援が必要な場合は、solutions@georgy.dev までプロフェッショナルサポートを依頼できます。

リップシンクモデルに関する重要な注意

カスタムキャラクター互換性

カスタムキャラクターは、Standard (Faster) モデルでのみサポートされています。

Realistic (Higher Quality) モデルは、MetaHuman および ARKit キャラクター向けに設計されており、他のカスタムキャラクターでは使用できません。このガイド全体を通して、メインのセットアップガイドで参照される際は、Standard モデルの手順に従ってください。

拡張プラグイン必須: カスタムキャラクターで Standard モデルを使用するには、メインセットアップガイドの前提条件セクションで説明されているように、Standard Lip Sync Extension プラグインをインストールする必要があります。

この拡張機能は、このガイドで説明するすべてのカスタムキャラクター実装に必須です。

前提条件

開始する前に、キャラクターが以下の要件を満たしていることを確認してください:

  • 有効なスケルトンを持っている
  • 表情用のモーフターゲット(ブレンドシェイプ)を含んでいる
  • 理想的には、10個以上のビセームを定義するモーフターゲットを持っている(ビセームが多いほどリップシンクの品質が向上)

プラグインは、キャラクターのモーフターゲットを以下の標準ビセームにマッピングする必要があります:

Sil -> Silence
PP -> Bilabial plosives (p, b, m)
FF -> Labiodental fricatives (f, v)
TH -> Dental fricatives (th)
DD -> Alveolar plosives (t, d)
KK -> Velar plosives (k, g)
CH -> Postalveolar affricates (ch, j)
SS -> Sibilants (s, z)
NN -> Nasal (n)
RR -> Approximant (r)
AA -> Open vowel (aa)
E -> Mid vowel (e)
IH -> Close front vowel (ih)
OH -> Close-mid back vowel (oh)
OU -> Close back vowel (ou)

注: キャラクターが異なるビセムセットを持っている場合(その可能性が高いです)、各ビセムに完全一致は必要ありません。近似で十分なことがよくあります - 例えば、キャラクターの SH ビセムをプラグインの CH ビセムにマッピングすることは、それらが密接に関連した後部歯茎音であるため、効果的に機能します。

ビセムマッピングリファレンス

一般的なビセムシステムとプラグインが必要とするビセム間のマッピングは以下の通りです:

ARKitは、いくつかの口の形状を含む、顔のアニメーション用の包括的なブレンドシェイプセットを提供します。以下は、それらをRuntimeMetaHumanLipSyncのビセムにマッピングする方法です:

RuntimeMetaHumanLipSync ビセムARKit 相当備考
SilmouthCloseニュートラル/静止位置
PPmouthPressLeft + mouthPressRight両唇音には、両方のプレス形状を一緒に使用
FFlowerLipBiteLeft + lowerLipBiteRight (または mouthRollLower)下唇が上歯に接触、「f」や「v」の音
THtongueOutARKitは舌を直接制御可能
DDjawOpen (軽度) + tongueUp (舌リグがある場合)舌が歯茎に接触;顎をわずかに開く
KKmouthLeft または mouthRight (軽度)口角をわずかに引くことで軟口蓋音を近似
CHjawOpen (軽度) + mouthFunnel (軽度)後部歯茎音のために組み合わせる
SSmouthFrown歯擦音にはわずかなしかめ面を使用
NNjawOpen (非常に軽度) + mouthClose口はほぼ閉じた状態で顎をわずかに開く
RRmouthPucker (軽度)r音のためのわずかな丸め
AAjawOpen + mouthStretchLeft + mouthStretchRight (または jawOpen + mouthOpen)「あ」の音のための大きく開いた口
EjawOpen (軽度) + mouthSmile中程度に開いた位置でわずかに微笑む
IHmouthSmile (軽度)唇をわずかに広げる
OHmouthFunnel丸く開いた形状
OUmouthPuckerきつく丸めた唇

カスタムポーズアセットの作成

Blend Runtime MetaHuman Lip Sync ノードで使用するキャラクター用のカスタムポーズアセットを作成するには、以下の手順に従ってください:

1. キャラクターのスケルタルメッシュを特定する

リップシンクアニメーションに使用したいモーフターゲット(ブレンドシェイプ)を含むスケルタルメッシュを見つけてください。これは、キャラクターの設計に応じて、全身メッシュまたは顔メッシュのみかもしれません。

2. モーフターゲットとカーブを確認する

続行する前に、スケルタルメッシュにリップシンクアニメーション用の適切なモーフターゲットと対応するカーブがあることを確認してください。

モーフターゲットを確認: スケルタルメッシュに、リップシンクアニメーションのビセムとして使用できるモーフターゲット(ブレンドシェイプ)が含まれていることを確認してください。顔のアニメーションをサポートするほとんどのキャラクターは、いくつかのフォネーム/ビセムモーフターゲットを持っているはずです。

キャラクター内のモーフターゲットの例

重要:カーブタブを確認 このステップは、Blenderや他の外部ソフトウェアからエクスポートされたキャラクターにとって特に重要です:

  1. スケルタルメッシュエディタで カーブ タブを開く
  2. モーフターゲットに対応するカーブが表示されるか確認する
  3. カーブタブが空の場合 でもモーフターゲットが存在する場合は、モーフターゲットと まったく同じ名前 を使用して新しいカーブを手動で追加する

注: この問題は、モーフターゲットは正常にインポートされるが、アニメーションカーブが自動的に作成されないBlenderエクスポートで一般的に発生します。一致するカーブがないと、Control Rigへのベイク後にアニメーションが適切に反映されません。

代替解決策: Blenderからのエクスポート中にこの問題を防ぐには、FBXエクスポート設定で カスタムプロパティアニメーション を有効にしてみてください。これにより、モーフターゲットと一緒にアニメーションカーブが含まれる可能性があります。

3. リファレンスポーズアニメーションを作成する

  1. アセットを作成 -> アニメーションを作成 -> リファレンスポーズ に移動
  2. アニメーションシーケンスに説明的な名前を入力し、適切な場所に保存
  3. 作成されたアニメーションシーケンスが自動的に開き、ループ再生される空のアニメーションが表示されます

リファレンスポーズアセットの作成 リファレンスポーズアセットの命名

  1. 編集を容易にするために、アニメーション再生を停止するには 一時停止 ボタンをクリック

アニメーション再生の一時停止

4. アニメーションシーケンスを編集する

  1. Edit in Sequencer -> Edit with FK Control Rig をクリック
  2. Bake to Control Rig ダイアログで、設定を変更せずに Bake to Control Rig ボタンをクリック

FK Control Rigで編集 Control Rigにベイク

  1. エディタは Sequencer タブが開いた アニメーションモード に切り替わります
  2. 表示範囲終了時間 を 0016 に設定(これにより 作業範囲終了 も自動的に 0016 に設定されます)
  3. スライダーの右端をシーケンサーウィンドウの右端までドラッグ

5. アニメーションカーブを準備する

  1. Animation Sequence アセットに戻り、Curves リスト内のモーフターゲットを探します(表示されていない場合は、Animation Sequence アセットを閉じて再度開いてください)
  2. ビジームや、リップシンクに使用したい口の動きに関連しないモーフターゲットをすべて削除します

6. Plan your viseme mapping

あなたのキャラクターのビセームをプラグインが必要とするセットに一致させるためのマッピング計画を作成します。例:

Sil -> Sil
PP -> FV
FF -> FV
TH -> TH
DD -> TD
KK -> KG
CH -> CH
SS -> SZ
NN -> NL
RR -> RR
AA -> AA
E -> E
IH -> IH
OH -> O
OU -> U

注記:キャラクターのビセームセットがすべての必要なビセームに正確に一致しない場合、マッピングが重複しても問題ありません。

7. Animate each viseme

  1. 各ビセームについて、関連するモーフターゲットカーブを0.0から1.0までアニメーション化します
  2. 各ビセームアニメーションを異なるフレームで開始します
  3. 自然なビセーム形状を作成するために、必要に応じて追加のカーブ(顎/口の開閉、舌の位置など)を設定します

8. Create a Pose Asset

  1. Create Asset -> Pose Asset -> Current Animation に移動します
  2. Pose Asset に説明的な名前を入力し、適切な場所に保存します
  3. 作成された Pose Asset は自動的に開き、Pose_0Pose_1 などのポーズが表示されます。それぞれがビセムに対応しています
  4. ビセムの重みをプレビューして、期待通りに機能することを確認します

Creating a pose asset Naming the pose asset Pose asset with visemes

9. Finalize the Pose Asset

  1. 前提条件 セクションのビセム名と一致するように、各ポーズの名前を変更します
  2. 未使用のポーズを削除します

オーディオ処理とブレンディングの設定

ポーズアセットの準備ができたら、オーディオ処理とブレンディングノードを設定する必要があります:

  1. キャラクターのAnimation Blueprintを探すか作成します
  2. 標準プラグインセットアップガイドに記載されているのと同じ手順に従って、オーディオ処理とブレンディングを設定します
  3. Blend Runtime MetaHuman Lip Syncノードで、デフォルトのMetaHumanポーズアセットの代わりに、作成したカスタムポーズアセットを選択します

カスタムポーズアセットの選択

ボディアニメーションとの組み合わせ

他のボディアニメーションと一緒にリップシンクを実行したい場合:

  1. 標準プラグインガイドに記載されているのと同じ手順に従います
  2. MetaHumanのボーン名を使用する代わりに、キャラクターの首のスケルトンに正しいボーン名を指定してください

結果

このセットアップを使用したカスタムキャラクターの例を以下に示します:

例1: カスタムキャラクターでのリップシンク

例2: 異なるビセムシステムでのリップシンク

例3: 異なるビセムシステムでのリップシンク

リップシンクの品質は、特定のキャラクターとそのビセムの設定の良さに大きく依存します。上記の例は、異なるタイプのカスタムキャラクターと、それぞれ異なるビセムシステムでプラグインが動作していることを示しています。