OVR RipSync
OculusSDKに同梱のリップシンクライブラリ
https://developer.oculus.com/documentation/unity/audio-ovrlipsync-unity/
使い方回りは一旦以下を参照
VR人形遊び
VR人形遊びとChatGPTとボイスロイド
使い方メモ
ワールドにLipSyncInterfaceプレハブを設置する
デバッグ用に LipSyncDebugConsoleも設置
サンプリングするAudioSourceのSpatializePostEffectsをONにする。
空間オーディオ変換される前の波形で口パクの解析をしたいため
サンプリングするAudioSourceと同じオブジェクトに、OVR Lip Sync Contextをアタッチ
OVRLipSyncContextの設定について
Audio LoopbackをONにしないと音が出ない(マイク取り込んで口パクする時はOFFにする)
Show VisemesをONにすると、LipSyncDebugConsoleに解析状態が出る
サンプリングするAudioSourceと同じオブジェクトにOVR LipSync Context Morph Targetをアタッチ
↑は頂点モーフで口パクする場合。テクスチャ切り替えの場合はOVRLipSyncContextTextureFlip
SkinnedMeshRendererに頂点モーフするオブジェクトを設定
VisemeToBlendTargetsで、口パクに使う頂点モーフを指定する
インデックス番号で指定するので注意
再生して、口パクさせながらMeshRendererを見ると良い
口形素のリファレンス https://developer.oculus.com/documentation/unity/audio-ovrlipsync-viseme-reference/
母音しかブレンドシェイプが無ければ、無理に子音系の口形素使わなくて良いかも
table:口形素とインデックスの対応関係
index name japan detail
0 sil 無音。喋ってない時
1 PP パ、バ、マ
2 FF フ
3 TH ス(英語の授業で良く指摘されるやつ)
4 DD ドゥ(日本の発音に無い気がする)
5 kk ック、ッグ(日本の発音に無い気がする)
6 CH チ
7 SS ス
8 nn ル(Lの方)、ン、ヌ
9 RR ル(Rの方)
10 aa a ア
11 E e エ
12 I i イ
13 O o オ
14 U u ウ