1. Home
  2. /
  3. Unity
  4. /
  5. UniVRMのAssembly Definition設定方法

UniVRMのAssembly Definition設定方法

UniVRMのAssembly Definition設定方法

はじめに

もう遅いですが明けましておめでとうございます。今年もよろしくお願いいたします。

表題の通り、Assembly Definitionで細かくアセンブリを分割したいときにUniVRMの中身はどう設定すればいいかという記事です。

今回はUniVRMですが、サードパーティー製のAssetを追加するときに概ね同じ方法でいけると思います。

ソフトウェア バージョン
Unity 2018.3.0f2
UniVRM 0.48

そもそもAssembly Definitionって何?と言う方はテラシュールブログさんのコチラの記事が参考になると思います。めっちゃ便利な機能なので使った方がいいです。

【Unity】Assembly Definition Filesという神機能

VRM全体のAssembly Definition設定

UniVRMをインポートすると0.48では画像のようなフォルダ構成になっていると思います。

-w220

まずVRM全体のAssembly Definitionを作ります。

-w352

これでUnity Editor上ではエラーなく使えるのですが、このままビルドすると一つのアセンブリにEditorScriptが入ってしまい、ビルドエラーが起きてしまいます。

Assembly Definitionを使う上での最大の注意点として、Unity Editor上では問題無く動いているが、ビルドをするとエラーが顕在化かします。なのでAssembly Definitionを設定するときはこまめにビルドを行い問題が無いか確認するのがお勧めです。

EditorスクリプトのAssembly Definition設定

続いてEditorScript用のAssembly Definitionを作ります。

VRMフォルダの配下群には多数のEditorフォルダがあるので一つずつAssembly Definitionを作っていきます。

-w242

このAssembly DefinitionはEditorScriptしか含んでいないのでPlatformsはEditorのみ有効にします。

また、VRMのコードを参照しているのでAssembly Definition ReferencesにVRMのAssemblyを登録します。

-w346

UniVRMは深い階層にもEditorフォルダがあったりするので、Buildをしてエラーが出たらそのフォルダに行ってAssembly Definition作りに行くという作業方法でも良いと思います。てか私がそうしてます。

画像ではUniVRM>Script>BlendShape>EditorにAssembly Definitionを忘れててエラーが出ています。

-w333

Test系のAssembly Definition設定

全てのEditorフォルダにAssembly Definitionを作り終わると、Console上にTest系のエラーのみが残ります。

-w458

Testが含まれてるものはAssembly DefinitionのTest Assemblliesを有効にすることで参照できるようになります。

ここまで設定すると、Console上からエラーが消えますのでビルドを行います。

参照系のAssembly Definition設定

するとまたエラーがでてきますのでコレを解決していきます。 今回のエラーはUniGLTFを参照できねぇよっていうエラーなのでAssembly DefinitionのReferenceに該当のAssemblyを追加して参照できるようにしてあげます。

-w382

参照を追加するとこんな感じです。

-w329

あとはこの作業をループで続けていきます。

  • ビルドする
  • エラーがでる
  • エラーを解決する
  • 最初に戻る

これをビルドが成功するまで続けます。

まとめ

以上でUniVRMのAssembly Definition設定は終了です。泥臭い方法ですが、ひたすらBuild&ErrorDestroyが一番確実に早く設定できる方法だと思います。

UniVRMに限らずサードパーティー系のAssetは大体この方法で攻略できると思うので頑張ってAssembly Definitionを使っていきましょう!