2017年9月8日

アンリアル エンジンがエクサゲーミングの研究に及ぼす影響

作成 Joey Campbell

こんにちは!  Joey Campbell です。私はアイルランドの Cork を拠点に VR の講師、デベロッパー、リサーチャーの仕事をしています。現在、University of Bristol の  Bristol Interaction Group で博士号取得に取り組んでいます。研究の主なテーマは身体的運動とビデオ ゲーム (ExerGaming エクサゲーミング) に関するものです。特に生理学的に制御したアバターに力を入れて研究しています。

ここで自分がアンリアル エンジンを使ってこれまで開発してきた 2 つのリサーチ プロジェクトについてご紹介したいと思います。

Unreal+Engine%2FblogAssets%2F2017%2FSEPTEMBER+2017%2FEDU+-+Joey+Campbell+ExerGaming%2F01-770x434-04dc670394675cd39b551e10bc8c66cb7f39635e

プロジェクト 01.VeRitas

HMD を通して見るリッチで没入感のある環境やリアルタイムの生理的フィードバックに基づいたインタラクションは、ヒューマン コンピュータ インタラクション (HCI) と身体運動の分野で新たな研究の可能性を切り開きました。我々のデザイン アプローチでは、こうした進歩を活かして、没入感、物理抵抗、および生理学的データの操作を組み合わせて適切に介入することでハードな運動のパフォーマンスに対するモチベーションを上げることが可能かを探ります。VeRitas では、従来型のエクサゲーム (エクササイズ支援ゲーム) に関連付けた強度の低い身体運動を上回ろうとするモチベーションをプレイヤーに与えることによって、こうした課題に取り組みます。

次のような VR サイクリング ゲームをデザインしました。アバターのスピードと走行距離をユーザーの心拍数によって制御するようにしたのです。固定の Wattbike (ワットバイク、普通のエアロバイクと異なり実走感に近い感覚が得られる) のペダルをこぐと、スピードはユーザーの心拍数によって決まり、ハンドルは標準的なゲームパッドによって制御されます。このゲームの目標は、60 秒以内に可能な限り、仮想の距離を進むことです。

VeRitas (Joey Campbell) Vimeo.

デザイン

ゲームの出力は、ユーザーの心拍数に基づく仮想バイクのスピードに間接的に換算されます。もし、ユーザーのペダルの踏み込みを仮想サイクリストのそれに対応させたなら、バイクとインタラクティブにつながっている感覚を高めるのに役立ったことでしょう。しかし、ここでは、生理学的データに手を加えたものをユーザーに見せて、エネルギー消費に与える影響を調べることにしました。そこで、ゲームを制御する重要な役割を果たすものとして心拍数を使用するようにしました。

Unreal+Engine%2FblogAssets%2F2017%2FSEPTEMBER+2017%2FEDU+-+Joey+Campbell+ExerGaming%2F02-770x720-280ba67188344446f07e9feeaf1c35c30bb42638

フィードバックを表示するために、心拍数、仮想走行距離、バイクのギア、残り時間を表示する GUI が必要でした。従来の 2D ステータス バーを HMD で見ると気分が悪くなるユーザーがいるため、アバターに 3D ウィジェットとして HUD を付属させました。これにより、VR 酔いを減らし、重要なフィードバックのデータを目立った位置に置くことができます。

Unreal+Engine%2FblogAssets%2F2017%2FSEPTEMBER+2017%2FEDU+-+Joey+Campbell+ExerGaming%2F03-770x613-9a0225e3cb0bf11e2bee9a0899959bbfbf1de8d8

開発時間を短縮するために、アンリアル エンジンのマーケットプレイスで、あらかじめ作られている ゲームの背景 と 自転車のリグ を購入しました。サイクリストのキャラクターは、Adobe Fuse でデザインし、アンリアル エンジンにエクスポートして、それをバイクのモデルと組み合わせました。

Unreal+Engine%2FblogAssets%2F2017%2FSEPTEMBER+2017%2FEDU+-+Joey+Campbell+ExerGaming%2F04-770x566-1ad2368984299998ef37c8281c900f890f9b6216

生理学的データをゲームの変数として使うために、心拍数データをリアルタイムで取り込むことが不可欠でした。不正確なセンサーのデータや実用性のない心臓モニターを使用したことで、デザインを何回かやり直すことになりました。Pulse Sensor と Easy Pulse Monitor を使って実験しましたが、読み取り値が不正確なことと、バイク ゲームにとってセンサーの配置場所が不適切であったため、うまく行きませんでした (ユーザーがバイクのハンドルバーを握りながらゲームパッドを制御しなければなりませんが、Pulse Sensor も Easy Pulse Monitor も指に装着されています)。最終的に Polar ハートレート モニタを使いました。このモニタは、Arduino ボードと  UE4Duino プラグインを使って心拍数データをアンリアル エンジンにワイヤレスで送るように再設定されたものです。目立ったレイテンシーはなく、センサーの読み取り値も正確でした。モニタの読み取り値は、2 メートルの範囲を超えると弱くなったため、バイクのサドルの下に受信機を配置しました。

Unreal+Engine%2FblogAssets%2F2017%2FSEPTEMBER+2017%2FEDU+-+Joey+Campbell+ExerGaming%2F05-770x423-0652896dc6fb91a38412f7a71856fbabc7e84295

受信する心拍数データに基づき仮想バイクのスピードを動的に調整するために、それらを換算できるブループリント システムを開発しました。仮想バイクにはギアが 12 段あり (第 1 ギアが最低速度で、第 12 ギアが最高速度)、BPM (心拍数 / 分) の読み取り値が 40-50 の場合、第 1 ギアが、50-60 で第 2 ギアが、60-70 で第 3 ギアが、170 以上まで第 12 ギアが起動します (BPM はギア速度に換算され、ギア速度は走行距離に換算されます)。仮想バイクのギア システム、スピード、走行距離は、すべて受信するセンサーの読み取り値に関連づけられています。つまり、理論上は、体力がないユーザーが、より大きな力を使う剛健なユーザーよりも仮想走行距離が長くなることがあり得ます。ですから、運動の測定単位として、走行距離だけに頼るのではなくエネルギー消費を測定できるエクササイズ用バイクを選ぶようにしました。

Unreal+Engine%2FblogAssets%2F2017%2FSEPTEMBER+2017%2FEDU+-+Joey+Campbell+ExerGaming%2F06-770x650-32087b2d53dc4c704a04fec5e3ea6f00ed706ea8

データに手を加える

エクサゲーミングで生理学的フィードバックのデータに手を加えて変更した研究は見つからなかったため、心拍数を誇張する適切なレベルがわかりませんでした。そこで、事前に テストを行い、ゲームプレイ中にユーザーから見える表示心拍数を変更する場合、その適切なパーセンテージ範囲を確立しました。7 つのバージョンのゲームを作り、ユーザーから見える心拍数を、+10%、 +20%、 +30%、 0%、 -10%、 -20%、-30% の範囲で変更できるようにしました。一人のユーザーがこうした 7 つのゲームをプレイして (ランダムに選ばれた順序で)、各ゲーム間で 2 分間の休憩をとってもらい、システムに対する評価を求めました。ユーザーは BPM の量が増えても気づきませんでしたが、20% よりも多く減らされると、心臓のモニターが不正確なのではとコメントしました。この結果に基づき、データを操作する上限を 20% のレベルと決めることにしました。目に見える BPM を減らすことで、身体運動に対するモチベーションが上がるのでは、という仮説をたてました。

Unreal+Engine%2FblogAssets%2F2017%2FSEPTEMBER+2017%2FEDU+-+Joey+Campbell+ExerGaming%2F07-770x637-3125cc73bd1ea760df62c7c719a69a0ca2981145

物理的な抵抗

我々は「間接的な作動」すなわち、気づかれないように抵抗を調整して四肢の運動量を変えた場合の効果に興味がありました。Wattbike には 7 段階の物理抵抗のダイアルがあり、バイクのペダルを回すために必要な力を増やすように調整できます。抵抗が変化したことをユーザーに感知されたくはありませんでした。ですから、ユーザーが気づかないよう抵抗をリモートで変更できる滑車システムを作りました。

変数

本プロジェクトには 3 種類の独立した変数があります。 immersion (没入) (VR ヘッドセットなのかフラット スクリーンなのか)、 resistance (抵抗) (ギア 作動 ありなのか、 なしなのか)、および  falsification (データ操作) (実際の BPM なのか、 偽の BPM なのか) の 3 つです。

主に 2 つの評価基準を用いました。Power Output (電力出力) と Rate of Perceived Exertion (自覚的運動強度) です。ユーザーによって生成される最初の従属変数は、ワットバイクによってワット単位で測定される絶対電力で、試行毎に記録されます。各条件について、こうした絶対電力のパーセンテージを計算処理することによって、相対電力値も計算しました。その条件におけるパフォーマンスを、全試行におけるパフォーマンスの平均に対する比率として算出し、個々のパフォーマンスにおける外れ値を取り除きました。

Unreal+Engine%2FblogAssets%2F2017%2FSEPTEMBER+2017%2FEDU+-+Joey+Campbell+ExerGaming%2F08-770x612-93b4324deca31560efc14599674ab88728e502bc

プロジェクト 02:“Virtual Collisions”

前述のプロジェクト (VeRitas) に続いて、現実の物理的なオブジェクトの抵抗を動的にリアルタイムで調整可能なエクサゲーム (ExerGame) を作ることにしました (目指すものは、没入感のあるゲーム内でこの物理的なオブジェクトが仮想アバターをコントロールし、ゲーム エンジンが物理オブジェクトの動きやすさを制御するというゲームです)。

Virtual Resistance (Joey Campbell)Vimeo.

フィジカル コンピューティング

プロジェクト始動時に、市販製品を購入して使えるだろうと考えました。しかし、社内で作らなければならないということがわかりました。この種の抵抗を実装するいくつかの技術 (電磁気学、水力学、空気力学) を検討して、摩擦が最も単純で、効率的に実装できるとわかりました。様々な組み合わせを試みました (ステッピング モーター、線形アクチュエータ、および連続回転サーボ モーター)。レイテンシーに関する問題と電力に関する問題はありましたが、結局、ハイトルク サーボ モーター (30kg / cm) に落ち着きました。これは、 UE4Duino プラグインを介してアンリアル エンジンに統合することができました。

servo motors (Joey Campbell)Vimeo.

子供用三輪車のブレーキ ハンドルに、このサーボ モーターを付けてテストしました。目立ったレイテンシーなしに、タイトさ / 抵抗のレベルを段階的に調整することができました。Arduino の基盤には、ハイトルク サーボ モーター用の十分な電力が供給されないので、充電可能なゴルフ カート バギーのバッテリーをブレッドボードに接続しました。

Unreal+Engine%2FblogAssets%2F2017%2FSEPTEMBER+2017%2FEDU+-+Joey+Campbell+ExerGaming%2F09-770x600-c768eebc3c36c0737d6e660b7fe0398762b59fbe

現実世界と仮想世界の同期

最終的な物理的ゲーム コントローラーは何らかの形の車輪付き乗り物であることはわかっていましたが、この本物のオブジェクトの動きと位置をゲーム内のクローンにどのように同期させるかはわかっていませんでした。そこで、実際のオフィス チェアーとインポートされたオフィス チェアーの .obj モデルを使って実験を行ってみました。VR Pawn クラスを作成して Vive モーション コントローラー タグとスタティックメッシュを追加し、モーション コントローラーを仮想チェアーの中央部に配置しました。実際の Vive コントローラーは現実の椅子の対応する位置にテープで貼り付けました。現実の椅子と仮想の椅子のサイズを同期させるために微調整しました。HTC Vive のシャペロン境界内でフロアーとボーダーのスペースを定義する作業も少しありました。

VR と現実の椅子の動き(Joey Campbell)Vimeo.

脱ケーブル化

上の動画のように、エクサゲーム (抵抗と動きが重要な役割を果たす) では、ケーブルで動きを制限されていると、ゲームの流れに制約が生じやすくなります。この制限を克服するために、より動きやすいシステムに変えてみました。12V 8000mAh 充電式リチウムイオン バッテリーとアダプタを、Vive リンクボックスの電源にしました。デスクトップを HDMI ポート付きの Alienware Laptop で置き換えました。

Unreal+Engine%2FblogAssets%2F2017%2FSEPTEMBER+2017%2FEDU+-+Joey+Campbell+ExerGaming%2F10-770x393-a62956581a07f2543c11abbb44ba6b511b9d3b90

最終的に、現実のオフィス チェアーと仮想のものを、車椅子モデルに置き換えることにしました。車椅子のブレーキを調整して、再配置し、ケーブルの摩擦を最小限に抑えるために滑りやすくしました。サーボ モーターをサーボ ブラケットに取り付けて、アルミ管にボルト止めしました。

Unreal+Engine%2FblogAssets%2F2017%2FSEPTEMBER+2017%2FEDU+-+Joey+Campbell+ExerGaming%2F11-770x426-802cda8a1cba2117aedf6368cccabe295df0142f

コリジョン検出

物理的な椅子の動きは、現実と仮想の両方で完璧に同期させましたが、車椅子のモデルとシーンに配置された物理を有効にしたスタティックメッシュとの間で生じるコリジョンが検知されませんでした。車椅子のスタティックメッシュ エディタを開いて、Collision Complexity (コリジョンの複雑度) を、‘use simple shapes as complex’ に変更することでうまく行きました。これにより、レベル内でのスタティックメッシュとのコリジョンを有効にすることができましたが、ブループリントのイベントはトリガーできませんでした。

対策として、このメッシュのウィンドウで車椅子のコリジョン設定を ‘no collision’ にリセットし、コリジョンの複雑度を ‘project default’ に、車椅子の VR ポーンのブループリント設定を ‘no collision’ に変更しました。ボックス コリジョンを追加し (VR ポーン ブループリント ウィンドウの左上上部の「add component」で)、そのサイズをスケーリングし、位置を車椅子モデルの大きさに適合するようにしました。これで ‘block all’ に変更されて、“generate overlap events” と “hit events” が有効になりました。このボックス コリジョンを、コントローラーの下の椅子のノードの階層と同じレベルにドラッグしました。

コリジョン検知が有効になり、ブレーキを徐々に調整して、現実世界の質量と同じような抵抗を再現し、それを仮想オブジェクトが没入感のある環境でシミュレートできるようにしました。

まとめ

仮想モデルを現実世界の対応するものにシームレスに重ね合わせることで、抵抗を仮想世界に統合することを目指しました。手に触れられる仮想オブジェクト (VR HMD を通して見て、現実世界で感じられるもの) を導入して存在感を高め、自動化された動的な抵抗を備えた動かしやすいシステムも用意し、ゲーム エンジンがアバターと仮想オブジェクトとの間に生じる実際のコリジョンの感覚をシミュレーションできるようにしました。

Unreal+Engine%2FblogAssets%2F2017%2FSEPTEMBER+2017%2FEDU+-+Joey+Campbell+ExerGaming%2F12-770x533-3fd4373eedb56307f58e9ffb6ac213790e61849d

今後は、この種の手に触れられる (タンジブルな) 仮想とのインターフェースと身体運動との関係に力を入れて研究したいと思います。これは、生理学的反応などの定量的データの収集と分析を通して行います。例えば、タンジブルな環境と仮想環境で身体的活動を行うときに、人間とマシンのハプティック (触覚) を切り離すと、身体的アウトプットを高めるのに役立つかもしれません。さらにその次の研究では、Myoware 筋電センサーをユーザーのふくらはぎの筋肉に付けて、一連のテストを行い身体的アウトプットと動的抵抗との関係を調べるつもりです。運動と抵抗のリアルタイムのデータを HMD の HUD で表示するか否かによってユーザーの運動レベルが変化するかについて研究します。

アンリアル エンジンを自由に使えることと、VR のハードウェアが手頃な価格になったことで、我々のような研究者は限られた予算内で圧倒的に没入感のある環境を作れるようになりました。グラフィックスの忠実度が増々高まり、 3D アセットの統合が可能になりました。これは、視覚的に現実世界のものに匹敵するレベルです。マーケットプレイスでサードパーティのアセットを入手することで時間の制約から解放されて、ハプティック フィードバック、抵抗、タンジブルなインターフェースのデザインなど没入感に力を注ぐことができました。

Joey Campbell の研究の最新情報や進捗については以下をご覧ください。  www.joeycampbell.ie.

[email protected]

www.joeycampbell.ie

https://www.linkedin.com/in/robbiegrigg