OVRlipSyncおぼえがき

OVRlipSyncを使うまでの解析と道のり。


モデルを作ってUVで口パクのマップを自由につくるところはOK

モデルをモーフさせ開き閉じのオブジェをつくることOK

FBXで出力もOK

モデルにボーンをいれてそれで口を動かすベースモデルをつくることもOK

人体形態モデルにボーンをしこんでFBXで出力もOK


まだよくわかってないこと


OVRlipSyncのスクリプトをどこにどうアタッチするのか

アタッチしたあとの処理

全体を制御するスクリプトの作成

モデルの個別のアニメーションの組み方など


あいまいなこと

--GameObjectにアタッチするスクリプトは3つ?

OVR Lip Sync Mic Input

OVR Lip Sync Context

OVR Lip Sync Context Texture Flip

OVR Lip Sync Test Audio   ?


引用テキスト(凹 (id:hecomi))さんより引用VRLipSync

 DLL のラッパースクリプト Awake() を使ったシングルトン形式でシーンに 1 つだけ配置 static なメンバを通じてコンテキストの生成・破棄やデータを渡して認識を行う 

OVRLipSyncContext  

内部ではコンテキストの生成・破棄、そして OnAudioFilterRead() を使って再生中のオーディオのデータを取得して DLL へ投げたりするコア部分 コンテキストは C# 側へは uint の ID で返ってきて、これを通じて DLL 側で操作を行う モーフまたはテクスチャでリップシンクを行う対象の GameObject 1 つにつき 1 つずつアタッチ GetCurrentPhonemeFrame() で口形素の情報などを含む ovrLipSyncFrame を取ってこれる 

OVRLipSyncContextMorphTarget 

 GetCurrentPhonemeFrame() で取ってきた口形素を skinnedMeshRenderer.SetBlendShapeWeight() に与える OVRLipSyncContext と同じ GameObject へアタッチ 

OVRLipSyncContextTextureFlip 

 最も近い(値の大きい)口形素のテクスチャにマテリアルを変更 OVRLipSyncContext と同じ GameObject へアタッチ OVRLipSyncMicInput AudioSource にファイルを与える代わりに Microphone クラスを用いて得られたマイク入力を利用する OVRLipSyncContext と同じ GameObject へアタッチ


…と

分からないとこ明確にするためにテキスト化していたら

できた~。(^^)/

Materialのところ作ったオブジェのを再指定したら動いた~。

プラグインとして機能した!

Mic InputのMic ControlはConstant Speakにする。


あもらのなかブログ

中のひとはいません。