三次元仮想空間において自律動作するアバター - CS26

三次元仮想空間において自律動作するアバター
オブジェクト
正 健太朗
吉川 和宏
浪原 一洋
瀧 和男
神戸大学大学院自然科学研究科 神戸大学工学部情報知能工学科
神戸市灘区六甲台町
〒
はじめに
しか表現できていない。
この理由としては、各仮想空間のサーバで用い
計算機の能力の向上と、ネットワーク環境の整
られているポリゴンデータ、動作データに互換性
などの仮想空間における
備に伴い
がないことに加え、それらを種類を豊富に用意す
ベースのコミュニケーションが盛んに
三次元
ることはユーザであれサーバ管理者であれ、技術
なりつつある。以前から、大きな計算機能力を備
的にも、時間的にも困難であるからである。実際、
えたサーバに仮想空間を構築し、ネットワークに
ユーザは新たな仮想空間システムに参加する度に
より接続されたクライアントからユーザがその仮
アバターの設定をやり直す必要がある。
想空間に参加する形態のシステムは存在した。こ
また、アバターの操作という観点からでは、一
のようなシステムが実現され始めた当初は、クラ
般的にユーザは仮想空間内においてアバターを移
イアント側の計算機の能力の限界も関係して、表
動させることによって、いろいろな行動を起こす
を基本としたものが多
現手段としては 次元
ものである。しかし、その操作方法はほとんどの
かった。しかしながら、現在では廉価で、かつグ
場合、マウスなどのインタフェースを用いて逐一
ラフィックス描画性能が優れた計算機端末が普及
操作するものであり、ユーザの負荷が高い。これ
し、それにともない仮想空間のクライアントにお
は、仮想空間でのタスクの実行、コミュニケーショ
による表現を行うことが可能と
いても三次元
ンの成立を目的とするユーザにとっては本質的で
なってきた。
による表現が求められる背景には、 ない操作である。本研究では、この問題には知識
三次元
ベースを応用し、ユーザがアバターに抽象的な命
では不可能なリアリティのある表現が
二次元
令を与えるだけで、アバターがその命令を達成す
三次元
には可能であるからであるという理由
るように自律的に行動するような仕組みを実現す
がある。しかし、現在存在する三次元仮想空間シ
ることが有効であると考える。
よりも顕著に豊かな表
ステムにおいて二次元
そこで、今回は仮想空間内において自律的に行
現が実現されている例は大変少ない。例えば、仮
動するアバター「
オブ ジェクト 」の概
想空間内においてユーザの代理となるアバターの
念を提案する。これは、ポリゴンモデル、骨格モ
形状をとってみても、ユーザはあらかじめ用意さ
デル、動作データ、知識ルールというキャラクタ
れた数種類のアバターのポリゴンモデルから選択
するしかなく、アバター自身の動作も簡単な動き (アバター)を表現するデータの集合とそれらを処
理する、動作データ合成エンジン、推論エンジン
を含む概念的な活動主体である。それに加え、
オブ ジェクトが活動するサーバ、クライア
ントに必要な機能、インタフェースについて述べ、
それらのモデルについても説明する。
従来の仮想空間システム
この章では、従来のネットワーク上に実現され
た仮想空間のシステム構成と機能について述べる。
一般的に仮想空間システムは、仮想空間のシミュ
レーションを担当するサーバとユーザと仮想空間
とのインタフェースを担当するクライアントで構
成されることが多い。またこの場合、表示機能は
クライアント上に実現される。
このように、仮想空間システムがクライアント
サーバ型システムで実現されるのは、仮想空間の
実時間でのシミュレーションは計算コストが非常
に大きく、大型の計算機を用いた集中型の処理が
効率的である一方、クライアントに用いる計算機
は仮想空間に参加するユーザの数だけ必要である
ので、安価であることが望まれる。また、クライ
アント側の主な処理は、実時間での三次元描画処
理と、入出力処理であるので、それほど高価な計
算機を必要としない。
シミュレーションサーバ
仮想空間を構築するサーバでは、仮想空間に存
在するもの(オブジェクト )に対してそれらの動
作を決定するために、なんらかのシミュレーショ
ンを行っている。そのようなシステムにおいては、
厳密な物理シミュレーションは行わず、仮想空間
の表現に最低限必要な衝突判定であったり、クリッ
ピングの処理のみを行っている。
従来のシステムにおいては、アバターが使用可
能であるポリゴンデータは、あらかじめサーバに
数種類用意されておりユーザは前もってそれらの
データをクライアントに転送することによって使
用する。動作データ生成については、キャラクタの
方向転換、水平移動などの簡単な動作しか表現で
きていないものが多く、
「人間が歩く」などの複雑
な動きを実時間で表現している仮想空間サーバは
少ない。現在、このような特徴を持った仮想空間シ
、さぱり 、さぱりインターネッ
ステムには
ト上で一般ユーザに公開され、運用されている。
インタフェース・表示クライアント
クライアントに必要とされる機能としては、
ユーザからの入力をサーバに送信(アバター
動作に関する入力、チャットなどのコミュニ
ケーションに関する入力)
サーバからの送られてきたデータを表示(三
次元
表示、文字表示)
などが挙げられる。
従来のシステムの問題点
このような従来のシステムの問題点としては、次
のようなことが挙げられる。
各仮想空間のサーバで用いられているポリゴ
ンデータ、動作データの互換性がない
現在のシステムの多くは、アバターの形状ポ
リゴンデータ、動作データは、仮想空間サー
バ固有のフォーマットが使用されているため、
ある仮想空間に参加しているユーザが、別の
仮想空間に参加する場合、再度アバターの設
定を行う必要がある。
仮想空間のサーバで用いられているポリゴン
データ、動作データの種類が少ない。
アプ
これらのデータは、一般的な三次元
リケーションを用いて作成する場合が多く、こ
の作業は人的・時間的コストが大きい作業であ
る。現在は上で述べたようにサーバ毎にこの
データを用意しなければならないため、アバ
の「表
ターの形状、動きに関して三次元
現力が豊かである」という利点が十分に活か
されているとは言えない。
サーバ・クライアントのインタフェースが統
一されていない
また、クライアントが新しく追加される際の
手続き、サーバ内でのシミュレーションの枠
組みがシステム毎に異なっているため、単純
にポリゴンデータ、動作データのフォーマット
を統一しただけでは、アバターのサーバ間の
マイグレーションは容易には行えない。
仮想空間における操作が煩雑
ユーザが仮想空間に参加するのは、仮想空間
であるタスクを遂行するため(バーチャルモー
ルでの買い物)であったり、他の人とのコミュ
ニケーションである。しかし、現状のシステ
ムでは、アバターの動作(移動)に関する操
作自体が煩雑であり、ユーザは本来遂行した
い作業に集中できない場合が多い。
そこで、本研究ではこれらの問題点を解決する
オブジェクト 」を提案する。
ために、
「
オブジェクト
ここでは、我々が提案する「
オブジェ
クト」について述べる。
オブジェクトと
は三次元仮想空間で自律的に活動する行動主体で
オブジェクトの構成要素、
ある。以下に
と機能について述べる。
オブジェクトの構成要素としては、
ポリゴンモデル、骨格モデル、動作データベース、
動作合成エンジン、知識ベース、推論モジュールが
ある。それぞれについて、次節より詳しく述べる。
ポリゴンモデルと骨格モデル
ポリゴンモデルは、アバターの仮想空間での
形状を表現するものである。一般的に使用されて
いるポリゴンモデルには、いくつかのフォーマッ
トがある。
オブジェクトは、仮想空間に登
また、
場するアバターの骨格モデルも含んでいる。本研
図
図
オブジェクト
図
骨格モデル
究ではアバターの骨格モデルを図 のように,ア
バターの関節が階層構造をなしている木構造とす
る.木構造の根はアバターの中心を表す関節であ
り,概念的にはアバターの重心に相当するもので
ある.各関節は 軸 軸, 軸, 軸)の自由度
を持ち,各関節間は固定長リンク構造とする.図
ではアバターが人型である場合の例を示したが,
これは必ずしも人型である必要はなく一般的な多
関節構造をなしているアバターに適用できるモデ
ルである.
実際には、ポリゴンデータは「上腕」
「下腕」、
「胴体」などの体の部分毎に作成され、それらを骨
格のどの関節に属するかを定義することによって、
アバターの「見かけ」が決定される。
知識ベースと推論エンジン
知識ベースは、アバターが仮想空間内で自律的に
動作するための行動の指針を記述したルールベー
スである。推論エンジンは、ルールベースから動
作を決定するためのプロダクションシステムの推
論エンジンである。アバターは仮想空間における、
自分や周りの状況を把握し内部状態として蓄え、
これを基に推論することにより、状況に即した動
作決定を行う。ここでは、ユーザが抽象的な命令
として与え、その
を受け取った
を
オブジェクトが
毎に定義されたルール
ベースを参照し、どのような動作を行えば良いか
が決定される。このような、処理を行うために本
研究では、ルールベースの形式を図 のように定
毎にいくつか定義
める。このようなルールが
されるものとする。
この場合、
「 状況」とは他のアバターの位置や
ルールの形式
種類、仮想空間の属性などである。また、自分自
身の内部状態も「状況」に含まれ、これらを併せ
て、ワーキングメモリとする。この「状況」に関す
るワーキング メモリの要素を更新する動作もルー
に対して他の
ルとして表現される。ある
オブジェクトと情報交換をする必要がある
場合、このルールが選択される。
また、ワーキング メモリには実行する動作名に
該当する要素もある。この動作名は、動作データ
ベースに登録されているプリミティブな動作と対
応している必要がある(図 においては
)
。ルールの 節には「状況」に相当する要素
が、
節には要素の更新処理が記述される。こ
のようなルールの集合を定義しておくことで、仮
が与
想空間における「状況」とユーザからの
えられている状態で推論エンジンを駆動すること
により、実行すべき動作名が得られる。
図
各モジュールのインタフェース
したがって、推論エンジンの入力としてはユー
、出力としては実行すべき
ザから与えられる
動作名ということになる。このようにして、決定
された動作が動作合成エンジンの入力となる(図
)
。本研究において、必要と考えている推論エン
ジンの機能としては以上である。機能としては、
一般的なプロダクションルールの推論エンジンの
枠組みを越えるものではないが、実時間の仮想空
間システムを対象としているため性能的には、一
回の推論の計算コストが小さいことが求められる。
アバターはこの推論と動作データ接続による行動
によって仮想空間において行動シミュレーション
(次節)することにより、自律動作する。
行動シミュレーション
このように、アバターが自分の周囲の状況を把
握し、状況に即した動作を選択し、自律的に自分
の状態を変化させるような仕組みは「行動シミュ
レーション」 と呼ばれる。このような処理を実
現することでユーザは、アバターに抽象的な命令
を与えるだけで、仮想空間内においてあるタスク
を実行することが出来る。例えば、
「仮想空間内の
ある店で買い物をしたい」という場合にも、今まで
のシステムでは、マウスなどのインタフェースを
利用して仮想空間内のアバターを一歩一歩歩かせ
て目的地まで移動することが必要であったが、
オブジェクトに対しては、
「あの店の玄関ま
で移動しろ」という命令(
)をアバターに与
えるだけで、目的地までの道順、障害物の回避な
どを考慮して、アバターが自動的に移動する。
逆に言えば、知識ベースにはこれらのユーザか
ら与えられた命令を解決できるようなルールの集
合を定義する必要がある。さまざまな自律的な行
オブジェクトに行わせるためにはか
動を
なりの量のルールを記述する必要があるが、知識
ルールベースは(自分で作ったもの、他人で作った
ものに限らず )仮想空間システムとは独立してお
り、再利用が可能であるので、徐々に蓄積するこ
とによりアバターに動作の表現力をますます豊か
にすることが出来る。この再利用性の高さは、動
作データベースにもあてはまる性質である。
動作データベースと動作合成エンジン
オブジェクトは仮想空間内での自分自
身の動きを、自身の動作データベースとして蓄え
ている基本動作を次々と接続することにより表現
する。動作データベースにはアバターが三次元
として表現できる動作が「一歩分だけ歩く」
「左を
向く」
「立ち上がる」などのプリミティブな動作単
位で蓄えられている。この動作データは、上で述
べた骨格モデルと大きな関係があり、アバターの
動作データは自分自身の関節毎の移動量、回転量
の時系列データである。
アバターの各関節の回転角を時間とともに変化
させることによりアバターの姿勢を変化させるこ
とが出来る.これに加えて,アバターの中心の関
節に対しては移動量に対する 軸の自由度も与え
られる.アバターの移動はこの 自由度の移動量
を変化させることにより表現される.また,ある
関節の動作(移動,回転)はそれ自体の関節とそ
の関節に属する下位の関節全てに影響する操作と
して考える.
このように、動作データはそれが適用されるべ
きアバターの骨格モデルに依存しており、ある動
作を任意のアバターに適用するというのは不可能
であるが、反対に言えば骨格モデルさえ共通であ
れば、その上に定義されているポリゴンデータに
関わらず同じ動作データが適用できるということ
である。
動作合成エンジンは、推論エンジンで決定した
基本動作を順次接続し、アバターの動作の時系列
データを生成する。時系列データはフレーム単位
でその瞬間に動いている全ての関節に対して生成
される。生成された時系列データは、クライアン
トの三次元
合成モジュールによって処理され、
三次元画像として表現される。このような特徴を
オブジェク
考慮した結果、本研究では
トの動作データを図 に示すような形式とする。
図
動作データの形式
各動作の関節毎のデータは フレーム目を基準
とし、それに対する相対値を時系列の順に記述し
たものとする。また、各フレームの値は親関節に
対する相対値とする。このような形式にすること
で、プリミティブな動作単位の連結によって一連
の動作を表現することが可能となる。その上、フ
レームの間引きなどを行うことが容易になる。
動作を接続する際は現在の関節の状態に動作デー
タの各フレームの値を順に加算する。この結果、1
つのプリミティブな動作データを合成した際、そ
の後の関節状態は動作合成前の状態に動作データ
の最後のフレームの値を加算したものに更新され
オブジェクトは一
る。このようにして、
連の時系列データを生成し、自分の関節状態を更
新する。
本研究では、以上のような機能を実現できるも
のを動作合成エンジンとする。動作合成モジュー
ルにおいて、どの順序によってプリミティブな動
作を連結するかは、推論エンジンの処理により出
力される動作を順に連結することとする。よって、
エンジンの入力としては現在の関節状態と合成す
べき動作名、出力としては合成された関節毎の時
。
系列データと更新された関節状態となる(図 )
このように、データのフォーマットとエンジン
のインタフェースを規定することによりそれらを
仮想空間のサーバの実装仕様とは独立に作成(実
装)することが可能である。このため、ユーザは
自分のアバターのデータのサーバ間の移動が可能
になる。
オブジェクトが活動するために
次に、
必要なサーバとクライアントの機能的、性能的条
件について述べる。
仮想空間サーバの構成要素・機能
この節では、
オブジェクトが活動する
ために必要なサーバの機能と、モデルについて述
べる。
仮想空間のモデル化
本研究では図 のように仮想空間をオブ ジェク
トモデルに基づいてモデル化した。
メンバー管理オブジェクト
オブジェクトの追加、削除のインタ
フェースを備えており、仮想空間に存在する
オブジェクトのメンバリストを生成
し、ステージオブ ジェクト、三次元データ配
オブジェクト間で
信オブジェクト、
「仮想空間内に誰が存在するか」という情報の
一貫性を保つ。
ステージオブジェクト
オブジェク
仮想空間内に存在する、
トの生成、消滅を管理する。また、
オブ ジェクトが行動シミュレーションに必要
な周囲の状況の情報の取得を可能とするため
オブ ジェクト間に関して一対一
に
通信が行えるように、メッセージ通信路を構
築する。また、気象条件など仮想空間に共通
な属性値を保持する。
ディレクターオブジェクト
仮想空間内にはユーザが操作する以外に、コ
ンピュータが操作するアバター
が存在する。それらの
オブジェクトに与えられる
はこの
ディレクターオブジェクトが保持している。こ
の
オ
れを適切なタイミングで
ブジェクトに与えることでそれらの行動を決
定する。
オブジェクト
ユーザのアバターに該当するオブジェクト。ス
テージオブジェクトにより生成される。仮想
空間内における自分自身の位置などの初期値
は初期化段階において、ステージオブ ジェク
トにより決定され、内部状態として保持され
る。動作データ、知識ベースは外部のクライ
アントに存在するが、これも初期化時にネッ
オブジェクトに
トワークを介して、
読み込まれる。前章でも述べたように、この
オブジェクトはユーザからの抽象的な命令と
周囲の状況、自分が保持する知識ベースから、
適当な時系列動作データを生成し、フレーム
単位で三次元データ配信オブ ジェクトにデー
タを送信している。
三次元データ配信オブジェクト
サーバに接続している各クライアントに、仮
想空間を再現(三次元描画)するための時系
列データを配信するオブ ジェクト。基本的に
は、1クライアント=1アバター(
オブジェクト )であり、当該クライアントの
三次元データは始めからクライアント側に存
在する。しかし、クライアントにおける三次
オブ ジェ
元描画にはその他全ての
クトのポリゴンデータ、動作の時系列データ
が必要である。よって、サーバにおいてシミュ
レーションされた結果生成された時系列デー
タはこのオブ ジェクトを介してネットワーク
配信される。
システムの構成と各エンジンのインタフェー
ス
ここで、前章で述べた各エンジンのインタフェー
スと関連する事柄を列挙しておく。
クライアントからのユーザの入力を
とし
オブジェクトに与えられること。
て
オブジェクトの出力である時系列動
作データのフレーム毎の同期を取る機構がシ
ステムのネットワーク配信機構に備わってい
ること。
オブジェクトが仮想空間の共通の属
性値を参照できること。
オブジェクト間で内部状態の問い合
わせができること。
前節においてオブジェクト指向のモデル化によ
るシステムの構成を示したが、このような機能が
サーバに実現されていれば、必ずしも前述のよう
なオブジェクト構成を採用する必要はない。
実際、実装のことを考慮するとフレーム毎の同
期処理などはオブジェクトとメッセージ交換機構
で処理するよりもスレッド も用いた実装が実現的
オブジェク
であると考えられる。また、
トの数が非常に多くなり、全てをマルチスレッド
ベースで実装したほうが有効であるのであれば、
サーバの実装法としてそちらを採用すべきである。
オブジェクトが処理エンジン
さらに、
をも含むということはその部分のモジュールに関
して、ポータビリティのある実装を行わなければ
ならないが、これも次の つの実現方法が考えら
れる。
モジュールレベルにおいてポータビリティを
実現する方法
実際にポータビリティを実現できる処理系
など)により各処理エンジンを実装し、
(
それらが動作するプラットフォーム(
など)をサーバ側に用意する方法。
データレベルにおいて互換性を実現する方法
互換性を考慮するのは、知識ベース、動作デー
タのみとし、処理エンジンについては前述の
インタフェースが実現されるようにサーバ内
に実装する。
オブジェクトの処理
1つ目の方法は、
エンジンの実装もサーバとは独立になり、ポータ
ビリティという点では有利である。しかし、アバ
ター数が非常に多い場合、システム内に
オブジェクトの数と同数のエンジンモジュールが存
在することになる。しかし、それぞれの
オブジェクトのエンジンモジュールには共通な部
分が多い可能性が高く、効率の良い実装方法とは
言えない。2つ目の方法は、ユーザの観点から見
図
オブジェクトモデルによる仮想空間のモデル化
ればデータの再利用は実現されており、提案手法
の利点は損なわれていない。
以上に、サーバの構成要素、機能、インタフェー
スについて述べた。仮想空間サーバがこのような
インタフェースと機能を備えていれば、ユーザは
オブジェクトを
今まで、使用していた
別のサーバにそのままマイグレーションさせるこ
とができる。このようなことが実現できると、ア
バターの再設定を行う必要がなく、今まで使用し
ていた動作データ、知識ベースを再利用すること
ができる。
クライアント の構成要素
三次元描画機構
本論分で提案しているシステム構成では、サー
バ側で生成される仮想空間の時系列三次元データ
をネットワークを介して受信し、実時間で三次元描
画を行う。具体的には、受信した全ての
オブジェクトのデータから、クライアント側のカ
メラの視野角を考慮し表示すべきデータを選択す
を
る。その後、選択したデ ータのみ三次元
用いて描画処理を行う。ここでは、実装方法は特
には限定しないが、多数の人間(アバター)が参
加する仮想空間の実時間描画を実現するためには
、
などの三次元
のアクセ
ラレータ機能を備えた計算機において、実装する
必要がある。
ユーザインタフェース
また、ユーザがアバターを操作するための入力
をなんらかの入力インタフェース(マウス、コン
)を介してセンスしその結果を、サー
トローラ
バにネットワークを介して送信する機能が必要で
ある。サーバに送信する際は、センシングの結果
(ポインティングデバイスの位置情報)を、ユーザ
が意図する操作をアバターに与える抽象的な命令
という形に変換し、サーバに存在する該当する
オブジェクトに送信する。
関連研究と今後の課題
仮想空間システムに関連する研究としては、多関
や、ネッ
節のアバターの動作表現の改良の研究
トワーク上で通信されるデータの削減に関する研
究
などがある。 は、動作データのストリー
ミング通信に関する研究であるが、最近では、ポ
リゴンデータのストリーミング通信に関する研究
も行われている。
今回、我々は現在さまざまな仮想空間システム
が存在するなかで、ユーザの操作の負荷を軽減す
るためにアバターに知識ベースと推論エンジンを
組み込んだ枠組みを提案した。また、三次元
表現に密接に関係するポリゴンデータと骨格モデ
ル、動作データをも包括した枠組みを「
オブジェクト」として提案し、それらの構成要素、
機能について述べ、これが活動するために必要な
サーバ、クライアントの機能、動作手順について
も説明した。
今後は、本研究室において研究開発を行ってき
を基礎
た実時間アニメーションシステム
とし、本論文で述べた機能をネットワーク環境に
おいて実装することにより、本手法の有効性を確
認する予定である。
参考文献
内木哲也 丸一威雄 所真理雄 行動シミュレー
ションに基づいたアニメーションシステム
コンピュータソフトウェア
西谷他
ドアニメーション手法
ヒューマノイ
論文集
樋尻他
ヒューマノイドアニメーション
用動作ストリーム符号化の一手法 情報処理学
会
&
研究会
正健太朗 松嶋祥文 吉川和宏 瀧和男
次
元
アニメーションの実時間合成・出力シス
テム 信学技報