群集
7時に起床。ホテルで朝食を摂ってホテル前のシャトルバス待合の場所へ。オースティンに比べると涼しいし、風もあるのでので気持ち良いです。シャトルバスを待っている間に近くにあるビルの写真を撮りました。こういうときは17mmレンズの広角だとかなりの高さのビルの全体が簡単に撮れるので重宝します。
シャトルバスに乗って会場についてから早速、今日最初のコースである「Croud and Group Animation」の会場にいきました。コースの冒頭はVRLabのDaniel Thalmann博士によるコースの概要の説明がありました。ここで言う群集とは「同じ物理空間で共通の目的を持ち、単独のときとは違った行動をする多数の単体の集まり」として定義されています。
グラフィクス以外のさまざまな分野でも群集シミュレーションは使われており、警察や軍ではデモや暴動に対する訓練、建築学では完成後の視覚化、安全性の検証の為に建物や船そして飛行機からなど避難シミュレーションなどに使われています。
博士が携わっていたViCrowdでは群集のシミュレーションに3段階の理論階層構造を用いて実現しています。この構造は個人を表すエージェント、複数のエージェントの集まりであるグループ、そして複数のグループをプログラマブルにコントロールする層からできています。プログラムの流れとしては最初に「コンサート会場に向かう」といった群集自体の目的の簡単な記述によって各グループの大まかな流れが決まり、「親の後を歩く」と言ったグループ内でのルールを各エージェントに採用し、最後に「障害物をよける」と行った各エージェントの処理といったトップダウン形式が採用されています。
ちなみにこのプロジェクトでは群衆の状態を記述するのにPythonやLuaといったスクリプト言語が使っているとの事でした。特にLuaはアメリカのゲーム開発でのスクリプト言語として使われることが多いのでちょっと意外でした。
また、博士が現在携わっているVHD++プロジェクトでは群集の編集ツールを紹介しました。面白かったのはMayaのようなペイントツールがあり、ペイントすることによって自動的に群集を配置し、さらに感情スプレーと名づけられたツールでは「喝采」といった情報をスプレーで描くようにするとそこにいる人達が立ち上がって拍手するアニメーションが再生されるようになるといったものでした。
このツールによって短時間で簡単に複雑な群集シーンを作ることができるようになっています。
続いてMassive SoftwareのStephen Regelous氏による「Antonemous Agent」では映画で実際に使われているツール、Massiveの紹介がありました。Massiveはロード・オブ・ザ・リングス 王の帰還の軍による戦闘シーン使われているツールとして有名です。映画で使われるツールの特徴としては自然な群集シミュレーションをしつつも「ここで人がカメラに向かって吹き飛ばして」といった細かい指定ができる事があります。こういった要求を一般化するのは大変なので、カット毎にエージェントの振る舞いを変更することで対処するとのことでした。
このツールで感心するのは、群集シミュレーションはもちろん、アニメーションや物理シミュレーションまで入っているので、これを一から作るのには大変な労力が掛かっていると思われます。
群集の動き自体にはFlockingやA-Lifeをベースとしたものが使われていて、各エージェントの振舞いのコントロールにはファジー理論が使われています。これらはゲーム開発でもおなじみのものだったりするので先ほどのLuaと合わせると意外に群集シミュレーションはゲームと映画との差は少ないのかもしれません。他のゲーム開発者も同意見のようでゲーム開発でも使いたいという声が質問の中で幾度かあがっていました。
最後にLurent Kermel氏による「Crowds in Mdagascar」ではPixerで使われているMobツールの紹介でした。10万人規模の軍隊を表すことのできるMassiveとは対照的にMadagascarでは多くても数百人(匹)という群集ですが、その代わりに個人個人のディテールが必要でアニメーションやキャラクタの表情なのを表す必要があります。
アニメーションではゲームと同じように立ちポーズ、歩く、走るといった、細かいアニメーションがあり、それぞれにいくつかのバリエーションをアニメーターが製作、そして最後にプログラムで立ちポーズから歩くといった補間などをして大量のアニメーションパターンを作っています。
また指定した注目点に目を向けて表情を表したり、レンダリングに時間がかかる毛は遠くの動物をレンダリングする時はFurシェルと言われる処理の軽いものを使ったりと、やってること自体はゲームで使われてる技術と大差ないものでした。
群集を配置するときに、ただランダムに配置するのではなくカメラから見たときになるべく隙間がないように配置することで少ない数でも、多くいるように見せるというテクニックは単純な発想ですが効果が高そうです。

左からStephen Regelous氏、Lurent Kermel氏、Daniel Thalmann博士
コースを終えて思ったことは紹介されていたどの技術もそのままゲームに通用するものばかりなので非常に有意義なコースでした。特に次世代ゲーム機では単に沢山の人を表示するだけでなく、どうやって説得力のあるリアルな振舞いを表現するかが鍵になるので、そういったシステムを実装する人にとっては必須なコースだったと思います。


