2012/02/23「3DCGツールとUnityによるゲーム開発実践セミナー」レポート その2:マトリックス「Ragdoll」開発事例
ようやく書く時間が出来ました。1週間ぶりです。
前回の記事http://d.hatena.ne.jp/ikaakira/20120311/1331485160に引き続き、
Unityのセミナーレポートです。全3部のうち、今回は第2部。
コンシューマーゲームの開発なんかでおなじみのMatrix社の講演です。
本講演は、GREEから配信されているMatrix社製のAndroidアプリ「Ragdoll」を題材に、
Maya→Unityへのアプローチ手法についてお話いただきました。
自社フレームワークも持っている中で、Unityを選んだ理由、
スマホ向けにビルドするための苦労など、実践的なお話です。
https://play.google.com/store/apps/details?id=jp.gree.android.pf.greeapp3130
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
■プロジェクト
- 2011/1スタート
- 目的:短期間・低コスト・成果
■「Ragdoll」とは
■Unityを選んだ理由
■プロジェクト構成
- 初期:計5人
- プロデューサー:1(ベテラン)
- プランナー:1(中堅)
- プログラマー:1(中堅)
- テクニカルアーティスト(TA):1(ベテラン)
- デザイナー:1(新人)
※新人からベテランまで多様な配置をこころがけた。
※Unity Proライセンス使用は、プログラマーとTAのみ
- 後半、サーバプログラマとデザイナーの増員
■実際の流れ
- Unity3.4.2pro + maya2011
- モデルはNurbsからポリゴン化。やり直しが利きやすい
- キャラごとにリグをカスタマイズ。ペイントウェイトでスキン設定。
- 複雑なUIは、mayaで作成。
- 受け渡しはFBXで。
- mayaでやること
- メッシュ作成
- ジョイント
- モーション
- UI
- マテリアルの仮付け
- Unityでやること
- マテリアル
- Pysics(物理設定)
- プレハブ化(Unityのプログラムで扱えるように部品化することです)
- 腕や足などの各パーツは、原点をボディパーツの頂点にスナップできる。
- どの頂点にも。カスタマイズが面白い。
- 法線方向にスナップする。
■アニメーション
- モデル用のFBXと、アニメーションFBXを別に作成。
- アニメーション用には、モデルの変わりにロケータをつける。
- Unityでの作業
- AnimationClip(Unityで扱えるアニメーションデータ)を複製
- 元のFBXは不要になるので削除。アニメーションだけ残せる!
- データ変更の仕組みを自動化した。
■マテリアル
- マテリアルはUnity上で。
- Strumpy Shader Editorを使用。
- モバイルで使用するには重いので、手直しが必要。
- Furシェーダは別に作成。長さが調整可能。
※>Strumpy Shader Editorの参考記事。>http://www.shader.jp/?page_id=300
AssetStoreで無料配布されてるみたいですね。ノードベースのシェーダプラグイン。
■GUI
- Unity標準の「GUI Texture」は使いづらい。
- 解像度、縦横費の違いに対応しづらい
- DrawCal(描画回数)が増える。
- 「EZGUI」を使用!
- レイアウトが崩れない
- テクスチャアトラス(テクスチャをまとめること)で、マテリアルを1つに出来る。
- ボタン、スクロールリストなど豊富な機能。
※参考記事。$200もするんだ!>http://d.hatena.ne.jp/nakamura001/20110804/1312481838
※こっちも>http://blog.cshool.jp/2011/10/4090.html
■AssetBundleの使用
- 複数シーンのテクスチャをまとめて高速化を図ろうとしたら・・・
- ロードが長くなった!!
- データ更新が面倒!!
- UnityのAssetBundleを使用!
- シーン・データごとにAssetBundleを作成。
- 更新確認して、必要なものだけ追加・更新。
- アプリのビルドと、AssetBundleのビルドバージョンをあわせる必要がある。
※ここにAssetBundle関係の記事リンクあります>http://aretokore.jp/blog/2011/05/unity.html
(AssetBundle以外の記事も充実してます。EZGUIとかも)
※僕自身、これが何なのかよく分かっていませんが・・・
■フォント
- Unityでは、フォントテクスチャを2048x2048に収める必要がある。
- 「ひま字」フォントを使用。
- スプライトテキスト(使用する文字だけ抜き出す機能)は、使用しなかった。
- ユーザー独自ネームのため。
※ひま字フォント>http://www.kfstudio.net/himaji/
■ライティング
- Unityはモバイルでシャドウマップが使えない。
- Blob Shadow Projectorで丸影を実装。
- 「ピクセルライトカウント」というパラメータを減らすと、負荷が減る。
- 見た目はあまりかわらないのでオススメ!
※Blob Shadow Projectorは標準機能みたいですね>http://d.hatena.ne.jp/nakamura001/20110528/1306603307
※ここでいうラグドールは商品タイトルではなく、3D用語としてのラグドールです。
参考→http://www.4gamer.net/games/039/G003948/20080208032/
※このへん、内容はだいたい分かるのですがmayaでの具体的な設定方法は分からず・・・
※Ragdoll WizardもUnityのAssetみたいですね。>http://unity.creator.ms/unity-005.html
■シーン分け
- エクセルでパラメータ管理→マクロ→Unityに流し込む
- Subversion
- バージョン1.7以降であれば、使用に問題は無い。
■課題
- リソース管理・まとめ方は一考の余地あり。いい方法があれば教えてほしい。
- ロード時間の短縮。
■要望
- 受け渡しフォーマットの強化。
- Phisycs、マテリアル、AnimationClipなど、mayaからそのまま持ってこれれば。
- AssetBundle互換問題
- モバイルでも、CPUプロファイラが動いてほしい(よくわかんない)
■よかった事
- チーム力・開発力の向上。
- 実装までの速度アップ。再生ボタンを押すだけ!
- コミュニティ(facebook Unity助け合い所)の存在
- Unityは異例の盛り上がり!
- OPEN化!
■まとめ
- 最後に・・・
とにかく作ろう!!!
- お仕事お待ちしております。スマホ・デモ・プロトタイピングなど。
- unity_inquiry@matrixsoft.co.jpまで
■Q&A
- EZGUIのバグは?端末依存とか、ボタンの反応とかであると聞いたが?
- バグはあったが、開発上、大筋では問題なかった。
- mayaでのUI作成と、EZGUIをどう組み合わせたのか?
- ボタン挙動はEZGUIで。
- mayaのUIは、プログラムでアニメーションを実行しているだけ。
- シーンきり分けについて詳しく
- デザイナー・・・maya上でレイアウト。UnityではUIシーンを構築せずに、プレハブ化まで
- プログラマー・・・プレハブを呼び出すだけ。
- アニメーションデータが、メモリを圧迫してしまう・・・
- 複製したアニメーションクリップを動的に読み込んだり
- プレハブにアニメーションを仕込んだりしている
- FBXに入っているアニメーションデータを全て載せるのがきつい・・・
- 必要なものだけを読んだりしている。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
・・・と以上になります。
改めてまとめてみると、各要素ごとにしっかり整理されていて、
非常に分かりやすいプレゼンでした。細かなTIPSもあったりして。
会場では、質疑応答でも見られるように「EZGUI」についての質問が多かったですね。
あとはやはりアニメーションデータの持ち方はどこも苦労しているのかな?という印象でした。
Matrixさんはそんなに問題ないようなのですが、質問者さんのほうでは
なかなか解決が難しい問題のよう。時間が短いせいもあり、あまり質疑がかみ合わない感じでした。
- -
さて、残すはラスト第3部ですが、今日はここまで。
また来週にでも更新します。