uLipSyncを久しぶりに使う
2年ぶり!
準備
Unity2022.3.7
uLipSync 3.0.2
PackageManagerでいれた
https://github.com/hecomi/uLipSync.git#upm
サンプルもタブから入れる。CommonとVRMとTimeline
VRM
サンプルシーンを動かす
VRM1.0
実行したら動いた
VRMにAudioSourceと、uLipSyncのスクリプトと
ExpressionVRMというファイルがついてる
VRM0.Xのほうは、ExpressionVRMじゃなくてBlendShapeVRMがついてる
自分のモデルがVRMバージョンどっちかわからない。
0.Xのほうでやったら動いた
uLipSyncUpdateのところで参照するものを自分自身のBlendShaprVRMモデルに変える
試しにExpressionVRMコンポーネント(VRM1.0用)を付けたらこれは1.0じゃないって言われた。最近VroidMobileで作ったばっかりのモデルなのに1.0じゃないんだ
音声録音
Windowsのボイス録画ソフトを使う
Windows11からサウンドレコーダーという名前になった。前はボイスレコーダーだった気がする。
デフォルトだとm4a形式で録音された。これはUnityに取り込めない。
設定でレコーディング形式をmp3に変更できた。
これで適当にしゃべった
そしてサンプルのAudioSourceのAudioClipに入れたら、ちゃんと喋った通りに動いた
Timeline
Timelineのサンプルのほうは、事前に計算したデータを使っている。
uLipSync用のトラック追加
Trackの中のClip?の設定。ここにBakedDataを入れる
モデルにもタイムライン用のコンポーネントがついてる
Bakeデータは、右クリックCreateから空のBakedDataを作って
そのインスペクタ内でプロファイルとAudioClipを選んでBakeして作れる
そしてタイムラインに組み込んだら自分の音声で動いた!
VRMではこんな感じ
Animationデータ
今の本番環境だとuLipSyncアセットがエラーが出てなぜか動かないし、動いたとしてもWebGLビルドの時にもエラーが出てた気がするから、別のきれいなUnityProjectでAnimationデータとして口パクを書き出せないかな~と思ったらなんとその機能もあった!すごい!
AnimationBakeサンプルで見れる
本当にアニメーションになってる!シーンのモデルについているuLipSyncコンポーネントを消しても動く!
自分で作るにはここからウィンドウを出して
いろいろセット
したけどエラーが出てCreate output directoryで止まってしまう
エラーにはThe variable skinnedMeshRenderer of uLipSyncBlendShapeVRM has not been assigned.と書いてある。
uLipSyncBlendShapeVRMにはskinnedMeshRendererをセットするとこないんだけどな~
使えないのかな;;
あとこのプログレスウィンドウを消すすべがUnityごと消すしかないのがつらい
元からついていたVRMモデルで試してもダメで、Unityちゃんで試したらできたのでやっぱりuLipSyncBlendShapeVRMのせいっぽい
追記
VRMでのやり方の記事を書いていただけました!!
uLipSyncBlendShapeVRMははずして、uLipSyncBlendShapeをつけ、Faceを選び以下のようにする
一回これ試したとき、BlendShapesに新しい項目を追加しても、BlendShapeのところに何も出てこなかったので、使えないのかなと思ったが、項目追加した後にもう一度Face以外のBodyとかにしてFaceを選びなおしたらいろいろ候補が出てくるようになった
これで作ったらエラーをはかずAnimationClipができた!
できたAnimationClipをTimelineに設定したらうごいた
Animatorの中に生成された口パクAnimationを設定しても動く
別プロジェクトへ
同じモデルに対して別のUnityプロジェクトで口パクアニメーションを作って、本番用のUnityプロジェクトにAnimationClipだけ持ってきて動くのだろうか?
動いた!!!!
しかも別のモデルでもVRM同士だからなのか同じBlendShape名?だからなのか適用した!やった~
もともと本番プロジェクトのほうのキャラは手動のキー打ちで口パクとか表情を付けていたので、口に関するキーは消して、持ってきた口パクアニメーションをTimelineに追加したら完全にぱくぱくした!