★お知らせ(2023/12/27)
いつもLive2D公式コミュニティをご利用いただき誠にありがとうございます。
本コミュニティは2023年12月27日 11:00をもって閉鎖いたしました。
今後の運営はすべて新Live2D公式クリエイターズフォーラムに移行します。
閉鎖に伴い、以下機能は利用不可となります。
・アカウントの新規作成
・トピック投稿、返信
たくさんのご利用誠にありがとうございました。

新Live2D公式クリエイターズフォーラムは以下バナーよりご利用いただけます。
Live2D公式クリエイターズフォーラム

なお、本コミュニティに投稿されたトピックはすべて残りますが、今後削除する可能性がございますので予めご了承ください。
閉鎖に関するお問い合わせにつきましてはLive2D公式クリエイターズフォーラムへご連絡ください。

表情の変更について

編集済: 8月 2016 Cubism SDK 2.1
Unityで、表情変更のプログラムをサンプルにあるように
ExpressionManager.startMotion(expression);
としているのですが、

表情A→表情Bに変えた場合に、
表情A→デフォルトの表情にリセット→表情B のようになってしまいます。

目が開いているのがデフォルトの表情で、
両目を閉じる表情→片目だけ閉じる表情→両目を閉じる表情→片目だけ閉じる表情 …と繰り返すと、
表情切り替えのタイミングで、デフォルト表情に引きずられて閉じている目が中途半端に開いてしまいます。


こちらを読む限り、表情の変化しくみは現在の表情と、デフォルトの表情との差分ということですので
http://sites.cybernoids.jp/cubism2/sdk_tutorial/live2d_library/load_to_play_motion/expression

ExpressionManager.startMotionをした場合には

パラメータの値 = 通常モーション値 + ( 表情パラメータ値 *startMotionからの時間変化係数 - 表情デフォルト値 )
となっているのでしょうか?

前の表情のパラメーターを引き継ぐために

パラメータの値 = 通常モーション値 + ( 前の表情のパラメーター値×(1-startMotionからの時間変化係数)+ 今の表情パラメータ値 *startMotionからの時間変化係数 - 表情デフォルト値 )

・・・というように、クロスフェード的なことはできないでしょうか。

コメント

  • SDK側にフェードを操作する機能は実装しておりません。
    一応、ユーザ側でフェードの計算を行い、その計算結果をモデルのパラメータに設定することでは対応できます。

    また、Cubism3.0以降では従来のものよりもモーションの切り替わりが綺麗に行くよう対応する予定です。
  • 返信ありがとうございます。
    了解しました。
    基本的にはできないということで、どうしてもやる必要がでてきましたら、パラメーターを直接操作する方法を検討してみます。
コメントするにはサインインまたは登録して下さい。