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

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

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

Unity2020+SDK-R2環境下、LateUpdate()でのパラメーター制御が反映されません

Unityバージョン:2020.2.4f1/ 2020.3.2f1/ 2021.1.0f1
SDKバージョン4-r.2

scriptはこのようになっています
public CubismModel koharu;
private void LateUpdate()
{
koharu.Parameters[0].Value = -30;
}

結果:
ご覧の通り、inspector上のparameter[0]の値はLateUpdate()の「-30」(顔が左に向く)になっていますが、実際のレンダー結果はanimatorの値「0」(顔が正面)のままです。
いろいろ試した結果、live2Dのprefabにアタッチされている「Cubism Update Controller」をruntimeで一度無効にし、再度有効にすれば、LateUpdate()での制御が正常に戻ることが分かりました。


なので、とりあえず
void Start()
{
Cubism Update Controller.enabled = false;
Cubism Update Controller.enabled = true;
}
を入れて、Unity2020で作業を続行するつもりですが、
もし他に解決方法があれば、お知らせていただければ助かります。

コメント

  • 編集済: 4月 2021
    Unityバージョン:2020.3.0f1
    SDKバージョン4-r.2

    Syuさんと同じ現象にあっていたので、見させてもらってます。

    一応役に立つかわかりませんが、
    プロジェクトをビルドしたときは、CubismUpdateControllerの有効化切り替えをしなくても動作しているようなので、Unity Editor限定での現象ではないかと推測できます。
  • Yuzukaさん

    ご返信ありがとうございます。
    Editor限定かどうか確認していませんが、挙動からしてその可能性は高いと思います。
    しかしそれでも十分作業の支障になりますね…

    あと、この現象は多分稀ではないかと思います。
    一ヶ月前にunity2020で作成したLive2D制御の練習プロジェクトも、当時はしっかり制御できていたのに、今は動かなくなっています。
    一体何がどうなっているのやら…
  • 編集済: 4月 2021

    Syuさん


    この現象、Editorではほぼ100%発生するのですが、CubismUpdateControllerの有効無効化で100%解決しないこと、Buildしても実は動作しない時があるってのがわかりました

    もしかしてExecuteScriptOrderの関係もあるのかな?と思い、デフォルトの前、後にCubismUpdateControllerを指定して、動かしましたが、変化がありませんでした

    あとはあんまり期待はしてませんが、Editorのバージョンで2020がダメとかあるのかな…と

    (2019使ってた時にはなかった現象だった気がしたので、確認予定)

  • Yuzukaさん

    2019は多分大丈夫だと思いますよ。この間使っていた時はしっかり制御できていました、。

    それにしても、buildしたら実はダメだったとかはひどいですね…
    他にも変な挙動がないかも心配です…

    やはり安全第一ということで、2019に戻します。貴重な情報、ありがとうございました。

  • @Yuzuka4573
    @Syu

    弊社製品をご利用いただき誠にありがとうございます。
    Live2D スタッフのTakと申します。

    LateUpdate()でのパラメーター制御が反映されない現象につきまして、ご不便をおかけしており大変申し訳ありません。
    現象を調査したところ、Cubism SDK for Unity で使用しているPlayerLoopの仕様がUnity2020で変更されたことにより、LateUpdateによるパラメータ値操作が行われないことが判明しました。
    つきましては大変お手数ではございますが、これを修正したコードファイルを添付いたしますので、同名のファイルに適用し動作のご確認をお願いいたします。

    この修正内容は次回のCubism SDK for Unity バージョンアップで適用される予定です。

    上記ご確認の程、よろしくお願いいたします。
  • @Tak (staff) さん

    先程頂いたスクリプトを適用してみたところ、Unity2020での動作をEditor、Build済みexeで確認しました。
    迅速なご対応本当にありがとうございました!
  • Takさん

    ご対応ありがとうございます!
    これで安心して作業を続けられます。 
コメントするにはサインインまたは登録して下さい。