UnityでLive2Dモーションの[配置&不透明度]のパラメータが再生されない。

【Cubism SDKのバージョン】Cubism 5 SDK for Unity R2
【OS名・バージョン】Windows10(19045.4291)
【開発使用ツール】Unity 2021.2.0b1

【不具合の状況】
・Live2Dモデルは正常に読み込まれたが、モーションデータを再生したところ[配置&不透明度]のパラメータが再生されなかった。

[Live2Dパラーメタ]は正常に再生されましたが、[配置&不透明度]でモデルの角度を変えたり、移動させるパラメータ(添付の赤枠内)が再生されませんでした。

色々な書き出し方法で試してみましたが上手くいかず、そもそも仕様として可能かご教示いただけますと大変助かります。
よろしくお願いいたします。

こんにちは。
仕様として無理そうな気がします。
モーションを書き出すときにカーブ情報、不透明度、リップシンク、まばたきが書き出されると書いてあるので配置情報などは書き出されなさそうです。

「いいね!」 1

横からから失礼いたします。

タイムラインパレットのプロパティグループ「配置&不透明度」は Live2D パラメータではなく、あくまで現在の can3 ファイル内に存在する cmo3 ファイル個々へのジオメトリ制御用プロパティであり、SDK 用の書き出しデータ一式に内包されるデータではないと推察されます。

ただ、解決策はあります。

* * *

【作戦①】全体の不透明

「Live2Dパーツ表示」プロパティグループでキャラモデル全体のルートに位置するパーツ(画像では「全身」)に透明度のキーフレームを打てば、パーツの不透明度アニメーションとして motion3.json に不透明度の変化を持たせることができます。

よって、Live2D キャラモデル全体の不透明度を can3 から SDK用の書き出しデータに内包することは仕様的に可能です。

【作戦②】全体の座標移動&倍率&回転

Live2D モデルのルートに「ジオメトリ制御用の回転デフォーマ」を作成し、移動/回転/拡縮をパラメータのアニメーションとして motion3.json に内包すれば可能です。

わたしの作例で恐縮ですが……

和了モーションの最後に麻雀牌をもつキャラモデルを画面に近づけるため、Live2D モデルのルートに「全身の接近」という前後拡縮用の回転デフォーマを設け、パラメータ「全身の前後」へ回転デフォーマの「倍率」としてキーを打ち、そのアニメーションで拡大=画面接近しているように見せています。つまり配置プロパティの倍率ではなく、回転デフォーマの倍率を代用する作戦です。

このパラメータはアニメーションなので、当然のことながら motion3.json に内包されるため……

Unity で Cubism SDK を利用する VTubeStudio でも moc3 の倍率変更が実現できています。

座標移動も同様。例えば以下のお客様の例では、タロットカードのパーツをパラメータで飛翔させています。

* * *

どのような仕様やワークフローで書き出しデータを利用されるかは文面だけでわかりかねますが、Unity で開発中とお見受けしますので、Editor の Animator や C# で直接 moc3 単体のジオメトリを制御しても良い案件かと思いました。

ただ、演出用途でモーションデザイナー側がモデルデータ全体のジオメトリ制御を Cubism Animator から制御したい場合は、デザイナーが工夫して Live2D パラメータ化すると良いかと思います。

* * *

@運営の方

ごめんなさい。「配置&不透明度」プロパティは Live2D パラメータではないので書き出しデータに含まれないと明示されている箇所を見つけられませんでした:sweat_smile:

マニュアルのどこかに「配置情報は Live2D パラメータではない」と明記されれば、わかりやすいかな~と思います。どこかにあったらすみません:sweat_smile:

※一個所、不適切な表記を修正しました。

「いいね!」 2

いつも弊社製品をご愛顧くださり誠にありがとうございます。
Live2Dスタッフでございます。

ご不便をおかけしており、申し訳ございません…
配置&不透明度は、ユーザのみなさまが仰るように
モーション書き出しの対象外となっております。
(みなさま、親切なアドバイスを誠にありがとうございます…!)

マニュアルの説明が不足しており申し訳ございません。
今後わかりやすいように改善を予定しております。

また、SDK側で対応できる部分もございます。
配置については、モーションの値をGameObjectのTransformに適用するようユーザ側でカスタマイズすることで対応できる可能性があります。
ただし、GameObjectやCamera等の状態によっては、設定する配置の値を調整する必要がある可能性がありますのでご注意ください。

不透明度は、同様にモーションから値をCubismRenderController.Opacityに適用するようユーザ側でカスタマイズすることで対応できる可能性があります。
しかし、この値での不透明度操作は、各アートメッシュの重なりが表示されてしまいます。
表示しているモデルの不透明度操作は、オフスクリーンレンダリングで行うことを推奨します。

お手数をおかけしますが、宜しくお願いいたします。

「いいね!」 2

ご回答ありがとうございます!
やはり無理とのことでしたので、別方法にて対応することにしました! :bowing_woman:

大変ご丁寧なご回答ありがとうございました!
パラメータ扱いでないとのことで、別方法にて対応しようと思います!
多くのリファレンス大変参考になりました、ありがとうございます!

「いいね!」 2