ダイキンCGユーザー事例セミナー2012 秋でサイバーコネクトツー(CC2)の Unity を使用したスマートフォンゲーム(※)開発事例を聞いて来ました。
※「ギルティドラゴン」というゲーム
ゲーム映像CGソフト:イベント・セミナー:ダイキンCGユーザー事例セミナー2012 秋:ダイキンCOMTEC
http://www.comtec.daikin.co.jp/event/cg_sem.html
講演で使用したスライドは後日アップし、 Facebook の「Unity助け合い所」で URL を告知すると言われていました。
(2012/11/14 追記)
スライドが公開されました。
Unityを使用したスマートフォン開発事例 〜ギルティドラゴンのアートワーク〜
http://www.slideshare.net/cc2_ss/guiltydragon-artwork
(追記ここまで)
当初はインフィニティブレード系のハイエンドを想定 → ヘビーユーザー向けになりすぎてしまう
ノーマルマップはメモリ消費が大きい
↓
ディフューズ + Litライトに変更
選んだ理由
1. 短期間でクオリティも出したい
2. 絵を出すまでが簡単。アーティストでも操作が可能なのでアーティストがUnity上で確認可能
3. モバイルへの対応
自分たちの持ち味(CC2らしさ)をどの様にして出すか
開発環境
プログラマはMacベースで開発
アーティストはWindowsベースで開発
Unity 3.5.6
検証をしつつ常に最新のバージョンにて開発
DCCツール
3ds Max
バージョン管理
SmartSVN
プログラマ、デザイナー、サーバプログラマなど含めて 12〜18名 で開発
3dsMaxで制作したもの
- キャラモデル
- 背景モデル
- デモシーン
カメラ、エフェクトはUnity上で
キャラモデル
キャラメイクをするのでパーツごとに分割して作成
■ポリゴン数
髪:500-2000
顔:500-1000
上半身:1500-2000
下半身:1500-2000
武器:1000
追加アイテム:500-2000
全体
3500-7000ポリゴン
■揺れもの
Unityで設定
- CharacterJoin
- ボックス型のコライダ
- カプセル型のコライダ
モデルのボーンに設定
設定
- シンプルな構造
- 破錠しないように
- 干渉への対処は角度制限
ランプシェードとリムライトの組み合わせ
リムを減算にしたり、数値を変更する事でバリエーションを出す
アーティスト側がUntiyで大まかに作ったものを最適化
1つのシェーダをUnityのインスペクタ上で調整
プログラム側でシチュエーションに合わせて適用
背景
- バトル用の背景
- 1種類x4パターン
- 闘技場
- 昼/夕/夜/雷雲
冒険用の背景
- 4種類x3パターン
- 街/草原/森林/荒野
- 昼/夕/夜
- カキワリ状に前面のみ作成
- 近景、中景、遠景の3層準備、それぞれのスクロール速度を変更
アニメーション
3dsMax上で作成
アニメーションカット毎に出力
ボーン情報のみ使用
ものによってはエフェクトの軌跡などをUnityで使う
カメラアニメーション
カメラアニメーションをFBXで出力
通常はFBXではカメラのアニメーションを出力出来ない
↓
エクスポータ、インポータを自作
開発上の問題点と解決方法
開発における問題点
1. カメラアニメーションのインポート
2. 外部データ(AssetBundle)の作成方法
3. 描画負荷
4. 解像度
5. iOS/Android固有の問題
カメラのアニメーションを簡単にFBXとして出力してUnityに持って来たい
↓
- インポート、エクスポートするツールを作成
- ボックスを配置し、その座標を使う
問題:Unity上で外部データを簡単にエクスポート出来ない
ツールを作成
シンプルなエクスポーター
一覧から出力したものをチェックすればエクポート出来る様に拡張を作成
問題:ハイクオリティな表現は描画負荷が大きい
こまめなリダクション作業
- 各端末で繰り返しチェック
- モバイルシェーダの利用
- シェーダの軽量化
- モデルやテクスチャの軽量化(テクスチャサイズを小さいものに変更するなど)
- (揺れものなどの)コリジョンの設定を変える
- 自前のシェーダ部分は精度を下げる
良かった事
3dsMaxを利用したワークフローをスマートフォンへ
内部データと外部データ(AssetBundle)
- 外部データの読み込みに時間がかかる
- 内部データと外部データのバランス
QA
Q:2DのUI部分はどの様に作成したのですか?
A:NGUIなどは使用してない。プログラマが自作
Q:Unity上でのエフェクトについての質問。加算や乗算などで前後関係の面でちらつく事が有るのですがその様な症状はどの様に対応されていますか
A:アルファを含んだものは使ってない。基本、加算する。カメラの前にエフェクトを付けて擬似ポストエフェクトの様な使い方も
Q:AssetBundleをどの様な単位で切り分けしたか
A:大きな部分はシーンごと。武器などのパーツはプレハブ毎にBundle化。カード類も同様。
Q:シーンはどの様な単位で切り分けしたか
A:ゲーム画面中に表示されるタブバーのアイコン単位ぐらいで分割した