Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
個人開発でも使ってみよう Addressable Asset System
Search
Sugaya
December 05, 2022
Programming
0
2.6k
個人開発でも使ってみよう Addressable Asset System
Sugaya
December 05, 2022
Tweet
Share
More Decks by Sugaya
See All by Sugaya
Unity as a Libraryで実現する視聴者介入型ライブゲーミング
tetsujp84
0
350
Other Decks in Programming
See All in Programming
ゲームの物理 剛体編
fadis
0
390
tparseでgo testの出力を見やすくする
utgwkk
2
320
TestingOsaka6_Ozono
o3
0
220
Navigating Dependency Injection with Metro
l2hyunwoo
1
200
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.4k
Pythonではじめるオープンデータ分析〜書籍の紹介と書籍で紹介しきれなかった事例の紹介〜
welliving
3
680
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
230
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
39
26k
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
230
愛される翻訳の秘訣
kishikawakatsumi
3
360
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
6
950
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
140
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
330
39k
The Cult of Friendly URLs
andyhume
79
6.7k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
110
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
210
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.8k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
210
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
130
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
590
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
61
47k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Color Theory Basics | Prateek | Gurzu
gurzu
0
160
30 Presentation Tips
portentint
PRO
1
180
Transcript
個人開発でも使ってみよう Addressable Asset System Gotanda.unity #18
プロフィール tetsu(鉄、Twitter:@tetsujp84) • Unityエンジニア • 株式会社ミラティブ所属 • サークルでリズムゲームを制作中
制作中のゲーム Liminality • スマートフォン向けリズムゲーム • Addressable Asset System に移行した • CRI
ADX2 を使っている
Addressable Asset Systemを使うメリット • Resources からの脱却 • 追加ダウンロードの仕組みを簡単に整えられる • グループによりバンドル管理がしやすい
• ビルドインと追加ダウンロードのリソースを区別せずに使える ◦ ビルドイン:アプリ本体に最初から含める内部リソース ◦ 追加ダウンロード:アプリ起動中にダウンロードを行う外部リソース • ビルドインから追加リソースに切り替えられる
リズムゲームでアセットとして使うもの • ジャケット:.png • 音源:.acb • 譜面:.json ひとまとめにして1曲単位でグループ化
ロード方法 LoadResourceLocationAsync でファイルの存在チェック Addressable.LoadAssetAsync でロードして Instantiate でインスタンス化 ※UniTaskを使用
ビルドインと追加ダウンロードの切り替え • ビルドインのリソース ◦ Asset Group を Local にする ◦
アプリをビルドする際に一緒にビルドする • 追加ダウンロードのリソース ◦ Asset Group を Remote にする ◦ アプリのビルドとは別でビルドする • LoadAssetAsync はダウンロードも同時に行ってくれる
具体例 ビルドインの設定 Build and Load Paths を Local に設定する 追加ダウンロードの設定
Build and Load Paths を Remote に設定する
CRI ADX2 との連携 • CRI ADX2 ◦ サウンドミドルウェア ◦ Androidの低遅延再生に強い
◦ 商業リズムゲームでよく使われる • 通常の CRI ADX2 のロード ◦ StreamingAssets か persistentDataPath に置いてロード ◦ ダウンロード機構を自分で作る必要がある • Addressable Asset System に載せるメリット ◦ 他のリソースと同様に扱える ◦ 独自ダウンロード機能を作らずに済む
CRI ADX2 との連携の注意点 • 音源ファイルの拡張子は .bytes にして TextAsset として読み込む ◦
独自拡張子(.acb)はUnityのファイルとして扱われない • ロード時は byte[] を引数に持つメソッドを利用する • StreamingAssetsフォルダには入れない
音源ファイルの読み込み AddCueSheet(string name, byte[] acbData, string awbFile, CriFsBinder awbBinder =
null) 音源ファイル(M0001)を TextAsset として読み込む CriAtom.AddCueSheetには .bytes を渡す
AssetImporterで拡張子変更 アセット追加時に音源ファイルの拡張子を .bytes に変える
CIとの連携 • Unity Cloud Build の活用 ◦ アプリ/リソースの更新は全てUnity Cloud Buildで運用
• ビルドインのリソースも都度ビルドが必要 ◦ アプリビルドだけでは自動では更新されない ◦ 同時にリソースのビルドを行うようにした ◦ OnPreprocessBuild ではなく PreBuildMethod のタイミングでビルド • 開発版だけに含めたいリソースは IncludeInBuild で制御
Unity Cloud Build でのリソースビルド • 追加ダウンロードのリソースは Unity Cloud Build の設定からビルドが行える
• リソースだけのビルドも可能 • ※ビルドインのリソースは更新されない
ビルドインリソース更新用のメソッド AddressableAssetSettings.BuildPlayerContent スクリプト経由でビルドする ※ActivePlayerDataBuilderIndexの設定が必要かは検証中
Unity Cloud Buildでの設定 PreBuildMethod(エクスポート前メソッド)で更新用メソッドを指定する
開発版のみに含めるリソースの管理 開発版用のグループ(Development)を用意しておく ビルド実行時に IncludeInBuild を切り替えてビルドに含めるかを管理する
Addressable Asset Systemを導入してみて • Addressable Asset System は個人開発レベルでも導入できる • リソース追加があるプロジェクトなら特に有効
• CRI ADX2と一緒に使える • CIと連携するとより使いやすい • ※運用に関する実例はまだまだ不足している