リアルタイムリップシンク

リアルタイムのリップシンクは後回しにしようと思ったけど

分かりやすいサイトみつけて簡単にできそうだったので先にやってみた。

自作モデルでは表情パーツ作ってないからユニティちゃんで代用

 

こちらの記事を参考

http://tips.hecomi.com/entry/2016/02/16/202634

 

OVRLipsyncを使う
https://developer.oculus.com/downloads/package/oculus-lipsync-unity/
DLしてインポート

 

 

空の GameObject を作成してScriptsフォルダの OVRLipSync をアタッチ

 

同じフォルダ内のOVRLipSyncContext と OVRLipSyncContextMorphTarget を
unityちゃんにアタッチ

 

OVRLipSyncContextMorphTarget の Skinned Mesh Rendererフィールドに

モデルの口の部分を指定する。

unityちゃんの場合は MTH_DEF を選択。

これはモデルによって違うので、モデルの口を選択してどれが該当のモノなのかは事前に確認しておく。

口の表情パーツを選択すると登録されている順番が分かるので番号を0番から振って控えておく

unityちゃんなら

あ→6

い→7

う→8

え→9

お→10

 

unitちゃんモデルにアタッチしたOVRLipSyncContextMorphTarget の
Viseme To Blend Targets フィールドにunityちゃんの表情を割り当てていく

割り当てはこんなかんじらしい。

参考サイト:https://qiita.com/ngron/items/b2c02a0f8133aac2ad9a

 

OVRLipSyncContextMorphTargetの ソースを書き換えて

Update() を LateUpdate() に変更

scriptsフォルダ内のOVRLIpSyncMicInputをunityちゃんにアタッチ

Mic Controlの部分をConstantSpeadkに変更

これで実行したらリップシンクできるー!!!

 

 

∑(゚Д゚;って出来ないじゃん!!

反応しないと思ったらエラー出てた。

 

原因は、Ver2017とかのバージョンだとスクリプトの読み込みの順番が悪いらしい。

参考元こちら

この動画で初めて知ったけど

最小限のコンポーネントの探し方とかそれの動作検証方法とかタメになった。

 

Edit>ProjectSettings>ScriptExecutionOrderを開く

+ボタンから

OVRLipSync

OVRLipsyncContextの順番で登録

 

これで・・・実行するとやっとリアルタイムリップシンクできました!!!

関連記事




コメントを残す

※コメントは承認後に表示されます。
 コメントを公開されたくない場合、名前の後に「:非公開」とつけてください。