はじめに
Live2Dでアニメ調のリップシンクを実現するAniLipSync-live2dというライブラリをリリースしました。
今回はその導入方法と使い方を紹介していこうと思います。
「あーいーうーえーおー。こんな感じで、リップシンクができます!」
また、後半のモデルに適用する設定は説明しきれなかったので、動画も用意しました。適宜参考にしてください。
【解説】AniLipSync-live2dをモデルに適用する手順の紹介 - YouTube
https://www.youtube.com/watch?v=2j2KALzretk
環境
- Windows 10 / macOS High Sierra
- Unity 2018.2.10f1
必要なアセット
各パッケージについてはそれぞれが定めるライセンスに準拠してください。
AniLipSync-live2dの導入
Live2D SDKとLive2Dモデルが入っている前提で、導入の説明をします。
OVRLipSyncのインポート
マイク音声の取得にはOVRLipSyncというライブラリを利用します。
以下のページから、ダウンロードします。
https://developer.oculus.com/downloads/package/oculus-lipsync-unity
利用規約とプライバリーポリシーに同意のチェックを付け、「Download」ボタンをクリックしてください。ダウンロードしたzipファイルを解凍し、中にある OVRLipSync.unitypackage
をダブルクリックしてください。
「Import」ボタンを押してファイルをインポートします。
AniLipSync-live2dのインポート
以下からAniLipSync-live2d.unitypackage
をダウンロードしてダブルクリックします。
https://github.com/nkjzm/AniLipSync-live2d#download
「Import」ボタンを押してファイルをインポートします。
サンプルシーンの動作確認
ProjectビューからAssets/AniLipSync-live2d/Examples/Scenes/AniLipSync-live2d
をダブルクリックします。
AniLipSync(https://t.co/uRmkM1AZvG)のLive2D版ライブラリを公開しました。
— Nakaji Kohki (@kohki_nakaji) 2018年9月30日
Live2Dでリミテッドアニメ調のリップシンクが簡単に実現できるので、ぜひ使ってみてください。フィードバックもお待ちしております。
nkjzm/AniLipSync-live2dhttps://t.co/atPGZv4eE0 pic.twitter.com/VA083x7Uiw
上記の動画のように動作するか確認してください。
モデルに適用する
『桃瀬ひより』という公式のサンプルモデルを例に説明します。
自作モデルを利用する場合などは、適宜読み替えて進めてください。
口形素プリセットの作成
まずは口形素プリセット(VisemeClip)を作成していきます。
Projectビューで右クリックをして、Create/AniLipSync/VesemeClip
を選択してください。
「Aa」という名前で保存します。同様に、「E」「Ih」「Oh」「Ou」も作成してください。
「Aa」を選択し、Inspector上で設定を進めていきます。
prefab
という項目の右端の○を選択肢、設定したいLive2Dモデルを指定します。
Preset
がAaであることを確認します(異なっていれば同名に設定してください)。
Transition Curve
をクリックし、任意のアニメーションカーブを作成します。
おすすめ設定は以下です(右端の値が0.1
である点に注意)
アニメーションカーブの編集の仕方はこちらを参考にしてください。
カーブの編集 - Unity マニュアル
https://docs.unity3d.com/ja/current/Manual/EditingCurves.html
Serialized Property
には、変化させたいパラメータの値を設定してください。
参考までに、ひよりモデルを使用した時の設定例です。
「Aa」以外の他の口形素についても同様に設定してください。
以上で口形素プリセットの作成が完了しました。
シーンへの組込み
次に、実際のシーンに設定をしていきます。
ProjectビューからAssets/AniLipSync-live2d/Prefabs/AniLipSync-live2d.prefab
をHierarchyビューにドラッグします。
ProjectビューからAssets/Oculus/LipSync/Prefabs/LipSyncInterface.prefab
をHierarchyビューにドラッグします。
HierarchyからAniLipSync-live2d
を選択し、AnimMorphTarget
を以下のように設定します。
-
model
: シーン上のモデルを指定 -
Viseme To Shape
: サンプルのプリセットが設定されているので、先程作成したものに変更
この状態で再生ボタンを押すと、マイク入力した音素に併せてモデルが口パクをすると思います。
動かなかった場合、別のリップシンクが有効になっていないかなど確認してください。
最後に
フィードバックなどあれば是非お待ちしております。
nkjzm/AniLipSync-live2d: Live2Dでリミテッドアニメのようなリップシンクを実現するためのライブラリです。
https://github.com/nkjzm/AniLipSync-live2d