新しい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チュートリアル

Live2Dモデルのインポート時に、毎回AnimationClipの差分が発生します

お世話になっております。
担当中のPJで、Live2Dの導入を進めています。
以下のような手順で、Unity上にモデルのImportを行うと、AnimationClipに関する差分が毎回発生してしまいます。

再現手順:
・モデルを初回Import or Reimportする
・Unityを閉じる -> AnimationClipなどに差分が発生する
・再度Unityを開き、モデルをReimport -> AnimationClipなどに差分が発生する

開発環境:
Cubism 4 SDK for Native R1
Unityバージョン: 2019.3.10f1
OriginalWorkflow使用の有無: 使用なし
macOS Mojave 10.14.5

スクリーンショット:
Unityを閉じた際に生じる差分の例になります。


Unityを再度開き、Reimportした際に生じる差分の例になります。


補足:
・差分を見ると、AnimationClipのnameが都度変更されているようです
・Importerの拡張は、まだ行っておりません。
・Unityを閉じる動作がトリガになっているようで、Unityを開いたまま同じモデルをReimportしても、差分は発生しません
・関連があるかわかりませんが、UnityのAssetDatabaseのVersion2では、Unityを閉じるタイミングで、AnimationClipファイルが変更されます。

コメント

  • お世話になっております。
    こちらの変更差分が生じる件なのですが、.motion3ファイルのReimport時に、
    AnimationClipのInstanceIdが前回と変わっていることで、発生するようでした。

    Unityバージョン: 2019.3.10f1で空のProjectを生成し以下の操作を行った所、AnimaitonClipのInstanceIdが変わることがありました(変わらない場合もありました)。
    1.AnimationClipを編集する
    2.Unityを一度閉じ、開き直す

    1.については、Live2Dの場合、motion3ファイルからAnimationClipを生成すると思いますので、考慮しなくて良いと思います。
    2.のケースについては、どうすればよいでしょうか...?

    また、MotionFadeに関する以下の記事を拝見した所、
    「※ 実行する環境によって AnimationClip.GetInstanceID() で取得したインスタンスIDがUnity上とランタイムとで異なる場合があるため、AnimationClipの判別ができなくなることがあります。」とあり、InstanceIdによるクリップの判別が正しいのか、気になっています。
    https://docs.live2d.com/cubism-sdk-manual/motionfade/?locale=ja
  • 編集済: 7月 2020
    @th1209 さん

    以下のような手順で、Unity上にモデルのImportを行うと、AnimationClipに関する差分が毎回発生してしまいます。

    こちらはUnityの仕様によって発生している現象です。
    Unity終了時にAnimationClip.nameが設定されていない場合、UnityはnameにそのAnimationClipのファイル名を設定します。
    Cubism SDK for Unityのインポート処理によって生成するAnimationClipは、AnimationClip.nameを設定していないため、生成直後とUnityを終了した後のAnimationClipに差分が発生します。
    この差分の発生は、AnimationClip生成時にAnimationclip.nameを設定することで回避できます。
    こちらは今後のCubism SDKの修正で対応を検討しております。


    こちらの変更差分が生じる件なのですが、.motion3ファイルのReimport時に、
    AnimationClipのInstanceIdが前回と変わっていることで、発生するようでした。

    こちらで確認した限り、Unityを開き直した際のInstanceIdの変化は再現しませんでした。
    他に現象が再現する条件などはございますでしょうか?


    また、MotionFadeに関する以下の記事を拝見した所、
    「※ 実行する環境によって AnimationClip.GetInstanceID() で取得したインスタンスIDがUnity上とランタイムとで異なる場合があるため、AnimationClipの判別ができなくなることがあります。」とあり、InstanceIdによるクリップの判別が正しいのか、気になっています。
    https://docs.live2d.com/cubism-sdk-manual/motionfade/?locale=ja

    こちらはSDK内でのAnimationClipの判別にGetInstanceId()を利用していない理由の記述で、判定する一意のIDはAnimationEventとしてAnimationClipに記録されたものと、.fadeMotionListに記載されたものを比較します。
    こちらのドキュメントは説明が不明瞭なため、近日中に修正させていただきます。
    ご指摘ありがとうございます。
  • y_a_s_様

    細かく教えてくださりありがとうございます。
    (返信が遅れてしまい、申し訳ありません。)

    こちらはUnityの仕様によって発生している現象です。
    Unity終了時にAnimationClip.nameが設定されていない場合、UnityはnameにそのAnimationClipのファイル名を設定します。
    Cubism SDK for Unityのインポート処理によって生成するAnimationClipは、AnimationClip.nameを設定していないため、生成直後とUnityを終了した後のAnimationClipに差分が発生します。

    こちら、現象とご対応方法、教えてくださりありがとうございます。
    教えて頂いた方法を元に、差分の発生を無くせるか検討してみます。

    こちらで確認した限り、Unityを開き直した際のInstanceIdの変化は再現しませんでした。
    他に現象が再現する条件などはございますでしょうか?

    こちら、ご確認頂きありがとうございます。
    手元の環境ですと、AnimationClipの内容を変更した際に、InstanceIdが変わることがありました。
    (※Unityを閉じた際にInstanceIdが変わったのは、Unityを閉じた際にAnimationClipに変更が入ったからかもしれません...。)

    また、この件について調べていた所、「実行時にInsanceIdの値が変わった」という記載を幾つか見かけたことがあったのですが、
    手元の環境では、実行時にInstanceIdが変わることはありませんでした。


    こちらはSDK内でのAnimationClipの判別にGetInstanceId()を利用していない理由の記述で、判定する一意のIDはAnimationEventとしてAnimationClipに記録されたものと、.fadeMotionListに記載されたものを比較します。
    こちらのドキュメントは説明が不明瞭なため、近日中に修正させていただきます。

    こちらの件も、ご確認くださりありがとうございます。
    「判定する一意のIDはAnimationEventとしてAnimationClipに記録されたものと、.fadeMotionListに記載されたものを比較します。」
    とのことでしたら、問題ないはずです。失礼しました...。
コメントするにはサインインまたは登録して下さい。