2012-02-26
「Ragdoll」開発事例〜MayaからUnityへのアプローチ〜 レポート
先日参加した「3DCGツールとUnityによるゲーム開発実践セミナー」のレポート、2つ目です。先日のSEGAさんのレポート同様、実践的で非常に濃い内容でした。こちらのレポートもGamewatchさんの記事と合わせてご覧いただくと、セミナー内容がうまく補完できるかと思います。
- GameWatch - オートデスクとUnity、「3DCGツールとUnityによるゲーム開発実践セミナー」開催
追記:2012年2月28日(08:00)
- Insideさんにも記事が掲載されていました。写真も豊富で素晴らしいです。
講師
- 株式会社マトリックス
- コンテンツ事業部デザイン開発
- 主任
- 高崎奈美
- 株式会社マトリックス
- コンテンツ事業部技術開発課
- 杉浦祐輝
概要
2010年末からUnityを使用し開発を続けてきたノウハウと、Androidアプリ「RagDoll」開発事例
レジュメ
プロジェクト概要
- スケジュール
- 2010年末 企画提案
- 2011年1月 開発スタート
- 目標:短期間・低コスト・成果
- 早い・安い・うまいを目指したプロジェクト
ゲームの内容
- 手芸の一つ、編みぐるみ・ぬいぐるみをスマートフォンで手軽に楽しむ事が出来るアプリ
- ぬいぐるみという意味の”ラグドール”という言葉と、ゲームで利用される”ラグドール表現”を掛け合わせたタイトル
- スマートフォーンのジャイロと重力センサーと、物理演算を利用しているのが特徴
- https://market.android.com/details?id=jp.gree.android.pf.greeapp3130
チームの目標
- 早い
- 早く結果を見てもらえる
- 自社ブランドでの開発となったので、短期的に成果を見せる必要があった
- 安い
- 予算が少ない
- うまい
- やりたい事が実現できる
初期メンバー
※D = ディレクター、PL = プランナ、PG = プログラマ、GD = グラフィックデザイナー、TA = テクニカルアーティスト。
(2012年3月4日 22:40コメント欄で頂いた内容を元に修正しました。)
必要要件
- リアルに見える
- 編みぐるみ・ぬいぐるみを実際に触っているように感じる質感表現
- リアルに揺れる
- ラグドール演算
- 自由に作れる
- かわいい(必須)
開発環境
Unityを選択した理由
モデリング
モデルパーツの作り方
- 全てYupで制作
- ゲーム中に編みぐるみをエディットするため
- 手・足などのパーツは、胴体パーツの各頂点の法線方向に向く仕組み
マテリアル
- 全てのマテリアル設定はUnity上で行った
- 使用したのは、Strumpy Shader Editorアセット
- http://u3d.as/content/strumpy-games/strumpy-shader-editor/1C4
リグ
- キャラクター毎にカスタマイズ
- 版権キャラクターなどの特徴的な動きを再現
- ラグドール演算のためのデフォルトポーズが変わる場合もあるため
UI
- 通常のUIはEZGUI、リッチなUIはMayaで制作
- なぜEZGUIなのか?
- Unity標準のGUIテクスチャーでの不都合
- 複数の画面解像度・縦横比に対応が困難
- 表示が崩れる
- マテリアルがまとまらない
- 同じテクスチャを利用していてもDynamic Batchingが働かずDraw Call数が増える
- EZGUIの利点
- オブジェクトが3D座標上にセットされる
- 解像度・縦横比に依存されない
- マテリアルをまとめるとDynamic Batching が働く
- Draw Call 数軽減
テクスチャの容量削減
- Ragdollではシーン毎にAsset Bundles を作成
- ダウンロードしたAsset Bundles はローカルに保存
- アプリの起動時に更新を確認し、更新があればそのデータだけをダウンロード
- アプリの更新をする事なくデータ更新が出来る
- Asset Bundlesの注意点
シーン分け
- Unityを使った共同開発ではシーンの競合が問題になる事が多い
- Ragdollでは開発初期から気をつけていたので、大きな問題にはならなかった
- シーンを読み込んだ時に、別のシーンを追加で読み込む機能がある
- プログラマが使うシーンに、アーティストのシーンを追加読み込みする
- EZGUIを導入後問題が発生
- 対策
- アーティストはPrefabをシーンに置くのをやめる
- Prefabの用意までをアーティストの作業とする
- プログラマはシーンの追加読み込みではなく、Prefabを直に読み込むように変更
ライティング
- Pixel Light Count の最適化
- ライティングの負荷が高い場合Pixel Light Count を減らす
- 大幅な処理負荷減
- Rag Dollでは、ノーマルマップの見え方の違いもほとんど影響なし
MayaからUnityへのデータ渡し
モデル・アニメーションデータの持ち方
- アニメーションデータにメッシュを持っていると、うまく行かなかった
- メッシュを付けず、Locatorをつけると解決できた
アニメーションデータの容量削減
※Gamewatchの記事のプレゼン資料が詳しいです
- データを更新する毎に上記作業をするのは面倒
- Asset Post Processorクラスの関数を利用し自動化した
Maya・Unity以外のツール
- パラメータの編集にExcelを使用
- プランナーはUnityを使用していなかったため
- プランナーがUnityを使う場合は、パラメータを拡張して使ってもらう方が良いと思う
- Unityだけで完結できるし
- バージョン管理はSubversion
- 1.6以前
- 各フォルダに隠しフォルダで管理フォルダが作られる
- Unity上でフォルダを複製すると、管理フォルダ毎に複製され不具合が発生する
- 1.7以降
- チェックアウトフォルダのみに管理フォルダが作られるようになった
- Unityでも使いやすくなった
Unity・Mayaへの要望(Ragdoll開発で感じた両ソフトの強化要望)
- Asset Bundlesのバージョン互換性
- Unityのバージョン違いでAsset Bundlesが読めない問題を解決
- Ragdoll開発中に何度か泣かされた
- 3.5から機能が拡張されたが、モバイルプラットフォームでは利用できない
Unityを使って良かったところ
- 開発力・チーム力の向上
- すぐに絵が出るので、レビューを受けやすくなった
- ゲームを見ながら、あーでもないこーでもないと意見を交わせる
- 実装までの速度UP
- コミュニティ
- コンシューマー開発環境に比べると、開発環境・ノウハウについての情報が多い
- FacebookのUnity助け合い所に業務中に書き込んで、解決する事もあった
Unityを使って良くなかったところ
- Unityで何でも出来るわけではない
- 自動化ゆえの不具合
- Unity自身の向き・不向き
- プロジェクトに必要な遊び・表現ができない事も
- お金を動かす人は「すぐできるんでしょ?」「お安く買えるんでしょ?」と言いがち
- それを開発側はそのまま受け入れるのではなく、やりたい事とUnityを使う事の相性は見極めないとダメ
- Ragdollでは早い・安い・うまいを全て達成できていない
まとめ
- Unityは画材。作りたいものが明確でUnityに最適な内容であれば問題なく使っても良いと思う
FAQ
Q,他のセミナーに参加時に聞いた話で、EZGUIの中にバグ(ボタンの押下時のタイミング)があるらしいがRagdollではその辺りどうだったか?そのセミナーでの解決法はEZGUIの中身を見て、バグ取りをしたという事だった。
- A,同様のバグが出て、一部中身を編集して直した。
- ただ大きな問題にはならなかった。
Q,EZGUIで制作したGUIと、Mayaで制作したGUIの切り分けはどのようにやっていたか?
以上。
トラックバック - http://d.hatena.ne.jp/Aqu/20120226/1330265575
リンク元
- 37 http://d.hatena.ne.jp/nakamura001/20120224/1330056162
- 33 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCcQFjAA&url=http://d.hatena.ne.jp/Aqu/20120223/1330013483&ei=nvBKT-a1CabumAXm0qicDg&usg=AFQjCNFd5jXUVOj6OpzxYT3In2kFk5ly8A&sig2=HTj9Bv6F5YZRDAiNBc5sWQ
- 28 http://www.google.co.jp/url?sa=t&rct=j&q=ゲームの花園 hatena&source=web&cd=1&ved=0CCMQFjAA&url=http://d.hatena.ne.jp/Aqu/&ei=wlZKT-aqGojvmAXx2NmMDg&usg=AFQjCNFrlGfmi6HBfQD2n7DWZM6VCUhYJw
- 25 http://www.google.co.jp/url?sa=t&rct=j&q=CGHUB&source=web&cd=8&ved=0CE8QFjAH&url=http://d.hatena.ne.jp/Aqu/20100112/1263313093&ei=HG1KT66SHoaTiAevorCQDg&usg=AFQjCNGt5Xe3D4r_qmBoPDaUghzWKHkbqw
- 23 http://t.co/YrqMYWor
- 21 http://www.google.co.jp/url?sa=t&rct=j&q=テクニカル アーティスト&source=web&cd=43&ved=0CD4QFjACOCg&url=http://d.hatena.ne.jp/Aqu/20100123/1264237387&ei=DIRET9
- 17 http://www.google.co.jp/url?sa=t&rct=j&q=unreal development kit wiki&source=web&cd=5&ved=0CD8QFjAE&url=http://d.hatena.ne.jp/Aqu/20100511/1273600723&ei=00hKT-C_L6L4mAXNkfXxBQ&usg=AFQjCNGcFW8OrBBzSbM-GQrn3ieRNx1rZQ
- 16 http://www.google.co.jp/url?sa=t&rct=j&q=DCCツール&source=web&cd=2&ved=0CDAQFjAB&url=http://d.hatena.ne.jp/Aqu/20090908/1252432560&ei=20ZKT-3qNoePmQXNrqD5DQ&usg=AFQjCNGBGwjp9G8CRU3kYSlssC_nk8hDkg
- 14 http://virgo.hand.co.jp/cgi-bin/cbag/ag.cgi?page=BulletinView&bid=81167&gid=190&cid=&cp=blc&tp=t&dummy=1
- 14 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cts=1331031709357&ved=0CDEQFjAC&url=http://d.hatena.ne.jp/Aqu/20120226/1330265575&ei=mu5VT8OQB8GImQXGnvH3CQ&usg=AFQjCNFf5PEwSgoOW-bMqEkfvxfz2T95qA




