(57)【特許請求の範囲】
【請求項１】
エクササイズ機器と、
前記エクササイズ機器上のユーザからのステアリング入力および頭部回転入力に基づいて、バーチャル・リアリティ・ヘッドセットに表示されたバーチャル・リアリティ環境の基準視点を回転させるか否かを決定するように構成され、前記ステアリング入力が旋回を指示し、かつ、前記頭部回転入力が、ユーザがその旋回の方向を見ていることを指示する場合、前記基準視点を回転させることを決定することを含んでいる、１又は複数のプロセッサと、
を備えるシステム。
【請求項２】
前記ステアリング入力が旋回を指示し、かつ、前記頭部回転入力が、ユーザが前記旋回の方向を見ていないことを指示する場合、前記基準視点を回転させないことを決定することをさらに含む、
請求項１に記載のシステム。
【請求項３】
前記基準視点の回転の大きさは、前記ステアリング入力および前記頭部回転入力に基づいて決定される、
請求項１に記載のシステム。
【請求項４】
前記エクササイズ機器は、速度入力を検出するように構成されている１又は複数のセンサに連結され、前記基準視点の前記回転の前記大きさは、前記速度入力に基づいて決定される、
請求項３に記載のシステム。
【請求項５】
前記プロセッサは、初期設定中央位置から左又は右方向に、頭部位置入力から前記ステアリング入力を決定するように構成され、
前記ステアリング入力を決定することは、前記エクササイズ機器を使用して辺りを見回している間に、ユーザの頭部の自然な動きを補正することを含んでいる、
請求項１に記載のシステム。
【請求項６】
頭部追跡入力は、前記バーチャル・リアリティ・ヘッドセットと関連付けられている、
請求項１に記載のシステム。
【請求項７】
エクササイズ機器と、
１又は複数のセンサからのデータに基づいて、前記エクササイズ機器上のユーザの頭部回転およびユーザの頭部傾きを決定するように構成され、
バーチャル世界内のユーザの視野が、前記視野の速度を決める車両と、頭部が前方を見ている状態で前記視野の基準視点を決める身体と、前記視野の前記視点を決める頭部とによって決定され、そして、バーチャル・リアリティ・ヘッドセットにバーチャル・リアリティ環境を提示するように構成され、
前記頭部回転の方向が前記傾きの方向に向いていることを決定したことに応答して、前記身体に回転を加えることを決定するように構成されている、
１又は複数のプロセッサと、
を備えるシステム。
【請求項８】
ステアリング入力が前記身体の方向に対する前記車両の速度の相対方向を決定する、
請求項７に記載のシステム。
【請求項９】
バーチャル勾配が上りであるときにバーチャル速度が減少し、前記バーチャル勾配が下りであるときに前記バーチャル速度が増大するように、ペダルを踏む速度をバーチャル地形の前記バーチャル勾配によって調節された前記バーチャル速度に変換することをさらに含む、
請求項７に記載のシステム。
【請求項１０】
地形からの高さに比例して下向き速度を制限することによって、バーチャル飛行またはバーチャル落下からバーチャル地形への着地を和らげることをさらに含む、
請求項７に記載のシステム。
【請求項１１】
バーチャル身体が縦揺れまたは横揺れをしないことにより、ユーザのバーチャル視点と前庭（内耳）系との間でユーザの重力感覚を同一に保つ、
請求項７に記載のシステム。
【請求項１２】
１又は複数のセンサからのデータに基づいてエクササイズ機器上のユーザの頭部回転およびユーザの頭部傾きを決定することと、
バーチャル世界内のユーザの視野が、前記視野の速度を決める車両と、頭部が前方を見ている状態で前記視野の基準視点を決める身体と、前記視野の前記視点を決める頭部とによって決定され、そして、バーチャル・リアリティ・ヘッドセットにバーチャル・リアリティ環境を提示することと、
前記頭部回転の方向が前記傾きの方向に向いていることを決定したことに応答して、前記身体に回転を加えることを決定することと、
を含む、
コンピュータで実行される方法。
【請求項１３】
ステアリング入力が前記身体の方向に対する前記車両の速度の相対方向を決定する、
請求項１２に記載の方法。
【請求項１４】
バーチャル勾配が上りであるときにバーチャル速度が減少し、前記バーチャル勾配が下りであるときに前記バーチャル速度が増大するように、ペダルを踏む速度をバーチャル地形の前記バーチャル勾配によって調節された前記バーチャル速度に変換することをさらに含む、
請求項１２に記載の方法。
【請求項１５】
地形からの高さに比例して下向き速度を制限することによって、バーチャル飛行またはバーチャル落下からバーチャル地形への着地を和らげることをさらに含む、
請求項１２に記載の方法。
【請求項１６】
バーチャル身体が縦揺れまたは横揺れをしないことにより、ユーザのバーチャル視点と前庭（内耳）系との間でユーザの重力感覚を同一に保つ、
請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
［0001］  本出願は、米国特許法第１１９条（ｅ）の下で、２０１５年４月１０日付けで出願された、“Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ  Ｅｘｅｒｃｉｓｅ  Ｇａｍｅ”と題する米国特許出願第６２／１４６，１２６号に基づく優先権を主張し、この米国特許出願の内容全体は、参照によって本書に組み込まれる。
【背景技術】
【０００２】
［0002］  運動は、体力と健康およびウェルネス全般を増進または維持する何らかの身体活動である。運動は、筋肉および心血管系を強化する、運動技能を磨く、体重減少または維持などの様々な理由で行われる。米国疾病対策予防センターは、成人が毎週約４時間の運動をすることを勧告する。米国人は、平均すると、これらの勧告に至らない。
【発明の概要】
【０００３】
［0003］  本明細書では、バーチャル・リアリティおよびエクササイズ設備に関連するテクノロジーを説明する。
【０００４】
［0004］  概して、本明細書に記載された主題の革新的な態様は、エクササイズ機器を含むシステムで具現化され得る。このシステムは、エクササイズ機器上のユーザからのステアリング入力および頭部回転入力に基づいて、バーチャル・リアリティ・ヘッドセットに表示されたバーチャル・リアリティ環境の基準視点を回転させるか否かを決定するように構成されている１又は複数のプロセッサをさらに含み、ステアリング入力が旋回を指示し、かつ、頭部回転入力が、ユーザが旋回方向を見ていることを指示する場合、基準視点を回転させることを決定することを含む。
【０００５】
［0005］  概して、本明細書に記載された主題の他の革新的な態様は、エクササイズ機器を含むシステムで具現化され得る。このシステムは、１又は複数のセンサからのデータに基づいて、エクササイズ機器上のユーザの頭部回転およびユーザの頭部傾きを決定するように構成されている１又は複数のプロセッサをさらに含む。センサは、バーチャル・リアリティ・ヘッドセットにバーチャル・リアリティ環境を提示するようにさらに構成され、バーチャル世界内のユーザの視野は、視野の速度を決める車両と、（頭部が前方を見ている状態で）視野の基準視点を決める身体と、視野の視点を決める頭部とによって決定される。プロセッサは、頭部回転の方向が傾きの方向に向いていることを決定したことに応答して、身体に回転を加えることを決定するようにさらに構成されている。
【０００６】
［0006］  本態様の他の実施形態は、それぞれが方法の機能を行うように構成されている、対応するコンピュータシステム、装置、および１又は複数のコンピュータ記憶装置に記録されたコンピュータプログラムを含む。１又は複数のコンピュータのシステムは、システムにインストールされ、運転中にシステムに特定の機能を実行させるソフトウェア、ファームウェア、ハードウェア、またはこれらの組み合わせを有することに基づいて、特定の機能を行うように構成することができる。１又は複数のコンピュータプログラムは、データ処理装置によって実行されたとき、この装置に特定の機能を実行させる命令を含むことに基づいて、特定の機能を行うように構成することができる。
【０００７】
［0007］  本明細書に記載された主題の特定の実施形態は、以下の利点のうちの１又は複数を実現するために実装され得る。エクササイズ機器での運動は、バーチャル世界内の直感的な動きに変換され得る。魅力のある３〜４分のエクササイズループを作成することができる。ユーザは、鍛えるように奨励される可能性がある。運動活動は、より一層楽しめる可能性がある。バーチャル・リアリティと関連する吐き気は、軽減される可能性がある。
【０００８】
［0008］  実施形態は、以下の特徴のうちの１又は複数を単独でまたは組み合わせて含むことがある。基準視点を回転させるか否かを決定することは、ステアリング入力が旋回を指示し、かつ、頭部回転入力が、ユーザが旋回の方を見ていないことを指示する場合、基準視点を回転させないことを決定することをさらに含むことがある。基準視点の回転の大きさは、ステアリング入力および頭部回転入力に基づいて決定されることがある。エクササイズ機器は、速度入力を検出するように構成されている１又は複数のセンサに連結されることがあり、基準視点の回転の大きさは、さらに速度入力に基づいて決定されることがある。プロセッサは、初期設定中央位置から左／右方向に、頭部位置入力からステアリング入力を決定するように構成されることがあり、ステアリング入力を決定することは、エクササイズ機器を使用して、辺りを見回している間に、ユーザの頭部の自然な動きを補正することを含む。頭部追跡入力は、バーチャル・リアリティ・ヘッドセットと関連付けられることがある。ステアリング入力は、身体の方向に対する車両の速度の相対方向を決定することがある。実施形態は、バーチャル勾配が上りであるときにバーチャル速度が減少し、バーチャル勾配が下りであるときにバーチャル速度が増大するように、ペダルを踏む速度をバーチャル地形のバーチャル勾配によって調節されたバーチャル速度に変換することを含むことがある。実施形態は、地形からの高さに比例して下向き速度を制限することによって、バーチャル飛行またはバーチャル落下からバーチャル地形への着地を和らげることを含むことがある。バーチャル身体は、縦揺れまたは横揺れをしないことがあるので、ユーザのバーチャル視点と前庭（内耳）系との間でユーザの重力覚を同一に保つ。
【０００９】
［0009］  本明細書に記載された主題の１つ以上の実施形態の詳細は、添付図面および以下の説明に記述されている。主題のその他の特徴、態様、および利点は、以下の説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】［0010］バーチャル・リアリティ・エクササイズ・システムの実施例を示す図である。
【図２】［0011］バーチャル・リアリティ・エクササイズ・システムの別の実施例を示す図である。
【図３】［0012］バーチャル・リアリティ環境の一部としてユーザへ向けて立体視スクリーン３００に表示されたゲームの実施例を示す図である。
【図４】［0013］バーチャル環境内の視野の変化を決定付けるバーチャル身体の実施例を示す図である。
【図５Ａ】［0014］ステアリング入力および頭部回転に対する車両および身体の応答の実施例を示す図である。
【図５Ｂ】［0015］ステアリング入力および頭部回転に対する車両および身体の応答の実施例を示す図である。
【図５Ｃ】［0016］ステアリング入力および頭部回転に対する車両および身体の応答の実施例を示す図である。
【図５Ｄ】［0017］ステアリング入力および頭部回転に対する車両および身体の応答の実施例を示す図である。
【図５Ｅ】［0018］ステアリング入力および頭部回転に対する車両および身体の応答の実施例を示す図である。
【図６】［0019］車両、身体、および頭部の間の関係の実施例を示す図である。
【図７】［0020］バーチャル・リアリティ・エクササイズ・ゲームを制御するプロセスの実施例のフローチャートである。
【００１１】
［0021］  様々な図面における類似した符号および記号表示は、類似した要素を指し示す。
【発明を実施するための形態】
【００１２】
［0022］  センサは、エクササイズ機器に取り付けられ、バーチャル・リアリティ・システムに統合されることがある。センサによって供給されるデータは、ユーザがバーチャル・リアリティ環境を探索することを可能にする。ユーザが探索することがある種々のバーチャル・リアリティ環境の実施例は、曲がりくねった、険しい渓谷道に沿って進む馬、花の間に挟まる蜂、戦場で他の戦車と戦う戦車、騎士および魔術師との戦闘のさなかにあるドラゴン、波を求めて自分のサーフボードを沖へ漕ぎ出すサーファー、餌を探し回る恐竜、空中を飛行する航空機、および新惑星を探し求めて銀河系を探査する宇宙船を含むが、これらに限定されない。これらの体験の各々は、エンターテインメントを他の日常的なエクササイズの課題と一体化する。
【００１３】
［0023］  エクササイズ・マシンは、動きのシミュレータであるため、バーチャル・リアリティ制御装置として適している。エクササイズ・バイクは、自転車に乗ることをシミュレーションする。ローイング・マシンは、ボートを漕ぐことをシミュレーションし、以下同様に続く。さらに、エクササイズ・マシンは、固定されているので、ユーザの目が、たとえば、バーチャル・リアリティ・ヘッドセットによって覆われているときでも安全に動作する。
【００１４】
［0024］  バーチャル・リアリティ・システムは、大部分は、センサから受信されたデータによって制御されるので、このシステムは、最低限の追加入力しか必要としない。たとえば、（たとえば、親指で押される）簡単なボタン制御器は、ユーザがほとんどの課題を行うために十分であることがある。
【００１５】
［0025］  多くの人は、バーチャル・リアリティ・ヘッドセットを装着するとき、気分の悪い感じまたは不安感を経験し、この不安は、時にはシミュレータ酔いと呼ばれる。シミュレータ酔いは、一種の視覚的に誘発された乗り物酔いである。シミュレータ酔いは、多くの原因を有する可能性がある。たとえば、シミュレータ酔いは、スクリーン上の画像のリフレッシュレートの低さ、動作を行った時と当該動作がバーチャル・リアリティ環境内に現れる時との間の時間差、および視覚刺激と前庭刺激とによって与えられる視運動の間の相違によって引き起こされる可能性がある。
【００１６】
［0026］  バーチャル・リアリティ・ヘッドセットで用いられるハードウェアおよびソフトウェアの改良は、リフレッシュレートおよび時間差に起因したシミュレータ酔いに対処できる。後述のバーチャル・リアリティ・システムは、視覚系および前庭系からの刺激の相違によって引き起こされたシミュレータ酔いを低減または除去できる。
【００１７】
［0027］  バーチャル・リアリティ世界は、立体視ディスプレイに投影された一連の画像により構成され、ユーザは、バーチャル・リアリティ環境の中を進むときに、物理的に移動する必要はないが、簡単にするために、バーチャル・リアリティ環境の中の動きをシミュレーションする視野の変化は、動きの観点から説明されるであろう。
【００１８】
物理的セットアップおよびセンサ
【００１９】
［0028］  図１は、バーチャル・リアリティ・エクササイズ・システムの実施例を示す。本実施例では、自転車１０２は、負荷トレーニング装置１０４、または他の同様の装置の上に設置される。概して、負荷トレーニング装置は、普通の自転車が固定された自転車としての役目を果たせるようにする装置である。自転車の前輪１０６は、回転台１０８の上にある。ハンドルバー１１２を旋回させることは、回転台１０８を軸の周りに回転させる。回転台１０８は、自転車１０２を震動させることなしに自転車のハンドルバーが旋回することを許す。何台かのセンサは、ハンドルバー１１０および／または前輪１０６の角回転を測定できる（ハンドルバーの回転が車輪の回転を引き起こす）。何台かのセンサは、ペダル組立体１１２または後輪１１４の回転を測定できる。本実施例では、ペダル組立体１１２の回転は、後輪１１４の１回以上の回転を引き起こす。
【００２０】
［0029］  ハンドルバーおよび／または車輪の回転は、たとえば、回転を検出または回転の角度測定する能力があるポテンショメータまたはその他のセンサによって検出することができる。ハンドルバー１１２および／または前輪１０６の回転を検出するために用いられるセンサは、本書では、ステアリングセンサと呼ばれる。ステアリングセンサは、回転の大きさおよび方向を測定できる。一部の実装では、ステアリングセンサからの信号は、車輪および／またはハンドルバーの角度を決定するために十分である。一部の実装では、ステアリングセンサは、回転台１０８に連結され得る。一部の実装では、ステアリングセンサは、ハンドルバーに連結され得る（たとえば、回転センサは、自転車のステアチューブまたはハンドルバーに連結されることがある）。センサは、センサが通常運転中に（たとえば、ユーザがトレーニング装置１０４から自転車１０２を取り外し、屋外で自転車を使用する場合に）取り外される必要がないように自転車に連結されることがある。
【００２１】
［0030］  その他のステアリング装置およびステアリングセンサが用いられ得る。たとえば、ステアリング装置は、ジョイスティック、コントロールパッド（たとえば、ゲームパッドもしくはＤパッド）、またはその他の類似した装置を含むことがあり得る。ステアリングセンサは、装置内に埋め込まれることがあり、ユーザによって実行された動き制御を表すデータを送信することがある。
【００２２】
［0031］  ペダル組立体１１２または後輪１１４の回転は、加速度計によって測定され得る。ペダル組立体１１２または後輪１１４の回転は、（たとえば、後輪に置かれたマークを計数することにより）車輪もしくはペダル組立体の回転を検出する光電子センサによって測定され得る。ペダル組立体または後輪の回転は、たとえば、リードスイッチまたは「ホール効果」センサなどの１又は複数の磁気センサの傍を通り過ぎる付属磁石によってさらに測定され得る。本書で用いられる通り、ペダル組立体または後輪の回転を検出するために用いられるセンサは、速度センサと呼ばれる。
【００２３】
［0032］  一部の実装では、ユーザ作動型制御器１１０は、ハンドルバー１１０に連結されている。ユーザ作動型制御器は、たとえば、ボタン、スイッチ、コントロールパッド、またはその他の装置でもよい。ユーザ作動型制御器は、複数のボタン、スイッチ、またはその他の制御器をさらに含むことがある。ユーザ作動型制御器は、ユーザが自分の手をハンドルバー１１０から離すことなしにユーザ作動型制御器に届くように設置されることがある。ユーザ作動型制御器に統合されたセンサは、ユーザがユーザ作動型制御器１１０を操作したことを決定することができる。一部の実装では、ユーザ作動型制御器からのデータは、ステアリング入力として用いられることがある。
【００２４】
［0033］  ユーザ１１６は、バーチャル・リアリティ・ヘッドセット１１８または類似した装置を装着している間に自転車１０２に乗る。バーチャル・リアリティ・ヘッドセット１１８は、視覚および／または音声刺激をユーザに送る。バーチャル・リアリティは、概して、現実の世界または想像の世界の中の所々で物理的存在をシミュレーションすることができるコンピュータでシミュレーションされた環境を指す。バーチャル・リアリティ・ヘッドセットは、バーチャル・リアリティをユーザに提示する立体視ディスプレイを含むことができる。
【００２５】
［0034］  バーチャル・リアリティ・ヘッドセットは、前／後への動き、左／右への動き、上／下への動き、縦揺れ、横揺れ、および左右揺れなどのヘッドセットの動きを検出することができるセンサを含むことがある。ユーザの頭部の動きを検出するセンサは、概して、頭部センサと呼ばれる。
【００２６】
［0035］  頭部センサは、ヘッドセットの前／後、左／右、および上／下への動きを検出する頭部位置センサを含むことができる。ヘッドセンサは、ヘッドセットの縦揺れ、左右揺れ、および横揺れを検出する頭部回転センサをさらに含むことができる。一部の実装では、頭部位置センサおよび頭部回転センサは、同じセンサとすることができる。
【００２７】
［0036］  センサによって供給されたデータは、コンピュータシステム１２０に供給することができる。センサは、無線もしくは有線のいずれかまたは両方の接続を介してコンピュータシステム１２０に接続することがある。たとえば、ステアリングセンサ、速度センサ、およびユーザ制御器は、無線接続（たとえば、Ｂｌｕｅｔｏｏｔｈ（登録商標）接続）を介してコンピュータシステム１２０にデータを供給することがある。バーチャル・リアリティ・ヘッドセットは、（たとえば、コンピュータ上のＵＳＢポート（図示せず）に接続された）有線接続を介してコンピュータシステム１２０にデータを供給すること、または、組み込みコンピュータシステム（たとえば、Ｓａｍｓｕｎｇ  Ｇｅａｒ  ＶＲなどのＶＲ能力がある携帯電話機）と通信することがある。一部の実装では、センサデータは、コンピュータシステム１２０に送られる前に暗号化され得る。
【００２８】
［0037］  たとえば、自転車１０２またはローイング・マシン（図示せず）などのエクササイズ設備を操作するユーザは、姿勢強制的な初期設定頭部位置にある。その結果、センサからのデータが初期設定位置からの変化を決定するために使用されることを許す静止または開始位置を確定することができる。たとえば、頭部の左／右位置の変化は、ユーザが特定の方向に傾いていることを決定するために用いられ得る。
【００２９】
［0038］  センサは、速度の測定値、ステアリングの測定値（たとえば、ハンドルバーまたは他のステアリング装置に加えられた旋回の程度）、頭部回転の度合い（静止前向き位置からの縦揺れ、横揺れ、および左右揺れの角度）、頭部の左右位置の測定値（たとえば、自転車上のユーザが右に傾いている場合、センサに頭部の位置が右であることを指示させるであろう）を供給することができる。センサは、ユーザ作動型制御器データ（たとえば、ユーザがボタンを押したという指示）も供給することができる。
【００３０】
［0039］  一部の実装では、センサは、頭部の前方および後方の位置の程度も供給することができる。
【００３１】
［0040］  センサは、周期的に、または、データが変化したときにデータをコンピュータシステムに供給することができる。たとえば、センサは、３０ヘルツでサンプリングされることがある。一部の実装では、データの一部または全部は、データの突然の変化を取り除くために２次フィルタによって処理されることがある。
【００３２】
［0041］  図２は、バーチャル・リアリティ・エクササイズ・システムの別の実施例を示す。本実施例では、固定された自転車２０２は、バーチャル・リアリティ・システムと連動して用いられる。
【００３３】
［0042］  図１の自転車１０２とは異なって、固定された自転車２０２は、可動ハンドルバーがないことがある。このシナリオでは、ステアリングセンサは、省かれることがある。その代わりに、システムは、ステアリング入力としてユーザの傾きを用いることがある。
【００３４】
［0043］  代替的または付加的に、ステアリング入力は、たとえば、固定された自転車のハンドルバーに取り付けられたコントロールパッドまたはその他の装置を使用して、ユーザ作動型制御器から受信されることがある。固定された自転車２０２は、自転車と呼ばれるが、固定された自転車は、２個の車輪またはいずれかの車輪がなくてもよいことを理解すべきである。その代わりに、固定された自転車は、自転車に乗る身体的経験をシミュレーションするエクササイズ設備のどんな部品にもなり得る。
【００３５】
［0044］  固定された自転車上のセンサは、ペダル組立体２０６または駆動輪２１４の回転を測定することができる。本実施例では、ペダル組立体２０６の回転は、駆動輪２１４の１回以上の回転を引き起こす。一部の実装では、固定された自転車は、露出した駆動輪２１４がないかもしれない。このシナリオでは、速度センサは、ペダル組立体に取り付けられることがある。
【００３６】
［0045］  ペダル組立体２０６もしくは駆動輪２１４（または、ペダル組立体２０６の回転によって駆動される他の車輪もしくは装置）の回転は、前述の通り、速度センサによって測定され得る。
【００３７】
［0046］  一部の実装では、ユーザ作動型制御器（図示せず）は、ハンドルバー２０４に連結される。ユーザ駆動型制御器は、たとえば、ボタン、スイッチ、コントロールパッド、または他の装置でもよい。ユーザ駆動型制御器は、複数のボタン、スイッチ、コントロールパッド、または他の装置をさらに含むことがある。ユーザ駆動型制御器に統合されたセンサは、ユーザがユーザ駆動型制御器を作動させたことを決定することができる。
【００３８】
［0047］  ユーザ２０６は、バーチャル・リアリティ・ヘッドセット２１０または類似した装置を装着している間に、固定された自転車２０２に乗る。前述の通り、バーチャル・リアリティ・ヘッドセットは、前／後への動き、左／右への動き、上／下への動き、縦揺れ、横揺れ、および左右揺れなどのヘッドセットの動きを検出することができるセンサを含むことがある。
【００３９】
［0048］  センサによって供給されたデータは、前述の通り、コンピュータシステム２１２に供給することができる。
【００４０】
［0049］センサデータの解釈
【００４１】
［0050］  コンピュータシステムは、速度、傾き、ステアリング入力、および頭部回転の角度を計算するためにセンサからのデータを使用することができる。
【００４２】
［0051］  速度は、ペダル回転または車輪回転のいずれかを距離に変換し、次に、この距離を直前のサンプリングから経過した時間で割ることにより計算されることがある。速度センサがペダル組立体の回転を測定する実装では、システムは、一定の制動減速度を適用することによりペダルを踏む動作の停止を補正することがある。
【００４３】
［0052］  バーチャル環境の内部では、ユーザがバーチャル・リアリティ環境内で進む方向は、ベクトルを使用して記述されることがある。バーチャル・リアリティ環境内のユーザの速度は、方向を表す単位ベクトルに速度を乗じることによって決定されることがある。
【００４４】
［0053］  速度は、バーチャル・リアリティ環境が必要とするものに基づいて調整されることがある。たとえば、乗馬バーチャル・ゲームでは、速度は、２倍にされることがある。競馬バーチャル・ゲームでは、速度は、２．２５などを乗じられることがある。
【００４５】
［0054］  頭部傾きは、バーチャル・リアリティ・ヘッドセットによって報告された通りの頭部の左／右位置に基づいて決定されることがある。コンピュータは、ある一定の閾値未満であるバーチャル・リアリティ・ヘッドセットの位置の変化が傾きを表さないことを決定することがある。たとえば、０．２メートル、すなわち、２０センチメートル以下である位置の変化は、無視されることがある。頭部傾きは、ステアリング入力の程度に変換され得る。たとえば、頭部傾きは、定数を乗じる、または、定数で割ることができる。定数は、ユーザが設定できることがあるので、ユーザは自分が好む傾きの量を設定することがある。
【００４６】
［0055］  一部の実装では、傾きの計算は、ユーザが見ている方向に基づいて調整されなければならない。概して、ユーザが自分の頭部を旋回させると、バーチャル・リアリティ・ヘッドセットがユーザの顔の上に搭載されるので、バーチャル・リアリティ・ヘッドセットの位置が変化する。たとえば、ユーザが右の方を向いている場合、ヘッドセットの左／右位置は、より一層右寄りであろう。ユーザが左の方を向いている場合、ヘッドセットの左／右位置は、より一層左寄りであろう。コンピュータシステムは、ユーザが見ている方向に基づいて傾きの計算を減らすまたは増やすことによって補正することができる。
【００４７】
［0056］  頭部の旋回を補正するコンピュータプログラムの実施例を、以下に示す、頭部幅は、旋回軸からバーチャル・リアリティ・ヘッドセットまでの距離である：
頭部傾き＝左／右頭部センサ位置
もし（頭部回転角＞中心からの偏り９０度）ならば、
頭部傾き＝頭部傾き−頭部幅；
さもなければ、
頭部傾き＝頭部傾き−頭部幅＊ｓｉｎ（頭部回転角）；
【００４８】
［0057］  一部の実装では、ステアリング挙動を決定するために、システムは、複数の異なる入力を受け取ることができる。たとえば、ユーザは、自転車のハンドルバーを回転させることによりステアリングを指示することがある。ユーザは、ゲームコントローラのキーボード上の方向制御ボタンを操作することによりステアリングを指示することもある。ユーザは、自転車の一方側に傾くことによりステアリングをさらに指示することがある。傾きは、ユーザによって装着されたバーチャル・リアリティ・ヘッドセットの左／右への動きに基づいて検出され得る。
【００４９】
［0058］  システムが複数のステアリング入力を受信し、各々のステアリング入力が同じ方向へのステアリングを指示する場合、ステアリングの方向および大きさは、最大ステアリング量に基づいて決定され得る。たとえば、ユーザがハンドルバーを右へ回転させると共に右に傾く場合、ステアリングの量は、どの入力が右の方へより大きいステアリングをもたらしたかに基づいて決定され得る。同様に、ユーザがハンドルバーを左へ回転させると共に左に傾く場合、ステアリングの量は、どの入力が左の方へより大きいステアリングをもたらしたかによって決定され得る。しかしながら、システムが複数のステアリング入力を受信し、各ステアリング入力が異なる方向へのステアリングを指示する場合、ステアリングの量は、旋回入力を合計することにより決定され得る。たとえば、ユーザがハンドルバーを少し右に回転させ、大きく左に傾く場合、システムは、僅かに左へステアリングを切ることを決定することができる。同様に、ユーザがハンドリバーを大きく右に回転させ、少し左に傾く場合、システムは、僅かに右へステアリングを切ることを決定するであろう。
【００５０】
［0059］  一部の実装では、左へのステアリングは、零未満の数を含むデータによって指示されることがあり、右へのステアリングは、零より大きい数を含むデータによって指示されることがある。このような実装において、以下は、演算を行うために用いられ得る疑似コードの実施例である。
【００５１】
［0060］        もし（ハンドルバーおよび傾きが同じ方向である）ならば
｛
もし（両方共に右の方である）ならば
ハンドルバーおよび傾きの最大値を返す
さもなければ
ハンドルバーおよび傾きの最小値を返す
｝
さもなければ
ハンドルバーおよび傾きの合計を返す
｝
【００５２】
［0061］  ステアリング入力は、バーチャル環境の視野を変化させるためにシステムによって使用され得る。
【００５３】
［0062］  一部の実装では、前／後の頭部位置は、車両のピッチを制御するために使用され得る。たとえば、前方へ傾けることは、バーチャル航空機を急降下させることがあるが、後方へ傾けることは、バーチャル航空機を上昇させることがある。
【００５４】
［0063］キャリブレーション
【００５５】
［0064］  一部の実装では、コンピュータシステムは、エクササイズまたはゲームセッションが始まるとき、ユーザにセンサを構成するように促すことがある。たとえば、ユーザがバーチャル・リアリティ・ヘッドセットを装着するとき、ユーザは、期待しているプロンプト要求を受信し、ペダルを踏み始めることがある。ユーザが所定の期間（たとえば、ある程度の秒数）にわたって所定の速度（たとえば、毎分ある程度の回転数）でペダルを踏み始めると、システムは、センサからのデータに基づいてシステムをキャリブレーションすることがある。ユーザは、センサをキャリブレーションするように促されたとき、１又は複数のボタンを押下することもある。
【００５６】
［0065］  一部の実装では、システムは、ユーザが１〜２秒間にわたって毎時２〜３マイル相当でペダルを踏むことを要求することがある。自転車は固定されているので、自転車の１時間当たりのマイル数は、ユーザが自転車のペダルを踏んでいる速度、後輪または駆動輪が動いている速度などに基づいて決定されることがある。
【００５７】
［0066］  このキャリブレーションプロセスは、たとえば、バーチャル・リアリティ環境内のバーチャル車両および身体の初期方向を決定することと、ユーザが前方として見る方向に対応するユーザの頭部の初期姿勢および位置と、前方向に対応するステアリングデータとを決定することとを含むことがある。
【００５８】
［0067］  キャリブレーションされると、システムは、位置的速度と回転または角速度（旋回）とを決定するためにセンサからデータを受け取ることができる。前述の通り、速度は、ペダル組立体または駆動輪の回転数に基づいて決定され得る。
【００５９】
［0068］バーチャル・リアリティ内の動き
【００６０】
［0069］  図３は、バーチャル・リアリティ環境の一部としてユーザへの立体視スクリーン３００に表示されたゲームの実施例を示す。バーチャル・リアリティ環境は、コンピュータシステム（たとえば、パーソナルコンピュータ）によって生成され、制御され得る。ユーザに提示されるべきグラフィックスまたは画像は、たとえば、グラフィックスカードなどの専用ハードウェアを用いて作成され得る。図形は、それぞれの目に１台ずつで２台のモニタ（たとえば、モニタ３１２、３１４）を含んでいるヘッドセットを介してユーザに配信され得る。各モニタは、同じ３次元モデルについての僅かに異なる画像投影を表示する。これらの画像は、奥行きという錯覚を与える立体視効果を生み出す。概して、バーチャル・リアリティにおける立体視ディスプレイは、ユーザの立体視覚を模倣するので、各モニタに表示された画像は、（たとえば、約６５ｍｍずつ）僅かにずらされる。
【００６１】
［0070］  ユーザは、（たとえば、ペダルを踏む、辺りを見回す、傾く、または自転車を旋回せせるなどによって）入力を提供し、コンピュータシステムは、この入力を速度および回転速度に変換する。これらの入力は、ユーザを３次元モデルの中でナビゲートするために用いられる。バーチャル環境の至る所での動きは、投影面の位置を変化させ、その結果、モニタに投影される画像を変化させる。
【００６２】
［0071］  投影は、３次元の点を２次元平面にマッピングする何らかの方法を指す。グラフィックデータを表示する大部分の現在の方法は、２次元スクリーンに基づいているので、この種の投影の使用は、特に、コンピュータグラフィックス、エンジニアリングおよび製図において普及している。立体視覚のため、投影は、左眼に提示される画像に対して１回および右眼に提示される画像に対して１回の２回行われる可能性がある。
【００６３】
［0072］  ディスプレイ３００は、３次元風景の立体画像を示す。本実施例では、この風景は、谷を歩き回る通り道３０４を含む。本実施例では、ユーザは、見えないが、馬３０２は、部分的に見える。馬３０２の画像は、ユーザが馬３０２に乗っている視覚をユーザに与えるように構成されている。
【００６４】
［0073］  谷の背景には、木々およびその他の環境特徴が存在し得る。馬は、通り道３０４に沿って進むように制約されることはなく、バーチャル環境の中をどの方向でも自由に進むことがある。ユーザは、バーチャル環境の中で馬に「乗る」ことがある。環境は、丘および谷を含むことがある。
【００６５】
［0074］  通り道３０４に沿って、ユーザが通過するように促されるゲート３０６が存在することがある。たとえば、システムは、飛ばされたゲートの個数を集計することがある。
【００６６】
［0075］  図４は、バーチャル環境内の視野の変化を決定付ける相互に接続された車両、身体、および頭部で構成されたバーチャル装備の実施例を示す。概念車両４０２は、バーチャル環境を横断するために用いられる。明確にするために、ガイド４１０は、バーチャル空間内の動きの範囲を示す。たとえば、ガイド４１０は、前、後、右、左、上、下、横揺れ、縦揺れ、および左右揺れを表す。これらの動きは、バーチャル環境の中を横断するためにどんな順番で組み合わされてもよい。
【００６７】
［0076］  車両４０２は、環境の中の動きの方向および速度を決定する。車両は、どの方向へも、すなわち、前／後、上／下、左／右、縦揺れ、横揺れ、または左右揺れの方向に動くことがある。概して、車両は、車両の速度の方向に向いている。車両４０２の動きは、バーチャル環境（たとえば、地面、木々、および形状におけるその他の物体）の形状に基づいて制約されることがあり、または、車両は、これらの制約と無関係に進む（たとえば、飛行する、地面、木々などをかすめる）ことができるかもしれないが、一般的に言えば、一部のユーザは、地面をかすめ、急降下することが心地良くないと感じることがある。車両は、バーチャル環境内に提示されること、または、提示されないことがある。図３を再び参照すると、車両は、馬３０２によって表現されている。
【００６８】
［0077］  図４を再び参照すると、身体４０４は、車両に配置される可能性がある。前／後、上／下、および右／左方向への身体動作は、車両から継承される。しかしながら、身体の左右揺れの動きは、車両と無関係に決定されることがあり、車両の左右揺れと、車両の進行の方向とを決定することがある。大部分の実装では、身体は、横揺れまたは縦揺れをしない。概して、多くのアプリケーションでは、バーチャル身体に横揺れまたは縦揺れを加えることは、ユーザは、概して、重力が下に引っ張っていることを予期するので、ユーザの方向感覚を失わせる可能性がある。縦揺れまたは横揺れの変化は、重力を変更するので、バーチャル身体への重力の影響は、ユーザの実際の身体への重力の影響とは異なる。ユーザへの実際の引力とバーチャル・リアリティ環境内の見かけの引力との間の差は、方向感覚の喪失および不快感を引き起こす可能性がある。
【００６９】
［0078］  身体は、バーチャル環境内に表現されることも表現されないこともある。たとえば、図３では、身体は、図形として描画されていない。身体は、面している方向、すなわち、頭部４０６が前方を向いているときにユーザが面している方向の基準視点を決定する。
【００７０】
［0079］  頭部４０６は、身体４０４の真上または真下に配置される。頭部の動きは、身体４０４の位置および回転を継承し、ユーザの実際の頭部を追尾するためにさらに移動または回転させられる。頭部４０６が静止しているときに（たとえば、バーチャル・リアリティ装置のユーザが正面を見ているときに）顔を向ける回転角は、バーチャル身体４０４の回転角と揃えられる。
【００７１】
［0080］  一部のユーザは、バーチャル環境に身を置くことが乗り物酔いの症状に類似した症状を生じさせるときに起こる可能性があるシミュレータ酔いを経験することがある。たとえば、ユーザは、むかつき、吐き気、発汗、方向感覚の喪失などを経験することがある。シミュレータ酔いは、感覚混乱（たとえば、内耳はユーザは動いていないことを示唆するが、視覚入力はユーザが動いていることを示唆すること）によって引き起こされることがある。シミュレータ酔いは、以下にさらに記述された通り、ステアリングセンサからのデータと頭部センサからのデータとの組み合わせを使用することにより低減されることがある。
【００７２】
［0081］  ステアリングセンサから供給されたデータは、ユーザが旋回することを望むことを指示することがある。たとえば、ステアリング入力は、車両４０２が新しい方向に進むために左右に揺れる（上／下軸の周りに回転する）ことを指示することがある。左右揺れは、前／後方向への動きを伴うことがある。バーチャル・リアリティ・システムがユーザの実際の頭部とは全く異なってバーチャル頭部を回転させる原因になる場合、ユーザは、不快感を経験することがある。頭部は、身体と一緒に回転するので、このことは、ユーザの前庭覚と相関しないようなバーチャル身体の旋回によっても引き起こされ得る。
【００７３】
［0082］  それどころか、バーチャル・リアリティ・システムは、車両が旋回しているときに、身体４０４が左右に揺れるべきか否かを決定するために頭部センサからの追加データを使用できる。たとえば、頭部センサからのデータが、ユーザは旋回の方を見ていること（すなわち、ユーザが旋回の方向を見ていること）を指示する場合、身体４０４は、車両に沿って左右に揺れるが、頭部センサからのデータが、ユーザは旋回の方を見ていないこと（すなわち、ユーザが真っ直ぐ前を見ている、または、違う方向を見ていること）を指示する場合、身体４０４は、車両と一緒に左右に揺れない。身体は、その代わりに、基準方向と相対的に身体の角度位置を維持する。身体と相対的な最大旋回が実施され得る。たとえば、車両は、中心から（頭部の静止位置から）３０度の最大旋回に制限されることがある。
【００７４】
［0083］  システムが身体を旋回させる（左右に揺らす）ことを決定するシナリオでは、旋回の大きさは、車両回転角、ステアリング入力、および頭部回転角（左右揺れ）に基づいて制限され得る。一実装では、旋回の大きさは、頭部回転が車両回転を超えない限り頭部回転（または、頭部回転と車両回転とのうちの小さい方）によって決定され得る。一部の実装では、身体に加えられる左右揺れの量は、旋回入力の量に至るまでユーザが旋回の方を見ている量に比例する。その結果、ステアリング入力がない場合、ユーザは、身体に左右の揺れを加えることなくバーチャル風景を見回すために自分の頭部を自由に旋回させることができる。
【００７５】
［0084］  旋回動作を行う疑似コードの例を以下に記載する：
【００７６】
もし（頭部回転角＞＝０  ＆＆  車両回転角＜＝０）ならば
身体回転速度＝０
さもなければ、もし（頭部回転角＜＝０  ＆＆  車両回転角＞＝０）ならば
身体回転速度＝０
さもなければ、もし（頭部回転＞０）ならば
身体回転速度＝クランプ（頭部回転，０，車両回転）
さもなければ
身体回転速度＝クランプ（頭部回転，車両回転，０）
【００７７】
［0085］  上記旋回動作は、シミュレータ酔いと関連する不快感を軽減することができるが、その理由は、このアルゴリズムが、ユーザが旋回の方向の方を見ていないときにバーチャル身体がステアリング入力と一緒に回転することを防止することによって、バーチャル身体の回転速度を起動するために（ステアリング入力の限界まで）ユーザに自分の頭部を回転させることができるからである。旋回の方を見ていないので、ステアリング入力は、車両回転に変換され、この車両回転は、速度方向に影響を与えるが、ユーザの回転視野を変化させない。
【００７８】
［0086］  たとえば、車両が前進速度を有するシナリオでは、ユーザは、ステアリング入力が中央にある状態で最初に真っ直ぐ前を見る。ユーザは、次に、たとえば、左／右方向に傾くことにより、一方側にステアリングを切ることを指示する。ユーザが自分の頭部も旋回しない場合、バーチャル動作は、高速道路上で陸地を変化させることに類似する。ステアリング入力が再び中央にある（たとえば、ユーザが身体をまっすぐに起こしている）とき、車両は、これの初期方向（身体と同じ方向）に戻る。これが起こるのは、身体がこの動作中に旋回せず、車両回転が身体と相対的であるからである。他方で、ユーザが一方側にステアリングを切るのと同時に自分の頭部を旋回させる（旋回の方を見る）とき、車両の挙動は、身体が回転している通りに弧、たとえば、曲線を道路に描く。方向転換の最後に、車両および身体は、新たな異なる方向に向いているであろう。
【００７９】
［0087］  図５Ａ〜図５Ｅは、ステアリング入力および頭部回転角に対する車両および身体の応答の実施例を示す。前述の通り、頭部の角度は、ユーザによって装着されたバーチャル・リアリティ・ヘッドセットの角度に基づいて、それ故に、ユーザの実際の頭部の角度によって決定される。図５Ａを参照すると、３つの三角形は、車両５０２、身体または基準視点５０４、および頭部５０６を表現している。黒点は、車両５０２、身体５０４、および頭部５０６の「正面」を表現している。同図において、車両５０２、身体５０４、および頭部５０６は、整列されている。ユーザの視野の位置速度は、車両５０２によって指示された方向にある。回転速度は、車両５０２、身体５０４、または頭部５０６のいずれにも関連付けられていない。
【００８０】
［0088］  図５Ｂを参照すると、図５Ａによって説明された時点以降のある時点で、システムは、ステアリング入力５０８を受信する。システムは、頭部５０６がステアリング入力５０８の方向に旋回したかどうかを確かめる。本実施例では、頭部５０６は、旋回の方向に回転していない。回転速度は、車両５０２に加えられるが、回転速度は、身体５０４には加えられない。車両の回転速度の大きさは、ステアリング入力５０８に基づいて決定され得る。
【００８１】
［0089］  一部の実装では、車両が旋回させられる量は、ステアリング入力に比例し、上限は、身体または基準視点の角度からの３０度である。他の実装では、車両回転は、車両の回転速度を決定するためにステアリング入力を使用して連続的に駆動されることがある。前述の通り、ユーザの視野の位置速度は、車両５０２によって指示された方向にある。
【００８２】
［0090］  図５Ｃを参照すると、ステアリング入力５０８は、継続して加えられるが、今度は、頭部５０６の角度が旋回の方向にある。ステアリング入力５０８および頭部５０６の角度に基づいて、システムは、回転速度を身体５０４に加え、身体をステアリング入力５０８の方向に旋回させる。一部の実装では、身体５０４の回転は、車両５０６の回転に遅れを取ることがある。
【００８３】
［0091］  図５Ｄを参照すると、ステアリング入力が取り除かれている。身体５０４は、動いて車両５０２と整列している。ステアリング入力なしで、頭部５０６は、回転速度を身体５０４に加えることなく自由に回転する。すなわち、ユーザは、身体を旋回させることなく辺りを見回すことがある。
【００８４】
［0092］  図５Ｅを参照すると、車両５０２、身体５０４、および頭部５０６が整列し、ステアリング入力は加えられていない。ユーザの位置速度は、車両５０２によって指示された方向にある。
【００８５】
［0093］  システムは、ユーザが旋回を達成するためにある速度を持つことを要求する非ホロノミック拘束を強制することもできる。これは、たとえば、「急旋回」の感覚を防ぐために用いられることがある。同様に、システムは、高いバーチャル速度でステアリング入力の効果を制限することがある。たとえば、低速でのステアリング入力は、高速でのステアリング入力より大きい効果があるかもしれない。これは、たとえば、制御不能になる感覚を防ぐために用いられることがある。一部の実装では、システムは、ステアリング入力によって引き起こされる旋回の量を速度閾値まで増加させ、次に、その後のステアリング入力によって引き起こされる旋回の量を減少させることがある。
【００８６】
［0094］  速度センサからのデータは、ユーザがバーチャル環境の中を進む速度を決定するために入力として供給される。速度は、バーチャル地形に基づいて調整され得る。たとえば、システムは、見かけの勾配に基づいて環境の中のユーザの速度も変更することがある。たとえば、ユーザは、上り坂を進むとき、減速させられ、同じ見かけ速度を維持するためにユーザにより速くペダルを踏むことを強いることがあるが、同様に、ユーザは、下り坂を進むとき、加速させられることがある。以下は、軸方向勾配（ユーザ方向の前方平面／後方平面）（たとえば、バーチャル丘の上りまたは下り）に従って速度を制御する疑似コードの実施例である。
【００８７】
［0095］        もし（上り勾配）ならば
｛
速度＝速度＊（１＋０．５＊ラジアン単位の下向き角度と、１．５とのうちの最小値）
｝
さもなければ
｛
速度＝速度＊（１＋１．４１４＊ラジアン単位の上向き角度と、０．１とのうちの最大値）
｝
【００８８】
［0096］  前述の通り、ユーザの速度に対する調整は、非対称でもよい。たとえば、ユーザは、下り坂を進みながら加速するよりも、上り坂を進みながら大きく減速させられることがある。一部の実装では、下り坂速度は、上限が通常の速度の１．５倍である。
【００８９】
［0097］  ユーザがシミュレータ酔いに悩まされる可能性を低下させるために、システムは、最大降下角を制限できる。たとえば、システムは、速度ベクトルを上方または下方４５度未満に制限することがある。
【００９０】
［0098］  一部のバーチャル・リアリティ体験は、フライトシミュレーションを含むことがある。たとえば、ユーザが所定の速度で動いていることを指示する速度センサからデータを受信することは、車両を「飛行」させる可能性がある。すなわち、ユーザの視野は、地面を離れ、上方に移動するであろう。ユーザが速度を下げる場合、ユーザの視野は、地面（陸地）に戻ることがあるが、降下し着陸する体験は、ユーザにとって不快である可能性がある。これらの視覚は、出現しない衝撃を予期するようにユーザに伝えるか、または、ユーザは、心の中で衝撃を与える。ユーザの不快感を軽減するために、システムは、衝撃の感覚を最小限に抑えるために着陸を円滑にすることがある。
【００９１】
［0099］  ユーザが、着陸操作としてまたは自由落下の一部としてバーチャル地面に向かって降下するとき、システムは、衝撃の感覚を低減するために下降および上昇の勾配を調整することがある。ユーザの降下は、滑らかな着陸のため調整されることがある。ユーザの降下は、小さな衝撃を与えるようにさらに調整されることがある。たとえば、一部の実装では、システムは、もし地面が実際の地面より０．５メートル低ければ滑らかな着陸となる着陸軌道を確立するように構成されている。これは、バーチャル・リアリティ・システムのユーザに過度に不安にさせることがない僅かな衝撃を与える。これらの演算を行う疑似コードの実施例が以下に記載される。
【００９２】
［0100］        もし（ユーザが空中でバーチャル高度１０メートル）ならば
｛
速度内積＝地面ベクトルの法線と速度ベクトルとの内積；
浮動小数最小垂直速度＝−速度内積＊現在速度．大きさ−プレーヤが選択するファクタ＊（衝突．距離−閾値）；
もし（最小垂直速度＞アクティビティプロファイル．上昇速度）ならば
最小垂直速度＝アクティビティプロファイル．上昇速度
もし（現在速度．ｙ＜最小垂直速度）ならば
現在速度．ｙ＝最小垂直速度；
｝
｝
【００９３】
［0101］  システムは、シミュレーションの終端垂直速度をさらに調整する。たとえば、終端速度は、下向き方向に３バーチャルメートル／秒であることを決定されることがある。
【００９４】
［0102］  システムは、ユーザが横断勾配に沿って進んでいる（たとえば、丘を横切って進んでいる）ときに、速度も調整することができる。たとえば、ユーザは、丘の勾配に比例して減速させられることがある。以下は、横断勾配に沿って速度を制御する疑似コードの実施例である：
【００９５】
［0103］        速度＝速度＊（０．０１と、１．０−０．５＊地面へのベクトルと横断勾配を記述するベクトルとの内積の絶対値と、のうちの最大値）
【００９６】
［0104］  物理エンジン、またはその他のシステムは、たとえば、衝突に応答して、バーチャル車両の速度の変更を必要とすることがある。車両は、新しい速度の方向に進むように回転させられることがある。シミュレータ酔いの可能性を低下させるために、システムは、車両の回転にもかかわらず、（基準視点を表現する）一定の身体回転を維持することがある。衝突後に、車両の回転および速度は、身体回転と一致するように復元されることがある。
【００９７】
［0105］  図６は、車両６０８、身体６１０、および頭部６１２の間の関係の例を示す。前述の通り、身体６１０は、バーチャル・リアリティ環境によって表現されることも表現されないこともある。一部の実装では、身体は、ユーザの実際の頭部が初期設定または静止位置にあるときにユーザが見る方向を指示する基準回転ベクトルである。
【００９８】
［0106］  車両６０８は、角度６０２によって表現された、（平行点線６１４ａ、６１４ｂ、６１４ｃによって表現された）基準方向と相対的な角度に方向を合わされる。基準方向と相対的な身体６１０の角度は、角度６０６によって表現される。頭部６１２の角度は、角度６０４によって表現される。ステアリング入力は、角度６１６によって表現され得る。ステアリング入力は、前述の通り身体６１０に関して車両の旋回を駆動する。
【００９９】
［0107］  一部の実装では、身体の回転速度は、頭部の角度６０４が角度６０６と車両６０２の角度との間にある（たとえば、車両６０２の角度が頭部の角度６０４より大きく、頭部の角度６０４が身体６０６の角度より大きい）ときに、頭部の角度６０４マイナス身体の角度に比例する。
【０１００】
［0108］  一部の実装では、身体の回転速度は、頭部の角度６０４が車両の角度６０２より大きいときにステアリング入力の角度６１６に比例する。
【０１０１】
［0109］  一部の実装では、身体の回転速度は、身体の角度６０６が頭部の角度６０４より大きいときに０である。
【０１０２】
［0110］  バーチャル・リアリティ環境の内部のその他のコントロールは、ステアリングセンサ、速度センサ、および頭部センサからのデータに依存することがある。たとえば、バーチャル戦車砲台は、砲台が移動してユーザの注視と一致するように、ユーザの頭部の方向に軌道を進めることがある。
【０１０３】
［0111］  図７は、バーチャル・リアリティ・エクササイズ・ゲームを制御するプロセス７００の実施例のフローチャートである。このプロセスは、たとえば、図１および図２のバーチャル・リアリティ・エクササイズ・システムなどのバーチャル・リアリティ・エクササイズ・システムを用いて行われ得る。
【０１０４】
［0112］  プロセス７００は、７０２で、エクササイズ機器上のユーザの頭部回転およびユーザの頭部傾きを決定する。頭部回転は、１台以上のセンサからのデータに基づく可能性がある。
【０１０５】
［0113］  プロセス７００は、７０４で、バーチャル・リアリティ環境をバーチャル・リアリティ・ヘッドセットに提示し、バーチャル世界内のユーザの視野は、視野の速度を決める車両と、（頭部が前方を見ている状態で）視野の基準視点を決める身体と、視野の視点を決める頭部とによって決定される。
【０１０６】
［0114］  プロセス７００は、７０６で、頭部回転の方向が傾きの方向であることを決定したことに応答して、身体に回転を加えることを決定する。
【０１０７】
［0115］システム実施形態
【０１０８】
［0116］  本明細書に記載された主題および演算は、デジタル電子回路で、または、本明細書に開示された構造およびこれらの構造的均等物などのコンピュータソフトウェア、ファームウェア、もしくはハードウェアで、あるいは、これらのうちの１つ以上の組合せで実装され得る。本明細書に記載された主題の実施形態は、１又は複数のコンピュータプログラム（すなわち、データ処理装置による実行のため、または、データ処理装置の演算を制御するためにコンピュータ記憶媒体にエンコードされたコンピュータプログラム命令からなる１又は複数のモジュール）として実装され得る。コンピュータ記憶媒体は、コンピュータ可読記憶装置、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくは装置、または、これらのうちの１つ以上の組合せになり得る、または、含まれ得る。コンピュータ記憶媒体は、１つ以上の分離した物理コンポーネントまたは媒体（たとえば、マルチＣＤ、ディスク、またはその他の記憶装置）にもなり得る、または、含まれ得る。コンピュータ記憶媒体は、非一時的にもなり得る。
【０１０９】
［0117］  本明細書に記載された演算は、１又は複数のコンピュータ読み取り可能な記憶装置に記憶された、または、他の供給源から受信されたデータに対してデータ処理装置によって行われる演算として実装され得る。
【０１１０】
［0118］  用語「データ処理装置」は、一例として、１つもしくは複数のプログラマブルプロセッサ、コンピュータ、システムオンチップ、または、これらの組み合わせなどのデータを処理するあらゆる種類の装置、機器、および機械を網羅する。装置は、専用論理回路（たとえば、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）またはＡＳＩＣ（特定用途向け集積回路））を含むことができる。装置は、ハードウェアに加えて、問題となっているコンピュータプログラムのための実行環境を作り出すコード（たとえば、プロセッサファームウェア、プロトコルスタック、データベースマネジメントシステム、オペレーティングシステム、クロスプラットフォームランタイム環境、バーチャルマシン、または、これらのうちの１つ以上の組み合わせを構成するコード）をさらに含むことができる。装置および実行環境は、たとえば、ウェブサービス、分散コンピューティング、およびグリッドコンピューティング基盤構造などの多種多様のコンピュータモデル基盤構造を実現できる。
【０１１１】
［0119］  コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている）は、コンパイラ型もしくはインタープリタ型言語、宣言型もしくは手続型言語などのどんな形式のプログラミング言語でも記述することができ、スタンドアロン型プログラム、または、モジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境で用いるため適したその他の適当な単位などを含むどんな形式としてでも展開され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応することがあるが、対応しなくてもよい。プログラムは、他のプログラムまたはデータを保持するファイルの一部（たとえば、マークアップ言語文書に記憶された１又は複数のスクリプト）、問題となっているプログラムに専用の単一のファイル、または、複数の連携ファイル（たとえば、又は複数のモジュール、１又は複数のサブプログラム、またはコードの１又は複数の部分を記憶するファイル）に記憶され得る。コンピュータプログラムは、１台のコンピュータ、または、１つの場所にある、または、複数の場所に分散し、通信ネットワークによって相互に連結された複数台のコンピュータで実行されるように展開され得る。
【０１１２】
［0120］  本明細書に記載されたプロセスおよび論理フローは、入力データを操作し、出力を生成することによって機能を行うために、１又は複数のコンピュータプログラムを実行する１又は複数のプログラマブルプロセッサによって行われ得る。プロセスおよび論理フローは、専用論理回路（たとえば、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）またはＡＳＩＣ（特定用途向け集積回路））よって行われる可能性もあり、装置は、専用論理回路またはＡＳＩＣとして実装される可能性もある。
【０１１３】
［0121］  コンピュータプログラムの実行のため適したプロセッサは、一例として、汎用および専用の両方のマイクロプロセッサと、あらゆる種類のデジタルコンピュータのうちのいずれか１又は複数のプロセッサとを含む。概して、プロセッサは、リードオンリーメモリもしくはランダムアクセスメモリまたは両方から命令およびデータを受信するものである。コンピュータの必須要素は、命令に従って機能を行うプロセッサと、命令およびデータを記憶する１又は複数のメモリ装置とである。概して、コンピュータは、データを記憶する１又は複数の記憶装置（たとえば、磁気、磁気光学ディスク、または光ディスク）をさらに含む、あるいは、データを受信する、もしくは、データを転送する、または両方のため１又は複数の記憶装置に動作的に連結されるものであるが、コンピュータは、これらの装置を持つ必要はない。さらに、コンピュータは、少し例を挙げると、別の装置（たとえば、携帯電話機、携帯情報端末（ＰＤＡ）、携帯オーディオまたはビデオプレーヤー、ゲーム機、全地球測位システム（ＧＰＳ）受信機、または携帯型記憶装置（たとえば、ユニバーサル・シリアル・バス（ＵＳＢ）フラッシュドライブ））に組み込まれ得る。コンピュータプログラム命令およびデータを記憶するため適した装置は、一例として、半導体メモリ装置（たとえば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリ装置）と、磁気ディスク（たとえば、内蔵ハードディスクまたは着脱式ディスク）と、磁気光学ディスクと、ＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクとを含めて、あらゆる形態の不揮発性メモリ、媒体およびメモリ装置を含む。プロセッサおよびメモリは、専用論理回路によって実装される、または、専用論理回路に組み込まれる可能性がある。
【０１１４】
［0122］  ユーザとのやりとりを行うため、本明細書に記載された主題の実施形態は、情報をユーザに表示する表示装置（たとえば、ＣＲＴ（陰極線管）またはＬＤＣ（液晶ディスプレイ）モニタ）と、ユーザがコンピュータに入力を行うために用いるキーボードおよびポインティング装置（たとえば、マウスまたはトラックボール）とを有するコンピュータで実装され得る。他の種類の装置もユーザとのやりとりを行うために用いることができ、たとえば、ユーザに供給されるフィードバックは、どんな形式の感覚フィードバック（たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック）でもよく、ユーザからの入力は、音響、音声または触覚入力などのどんな形式でも受信され得る。その上、コンピュータは、（たとえば、ユーザのユーザ装置上のウェブブラウザから受信された要求に応答してウェブページをウェブブラウザに送信することにより）ユーザによって使用される装置との間で文書を送受信することにより、ユーザとやりとりをすることができる。
【０１１５】
［0123］  本明細書に記載された主題の実施形態は、（たとえば、データサーバとしての）バックエンドコンポーネント、ミドルウェアコンポーネント（たとえば、アプリケーションサーバ）フロントエンドコンポーネント（たとえば、ユーザが本明細書に記載された主題の実装と相互にやりとりするのに用いることができるグラフィカルユーザインターフェースまたはウェブブラウザを有するユーザコンピュータ）、または、１又は複数のこのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントのいずれかの組み合わせを含むコンピューティングシステムで実装され得る。システムのコンポーネントは、デジタルデータ通信のどのような形式または媒体（たとえば、通信ネットワーク）によっても相互に接続され得る。通信ネットワークの実施例は、ローカル・エリア・ネットワーク（「ＬＡＮ」）およびワイド・エリア・ネットワーク（「ＷＡＮ」）と、インターネットワーク（たとえば、インターネット）と、ピア・ツー・ピア・ネットワーク（たとえば、アドホック・ピア・ツー・ピア・ネットワーク）とを含む。
【０１１６】
［0124］  コンピューティングシステムは、ユーザおよびサーバを含むことができる。ユーザとサーバとは、概して、互いに遠く離れ、典型的には、通信ネットワークを介して相互に作用する。ユーザとサーバとの関係は、それぞれのコンピュータ上で動作し、互いにユーザ−サーバ関係を有するコンピュータプログラムによって生じる。一部の実施形態では、サーバは、（たとえば、ユーザ機器と相互にやりとりしているユーザにデータを表示し、ユーザからユーザ入力を受信する目的で）データ（たとえば、ＨＴＭＬページ）をユーザ機器に送る。ユーザ機器で発生させられたデータ（ユーザとのやりとりの結果）は、サーバ側でユーザ機器から受信され得る。
【０１１７】
［0125］  本明細書は、多くの具体的な実装細部を含んでいるが、これらは、発明の範囲または特許請求の範囲に記載されているかもしれない範囲に加える制限ではなく、むしろ、特定の発明についての特定の実施形態に固有の特徴の説明であると解釈されるべきである。別々の実施形態との関連で本明細書に記載されたある種の特徴は、単一の実施形態と組み合わせて実装されることがあり得る。逆に、単一の実施形態との関連で記載されている様々な特徴は、複数の実施形態において別々にまたは何らかの適当なサブコンビネーションの中で実装されることもあり得る。さらに、特徴は、ある種の組み合わせで機能するものとして前述され、当初はそのようなものとして特許請求の範囲に記載されることさえあるかもしれないが、特許請求の範囲に記載された組み合わせからの１又は複数の特徴は、場合によっては、組み合わせから除かれることがあり、特許請求の範囲に記載された組み合わせは、サブコンビネーション、または、サブコンビネーションの変形を対象にすることがある。
【０１１８】
［0126］  同様に、演算は、特定の順番で図面に描かれているが、これは、これらの演算が図示された特定の順番で、もしくは、順次に行われること、または、所望の結果を得るために全ての例示された演算が行われることを必要とするものと理解されるべきではない。ある種の状況では、マルチタスキングおよび並列処理が有利になることがある。さらに、前述の実施形態における様々なシステムコンポーネントの分離は、全ての実施形態においてこのような分離を必要とするものとして理解されるべきではなく、前述のプログラムコンポーネントおよびシステムは、概して単一のソフトウェアプロダクトの中に一体化され得る、または、複数のソフトウェアプロダクトの中にパッケージ化され得ることが理解されるべきである。
【０１１９】
［0127］  このように、主題の特定の実施形態が記載されている。その他の実施形態は、特許請求の範囲に記載された範囲内である。一部の例では、特許請求の範囲に記載された機能は、異なる順番で行われることがあるが、それでもなお所望の結果を得ることができる。加えて、添付図面に描かれたプロセスは、所望の結果を得るために、必ずしも図示された特定の順番または順次性を必要としない。ある種の実装では、マルチタスキングおよび並列処理は、有利になることがある。
【図１】
0006732883.tif 000002
【図２】
0006732883.tif 000003
【図３】
0006732883.tif 000004
【図４】
0006732883.tif 000005
【図５Ａ】
0006732883.tif 000006
【図５Ｂ】
0006732883.tif 000007
【図５Ｃ】
0006732883.tif 000008
【図５Ｄ】
0006732883.tif 000009
【図５Ｅ】
0006732883.tif 000010
【図６】
0006732883.tif 000011
【図７】
0006732883.tif 000012