SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
誰もADDRESSABLEを

語らないなら、

自分が語るしかない
@TSUBAKI_T1
アジェンダ
•Addressableとは何ぞや?
•Addressableの想定
•Addressableを使う流れ
•『個人的』感想
ADDRESSABLE

とは何ぞや?
アセットの制御を
簡単にしたい機能
RESOURCES並に
ASSETBU
NDLEをビ
ルドする
リソースの出力
グループ
アドレス
アドレス
アドレス
ASSET
BUNDLE
ASSET
BUNDLE
ASSET
BUNDLE
グループ
アドレス
アドレス
アドレス
ASSET
BUNDLE
CDN
どこから取
得したかを
気にせず利
用できる
アセットのアドレス管理
ASSETBUNDLE
ASSETBUNDLE
ASSETBUNDLE ASSETBUNDLE
ASSETBUNDLE
ADDRESSABLE
Address
GUIで設定し
たアセットを

必要になるま
でロードしない。
遅延ロード
Scene
MODEL
LOD 2
MODEL
LOD 2
MODEL
LOD 2
MODEL
LOD 2
MODEL
LOD 0
必要に応じて
ディティールの細かい

モデルをロード
通常はシーンと一緒に

ロードされる
使わない
ASSETBUN
DLEは開放
メモリ管理
LoadAsset 01 & 02
ASSET
ASSET
ASSET
ASSET
01
ReleaseAsset 01
ASSET
ASSET
ASSET
ASSET
01
ASSET
02
ASSET
02
参照先も開放
UnloadUnusedAssetは使わない
ASSETBU
NDLEの一
部を差し替
える
ABのパッチ ASSETBUNDLE 1
ASSET 1
ASSET 2
ASSET 3
ASSET 4
ASSET 5
ASSETBUNDLE 2
ASSET 3
STATIC ABの
参照先を差し替え
DL済み
追加DL
REMOTE-
ASSETBU
NDLEの動
作を確認
ローカルサーバー
LOCAL SERVER
ASSETBUNDLE
ASSETBUNDLE ASSETBUNDLE
ASSETBUNDLE
ADDRESSABLE
HOSTING
ADDRESSABLE
downloadstart
ADDRESSABLE の用語
スキーマ
グループ毎のビルド設定。
足したり引いたり出来る。
プロバイダー
どうやってグループ内の

アセットをロードするか

グループ
アドレスを格納する単位
現状のビルドスクリプトだと

ASSETBUNDLEを
アドレス単位で分割もしくは

全体でひとまとめに出力
アドレス
アセットと1:1になる文字列。
フォルダを登録するとフォルダ
以下が全て登録される
ADDRESSABLE の動き(ビルド)
グループ
アドレス
アドレス
アドレス
スキーマ 1
グループ
BUILD

(SRB)
グループ毎にスキーマの情報を
元にASSETBUNDLEと
CONTENTCATALOGを
構築する。
アドレス
アドレス
アドレス
スキーマ 1
スキーマ 2
CONTENT
CATALOG
ASSET
BUNDLE 3
ASSET
BUNDLE 2
ASSET
BUNDLE 1
ASSET
BUNDLE 4
サーバーか

STREAMINGASSETSに
配置
ABへのアドレスと

読むときに使うプロバイダー、

含まれるファイル一覧
ADDRESSABLE の動き(プレイヤー)
ADDRESSABLE
CONTENT
CATALOG
登録
アドレス

(文字列) RESOURCE
MANAGER
Locationを

渡す
ASSET
BUNDLE 3
ASSET
BUNDLE 2
ASSET
BUNDLE 1
ASSET
BUNDLE 4
指定のプロバイダーで

ロードしてアセットを返す
ADDRESSABLEの

想定

(予想)
全てのアセットを
ASSETBUNDLE
に
ASSETBUNDLEと

ビルドの区分を無くす
LOCAL ASSET
NG
LOCAL
ASSETBUNDLE
ASSET
ASSETBUNDLE
PREFAB
OK
全てをABにすろとビルドに時間がかかるので、
ビルドせずともコンテンツの動きを確認
GAME
VIRTUAL
OR
BUILD MODE
ASSET
BUNDLE
ASSET
DATABASE
ビルドが必要
ビルドは不要
全てをABにすろとビルドに時間がかかるので、
ビルドせずともコンテンツの動きを確認
Fast

(単純なロード)
Virtual

(データレイアウト

のみ使用)
pack

(ABをビルドして

それを使用する)
動作確認

(エディター)
◎コンテンツ作成
◎
○ ☓
○
テストプレイ ☓ ☓ ◎
リリース ☓ ☓ ◎
○
ビルド前はVIRTUALでサクサク確認(RESOURCESと同じ動き)
実際の動きはビルドして確認
モード
用途
アセットを取得して組み立てる、ではなく
組み上がったアセットを使う
C#
MODEL
TEXTURE
MATERIAL
ASSET
BUNDLE
ASSET
BUNDLE
MODEL
TEXTURE
MATERIAL
アセットが重複する問題は
ANALYZEで重複チェックして
個別にアドレスを設定、グループ分け
ASSET
BUNDLE
PREFAB 1
SPRITE

(PREFABが参照)
ASSET
BUNDLE
PREFAB 2
SPRITE

(PREFABが参照)
ASSET
BUNDLE PREFAB 1
SPRITE
ASSET
BUNDLEPREFAB 2
ASSET
BUNDLE
new
!
UNLOADUNUSEDASSETSは使わない
AB
AB
ADDRESSABLEはロードしたアセットが全てリリースされると開放
ADDRESSABLEは現状、全て非同期
AB
AB
Aaddressable.Instantiate
AB
AB
アセットの複製は

自分で参照カウントを持つ
設計と合わない場合はビルドモードをカスタム
グループを取得
スキーマからタスクを構築
タスクを元にビルド処理
カタログ更新
グループからスキーマを取得
ロードに使うプロバイダー取得 ビルドに新しいルールを追加、もし
くはビルドするルールを変更したい
ならば、ビルドモードを切り替え
① 独自スキーマを定義(任意)
② プロバイダーを構築(任意)
③ ビルドスクリプトを記述
④ ビルドモードを切り替え
グループ分けに特別なルールを

追加したいならば、

ANALYZEにルールを追加(予定)
ビルドスクリプトをカスタム
プロバイダーをカスタムすれば、もう少し色々出来る
RESOURCE PROVIDER
INSTANCE PROVIDER
SCENE PROVIDER
ASSETBUNDLEの暗号化や

その他云々の用途。
SRBのバージョンアップで化ける

かも
オブジェクトプーリング等を

行いたい場合
現状、ほとんどビルドモード拡張とセット
JSONから作るか…?
ADDRESSABLE

どうやって使うのか
今回の作業の流れ
1. Addressableを導入
2. ローカルサーバーを立てる
3. Sceneを全てAddressableに移行

(アセットは全てAssetBundleから取得するように)
4. 敵とプレイヤーキャラクターを遅延ロードに変更
5. SceneとPrefabのグループをリモートグループへ変更
6. ダウンロードサイズを取得して事前ダウンロード

(アセットは全てサーバーから取得する形へ変更)
7. サーバー上のコンテンツを更新
現状、どうなの?
• 素直に使えるなら凄い楽になった。

(所属ABの切り替え等は殆ど意識しなくても良い)
• Builtin Shaderが特別なABに含まれるのは割とありがたい
• テストケースがまだ甘い

(設定を正しく行わないとエラーが発生。

 要因はコードを見ないと分からないという事も)
• もうすぐ1.0なので概ねAPIは固定したらしい
• 想定を大きく外れる使い方の場合は、今はResourceManagerから

拡張するのが良いかもしれない。
おわり

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編
 
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動についてUE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
 
コールバックと戦う話
コールバックと戦う話コールバックと戦う話
コールバックと戦う話
 
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
 
UE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろうUE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろう
 
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
 
猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り
 
Assembly Definition あれやこれ
Assembly Definition あれやこれAssembly Definition あれやこれ
Assembly Definition あれやこれ
 
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
 
Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編
 
RPGにおけるイベント駆動型の設計と実装
RPGにおけるイベント駆動型の設計と実装RPGにおけるイベント駆動型の設計と実装
RPGにおけるイベント駆動型の設計と実装
 
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
【Unite 2018 Tokyo】Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~
 
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られたNintendo Switch『OCTOPATH TRAVELER』はこうして作られた
Nintendo Switch『OCTOPATH TRAVELER』はこうして作られた
 
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
 
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
 
ObserverパターンからはじめるUniRx
ObserverパターンからはじめるUniRx ObserverパターンからはじめるUniRx
ObserverパターンからはじめるUniRx
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
UE4における大規模背景制作事例 最適化ワークフロー編
UE4における大規模背景制作事例 最適化ワークフロー編UE4における大規模背景制作事例 最適化ワークフロー編
UE4における大規模背景制作事例 最適化ワークフロー編
 
【UE4.25 新機能】ロードの高速化機能「IOStore」について
【UE4.25 新機能】ロードの高速化機能「IOStore」について【UE4.25 新機能】ロードの高速化機能「IOStore」について
【UE4.25 新機能】ロードの高速化機能「IOStore」について
 
UE4とUnrealC++について
UE4とUnrealC++についてUE4とUnrealC++について
UE4とUnrealC++について
 

Último

Último (12)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

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