mobius mevius final fantasy -...

26
株式会社スクウェア・エニックス 1ビジネス・ディビジョン リードプログラマー 浜口 直樹 MEVIUS FINAL FANTASY におけるUnity開発事例 MOBIUS © 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Upload: lamlien

Post on 13-Feb-2018

235 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

株式会社スクウェア・エニックス

第1ビジネス・ディビジョン

リードプログラマー 浜口 直樹

MEVIUS FINAL FANTASY

におけるUnity開発事例

MOBIUS

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 2: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

MOBIUS FINAL FANTASYとは?

スマフォで動くHDクオリティゲームの驚きを、より多くの人に体感して欲しい。

-プロデューサー北瀬佳範のコメント-

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 3: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

モバイル端末でHDクオリティを実現するには?

ナンバリングタイトルを手がけてきたスタッフ陣が開発 © 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 4: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

MOBIUS FINAL FANTASYが目指すもの

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 5: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

今日の本題

1.大規模開発でUnityを使うときの心得

2.モバイル端末でHDクオリティの

ゲーム制作をするための心得

01/10

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 6: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

大規模開発でUnityを使うときの心得

小規模開発と大規模開発で根本的に違う

ことって分かりますか?

同じファイルを同時に触る人が増える

02/10

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 7: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

具体例 複数人が編集するデータ

アニメーションに付加されるタイムラインの例

攻撃-モーション

120フレーム

ヒット判定

ジャンプSE

トリガー

残光のトリガー

次のモーションへの補間設定

モーションセクション

プランナー

サウンドセクション

エフェクトセクション

03/10

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 8: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

Unityは複数人で同時にデータ編集するのが苦手

Hierarchyで編集する*.scene,*.prefabを

同時に複数の人が変更できますか?

HierarchyやInspectorでは

同時に編集できない

04/10

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 9: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

Unityで複数人で同時にデータ編集するための工夫

attack.prefab

Hierarchyでprefabを複製せずに、Inspectorでアセットとして依存関係を構築することができる

05/10

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

PrefabResourceComponent

motion.prefab

plan.prefab

sound.prefab

|

|------motion.prefab //モーションセクションが編集

|------plan.prefab //プランナーが編集

|------sound.prefab //サウンドセクションが編集

Page 10: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

依存関係が定義されたprefabはHookサーバーが更新する

バージョン管理ツール

モーション

プランナー

エフェクト

サウンド

effect.prefab

motion.prefab

sound.prefab

plan.prefab

commit

コミットHook

サーバー

Commitを検知して

Hookサーバーが

attak.prefabを更新

最新の依存関係が

更新されたattack.prefab

をコミット

※unityでのファイルの依存関係は

.metaに記載されているguidによって構築されているので、

UnityEditorを使用しなくても、自作のプログラムから

比較的容易にprefabを作り出すことができる。

06/10

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 11: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

Assetとして依存関係を設定するとHierarchyでの視認性が落ちる

attack.prefab内に

複製した場合

▼attack

effect

motion

sound

plan

attack

attack.prefab

アセットして依存関係を持った場合

07/10

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Inspectorでは確認できるが…

Page 12: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

結局・・・ツール作りました。 08/11

各担当のprefabの内容を

一覧で確認できる方が、

圧倒的に作業が効率が良いため

hierarchyやInspectorでは

編集をあきらめて

専用のタイムラインツールを開発

C#のdllから

UnityEditorを参照設定して、

UnityEditor. AssetDatabase

を使って、

アセットファイルの読み込み

書き出しを行う。 ※C#のguiを組み込むのは至難…

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 13: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

MOBIUSの開発環境

Maya,SI,MotionBuilder

.asset タイムラインツール

09/10

DCCツール

GUIツール

エフェクトツール

.prefab

.prefab

.prefab .fbx

揺れもの物理&IKの設定ツール

.bytes

エクセルコンバーター

.asset

.cs

Xlsの情報を記載した.asset

とアクセス用のclassを出力

.bytes

サウンドツール

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 14: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

MOBIUSのデータ確認フロー

*.prefab

*.asset

*.bytes

*.cs graphicリソース

バージョン管理ツール

Windows®64bit

Commit Hookサーバー

依存関係のあるファイルが

コミットされたら

依存関係が定義された

prefabやassetを更新する

アセットバンドルビルドサーバー

コンソールモードでUnityEditorを起動

MOBIUS規模のデータで3時間程度かかります。

定期的にリソースデータを集めて、

アセットバンドルを自動作成してくれる。

ゲームサーバー

アセットバンドルが出来上がると、

ゲームサーバー側のストレージにアップ

Android™&iOS

データをダウンロードして

ゲームを開始

10/10

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 15: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

今日の本題

1.大規模開発でUnityを使うときの心得

2.モバイル端末でHDクオリティの

ゲーム制作をするための心得

01/10

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 16: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

Unityって遅いっていわれるけど?

Unityが遅いというかC#の特性を知る必要がある。 ※Mono2.0なので要注意。

1. structはスタックに確保されるが、classはヒープなのでgcの頻度を上げる

2. 文字列操作は気をつけて, classやenum のtoString()は遅い。

3. foreachを使うとEnumrableがヒープ確保されるのでこれもgcの頻度を上げる

4. Vector演算を真面目にやるとかなりきつい・・・

02/10

最適化をしたい場所はnative化を検討すること。(MOBIUSではIkや揺れもの物理はnativeで実装)

1.Assets/Plugin にdllを置いて簡単にnative呼び出しができる #elif UNITY_ANDROID

[DllImport("libNativePlugin")]

private static extern void updatePhysicsBone(IntPtr data, float delta);

#elif UNITY_IPHONE

[DllImport("__Internal")]

private static extern void updatePhysicsBone(IntPtr data, float delta);

#endif

2.nativeとmanaged間でのデータの受け渡し

Marshal.AllocHGlobal(size);

C#はコーディングしやすいし適材適所を考えれば効率の良い開発ができると思う。

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 17: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

まずは敵を知るところから始めよう

Android™端末の上位モデルが2GB~3GBのメモリを搭載しているのに対して、

iPhone®端末の上位モデルは1GBです。

メモリ管理の仕組みがAndroid™とiPhone®で全く異なっており、

Android™はアプリがJavaで動いてるためにガベージコレクションが発生してしまうため、

ガベージコレクションを防ぐために多めにメモリを確保しておくと一般的には言われているが…

UnityはMonoで動いているためiOSでもガベコレに悩まされる…。

同スペックの端末でもiOSの方がAndroid™に比べ性能が出やすいため、

両OSに対応するアプリの場合はAndroid™先行で開発する方が失敗が少ない。

03/10

iOS

iPod touch® 5 323MB

Android™

adreno 220 543MB

iPhone® 4s 325MB adreno 225 410MB

iPhone® 5 626MB adreno 320 1059MB

iPhone® 5s 468MB adreno 330 1150MB

iPad® 第3世代 637MB mali 450 800MB

iPad® 第4世代 637MB mali T604 831MB

iPad Air® (第5世代) 450MB tegra 3 491MB

iPad mini™ 418MB tegra 4 1194MB

※あくまで計測値

iOS : 350MB~600MB

Android™: 400MB~1100MB

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

意外と知らないアプリが使えるメモリ量

Page 18: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

次にダウンロードサイズは注意しよう 04/10

最近のコンソールのFFタイトルのパッケージサイズ

FFXV 体験版 5GB LRFF 製品10GB

MOBIUS FINAL FANTASYのダウンロードサイズ

iOS Android™

パッケージサイズ 70MB(32bit,64bitのuniversal) 40MB

初回起動のDLサイズ

標準 350MB 500MB

高画質 700MB 1G

※品質はユーザーが選択可能

※開発途中の情報のため、製品では変更される場合があります。

データ量を減らすため

圧縮版のAssetBundleを使用しています。

キャリアとのパケット通信の速度制限があるため、

モバイル端末でのダウンロードサイズは意識する必要がある。

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 19: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

テクスチャ形式によってデータサイズは影響する 05/10

iOS Android™

不透明テクスチャ RGB PVRTC 4bit RGB ETC 4bit

半透明テクスチャ RGBA PVRTC 4bit RGBA ETC2 8bit

※一部ETC2の圧縮テクスチャをサポートしないGPUもあります。

アルファ付きテクスチャの場合どのGPUでも使えるように

RGBA16bitデータをもつ開発も多いと聞きます。

2048x2048 半透明テクスチャ

RGBA PVRTC 4bit = 2048x2048x4bit = 約2MB (mipmap含めると 約2.6MB)

RGBA ETC2 8bit = 2048x2048x8bit = 約4MB (mipmap含めると 約5.2MB)

RGBA 16bit = 2048x2048x16bit = 約8MB (mipmap含めると 約10.4MB)

RGBA 32bit = 2048x2048x32bit = 約16MB (mipmap含めると 約20.8MB)

※テクスチャフォーマットによってサイズは大きく異なってきます。

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 20: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

それぞれのGPUに最適なテクスチャ形式を選ぶ 06/10

不透明テクスチャ 半透明テクスチャ

PowerVR(主にIOS端末で使われている,vita) RGB PVRTC 4bit RGBA PVRTC 4bit

Adreno(QualcommがSnapdragon向けに開発したGPU) RGB ATC 4bit RGBA ATC 8bit ※Snapdragonに使われいてAndroid端末のシェア率が高い

Mali(ARM製のGPU) RGB ETC 4bit RGBA 32bit(解像度半分)

Mali(T624以降※第2世代Mali-T600シリーズ) RGB ASTC 6x6(3.6bpp) RGBA ASTC 4x4(8bpp)

Tegra(Nvidea製のGPU) DXT1(4bpp) DXT5(8bpp)

Unityだと端末情報やGPU情報が取れるので、それによって読み込むデータを切り分けることができる

SystemInfo.deviceModel

UnityEngine.iOS.Device.generation

得意とするテクスチャフォーマットがGPUで異なるため、

GPUごとにテクスチャフォーマットを指定して最終データを用意することで、

データサイズを軽減しつつ画質も劣化しにくい。

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 21: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

しかし…デザイナーが管理する画像データは1つにしたい 07/10

GPUごとにテクスチャフォーマットを変えたいけど、

デザイナーがフォーマットごとにデータを用意してほしくはない。

Texture.tga Texture.dds

Texture.atc Texture.pvrtc

Texture.astc

管理が複雑になる・・・

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 22: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

Unityで出力用の画像フォーマットを指定できるが… 08/10

現状Unityで対応しているのはプラットフォームに対して指定できるフォーマットは1つ。

・iOSはpvrtcのみでよいので問題ない◎

・Andorid™が複数のフォーマットを出力できないので問題△

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 23: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

アセットバンドルビルドサーバー側で対応 09/10

PowerVR

標準

PowerVR

高画質

Adreno

標準

Adreno

高画質

Mali

標準

Mali

高画質

Tegra

標準

Tegra

高画質

Mali第二世代

標準

Mali第二世代

高画質

アセットバンドルビルドサーバー GPUに合わせたアセットバンドルを作成するために、10台以上のアセットバンドルビルドサーバーが最新のデータを適切なテクスチャフォーマットに変更してアセットバンドルを作り続けている。

キャッシュをごまかすテクニック

UnityからUnityEngine.Texture2DのTextureFormatを変更するとキャッシュの

作り直しになってAssetBundleを作るたびにテクスチャのキャッシュが

作られると遅すぎて話にならない。

そこで・・・ Unityを起動してアセットバンドルを作成する

前に、自前で作成したスクリプトなどを走ら

せて、画像ファイルに付随しているmetaの

画像フォーマットを想定のフォーマットに

書き換えてからUnityを起動します。

そうすることで、各ビルドサーバーは最適な

フォーマットのキャッシュファイルが作成され

アセットバンドル作成の高速化になります。

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

Page 24: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

ShaderはGPUのバージョンによって変わってくるため、

コンソールの時のように事前にビルドしたデータをassetbundleに含めることができない。

※アプリ実行時にShaderが読み込まれた時にビルドされます。しかも遅いです…

Shaderは必ず一つにパックして初回に初期化 10/10

■シーフ.unity3d -含まれているもの一覧-

shader

texutre

mesh

skeleton

■魔道士. unity3d -含まれているもの一覧-

shader

texutre

mesh

skeleton

shaders

ResidentShaderPack. unity3d

ゲーム中に使用するシェーダを集めたパック

texture

mesh

skeleton

シーフ. unity3d

texture

mesh

skeleton

魔道士. unity3d

参照設定

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

同じシェーダを使っているのであればAssetbundleで参照設定をして、

無駄にシェーダのビルドが走らないように注意しましょう。

Page 25: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

おまけ ユニティちゃんとコラボします。

コラボ内容はまだ秘密

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.

© 2015 Unity Technologies Japan

Page 26: MOBIUS MEVIUS FINAL FANTASY - japan.unity3d.comjapan.unity3d.com/unite/unite2015/files/DAY2_1500... · MOBIUS FINAL FANTASY ... 08/11 各担当のprefabの内容を 圧倒的に作業が効率が良いため

COPYRIGHT 2014 @ UNITY TECHNOLOGIES

Text Styles

Use the TAB key to switch

between levels

Level 1 = Bullet 24 pt.

Level 2 = Bullet 24 pt.

Level 3 = Bullet 20 pt.

Level 4 = Bullet 18 pt.

Level 5 = Bullet 16 pt.

To get bullet / plain text

again, use SHIFT + TAB

Alternatively,

Increase and Decrease list

level is used instead

Q&A

なにか質問がありましたら。

© 2015 SQUARE ENIX CO.,LTD. All Rights Reserved.