Unity * スマートフォン開発で学んだこと
-
Upload
katsutoshi-makino -
Category
Documents
-
view
12.723 -
download
1
Transcript of Unity * スマートフォン開発で学んだこと
Unity × スマートホン開発で
学んだこと
Lead Software Engineer牧野 克俊
2012/10/28
自己紹介
自己紹介
• 牧野 克俊–オンラインゲーム開発を8年ほ
どやってきました–PC 、コンソール〜ブラウザゲー
ム–クライアント〜サーバまで担当
会社紹介
Aimingとは
タイトル
Lord of Knights(iOS / RPG ストラテジー)
タイトル
タイトル
剣と魔法のログレス ( ブラウザ/ MMORPG )
タイトル
タイトル
Blade Chronicle(PC / MMORPG )
タイトル
タイトル
RPG 三国志(PC / MMOROPG )
クイーンズブレイドTHE CONQUEST
( ブラウザ / RPG ストラテジー)
はじめに
はじめに
• チームは PC オンラインゲームの開発経験が多い
はじめに
• チームは PC オンラインゲームの開発経験が多い
• 初めてのスマートホン開発
はじめに
• チームは PC オンラインゲームの開発経験が多い
• 初めてのスマートホン開発• Unity を使って開発
はじめに
なぜ Unity ?
はじめに
• マルチプラットフォーム対応必須!
• 研究開発大変そう・・・
はじめに
• いろいろ検討した結果・・・
はじめに
はじめに
• Write Once, Run Anywhere
Program/Resource
はじめに
• 低レイヤー層を吸収
Unity
Application
Graphic Sound IO
はじめに
• 拡張可能
Unity
Application
Graphic Sound IOExtend
はじめに
• 比較的安価
はじめに
• チームは PC オンラインゲームの開発経験が多い
• 初めてのスマートホン開発• Unity を使って開発
開発中に起こった事例を紹介します
1. ファイル管理
ファイル管理
Unity 推奨は「ファイル管理は
Asset Server を使ってください」
ファイル管理
でも・・・
ファイル管理
「いつも通り Git(Subversion)で
いいよね?」「 Asset Server お金かかかる
し」
ファイル管理
実際やってみると・・・
ファイル管理
「テクスチャがはられてないよ?」
「 Prefab がおかしいよ?」
ファイル管理
あれ?
ファイル管理
meta ファイルのコミットを
忘れている!
ファイル管理
なんとか防げないかな・・・
ファイル管理
• Git(Subversion) フックスクリプト–pre-commit hook でチェック
ファイル管理
• Git(Subversion) フックスクリプト–pre-commit hook でチェック
•対応する meta ファイルがない
•meta ファイルだけ存在する
ファイル管理
Git(Subversion) でファイル管理できます
ファイル管理
でも正直・・・
ファイル管理
Asset Server の導入をお勧めします
2. 動作確認
動作確認
「 Editor 上ですぐに動作確認できるから楽だねー」
動作確認
そろそろ実機で確認してみるか・・・
動作確認
「あれ動かないよ?」「 Editor 上と見た目が違う
な・・・」
動作確認
• スマートホンで動かない–メモリの使い過ぎ–使えない関数、機能がある–GPU の違い–トランポリンサイズの違い
動作確認
• 画面サイズの違いによる違和感–UI の大きさ–指で隠れてしまう
動作確認
実機確認を簡単にできるようにしないと・・・
動作確認
• 開発機として Mac を増やす• 自動ビルドの活用
動作確認
• 開発機として Mac を増やす–iOS アプリ作成できるのは Mac
だけ–Android アプリも作成できるの
で スマートホン開発では Mac おすすめ
動作確認
• 自動ビルドの活用–Jenkins でパッケージ (.ipa.apk)
作成–生成されたパッケージを取って
きてデバイスにインストール
動作確認
• さらにテスト時は–Web からワンタッチでインス
トール<a href="itms-services://?action=download-manifest&url=http://***/***.plist></a>
動作確認
• iOS アプリのビルドは面倒• 自分で頻繁にビルドしなくて
も良い環境構築を
3. データ設定
データ設定
「 UnityEditor で全部設定できるようにしようか」
データ設定
• オブジェクト配置• 敵の配置(ポップ位置の指
定)• イベント配置• パラメータ設定
データ設定
「シーンをまたいだ設定がやりにくい・・・」
「一覧性が悪い・・・」
データ設定
• オブジェクト配置• 敵の配置(ポップ位置の指
定)• イベント配置• パラメータ設定
データ設定
最終的にパラメータ系は Excel(Google Spread Sheet) で設定
データ設定
• UnityEditor で設定–レベル内で完結するもの–配置位置
• Excel で設定–バランスを取るために一覧する
必要があるもの
4. パフォーマンス
パフォーマンス
「スマートホンは非力だからポリゴン数には気をつけよ
う」
パフォーマンス
あれ?速度でないぞ・・・
パフォーマンス
スマートホンではポリゴン数よりも Drawcall
数が重要だった!
パフォーマンス
• iPhone 4 はこれでほぼ同じ FPS–2400 ポリゴン Drwacall 400–50000 ポリゴン Drwacall 200
パフォーマンス
Drawcall をどう減らす?
パフォーマンス
• マテリアルの共通化–テクスチャのアトラス化
• キャラクタのメッシュ、テクスチャをプログラムで結合
パフォーマンス
Drawcall 数を減らしたのにまだ遅い・・・
パフォーマンス
フィルレートが問題だった!
パフォーマンス
• iPhone 4 で全画面を覆う半透明テクスチャを重ね合わせてみた–背景 +2枚をオーバーレイで FPS
16
パフォーマンス
どうやって減らす?
パフォーマンス
• ライティングなし–ライトマップのみ–ピクセル(フラグメント)シェーダはシンプルに
• α で抜くのではなくポリゴンで形状を作る
• レンダリング解像度を減らす
パフォーマンス
• Drawcall 数を減らす• Overdraw 面積を減らす
4. 通信
通信
「 3G 回線だから慎重に作ろう」
通信
• 3G 回線に対するイメージ–帯域が狭い–レイテンシが大きい–すぐ切断される
通信
10 年前のネットワーク環境のつもりで
通信
大きな問題は出ていない!
通信
• あえて注意するとしたら–スレッドはやめた方がいい–必要以上に通信しない
通信
通信をヘビーに使うゲームはまだ未リリース・・・
最後に
最後に
• なんだかんだで Unity 便利です!
最後に
• なんだかんだで Unity 便利です!• スマートホンはやっぱりまだ非力
最後に
• なんだかんだで Unity 便利です!• スマートホンはやっぱりまだ非力• 通信はあんまり怖くない