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