(57)【要約】      （修正有）【課題】仮想カメラの上下動に起因する酔いを抑制することができるゲームプログラムを提供する。【解決手段】コンピュータを、仮想空間を生成する仮想空間生成手段、仮想空間でのキャラクタの移動を制御するキャラクタ制御手段、キャラクタの移動に応じて、仮想空間にて仮想カメラＣを移動させるカメラ移動手段、キャラクタに対して固定的に設定された所定の基準点Ｐ０と仮想カメラＣとの上下方向の距離が所定の閾値Ａ以内にあるか否かを判定する判定手段、として機能させ、カメラ移動手段は、キャラクタの移動に伴う該キャラクタの上下方向の変位時に、距離が閾値Ａ以内にあると判定された場合は、仮想カメラＣを、キャラクタと共に上下方向に移動させず、距離が閾値Ａ以内にないと判定された場合は、仮想カメラＣを、キャラクタに追従するよう該キャラクタと共に上下方向に移動させる。【選択図】図５
2019017746.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
仮想空間を生成する仮想空間生成手段、
前記仮想空間でのキャラクタの移動を制御するキャラクタ制御手段、
前記キャラクタの移動に応じて、前記仮想空間にて仮想カメラを移動させるカメラ移動手段、
前記キャラクタに対して固定的に設定された所定の基準点と前記仮想カメラとの上下方向の距離が所定の閾値以内にあるか否かを判定する判定手段、として機能させ、
前記カメラ移動手段は、前記キャラクタの移動に伴う該キャラクタの上下方向の変位時に、
前記距離が前記閾値以内にあると判定された場合は、前記仮想カメラを、前記キャラクタと共に上下方向に移動させず、
前記距離が前記閾値以内にないと判定された場合は、前記仮想カメラを、前記キャラクタに追従するよう該キャラクタと共に上下方向に移動させる、ゲームプログラム。
【請求項２】
前記基準点は、前記キャラクタの目の高さに位置する、請求項１に記載のゲームプログラム。
【請求項３】
前記判定手段は、前記仮想カメラから上下方向の距離が前記閾値以内にある範囲を判定範囲として設定するとともに、前記基準点が前記判定範囲内にあるか否かを判定し、
前記カメラ移動手段は、前記キャラクタの移動に伴う該キャラクタの上下方向の変位時に、
前記基準点が前記判定範囲内にあると判定された場合は、前記判定範囲及び前記仮想カメラを、前記キャラクタと共に上下方向に移動させず、
前記基準点が前記判定範囲内にないと判定された場合は、前記判定範囲及び前記仮想カメラを、前記キャラクタに追従するよう該キャラクタと共に上下方向に移動させる、請求項１又は２に記載のゲームプログラム。
【請求項４】
前記カメラ移動手段は、前記キャラクタの移動に伴う該キャラクタの上下方向の変位時に、前記距離が前記閾値以内にないと判定された場合は、前記キャラクタの変位方向に、前記距離と前記閾値の差分だけ、前記仮想カメラを移動させる、請求項１〜３のいずれか１項に記載のゲームプログラム。
【請求項５】
前記距離が前記閾値以内にあると判定された場合に、前記カメラ移動手段は、前記仮想空間における前記基準点と前記仮想カメラの高さが異なるときは、前記キャラクタが移動している間、前記基準点の高さに近づくよう前記仮想カメラを上下方向に移動させる、請求項１〜４のいずれか１項に記載のゲームプログラム。
【請求項６】
前記仮想カメラは、前記キャラクタの左右方向に並んで配設された左側仮想カメラと右側仮想カメラを含み、
前記コンピュータは、前記仮想空間をユーザが立体視できるよう、前記左側仮想カメラと前記右側仮想カメラの夫々で撮影した該仮想空間を、互いに視差を有する一対の仮想二次元画像として表示するヘッドマウントディスプレイを備える、請求項１〜５のいずれか１項に記載のゲームプログラム。
【請求項７】
請求項１〜６のいずれか１項に記載のゲームプログラムを記憶したプログラム記憶部と、
前記プログラム記憶部に記憶されたプログラムを実行するコンピュータとを備えた、ゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間内に配置されたキャラクタの移動に伴って、仮想カメラを移動させるゲームプログラム及びゲームシステムに関する。
【背景技術】
【０００２】
従来、ユーザが操作する仮想空間内のプレイヤキャラクタの移動に伴って、仮想空間を撮影する仮想カメラを移動させるゲームがある。例えば、プレイヤキャラクタの視点をユーザが見る視点に一致させる一人称視点のゲームでは、プレイヤキャラクタの仮想空間での位置に基づく視点、特に、その位置に配置されるプレイヤキャラクタのモデルの大きさや形状を考慮したプレイヤキャラクタの視点に仮想カメラを位置づけている（例えば特許文献１参照）。そして、プレイヤキャラクタが位置や向きが変更されると、それに連動して仮想カメラの位置や向きも変更される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１４１７５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、例えば仮想空間内の凸凹した接地面の上を移動するなどすることにより、プレイヤキャラクタが上下方向に激しく変位する場合がある。このような場合に、上述したように当該プレイヤキャラクタに連動させて、仮想カメラにも上下方向に激しい動きを与えると、ゲーム画面の激しい動きがユーザの酔いにつながる可能性がある。また、このような激しい画面の動きによる酔いは、ヘッドマウントディスプレイ（以下、ＨＭＤ）を装着したユーザが三次元の仮想空間を立体視できるゲームでは特に起こりやすいことが知られている。
【０００５】
そこで本発明は、仮想カメラの上下動に起因する酔いを抑制することができるゲームプログラム及びゲームシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係るゲームプログラムは、コンピュータを、仮想空間を生成する仮想空間生成手段、前記仮想空間でのキャラクタの移動を制御するキャラクタ制御手段、前記キャラクタの移動に応じて、前記仮想空間にて仮想カメラを移動させるカメラ移動手段、前記キャラクタに対して固定的に設定された所定の基準点と前記仮想カメラとの上下方向の距離が所定の閾値以内にあるか否かを判定する判定手段、として機能させ、前記カメラ移動手段は、前記キャラクタの移動に伴う該キャラクタの上下方向の変位時に、前記距離が前記閾値以内にあると判定された場合は、前記仮想カメラを、前記キャラクタと共に上下方向に移動させず、前記距離が前記閾値以内にないと判定された場合は、前記仮想カメラを、前記キャラクタに追従するよう該キャラクタと共に上下方向に移動させる。
【０００７】
例えば、前記基準点は、前記キャラクタの目の高さに位置する。
【０００８】
上記のゲームプログラムによれば、例えばキャラクタが凸凹の接地面の上を移動するときなど、キャラクタの移動に伴って当該キャラクタが上下方向に激しく動いても、キャラクタに対して設定された基準点と仮想カメラとの上下方向の距離が閾値以内にある限り、キャラクタの上下方向の変位に同期した仮想カメラの上下方向の移動を制限することができる。このため、仮想カメラの上下方向の動きが最小限に抑えられるため、仮想カメラの上下動に起因する酔いを抑制することができる。
【０００９】
上記のゲームプログラムは、前記判定手段は、前記仮想カメラからの上下方向の距離が前記閾値以内にある範囲を判定範囲として設定するとともに、前記基準点が前記判定範囲内にあるか否かを判定し、前記カメラ移動手段は、前記キャラクタの移動に伴う該キャラクタの上下方向の変位時に、前記基準点が前記判定範囲内にあると判定された場合は、前記判定範囲及び前記仮想カメラを、前記キャラクタと共に上下方向に移動させず、前記基準点が前記判定範囲内にないと判定された場合は、前記判定範囲及び前記仮想カメラを、前記キャラクタに追従するよう該キャラクタと共に上下方向に移動させてもよい。
【００１０】
上記のゲームプログラムにおいて、前記カメラ移動手段は、前記キャラクタの移動に伴う該キャラクタの上下方向の変位時に、前記距離が前記閾値以内にないと判定された場合は、前記キャラクタの変位方向に、前記距離と前記閾値の差分だけ、前記仮想カメラを移動させてもよい。このゲームプログラムによれば、仮想カメラの上下方向の移動量を抑えて、仮想カメラの上下動に起因する酔いをより抑制することができる。
【００１１】
上記のゲームプログラムにおいて、前記距離が前記閾値以内にあると判定された場合に、前記カメラ移動手段は、前記仮想空間における前記基準点と前記仮想カメラの高さが異なるときは、前記キャラクタが移動している間、前記基準点の高さに近づくよう前記仮想カメラを上下方向に移動させてもよい。このゲームプログラムによれば、ユーザに違和感が生じないように、実際に配置させるべき高さである基準点の高さに仮想カメラを戻すことができる。
【００１２】
上記のゲームプログラムにおいて、前記仮想カメラは、前記キャラクタの左右方向に並んで配設された左側仮想カメラと右側仮想カメラを含み、前記コンピュータは、前記仮想空間をユーザが立体視できるよう、前記左側仮想カメラと前記右側仮想カメラの夫々で撮影した該仮想空間を、互いに視差を有する一対の仮想二次元画像として表示するヘッドマウントディスプレイを備えてもよい。
【００１３】
また、本発明に係るゲームシステムは、上記のゲームプログラムを記憶したプログラム記憶部と、前記プログラム記憶部に記憶されたプログラムを実行するコンピュータとを備える。
【発明の効果】
【００１４】
本発明によれば、仮想カメラの上下動に起因する酔いを抑制することができるゲームプログラム及びゲームシステムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】一実施形態に係るゲームシステムのハードウェア構成を示すブロック図である。
【図２】図１に示すゲーム装置の機能的な構成を示すブロック図である。
【図３】仮想空間内におけるキャラクタを模式的に示した側面図である。
【図４】仮想空間内におけるキャラクタと仮想カメラを模式的に示した平面図である。
【図５】凸凹した接地面の上を移動するキャラクタの変位に応じた仮想カメラの上下動を説明するための模式図である。
【図６】傾斜面に沿って移動するキャラクタの変位に応じた仮想カメラの上下動を説明するための模式図である。
【図７】基準点の高さと仮想カメラの高さが一致しない場合の仮想カメラの上下動を説明するための模式図である。
【図８】仮想カメラの上下動処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態に係るゲームプログラムおよびゲームシステムについて、図面を参照しつつ説明する。
【００１７】
［ハードウェア構成］
図１は、ゲームシステム1のハードウェア構成を示すブロック図である。ゲームシステム1は、コンピュータであるゲーム装置2及びサーバ装置3を備えている。ゲーム装置2は、他のゲーム装置2及びサーバ装置3との間で、インターネット又はＬＡＮなどの通信ネットワークNWを介して互いに通信可能である。このゲーム装置2は、その動作を制御するＣＰＵ10を備え、このＣＰＵ10にはバス11を介して、ディスクドライブ12、メモリカードスロット13、記憶部（プログラム記憶部）を成すＨＤＤ14及びＲＯＭ15、並びにＲＡＭ16が接続されている。
【００１８】
ディスクドライブ12には、ＤＶＤ−ＲＯＭ等のディスク型記録媒体30が装填可能である。該ディスク型記録媒体30には、本実施の形態に係るゲームプログラム30a及びゲームデータ30bが記録されている。このゲームデータ30bには、仮想空間の形成に必要なデータ、及び、ゲーム中で再生されるサウンドデータなど、本ゲームの進行に必要な各種のデータが含まれる。また、メモリカードスロット13にはカード型記録媒体31が装填でき、ゲームの途中経過等のプレイ状況を示すセーブデータを、ＣＰＵ10からの指示に応じて記録可能である。
【００１９】
ＨＤＤ14はゲーム装置2が内蔵する大容量記録媒体であって、ディスク型記録媒体30から読み込んだゲームプログラム30a及びゲームデータ30b、更にはセーブデータ等を記録する。ＲＯＭ15は、マスクＲＯＭ又はＰＲＯＭなどの半導体メモリであり、ゲーム装置2を起動する起動プログラムや、ディスク型記録媒体30が装填されたときの動作を制御するプログラムなどを記録している。ＲＡＭ16は、ＤＲＡＭ又はＳＲＡＭなどから成り、ＣＰＵ10が実行すべきゲームプログラム30aや、その実行の際に必要になるゲームデータ30bなどを、ゲームのプレイ状況に応じてディスク型記録媒体30又はＨＤＤ14から読み込んで一時的に記録する。
【００２０】
また、ＣＰＵ10には更に、バス11を介して、ＨＭＤ用インタフェース17、光検出装置用インタフェース18、グラフィック処理部19、オーディオ合成部20、オーディオインタフェース21、無線通信制御部22、及びネットワークインタフェース23が接続されている。そして、ＨＭＤ用インタフェース17、光検出装置用インタフェース18及びオーディオインタフェース21には、それぞれ、ＨＭＤ40、光検出装置46及びヘッドホン47が夫々接続されている。
【００２１】
ＨＭＤ40は、ユーザの頭部に装着可能である。ＨＭＤ40は、一対の表示部41（41a，41b）、加速度センサ42、ジャイロセンサ43、光放出部44及び制御部45を備える。ＨＭＤ40がユーザの頭部に装着されることにより、当該ユーザの左目と右目の前方には、左目用の表示部41aと右目用の表示部41bとが夫々配置される。
【００２２】
加速度センサ42及びジャイロセンサ43は、ユーザの頭部のモーションを検出するモーション検出システムを構成する。加速度センサ42は、例えば重力方向に対するＨＭＤ40の向き、即ちユーザの頭部の傾きを検出する。ジャイロセンサ43は、例えばＨＭＤ40の角速度、即ちユーザが頭部を傾けたり回転したりする速さを検出する。加速度センサ42及びジャイロセンサ43から得られたモーション情報は、ＨＭＤ用インタフェース17を介して、グラフィック処理部19及びオーディオ合成部20に送られる。
【００２３】
ＨＭＤ40の光放出部44は、光検出装置46と共に、ユーザの頭部の位置を検出する位置検出システムを構成する。本実施形態では、光放出部44は、例えば互いに離間してＨＭＤ40に設けられた複数のＬＥＤライトである。光検出装置46は、例えばユーザの前方に固定的に配置され、ＨＭＤ40の光放出部44から放たれる光の位置を検出する。光検出装置46は、光放出部44から放たれる光の位置を検出することにより、該光検出装置46に対するユーザの頭部の位置情報を取得する。当該位置情報は、上述のモーション情報を補正するために用いられてもよい。光検出装置46から得られた位置情報は、光検出装置用インタフェース18を介して、グラフィック処理部19及びオーディオ合成部20に送られる。
【００２４】
なお、ユーザの頭部の位置を検出する位置検出システムは、これに限定されない。例えば、ＨＭＤ40側に光センサを設けて、ユーザの周りに配置された光放出装置から放たれた光を、当該光センサで検出することにより、ユーザの頭部の位置を検出してもよい。
【００２５】
制御部45は、加速度センサ42及びジャイロセンサ43からゲーム装置2へのデータの送信や光放出部44への信号の送信など、ＨＭＤ40が有する各種機器の制御を行う。
【００２６】
グラフィック処理部19は、ＣＰＵ10の指示に従って三次元の仮想ゲーム空間等を含むゲーム画像を描画する。例えば、グラフィック処理部19は、ユーザが三次元の仮想空間を立体視できるよう、互いに視差を有する一対の仮想二次元画像を生成する。即ち、グラフィック処理部19は、仮想三次元空間に配置された一対の仮想カメラの夫々で撮影した互いに視差を有する左目用及び右目用の仮想二次元画像を生成する。そして、この一対の仮想二次元画像は、動画形式に変換されて、ＨＭＤ用インタフェース17を介してＨＭＤ40に送られ、一対の表示部41a，41bに夫々表示される。また、グラフィック処理部19は、ユーザに仮想空間内に入り込んだような臨場感を与えるよう、ＨＭＤ40及び光検出装置46から送られたユーザに関するモーション情報及び位置情報に合わせて、リアルタイムでＨＭＤ40に送る一対の仮想二次元画像を変化させる。
【００２７】
オーディオ合成部20は、ＣＰＵ10の指示に従って、ゲームデータ30bに含まれるデジタル形式のサウンドデータを再生及び合成する。オーディオ合成部20にて再生及び合成されたサウンドデータは、アナログ形式にデコードされた後、オーディオインタフェース21を介してヘッドホン47に送られ出力される。その結果、本ゲームをプレイしているユーザは、再生されたサウンドを聴取することができる。ヘッドホン47は、ＨＭＤ40と一体的に構成されてもよい。また、オーディオ合成部20は、ユーザに仮想空間内に入り込んだような臨場感を与えるよう、ＨＭＤ40及び光検出装置46から送られたモーション情報及び位置情報に合わせて、リアルタイムでヘッドホン47から出力される音響を変化させてもよい。オーディオインタフェース21には、ヘッドホン47の代わりに、スピーカが接続されてもよい。
【００２８】
無線通信制御部22は、２．４ＧＨｚ帯の無線通信モジュールを有し、ゲーム装置2に付属するコントローラ48との間で無線により接続され、データの送受信が可能となっている。ユーザは、このコントローラ48に設けられたボタン等の操作部を操作することにより、ゲーム装置2へ信号を入力することができる。
【００２９】
ネットワークインタフェース23は、インターネット又はＬＡＮなどの通信ネットワークNWに対してゲーム装置2を接続するものであり、他のゲーム装置2及びサーバ装置3との間で通信可能である。そして、ゲーム装置2を、通信ネットワークNWを介して他のゲーム装置2と接続し、互いにデータを送受信することにより、同一の仮想空間内で同期してゲームを進行させるマルチプレイが可能になっている。
【００３０】
［ゲーム装置の機能的構成］
図２は、ゲームシステム1が備えるゲーム装置2の機能的な構成を示すブロック図である。ゲーム装置2は、本発明のゲームプログラム30aを実行することで、仮想空間生成手段51、キャラクタ制御手段52、カメラ移動手段53、及び判定手段54として機能する。なお、このような各機能は、ハード的には図１に示すＣＰＵ10，ＨＤＤ14，ＲＯＭ15，ＲＡＭ16，グラフィック処理部19，オーディオ合成部20，無線通信制御部22等から構成されている。
【００３１】
仮想空間生成手段51は、所定の広がりを有する三次元の仮想空間を生成する。この仮想空間には、様々なオブジェクトやキャラクタが配置されている。例えば、仮想空間には、コントローラ48の操作によりユーザが直接的にその動作を制御することのできるプレイヤキャラクタが存在する。
【００３２】
図３は、仮想空間S内におけるプレイヤキャラクタPを模式的に示した側面図である。仮想空間Sには、三次元の直交座標系ＸＹＺ（ワールド座標系）が設定されており、仮想空間Sの上下方向（鉛直方向）をＹ軸としている。
【００３３】
仮想空間Sには、プレイヤキャラクタPが移動することが可能な接地面Gが設定されている。ここで、接地面Gは、ＸＺ平面に沿って広がる屋外の地面に限られない。例えば、接地面Gには、仮想空間Sに配置された２階以上の建物の階段や各階の床が含まれてもよいし、踏み台などプレイヤキャラクタPの足場となるオブジェクトの上面なども含まれてもよい。接地面Gは、仮想空間Sにおける屋内や屋外などの領域に応じて、１つの平面で構成される部分もあれば、互いに連結した多数の平面により構成される部分もある。例えば、屋内の一室の床面は、ＸＺ平面に対して平行な面により構成されている場合がある。また、例えば、屋外の凸凹した山道や複雑な地形は、図３に一例として示されるように、ＸＺ平面に対して傾斜した多数の平面により構成されている場合がある。
【００３４】
図２に示したキャラクタ制御手段52は、仮想空間SでのプレイヤキャラクタPの移動を制御する。具体的には、キャラクタ制御手段52は、コントローラ48の操作に応じて、仮想空間S内におけるプレイヤキャラクタPの水平方向の移動を制御する。即ち、本実施形態では、コントローラ48の操作に応じて、仮想空間S内におけるプレイヤキャラクタPのＸ座標及びＺ座標が変化する。
【００３５】
キャラクタ制御手段52は、仮想空間SでのプレイヤキャラクタPの向きや姿勢を制御してもよい。また、キャラクタ制御手段52は、コントローラ48の操作の代わりに又は加えて、ＨＭＤ40が装着されたユーザの頭部の動きに応じて、仮想空間S内におけるプレイヤキャラクタPの水平方向の移動を制御してもよい。
【００３６】
また、プレイヤキャラクタPが水平方向に移動する際に、プレイヤキャラクタPが位置する箇所の接地面Gが水平面に対して傾斜している場合や階段状である場合には、その接地面Gの上下方向の変位に応じて、プレイヤキャラクタPも上下方向にも変位する。例えば、図３に一点鎖線で示すように、凸凹の接地面Gを移動するプレイヤキャラクタPの頭部の任意の点は、当該接地面Gからの高さが一定に保たれるよう変化する。
【００３７】
また、仮想空間Sには、プレイヤキャラクタPの移動に応じて仮想空間S内を移動する一対の仮想カメラ（左側仮想カメラ，右側仮想カメラ）CL，CRが存在する。図４は、仮想空間SにおけるプレイヤキャラクタPと一対の仮想カメラCL，CRを模式的に示した平面図である。図４では、プレイヤキャラクタPを破線で示し、一対の仮想カメラCL，CRを実線で示す。
【００３８】
一対の仮想カメラCL，CRは、プレイヤキャラクタPの左右方向に並んで配設されており、上述した左目用の仮想二次元画像及び右目用の仮想二次元画像を夫々撮影する。これら一対の仮想カメラCL，CRの相対的な位置関係、即ち一対の仮想カメラCL，CRの間隔や相対的な向きは、ゲーム中、一定に保たれている。言い換えれば、一対の仮想カメラCL，CRは、相対的な位置および向きが固定された状態で、仮想空間S内を一体的に移動する。例えば、一対の仮想カメラCL，CRの互いに対する相対位置は、ＨＭＤ40が装着されたユーザに応じて最適化されるよう設定される。以下では、一対の仮想カメラCL，CRをまとめて示す場合には、単に「仮想カメラC」と称する。
【００３９】
図２に示したカメラ移動手段53は、仮想空間S内でのプレイヤキャラクタPの移動に応じて、仮想カメラCを移動させる。本実施形態では、カメラ移動手段53は、仮想カメラCの水平方向への移動と上下方向への移動とで異なる処理を行う。
【００４０】
まず、カメラ移動手段53によって実行される、仮想カメラCを水平方向へ移動させる水平移動処理について説明する。
【００４１】
図４には、破線で示した位置から矢印方向に移動した後のプレイヤキャラクタP’及びそれに追従する一対の仮想カメラCL’，CR’が、それぞれ二点鎖線及び一点鎖線で示される。図４に示すように、水平移動処理では、カメラ移動手段53が、仮想空間S内におけるプレイヤキャラクタPの頭部に追従するように、仮想カメラCを水平方向に移動させる。
【００４２】
具体的には、カメラ移動手段53は、仮想空間Sの水平方向におけるプレイヤキャラクタPの位置及び向きに対して、水平方向における仮想カメラCの位置及び向きが一定に保たれるよう仮想カメラCを移動させる。なお、本実施形態では、カメラ移動手段53が、仮想カメラCLのＸ座標及びＺ座標とプレイヤキャラクタPの左目のＸ座標及びＺ座標とが夫々一致するように、仮想カメラCLを水平移動させる。また、仮想カメラCRのＸ座標及びＺ座標とプレイヤキャラクタPの右目のＸ座標及びＺ座標とが夫々一致するように、仮想カメラCRを水平移動させる。
【００４３】
次に、カメラ移動手段53によって実行される、仮想カメラCを上下方向へ移動させる上下動処理について、図５を参照しながら説明する。図５は、仮想空間S内におけるプレイヤキャラクタPと仮想カメラC（CL，CR）を模式的に示した側面図である。図５では、プレイヤキャラクタPを破線で示し、一対の仮想カメラCL，CRのうち仮想カメラCRのみ実線で示す。
【００４４】
仮想カメラCの高さを決定するための基準となる基準点P0が、プレイヤキャラクタPに対して固定的に設定されている。本実施形態では、基準点P0は、プレイヤキャラクタPの目の高さに位置し、基準点P0のＹ座標は、プレイヤキャラクタPの目のＹ座標に一致している。
【００４５】
図５に、プレイヤキャラクタPが接地面G上を移動する際の基準点P0の経路と仮想カメラCの経路が、それぞれ一点鎖線と太実線で示される。ゲーム開始時などの初期状態では、仮想カメラCの高さは、基準点P0の高さ、即ちプレイヤキャラクタPの目の高さに一致するように設定される。基準点P0はプレイヤキャラクタPに固定であるため、移動するプレイヤキャラクタPが接地面Gに沿って上下方向に変位した場合、基準点P0も追従して上下方向に変位する。
【００４６】
一方、仮想カメラCの上下動処理では、移動するプレイヤキャラクタPが接地面Gに沿って上下方向に変位した場合でも、所定の条件が満たされない限り、カメラ移動手段53は仮想カメラCを上下方向に変位させない。
【００４７】
具体的には、上下動処理では、図２に示した判定手段54が、基準点P0と仮想カメラCとの上下方向の距離（以下、「ズレ量」と呼ぶ。）Dが所定の閾値A以内にあるか否かを判定する。そして、プレイヤキャラクタPの移動に伴う該プレイヤキャラクタPの上下方向の変位時に、判定手段54によりズレ量Dが閾値A以内にないと判定された場合は、カメラ移動手段53は、仮想カメラCを、プレイヤキャラクタPに追従するよう該プレイヤキャラクタPと共に上下方向に移動させる。一方、判定手段54によりズレ量Dが閾値A以内にあると判定された場合は、カメラ移動手段53は、仮想カメラCを、プレイヤキャラクタPと共に上下方向に移動させない。
【００４８】
基準点P0が仮想カメラCより高い場合の閾値A1と、基準点P0が仮想カメラCより低い場合の閾値A2とは、同じ値であってもよいし、異なる値であってもよい。なお、本明細書において、これら閾値A1，A2をまとめて、「閾値A」と称する。
【００４９】
本実施形態では、判定手段54は、仮想カメラCに対して、仮想カメラCからの上下方向の距離が閾値A以内にある範囲を判定範囲Rとして設定している。具体的には、図５に示すように、判定範囲Rは、Ｙ座標が、仮想カメラCのＹ座標値に閾値A1を加算した値から、仮想カメラCのＹ座標値から閾値A2を減算した値までの値をとる仮想空間S内の範囲である。そして、判定手段54は、基準点P0が判定範囲R内にあるか否かを判定することにより、ズレ量Dが所定の閾値A以内にあるか否かを判定している。
【００５０】
そして、プレイヤキャラクタPの移動に伴う該プレイヤキャラクタPの上下方向の変位時に、判定手段54により基準点P0が判定範囲R内にあると判定された場合は、カメラ移動手段53は、判定範囲R及び仮想カメラCをプレイヤキャラクタPと共に上下方向に移動させず、判定手段54により基準点P0が判定範囲R内にないと判定された場合は、判定範囲R及び仮想カメラCを、プレイヤキャラクタPに追従するよう該プレイヤキャラクタPと共に上下方向に移動させる。
【００５１】
本実施形態において、ズレ量Dが閾値A以内にないと判定された場合にプレイヤキャラクタPに追従させる仮想カメラCの上下方向の移動量は、ズレ量Dと閾値Aの差分に設定されている。
【００５２】
例えば、プレイヤキャラクタPが上方に変位したとき、ズレ量Dが閾値A1以内にないと判定されたとする。この場合、カメラ移動手段53は、プレイヤキャラクタPの変位方向である上方に、ズレ量Dと閾値A1の差分だけ仮想カメラCを移動させる。また、プレイヤキャラクタPが下方に変位したとき、ズレ量Dが閾値A2以内にないと判定されたとする。この場合、カメラ移動手段53は、プレイヤキャラクタPの変位方向である下方に、ズレ量Dと閾値A2の差分だけ仮想カメラCを移動させる。
【００５３】
図６には、水平面G1から該水平面G1に対して上向きに傾斜した傾斜面G2へと移動するプレイヤキャラクタPと仮想カメラCが示される。プレイヤキャラクタPが傾斜面G2に沿って上昇することにより、プレイヤキャラクタPに固定である基準点P0も上方に変位する。しかし、ズレ量Dが閾値A1以内にある間は（例えば図６の地点Ｚ１）、仮想カメラCは、プレイヤキャラクタPと共に（即ち、一体になって）上昇することはなく、基準点P0と仮想カメラCとの間にズレ量Dが生じる。プレイヤキャラクタPが傾斜面G2に沿って更に上昇し、ズレ量Dが閾値A1を超えた場合（図６の地点Ｚ２）、仮想カメラCは、ズレ量Dと閾値A1の差分だけ上方に移動する。こうして、プレイヤキャラクタPが傾斜面G2を昇り続けることにより、プレイヤキャラクタPの上方への変位に追従するように（ズレ量Dが閾値A1に保たれるように）、仮想カメラCも上方に変位し続ける。プレイヤキャラクタPが水平面に対して下向きに傾斜する傾斜面に沿って下降する場合も、仮想カメラCは同様に下方に変位する。
【００５４】
また、判定手段54は、プレイヤキャラクタPが移動中であるか否かも判定する。そして、カメラ移動手段53は、プレイヤキャラクタPが移動していないと判定されたときは、上下動処理による仮想カメラCの上下方向の移動を行わない。即ち、本実施形態における上下動処理は、プレイヤキャラクタPの移動に伴う当該プレイヤキャラクタPの上下方向の変位が対象となる。例えば、コントローラ48の操作に応じて、プレイヤキャラクタPがその場で屈んだり立ち上がったりして基準点P0が上下に変位した場合には、ズレ量Dが閾値A以内にあるかを否かが判定されず、プレイヤキャラクタPの姿勢変更に伴う仮想カメラCの上下動が実行される。
【００５５】
また、判定手段54は、ズレ量Dがゼロであるか否かも判定する。言い換えれば、基準点P0の高さ（Ｙ座標）と仮想カメラCの高さ（Ｙ座標）が一致するか否かも判定する。本実施形態では、判定手段54によりズレ量Dが閾値A以内であって、且つ基準点P0の高さと仮想カメラCの高さが異なると判定された場合は、カメラ移動手段53は、プレイヤキャラクタPが移動している間、基準点P0の高さに近づくよう仮想カメラCを上下方向に移動させる。これについて、図７を参照しながら説明する。
【００５６】
図７には、傾斜面G3から該傾斜面G3の上端部につながる水平面G4へと移動するプレイヤキャラクタPと仮想カメラCが示される。図７に示した例では、プレイヤキャラクタPが傾斜面G3を昇り終わった直後、基準点P0と仮想カメラCとは上下方向に閾値A1だけ離れた状態にある（図７の地点Ｚ３）。この状態からプレイヤキャラクタPが水平面G4に沿って移動すると、カメラ移動手段53は、ズレ量Dが小さくなるように、微小距離ずつ仮想カメラCを基準点P0に近づけていく。ここで、「微小距離」は、仮想カメラCを移動させてもユーザに気づかれない又は気づきにくいレベルに設定される。これにより、ユーザに違和感が生じないように、実際に配置させるべき高さである基準点P0の高さに仮想カメラCを戻すことができる（図７の地点Ｚ４）。
【００５７】
但し、カメラ移動手段53は、プレイヤキャラクタPが移動していない場合には、仮想カメラCを上下方向に移動させない。プレイヤキャラクタPが立ち止っているときに仮想カメラCが上下方向に移動すると、ユーザに違和感を生じさせるためである。
【００５８】
なお、図７に示した例では、プレイヤキャラクタPが水平面G4を移動する間に、仮想カメラCを基準点P0の高さに近づけることを説明したが、この仮想カメラCの移動は、水平面G4の移動時に限定されず、例えば凸凹の接地面を移動するときにも行われる。例えば、図５では、便宜上、ズレ量Dが閾値A以内である間の仮想カメラCの経路が直線で示されているが、実際には、基準点P0の高さと仮想カメラCの高さが異なるときは、微小距離だけ基準点P0に近づけるよう仮想カメラCを上下方向に変位させる。このため、ズレ量Dが閾値A以内である間も、仮想カメラCのＹ座標は、維持されるわけではなく、プレイヤキャラクタPが移動している間に微小に変化する。
【００５９】
次に、上下動処理の流れについて、図８に示すフローチャートを参照しながら説明する。図８は、仮想カメラCを上下方向に移動させる上下動処理の流れを示すフローチャートである。上下動処理は、プレイヤキャラクタPが移動可能な状態にあるとき、毎フレーム又は数フレームおきに実行される。
【００６０】
上下動処理が開始されると、まず判定手段54は、プレイヤキャラクタPが移動中か否かを判定する（ステップS1）。そして、判定手段54が、プレイヤキャラクタPが移動中でないと判定した場合（ステップS1：No）、仮想カメラCを上下方向に移動させることなく、上下動処理を終了する。即ち、例えばプレイヤキャラクタPがその場で屈んだり立ち上がったりする際に基準点P0が上下方向に変位しても、ステップS2以降の処理は行われない。但し、プレイヤキャラクタPが移動中にない場合にも、上下動処理を実行してもよく、この場合、ステップS1はなくてもよい。
【００６１】
判定手段54は、プレイヤキャラクタPが移動中であると判定した場合（ステップS1：No）、続けてズレ量Dが閾値A以内にあるか否かを判定する（ステップS2）。判定手段54が、ズレ量Dが閾値A以内にないと判定した場合（ステップS2：No）、カメラ移動手段53は、プレイヤキャラクタPの変位方向に、ズレ量Dと閾値Aの差分だけ、仮想カメラCを移動させる（ステップS3）。
【００６２】
ズレ量Dが閾値A以内にあると判定された場合（ステップS2：Yes）、又はステップS3の後、判定手段54は、ズレ量Dがゼロであるか否か、即ち基準点P0と仮想カメラCの高さが一致するか否かを判定する（ステップS4）。ズレ量Dがゼロでないと判定された場合（ステップS4：No）、カメラ移動手段53は、ズレ量Dが小さくなるように、微小距離だけ上下方向に仮想カメラCを移動させる（ステップS5）。
【００６３】
ステップS4及びS5は、基準点P0の高さに仮想カメラCを戻すための処理であるが、この処理は省略されてもよい。また、ステップS4で、ズレ量Dがゼロでない状態が一定時間継続したか否かを判定するようにしてもよく、一定時間継続した場合にステップS5に進んでもよい。
【００６４】
ズレ量Dがゼロであると判定された場合（ステップS4：Yes）、又はステップS5の後、上下動処理を終了する。
【００６５】
以上に示したように、本実施形態に係るゲームシステム1では、例えばプレイヤキャラクタPが凸凹の接地面Gの上を移動するときなど、プレイヤキャラクタPの移動に伴って当該プレイヤキャラクタPが上下方向に激しく動いても、ズレ量Dが閾値A以内にある限り、プレイヤキャラクタPの上下方向の変位に同期した仮想カメラCの上下方向の移動を制限することができる。このため、仮想カメラCの上下方向の動きが最小限に抑えられるため、仮想カメラCの上下動に起因する酔いを抑制することができる。
【００６６】
また、本実施形態では、ズレ量Dが閾値A以内にないと判定された場合は、カメラ移動手段53は、プレイヤキャラクタPの変位方向に、ズレ量Dと閾値Aの差分だけ、仮想カメラCを移動させる。これにより、仮想カメラCの上下方向の移動量を抑えて、仮想カメラCの上下動に起因する酔いをより抑制することができる。
【００６７】
本発明は上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の変形が可能である。
【００６８】
例えば、上記実施形態で説明されたハードウェアの構成やゲームの態様も一例にすぎない。例えば、上記実施形態では、ＨＭＤ40を装着したユーザが仮想空間を立体視して、バーチャルリアリティ（ＶＲ）を体験できるゲームが説明されたが、本発明に係るゲームプログラムを実行することで実現されるゲームはこれに限られない。
【００６９】
例えば、ゲーム装置2は、ＨＭＤ40や光検出装置46を備える代わりに、１つの表示部を有するディスプレイ（例えばテレビモニタ）を備えてもよい。この場合、仮想空間Sに、上述の一対の仮想カメラCL，CR（ＶＲ用カメラ）を配置する代わりに、当該表示部に表示するための画像を撮影する１つの仮想カメラ（非ＶＲ用カメラ）を配置してもよい。
【００７０】
また、例えば、ゲーム装置2は、ＨＭＤ40や光検出装置46を備えると共に、１つの表示部を有するディスプレイ（例えばテレビモニタ）を備えてもよい。この場合、仮想空間Sに、上述の一対の仮想カメラCL，CR（ＶＲ用カメラ）を配置すると共に、当該表示部に表示するための画像を撮影する１つの仮想カメラ（非ＶＲ用カメラ）を配置してもよい。また、上記実施形態で説明した上下動処理を、ＶＲ用カメラと非ＶＲ用カメラの双方に適用してもよいし、それらのいずれか一方のみに適用してもよい。また、上下動処理が適用されなかった仮想カメラについては、プレイヤキャラクタPに固定的に配置してもよいし、上記上下動処理とは別の処理を実行してもよい。
【００７１】
また、上記実施形態では、仮想カメラCの高さを決定するための基準となる基準点P0の高さを、プレイヤキャラクタPの目の高さに設定していたが、基準点P0の設定方法はこれに限定されず、例えば、基準点P0の高さを、プレイヤキャラクタPの頭部の頂点の高さに設定してもよい。
【００７２】
また、上記実施形態では、ズレ量Dが閾値A以内にあるか否かの判定を行うために、仮想カメラCに対して設定した判定範囲R内に基準点P0があるか否かを判定したが、ズレ量Dが閾値A以内にあるか否かの判定方法はこれに限られない。例えば、判定手段54は、仮想カメラCに対して判定範囲Rを設定する代わりに、基準点P0に対して判定範囲を設定してもよい。即ち、判定手段54は、基準点P0からの上下方向の距離が閾値A以内にある範囲を判定範囲として設定するとともに、当該判定範囲内に仮想カメラCが位置するか否かを判定してもよい。また、判定手段54は、判定範囲を設定しなくてもよく、基準点P0と仮想カメラCのそれぞれのＹ座標値からズレ量Dを算出して、算出したズレ量Dが閾値A以内にあるか否かを判定してもよい。
【符号の説明】
【００７３】
51         ：仮想空間生成手段
52         ：キャラクタ制御手段
53         ：カメラ移動手段
54         ：判定手段
A          ：閾値
C（CL，CR）：仮想カメラ
D          ：ズレ量
G          ：接地面
P          ：プレイヤキャラクタ
P0         ：基準点
R          ：判定範囲
S          ：仮想空間
【図１】
2019017746.tif 000003
【図２】
2019017746.tif 000004
【図３】
2019017746.tif 000005
【図４】
2019017746.tif 000006
【図５】
2019017746.tif 000007
【図６】
2019017746.tif 000008
【図７】
2019017746.tif 000009
【図８】
2019017746.tif 000010