SlideShare a Scribd company logo
1 of 21
Addressables
大量のリソース管理・困りどころと解消法
Gotanda.unity #18
Kenta Nagai
自己紹介
ワンダープラネット株式会社
タノシムスタジオ clientエンジニア
永井 健太 (ナガイケンタ)
本日の内容
多量のリソース管理について
・開発の考慮 / 設計
・運用での問題
Addressable Asset System ( 以降Addressables)
・どんな感じで使用したかの構成
・運用時の体験談
課題:開発初期( モック開発 )
image
Voice BGM
キャラ UI
短期間な開発期間のプロジェクト
最小限の工数ですばやくリリース!
社内
デザイナー
DEV環境
背景
sound
組織 環境
Local環境
master
社内
エンジニア
社内
プランナー
excel
ベタ書 Se
あれもこれも
やりたい(仕様)
画像/シナリオ
/音声外部発注
マスターデータ
もいい感じに
外部!?
いい感じ!?
課題:開発進むにつれて・・・
image
Voice BGM
キャラ UI
社内
デザイナー DEV環境
背景
sound
組織 環境
Local環境
master
社内
エンジニア
社内
プランナー
excel
ベタ書
Se
サムネ大
サムネ中
サムネ小
Spine
アプリ内包
一枚絵
セリフ
e-mote
live2D エピローグ
縦長背景
イベント
text
シナリオ
CRI
キャラの
掛け合い
掛け合い : キャラ x キャラ x パターン
発注
外部a
外部b
外部c
納品
QA環境
DEV環境
プランナー環境
デザイナー環境
version管理
(git)
no wifi
いっぱい
イベント
イベント
参照
参照
参照
参照
unity
組み込み
CDN
DLリソース
jenkins
リソースに埋もれる・・・
管理どうしよう・・・
大量のリソースとその運用管理が必要
→ Addressables
最大限効率化しないとやばい
柔軟性の高いシンプルなアセット設計を目指す
・【柔軟性のキモ】依存関係を最小限 (1bundle に他のbundleを依存させない)
・【効率化のキモ】命名規則 (base の key でasset名を作成する)
actor_[:character_key]_[:costume_key].psd
char_[:character_key]_voice_[:character_voice_key].wav
設計
設計(命名規則)
・発注書の記載
・納品データ
・マスターデータ
・Unity読み込み登録
・シナリオスクリプト内のリソース登録
etc...
→ 命名規則シート作成
アセット管理全ての基盤
100行 + 25シートくらい
設計(命名規則)
・Assetbundless Groupへのimporterも命名規則通りに読み込めばいい
納品(他社)
→ 組み込み/ファイル追加(デザイナー)
→ エンジニアの手を使わない登録の自動化
それでも運用で問題は
起きちゃいますよね〜
運用/開発 問題①
並行開発/Groupコンフリクト
・メインの開発環境からブランチ切って作業
・イベントやログインボーナス、ガチャ並行
・.asset や CRI.project ファイルの競合
運用/開発 解決策①
並行開発/Groupコンフリクト
強行策
・頑張ってマージする
改善策
・各作業ブランチでグループを分ける
(CRI も作業workunitを分ける)
運用/開発 問題②
Addressablesバグ(機能の問題)
・赤丸を変更する
・なぜか他のリソースのIDも変わる
・変更してないファイルの再DLが入る
運用/開発 解決策②
Addressablesバグ(機能の問題)
一時対応
・グループを分ける
・自動import 対象から外す
・Addressables のversion更新で解決
運用/開発 問題③
バージョン管理(運用の問題)
・アプリ内包していたリソースを外出ししようとして発生
・アプリのversionは 1.0.0 / 1.1.0 → catalog_1.0 と catalog_1.1
・ファイルの上書きが発生
catalog_1.0 →
catalog_1.1 →
catalog_1.0 & 1.1 →
運用/開発 解決策③
バージョン管理(運用の問題)
・local → remote 指定に(運用中変更する際は差分DLできるようにしましょう!)
・hash値をつけて再アップロードし解決
(・ 運用前提が覆る場合は、チーム全体で確認)
運用/開発 問題④
DLの容量を最小限に(チーム共有の問題)
・イベント使いまわさないよ!
・✅ include in build
・イベントリソース管理
(終了したイベントのリソースをDLさせない)
・マスターデータはあるがリソースがない
運用/開発 解決策④
DLの容量を最小限に(チーム共有の問題)
・チームでのすり合わせや仕組みの理解が必要
・終了したイベントなどのリソース削減のタイミングとすり合わせ重要!
まとめ
point 1 : 柔軟かつシンプルな設計に!(命名などで自動化)
point 2 : addressables万能ではない!の更新内容確認は定期的
に!
point 3 : 仕組みやフローはエンジニア以外も共有しよう!

More Related Content

What's hot

【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術Unity Technologies Japan K.K.
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす増田 亨
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~UnityTechnologiesJapan002
 
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_ltDoozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lttorisoup
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫Yuta Imai
 
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnity Technologies Japan K.K.
 
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法モノビット エンジン
 
【Unity】 Behavior TreeでAIを作る
 【Unity】 Behavior TreeでAIを作る 【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作るtorisoup
 
UniRx完全に理解した
UniRx完全に理解したUniRx完全に理解した
UniRx完全に理解したtorisoup
 
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYOFINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYOGame Tools & Middleware Forum
 
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介torisoup
 
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろうサーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろうDaisuke Masubuchi
 
【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方
【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方
【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方UnityTechnologiesJapan002
 
Cinemachineで見下ろし視点のカメラを作る
Cinemachineで見下ろし視点のカメラを作るCinemachineで見下ろし視点のカメラを作る
Cinemachineで見下ろし視点のカメラを作るUnity Technologies Japan K.K.
 
UnityのクラッシュをBacktraceでデバッグしよう!
UnityのクラッシュをBacktraceでデバッグしよう!UnityのクラッシュをBacktraceでデバッグしよう!
UnityのクラッシュをBacktraceでデバッグしよう!Unity Technologies Japan K.K.
 
インタフェース完全に理解した
インタフェース完全に理解したインタフェース完全に理解した
インタフェース完全に理解したtorisoup
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門torisoup
 
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例UnityTechnologiesJapan002
 

What's hot (20)

【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
 
ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
 
Doozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_ltDoozy UI 使おうぜ! #unity_lt
Doozy UI 使おうぜ! #unity_lt
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
 
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
 
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
 
【Unity】 Behavior TreeでAIを作る
 【Unity】 Behavior TreeでAIを作る 【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
 
UniRx完全に理解した
UniRx完全に理解したUniRx完全に理解した
UniRx完全に理解した
 
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYOFINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
 
Photonのサービス選択の勘どころ
Photonのサービス選択の勘どころPhotonのサービス選択の勘どころ
Photonのサービス選択の勘どころ
 
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
 
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろうサーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
 
【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方
【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方
【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方
 
Cinemachineで見下ろし視点のカメラを作る
Cinemachineで見下ろし視点のカメラを作るCinemachineで見下ろし視点のカメラを作る
Cinemachineで見下ろし視点のカメラを作る
 
UnityのクラッシュをBacktraceでデバッグしよう!
UnityのクラッシュをBacktraceでデバッグしよう!UnityのクラッシュをBacktraceでデバッグしよう!
UnityのクラッシュをBacktraceでデバッグしよう!
 
インタフェース完全に理解した
インタフェース完全に理解したインタフェース完全に理解した
インタフェース完全に理解した
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
【Unity道場】使って覚えるTileMap
【Unity道場】使って覚えるTileMap【Unity道場】使って覚えるTileMap
【Unity道場】使って覚えるTileMap
 
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
 

Similar to Addressables で大量のリソース管理・困りどころと解消法

本の紹介
本の紹介本の紹介
本の紹介t w
 
元ITコンサルタントの目から見た「ITにおける今までのデザインとこれからのデザイン」
元ITコンサルタントの目から見た「ITにおける今までのデザインとこれからのデザイン」元ITコンサルタントの目から見た「ITにおける今までのデザインとこれからのデザイン」
元ITコンサルタントの目から見た「ITにおける今までのデザインとこれからのデザイン」Fixel Inc.
 
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景ソフトウェア開発の現場風景
ソフトウェア開発の現場風景Koichi ITO
 
Android開発者とデザイナーの効率的な連携について
Android開発者とデザイナーの効率的な連携についてAndroid開発者とデザイナーの効率的な連携について
Android開発者とデザイナーの効率的な連携についてlychee .
 
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発Developers Summit
 
20181206 Jazug DataScience TeamBuilding and DevOps
20181206 Jazug DataScience TeamBuilding and DevOps20181206 Jazug DataScience TeamBuilding and DevOps
20181206 Jazug DataScience TeamBuilding and DevOpsYukako Shimizu
 
ディレクターのキャリア・パス ~職能マップになぞらえて~
ディレクターのキャリア・パス ~職能マップになぞらえて~ディレクターのキャリア・パス ~職能マップになぞらえて~
ディレクターのキャリア・パス ~職能マップになぞらえて~Renji Yoneda
 
新卒2ヶ月でAIを社会実装させた3つのデザイン(修正前)
新卒2ヶ月でAIを社会実装させた3つのデザイン(修正前)新卒2ヶ月でAIを社会実装させた3つのデザイン(修正前)
新卒2ヶ月でAIを社会実装させた3つのデザイン(修正前)NodokaFujimoto
 
新卒2ヶ月でAIを社会実装させた3つのデザイン
新卒2ヶ月でAIを社会実装させた3つのデザイン新卒2ヶ月でAIを社会実装させた3つのデザイン
新卒2ヶ月でAIを社会実装させた3つのデザインNodokaFujimoto
 
Unity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことUnity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことKatsutoshi Makino
 
Modeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah modelsModeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah modelsKenji Hiranabe
 
デザイン・エンジニアがWeb開発で考えること
デザイン・エンジニアがWeb開発で考えることデザイン・エンジニアがWeb開発で考えること
デザイン・エンジニアがWeb開発で考えることKohei Kakudo
 
アジャイル実践における開発環境の変化〜要求の捉え方、プロジェクト運営、ツール支援
アジャイル実践における開発環境の変化〜要求の捉え方、プロジェクト運営、ツール支援アジャイル実践における開発環境の変化〜要求の捉え方、プロジェクト運営、ツール支援
アジャイル実践における開発環境の変化〜要求の捉え方、プロジェクト運営、ツール支援智治 長沢
 
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Toshiyuki Hirata
 
デスクトップエンジニアという働き方
デスクトップエンジニアという働き方デスクトップエンジニアという働き方
デスクトップエンジニアという働き方Hiroshi Oyamada
 
オブジェクト指向設計の原則
オブジェクト指向設計の原則オブジェクト指向設計の原則
オブジェクト指向設計の原則Toru Koido
 

Similar to Addressables で大量のリソース管理・困りどころと解消法 (20)

本の紹介
本の紹介本の紹介
本の紹介
 
元ITコンサルタントの目から見た「ITにおける今までのデザインとこれからのデザイン」
元ITコンサルタントの目から見た「ITにおける今までのデザインとこれからのデザイン」元ITコンサルタントの目から見た「ITにおける今までのデザインとこれからのデザイン」
元ITコンサルタントの目から見た「ITにおける今までのデザインとこれからのデザイン」
 
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
 
アンラーニング
アンラーニングアンラーニング
アンラーニング
 
Android開発者とデザイナーの効率的な連携について
Android開発者とデザイナーの効率的な連携についてAndroid開発者とデザイナーの効率的な連携について
Android開発者とデザイナーの効率的な連携について
 
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
 
20181206 Jazug DataScience TeamBuilding and DevOps
20181206 Jazug DataScience TeamBuilding and DevOps20181206 Jazug DataScience TeamBuilding and DevOps
20181206 Jazug DataScience TeamBuilding and DevOps
 
ディレクターのキャリア・パス ~職能マップになぞらえて~
ディレクターのキャリア・パス ~職能マップになぞらえて~ディレクターのキャリア・パス ~職能マップになぞらえて~
ディレクターのキャリア・パス ~職能マップになぞらえて~
 
楽天エンジニアライフ
楽天エンジニアライフ楽天エンジニアライフ
楽天エンジニアライフ
 
新卒2ヶ月でAIを社会実装させた3つのデザイン(修正前)
新卒2ヶ月でAIを社会実装させた3つのデザイン(修正前)新卒2ヶ月でAIを社会実装させた3つのデザイン(修正前)
新卒2ヶ月でAIを社会実装させた3つのデザイン(修正前)
 
新卒2ヶ月でAIを社会実装させた3つのデザイン
新卒2ヶ月でAIを社会実装させた3つのデザイン新卒2ヶ月でAIを社会実装させた3つのデザイン
新卒2ヶ月でAIを社会実装させた3つのデザイン
 
Unity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことUnity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだこと
 
DL-D_ver1.pdf
DL-D_ver1.pdfDL-D_ver1.pdf
DL-D_ver1.pdf
 
Modeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah modelsModeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah models
 
TechCommit_LT_20210620
TechCommit_LT_20210620TechCommit_LT_20210620
TechCommit_LT_20210620
 
デザイン・エンジニアがWeb開発で考えること
デザイン・エンジニアがWeb開発で考えることデザイン・エンジニアがWeb開発で考えること
デザイン・エンジニアがWeb開発で考えること
 
アジャイル実践における開発環境の変化〜要求の捉え方、プロジェクト運営、ツール支援
アジャイル実践における開発環境の変化〜要求の捉え方、プロジェクト運営、ツール支援アジャイル実践における開発環境の変化〜要求の捉え方、プロジェクト運営、ツール支援
アジャイル実践における開発環境の変化〜要求の捉え方、プロジェクト運営、ツール支援
 
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -
 
デスクトップエンジニアという働き方
デスクトップエンジニアという働き方デスクトップエンジニアという働き方
デスクトップエンジニアという働き方
 
オブジェクト指向設計の原則
オブジェクト指向設計の原則オブジェクト指向設計の原則
オブジェクト指向設計の原則
 

Addressables で大量のリソース管理・困りどころと解消法

Editor's Notes

  1. ゲーム大好きエンジニアです サーバーから入って、cocos2dエンジニア、最近Unityエンジニアになりました twitterはありますが、ゲームのRTや自炊の飯テロ垢になってたりしますので非推奨です
  2. 勉強会は好きでよく聞く側で参加していたのですが、話す/アウトプットするのは初 ・みんな大好きAddressable Asset System (Addressables) まだ新しいし更新もおおい Addressable Asset System 概要や仕組みの内容は最近いろんな勉強会や資料も上がってきている さらに個々の詳細を追ってしまうとにわかなのがバレる! せっかく企業で使っているので個人開発ではない量のリソース管理や納品から取り込みまで 大雑把に体験ベースの設計/使用感の一例として せっかくのLTなので運用で起こったことなどの内容になります〜 * AssetBundle/Addressables の仕組み説明などは別途検索してみてください。
  3. *assetbundlesの更新で解決済み version?
  4. *assetbundlesの更新で解決済み version?