こんにちは🌟八ツ橋まろんですっ‼
【概要】====================================
Unityでは、ダンスモーションはキャラクターが違っても使いまわせますが、口パクや表情のモーションは使いまわしができません。VRM Blend Shape Overrideを使って口パクや表情モーションを作れば別のVRMキャラクターでも使いまわせるようになります。
========================================
配布スクリプト
Googleドライブでの配布はこちら
https://drive.google.com/drive/folders/125HpfIqsStiaSD71i8FY_ZlrERCYqPNS?usp=share_link
GitHubでの配布はこちら
https://github.com/MaronVtuber/VRMBlendShapeOverride
【まえがき】(読みとばしてもいいよ)
2018年に『VRM』という規格が作られて、これがアバターの統一規格のひとつとして使いやすく、様々なアプリ制作で使われていますね。
UnityではHumanoid構造な3Dモデルは既存のダンスモーション(Humanoidアニメーション)なんかを共通で使いまわすことができます。VRMモデルは全てHumanoid構造なので、どんなVRMモデルをダウンロードしてきても既存のHumanoidアニメーションがそのまま使えます。
[画像:Humanoid構造なら同じ動きをしてくれる]
一方で、Unityでキャラクターの表情や口パクなどのブレンドシェイプを動かすアニメーションはHumanoid構造から外れて名前参照のGenericアニメーションになるため、他のアバターと共有はできません。(3Dモデル毎にパラメータの名前が違うため)
[画像:表情アニメーションは共有できない]
VRMモデルには、これを解消すべく「A,I,U,E,O,Fun,Blink」などの表情が定義されていて、これはVRMアバター共通で動かすことができます。
[画像:VRMモデルは同じ命令で同じ表情を作れる]
VRMの表情操作は便利ですが、VRMのアバターに付いている『VRM Blend Shape Proxyコンポーネント』にスクリプトで命令して操作しないといけないので、プログラミングの知識が必須で、難易度が高いです。
この敷居を下げて、いろんな人が表情操作できるようになると良いなと思い、
『TimelineでVRMの表情を操作できるようになるTimeline拡張スクリプト』
を作成しました。
※Timelineって何?という人は八ツ橋まろんのYouTube動画を見てね
<<ここまでの簡易まとめ>>
・UnityではHumanoid構造のダンスモーションは使いまわせる
・Unityでは表情&口パクアニメーションは名前参照なので使いまわせない
・VRMを使えばアバター共通で表情&口パクデータを使いまわせるかも
・VRMの表情&口パクは映像制作で使うTimelineに対応していない
・VRMの表情&口パクをTimelineで操作できる拡張スクリプトを作った
例えば、一般に配布されているダンスモーションを使って動画を作りたい時、やはり表情や口パクも添えたいものですが、そう簡単ではありません。
しかしVRMとこのスクリプトを使えば、UnityのTimelineを使ってダンスに合わせて表情づけや口パクが簡単にできます。
このTimeline拡張のスクリプトはMIT Licenseで配布しています。
(≒営利非営利問わず自由に使っていいよ、MIT Licenseのルールにだけ従ってね)
実際にダンスモーションと組み合わせたセットはこちらで配布しています。
(ダンスモーションはMIT Licenseではないことに注意)
そのため、『ダンスモーション + Timeline拡張スクリプト + 表情・口パクモーション』というセットで販売・配布が可能です。
わたしも、表情を含めたモーションの販売やっていきたいと思っています。
【使い方】
使い方の動画をYouTubeにアップしていますので、詳しくは動画を見てください。
https://youtu.be/JP2CstQHIvk
<<使い方の概要>>
・UniVRMのインポート(バージョンは0.xxxです、1.xxxでは動きません)
・VrmBlendShapeOverrideのインポート(今回の配布スクリプト)
・UnityのTimelineでVRM Blend Shape Override Trackが追加できるようになる
・Timeline内で右クリック→Add ClipでClipを置き、Inspectorでどの表情かを指定する
・VRMの仕様上、表情の確認はシーン再生中でのみ有効
・VRM Blend Shape Override Trackを2つ使うことで表情と口パクを組み合わせることが可能。その際の分け方は以下の通り
『A,I,U,E,O,Unknown』は口パク用(Unknownが『閉じた口』の代わり)
『Netural, Angry, Fun, Joy, Sorrow, Blink, Blink_L, Blink_R』は表情用
(Neturalが『デフォルト表情』の代わり)
<<使い方概要ここまで>>
もし表情・口パクデータを含めたアニメーション販売をしたい場合、VRM Blend Shape Overrideのスクリプトと、これを使って作ったTimelineのデータ(○○.playable)も一緒に同梱するといいです。
以上、使い方でした。
【おわりに】
VRMの表情操作のTimeline拡張を作りました。従来のダンスモーションの販売から、ダンス+口パクとか、口パクのみの販売など、私個人としても、試してみたいことがたくさんあります。よければ使ってみてください。
それでは🌟