Unity AssetBundle 作成メモ

日本語コミュニティにおいてあまり言及させていないUnity AssetBundleでMODを作るメモです。

Unity AssetBundleでMODを作るとはどういうことか?
通常、MODを作る際はSB3Uを使用するかと思います。しかしながらその方法だとゲームを起動するまで表示結果がわからず、また、マテリアルも既存のものしか使えず制約されてしまいます。なので、Unity側でMODを作ってしまえば表示結果もリアルタイムで確認できて色々Unityの機能が使えて超ハッピー!というわけです。
※UnityでMODを作っても呼び出す為のlistファイルやそれに準ずるものを別途作成する必要があります。
※Asset Store産のモデルをそのまま使うのは問題になる可能性があるのでパブリッシャーウェブサイトのFAQを確認しましょう。

plasticmind氏のチュートリアル(英語)
Tutorial on Building assetbundles in unity editor, alternative modding workflow
ハニーセレクト時代のチュートリアル。アイテムを追加するベーシックな手順です。

RCL_circuit氏のマニュアル(英語、Discord)
KK_UnityEditor_animations.pdf
アニメーションする耳アイテムを追加する手順が書かれています。Blenderでオリジナルメッシュを作ってエクスポートするところまで解説されています。



概略
Unity Hubをダウンロードしてインストール。
Unity HubでMODを作りたいゲームと同じバージョンのUnityをインストールして起動。
ハニーセレクト 5.3.5
コイカツ          5.6.2
エモクリ          2017.4.10

あとはチュートリアルやマニュアル通り作成。長くなりそうなのでここでは割愛。

Unity AssetBundle でMODを作る場合の注意点
Unityに最初から搭載されている機能とゲーム側に最初から入っている機能が使えます。
例えばUnityのシェーダー、クロスシミュやコイカツに入っているDynamicBone(有料asset)が使えます。反面、自分でスクリプトを新たに組んで組み込むことはできません。

BlenderからUnityにインポートする際に90度回転してしまって困ったな、ということが有りました。メッシュ表示自体は問題ないのですがシェーダーが滅茶苦茶になってしまいました。 Blenderでエクスポートする際、「実験的機能」にチェックをすることで解決しました。

コイカツでアイテムなど作成する際はUnity側でUser layer10を使用する必要があります。
SB3UではlayerAと表示されるものです。(10の16進数=A)
SB3U側で手動で変えてもいいんですが、めんどくさいんで Unity側で変えています。

名称は任意。
SB3Uでは10がAになります。

他役に立ちそうなもの
ShaderForge
かつて有料で発売されていたノンプログラミングシェーダーエディター。
プログラマーでなくともグラフィカルにUnity用シェーダーが作れます。
Unity2018からは同じような機能を持つShader Graphが無料で使えますので旧世代Unity用ですね。