新しいLive2D公式コミュニティ(日本向け)が公開されました!
ぜひご利用ください!
Live2D公式コミュニティ

■このコミュニティの今後について
このコミュニティ(forum.live2d.com)につきましては、しばらくの間新コミュニティと並行して運営しますが、2022年内を目処に閉鎖する予定です。
閉鎖時期や内容については決定次第お知らせいたします。
海外向けコミュニティについては変更ございません。
Live2Dに関するユーザーのみなさま同士の交流・ご質問・不具合の報告・提案・要望などについて是非お寄せください。
※Live2D公式スタッフからの発言や回答については確約できないことを予めご了承ください。

Live2D ヘルプ

Cubism Editorダウンロード / 動作環境
Cubism SDKダウンロード / 対応表
Cubism 製品利用ライセンス(SDK含)

Cubism 製品のライセンスについてのお問い合わせはこちら
nizima 及び nizima 製品についてのお問い合わせはこちら
【各最新OSの対応状況について】
Cubism Editorは 4.1.02 正式版以降でWindows 11 及び macOS Monterey に対応しております。ぜひ最新版をご利用ください。
※macOSをお使いの方でOSアップデートする際は必ずCubism Editorのライセンスを解除してください。
Cubism EditorをインストールしているmacOSをアップグレードしたい
Cubism SDKについては各SDKのREADMEまたはNOTICEをご確認ください。

【Mac各機種への対応状況について】
現在、Cubism EditorはApple M1チップ搭載機種には対応しておりません。
詳細は 動作環境 をご参照ください。
関連するお問い合わせへの対応はこの文章をもって代えさせていただきます。
Cubism 製品のマニュアル・チュートリアルはこちら
 
Cubism Editorマニュアル    Cubism Editorチュートリアル    Cubism SDKマニュアル    Cubism SDKチュートリアル

スキニングの挙動がEditor上とUnity上で違う

お世話になります。

現在スキニングで髪の揺れを制作し、それをUnity上で動かしています。
Editor上では綺麗に動作するのですが、Unity上ではまったく違う挙動になります。



この現象はSDK側の不具合でしょうか。
それともEditor上での設定にミスがあるのでしょうか。

なにか情報があればご教授いただけると助かります。
よろしくお願いします。

コメント

  • @hatyati様

    ご連絡ありがとうございます。
    Live2Dスタッフの小嶺と申します。よろしくお願い致します。

    まずはご使用になられているCubism EditorとUnitySDKのバージョンをご確認して頂けますでしょうか?
    UnitySDKの物理演算部分は修正した経歴があり、使用しているCubism EditorとUnitySDKの組み合わせで不具合を起こす可能性があります。

    もしCubism Editor3.1.03、Cubism 3.1 SDK for Unity R7の組み合わせでも問題が発生している場合は、
    原因特定のためDMにてファイルをご送付いただければ幸いです。

    よろしくお願いいたします。
  • 小嶺様
    返信ありがとうございます。

    使用しているバージョンは以下の通りです。
    Cubism Editor3.1.03
    Cubism 3.1 SDK for Unity R7
    Unity 2017.3.1f1 (64-bit)

    後ほどDMにてファイルを送りますので、
    お手数おかけしますがよろしくお願いします。
  • @hatyati様

    ファイルのご送付、ありがとうございました。
    こちらで試したところ、物理演算、モデル、ファイルなどには問題がなかったものの
    Unity上のComponentの処理の順番に問題があるかもしれません。

    暫定的な対応ではありますが以下の操作をお試しください。
    Unityメニューから
    Edit>ProjectSettings>Script Execution Orderを選択


    Live2D.Cubism.Fromework.Physics.CubismPhysicsControllerを追加し


    順序をマイナスの値にしてください。
    DefaultTimeよりCubismPhysicsControllerが上にあれば大丈夫です。


    内容としては物理演算の計算を他の操作より先んじて行うことにより
    前フレームの値で物理演算を行う形にすることにより物理演算の安定化を図るものです。

    この操作でも問題が出る場合は、
    他の併用されているComponentについてご回答いただければ引き続き調査する予定です。

    よろしくお願いいたします。
  • 小嶺様
    返信ありがとうございます。

    さっそく試してみたのですが、Editor上の挙動とは未だ違うようです。
    ただ、カクつく?ことがなくなりましたので、多少なりとも改善したように思えます。



    現在、前髪は概ねふんわりとした動きですが、横髪と後ろ髪、アホ毛の挙動が違うようです。
    前髪とそれ以外の違いは、スキニング設定時に回転デフォーマを用いているかワープデフォーマを用いているかの違いがあります。
    • 前髪:回転デフォーマとアートメッシュの間にワープデフォーマを作り、回転を削除し動きを子ワープに反映させた状態。
    • その他の髪:回転デフォーマを用いた標準的なスキニングの状態。
    前髪の挙動のみがおかしいのであればこれが原因なのでしょうが、
    標準的なスキニングを用いている方がおかしな挙動のため、他に心当たりはありません。

    横髪やアホ毛は全体が動いていますが、後ろ髪に関しては途中の動きがほとんど見られません。
    根本と毛先が少し動いている程度でしょうか。


    他に考えつく可能性としては、
    • 製作中にCubismのバージョンが3.0→3.1になる。
    • 3.1でスキニングを設定したが3.1.02のバグ回避のために、その後は3.0でモデルを制作した。
    • 最終的には3.1に戻り、物理演算を設定した。
    このように製作中に下位バージョンと行き来した点が原因かもしれません。
    (ただ、「物理演算、モデル、ファイルなどには問題がなかった」とのことなので関係ないかもしれません)


    お手数おかけしますが、よろしくお願いします。
  • @hatyati様

    ご確認ありがとうございます。
    追加の調査しましたところ、原因としては
    「モデルが重いため更新時間を超過してしまい、物理演算に対して正しい更新時間を伝えられていない」
    と思われます。

    重さが原因と判断した理由は、物理演算内部の振り子データの比較で@hatyati様のモデルのみ振り子データにまで影響があったためです。
    比較用に用意した、簡易的に生産した振り子の多いモデルでは、本現象の再現は確認できませんでした。

    利用方法によって異なりますが、以下は、用途ごとにこの現象を回避する対策案になります。

    ・モーションに物理演算の結果をベイクする
    特定のモーションの切り替えが予想できる場合に有効です。
    また、最終成果物が動画である場合も有効です。
    Editor側で綺麗に時間を区切って計算するのでEditor側と物理演算を利用できます。

    ・UnityのFPSを落とす
    Unityのフレームレートを落とすことによって、物理演算に正しい更新時間を伝えられます。
    FPSを落とすには設定から行う方法スクリプトで指定する方法があります。

    ・Physicsの設定を変更する
    物理演算に渡す時間をUnityの現在時間ではなく、補正された時間を渡す方法もあります。
    こちらはAssets/Live2D/Cubism/Framework/Physics/CubismPhysics.csの
    public static bool UseFixedDeltaTime = false;
    の項目をtrueに変更してください。
    渡される時間は補正されたものになりますが、Editorと同じ動作を保証するものではありません。

    ・モデルを軽量化する
    モデルを軽量化することで更新時間の遅延を防ぎます。

    最後にUnityのProfilerのDeep Profileを使用していると動作が重くなるので
    もし使っている場合は解除して見てください。

    よろしくお願いいたします。
コメントするにはサインインまたは登録して下さい。