★お知らせ(2023/12/27)
いつもLive2D公式コミュニティをご利用いただき誠にありがとうございます。
本コミュニティは2023年12月27日 11:00をもって閉鎖いたしました。
今後の運営はすべて新Live2D公式クリエイターズフォーラムに移行します。
閉鎖に伴い、以下機能は利用不可となります。
・アカウントの新規作成
・トピック投稿、返信
たくさんのご利用誠にありがとうございました。
新Live2D公式クリエイターズフォーラムは以下バナーよりご利用いただけます。
なお、本コミュニティに投稿されたトピックはすべて残りますが、今後削除する可能性がございますので予めご了承ください。
閉鎖に関するお問い合わせにつきましてはLive2D公式クリエイターズフォーラムへご連絡ください。
いつもLive2D公式コミュニティをご利用いただき誠にありがとうございます。
本コミュニティは2023年12月27日 11:00をもって閉鎖いたしました。
今後の運営はすべて新Live2D公式クリエイターズフォーラムに移行します。
閉鎖に伴い、以下機能は利用不可となります。
・アカウントの新規作成
・トピック投稿、返信
たくさんのご利用誠にありがとうございました。
新Live2D公式クリエイターズフォーラムは以下バナーよりご利用いただけます。
なお、本コミュニティに投稿されたトピックはすべて残りますが、今後削除する可能性がございますので予めご了承ください。
閉鎖に関するお問い合わせにつきましてはLive2D公式クリエイターズフォーラムへご連絡ください。
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ファイルが変更されます。
担当中の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ファイルが変更されます。
0
コメント
こちらの変更差分が生じる件なのですが、.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
こちらはUnityの仕様によって発生している現象です。
Unity終了時にAnimationClip.nameが設定されていない場合、UnityはnameにそのAnimationClipのファイル名を設定します。
Cubism SDK for Unityのインポート処理によって生成するAnimationClipは、AnimationClip.nameを設定していないため、生成直後とUnityを終了した後のAnimationClipに差分が発生します。
この差分の発生は、AnimationClip生成時にAnimationclip.nameを設定することで回避できます。
こちらは今後のCubism SDKの修正で対応を検討しております。
AnimationClipのInstanceIdが前回と変わっていることで、発生するようでした。
こちらで確認した限り、Unityを開き直した際のInstanceIdの変化は再現しませんでした。
他に現象が再現する条件などはございますでしょうか?
「※ 実行する環境によって AnimationClip.GetInstanceID() で取得したインスタンスIDがUnity上とランタイムとで異なる場合があるため、AnimationClipの判別ができなくなることがあります。」とあり、InstanceIdによるクリップの判別が正しいのか、気になっています。
https://docs.live2d.com/cubism-sdk-manual/motionfade/?locale=ja
こちらはSDK内でのAnimationClipの判別にGetInstanceId()を利用していない理由の記述で、判定する一意のIDはAnimationEventとしてAnimationClipに記録されたものと、.fadeMotionListに記載されたものを比較します。
こちらのドキュメントは説明が不明瞭なため、近日中に修正させていただきます。
ご指摘ありがとうございます。
細かく教えてくださりありがとうございます。
(返信が遅れてしまい、申し訳ありません。)
Unity終了時にAnimationClip.nameが設定されていない場合、UnityはnameにそのAnimationClipのファイル名を設定します。
Cubism SDK for Unityのインポート処理によって生成するAnimationClipは、AnimationClip.nameを設定していないため、生成直後とUnityを終了した後のAnimationClipに差分が発生します。
こちら、現象とご対応方法、教えてくださりありがとうございます。
教えて頂いた方法を元に、差分の発生を無くせるか検討してみます。
他に現象が再現する条件などはございますでしょうか?
こちら、ご確認頂きありがとうございます。
手元の環境ですと、AnimationClipの内容を変更した際に、InstanceIdが変わることがありました。
(※Unityを閉じた際にInstanceIdが変わったのは、Unityを閉じた際にAnimationClipに変更が入ったからかもしれません...。)
また、この件について調べていた所、「実行時にInsanceIdの値が変わった」という記載を幾つか見かけたことがあったのですが、
手元の環境では、実行時にInstanceIdが変わることはありませんでした。
こちらはSDK内でのAnimationClipの判別にGetInstanceId()を利用していない理由の記述で、判定する一意のIDはAnimationEventとしてAnimationClipに記録されたものと、.fadeMotionListに記載されたものを比較します。
こちらのドキュメントは説明が不明瞭なため、近日中に修正させていただきます。
こちらの件も、ご確認くださりありがとうございます。
「判定する一意のIDはAnimationEventとしてAnimationClipに記録されたものと、.fadeMotionListに記載されたものを比較します。」
とのことでしたら、問題ないはずです。失礼しました...。