Improv : A System for Scripting Interactive Actors

Improv : A System for Scripting
Interactive Actors in Virtual Worlds
立命館大学 理工学研究科
岡田 尚悟(コンピュータネットワーク研究室)
目次
1.はじめに(背景)
2.Improvシステムの内容
3.アニメーションエンジン
4.行動エンジン
5.ユーザー相互作用
6.実装
7.まとめ
はじめに

「Improv」システムについて
-リアルタイムで行う、行動ベースでのアクターの生成
- ネットワーク分配された独立したエージェント
-英語スタイルのスクリプト言語
-2つのサブシステムから出来ている
①アニメーションエンジン
②行動エンジン
背景

Strassman 91




“Desktop Theater”
対話型のアクターのためのオーサリング・ツール
視覚的な相互作用はなし
Stephenson 92



“Snow Crash”,(小説)
インターネットの未来のバージョン
詳細なオーサリング・ツールはない
背景

独立したアクターシミュレーションシステム

人間の動きシミュレーションシステム

独立した動物シミュレーションシステム

対話型シミュレーションシステム
「Improv」システムの内容
○リアルタイムでのアクターの生成を行うシステム
<デザイン>
アクター生成モデル
<アニメーションエンジン>
移り変わり、構成
<行動エンジン>
アクターの特性
アクションの特性
段階的アクション
Decision
Rules
決定規則
back
front
LayeredMotions
Motions
Layered
並列のスクリプト
アニメーションエンジン
●DOF (Degrees Of Freedom)によってさまざまな動きを作る
○変更DOF : 運動生成
○結合 DOF : 滑らかな動作の移り変わり
○DOFを備えた変形
スマイルはDOF(0~1)
アニメーションエンジン
●アニメーションの定義
○連続的な信号の生成
-時間に対してのDOFを変化させる
-低コストを備えたより自然なアクション
- 統計的に生成
バランス、目をまばたきする、歩き回りな
どの
アクションの生成が行える
アニメーションエンジン

アクション合成



イメージ合成と似ている
アクターの同時行動の支援
独占的 /アクションを共有できる
GROUP
ACTION
ACTION
GROUP
ACTION
ACTION
ACTION
GROUP
ACTION
ACTION
Stance
Stand
Walk
Gestures
No_waving
Wave_left
Wave_right
Momentary
No_scratching
Scratch_head_left
全体
一瞬
行動エンジン

並列スクリプティングシステム




可能性に影響を与えているもの



スクリプトのグループ化
別のアクションを呼ぶことができる
階層状の行動
決まっていない行動
決定規則
多数のアクターの調整
行動エンジン

対話型スクリプト
●1つ挨拶を例にとって説明
0
挨
拶
4 5
7 8
11
time
(sec)
define SCRIPT “greeting”
{
{ “enter” }
{ wait 4 seconds }
{ “turn to camera” }
{ wait 1 second }
{ “wave” for 2 seconds
“talk” for 6 seconds }
{ wait 3 seconds }
{ “sit” }
{ wait 5 seconds}
{ “bow” toward “Camera” }
{ wait 2 seconds }
{ “leave” }
}
登
場
カ
メ
ラ
の
方
に
向
く
手
を
振
る
話
す
と
ど
ま
る
お
じ
ぎ
出
る
行動エンジン

スクリプトのグループ化を行うことができる
●1つ例にとって説明
DAY_PLANS Waking Morning Lunch
Afternoon Dinner Evening
ACTIVITIES Resting Working Dining
Conversing Performing
BEHAVIOR Sleeping Eating Talking Joking
Arguing Listening Dancing
行動エンジン
●他のアクションあるいはスクリプトを
呼ぶ

アクターの特性をチェックする
●1つ例にとって説明
define SCRIPT “Curtain Call”
{“walk to center”} -------他のアクションを呼ぶ
{continue until {my location equals center}
}
{“turn to camera”}
{continue until {“turn to camera” is done}}
{“bow”}
{continue for 3 seconds}
{“walk offstage”}
行動エンジン


どのような決断がアクターの行動に影響をあたえるか
次の行動が決まっていない動き
1つのアクションから任意に選ぶ



define SCRIPT “Rock Paper Scissors”
{choose from {“Rock” “Paper” “Scissors”} }
アクションに重みをつけることが出来る


define SCRIPT “Rock Paper Scissors2”
{choose from {“Rock” .5 “Paper” .3 “Scissors” .1 } }
行動エンジン
●アクターの調整
○アクターはもう一人のアクターの特性を修正する
ことができる
○他のどのアクターか知っている
○共有ブラックボードを通じでコミュニケーション
○単一で多数のプロセッサー上で、あるいはネット
ワークを介して動く
行動
エンジン
Blackboard
アニメーション
エンジン
他のアクター
ユーザの相互作用


ユーザ・インターフェース要素を作成
多数のレベルからのアクターコントロール


レベルが高いスクリプトから低スプリクトまでの管理
運動、身振り、アクターの大きなグループに対する管理
行動
エンジン
モデル
行動
エンジン
他のアクター
アニメーション
エンジン
モデル
Blackboard
実装

英語スタイルのスクリプト言語


ネットワーク分配


すべてのブラックボード情報の完全なコピーを保存
仮想同時性


たとえプログラマではなくても使える
どこでも世界中のただ1つだけの特徴
システムの外から通信する


ブラックボードを通して通信する
スタンドアロンのCのプログラムがメッセージを送る
まとめ



アニメーションエンジンと行動エンジン
リアルタイムにネットワーク上で動く、対話型システムを
作った
将来の目的
 商用アニメーション・ツールと結合
 Javaブラウザーのためのクライアントベースのアプリ
ケーション
 英語スクリプトと音声認識の統合