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

Unityでreimportが実行されると.prefabの内容が変更されてしまいます

編集済: 5月 2018 Cubism 3 SDK
----------------------------------------
動作環境
Cubism Editor 3.2.00
Unity2017.4.1f1
Windows7
NVIDIA Quadro K2200
メモリ32GB
Cubism31SdkUnity-7.unitypackage
----------------------------------------

モデル.moc3ファイルやモデル.model3.jsonファイルに対してUnity上でアセットのreimportが実行されると、
その度に モデル.prefabが更新(変更)されてしまいます。

公式の hiyori_free_t05.cmo3 を用いて再現しました。

再現したUnityプロジェクト(gitリポジトリ)を添付しました。
hiyori_free.moc3、hiyori_free.model3.json、hiyori_free.asset、などのファイル内容に変更がなくても、
reimportが実行される度に hiyori_free.prefab の内容が変更されています。

あと同様な現象として .motion3.json に変更が無くてもreimportが実行されると、
.anim が更新されてループ無しの設定が破棄されてしまいます。

個人の環境で閉じている分には問題は軽微ですが、複数人で開発する場合はとても都合が悪いです。

なにか解決方法あれば、よろしくお願いいたします。

タグ付けされた:

コメント

  • 編集済: 5月 2018
    @nishi さん

    Live2D Cubism3 SDK for Unityのすべてのインポート処理はCubismAssetProcessor.OnPostprocessAllAssets() から行っております。
    この関数の先頭に、フラグでその後の処理を行うかどうかの分岐を追加するのはいかがでしょうか?


    1.インポート処理開始用のフラグを持つScriptableObjectを用意する。
    using UnityEngine;
    using UnityEditor;
    
    public class CubismImportPermission : ScriptableObject
    {
        public bool IsAllowInport = true;
    
    
        [MenuItem("Live2D/Create Asset Instance")]
        static void CreateAssetInstance()
        {
            var asset = CreateInstance<CubismImportPermission>();
    
            AssetDatabase.CreateAsset(asset, "Assets/Editor/CubismImportPermission.asset");
            AssetDatabase.Refresh();
        }
    }

    2.メニューバーの[Live2D] → [Create Asset Instance]をクリックして、CubismImportPermissionをアセット化する。
    アセット化についてはこちらをご覧ください。
    https://anchan828.github.io/editor-manual/web/scriptableobject.html


    3.CubismAssetProcessor.OnPostprocessAllAssets()の先頭で、フラグが立っていなければリターンする。
            private static CubismImportPermission _importPermission;
            public static CubismImportPermission IsImport
            {
                get
                {
                    if (_importPermission == null)
                    {
                        _importPermission = AssetDatabase.LoadAssetAtPath<CubismImportPermission>
                            ("Assets/Live2D/Cubism/Editor/CubismImportPermission.asset");
                    }
                    return _importPermission;
                }
            }
            
            private static void OnPostprocessAllAssets(
                string[] importedAssetPaths,
                string[] deletedAssetPaths,
                string[] movedAssetPaths,
                string[] movedFromAssetPaths)
            {
                // フラグが立っていなければインポート処理を行わない
                if (!IsImport.IsPermitInport)
                {
                    return;
                }
                
                
                // Make sure builtin resources are available.
                GenerateBuiltinResources();
                
                …
                …

    手順は以上となります。
    2で作成したアセットの「Is Permit Inport」のチェックを外すと、インポート処理が行われません。

  • 詳しい解決方法ありがとうございます、試してみます。
    今後ともよろしくお願いします。
コメントするにはサインインまたは登録して下さい。