Easy way to generate AssetBundle
AssetGraphと連携してAssetBundleとAssetBundleListを作る方法を紹介する。
現状だとAutoya.AssetGraph.unitypackageというAutoyaとAssetGraphを合わせて配布しているunitypackageがあるんで、それを展開すると再現できるのだけれど、 いかんせん大変分かりにくい。
- AutoyaのAssetGraphのPostProcessingスクリプトAutoyaPostprocess.csがAssetGraph内にあるのを確認する
- プロジェクトフォルダにAssetBundleの出力先フォルダを作る
ここでは AssetBundles みたいなフォルダを作ったとする。
PROJECT_FOLDER/
AssetBundles/
Assets/
....
- AssetGraphのグラフを生成する
- グラフの終端のExporterノードに、出力先として AssetBundles フォルダを指定する。
- 出力先フォルダの中に、グラフ名.jsonファイルを作成(この部分をグラフに入れ込みたいがまだ無理)
- グラフ名.jsonに、identity(グラフ名)、version(バージョン値)をjson形式で手で書く
{
"identity": "グラフ名",
"version": "1.0.0"
}
出力先フォルダにこのjsonを置いてあるとこんな感じに見えるはず。
PROJECT_FOLDER/
AssetBundles/
グラフ名.json <- new!
....
(これらの行程は手でやるとミスりそうなので今後のアップデートでなんらかGUIを提供するつもり。)
- この状態でAssetGraphを動かすと、次のような階層にAssetBundleと管理用のリストファイルが作成される。
PROJECT_FOLDER/
AssetBundles/
グラフ名/
対応プラットフォーム/
1.0.0/
グラフ名.json(これはAssetBundleListと呼ばれる形式のファイル)
AssetBundle x N
グラフ名.json
ここで、対応プラットフォームの下の1.0.0は、グラフ名.jsonに指定したバージョン値になっている。
- 別の対応プラットフォームをビルドすると対応プラットフォームぶんだけフォルダが増える。
- 新規にリソースを追加して配布する = リソースのバージョンをあげてビルドする、という関係性になっていて、新規バージョンをビルドする場合、AssetBundles フォルダ直下のグラフ名.jsonのバージョン値を上げてからビルドする。
PROJECT_FOLDER/
AssetBundles/
グラフ名/
グラフ名.json <- これをいじる
{
"identity": "グラフ名",
"version": "1.0.1" <- updated!
}
- この状態でビルドを行うと、次のようなフォルダ階層ができる。
PROJECT_FOLDER/
AssetBundles/
グラフ名/
対応プラットフォーム/
1.0.0/
1.0.1/
グラフ名.json <- バージョンが1.0.1になったAssetBundleList
AssetBundle x N <- どこか内容が追加されたり変わったAssetBundle
グラフ名.json
このように、各バージョンごとに完全に分離された状態でグラフごとのAssetBundleとリストを作成できる。
こうして作成したリソースのデプロイに関してはデプロイのページを参照。