Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ

23,413 views

Published on

Addressableの概要的な使い方についての紹介

Published in: Technology
  • Be the first to comment

誰もAddressableについて語らないなら、自分が語るしかない…ッッッッ

  1. 1. 誰もADDRESSABLEを
 語らないなら、
 自分が語るしかない @TSUBAKI_T1
  2. 2. アジェンダ •Addressableとは何ぞや? •Addressableの想定 •Addressableを使う流れ •『個人的』感想
  3. 3. ADDRESSABLE
 とは何ぞや?
  4. 4. アセットの制御を 簡単にしたい機能 RESOURCES並に
  5. 5. ASSETBU NDLEをビ ルドする リソースの出力 グループ アドレス アドレス アドレス ASSET BUNDLE ASSET BUNDLE ASSET BUNDLE グループ アドレス アドレス アドレス ASSET BUNDLE
  6. 6. CDN どこから取 得したかを 気にせず利 用できる アセットのアドレス管理 ASSETBUNDLE ASSETBUNDLE ASSETBUNDLE ASSETBUNDLE ASSETBUNDLE ADDRESSABLE Address
  7. 7. GUIで設定し たアセットを
 必要になるま でロードしない。 遅延ロード Scene MODEL LOD 2 MODEL LOD 2 MODEL LOD 2 MODEL LOD 2 MODEL LOD 0 必要に応じて ディティールの細かい
 モデルをロード 通常はシーンと一緒に
 ロードされる
  8. 8. 使わない ASSETBUN DLEは開放 メモリ管理 LoadAsset 01 & 02 ASSET ASSET ASSET ASSET 01 ReleaseAsset 01 ASSET ASSET ASSET ASSET 01 ASSET 02 ASSET 02 参照先も開放 UnloadUnusedAssetは使わない
  9. 9. ASSETBU NDLEの一 部を差し替 える ABのパッチ ASSETBUNDLE 1 ASSET 1 ASSET 2 ASSET 3 ASSET 4 ASSET 5 ASSETBUNDLE 2 ASSET 3 STATIC ABの 参照先を差し替え DL済み 追加DL
  10. 10. REMOTE- ASSETBU NDLEの動 作を確認 ローカルサーバー LOCAL SERVER ASSETBUNDLE ASSETBUNDLE ASSETBUNDLE ASSETBUNDLE ADDRESSABLE HOSTING ADDRESSABLE downloadstart
  11. 11. ADDRESSABLE の用語 スキーマ グループ毎のビルド設定。 足したり引いたり出来る。 プロバイダー どうやってグループ内の
 アセットをロードするか
 グループ アドレスを格納する単位 現状のビルドスクリプトだと
 ASSETBUNDLEを アドレス単位で分割もしくは
 全体でひとまとめに出力 アドレス アセットと1:1になる文字列。 フォルダを登録するとフォルダ 以下が全て登録される
  12. 12. ADDRESSABLE の動き(ビルド) グループ アドレス アドレス アドレス スキーマ 1 グループ BUILD
 (SRB) グループ毎にスキーマの情報を 元にASSETBUNDLEと CONTENTCATALOGを 構築する。 アドレス アドレス アドレス スキーマ 1 スキーマ 2 CONTENT CATALOG ASSET BUNDLE 3 ASSET BUNDLE 2 ASSET BUNDLE 1 ASSET BUNDLE 4 サーバーか
 STREAMINGASSETSに 配置 ABへのアドレスと
 読むときに使うプロバイダー、
 含まれるファイル一覧
  13. 13. ADDRESSABLE の動き(プレイヤー) ADDRESSABLE CONTENT CATALOG 登録 アドレス
 (文字列) RESOURCE MANAGER Locationを
 渡す ASSET BUNDLE 3 ASSET BUNDLE 2 ASSET BUNDLE 1 ASSET BUNDLE 4 指定のプロバイダーで
 ロードしてアセットを返す
  14. 14. ADDRESSABLEの
 想定
 (予想)
  15. 15. 全てのアセットを ASSETBUNDLE に ASSETBUNDLEと
 ビルドの区分を無くす LOCAL ASSET NG LOCAL ASSETBUNDLE ASSET ASSETBUNDLE PREFAB OK
  16. 16. 全てをABにすろとビルドに時間がかかるので、 ビルドせずともコンテンツの動きを確認 GAME VIRTUAL OR BUILD MODE ASSET BUNDLE ASSET DATABASE ビルドが必要 ビルドは不要
  17. 17. 全てをABにすろとビルドに時間がかかるので、 ビルドせずともコンテンツの動きを確認 Fast
 (単純なロード) Virtual
 (データレイアウト
 のみ使用) pack
 (ABをビルドして
 それを使用する) 動作確認
 (エディター) ◎コンテンツ作成 ◎ ○ ☓ ○ テストプレイ ☓ ☓ ◎ リリース ☓ ☓ ◎ ○ ビルド前はVIRTUALでサクサク確認(RESOURCESと同じ動き) 実際の動きはビルドして確認 モード 用途
  18. 18. アセットを取得して組み立てる、ではなく 組み上がったアセットを使う C# MODEL TEXTURE MATERIAL ASSET BUNDLE ASSET BUNDLE MODEL TEXTURE MATERIAL
  19. 19. アセットが重複する問題は ANALYZEで重複チェックして 個別にアドレスを設定、グループ分け ASSET BUNDLE PREFAB 1 SPRITE
 (PREFABが参照) ASSET BUNDLE PREFAB 2 SPRITE
 (PREFABが参照) ASSET BUNDLE PREFAB 1 SPRITE ASSET BUNDLEPREFAB 2 ASSET BUNDLE new !
  20. 20. UNLOADUNUSEDASSETSは使わない AB AB ADDRESSABLEはロードしたアセットが全てリリースされると開放
  21. 21. ADDRESSABLEは現状、全て非同期 AB AB Aaddressable.Instantiate AB AB アセットの複製は
 自分で参照カウントを持つ
  22. 22. 設計と合わない場合はビルドモードをカスタム グループを取得 スキーマからタスクを構築 タスクを元にビルド処理 カタログ更新 グループからスキーマを取得 ロードに使うプロバイダー取得 ビルドに新しいルールを追加、もし くはビルドするルールを変更したい ならば、ビルドモードを切り替え ① 独自スキーマを定義(任意) ② プロバイダーを構築(任意) ③ ビルドスクリプトを記述 ④ ビルドモードを切り替え グループ分けに特別なルールを
 追加したいならば、
 ANALYZEにルールを追加(予定)
  23. 23. ビルドスクリプトをカスタム
  24. 24. プロバイダーをカスタムすれば、もう少し色々出来る RESOURCE PROVIDER INSTANCE PROVIDER SCENE PROVIDER ASSETBUNDLEの暗号化や
 その他云々の用途。 SRBのバージョンアップで化ける
 かも オブジェクトプーリング等を
 行いたい場合 現状、ほとんどビルドモード拡張とセット JSONから作るか…?
  25. 25. ADDRESSABLE
 どうやって使うのか
  26. 26. 今回の作業の流れ 1. Addressableを導入 2. ローカルサーバーを立てる 3. Sceneを全てAddressableに移行
 (アセットは全てAssetBundleから取得するように) 4. 敵とプレイヤーキャラクターを遅延ロードに変更 5. SceneとPrefabのグループをリモートグループへ変更 6. ダウンロードサイズを取得して事前ダウンロード
 (アセットは全てサーバーから取得する形へ変更) 7. サーバー上のコンテンツを更新
  27. 27. 現状、どうなの? • 素直に使えるなら凄い楽になった。
 (所属ABの切り替え等は殆ど意識しなくても良い) • Builtin Shaderが特別なABに含まれるのは割とありがたい • テストケースがまだ甘い
 (設定を正しく行わないとエラーが発生。
  要因はコードを見ないと分からないという事も) • もうすぐ1.0なので概ねAPIは固定したらしい • 想定を大きく外れる使い方の場合は、今はResourceManagerから
 拡張するのが良いかもしれない。
  28. 28. おわり

×