More Related Content
Similar to Unity での asset bundle による追加コンテンツの扱い方 (20)
Unity での asset bundle による追加コンテンツの扱い方
- 7. Unity3D の特徴
● モバイルに強い
○ iPhone, Android対応
● 安い(ゲームエンジンとしては)
○ スタートアップのリスクが低い
● オープンな文化(開発元もユーザーも)
○ 情報や便利ライブラリが手に入りやすい
● C#でスクリプトが書ける
○ .Net便利
● AssetBundle
○ 追加コンテンツが作りやすい
- 10. スマートフォンゲームの特徴
● インストール時のサイズ制限(50MB)
○ サイズが大きいとwifiじゃないとインストールできなくなる
● 通信回線が細い
○ ダウンロード待ちが長いとゲームから離れてしまう
● 競合するアプリ(ゲームその他)がたくさんある
○ 続けてもらうために継続的なアップデートが必要
● ストア等の審査がある
○ iPhoneの場合、リリースまでに10営業日前後かかる
○ 審査の間、埋め込みリソースは変更不可能
- 17. ● 特徴・できること
● 実装注意点
○ 1.メモリ消費
○ 2.非同期読込
○ 3.通信状況悪いと読み込めない
○ 4.iPhone、Android で別フォーマット
○ 5.キャッシュ
○ 6.スクリプトは消える
● Editor Tips
○ 1.素材取り込み時の自動コンバート
○ 2.自動書き出し
○ 3.プラットフォーム切り替え短縮
- 18. 特徴・できること
● Unity 専用の外部素材フォーマットのこと
● GameObject、Material、Texture、Prefab など
Unity で使える Asset なら大体入る
● サーバーに配置、アプリから HTTP アクセスで
読み込む
● AssetBundle の作成は Unity Pro Only
● ストアの審査なしでリリース可能
● ダウンロードファイルのキャッシュが効く
- 20. 実装注意点 1.メモリ消費
● AssetBundle のインスタンス分多くなる
○ 同時に使わないものはファイル分ける
○ 使わなくなったら解放しよう
memory
www
Material,GameObject,etc.
AssetBundle
Load クラス Load
- 21. 実装注意点 2.非同期読込
● 最初から非同期前提に組もう
○ WWW.LoadFromCacheOrDownload で読み込んでから
WWW.assetBundle でアクセス
○ Resources.Load のように同期的には読み込めない
○ キャッシュから読み込む場合でも非同期だからね
● 参考
○ ロードオブナイツで使った非同期デザイン
■ http://www.slideshare.net/ppcchan/async-design-
with-unity3d
- 24. 実装注意点 5.キャッシュ
● 自動キャッシュの仕組みがある
○ WWW.LoadFromCacheOrDownload
○ ファイルごとにバージョンを指定して使う
■ バージョンでダウンロードかキャッシュかを自動判別
● サーバー側のキャッシュに注意
○ ファイル名の後ろにクエリストリングでタイムスタンプなど
をつけてサーバーキャッシュ無効化するべし
■ 例 http://www.foo.com/foo.asset?time=20121028
- 25. 実装注意点 6.スクリプトは消
える
● スクリプトは AssetBundle に入れられない
○ iPhone ではコードの動的生成 NG だから
● 読み込んだ後にプログラム側で追加は可能
○ アプリ本体側に事前にスクリプトを入れておき、
GameObject.AddComponent で読み込んだ
GameObjectに動的に追加する
- 28. Editor Tips 2.自動書き出し
● Editorスクリプトでカスタマイズ可能
○ BuildPipeline.BuildAssetBundle
● コマンド一発でサーバーに配置できるフォルダ
構造で書き出し出来るようにすると便利
- 29. Editor Tips 3.プラットフォー
ム切り替え短縮
● ビルドプラットフォーム切り替え時はテクスチャ
の再圧縮で数時間かかることも
● AssetServer !!
○ AssetBundle の書き出し用PCに入れておくとビルドプラッ
トフォームの切り替えが一瞬で終わる
○ AssetServer 1人分は必須