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

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

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

Cubism Render ControllerのModeを変更するとエラーが出る

Unity 2020.3.26f1でCubism 4 SDK for Unity R4_2をインポートし、
Live2Dのモデルをインポートし、
Cubism Render ControllerのMODEを変更すると以下のエラーが出ます。
---
NullReferenceException: Object reference not set to an instance of an object
Live2D.Cubism.Rendering.CubismRenderer.ApplySorting () (at Assets/Live2D/Cubism/Rendering/CubismRenderer.cs:585)
Live2D.Cubism.Rendering.CubismRenderer.OnControllerSortingModeDidChange (Live2D.Cubism.Rendering.CubismSortingMode newSortingMode) (at Assets/Live2D/Cubism/Rendering/CubismRenderer.cs:414)
Live2D.Cubism.Rendering.CubismRenderController.set_SortingMode (Live2D.Cubism.Rendering.CubismSortingMode value) (at Assets/Live2D/Cubism/Rendering/CubismRenderController.cs:136)
Live2D.Cubism.Editor.Inspectors.CubismRenderControllerInspector.OnInspectorGUI () (at Assets/Live2D/Cubism/Editor/Inspectors/CubismRenderControllerInspector.cs:57)
UnityEditor.UIElements.InspectorElement+<>c__DisplayClass59_0.b__0 () (at <52994e3c8ab849239eb659a65ee32d99>:0)
UnityEditor.PopupCallbackInfo:SetEnumValueDelegate(Object, String[], Int32)
---
レイヤーの順番も乱れてしまうので解決したいです。

コメント

  • @knhkmiura

    いつも弊社製品をご愛顧くださり誠にありがとうございます。
    Live2Dスタッフでございます。

    検証のため、こちらの現象が再現する最小のプロジェクトを提供していただけませんでしょうか?

    よろしくお願いいたします。
  • コメントありがとうございます。
    DMにてプロジェクトの方、送らせていただきました。
    ご確認よろしくお願いいたします。
  • 編集済: 5月 2022
    @knhkmiura

    回答が遅れてしまい誠に申し訳ありません。

    検証用プロジェクトの提供ありがとうございました。
    こちらで確認したところ、現象を再現できませんでした。

    こちらの現象はサンプルモデルでも発生するか確認していただけますでしょうか?
    また、SDKを最新に更新しても現象は発生しますでしょうか?

    お手数をおかけいたしますが、確認よろしくお願いいたします。
  • ご確認ありがとうございます。
    最新のSDK(Cubism 4 SDK for Unity R5 beta1)を導入し、
    sampleに含まれていた「Koharu」というオブジェクトの
    Cubism Render Controllerで
    SortingのModeを変更しようとしたところ、やはり同様のエラーが出ました。


    エラー内容は以下です。
    ---
    NullReferenceException: Object reference not set to an instance of an object
    Live2D.Cubism.Rendering.CubismRenderer.ApplySorting () (at Assets/Live2D/Cubism/Rendering/CubismRenderer.cs:716)
    Live2D.Cubism.Rendering.CubismRenderer.OnControllerSortingModeDidChange (Live2D.Cubism.Rendering.CubismSortingMode newSortingMode) (at Assets/Live2D/Cubism/Rendering/CubismRenderer.cs:545)
    Live2D.Cubism.Rendering.CubismRenderController.set_SortingMode (Live2D.Cubism.Rendering.CubismSortingMode value) (at Assets/Live2D/Cubism/Rendering/CubismRenderController.cs:195)
    Live2D.Cubism.Editor.Inspectors.CubismRenderControllerInspector.OnInspectorGUI () (at Assets/Live2D/Cubism/Editor/Inspectors/CubismRenderControllerInspector.cs:59)
    UnityEditor.UIElements.InspectorElement+<>c__DisplayClass59_0.b__0 () (at <78eb217972d24c1381fc135c94c21a2c>:0)
    UnityEditor.PopupCallbackInfo:SetEnumValueDelegate(Object, String[], Int32)
    ---
  • @knhkmiura

    回答ありがとうございました。

    こちらは、Orderの設定先である CubismRenderer._meshRenderer が初期化されていないことが原因です。

    CubismRenderer内のMeshRendererに以下の処理を追加して現象が再現するかご確認頂けますでしょうか?
            /// <summary>
            /// <see cref="UnityEngine.MeshRenderer"/>.
            /// </summary>
            public MeshRenderer MeshRenderer
            {
                get
                {
                    // 追加
                    TryInitializeMeshRenderer();
    
                    return _meshRenderer;
                }
            }
    よろしくお願いいたします。
  • ご連絡ありがとうございます。
    いただいた内容で無事問題が解決いたしました!
    ありがとうございました!
コメントするにはサインインまたは登録して下さい。