情報処理学会 インタラクション 2020
IPSJ Interaction 2020

2B-19
2020/3/9

インタラクティブキャラクタのフレームワークと触れ合える
VR インタラクションシステム
小栗 賢章1,a)

三武 裕玄1,b)

杉森 健1,c)

佐藤 裕仁1,d)

長谷川 晶一1,e)

概要：VR 世界でユーザがフィクションの世界に入り込んだような没入感の高い体験するためには，その世界のキャラクタに自然で魅力的な振る舞いが求められる．自律キャラクタが自然で魅力的な振る舞いを行うことが望ましいが，従来ではそのような自律キャラクタは製作の手間が膨大であり，滑らかな行動の切り替えが難しい．同時に，現実と VR 世界で力の伝達が発生しないため，接触時にアバタとキャラクタが貫通が生じてしまい没入感が損なわれてしまう問題もあった．本研究では VGentEditor を用いたインタラクティブキャラクタのフレームワーク「VGent」の提案及び，VR 機器，PliantMotion，VGent を使用した接触可能なインタラクションシステムの構築を行う．

1. はじめにはより手軽にキャラクタとのインタラクションを楽しむことができる．

今日，我々の身の回りには多様な架空のキャラクタが存

従来，自律するキャラクタの振る舞いは，反応動作のア在している．ゲームやアニメでは作品を構築する重要な要ニメーションデータを事前に用意し状況に合わせて適切に素となっており，実世界でアニメの中のキャラクタと触れ切り替えたりブレンディングすることで作られてきた．こ合えるテーマパークやイベントも人気がある．近年ではの手法では、反応動作のバリエーションが増える分だけ，VR 機器の普及に伴い，手軽に仮想世界に自らを没入させアニメーションデータや切り替えおよびブレンディングのる体験ができるようになってきている．仮想世界ではフィためのプログラムを用意する必要があり，制作の手間が膨クションの世界に入り込んだような体験をすることがで大になる．

き，その世界のキャラクタとインタラクションすることができれば，没入感をより高めることができる．

VR 機器を用いたインタラクションではユーザは自分のアバタを動かすことで自身を表現，認識することができる．

生き生きとしたキャラクタの表現には見た目だけでなく，接触は身体的コミュニケーションの手段として重要な要素その振る舞いも含まれる．VR 世界においてユーザに没入の一つであり，VR 空間でもユーザアバタとキャラクタが感のある主観的な体験を与えるためには，キャラクタは自接触することでより魅力的な体験を演出できる．しかし現然で魅力的な振る舞いをする必要がある．こうしたインタ状では，現実と VR 世界で力の伝達が発生しないため，アラクションの実現には，キャラクタはユーザの行動や周りバタと相手キャラクタの間に貫通が生じてしまい没入感がの環境に合わせて自然に反応しなくてはならない．現在，損なわれてしまう．

このような VR 世界における魅力的なキャラクタを表現す

本稿では，反応動作作製に特化した VGentEditor[1] をる手法として，実際の人がモーションキャプチャを使って使ったインタラクティブキャラクタ作製フレームワークをキャラクタの動作を演技するというものが挙げられる．魅

提案する．またキャラクタとアバタの接触に関しては尤も

力的なキャラクタを表現する手法としては非常に有効だが，らしい接触が可能な PliantMotion[2] を使用することで解人というコストがかかるため汎用性に欠ける．このような決できると考えられる．そこで，VR 機器，PliantMotion，魅力的なキャラクタを自律化することができれば，ユーザ提案フレームワークを組み合わせたユーザの動作や接触によって反応が変わる VR キャラクタのインタラクションシ

1a)
b)
c)
d)
e)

東京工業大学
oguri.k.aa@m.titech.ac.jp
mitake@hi.pi.titech.ac.jp
sugimori.k.ac@m.titech.ac.jp
satoh.h.aa@m.titech.ac.jp
hase@haselab.net© 2020 Information Processing Society of Japan

ステムを構築した．

579

情報処理学会 インタラクション 2020
IPSJ Interaction 2020

2B-19
2020/3/9

じめ定義しておいた IK ターゲットを対象に向けて切り替えることでインタラクションを実現する．例えば，頭を撫でるインタラクションではユーザアバタの手も含めたアニメーションデータを用意して切り替えることで，接触を伴うインタラクションを実現している．つまり，アニメー
ションデータを用意していない場所に触ろうとするとアバタとキャラクタが貫通してしまう．提案手法ではアニメーションを定義するのではなく，到達目標姿勢を定義するため，ある動作の途中でその動作を中止せずにほかの動作に滑らかに移行できる．接触を伴うような状況でも，滑らかに動作に移行することができ，貫通することなくユーザが任意の場所に触ることができる．また，これらのゲームは
図 1 Pliant Motion の仕組み

ユーザアバタが両手のみという場合が多いが，提案手法ではユーザアバタは全身を持つため，こちらからだけでなく，

2. 先行研究と関連サービス
2.1 VGentEditor
VGentEditor では従来のように関節角度で動作を指定するのではなく，手や頭などの動作の目的に直接かかわる身体パーツの到達目標姿勢により動作を記述する．反応の要因を与えた相手の姿勢に対する到達目標を記述できるた

相手キャラクタから触られるという状況を作ることができる．以上の理由から，提案手法を用いることでキャラクタとの高度でより自由度の高いインタラクションが可能であると考えられる．

3. 提案システム
本稿ではインタラクティブキャラクタの作製フレーム

め，キャラクタの反応動作を作製することに適している．

ワーク「VGent」を提案する．また、VR 機器，PliantMo-

簡単な仕組みは 3.1.2 で述べる．

tion，VGent をを組み合わせたインタラクションシステムを構成する．VGentEditor および PliantMotion はゲーム

2.2 PliantMotion
ユーザのアバタを操作する場合にもモーションキャプ
チャで得られたデータから IK で全身姿勢を求め，得られエンジン Unity を使用した実装であり，物理エンジンにはSpringhead[5] を用いるため，提案システムにおいてもこれらを用いて実装を行った．

た姿勢を目標に物理シミュレーション内の動力学モデルをPD 制御する．各関節を PD 制御する場合，大きい PD 係数
では固い接触となってしまい，柔らかい接触ができるよう

3.1 VGent
VGent は，大きく分けて，認識・動作・行動決定スクリな小さい PD 係数においてはモーションキャプチャに遅れプトによって構成される．て追従してしまうという問題がある．そこで PliantMotion

3.1.1 認識を用いる．PliantMotion ではフィードフォワード制御によ

VGent における認識では，MentalScene と呼ばれるキャり柔らかい接触ができるがモーションキャプチャにはしっラクタの認識世界を定義する．MentalScene 内には認識物かりと追従できるキャラクタ制御手法である．図 1 は具体体である MentalObject とその集合である MentalGroup が的な PliantMotion のシステムである．まず，物理シミュ存在し，MentalGroup には物体の構成要素を表す Parts がレーションを二つ用意する．物理シミュレーション A で付与される．また，MentalObject と MentalGroup には物は，PD 係数を大きい状態でモーションキャプチャデータ体ごとの認識情報を格納する Attribute が付与される．に追従するためのトルク τf f と，物理シミュレーション B

Parts はコンテナであると同時に，物体の種類を表す情では，PD 係数が小さい状態で物体に当たった時の反応用報でもある．例えば MentalGroup が人であるならば，属トルク τf b を求め，二つのトルクの和 (τf f + τf b ) を関節にする MentalObject は頭や手足などであり，MentalGroup適応している．に人の構成要素 (PersonParts) が付与される．PersonParts
はどの MentalObject が頭を指すのか，右手を指すのか，

2.3 類似の VR ゲーム
すでに存在している VR ゲームにも，従来手法を使ってキャラクタとのインタラクティブな触れ合いを実現していといった情報を格納している．つまり PersonParts があれば，頭手足の存在が保証され，その指定が簡単になるので，行動決定スクリプトを書きやすくできる．

るもの [3], [4] がある．これらの VR ゲームでは，事前にAttribute は MentalScene 内の情報を使って自身の持つ用意されたアニメーションデータを切り替えたり，あらか認識情報を更新することができる．例えば右手を振って© 2020 Information Processing Society of Japan580

情報処理学会 インタラクション 2020
IPSJ Interaction 2020

2B-19
2020/3/9いるかどうかを認識するときは，WaveHandAttribute がWaveHand フラグを保持し，MentalObject(PersonPartsRightHand) の位置姿勢や速度をもとに WaveHand フラグを更新する．
これらは Unity ゲームシーン内で定義されるものである
ため，ゲームシーン内の情報から MentalScene に属するものを判別する必要がある．これを行うものを Sencor と呼ぶ．Sencor はゲームシーンに出現した物体を MentalSceneに入れ，Parts，Attribute を付与する．また，ゲームシーン内の MentalScene に属していない情報を使って Attributeの認識情報を更新したいときは Sencor が行う．表現したいキャラクタや実現したいインタラクションによって必要

図 2 インタラクションシステム構成な認識情報は異なるため，インタラクティブキャラクタ作
成者は後から自分に必要な Attribute や Sensor を追加してトラッキングが可能なコントローラ付きヘッドマウント開発を行う．

ディスプレイをモーションキャプチャ兼ディスプレイとし3.1.2 動作て用いる．ヘッドマウントディスプレイで取得したトラッ動作は VGentEditor を使って作られる．以下に概略を述

キング情報をもとにバーチャルモーションキャプチャー [6]べるが，詳細は [1] を参照されたい．VGentEditor は，動作がアバタモデルの全身姿勢を出力する．バーチャルモー生成エンジン，インタラクション対象 (主には MentalOb-

ションキャプチャーとは VR 機器の 3 点以上トラッキンject) とキャラクタの位置関係に応じて身体パーツの到達目

グによって 3D モデルをコントロールするアプリケーショ

標姿勢を算出するため TargetGraph，瞬間ごとの到達目標ンであり，高いクオリティでアバタモデルの動作を表現すを分岐やループを含む一続きの動作として指定して一つのることができるため，今回使用した．また，キャラクタへキャラクタの反応動作を表すための StateMachine から成の柔らかい接触とアバタ動作が素早くユーザ動作に素早くる．ある身体パーツの到達目標姿勢を記述すると，動作生追従することを両立するために PliantMotion を利用した．

成エンジンは自然で滑らかな到達運動となるようなその身バーチャルモーションキャプチャーで得られた全身姿勢を体パーツの軌道アニメーションを躍度最小軌道を用いたア

図 1 に示すような二つの物理シミュレーションの PD 制御

ルゴリズムから算出し，各身体パーツの位置姿勢を目標と目標として PliantMotion を適用する．図 2 の物理シミュするインバースキネマティクス (IK: Inverse Kinematics)

レーションは図 1 の物理シミュレーション B と対応してを解くことにより，全身の姿勢が得られる．また，物理シいる．

ミュレーション内にキャラクタを身体パーツとそれを接続

図 2 の物理シミュレーション内には，キャラクタを表すする関節で表した動力学モデルを用意し、IK で求めた全ため，身体パーツとそれを接続する関節および衝突判定形

身姿勢を目標に PD 制御することで、動力学特性を反映し状からなる多関節剛体モデルをそれぞれ用意する．この物た動作を得ることができる．

理モデルに対して，VGent の動作生成エンジンや，モー3.1.3 行動決定スクリプト

ションキャプチャおよび PliantMotion が，PD 制御の目

インタラクティブキャラクタ作成者は行動決定スクリプ標全身姿勢を与える．物理シミュレーション内で貫通しなトを記述することでキャラクタの反応行動を定義する．行い接触等の物理法則に従った物理モデルの動きが計算され動決定スクリプトに記述すべきことは主に，MentalSceneる．故に，この物理モデルをキャラクタやユーザアバタにの情報を元にした実行する動作の決定と動作対象の指定の適用することで接触を伴ったインタラクションを実現する二つである．実行する動作を決定するには，MentalSceneことができる．の情報を元にした場所や時刻に任意の StateMachine を起動する処理を記述すればよい．動作対象を指定するには，TargetGraph に MentalObject を渡す処理を記述することでその MentalObject が動作対象に指定できる．

4. 実現する反応の例
4.1 手を振りかえす
相手が手を振ると手を振りかえす動作 (図 3) では，対象が手を振っているかを認識し，手を振る方向や顔と視線の3.2 インタラクションシステム
図 2 は提案システムの構成と仕組みを簡単に表したもの
である．
ユーザ側には Oculus Rift や HTC Vive 等の 3 点以上の

© 2020 Information Processing Society of Japan

方向を相手に向けることを行っている．この動作の行動決定スクリプトでは，• 対処を指定する TargetGraph の入力としてユーザのMentalObject(PersonParts-Head) を渡す

581

情報処理学会 インタラクション 2020
IPSJ Interaction 2020

2B-19
2020/3/9

5. 結論と今後
本稿では VGentEditor を用いたインタラクティブキャラクタ作製フレームワークを提案した．また，提案フレー
ムワーク「VGent」，VR 機器，PliantMotion から成るインタラクションシステムの構築を行った．構築したインタラ
クションシステムは自律キャラクタとユーザの 1 対 1 のインタラクションを想定しているが，ユーザの人数が増えた
り，自律キャラクタ同士のインタラクションが起きる場合も考えられる．今後は多人数でのインタラクションを実現
図 3 手を振る動作例するための仕組みの整備を行っていく予定である．
参考文献[1]

[2]

[3]
[4]
[5]

図 4 頭を撫でる動作例[6]

佐藤裕仁，三武裕玄，杉森健，長谷川晶一：VGentEditor:
操作部位と空間目標点を動作表現として用いたインタラ
クティブキャラクタの動作生成，VRSJ2019(第 24 回日本バーチャルリアリティ学会大会)，論文集 (2019).
杉森健，三武裕玄，佐藤裕仁，長谷川晶一：物体とのインタ
ラクション時に体の硬さが自在に変えられる VTuber アバ
ター，情報処理学会インタラクション 2019，予稿集 (2019).
ILLUSION：VR カノジョ，
http://illusionvr.jp/#conthome，(参照 2019-12-23).
sgthale: Viva Project,https://www.patreon.com/sgthale, (参照 2019-12-23).
長谷川晶一，三武裕玄，田崎勇一：動作行動開発のための物
理エンジン Springhead，日本ロボット学会誌 Vol.30 No.9，
pp841-848 (2012).
sh-akira：バーチャルモーションキャプチャー，https://shakira.github.io/VirtualMotionCapture/，(参 照 2019-1223).

• WaveHandAtttribute の状態から相手が手を振っているか判断し，手を振り返す場合には手を振る StateMa-chine を起動するという処理が記述されている．

4.2 頭を撫でると喜ぶ
頭を撫でる動作 (図 4) では，自律キャラクタの頭とユーザアバタの手が接触した時の力を行動決定の要素として，キャラクタが喜びを表す動作をすることを行っている．本
実装では，接触を伴うインタラクションを実現するため，MentalScene の情報に加えて接触時に発生する外力も行動決定の一要素として扱う．そのため，接触力を保持する PhysicsAttribute と，物理エンジンから接触力を取得して PhysicsAttribute を更新する PhysicsSensor を新たに実装した．行動決定スクリプトには，PhysicsAttribute をから頭を撫でられているかどうかを判断し，喜びの動作のStateMachine を起動するという処理を記述している．キャラクタの反応動作を別のものにすることで，ユーザアバタを押しのけて撫でられることを拒否するといった動作も可能となり，そのキャラクタらしさを表現することも可能となる．

© 2020 Information Processing Society of Japan582