Live2Dで胸揺れ物理演算してみる


Live2Dには、モデリングソフトとモーション付けソフトの他にLive2D ViewerというFlash製の動作確認ツールがあります。
Viewerを使うと髪揺れなどの物理演算の値を簡単に編集できます。

Live2Dのワークフロー

Unityに組み込む時のワークフローとしてはこんな感じです

モーション付けソフトでも作れますが、Unityなどでインタラクティブな胸揺れする場合は物理演算を使うと便利かと思います。
ぶっちゃけ言うとモーションファイルや物理演算ファイルは、サンプルモデルから流用してもOKです。
サンプルの物理演算ファイルに、胸揺れがなかったのでさせてみました。

準備するもの

Modelerソフトのメニューからmocを書き出して、mocファイルをViewerにドラッグ&ドロップします
(moc出力したフォルダでもjsonファイルをドラッグ&ドロップしてもOKです)
 ※ 書き出しはModelerの[ファイル]-[mocファイル書き出し]からできます
 

物理演算のやり方(髪揺れ)

まずは髪揺れの物理演算の仕方です。

1)物理演算ファイルを追加します

2)マウスドラッグすると髪揺れします

3)物理演算ファイルを保存すれば、UnityなどSDKで使えます

髪揺れの仕組みですが、Viewerで物理演算のファイルを選択すると前髪、横髪、後髪の選択リストが出ます。

ざっくり言うと入力でセットしたパラメータを動かした時、出力でセットしたパラメータが動きます。

入力の影響度は、一番下の行から揺れ具合を計算していきます。
一番下の行が1=100%とし、上の行で0.5を掛ける事により2つのパラメータをそれぞれが50%ずつ影響する計算になっています。
詳しくはLive2D Manualの01.物理演算の設定を見てみて下さい。

物理演算のやり方(胸揺れ)

では胸揺れをさせていきましょう!

1)胸揺れ用の新しい項目を追加します

2)簡単設定にチェックを入れ、簡単な物理演算設定をします

 参考ページ:Live2D Manualの02.物理演算の簡単設定

3)値を修正しつつ、Viewerで動作確認します。値はこんな感じで10分程度でできました

4)Viewerでmocファイルを選択すると、パラメータ操作ができます

5)あとは物理演算ファイルを保存して、UnityのLive2D SDKサンプルのDemoプロジェクトでファイルを変えれば完成です!

あとDemoのソースを見るとわかりますが、L2DPhysics.csを参照する事でメインソースでは以下の4行で物理演算が簡単にできます。
using live2d.framework;
private L2DPhysics physics;
if (physicsFile != null) physics = L2DPhysics.load(physicsFile.bytes);
if (physics != null) physics.updateParam(live2DModel);

本業じゃないので揺れ具合が甘いですが、とりあえず簡単にできました♪