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 2024 ExpyDoc