Table Tennis Rally Training VR Simulator 操作説明


Table Tennis Rally Training VR Simulator(日本語名:卓球ラリートレーニングVRシミュレータ)とは

卓球ラリートレーニングVRシミュレータの動作デモ動画
卓球ラリートレーニングVRシミュレータ(以下、本ゲーム)は、卓球のレシーブ練習を行うために開発されたWebブラウザで動作する3次元CGゲームです。
ボールは指定の地点より発射され、それをレシーブします。うまく打ち返すことができると、自動的に再度同じボールが発射されます。
様々なパラメータ(ボールの速度や回転、ラバーの反発率など)を指定できるので、練習したいボールを自分でカスタマイズが可能です。
ラケットを振る練習,ラリーの楽しさを体感するためのゲームです。実際の物理運動と挙動が異なる場合がありますが、パラメータを調整して近い動きにしてからプレイしてください。
フルスクリーンでPC(Windows)上で動作させたり、スマホ(Android)VRゴーグル用として動作させることも可能です。
ラケットを振る方法は、コントローラとしてcooyou.orgのクレイジースモール3D5FT,6A5FT(Amazon.co.jpで販売)の2機種を想定してますが、
簡易的に、画面上のボタンや、キーボードショートカット、スマホVR機器付属のコントローラ(片手で持つアナログジョイスティックとトリガーがついているもの)でも可能です。
ボールには回転が分かるように模様をつけてますが、画面更新周波数との関係で、逆回転に見える場合があります。また、実物より少し大きめです。
ラケットには位置と回転の支点が分かりやすくなるように、補助棒を描画してます。

主な機能

・クレイジースモール3D5FT,6A5FTとの連携(専用付属ソフトを使用)詳細はこちらを参照
・フルスクリーンモード、VRモード(Androidスマホ)
・ほぼすべてのパラメータの設定保存(プリセットとして12個設定可能)
・さまざまなパラメータ(ボール、ラケット、視点等)。パネルをクリックして開閉で確認できます。

簡単な遊び方

一番簡単なのは、コントローラを使用しないで、Webブラウザで本ゲームを表示することです。
WindowsでもAndroidスマホでも動作します。特にコントローラを使用しないならiPadでも動作します。
CG画面の下のほうに"Control"-"Play"パネルが表示されます。
スマホの場合は、スマホ自体の姿勢が視点回転になるので、台の見える好きな回転位置で、Playパネルの[Reset VR Device Rotation]ボタンを押して回転位置をリセットします。
そして、[Pop Ball]ボタンを押すと、ボールが発射されるかと思います。Windowsの場合はPキーでもいいです。
スマホの場合は画面左半分をタッチしてもボールが発射します。
"Sound Mute"のチェックを外すとボールが当たる音が出ます。
[Swing Racket]ボタンを押すと、ラケットがスイングできます。Windowsの場合はSキーでもいいです。
スマホの場合は画面右半分をタッチしてもスイングできます。
視点位置を少し後ろに下げると見やすいです。"Eye"パネルをクリックして開いて、"Position Forward"を-12くらいにするとラケットが見えます。
スイングの種類はビルトインのものが5種類あります。"Play"パネルの"Swing Preset"で番号を選択できます。とりあえず1番が簡単かと思います。
うまくボールが当たらない場合は、"Ball"パネルでボールの位置や回転を変更したり、"Racket"パネルでラケットの位置を変更したりしましょう。
"Arm"パネルでは腕の長さを設定できます。"Elbow"パネルではラケットを振る回転に連動してラケット位置を移動する大きさを設定できます。
ラケットにあたってもボールが上に上がらない場合は、ElbowパネルでInterlock Upwardを大きくするか、RacketパネルでRubber Adhesiveを調整すると良いでしょう。
ラケットにあたってもボールが前方に飛びにくい場合は、ElbowパネルでInterlock Forwardを大きくするか、RacketパネルでRubber Repulsiveを大きくすると良いでしょう。
ラケットにあたりにくい場合は、RacketパネルでCollision Detectionを大きくすると良いでしょう。
レシーブ失敗でも自動的にボール発射を行いたい場合は、BallパネルのAuto Pop Ball Wheneverにチェックを入れます。
設定が決まったら、"Play"パネルの[Save Config1]ボタンを押します。これで全設定が保存されて、次回同ページ表示時に自動的に設定が読み込まれます。
別の設定を保存したい場合は、[Save Config2]ボタンを押すか、12番までの番号を選択して、[Save ConfigN]ボタンを押します。
任意の設定を読み込むには[Load Config番号]ボタンを押します。
最後に読み込んだ設定が次回使用されます。
設定を初期化するには[Reset Config]ボタンを押します。ただし、保存されている設定は初期化されないので、続けて任意番号の設定保存を行うことで保存されている設定も初期化できます。

クレイジースモール3D5FT,6A5FTとの連携

製品ページに付属ソフトのリンクがありますから、ダウンロードしてインストールしてください。
付属ソフトは、クレイジースモールからのシリアル通信の入力をWebSocketでのLAN通信に変換する役割があります。WebSocketサーバーとして機能します。ブラウザからはWebSocketで付属ソフトから姿勢の回転角であるクォータニオンの情報を取得します。付属ソフトはWindows用とAndroid用の他に汎用としてpythonスクリプトで動作する3種類があります。OSに合わせてご利用ください。pythonスクリプトを利用するとmacやLinux,Raspberry PIなどの小型ボードでもサーバとして利用出来ます。インターネットはブラウザでのページ読み込み時にのみ使用します。これはCG制御ライブラリのBabylon.jsファイルを読み込むことだけに使用します。ゲームプレイ中はインターネット接続は不要です。LANでの通信は付属ソフトと行われます。本ゲームのパラメータ設定の保存はブラウザのローカルストレージに保存されますので、インターネットは使用されません。
クレイジースモール3D5FTまたは6A5FTをUSBケーブルでWindowsPCまたはAndroidスマホに接続してください。
Androidスマホの場合は、接続にはOTGケーブル(またはアダプタ)が必要です。Androidの場合は接続すると自動的にアプリが起動します。
VRゴーグルを利用する場合は、クレイジースモール3D5FTまたは6A5FTはUSB接続ですから、ゴーグルのスマホを固定する場所に、USBケーブルも接続できる余裕があるかご確認ください。
一般的にはケーブルを伸ばせる隙間があいているタイプのゴーグルが多いようです。
横のCボタン(AボタンとBボタンと離れたCボタンです)を押してプリセットCで動作させます。
付属ソフトを起動して、それぞれの方法で実行するとWebSocketサーバーとして機能します。これでブラウザから接続できます。
ブラウザと付属ソフトを実行する機器はWifi環境で別々でも構わないですが、その場合は、付属ソフト側機器の別途IPアドレスを調べておいてください。ブラウザから接続する際に記述する必要があります。
Androidアプリのほうはアプリ上にスマホのIPアドレスが表示されます。
同一機器で動作させる場合は、IPアドレスは127.0.0.1で結構です。ポート番号はデフォルトが8096です。
付属ソフトが実行状態の時、ブラウザから接続するには"Play"パネルの"IP Address"欄にIPアドレス。"Port"欄にポート番号を指定して、
[start]ボタンを押します。うまくいくと、ラケットの姿勢がクレイジースモール3D5FT,6A5FTの回転姿勢と連動します。
うまくいかない場合はブラウザのセキュリティ関連の設定で通信が許可されないためかもしれません。ブラウザの設定を見直すと接続できることが多いです。[stop]ボタンを押してから再度[start]ボタンを押すことにより再接続を試みます。
うまくいかない場合は、付属ソフトのほうも再実行するなどして何度かトライしてみてください。
クレイジースモール3D5FT,6A5FTのUSBを手前に、ジョイスティックを天井方向にして横のCボタンを押すと、回転位置がリセットされます。
好きな位置になるように任意の角度でいつでも押して結構です。
クレイジースモール3D5FT,6A5FTをラケット代わりに使うことが出来ます。ラケットの表裏はどちらでも結構です。
ジョイスティックを右に傾斜させることでボールを発射できます。
VRモードで遊ぶときには、ジョイスティックを右に5秒傾斜させるとVRの視点がリセットされます。

VRモード

Google CardboardのようなAndroidスマホを入れて使用するゴーグルでVRを楽しめます。
"Play"パネルの"VR"ボタンをクリックするか、もしくは
画面に表示されるVRのゴーグルマークをクリックすることで、VRモードの画面(左右分割の眼鏡のような画面)になります。
ただし、VRモードの場合は、各種パラメータが操作できないため、事前にパラメータを決めてからVRモードで遊んでください。
ボールの発射と視点のリセットはクレイジースモール3D5FT,6A5FTで可能です。(前述)
一応、すべてのタイプには対応してないと思いますが、VRゴーグル付属のコントローラ用にも実装してあります。
トリガーを押すとボールの発射で、トリガーを5秒押すと視点のリセットです。
"Racket"パネルの"Swing"にチェックをいれるとVRゴーグル付属のコントローラでジョイスティック左右でスイングできます。あくまで簡易なものです。
VRモードを解除するにはAndroid画面の戻るボタンを押してください。

フルスクリーンモード

"Play"パネルの[Full Screen]ボタンでフルスクリーンに出来ます。
スマホの場合、はじめに本ゲームをブラウザで読み込むときに横画面で行ってから、フルスクリーンにしてください。
そうしないと、縦画面の解像度のままフルスクリーン化して解像度が低くなってしまいます。
Androidスマホの機種によっては多少画面がずれる場合があります。

ソフトウェアの構成、カスタマイズ、ライセンス

ソフトウェアの構成としましては、CG制御用ライブラリとしてはBabylon.jsを使用してます。
BabylonのライブラリのJavaScriptのいくつかはhtmlファイルから読み込んでます。
Babylon以外のコードはcooyou.org製作です。
音ファイルとしてpon.mp3ファイルを使用してます。
vrpon.htmlが本体のファイルです。Babylon以外のJavaScriptのコードはhtml内に記載されてます。
卓球台やラケットの形状もJavaScriptで配列として定義されてます。
テクスチャはBabylonの関数型テクスチャを使用してます。CSSファイルや画像ファイルやCGモデルファイルは特に利用してません。
cooyou.org製作部分は許可なく自由にカスタマイズいただいて結構です。
Babylonの読み込み以外はローカル環境で動作します。
物理エンジンについては、一般的にはBabylon付属のものや他のものもありますが、本ゲームに関しましては独自の演算を実装しました。
したがいまして物理エンジン部分もcooyou.org製作なので、その部分のカスタマイズも行っていただいても結構です。
また、本ゲーム利用における実況配信や実験、研究、書籍新聞媒体の掲載等も許可不要で自由に行っていただいて結構です。
お問い合わせは、admininfo@cooyou.orgのメールのみで受け付けております。
ライセンス:独自ライセンス(常識的範囲内でなんでも自由)です。
なお、予告なくコードを書き換える場合がありますので、あらかじめご了承ください。
変更したくない方は、すべてのファイルを事前にダウンロードしてローカル環境での実行をおすすめします。
使用しているBabylon関連のファイルはscriptタグのcdnと記載されたリンク先からダウンロードできます。
クレイジースモールの付属ソフトはWindows版はソースを公開してます。Android版は非公開としてます。

カウント表示の説明

CG画面の上のほうにカウントの数字が表示されます。
 ・Pop ボールを発射した回数です
 ・Good 相手コートにボールを返して成功した回数です。成功すると相手コートのボールが弾んだ位置が黄色に光ります。
     成功した場合は自動的にボールが再度発射されます。
     操作によって手動でボールを発射するとリセットされます。
 ・Max 連続して成功した、最大連続回数です。
ページを再読み込みするとすべてリセットされます。

パラメータの説明

各パネルはパネル名をクリックすることで開閉ができます。
blank(ブランク)パネル
 ・VRゴーグルのマークが重なって操作できない場合に、このパネルを開くと少し行位置がずれる。
Play(プレイ)パネル
 ・Pop Ball ボール発射(デバイスで行う場合は使用しない)
 ・Swing Racket ラケットを振る(デバイスで行う場合は使用しない)
 ・Swing Preset ラケットの振り方(デバイスで行う場合は使用しない)
 ・IP Address WebSocketサーバのIPアドレス
 ・Port WebSocketサーバのポート番号
 ・start WebSocketサーバへの接続開始
 ・stop WebSocketサーバへの接続終了
 ・Sound Mute サウンドオフ
 ・Reset VR Device Rotation 視点回転角度のリセット(デバイスで行う場合は使用しない)
 ・VR VRモード(VRゴーグルマークと同じ)
 ・Full Screen フルスクリーンモード
 ・Reset Config 設定リセット
 ・Load ConfigX X番目の設定読み込み。1,2番目はボタン。3番目以降はドロップダウンから番号選択
 ・Save ConfigX X番目の設定保存。1,2番目はボタン。3番目以降はドロップダウンから番号選択
Ball(ボール)パネル
 ・Spin Roll ボール発射の奥行方向を軸とした回転速度。ラケットからボール発射位置を見たときに、プラスが時計回り
 ・Spin Pitch ボール発射のカット、ドライブの回転速度。マイナスがカット、プラスがドライブ
 ・Spin Yaw ボール発射の天井方向を軸とした回転速度。天井方向を見たときにプラスが時計回り
 ・Velocity Left-Right ボール発射の横速度。ラケットからボール発射位置を見たときに、プラスが右
 ・Velocity Upward ボール発射の縦速度。プラスが高い
 ・Velocity Forward ボール発射の奥行速度。プラスが速い
 ・Position Left-Right ボール発射地点の横位置。ラケットからボール発射位置を見たときに、プラスが右
 ・Position Upward ボール発射地点の縦位置。プラスが高い
 ・Position Forward ボール発射地点の奥行位置。プラスがネットに近い
 ・Auto Pop Ball Waitting Time ボール自動発射の待ち時間。msec
 ・Auto Pop Ball Whenever レシーブ成功失敗に関わらずボール自動発射を行う
Racket(ラケット)パネル
 ・Swing VRゴーグル付属コントローラのジョイスティック左右をラケットスイングとする場合はチェックする。
 ・Position Left-Right ラケット横位置。ラケットからボール発射位置を見たときに、プラスが右
 ・Position Upward ラケット縦位置。プラスが高い
 ・Position Forward ラケット奥行位置。プラスがネットに近い
 ・Rubber Repulsive ラバーの反発係数。プラスが反発大きい
 ・Rubber Adhesive ラバーの粘着係数。プラスが粘着大きい
 ・Collision Detection ボールとラケットの衝突検出範囲。プラスが範囲が大きい
Eye(視点)パネル
 ・Auto Rotation ボールを自動的に追う視点にしたい場合にチェックする。VRモードでは通常使用しません。離れた横位置から使用したほうがいいです。
 ・Rotation 視点の回転。スマホを傾けるか、Windowsの場合は画面をドラッグする。
 ・Position Left-Right 視点のラケット位置からの相対横位置。ラケットからボール発射位置を見たときに、プラスが右
 ・Position Forward 視点のラケット位置からの相対縦位置。プラスが高い
 ・Position Forward 視点のラケット位置からの相対奥行位置。プラスがネットに近い
Arm(うで)パネル
 ・Length ラケット回転中心からラケット中心までの長さ。プラスが長い
Elbow(ひじ)パネル
 ・Interlock Upward ラケットを振ったときに、ラケット回転中心位置の上下位置連動の大きさ。プラスが大きい
 ・Interlock Forward ラケットを振ったときに、ラケット回転中心位置の奥行方向位置連動の大きさ。プラスが大きい


cooyou.org