Submit Search
Unityのasset bundle運用実例@lordofknights
29 likes
•
16,000 views
Kouji Hosoda
弊社でUnity3Dを使って開発したiPhoneアプリ(Lord of Knights)でのAssetBundle実例と、使いどころの話。
Technology
Read more
1 of 32
Download now
Downloaded 135 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
More Related Content
PDF
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
UnityTechnologiesJapan002
PPTX
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
DeNA
PPTX
大規模ゲーム開発における build 高速化と安定化
DeNA
PDF
UniRx完全に理解した
torisoup
PDF
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
PDF
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
モノビット エンジン
PDF
Observableで非同期処理
torisoup
PPTX
DeNAの最新のマスタデータ管理システム Oyakata の全容
sairoutine
【Unite 2018 Tokyo】『CARAVAN STORIES』のアセットバンドル事例
UnityTechnologiesJapan002
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
DeNA
大規模ゲーム開発における build 高速化と安定化
DeNA
UniRx完全に理解した
torisoup
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
モノビット エンジン
Observableで非同期処理
torisoup
DeNAの最新のマスタデータ管理システム Oyakata の全容
sairoutine
What's hot
(20)
PDF
NextGen Server/Client Architecture - gRPC + Unity + C#
Yoshifumi Kawai
ODP
Unity ネイティブプラグインの作成について
Tatsuhiko Yamamura
PDF
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
PDF
はじめてのScriptable Build Pipeline
Unity Technologies Japan K.K.
PDF
PHPからgoへの移行で分かったこと
gree_tech
PDF
ゲームサーバ開発現場の考え方
Daisaku Mochizuki
PDF
HTTP/2 入門
Yahoo!デベロッパーネットワーク
PDF
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
UnityTechnologiesJapan002
PDF
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
PDF
UniTask入門
torisoup
PDF
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
PPTX
Fortniteを支える技術
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方
UnityTechnologiesJapan002
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
PDF
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
Manabu Koga
PDF
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
Mikito Yoshiya
PDF
UnityのクラッシュをBacktraceでデバッグしよう!
Unity Technologies Japan K.K.
PPTX
ゲーム開発とMVC
Takashi Komada
PDF
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Yoshifumi Kawai
PDF
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
NextGen Server/Client Architecture - gRPC + Unity + C#
Yoshifumi Kawai
Unity ネイティブプラグインの作成について
Tatsuhiko Yamamura
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
はじめてのScriptable Build Pipeline
Unity Technologies Japan K.K.
PHPからgoへの移行で分かったこと
gree_tech
ゲームサーバ開発現場の考え方
Daisaku Mochizuki
HTTP/2 入門
Yahoo!デベロッパーネットワーク
【Unite Tokyo 2019】大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~
UnityTechnologiesJapan002
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
UniTask入門
torisoup
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
Fortniteを支える技術
エピック・ゲームズ・ジャパン Epic Games Japan
【Unite Tokyo 2019】バンダイナムコスタジオ流Unityの使い方
UnityTechnologiesJapan002
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
Manabu Koga
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
Mikito Yoshiya
UnityのクラッシュをBacktraceでデバッグしよう!
Unity Technologies Japan K.K.
ゲーム開発とMVC
Takashi Komada
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Yoshifumi Kawai
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
Ad
Viewers also liked
(8)
PPT
BRDF レンダリングの方程式
康弘 等々力
PPTX
Shadow gunのサンプルから学べるモバイル最適化
Katsutoshi Makino
PDF
Extending the Unity Editor Extended
Masamitsu Ishikawa
PDF
知って得するUnity エディタ拡張編
Shota Baba
PDF
うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移
まべ☆てっく運営
PDF
Unity での asset bundle による追加コンテンツの扱い方
Kouji Hosoda
PDF
Unity エディタ拡張
Shota Baba
PDF
AssetBundle (もどき) の作り方
Mori Tetsuya
BRDF レンダリングの方程式
康弘 等々力
Shadow gunのサンプルから学べるモバイル最適化
Katsutoshi Makino
Extending the Unity Editor Extended
Masamitsu Ishikawa
知って得するUnity エディタ拡張編
Shota Baba
うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移
まべ☆てっく運営
Unity での asset bundle による追加コンテンツの扱い方
Kouji Hosoda
Unity エディタ拡張
Shota Baba
AssetBundle (もどき) の作り方
Mori Tetsuya
Ad
Similar to Unityのasset bundle運用実例@lordofknights
(20)
PPT
AssetBundle と TextureCompression のおはなし
Mori Tetsuya
PDF
ここが変わる!Unity 5のスマホ開発 ~アセットバンドル、ビルド、プラグイン~
MakotoItoh
PDF
Unity 5 の AssetBundle について (浅く) まとめてみた - 2015/05/22 第31回 Unity 勉強会
Mori Tetsuya
PDF
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Mori Tetsuya
PDF
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
Yusuke HIDESHIMA
PPTX
Unity * スマートフォン開発で学んだこと
Katsutoshi Makino
PDF
Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会
Mori Tetsuya
PDF
20150123 第28回 Unity 勉強会「Unity に於けるビルド自動化のおはなし & 設定管理とリソース管理のおはなし」
Mori Tetsuya
PPTX
Deep-Dive into Scriptable Build Pipeline
Haruto Otake
PDF
Unity恐くないよ!!
nakamura001
PDF
20121123 アド部定例会 unityアプリに広告を入れる方法
Yasuyuki Kamata
PDF
Unity名古屋セミナー [Asset Store]
MakotoItoh
PDF
Unity×HTMLで作るiPhone オンラインゲーム開発事例
Kouji Hosoda
PDF
Go_to_UnityAssetStore_Publisher_2016edition
Takashi Jona
PDF
Let’s study unity
Takuya Arakawa
PPTX
アプリ開発・運用で楽をするために知っておくべき Unity Services
Yasuyuki Kamata
PDF
自分の作品が世界中のゲーム開発者に使われる日
Takashi Jona
PDF
20130330 nagoya unityアプリに広告を入れる方法 公開用
Yasuyuki Kamata
PPTX
メガ Unity ユーザーミートアップ 2012
cfm_art
PDF
Asset bundleなどの、Unity3d基礎知識
Nobukazu Hanada
AssetBundle と TextureCompression のおはなし
Mori Tetsuya
ここが変わる!Unity 5のスマホ開発 ~アセットバンドル、ビルド、プラグイン~
MakotoItoh
Unity 5 の AssetBundle について (浅く) まとめてみた - 2015/05/22 第31回 Unity 勉強会
Mori Tetsuya
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Mori Tetsuya
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
Yusuke HIDESHIMA
Unity * スマートフォン開発で学んだこと
Katsutoshi Makino
Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会
Mori Tetsuya
20150123 第28回 Unity 勉強会「Unity に於けるビルド自動化のおはなし & 設定管理とリソース管理のおはなし」
Mori Tetsuya
Deep-Dive into Scriptable Build Pipeline
Haruto Otake
Unity恐くないよ!!
nakamura001
20121123 アド部定例会 unityアプリに広告を入れる方法
Yasuyuki Kamata
Unity名古屋セミナー [Asset Store]
MakotoItoh
Unity×HTMLで作るiPhone オンラインゲーム開発事例
Kouji Hosoda
Go_to_UnityAssetStore_Publisher_2016edition
Takashi Jona
Let’s study unity
Takuya Arakawa
アプリ開発・運用で楽をするために知っておくべき Unity Services
Yasuyuki Kamata
自分の作品が世界中のゲーム開発者に使われる日
Takashi Jona
20130330 nagoya unityアプリに広告を入れる方法 公開用
Yasuyuki Kamata
メガ Unity ユーザーミートアップ 2012
cfm_art
Asset bundleなどの、Unity3d基礎知識
Nobukazu Hanada
Recently uploaded
(6)
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
20250729_Devin-for-Enterprise
Masaki Yamakawa
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
Unityのasset bundle運用実例@lordofknights
1.
Unity の AssetBundle 運用事例 @Lord
of Knights 株式会社 Aiming リードソフトウェアエンジニア 細田幸治 2012/06/01
2.
こんばんは こんばんは
3.
細田幸治といいます。 http://www.facebook.com/kouji.hosoda MMORPG のサーバーを書いたり、 通信ライブラリを書いたり、 ブラウザゲームを作ったりして、 現在はスマートフォンでオンラインゲームを作って ます。
4.
AssetBundle つかっていますか?
( ・∇・)ノ
5.
話すこと 1. AssetBundle の特徴
○ 概説 ○ メリット ○ デメリット 2. Lord of Knights での実例紹介 ○ 何のために使ったか? ○ どう実装したか? ○ 運用ワークフロー
6.
結論を言うと ● アップデート時のコンテンツ追加に便利 ● だけどいろいろ注意点がある ●
ポイントをおさえて使おう
7.
AssetBundle の特徴
8.
概説 ●
Unity 専用の外部素材フォーマットのこと ● GameObject、Material、Prefab などが入る ● サーバーなどに置いてアプリで読み込んで使う ● AssetBundle の作成は Unity Pro Only
9.
メリット 1.
アプリケーションサイズを小さくできる 2. Apple 審査をしなくてもコンテンツを追加できる 3. キャッシュが効く 4. アプリ本体と AssetBundle とでワークフロー(プ ロジェクト)分けられる
10.
デメリット 1. 他の素材方式よりもメモリを消費する
○ AssetBundle クラス自体がアセットを内包した状態でメモ リに乗る ○ 上記 AssetBundle クラスから Material などを Load すると それもメモリに乗る memory www Material,GameObject,etc. AssetBundle Load クラス Load
11.
デメリット 2. 非同期読み込みになるので“待ち”の実装が必
要 ○ Resources.Load のように同期的には読み込めない ○ 待ち時間処理のためにコードが複雑になりがち
12.
デメリット 3. 通信状態によっては読み込めない ○
通信できない環境だと Load できない ○ タイムアウトでも Load に失敗する ○ Load できなくてもなるべく遊べるような設計が望ましい
13.
デメリット 4. プラットフォーム間で互換性がない ○
Android、iPhone、WebPlayer でそれぞれ別ファイル フォーマット ○ AssetBundle のビルド時にプラットフォームを指定して書 き出す必要がある ○ ビルド時のプラットフォームの切り替えに時間がかかる ○ ちなみに Editor ではどのフォーマットでも読み込める
14.
デメリット 5. バージョンを指定しても更新されない時がある ○
ブラウザやサーバーのキャッシュに乗るため、更新したく てもうまく反映されない場合がある ○ 読み込む際にファイル名の後ろにタイムスタンプなどをつ けてキャッシュ無効化するべし ○ 例:http://www.foo.com/foo.asset?time=201106011930
15.
デメリット 6. スクリプトは AssetBundle
に入れられない (iPhone ではコードの動的生成 NG だから) 7. Unity がバージョンアップすると読み込めなくな る(Unity3.5.1 から下位互換されたかも) ○ 3.4系のときは別バージョンでビルドしたAssetBundleを読 み込もうとすると、実機でキャッチできないエラー出して読 み込めなかった。
16.
Lord of Knights
実例
17.
何のために使ったか?
18.
何のために使ったか? ● 追加コンテンツ
○ カードイラスト
19.
何のために使ったか? ● 追加コンテンツ
○ チュートリアルの説明用スライド
20.
何のために使ったか? ● 追加コンテンツ
○ アドバイスポップアップ素材
21.
何のために使ったか? ● アプリサイズ削減
○ BGM (後にアプリ本体に埋め込み) ○ 背景画像(後にアプリ本体に埋め込み) ○ カード枠(後にアプリ本体に埋め込み) ○ などなど容量が大きい素材たち AppleStore の3G回線でのダウンロードサイズ制 限が 20 MB だったときに使用した ↓ 現在は 50 MB まで OK になったので再埋め込み
22.
どう実装したか?
23.
どう実装したか? ● メモリ管理
○ 最初は1つの AssetBundle に複数素材を入れていたが、 ばらばらに分けて読み込み時のメモリを削減 ○ メモリが少ないデバイス(iPod touch など)の場合は使用 メモリ量が 120 MB 以上になったらシーン切り替え時に AssetBundle をいったん Unload するようにした
24.
どう実装したか? ● “待ち”の扱い
○ 動的に扱う素材はインジケーターでアピール ○ 静的に扱う素材はフェードアウト中に先読み
25.
どう実装したか? ● キャッシュ
○ 開発当時は Unity のキャッシュがまだなかった、と思う ○ 独自キャッシュの仕組みを実装 ■ WWW.LoadFromCacheOrDownload と同じ挙動 ○ 最新バージョン番号をサーバーから教えてもらい、クライ アントでキャッシュしているバージョン番号と一致しなかっ たら再読み込みする ○ ファイル名の後ろにクエリストリングでタイムスタンプをつ けて予期せぬキャッシュを避ける
26.
どう実装したか? ● バージョン、プラットフォーム、言語の切り分け
○ 同じファイル名でもプラットフォームごとに違うフォーマット のファイルが必要 ○ バージョン、プラットフォーム、言語でディレクトリ構造を作 ることで同名ファイルを配置分け ■ /version1_0/iPhone/ja/Card_001.asset ■ /version1_1/Android/en/Card_001.asset ○ クライアントから条件を指定してファイルパスをサーバー から教えてもらう
27.
運用ワークフロー
28.
運用ワークフロー ● アプリ本体とは別のプロジェクトで作成
○ アプリ本体の修正を気にせずに作業できる ● ファイルサイズはなるべく小さくパック ○ AssetBundle ファイル単位でメモリに読み込むため ○ 同時に使わない素材は別ファイルに分ける ○ メモリ使用量と読み込み速度を気にかける
29.
運用ワークフロー ● 規約
○ シンプルなフォルダ構造にして企画やデザインの人が直 接いじりやすいようにする ○ プロジェクト内のフォルダ構造、ファイル名から自動的に 出力ファイルの名前や配置場所が決まるようにする ● 一発ビルドコマンド ○ Editor スクリプトで一括ビルドコマンドを実装 ○ 書き出されたフォルダをそのままサーバーに配置すれば OK
30.
まとめ ● アップデート時のコンテンツ追加に便利
○ Apple の審査を待たなくて良い ● いろいろ注意点がある ○ 予期せぬキャッシュに注意 ○ 非同期プログラミングが必要 ○ 読み込めないときの対応をきちんとする ● ポイントをおさえて使おう ○ プラットフォーム毎にアセットを切り替えられるように ○ アセット1個1個はメモリと速度を気にして小さめに ○ Editor スクリプトを活用してワークフローを簡単に
31.
質疑応答 ● なにかあれば!
32.
おわり
Download