イベント
Autodesk MayaとUnityを連携させたグループ開発のデモを披露 〜Autodeskセミナーレポート
2011年に急激に採用を増やしたUnity
Unityは,モバイル機を含む各種プラットフォームに対応でき,またC#やJavaScriptといった簡易な言語でもゲームが開発できるという新世代のゲームエンジンだ。4Gamerでも過去に何度か取り上げているが,最近になって急激に採用例を増やしている。そんなUnityが取り上げられるということで,今回のセミナーの定員はあっという間に埋まってしまい,会場では急遽会場内サブ会場(?)を作って対応したというほどの人気だったようだ。
セッションを担当したUnity Technologies Japanの大前広樹氏が,冒頭,Unityの概要と現状を紹介したのだが,その中で2011年にUnityのセールスは前年比1496%もの伸び率を見せていることが示された。日本は,米国に次ぐ世界第2位のUnity大国になったそうだ。また,Unity Proのライセンスを受けている日本国内の企業は300社を超えているとのこと。
逆に言うと,2010年にはまだUnityはさほど注目されていなかったということにもなりそうだが,おそらくはスマートフォンの伸びとともにモバイルの2大OS……iOSとAndroidに対応できるUnityが伸びたのだろう。3Dグラフィックスソリューションを手がけるAutodeskにとっても,Unityは一大マーケットになりつつあるわけで,今回のセミナー開催となったわけだ。
「Mayaとは? Unityとは? その連携について」と題されたセッションは,各ツールの導入編的な内容で,Autodesk MayaをはじめとするAutodeskのツールとUnityを連携させ,キャラクターがマップ上を移動するデモを作成するところまでを実演していた。どのようなデモが作られたのか,まずは動画を見ていただきたい。
セッションでは,Autodeskでソリューションエンジニアを務める長谷川真也氏がAutodeskのツールの操作と解説を担当。「Unityアセットサーバー」――Unityのバージョン管理システム――上のデータ(アセット)を更新し,大前氏がUnity側からサーバー上のデータを取り込んで操作を説明するという形で行われた。つまり,Unityアセットサーバーを使ったグループ開発の実践デモにもなっていたわけだ。
AutodeskのツールとUnityを連携させ,効率の高い開発が可能
という具合に,AutodeskのツールとUnityを,Unityアセットサーバーを介して行き来しつつデモの制作が進められたわけだが,まず披露されたのがマップ上に石像を置くという作業である。マップに配置する石像を「Autodesk Mudbox」という3Dツールを使って加工していく。
石像は写真のようなもの。「Autodesk Mudbox」上でテッセレーションを行い写真では約130万ポリゴンのモデルになっているが,数段階のディテールのレベル(Level of Detail)を作成しているという。ポリゴンを増やすサブディビジョン,あるいはポリゴンを減らすといった作業はMayaやSoftImageの機能を使うとさらに強力とのことだが,今回はAutodesk Mudboxを用いてLODを作っているそうだ。
さらに,Autodesk Mudboxは3Dスカルプティング,つまり彫刻を行う機能とペインティングの機能を持っているのが特徴。セミナーではペイントのデモが披露されたので写真で紹介しておきたい。
このようにしてMudboxで制作した石像をUnity側に取り込むわけだが,LOD付きのデータも実に簡単に利用できるという。また,カメラの距離に応じて利用するLODモデルを調節するといった作業もGUI上で行う例が示された。
続いて,キャラクターのアニメーションの適用例が紹介された。まず,Mayaに統合された「HumanIK」機能を使ったモーションの制作例である。キャラクターにHumanIKのボーンをマッピングしていくだけでモーションを作ることができる。これも写真で紹介しておこう。
HumanIKのボーンをキャラクターのボーンにマッピングしていく |
マッピングが終われば,HumanIKで動きをつけることができる。シンプルな2ボーンIKを使う例がこれで,手を引っ張るとモデルの関節が手の動きに合わせて変化する |
HumanIKにはフルボディIKも実装されており,例のように全身の動き連動させていくこともできる |
Maya上でモーションキャプチャのデータを利用して動きをつけるといったこともできるそうだが,今回のデモではモーション制作に特化したツール「Autodesk MotionBuilder」にデータを送り,MotionBuilder側でアニメーションを作る例が紹介されていた。MotionBuilderのユーザーインタフェースは,MayaのHumanIK部分とほとんど共通なので,Mayaとごく自然に併用できるという。
MotionBuilder上でモーションキャプチャのデータを,Mayaから送り込んだデータに適用する例。左側に写っているのがモーションキャプチャのデータで動くアクターで,その動きをそのままMayaから取り込んだキャラクタに適用できる |
MotionBuilderからUnityに取り込んだデータは4つの動きがつながっている。それを4つに分解する |
その1個のアニメーションファイルをUnity側に取り込んで,モーションごとに4つに分割して利用するという手順で作業を行っていた。
単にインポートしたモーションを再生してキャラクターを動かすだけなら,これで終わりかもしれないが,ゲームではプレイヤーの操作に合わせて自由に走り回ったり,カメラを動かしたり,物にぶつかったら止まったりといった制御が必要になる。
Unityでは「Charactor Controller」という機能が用意されており,そのような制御をまとめて設定できるようだ。デモではCharactor Controllerを使って当たり判定の枠を作り,さらにキャラクターに合わせて動くカメラなどを設定していた。
「Charactor Controller」でキャラクターの当たり判定の枠を作る。Charactor Controlerでは,図のようなカプセル型の当たり判定が用意されている。デモだけにやや大まかな枠になってしまっているが,表示されているキャラクターは少し斜めに立っているので,これくらいでも大丈夫とのこと |
さらに組込みのアセットにある3rd Person Controllerと3rd Person Cameraという2つのスクリプトを適用する。前者はキャラクターを動かしたい方向にコントロールできるというもの。後者はキャラクターについて動くカメラの設定だ |
以上の設定で,フィールド上で自由に動かすことができ,それに合わせてカメラが動くというゲームっぽいものができあがる |
ただ,例えばMayaのデータならすべてUnityに取り込めるのかというと,そういうわけでもないという。Mayaだけに用意されているシェーダもあれば,Unityだけにあるシェーダもあり,完全な読み込みが保証されているわけではないとのこと。また,データの利用の可否はUnity側のターゲットによっても変わるそうで,例えば,あるプラットフォームでは,このシェーダは使えないというような制限が加わるとのこと。考えてみれば当然で,PCとスマートフォンではキャラクタやアニメーションを変える必要が出てくる場合もあるのだろう。なので,ノーマルマップなどの大まかな設定はMaya上で,シェーダなどの最終的な調整はUnity上で行うのがよいだろうと大前氏は語っていた。
とはいえ,ゲーム開発では盛んに利用されているAutodeskの各種ツール群とUnityが強力に連携できることは確からしい。最新のUnity 3.5では,AIをはじめ「AAAタイトル」で使われているような技術が新たにいくつかサポートされたそうだ。さらに,具体名は伏せられたものの,国内の大手ゲームパブリッシャのタイトルにもUnityが採用されたと語っていたので,マルチプラットフォームのゲームが出てくるのかもしれない。今後のUnityの動向をチェックしておくと,いろいろと楽しめそうだ。