Live2Dでのリップシンクには、まずModelerでパラメータ設定からまばたき・リップシンク設定を開きます。
そしてリップシンクさせたいパラメータにチェックを入れ、モデルを保存・書き出しを行います。Animator側でシーンに音声(wavのみ対応)をD&Dし、メニューからリップシンクアニメーションを出力します。
これでLive2D側でのリップシンクが行えます。ファイルを書き出しする際にリップシンクも書き出しするようにチェックをいれます。
Unity側ではhttps://docs.live2d.com/cubism-sdk-tutorials/lipsync/でくわしいやり方が載っていますが、注意点があります。
モデル側でリップシンクさせたいパラメータにチェックを入れましたが、このままだとUnity側のリップシンク設定と競合するので、これを外します。またアニメーションファイル書き出しの際もリップシンクは書き出さないようにします。上手く行ってない事が多いのでCubism Audio Mouth InputのAudio Inputを一時的に無効化にして、それでも口が動いてないか確認しましょう。音が流れていないのに口が動いてたら、リップシンクデータがアニメーションファイルに焼き込まれて出力されてしまっています。
1つのアニメーションに1つの音声を使うだけならリップシンクが焼き込まれていても問題無いのですが、必ずしもそうとは限らないので以上のような手順によってリップシンクはUnity側で処理するようにします。
また、Cubism Mouth ControllerのMouth Openingの向きと、Live2Dのパラメータ設定での口の開く向きが一致してるかも確認しましょう。
宴を使ったリップシンク
注意が必要なのは、1つのゲームの中でUnityで作ったシーンでリップシンクする場合と宴を用いたシーンでリップシンクする場合とで同じモデルを使い回す場合です。
宴にはLive2D Lip Synchというリップシンク用のコンポーネントがあり、モデルのPrefabに加える必要がありますが、こいつはawake時にLive2Dのリップシンクコンポーネントを無効化してしまいます。また、同時にCubism Auto Mouth Inputというコンポーネントも追加されてしまいます(これが有効だと勝手に口が動いてしまいます)。
つまりこのPrefabをそのままインスタンスとして宴以外のシーンに配置すると、宴以外のシーンではリップシンクをしてくれません。
宴はPrefabを用意しておいてゲーム起動中にモデルをインスタンス化して表示するので、Prefabから宴に必要なLive2D Lip SynchおよびCubism Auto Mouth Inputを外すという事はできません。代わりに宴以外のシーンで配置されたモデルのインスタンスからLive2D Lip Synchを外す事で宴以外のシーンでもリップシンクを正常に動作させる事が可能です。
モデルを差し替えた場合、再度これらがインスタンスに追加されるので再度外すようにしましょう。
コメント