ガレージ暮らしのトライタム

プログラムやツールの解説や技術を公開する場所

UnityのLive2DCubism3SDKでUserEvnetをインポートする時の注意点

motion3.jsonに設定されたユーザデータを取得 | Live2D Manuals & Tutorials

上記リンクのある通り、公式のSDKチュートリアルの通り行えば基本的には問題ありません。
ただ、「厳密に」上記の順番で行わないと問題が起きます。
今回はモーションにユーザーイベントを登録して検証をしています。

目次

どのような問題が起きるのか

f:id:traitam:20180725223051p:plain

順番を間違えると画像のようにイベントが登録されていないとエラーを吐かれます。

なぜこのような問題が起きるのか

Eventのハンドルもモデルをインポートした段階で登録されます。
そのため「Live2Dモデルのインポート」→「スクリプトにイベント登録処理を追加する」順番で行うとインポーターがイベントを拾えるが上手く追加できないという事態になります。

解決策

解決策としては「スクリプトにイベント登録処理を追加」→「Live2Dモデルをインポート」という順番を守ればOKです。
また先にモデルをインポートしても「モデルフォルダクリック」→「Reimport」で再度インポート処理を走らせれば対策できます。
モデルを再インポートした場合はアタッチが外れているので再度付け直しましょう。
解決されれば無事にDebug.Logが走ります。(例ではモーションの2か所にUserEventを登録しているため2つ出ています)
f:id:traitam:20180725224243p:plain


解決策が分かれば難しい問題ありませんが、分からないと何が原因か分からず最悪詰まる可能性があるかもしれません。
UserEventをUniyで扱う時は少し意識しておきたいですね。

それではみなさん、楽しい創作ライフを!