aiming 開発ゲームの裏側
TRANSCRIPT
Aiming 開発ゲームの裏側
株式会社 Aimingリードソフトウェアエンジニア
牧野 克俊
今日のテーマ
幻塔戦記グリフォンがどう作られているかざっと話しつ
つ振り返ってみる
目次1. プロジェクトの概要2. グラフィック3. メモリ使用量4. ユーザインターフェイス5. リソースのダウンロード6. Unity への要望
1. プロジェクトの概要
プロジェクトの概要• オンラインアクションゲームの開発• スマートフォン( iOS,Android )で遊べる– 動作端末の目安は iPhone4S 程度
• 開発期間は約1年2ヶ月(リリースまで)
メンバー構成• MMORPG やブラウザゲームの開発経験が
あるメンバーが中心• 人数– 企画:6人– プログラマ:9人• クライアント5人、サーバ4人
– グラフィッカー:10人 + α
2. グラフィック
基本ルール• 最初に決めたルール– Drawcall は 50 を目安– リアルタイムライティングなし– テクスチャは可能な限り小さく
グラフィック(キャラクター)• パーツをプログラムで結合– 髪の毛、顔、上半身、下半身、右手武器、左
手武器• テクスチャは 1024 * 1024 を 1 枚– 結合後に収まるようにパーツを割り振る
• ポリゴン数は約 2000– パーツによっては増減有り
グラフィック(キャラクター)
グラフィック(モンスター)• ボス– テクスチャサイズは 512 * 512– ポリゴン数は約 3000
• ザコ– テクスチャサイズは 128 * 128– ポリゴン数は約 500 〜 1500– 一度に十数体出現する
グラフィック(モンスター)
グラフィック(背景)• テクスチャ– 1024 * 1024 を約 2 枚– 1024 * 1024 ライトマップ 1 枚– 512 * 512 マップ上のオブジェクト用
• ポリゴンは数千程度– 基本的に板です
• 可能な限り α で抜かない
グラフィック(背景)
グラフィック(エフェクト)• パーティクルで作成• テクスチャは複数のエフェクト間で使い
回している• 半透明、加算がやっぱりきつい
グラフィック(エフェクト)
グラフィックを振り返って• 描画速度は良好• キャラクター構築の負荷が高い• スキニングの負荷が高い– ポリゴン数が多いと特に顕著
• エフェクトの描画負荷– 数が多いのでカリングをした
• エフェクトのロードタイミング– 初めてエフェクトが発生するときに読み込んで
いるがいまいち
3. メモリ使用量
メモリ使用量• 全体の使用量目安– 200 MB 程度
• おおよその内訳– メッシュ: 3 MB– テクスチャ: 40 MB– アニメーション: 10 MB– サウンド: 10 MB
メモリ使用量を振り返って• ガベージコレクト– プレイ中に関しては問題になっていない– シーン切り替え時や大量のリソースをアン
ロードしたときには結構時間がかかる• Animation.AddClip でもりもりメモリ使わ
れた– 登録してある Animation 自体を複製
4. ユーザインターフェイス
ユーザインターフェイス• NGUI を使用• 基本ルール– 位置はアンカーを使って指定– 縦の比率を基準にスケール
ユーザインターフェイス
ユーザインターフェイス• ワークフロー– プログラマがモック作成(機能のみ入ったも
の)– グラフィッカーが見た目、位置等修正
• スクリーンサイズによって重ならないようにするのはグラフィッカー頼み
• 日本語はビットマップフォントを使用
ユーザインターフェイスを振り返って
• NGUI はまあまあ良い• パネル間の優先順位付け• ビットマップフォントでは文字数が足り
ない– チャット、掲示板等自由入力以外は問題ない– ダイナミックフォントにしたい
5. リソースのダウンロード
リソースのダウンロード• アセットバンドルを使用– 現在総ファイル数約 2000!
• LoadFromCacheOrDownload を使用• 設定ファイルはアセットバンドル化して
いない• Editor 上では Resources.LoadAssetAtPath
を使うようにしている
リソースのダウンロード• AssetBundle の分け方– 背景:クエスト単位– モンスター:1体–装備:1個– アニメーション:職業– サウンド:1曲( SE はまとめている)– エフェクト:同テクスチャ– UI :アトラス単位
リソースのダウンロードを振り返って
• ダウンロード時間が長い– エリア解放等のタイミングに合わせる形で分
割してはいるものの・・・• アセットの更新判断– 限りなく自己申告に近い・・・– テクスチャからどのプレハブで使われている
かが探しにくい
6. Unity への要望「こうなったらうれしいなー」
Unity への要望• Mono のバージョン上げて欲しい!–非同期処理関係の強化
• アセットバンドルを再設計しませんか?– バージョンごとの互換性– キャッシュの仕組み– もともとあくまで WebPlayer 用
ご清聴ありがとうございました!