Live2DモデルをUnityのStreamingAssetsフォルダに置くとインポートが失敗する件

Unityは2019.2.1f1を使っています。

Live2Dのモデルを動的に読み込みたい

次のココのコイン落としのバージョンではLive2Dモデルの差し替えを考えており、スクリプトからLive2Dモデルの読み込む方法をこちらのドキュメントを参考にしていたところ・・・StreamingAssetsという見慣れないフォルダ以下を参照する形になっていました。

StreamingAssets

これまでStreamingAssetsというものの存在を知らなかったのですが、これはプラットフォームによって配置場所などが弄られる事なくファイルをそのままプロジェクト内に配置したい時に使うフォルダなのだそうです。
そして、先程ドキュメントではStreamingAssetsにモデルファイルを置いているものとして実装されていました。絶対パスを指定してjsonファイルを動的に読み込む形になるようなので、なるほどこのフォルダを使うのが当然かと思われます。

エラー発生


しかし、いざモデルをStreamingAssetsに放り込んだ所、なぜか真っ白なモデルがシーンに生成され「NullReferenceException: Object reference not set to an instance of an object Live2D.Cubism.Editor.Importers.CubismImporter」みたいなエラーが出てしまいました。
なにかおかしいと思いStreamingAssets内を見てみると、インスペクタが空っぽの破損したprefabと、なぜかエクスプローラでのアイコンのままで表示されているテクスチャファイルを見つけました。
エラーが起きてるのでプレハブはともかく、テクスチャの方は明らかにおかしいです。
ちょっと調べてみると、どうやらStreamingAssetsにファイル(画像など)を直接インポートさせると問題が起こるらしいです(何じゃそりゃ)。
なのでStreamingAssetsに何かを置きたい時は、まず他のフォルダでインポートしてからこっちに移すという手順が必要だそうです。
そんなのわかるか!
ちなみに、StreamingAssets内にあるファイルに何か操作を加えるのもNGらしいです。
操作したい時はStreamingAssetsの外に移動して変更を加えてから戻しましょう
本来、用事があるのはプレハブではないのでこのエラー(インポート失敗)は問題ないのかもしれませんが、何か気持ち悪いし何が起こるかわからないので大人しく外のフォルダから持ってくる事にしました。

1 Star2 Stars3 Stars4 Stars5 Stars (まだ投票されていません)
読み込み中...

    コメント