Live2DとUnityの連携でつまづいた
初投稿してみます。
Live2DSDKをUnityで使用したプログラムをgitで共有したら、おかしなことになりました。
Prefabの参照が外れて動かない。。。
自分の環境では大丈夫。なんでじゃ。。
とりあえず回避したので、自分用のメモとして。
もし他に同じような現象の方がいたらその助けになればと思います。
また、突貫工事なので、正しいやり方知っている人いたら、教えてください。。
使用バージョン
Live2D CubismSDK3 R10 ダウンロードページ
Unity2018.3.3f1
何が起きたか
Live2Dで作ったモデルを、Unityにインポートして、タップすると、タップするところをみるだとか、よくあるようなプログラムを作りました。
で、共有のためにgitにあげたんですが、なんと、Prefabの参照が外れている。。。
PrefabもApplyしたし、Sceneも保存した。。metaファイルもちゃんとあげてる。
どないなっとんねん。
Unity2018.3のPrefabの仕様更新で、動きが変わった。。??とか、いろいろ調査してみましたが、どうもワークフローは変わらないっぽい。。
回避策
CubismAssetProcessorのOnPostprocessAllAssets内の処理をコメントアウトする
ということで、いろいろ調べた結果、
Live2DのCubismAssetProcessorが原因でした。
このクラスで、UnityのAssetインポートが行われるときに、Live2Dのインポートも行われるのですが、ここでPrefabを作り直すらしく、GUIDが変わってしまうようです。
そのため、gitで共有したとしても、プロジェクトの初回起動のアセットインポート時に、Live2Dの処理が走って、
PrefabのIDが更新される -> シーンから参照が外れる
といったことになってしまうようです。
CuvismAssetProcessorのOnPostprocessAllAssetsというメソッドで、インポート処理を行なっているので、そこをコメントアウトして、回避しました。
ただ、Live2Dのインポート処理自体行われないので、Live2D側で更新が入った場合は、一旦コメントアウトを外して、インポートして、もう一度コメントアウト。。。
という面倒なことに。。。。
確実にいい回避策ではない。。。。
でも、回避はできる。。。
そして記事を書くってむずかしいな。。
もっとうまく書きたい。