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ブラウザーのためのクライアントベースのアプリ
ケーション
英語スクリプトと音声認識の統合
© Copyright 2026 ExpyDoc