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

Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnity Technologies Japan K.K.
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫Yuta Imai
 
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!Unity Technologies Japan K.K.
 
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~UnityTechnologiesJapan002
 
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜Unity Technologies Japan K.K.
 
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMERSAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMERエピック・ゲームズ・ジャパン Epic Games Japan
 
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計UnityTechnologiesJapan002
 
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてカスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてalwei
 
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例UnityTechnologiesJapan002
 
大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化DeNA
 
Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料Daisuke Masubuchi
 
一般的なチートの手法と対策について
一般的なチートの手法と対策について一般的なチートの手法と対策について
一般的なチートの手法と対策について優介 黒河
 
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例sairoutine
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門torisoup
 

What's hot (20)

60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編60fpsアクションを実現する秘訣を伝授 解析編
60fpsアクションを実現する秘訣を伝授 解析編
 
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTipsUnityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
 
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
 
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
 
60fpsアクションを実現する秘訣を伝授 基礎編
60fpsアクションを実現する秘訣を伝授 基礎編60fpsアクションを実現する秘訣を伝授 基礎編
60fpsアクションを実現する秘訣を伝授 基礎編
 
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
 
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMERSAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
SAMURAI JACK開発事例:海外むけアクションゲームをオーソドックスに作ってみた UNREAL FEST EXTREME 2021 SUMMER
 
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
 
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてカスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについて
 
猫でも分かる UE4の新しいサンプル「Action RPG」について
猫でも分かる UE4の新しいサンプル「Action RPG」について猫でも分かる UE4の新しいサンプル「Action RPG」について
猫でも分かる UE4の新しいサンプル「Action RPG」について
 
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
 
大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化
 
Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料
 
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
 
Epic Online Services でできること
Epic Online Services でできることEpic Online Services でできること
Epic Online Services でできること
 
一般的なチートの手法と対策について
一般的なチートの手法と対策について一般的なチートの手法と対策について
一般的なチートの手法と対策について
 
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
UE4における大規模レベル実装ワークフローとブループリント活用事例
UE4における大規模レベル実装ワークフローとブループリント活用事例UE4における大規模レベル実装ワークフローとブループリント活用事例
UE4における大規模レベル実装ワークフローとブループリント活用事例
 

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?