VR-CoPractice for cheer

概要

VR-CoPractice : A-Frame を用いて作成した WebVR アプリケーション

遠隔地にいる他プレイヤーとマルチプレイを可能にし、複数人でチアの練習が出来るシステム。ただ動きを通信するだけではなく各ユーザの現在の状態の提示や正しいアームモーションなどを提示出来る。

デモ

静的サイトにて実装しているため、一部機能に制限があります。また VRHMD (主に oqulus quest2 )の利用を想定しています。

利用出来る機能
キャリブレーション
ユーザデータ表示
正しいアームモーションの提示
利用出来ない機能
通信機能
同期評価機能
csv 出力機能
操作法

機能

-研究における機能-

・ユーザモーションの可視化

機能
自分と相手のコントローラーと HMD の Rotation と Position および腕の角度をグラフィカルに表示する
効果
他ユーザと直感的にマルチプレイができる。
鏡で自分の状態を把握することよりも詳細に自分の状態を把握でき、鏡では気が付かない点にも気が付くことができる

・アームモーション提示機能

機能
正しいアームモーションを3種類の方法を用いてユーザに提示できる
効果
正しいアームモーションとは何かを直感的に分かりやすく把握できる。
また自分のアームモーションと正しいアームモーションのどこが違うかも分かりやすく提示している

・アームモーション自動判別機能

機能
アームモーションを行っている際に正しいアームモーションをとれている場合にはその旨を表示する
効果
正しいアームモーションを行えているかどうかを客観的に分かりやすく把握できる

・多視点表示機能

機能
ユーザのダミー人形を回転させることにより各ユーザのアームモーションを様々な視点からを見られる
効果
普段確認できない視点からのモーションのチェックや大会を想定した真上からのチーム間での動きの確認を行える

・2者間フォーム同期評価

機能
評価実験より定めた値を利用して通信相手との座標データにおける変曲点の一致度を表示する
効果
主観的だった同期評価という項目に関して客観的に評価を行える

-その他機能-

キャリブレーション機能
ユーザごとの体格差や肩の位置を取得する機能。3ステップで行うことができる

csv 出力機能
現在のアームモーションの状態や一定期間のアームモーションの推移をサーバー上に csv ファイルとして出力できる機能

シャウト機能
「ワン、ツー、スリー……」とグローバルtime を利用してかけ声を掛けてくれる機能。このタイミングに合わせてチームで練習等が出来る

-機能説明詳細-

アームモーション提示機能3種

-ターゲットオブジェクト提示-
機能
正しいアームモーションを行う際の手を伸ばす先にターゲットオブジェクト表示させ、そこに向けて手を伸ばすことで正しいアームモーションを行うことができる
メリット・デメリット
手をどこに伸ばせが良いのか分かりやすいが、手の回転角度に関しては正しく把握できない

-ダミー人形提示-
機能
ユーザの動きを反映させている正面のダミー人形に対して正しいアームモーションの位置に別の手を配置し、ユーザのダミー人形の手と正しいアームモーションを提示している手を重ねることで正しいアームモーションを行うことができる
メリット・デメリット
奥行きや角度と言った詳細は分かりにくいが、2者間でのタイミングを合わせる際には動いたことが直感的に分かりやすい

-パラメータ-
機能
評価実験より定めた値を利用して通信相手との座標データにおける変曲点の一致度を表示する
メリット・デメリット
どちらにどれくらい動かせば正しいアームモーションをとれるのかは分かりにくいが、直感的に違うことは分かりやすい
また正しいアームモーションにぴったり合わせるにはこれが一番向いている

評価実験

アームモーション評価方法の定義

 画像を元に、両肩や手首の座標を算出するツールを Posenet を用いて作成し、それを利用してインターネット上にある模範的なアームモーションの画像より角度を算出し、その値を評価の基準に用いた。

動き同期評価方法の定義

 図のように TSA や TEB を定義し、その際に生じる Time lag を本システムにおける同期評価にもちいてる。
 この Time lag の値の閾値を定めるために評価実験を行った。詳しい内容は論文を参考にしていただきたいが、実験により126.33ms以上動きに差があった場合は同期していないとの評価を下している。

bad point

足の情報の取得
他のモーショントラッカーを利用する仕組みを構築しておらず、握っているハンドコントローラーのみで現実世界の情報を取得しているため

肘の曲げ伸ばしの取得
他のモーショントラッカーを利用する仕組みを構築しておらず、握っているハンドコントローラーのみで現実世界の情報を取得しているため

ジャンプ等の激しい動き
VRHMD を装着している都合上あまり激しい動きには向いていない

現実との差
プレイ中の違和感については慣れれば問題ないとの意見をいただたが、実際にVRによる練習の効果が不明確( future work にて評価実験を行う)

future work

csv再生機能
保存した csv を再生できる機能。後で自分のアームモーションの動きのチェックのみならず、先生等が作成した見本の csv を見ながらの練習が可能に

俊敏性評価機能
加速度等を取得して、アームモーション間の俊敏性に関して評価を行う機能。

アームモーション自動判別機能 ルール追加
現在では xy座標平面における角度による採点しか行っていないため、別の要素も含めて採点の厳密性をあげる

評価実験 本システムの有用さ
このようなプロダクトを生み出したが、実際に有用なのかを評価する実験を行いたい

操作方法

スティック操作に関して

左スティック操作
⇩押し込み + ↑上 ダミー人形表示モード切替
⇩押し込み + →右 room 切り替え0,1,2,3,4
⇩押し込み + ↓下 ダミー人形視点切り替え
⇩押し込み + ←左 自分の現在のアームのモーションを見本データとして送信

右スティック操作
⇩押し込み + ↑上 or A キャリブレーション
⇩押し込み + →右 同期評価 start/stop
⇩押し込み + ↓下 or X 現在のモーションを csv でサーバーに送信
⇩押し込み + ←左 or Y 連続したデータを csv でサーバーに送信 start/stop

スティックの押し方のこつ

スティックを押し込んでから方向を入力するのではなく、スティックの方向を入力してから押し込むと押しやすい

トリガーボックスに関して

  1. Change dummy angle => ダミー人形視点切り替えのbox版、多視点表示機能
  2. shout => shout機能のオンオフ
  3. motion judgment => 評価実験で得た範囲を基準に現在のアームのモーションが何かを表示する機能。キャリブレーションが必要
  4. communication => 通信の on,off。動作を軽くすることが出来る
  5. display graph => 正面のインタラクティブなグラフの表示/非表示切り替え
  6. display Aangle => キャリブレーション後なら現在の腕の角度を表示できる
  7. Stack dummy => 右の表示されているダミー人形を自分のダミー人形と重ねる
  8. display dummy hand box => 正面ダミー人形にアームモーションフォームボックスの表示/非表示切り替え未実装
  9. display my hand box => 自分のアームモーションフォームボックスの表示/非表示切り替え
  10. save dummy to csv => csv を保存する際にダミー人形のデータも保存する

キャリブレーション・やり方

  1. (⇩押し込み + ↑上を押し) or Aボタン でキャリブレーションモードを開始する
  2. 両手を上に上げ、Aボタンを押す
  3. 両手を下に下げ、Aボタンを押す
  4. 両手を横に広げ、Aボタンを押す