オススメ機能
Twitter
お気に入り
記事履歴
ランキング
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[GDC 2012]次世代Unityはアニメーションシステムが大幅進化。「ステートマシン」と「ブレンドツリー」でアニメーションはどう変わるか
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2012/03/08 10:00

ニュース

[GDC 2012]次世代Unityはアニメーションシステムが大幅進化。「ステートマシン」と「ブレンドツリー」でアニメーションはどう変わるか

 GDC 2012の2日めとなる北米時間2012年3月6日には,ゲームエンジン「Unity」関連のセッションを丸一日かけて行う「Unity Day」が開催された。
 その第1弾となったのが「Creating Retargetable Animation Assets with Mecanim in Unity 4.0」(Unity 4.0のMecanimでリターゲット可能なアニメーション資産を生成する方法)という講演で,Unity Technologies(によって買収されたアニメーション技術企業であるMecanim)が現在開発中のキャラクターアニメーションシステムを技術プレビューとして示したものになる。
 朝一番から立ち見が出る盛況ぶりだった本セッションの内容をまとめてみよう。

セッションではUnity TechnologiesのRobert Lanciault氏とPierre-Paul Giroux氏が登壇した


リターゲットを含め,アニメーション周りが

大幅に強化される次世代Unity


 さて,アニメーションにおけるリターゲットとは,リファレンスとなるキャラクターの動きをほかのキャラクターに適用することを指す用語だ。通常,同じ関節構造を持ったキャラクターに適用される。
 もっとも今回,セッションタイトルに出てくるリターゲット関連の話はあまり多くなく,Unityで作られているキャラクターアニメーションシステム自体についての説明が主体だった。「Unityのシステムで制御されるアニメーションは,簡単にリターゲットできるよ」ということを,Unity Technologiesは伝えたかったのだと思われる。

リターゲットによって,違うキャラクターに同じ動きをさせている例
Unity Unity

オブジェクトのInspector画面
Unity
 肝心のアニメーションシステムはブレンドツリーを使ったものとなっており,今回は,キャラクターに「ステートマシン」を導入し,状態によって動きを管理しようという試みが示された。要するに,「キャラクターごとにいろいろな発動条件を指定した多くのモーションを,枝分かれした木のように登録しておき,キャラクターと環境の状態から最も適切な動きを選択して再現するもの」と思っておけばいいだろう。このとき,条件が中間的な状態にある場合は,モーションをブレンドして最適な動きを実現するというあたりが,ブレンドツリーと呼ばれるゆえんである。
 モーションキャプチャなどで作られたアニメーションパターン同士をつなぐ,いわゆるトランジション部分を自動的に生成してくれるものとなっているわけだ。

条件の指定例。左(Greater−Speed−0.1)は速度が0.1より大きかったらIdle状態から走りに移行する設定になっている。右は,条件部分の選択肢をクローズアップしたもの
Unity Unity

 セッションは,開発中のツールを使った操作と動作の実演が中心で行われたが,印象的だったのは,「キャラクターがどういう状態にあって,どういうモーションが選択されているのか」という「動きの遷移」をリアルタイムで確認できる様子が示されていたこと。Unityにおいて,Inspector部分で実行時の各種パラメータを確認できるのは珍しくないのだが,数値の変化だけではなく,「どの枝分かれが選択されているのか」が,リアルタイムかつ視覚的に表示されているというのは面白い。

実行状態に合わせて,「どのツリーが選択&ブレンドされているのか」がリアルタイムで表示される
Unity Unity Unity
Unity Unity Unity

 ブレンドツリーは,比較的高度なアニメーションシステムで使われるものだが,Unityのプレファブ(Prefab,プレハブともいう)機能とも相性がいいように思われる。基本的な動きをするプレファブと,特定のルールによる動きなどとを組み合わせて継承させれば,複雑な挙動をするキャラクターを比較的手軽に作れそうだ。これがゲームエンジンの標準システムに組み込まれることになると,いろいろ楽しそうである。

 基準となるキャラクターのボーン数は最低50個程度とのことだが,キャラクター制御のところで,「関節」ではなく「筋肉」という表現が多用されていた点はちょっと気になった。たとえば可動範囲の場合,「関節の動く範囲」ではなくて,「筋肉の動く範囲」という設定になっていたのだ。おそらく,UnityのInspectorで使いやすくなるよう,1次元のデータに落とし込んであるのだろう。

筋肉をスライダーで操作すると,キャラクターが動く。右のスライドを見ると,可動範囲が「筋肉の動く範囲」で設定されていることが分かる
Unity Unity

Unityのアニメーションリファレンスキャラクター「DudeAvatar」における当たり判定。身体の各部に設定されている
Unity
 ちなみに,現行世代のUnityでは,キャラクター制御用に「Character Controller」というものが用意されている。Character Controllerでも,「歩く」「走る」「跳ぶ」などに対応したアニメーションファイルを所定の部分に登録すれば,比較的簡単にゲームキャラクターを実装できるのだが(関連記事),次世代のUnity 4.0では,相当な規模でこのあたりが強化されるのだと考えてよさそうだ。
 Character Controllerでは,カプセル型をした,簡略化版の当たり判定エリアが用いられているのだが,本セッションのデモだと,当たり判定はちゃんと手足の各部で取られるようになっていた。

 ここで,キャラクター制御がどのように実装されているのかの説明があったので紹介してみよう。今回のセッションでは,「左に曲がる」「直進する」「右に曲がる」といった3つのアニメーションパターンが,下に挙げる定数設定で用意されている。

  • TurnLeft −1
  • Run 0
  • TurnRight 1

 そしてこのとき,キャラクターの進行方向を示す「Direction」という変数を−1〜1の範囲で変化させると,キャラクターの進み方を細かく調整できる,というわけである。たとえばTurnLeftの変数を−0.6に設定すれば,左に曲がる成分6割,直進成分4割となり,0.2に設定すれば,右に曲がる成分2割,直進成分8割となる。Directionの設定値に合わせて,ブレンドされたアニメーションが生成されるのだ。

実際に行われたデモより
Unity Unity

 なお,右旋回と左旋回は同じパターンのアニメーションに「Mirror」指定を加えて“2通り化”した実装になっている。ループアニメーションを自動生成して,始点と終点を滑らかにつないだり,アニメーションパターンを編集したりする機能も備えているとのことだった。

アニメーションの不連続な部分を削って(左),滑らかな動きに(右)
Unity Unity

 また,キャラクターが走っていて,目の前に障害物があるときに「Jump」という論理変数がTrueになった場合,追加の条件によっては,手を使って乗り越えたり,大きな壁ならよじ登ったり,低い障害物なら飛び越えたりといった動作が自動的に選択され,直前の状態と適切にブレンドされた,滑らかな動きで対応できる。そうやって作った「アニメーションキャラクターの原型」を,リターゲットによってさまざまなモデリングデータに適用可能というわけなのだ。

Unity Unity
飛び越えたり,手を付いて宙返りしたりと状況によって動きが変わる
Unity Unity
「Exit Time」が0.9でJumpがTrueだったときに移行する例。スクリプトには簡単なプログラムが設定される

 以上,細々と説明してきたが,ムービーを見てもらったほうが早いかもしれない。ぜひチェックしてみてほしい。


物理エンジンのレイヤーを重ねることも可能
Unity
 Unity Technologiesでは現在,物理エンジンの統合,つまりアニメーションシステムとラグドールなどの動きを組み合わせる作業が行われているという。
 セッション中に示された動作デモだと,開発途上版ということで,まだ一部おかしなことになるところもあったが,完成すれば,多くの局面に対応できるシステムとなるはずである。

 多くのプラットフォームで使われているゲームエンジンだけに,機能強化は無条件で歓迎したいところだ。早期の完成に期待しよう。

キャラクターのブレンドツリー例。ここまで作り込める
Unity Unity
Unity Unity

Unity Technologies公式Webサイト

  • 関連タイトル:

    Unity

  • 関連タイトル:

    ミドルウェア/開発ツール

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
トピックス
スペシャルコンテンツ
注目記事ランキング
集計:11月16日〜11月17日
タイトル評価ランキング
81
KENGOHAZARD2 (PC)
76
鬼ノ哭ク邦 (PC)
74
2019年05月〜2019年11月