はじめに
2019/03/24 (Sun) に開催された Unity AssetBundle 完全に理解した 勉強会の主催と登壇をしてきました。
感想などとともに、Twitter で寄せられた質問等にアンサーしていきたいと思います。
内容
AssetBundle とその周辺技術に関する基本的な部分の説明と、株式会社キッズスターでの運用ノウハウなどをシェアしました。
AssetBundle を取り巻くキーワードについて、個別に掘り下げましたので、これから AssetBundle を完全に理解した い方に向けたセッションとなっているかと存じます。
後日 Unity Learning Materials にも掲載予定となっておりますので、公開されたあかつきにはご覧いただけると嬉しいです。
Twitter での反応に対するアンサー
Android も 150MB になるのでは?
GooglePlay最近150MBになる予告出ませんでしたっけ? #assetbundle完全に理解した
— ほっほ@cubical403 (@cubicalize) 2019年3月24日
Android Developers Blog: Google Mobile Developer Day at Game Developers Conference 2019
To better support high quality game experiences and reflect improved devices, we've also increased the size limit for APKs generated from app bundles to 150MB and raised the threshold for large download user warnings on the Google Play Store to 150MB, from 100MB.
とのコトなので、確かに制限が緩和されるもようですね!知りませんでした…。
先週行われた GDC で発表されたもようです。
Streamed Scene AssetBundle の利用用途は?
シーンもアセバンにできる。スクリプトの追加はできないはずだから既存コンポーネントを組み合わせた新ステージの配信で使うのかな?
— 鉄 (@tetsujp84) 2019年3月24日
#assetbundle完全に理解した
C# スクリプトは更新不可なので、お察しの通り Player ビルドに含まれるコンポーネントの範囲で更新できる内容に留まります。
工夫次第で色々なことができますが、例えば GameObject の配置を修正したり、アタッチするテクスチャを変更するなどがユースケースとして想定できますね。
SingleManifest では?
依存関係とかが書かれている方のAssetBundleManifestは「シングルマニフェスト」と呼び分けていたな〜(これが正しい名称だったかな..?うろ覚え..)#AssetBundle完全に理解した
— mao (@TEST_H_) 2019年3月24日
正式に Single Manifest と呼称している資料を見つけられなかったので、今回のスライドでは AssetBundle Manifest
と呼んでいます。
キッズスター社内では普通に Single Manifest と呼んでいたりしますw
Unload せずに Load するとエラーになるよね
【注意】同じAssetBundle を同時にロードしたり、すでに読み込み済みのBundleに対してLoadしようとするとException吐く・・・(2敗)#AssetBundle完全に理解した
— 人生\(^o^)/ (@8bitdots) 2019年3月24日
なりますねー!
Unload 絡みの LT が控えていたこともあり、セッションでは触れませんでしたが、 AssetBundle.Unload()
をせずに同じ AssetBundle を Load するとエラーが置きます。
運用ルールの選定方法
ABを知っての運用決定なのか、運用方法を決めてからのABなのか…さっきの講演にもありましたがこの辺本当に難しい 資料見る人はもんりぃさんのから見るのが良いのかな #AssetBundle完全に理解した
— ちゃこる (@Charcolle_) 2019年3月24日
これは本当に難しい問題だと思います。
個人的には、利用している Unity バージョンで利用できる AssetBundle 周辺の機能を理解したうえで、開発オペレーションを阻害しない方法を探すのが良いと考えています。
ただ、一度運用ルールを設定してしまうと変更が簡単ではないため、「えいやー」で設定せずにシッカリ熟慮することを強くオススメいたします。
ごっこランドの秘伝のタレ
ごっこランド、ヤバ技術が詰まっている… #AssetBundle完全に理解した
— トモぞヴP (@TomozoP) 2019年3月24日
確かに秘伝のタレは少なくないかもです。
極力公式が提供する機能のみで完結するように努力していますが、まぁ抽象化は無理だよねって状態になっています。
ビルドサーバ周りの情報
これだこれだ、Slackコマンド経由でビルド投げれる仕組み #AssetBundle完全に理解した | ごっこランドを支える技術 〜ビルド編〜 - もんりぃ is undefined. https://t.co/ZSif4u9BhX pic.twitter.com/qM0uASgqDA
— 青木とと(ˊᗜˋ*) ごたゆに #11 3/27(水) (@lycoris102) 2019年3月24日
ですです。既に古くなっている情報も多少ありますが、是非ご覧ください〜!
所感
個人
全体的に「初心者に分かりやすい」的な感想を多く頂戴できたのが、心より嬉しいです!
個人的なテーマとしてもそこら辺をとても意識しているので、狙いがハマってニヤニヤしながら TL 眺めてましたw
今後も「初心者・初学者に寄り添う もんりぃ先生」で在り続けたいと思っています!
全体
休日の開催にも関わらず、速報ベースで85%近い方のご参加をいただき、皆さんの関心の高さを実感いたしました。
私が主催する回としては、初めての休日開催だったので、色々と不安なこともありましたが、 mixi さんや id:lycoris102 のお陰で滞りなく進行できたので、改めて御礼を申し上げます!