(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-14
(45)【発行日】2023-12-22
(54)【発明の名称】情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法
(51)【国際特許分類】
A63F 13/56 20140101AFI20231215BHJP
A63F 13/525 20140101ALI20231215BHJP
A63F 13/843 20140101ALI20231215BHJP
【FI】
A63F13/56
A63F13/525
A63F13/843
(21)【出願番号】P 2021143741
(22)【出願日】2021-09-03
【審査請求日】2023-01-12
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(73)【特許権者】
【識別番号】391041718
【氏名又は名称】株式会社ハル研究所
(74)【代理人】
【識別番号】100158780
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【氏名又は名称】小沢 昌弘
(72)【発明者】
【氏名】根本 卓
【審査官】宮本 昭彦
(56)【参考文献】
【文献】特開2011-244962(JP,A)
【文献】特開2014-023719(JP,A)
【文献】特開2002-085845(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00 - 13/98
(57)【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、
前記コンピュータを、
仮想空間において、少なくとも一方がユーザによって操作されるプレイヤオブジェクトである第1ゲームオブジェクトおよび第2ゲームオブジェクトの移動を制御するオブジェクト制御手段と、
少なくとも前記第1ゲームオブジェクトの前記仮想空間における位置に基づいて、仮想カメラの視野を制御する仮想カメラ制御手段と、
前記仮想カメラに基づいて、表示画面に表示する表示画像を生成する画像生成手段として機能させ、
前記オブジェクト制御手段は、
前記表示画像の表示範囲の第1端部に対応する前記仮想空間内の当該表示範囲内となる端部範囲に前記第2ゲームオブジェクトが位置する場合、当該表示範囲内に向かい、当該第1端部に垂直な方向に対応する前記仮想空間内の第1方向へ前記視野が移動する間、および当該第1方向とは逆方向の第2方向への移動動作を当該第2ゲームオブジェクトが行っている間の少なくとも一方において、当該第2ゲームオブジェクトが前記端部範囲内に留まるように制御する端部制御を行い、
前記端部制御が猶予時間以上継続した場合に、前記表示範囲に対応する前記仮想空間内の範囲のうち前記端部範囲以外の位置に前記第2ゲームオブジェクトを移動させる、情報処理プログラム。
【請求項2】
前記仮想カメラ制御手段は、前記第1ゲームオブジェクトが前記表示範囲の中央領域に含まれるように、前記仮想カメラの前記視野を制御する、請求項1に記載の情報処理プログラム。
【請求項3】
前記オブジェクト制御手段は、前記端部範囲に前記第2ゲームオブジェクトが位置する場合、前記第1方向へ前記視野が移動する間、前記仮想空間内において当該第2ゲームオブジェクトを強制的に移動させることにより、前記端部制御を行う、請求項1または2に記載の情報処理プログラム。
【請求項4】
前記オブジェクト制御手段は、前記端部範囲に前記第2ゲームオブジェクトが位置する状態で前記第1方向へ前記視野が移動する場合、当該端部範囲から前記表示範囲の中央領域に対応する仮想空間の位置に向かって移動するアクションを前記第2ゲームオブジェクトに行わせることにより、前記仮想空間内において当該第2ゲームオブジェクトを前記強制的に移動させる、請求項3に記載の情報処理プログラム。
【請求項5】
前記オブジェクト制御手段は、前記端部範囲に前記第2ゲームオブジェクトが位置する場合、前記第2方向への移動動作を当該第2ゲームオブジェクトが行っている間、前記第2ゲームオブジェクトの位置を当該端部範囲の外に移動させないことにより、前記端部制御を行う、請求項1乃至4の何れか1つに記載の情報処理プログラム。
【請求項6】
前記第1端部は、前記表示画像の左端である場合を含む、請求項1乃至5の何れか1つに記載の情報処理プログラム。
【請求項7】
前記第1端部は、前記表示画像の下端である場合を含む、請求項1乃至6の何れか1つに記載の情報処理プログラム。
【請求項8】
前記表示画像の前記下端に対応する前記仮想空間内の位置を含む面を仮想端面として決定する端面決定手段として、さらに前記コンピュータを機能させ、
前記オブジェクト制御手段は、前記仮想端面に前記第2ゲームオブジェクトが位置する場合、前記表示画面の上方向に対応する前記仮想空間内の方向に前記視野が移動する間および前記表示画面の下方向に対応する前記仮想空間内の方向への移動動作を当該第2ゲームオブジェクトが行っている間の少なくとも一方において、当該仮想端面に対応する前記仮想空間内の範囲に当該第2ゲームオブジェクトが留まるように前記端部制御を行う、請求項7に記載の情報処理プログラム。
【請求項9】
前記端面決定手段は、前記第1ゲームオブジェクトが位置する前記仮想空間の水平面と前記表示画像の前記下端に対応する前記仮想空間内の面とが交わる線分を含む、当該仮想空間の鉛直面を前記仮想端面として決定する、請求項8に記載の情報処理プログラム。
【請求項10】
前記オブジェクト制御手段は、前記端部制御が行われずに前記第2ゲームオブジェクトが前記表示範囲の外に対応する前記仮想空間内の範囲に移動した場合に、当該表示範囲内に対応する前記仮想空間内の範囲に当該第2ゲームオブジェクトを強制的に移動させる、請求項1乃至9の何れか1つに記載の情報処理プログラム。
【請求項11】
前記オブジェクト制御手段は、前記表示画像の上端においては、前記端部制御を行わない、請求項1乃至10の何れか1つに記載の情報処理プログラム。
【請求項12】
前記オブジェクト制御手段は、前記第2ゲームオブジェクトが前記仮想カメラの視線方向に対して当該仮想カメラから離れる方向に移動することにより当該仮想カメラまたは前記第1ゲームオブジェクトから第1距離以上離れたことに基づいて、前記第2ゲームオブジェクトを当該仮想カメラまたは当該第1ゲームオブジェクトに当該第1距離より近づけるように強制的に移動させる、請求項1乃至11の何れか1つに記載の情報処理プログラム。
【請求項13】
前記仮想カメラ制御手段は、ユーザ操作に基づいて前記仮想カメラの前記視野を制御し、
前記オブジェクト制御手段は、ユーザ操作により前記仮想カメラの前記視野が変更された場合に、前記仮想空間内における前記端部範囲を変更する、請求項1乃至12の何れか1つに記載の情報処理プログラム。
【請求項14】
前記オブジェクト制御手段は、前記第2ゲームオブジェクトが前記端部範囲に位置する場合であっても、前記第1方向へ前記視野が移動することおよび前記第2方向への移動動作を前記第2ゲームオブジェクトが行っていることの何れも生じていない間は、当該端部範囲以外の位置に前記第2ゲームオブジェクトを移動させる制御を行わない、請求項1乃至13の何れか1つに記載の情報処理プログラム。
【請求項15】
前記オブジェクト制御手段は、前記端部制御が前記猶予時間以上継続した場合に、前記第2ゲームオブジェクトを前記第1ゲームオブジェクトの近傍に移動させる、請求項1乃至14の何れか1つに記載の情報処理プログラム。
【請求項16】
前記オブジェクト制御手段は、前記端部制御が前記猶予時間以上継続した場合に、前記第2ゲームオブジェクトを前記表示範囲の中央領域に対応する位置に移動させる、請求項1乃至15の何れか1つに記載の情報処理プログラム。
【請求項17】
前記オブジェクト制御手段は、前記表示範囲に対応して設定された前記仮想空間内の平面を用いて、前記第2ゲームオブジェクトを留める前記端部範囲を設定する、請求項1乃至16の何れか1つに記載の情報処理プログラム。
【請求項18】
仮想空間において、少なくとも一方がユーザによって操作されるプレイヤオブジェクトである第1ゲームオブジェクトおよび第2ゲームオブジェクトの移動を制御するオブジェクト制御手段と、
少なくとも前記第1ゲームオブジェクトの前記仮想空間における位置に基づいて、仮想カメラの視野を制御する仮想カメラ制御手段と、
前記仮想カメラに基づいて、表示画面に表示する表示画像を生成する画像生成手段とを備え、
前記オブジェクト制御手段は、
前記表示画像の表示範囲の第1端部に対応する前記仮想空間内の当該表示範囲内となる端部範囲に前記第2ゲームオブジェクトが位置する場合、当該表示範囲内に向かい、当該第1端部に垂直な方向に対応する前記仮想空間内の第1方向へ前記視野が移動する間、および当該第1方向とは逆方向の第2方向への移動動作を当該第2ゲームオブジェクトが行っている間の少なくとも一方において、当該第2ゲームオブジェクトが前記端部範囲内に留まるように制御する端部制御を行い、
前記端部制御が猶予時間以上継続した場合に、前記表示範囲に対応する前記仮想空間内の範囲のうち前記端部範囲以外の位置に前記第2ゲームオブジェクトを移動させる、情報処理システム。
【請求項19】
仮想空間において、少なくとも一方がユーザによって操作されるプレイヤオブジェクトである第1ゲームオブジェクトおよび第2ゲームオブジェクトの移動を制御するオブジェクト制御手段と、
少なくとも前記第1ゲームオブジェクトの前記仮想空間における位置に基づいて、仮想カメラの視野を制御する仮想カメラ制御手段と、
前記仮想カメラに基づいて、表示画面に表示する表示画像を生成する画像生成手段とを備え、
前記オブジェクト制御手段は、
前記表示画像の表示範囲の第1端部に対応する前記仮想空間内の当該表示範囲内となる端部範囲に前記第2ゲームオブジェクトが位置する場合、当該表示範囲内に向かい、当該第1端部に垂直な方向に対応する前記仮想空間内の第1方向へ前記視野が移動する間、および当該第1方向とは逆方向の第2方向への移動動作を当該第2ゲームオブジェクトが行っている間の少なくとも一方において、当該第2ゲームオブジェクトが前記端部範囲内に留まるように制御する端部制御を行い、
前記端部制御が猶予時間以上継続した場合に、前記表示範囲に対応する前記仮想空間内の範囲のうち前記端部範囲以外の位置に前記第2ゲームオブジェクトを移動させる、情報処理装置。
【請求項20】
情報処理装置のプロセッサに、
仮想空間において、少なくとも一方がユーザによって操作されるプレイヤオブジェクトである第1ゲームオブジェクトおよび第2ゲームオブジェクトの移動を制御するオブジェクト制御ステップと、
少なくとも前記第1ゲームオブジェクトの前記仮想空間における位置に基づいて、仮想カメラの視野を制御する仮想カメラ制御ステップと、
前記仮想カメラに基づいて、表示画面に表示する表示画像を生成する画像生成ステップとを実行させ、
前記オブジェクト制御ステップでは、
前記表示画像の表示範囲の第1端部に対応する前記仮想空間内の当該表示範囲内となる端部範囲に前記第2ゲームオブジェクトが位置する場合、当該表示範囲内に向かい、当該第1端部に垂直な方向に対応する前記仮想空間内の第1方向へ前記視野が移動する間、および当該第1方向とは逆方向の第2方向への移動動作を当該第2ゲームオブジェクトが行っている間の少なくとも一方において、当該第2ゲームオブジェクトが前記端部範囲内に留まるように制御する端部制御が行われ、
前記端部制御が猶予時間以上継続した場合に、前記表示範囲に対応する前記仮想空間内の範囲のうち前記端部範囲以外の位置に前記第2ゲームオブジェクトを移動させる、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームオブジェクトを用いた処理を行う情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法に関する。
【背景技術】
【0002】
従来、第2プレイヤオブジェクトが表示範囲外となる時間が所定時間を超えると、当該第2プレイヤオブジェクトが防御状態となって表示範囲内にいる第1プレイヤオブジェクトに近づくように移動するゲーム画像を表示する情報処理システムがある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1で開示された情報処理システムは、表示範囲外となったプレイヤオブジェクトの周囲の様子が分からないため、当該プレイヤオブジェクトの状況が把握できなかった。
【0005】
それ故に、本発明の目的は、仮想空間に配置されているゲームオブジェクトの状況把握等を容易にすることができる情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。
【0007】
本発明の情報処理プログラムの一構成例は、情報処理装置のコンピュータにおいて実行される。情報処理プログラムは、オブジェクト制御手段、仮想カメラ制御手段、および画像生成手段として、コンピュータを機能させる。オブジェクト制御手段は、仮想空間において、少なくとも一方がユーザによって操作されるプレイヤオブジェクトである第1ゲームオブジェクトおよび第2ゲームオブジェクトの移動を制御する。仮想カメラ制御手段は、少なくとも第1ゲームオブジェクトの仮想空間における位置に基づいて、仮想カメラの視野を制御する。画像生成手段は、仮想カメラに基づいて、表示画面に表示する表示画像を生成する。オブジェクト制御手段は、表示画像の表示範囲の第1端部に対応する仮想空間内の当該表示範囲内となる端部範囲に第2ゲームオブジェクトが位置する場合、当該表示範囲内に向かい、当該第1端部に垂直な方向に対応する仮想空間内の第1方向へ視野が移動する間、および当該第1方向とは逆方向の第2方向への移動動作を当該第2ゲームオブジェクトが行っている間の少なくとも一方において、当該第2ゲームオブジェクトが端部範囲内に留まるように制御する端部制御を行い、端部制御が猶予時間以上継続した場合に、表示範囲に対応する仮想空間内の範囲のうち端部範囲以外の位置に第2ゲームオブジェクトを移動させる。
【0008】
上記によれば、複数のゲームオブジェクトのうち第2ゲームオブジェクトが従来例において表示画像の表示範囲から外れる場合であっても、当該表示範囲内に留まるような端部制御が行われ、当該端部制御が猶予時間以上継続した後に表示範囲に対応する仮想空間内の端部範囲以外の位置に第2ゲームオブジェクトを移動させるため、仮想空間に配置されているゲームオブジェクトの状況把握を容易にすることができる。
【0009】
また、上記仮想カメラ制御手段は、第1ゲームオブジェクトが表示範囲の中央領域に含まれるように、仮想カメラの視野を制御してもよい。
【0010】
上記によれば、第1ゲームオブジェクトを表示範囲の中央領域に常時表示しながら、第2ゲームオブジェクトも常に表示することができ、第1ゲームオブジェクトの位置に合わせて視野を変更するゲームにおいても、第2ゲームオブジェクトの状況把握を容易にすることができる。
【0011】
また、上記オブジェクト制御手段は、端部範囲に第2ゲームオブジェクトが位置する場合、第1方向へ視野が移動する間、仮想空間内において当該第2ゲームオブジェクトを強制的に移動させることにより、端部制御を行ってもよい。
【0012】
上記によれば、表示範囲が変化することによって、第2ゲームオブジェクトが表示画像の表示範囲から外れようとしている場合であっても、仮想空間に配置されている第2ゲームオブジェクトの状況把握を容易にすることができる。
【0013】
また、上記オブジェクト制御手段は、端部範囲に第2ゲームオブジェクトが位置する状態で第1方向へ視野が移動する場合、当該端部範囲から表示範囲の中央領域に対応する仮想空間の位置に向かって移動するアクションを第2ゲームオブジェクトに行わせることにより、仮想空間内において当該第2ゲームオブジェクトを強制的に移動させてもよい。
【0014】
上記によれば、第2ゲームオブジェクトが自ら移動しているように見えるため、自然な移動を表現することができる。
【0015】
また、上記オブジェクト制御手段は、端部範囲に第2ゲームオブジェクトが位置する場合、第2方向への移動動作を当該第2ゲームオブジェクトが行っている間、第2ゲームオブジェクトの位置を当該端部範囲の外に移動させないことにより、端部制御を行ってもよい。
【0016】
上記によれば、第2ゲームオブジェクトの表示範囲から出る移動動作によって、第2ゲームオブジェクトが表示画像の表示範囲から外れようとしている場合であっても、仮想空間に配置されている第2ゲームオブジェクトの状況把握を容易にすることができる。
【0017】
また、上記第1端部は、表示画像の左端である場合を含んでもよい。
【0018】
上記によれば、ゲームオブジェクトが表示画面の左から右に移動しながら、表示画像が当該表示画面の右から左にスクロールするゲームにおいて有用となる。
【0019】
また、上記第1端部は、表示画像の下端である場合を含んでもよい。
【0020】
上記によれば、ゲームオブジェクトが表示画面の手前から奥に移動するゲームにおいて有用となる。
【0021】
また、上記情報処理プログラムは、端面決定手段として、さらにコンピュータを機能させてもよい。端面決定手段は、表示画像の下端に対応する仮想空間内の位置を含む面を仮想端面として決定する。この場合、上記オブジェクト制御手段は、仮想端面に第2ゲームオブジェクトが位置する場合、表示画面の上方向に対応する仮想空間内の方向に視野が移動する間および表示画面の下方向に対応する仮想空間内の方向への移動動作を当該第2ゲームオブジェクトが行っている間の少なくとも一方において、当該仮想端面に対応する仮想空間内の範囲に当該第2ゲームオブジェクトが留まるように端部制御を行ってもよい。
【0022】
上記によれば、第2ゲームオブジェクトが表示画像の表示範囲の下端側から外れようとしている場合であっても、仮想空間に配置されている第2ゲームオブジェクトの状況把握を容易にすることができる。
【0023】
また、上記端面決定手段は、第1ゲームオブジェクトが位置する仮想空間の水平面と表示画像の下端に対応する仮想空間内の面とが交わる線分を含む、当該仮想空間の鉛直面を仮想端面として決定してもよい。
【0024】
上記によれば、ゲームオブジェクトが地面上を移動するようなゲームにおいて、第2ゲームオブジェクトが画面下端から外に出ることを防ぐことができる。
【0025】
また、上記オブジェクト制御手段は、端部制御が行われずに第2ゲームオブジェクトが表示範囲の外に対応する仮想空間内の範囲に移動した場合に、当該表示範囲内に対応する仮想空間内の範囲に当該第2ゲームオブジェクトを強制的に移動させてもよい。
【0026】
上記によれば、端部制御が行われずに第2ゲームオブジェクトが表示範囲外に出た場合であっても、仮想空間に配置されている第2ゲームオブジェクトの状況把握を容易にすることができる。
【0027】
また、上記オブジェクト制御手段は、表示画像の上端においては、端部制御を行わなくてもよい。
【0028】
上記によれば、ゲームオブジェクトの自然な移動を表現することができる。
【0029】
また、上記オブジェクト制御手段は、第2ゲームオブジェクトが仮想カメラの視線方向に対して当該仮想カメラから離れる方向に移動することにより当該仮想カメラまたは第1ゲームオブジェクトから第1距離以上離れたことに基づいて、第2ゲームオブジェクトを当該仮想カメラまたは当該第1ゲームオブジェクトに当該第1距離より近づけるように強制的に移動させてもよい。
【0030】
上記によれば、仮想カメラから離れる方向に際限なく移動可能にすることによって、第2ゲームオブジェクトが見失ってしまうことを防止することができる。
【0031】
また、上記仮想カメラ制御手段は、ユーザ操作に基づいて仮想カメラの視野を制御してもよい。上記オブジェクト制御手段は、ユーザ操作により仮想カメラの視野が変更された場合に、仮想空間内における端部範囲を変更してもよい。
【0032】
上記によれば、第1ゲームオブジェクトの動作とは独立して、表示画像の表示範囲をユーザ操作に応じて変更した場合でも、表示画面の外縁と合うように端部範囲を設定することができる。
【0033】
また、上記オブジェクト制御手段は、第2ゲームオブジェクトが端部範囲に位置する場合であっても、第1方向へ視野が移動することおよび第2方向への移動動作を第2ゲームオブジェクトが行っていることの何れも生じていない間は、当該端部範囲以外の位置に第2ゲームオブジェクトを移動させる制御を行わなくてもよい。
【0034】
上記によれば、ゲームオブジェクトを自由に操作する感覚が損なわれることを防止することができる。
【0035】
また、上記オブジェクト制御手段は、端部制御が猶予時間以上継続した場合に、第2ゲームオブジェクトを第1ゲームオブジェクトの近傍に移動させてもよい。
【0036】
上記によれば、表示画像の表示範囲の端部から離して第2ゲームオブジェクトを表示することができる。
【0037】
また、上記オブジェクト制御手段は、端部制御が猶予時間以上継続した場合に、第2ゲームオブジェクトを表示範囲の中央領域に対応する位置に移動させてもよい。
【0038】
上記によれば、表示画像の表示範囲の中央領域に第2ゲームオブジェクトを表示することができる。
【0039】
また、上記オブジェクト制御手段は、表示範囲に対応して設定された仮想空間内の平面を用いて、第2ゲームオブジェクトを留める端部範囲を設定してもよい。
【0040】
上記によれば、端部制御を容易に実現することができる。
【0041】
また、本発明は、情報処理システム、情報処理装置、および情報処理方法の形態で実施されてもよい。
【発明の効果】
【0042】
本発明によれば、仮想空間に配置されているゲームオブジェクトの状況把握を容易にすることができる。
【図面の簡単な説明】
【0043】
【
図1】本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図
【
図2】本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図
【
図6】本体装置2の内部構成の一例を示すブロック図
【
図7】本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図
【
図8】第1プレイヤキャラクタPC1および第2プレイヤキャラクタPC2が登場するゲーム画像の例を示す図
【
図9】表示範囲が移動することによって第2プレイヤキャラクタPC2の位置を変更するゲーム画像の一例を示す図
【
図10】第2プレイヤキャラクタPC2の移動に応じて当該第2プレイヤキャラクタPC2の位置が変更されるゲーム画像の例を示す図
【
図11】左端部範囲EALの一例を説明するための図
【
図12】表示範囲が移動することによって第2プレイヤキャラクタPC2の位置を変更するゲーム画像の他の例を示す図
【
図13】下端部範囲EABの一例を説明するための図
【
図14】端部制御が行われずに第2プレイヤキャラクタPC2の位置が表示範囲外に外れる一例を説明するための図
【
図15】2次元画像によって第1プレイヤキャラクタPC1および第2プレイヤキャラクタPC2が登場するゲーム画像の例を示す図
【
図16】本実施例において本体装置2のDRAM85に設定されるデータ領域の一例を示す図
【
図17】ゲームシステム1で実行されるゲーム処理の一例を示すフローチャート
【
図18】
図17におけるステップS128おいて行われる端部制御処理の詳細な一例を示すサブルーチン
【発明を実施するための形態】
【0044】
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1は、情報処理システムの一例であり、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(
図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0045】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0046】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。
図1および
図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0047】
図3は、本体装置2の一例を示す六面図である。
図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0048】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0049】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0050】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0051】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、
図6に示すスピーカ88)を備えている。
図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0052】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0053】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0054】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0055】
図4は、左コントローラ3の一例を示す六面図である。
図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、
図1および
図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0056】
左コントローラ3は、アナログスティック32を備える。
図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0057】
左コントローラ3は、各種操作ボタンを備える。左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33~36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36)を備える。さらに、左コントローラ3は、録画ボタン37および-(マイナス)ボタン47を備える。左コントローラ3は、ハウジング31の側面の左上に第1Lボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面の、本体装置2に装着される際に装着される側の面に第2Lボタン43および第2Rボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0058】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0059】
図5は、右コントローラ4の一例を示す六面図である。
図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0060】
右コントローラ4は、左コントローラ3と同様、方向入力部としてアナログスティック52を備える。本実施形態においては、アナログスティック52は、左コントローラ3のアナログスティック32と同じ構成である。また、右コントローラ4は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ4は、左コントローラ3と同様、ハウジング51の主面上に4つの操作ボタン53~56(具体的には、Aボタン53、Bボタン54、Xボタン55、およびYボタン56)を備える。さらに、右コントローラ4は、+(プラス)ボタン57およびホームボタン58を備える。また、右コントローラ4は、ハウジング51の側面の右上に第1Rボタン60およびZRボタン61を備える。また、右コントローラ4は、左コントローラ3と同様、第2Lボタン65および第2Rボタン66を備える。
【0061】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0062】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、
図3に示す構成の他、
図6に示す各構成要素81~91、97、および98を備える。これらの構成要素81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0063】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0064】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0065】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0066】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0067】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0068】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0069】
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。また、プロセッサ81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0070】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0071】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0072】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0073】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0074】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0075】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図6で示しているため
図7では省略している。
【0076】
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。
図7に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
【0077】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0078】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(
図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0079】
通信制御部101は、各入力部(具体的には、各ボタン103、および、アナログスティック32)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0080】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。
【0081】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0082】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0083】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、および、アナログスティック52を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0084】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0085】
以上に説明したように、本実施形態におけるゲームシステム1については左コントローラ3および右コントローラ4が本体装置2から着脱可能である。また、クレードルに左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置や本体装置2単体を装着することによって据置型モニタ等の外部表示装置に画像(および音声)を出力可能である。以下の説明では、ディスプレイ12に画像を表示する利用態様におけるゲームシステム1を用いて説明する。
【0086】
ゲームシステム1における左コントローラ3および/または右コントローラ4の各操作ボタンやスティックの操作、あるいは本体装置2のタッチパネル13に対するタッチ操作等に応じて、ディスプレイ12に表示される仮想空間を用いたゲームプレイが行われる。本実施例では、一例として、上記操作ボタン、スティック、およびタッチパネル13を用いたユーザ操作に応じて、仮想空間内における第1プレイヤキャラクタPC1および第2プレイヤキャラクタPC2等を用いたゲームプレイが可能となる。なお、本実施例における第1プレイヤキャラクタPC1および第2プレイヤキャラクタPC2は、仮想空間に登場するゲームオブジェクトとして機能するものであり、少なくとも一方がユーザによって操作可能なプレイヤキャラクタであり、一方がユーザによって操作されないノンプレイヤキャラクタでもよい。説明を具体的にするために、以下の説明においては、第1プレイヤキャラクタPC1がユーザによって操作可能なプレイヤキャラクタであり、第2プレイヤキャラクタPC2がプロセッサ81によって自動制御されるノンプレイヤキャラクタとする。なお、第1プレイヤキャラクタPC1および第2プレイヤキャラクタPC2は、少なくとも一方がユーザによって操作されるプレイヤオブジェクトである第1ゲームオブジェクトおよび第2ゲームオブジェクトの一例に相当する。
【0087】
図8~
図15を用いてゲームシステム1において行われるゲーム処理の概要について説明する。なお、
図8は、第1プレイヤキャラクタPC1および第2プレイヤキャラクタPC2が登場するゲーム画像の一例を示す図である。
図9は、表示範囲が移動することによって第2プレイヤキャラクタPC2の位置を変更するゲーム画像の一例を示す図である。
図10は、第2プレイヤキャラクタPC2の移動に応じて当該第2プレイヤキャラクタPC2の位置が変更されるゲーム画像の例を示す図である。
図11は、左端部範囲EALの一例を説明するための図である。
図12は、表示範囲が移動することによって第2プレイヤキャラクタPC2の位置を変更するゲーム画像の他の例を示す図である。
図13は、下端部範囲EABの一例を説明するための図である。
図14は、端部制御が行われずに第2プレイヤキャラクタPC2の位置が表示範囲外に外れる一例を説明するための図である。
図15は、2次元画像によって第1プレイヤキャラクタPC1および第2プレイヤキャラクタPC2が登場するゲーム画像の例を示す図である。
【0088】
図8において、ゲームシステム1のディスプレイ12には、仮想空間に第1プレイヤキャラクタPC1および第2プレイヤキャラクタPC2が配置されたゲーム画像が表示されている。なお、第1プレイヤキャラクタPC1および第2プレイヤキャラクタPC2がそれぞれ別のユーザによって操作される場合、一例として、ゲームシステム1を用いて第1ユーザが操作し、ゲームシステム1とデータ通信可能な他のゲームシステムを用いて第2ユーザが操作し、他の例として、ゲームシステム1の左コントローラ3を用いて第1ユーザが操作し、ゲームシステム1の右コントローラ4を用いて第2ユーザが操作することが考えられる。
【0089】
本実施例では、一例として、第1プレイヤキャラクタPC1が表示範囲の中央領域(例えば、表示範囲の中心を含む領域)に含まれるように、ゲームシステム1のディスプレイ12に表示される仮想空間の表示範囲が制御される。例えば、ゲームシステム1のディスプレイ12には、仮想空間に設定された仮想カメラから見た当該仮想空間の様子が表示され、上記表示範囲が仮想カメラの視野と同じでもよいし、上記表示範囲が仮想カメラの視野の一部を切り取った範囲でもよい。
【0090】
このような表示範囲の制御が行われる場合、仮想空間において第1プレイヤキャラクタPC1が移動すると、当該移動を行う第1プレイヤキャラクタPC1の配置位置に応じて表示範囲も移動することになる。例えば、
図9に示すように、ユーザの操作に応じて、第1プレイヤキャラクタPC1が仮想カメラから見て右(
図9上段図の矢印の方向)に移動した場合、第1プレイヤキャラクタPC1の配置位置が中心となるように表示範囲も右に移動することになる。
【0091】
表示範囲が移動した場合、第2プレイヤキャラクタPC2の表示位置が当該表示範囲外に外れてしまうことが考えられる。例えば、
図9上段図に示すように、第2プレイヤキャラクタPC2がディスプレイ12の表示画像の左側に表示されている場合、当該表示範囲が右に移動することによって、本実施例の処理を行わない場合においては第2プレイヤキャラクタPC2が当該表示範囲の左方から当該表示範囲外に外れる状態となる。本実施例では、表示範囲が移動することによって、第2プレイヤキャラクタPC2が当該表示範囲の端部に対応する仮想空間内の端部範囲に位置する状態となった場合、当該端部範囲内に第2プレイヤキャラクタPC2が留まるように制御する端部制御が行われる。
【0092】
例えば、
図9中段図に示すように、表示範囲が右に移動することによって第2プレイヤキャラクタPC2が表示範囲の左端部に対応する仮想空間の左端部範囲EALに位置する状態となった場合、左端部範囲EAL内に第2プレイヤキャラクタPC2が留まるように制御される端部制御が行われる。上記端部制御では、端部範囲内から表示範囲外となる仮想空間へ第2プレイヤキャラクタPC2が外れる方向に表示範囲(視野)が移動する間、第2プレイヤキャラクタPC2が当該端部範囲内に留まるように制御される。具体的には、左端部範囲EALに第2プレイヤキャラクタPC2が位置する場合、表示範囲内に向かう当該表示範囲の左端に垂直な方向に対応する仮想空間内の右方向へ表示範囲が移動する間、第2プレイヤキャラクタPC2が左端部範囲EAL内に留まるように制御される。なお、左端部範囲EAL等の端部範囲の詳細な位置については後述する。
【0093】
上記端部制御では、表示範囲が移動する間に表示画面内では端部領域内に第2プレイヤキャラクタPC2が留まるように制御されるため、表示範囲の移動に伴って仮想空間内では第2プレイヤキャラクタPC2の位置が移動することとなる。上記位置移動の際は、第2プレイヤキャラクタPC2に端部範囲から表示範囲の中央領域に対応する仮想空間の位置に向かって移動するアクションを行わせることによって、第2プレイヤキャラクタPC2を強制的に移動させる。なお、表示範囲の移動に伴って第2プレイヤキャラクタPC2を強制的に移動させる方向は、当該表示範囲が移動する方向と平行となる仮想空間内の方向でもよいし、当該表示範囲の中心(第1プレイヤキャラクタPC1の位置)に対応する仮想空間の位置に向かう方向でもよいし、第2プレイヤキャラクタPC2を強制的に移動させる距離が最短となる方向でもよい。また、上記アクションとしては、第2プレイヤキャラクタPC2が走る、歩く、跳ぶ、飛ぶ、車輪や推進器を動かして移動する等でもよい。このように、第2プレイヤキャラクタPC2が静止状態で壁に押されるような動作制御ではなく、端部制御の際に表示範囲の中央領域に対応する仮想空間の位置に向かって移動するアクションを第2プレイヤキャラクタPC2に行わせながら強制的に移動させることにより、第2プレイヤキャラクタPC2が自ら移動しているように見えるため、自然な移動を表現することができる。
【0094】
上記端部制御が予め定められた猶予時間(例えば、1秒間)以上継続した場合、ディスプレイ12の表示範囲に対応する仮想空間内の範囲のうち上記端部範囲以外の位置に第2プレイヤキャラクタPC2を移動させる。一例として、
図9下段図における矢印Mで示されるように、上記端部制御が猶予時間以上継続した場合に、第2プレイヤキャラクタPC2を第1プレイヤキャラクタPC1の近傍に移動させる。他の例として、上記端部制御が猶予時間以上継続した場合に、第2プレイヤキャラクタPC2を上記表示範囲の中央領域に対応する仮想空間の位置に移動させる。ここで、上記中央領域は、上記表示範囲の内、端部範囲を除く領域を示し、上記表示範囲の中心を少なくとも含む領域である。上記端部範囲以外の位置に第2プレイヤキャラクタPC2を移動させる動作は、瞬間的に第2プレイヤキャラクタPC2を移動させてもよいし、第2プレイヤキャラクタPC2に所定のアクション(例えば、仮想空間内でワープするアクション)を行わせながら所定の時間経過を伴う移動を行ってもよい。なお、表示範囲の移動がない状態で第2プレイヤキャラクタPC2が端部範囲に配置されて静止している状態(すなわち、仮想カメラが静止、かつ、第2プレイヤキャラクタPC2が何の移動アクションも行っていない状態)が上記猶予時間以上継続したとしても、上記端部制御が行われないために当該端部範囲以外の位置に第2プレイヤキャラクタPC2を移動させる処理は行われない。
【0095】
なお、上述した説明では、仮想空間における第1プレイヤキャラクタPC1の移動に応じて表示範囲が移動する例を用いたが、第1プレイヤキャラクタPC1の他の動作や仮想カメラの他の視野制御によって表示範囲が変化してもかまわない。一例として、第1プレイヤキャラクタPC1の大きさによって表示範囲が拡縮してもよいし、第1プレイヤキャラクタPC1の状態(例えば、特定の状態であり、攻撃中、防御中、特別アクション中等)によって表示範囲が変化してもよい。また、第1プレイヤキャラクタPC1の動作に基づいて、仮想カメラが移動および/または回転することにより表示範囲が移動してもよいし、仮想カメラがズームイン/ズームアウトすることにより表示範囲が変化してもよい。
【0096】
なお、上述した説明では、仮想空間における第1プレイヤキャラクタPC1の移動に応じて表示範囲が移動する例を用いたが、第1プレイヤキャラクタPC1の位置とは無関係に当該表示範囲が移動してもかまわない。一例として、ユーザの操作に基づいて、上記表示範囲を制御する仮想カメラの位置および/または姿勢が変化してもかまわない。他の例として、上記表示範囲を制御する仮想カメラの位置および/または姿勢が、所定のアルゴリズム(例えば、仮想カメラが一定速度で移動したり、回転したりするアルゴリズム)に基づいて変化してもかまわない。何れの場合であっても、第1プレイヤキャラクタPC1が表示範囲内に配置されていなくてもよく、上記端部制御が行われる条件を第2プレイヤキャラクタPC2が満たした場合は、同様の制御が行われる。また、これらの場合、上記端部制御が行われる条件を第1プレイヤキャラクタPC1が満たす場合も考えられるが、第1プレイヤキャラクタPC1が上記端部制御を行われる条件を満たした場合であっても、第2プレイヤキャラクタPC2と同様の制御が行われてもよい。また、第1プレイヤキャラクタPC1および第2プレイヤキャラクタPC2の両方がユーザによって操作されるプレイヤキャラクタであっても、表示範囲の移動に伴って同様の制御が行われてもかまわない。
【0097】
また、他の例として、仮想空間において第2プレイヤキャラクタPC2が移動することにより、第2プレイヤキャラクタPC2の表示位置がディスプレイ12の表示範囲外に外れてしまうことが考えられる。例えば、
図10上段図に示すように、第2プレイヤキャラクタPC2がディスプレイ12の表示画像の左側に表示されている状態で、仮想カメラから見て左(
図10上段図の矢印の方向)に移動することによって、本実施例の処理を行わない場合においては第2プレイヤキャラクタPC2が表示範囲の左方から当該表示範囲外に外れる状態となる。本実施例では上記表示範囲の端部に対応する仮想空間内の端部範囲内から当該表示範囲外に対応する仮想空間の位置へ外れる方向への移動動作を第2プレイヤキャラクタPC2が行った場合、当該端部範囲内に第2プレイヤキャラクタPC2が留まるように制御する端部制御が行われる。
【0098】
例えば、
図10中段図に示すように、第2プレイヤキャラクタPC2が仮想カメラから見て左に移動することによって上記表示範囲の左端部に対応する仮想空間の左端部範囲EALに位置する状態となった場合、左端部範囲EAL内に第2プレイヤキャラクタPC2が留まるように制御される端部制御が行われる。上記端部制御では、端部範囲内から当該表示範囲外となる仮想空間へ外れる方向への移動動作を第2プレイヤキャラクタPC2が行っている間、第2プレイヤキャラクタPC2が当該端部範囲内に留まるように制御される。具体的には、上記表示範囲外に向かう当該表示範囲の左端に垂直な方向に対応する仮想空間内の左方向への移動動作(仮想空間内の左方向へ移動しようとする動作)を第2プレイヤキャラクタPC2が左端部範囲EAL内で行っている間、第2プレイヤキャラクタPC2が左端部範囲EAL内に留まるように制御される。
【0099】
上記端部制御では、第2プレイヤキャラクタPC2が表示範囲外となる仮想空間へ移動しようとする動作を行っている状態となるが、第2プレイヤキャラクタPC2の位置を上記端部範囲の外に移動させない制御が行われる。なお、第2プレイヤキャラクタPC2を上記端部範囲内に留まらせる際の位置は、上記端部制御が開始された位置を維持してもよいし、当該端部範囲内で移動させてもよい。また、第2プレイヤキャラクタPC2を上記端部範囲内に留まらせる際のアクションは、第2プレイヤキャラクタPC2が上記端部範囲内で足踏みする、端部範囲内で足掻く、端部範囲内に押し戻される、表示範囲外との境界と衝突する、移動しようとしている方向の逆方向へ引っ張られる等のような動作でもよい。
【0100】
第2プレイヤキャラクタPC2の移動による端部制御が予め定められた猶予時間(例えば、1秒間)以上継続した場合も、ディスプレイ12の表示範囲に対応する仮想空間内の範囲のうち上記端部範囲以外の位置に第2プレイヤキャラクタPC2を移動させる。一例として、
図10下段図における矢印Mで示されるように、第2プレイヤキャラクタPC2の移動による端部制御が猶予時間以上継続した場合に、第2プレイヤキャラクタPC2を第1プレイヤキャラクタPC1の近傍に移動させる。他の例として、第2プレイヤキャラクタPC2の移動による端部制御が猶予時間以上継続した場合に、第2プレイヤキャラクタPC2を上記表示範囲の中央領域(例えば、上記表示画面の中心を含む領域)に対応する仮想空間の位置に移動させる。上記端部範囲以外の位置に第2プレイヤキャラクタPC2を移動させる動作は、表示範囲の移動による端部制御の場合と同様に、瞬間的に第2プレイヤキャラクタPC2を移動させてもよいし、第2プレイヤキャラクタPC2に所定のアクションを行わせながら所定の時間経過を伴う移動を行ってもよい。なお、上記表示範囲に対応する仮想空間内の範囲のうち上記端部範囲以外の位置から当該端部範囲内に第2プレイヤキャラクタPC2が移動して当該端部範囲で停止している状態が上記猶予時間以上継続したとしても、上記端部制御が行われないために当該端部範囲以外の位置に第2プレイヤキャラクタPC2を移動させる処理は行われない。
【0101】
なお、上述した説明では、第2プレイヤキャラクタPC2の移動に基づいた制御の例を用いたが、第1プレイヤキャラクタPC1が表示範囲外となる仮想空間へ移動しようとする動作を行った場合であっても、同様の制御が行われてもかまわない。また、第1プレイヤキャラクタPC1および第2プレイヤキャラクタPC2の両方がユーザによって操作されるプレイヤキャラクタであっても、当該キャラクタの移動に伴って同様の制御が行われてもかまわない。
【0102】
次に、
図11を用いて、左端部範囲EALの具体例について説明する。
図11において、四角錐状の4本の破線が仮想カメラの視体積を示しており、当該仮想カメラの視野内にゲームフィールドの平地面上に配置された第1プレイヤキャラクタPC1が配置されている。ゲームフィールドには、平地面の仮想カメラ側となる手前に当該平地面から高さが急変する崖が形成されているが、上記仮想カメラの視野外となっている。なお、説明を簡単にするために、
図11の例では、仮想カメラの視野内の仮想空間がディスプレイ12に表示される表示画像の表示範囲となり、表示範囲と仮想カメラの視野とが一致している例を用いる。
【0103】
左端部範囲EALは、ディスプレイ12に表示される表示画像の左端に対応する仮想空間の表示範囲内となる範囲に設定される。すなわち、左端部範囲EALは、仮想カメラの視体積内において当該仮想カメラから見て左端の所定割合分(例えば10%分)の空間として設定される。したがって、
図11のハッチング領域で示すように、左端部範囲EALは、ディスプレイ12の表示画像の表示範囲の左端に対応する上記平地面上の地点だけでなく、当該平地面上から奥行方向と仮想空間の上下方向に拡がる空間も含む範囲となる。したがって、上述した端部制御においては、平地面上の地点にプレイヤキャラクタを留めるだけでなく、上記表示画像の左端に対応する仮想空間の平地面上から奥行方向にある位置や仮想空間の上下方向に移動した位置にプレイヤキャラクタを留めることもあり得る。また、プレイヤキャラクタが平地面上に配置されている場合だけでなく、表示画像の左端に対応する平地面上の空間内に配置された場合であっても、上記端面制御が行われる。
【0104】
左端部範囲EALは、仮想空間においてプレイヤキャラクタが移動可能な範囲に形成される。したがって、
図11の例においても、左端部範囲EALは、プレイヤキャラクタが移動できない平地面下の地中や、プレイヤキャラクタの移動範囲となる平地面が途切れる後方空間(仮想カメラから見て遠方となる空間)には形成されないようにしてもよい。
【0105】
また、本実施例では、プレイヤキャラクタが移動可能な範囲であっても、下端鉛直面より手前となる空間には左端部範囲EALが形成されないようにしてもよい。下端鉛直面は、ディスプレイ12の表示画像の下端に対応する仮想空間内の位置を含む仮想端面であり、仮想空間の鉛直方向に形成される。より具体的には、下端鉛直面は、第1プレイヤキャラクタPC1が位置する仮想空間の水平面(
図11の例では平地面)とディスプレイ12の表示画像の下端(すなわち、仮想カメラの視体積の下端)に対応する仮想空間内の面とが交わる線分を含む、当該仮想空間の鉛直面として形成される。したがって、下端鉛直面より手前となる空間に上記端部制御でプレイヤキャラクタを移動させないことにより、当該端部制御によってプレイヤキャラクタを仮想カメラの間近にまで接近するように移動させることはない。
【0106】
本実施例における端部範囲は、ディスプレイ12に表示される表示画像の左端だけでなく、当該表示画像の右端にも仮想カメラの視体積における右端に沿って左端部範囲EALと同様の右端部範囲EARが設定されて同様の端部制御が行われる。
【0107】
また、本実施例では、ディスプレイ12に表示される表示画像の下端にも下端部範囲EABが設定され、下端部範囲EABを用いて、左端部範囲EALと同様の端部制御が行われる。以下、
図12および
図13を用いて、下端部範囲EABを用いた端部制御の例および下端部範囲EABの具体例について説明する。
【0108】
下端部範囲EABを用いた端部制御の説明では、第1プレイヤキャラクタPC1が表示範囲の中央領域(例えば、表示範囲の中心を含む領域)に含まれるように、ゲームシステム1のディスプレイ12に表示される仮想空間の表示範囲が制御される例を用いる。例えば、
図12に示すように、ユーザの操作に応じて、第1プレイヤキャラクタPC1が仮想カメラから見て奥(仮想カメラから遠ざかる方向;
図12上段図の矢印の方向)に移動した場合、第1プレイヤキャラクタPC1の配置位置が中心となるように表示範囲も仮想空間の奥に移動することになる。
【0109】
表示範囲が移動した場合、第2プレイヤキャラクタPC2の表示位置が表示画面の下端から当該表示範囲外に外れてしまうことが考えられる。例えば、
図12上段図に示すように、第2プレイヤキャラクタPC2がディスプレイ12の表示画像の下側に表示されている場合、当該表示範囲が奥に移動することによって、本実施例の処理を行わない場合においては第2プレイヤキャラクタPC2が当該表示範囲の下方から当該表示範囲外に外れる状態となる。本実施例では、表示範囲が移動することによって、第2プレイヤキャラクタPC2が当該表示範囲の下端部に対応する仮想空間内の端部範囲に位置する状態となった場合でも、当該端部範囲内に第2プレイヤキャラクタPC2が留まるように制御する端部制御が行われる。
【0110】
例えば、
図12中段図に示すように、表示範囲が奥に移動することによって第2プレイヤキャラクタPC2が表示範囲の下端部に対応する仮想空間の下端部範囲EABに位置する状態となった場合、左端部範囲EALと同様に、下端部範囲EAB内に第2プレイヤキャラクタPC2が留まるように制御される端部制御が行われる。例えば、下端部範囲EABに第2プレイヤキャラクタPC2が位置する場合、表示範囲内に向かう当該表示範囲の下端に垂直な方向に対応する仮想空間内の奥方向へ表示範囲が移動する間、第2プレイヤキャラクタPC2が下端部範囲EAB内に留まるように制御される。なお、下端部範囲EAB等の端部範囲の詳細な位置については後述する。
【0111】
下端部範囲EABを用いた端部制御でも、表示範囲が移動する間に表示画面内では端部領域内に第2プレイヤキャラクタPC2が留まるように制御されるため、表示範囲の移動に伴って仮想空間内では第2プレイヤキャラクタPC2の位置が移動することとなる。そして、上記位置移動の際も、第2プレイヤキャラクタPC2に端部範囲から表示範囲の中央領域に対応する仮想空間の位置に向かって移動するアクションを行わせることによって、第2プレイヤキャラクタPC2を強制的に移動させる。
【0112】
下端部範囲EABを用いた端部制御が予め定められた猶予時間(例えば、1秒間)以上継続した場合でも、ディスプレイ12の表示範囲に対応する仮想空間内の範囲のうち上記端部範囲以外の位置に第2プレイヤキャラクタPC2を移動させる。一例として、
図12下段図における矢印Mで示されるように、上記端部制御が猶予時間以上継続した場合に、第2プレイヤキャラクタPC2を第1プレイヤキャラクタPC1の近傍に移動させる。他の例として、上記端部制御が猶予時間以上継続した場合に、第2プレイヤキャラクタPC2を上記表示範囲の中央領域に対応する仮想空間の位置に移動させる。
【0113】
また、他の例として、仮想空間において第2プレイヤキャラクタPC2が移動することにより、第2プレイヤキャラクタPC2の表示位置がディスプレイ12の下端から表示範囲外に外れてしまうことが考えられる。このような場合であっても、左端部範囲EALを用いた端部制御と同様に、下端部範囲EAB内から当該表示範囲外に対応する仮想空間の位置へ外れる方向への移動動作を第2プレイヤキャラクタPC2が行った場合、当該端部範囲内に第2プレイヤキャラクタPC2が留まるように制御する端部制御が行われる。そして、第2プレイヤキャラクタPC2の移動による下端部範囲EABを用いた端部制御が予め定められた猶予時間(例えば、1秒間)以上継続した場合も、ディスプレイ12の表示範囲に対応する仮想空間内の範囲のうち上記端部範囲以外の位置(例えば、第1プレイヤキャラクタPC1の近傍となる位置)に第2プレイヤキャラクタPC2を移動させる。
【0114】
図13において、仮想カメラの視野内には、
図11に例示したゲームフィールドと同様の仮想空間が設定されている。下端部範囲EABは、ディスプレイ12に表示される表示画像の下端を基準として仮想空間の表示範囲内となる範囲に設定される。具体的には、下端部範囲EABは、仮想カメラの視体積内において、当該仮想カメラから見て上述した下端鉛直面から遠方に所定距離分の空間として設定される。
図13のハッチング領域で示すように、下端部範囲EABは、ディスプレイ12の表示画像の表示範囲の下端に対応する上記平地面上の地点だけでなく、当該平地面上から左右方向と仮想空間の上下方向に拡がる空間も含む範囲となる。したがって、上述した端部制御においては、平地面上の地点にプレイヤキャラクタを留めるだけでなく、上記表示画像の下端に対応する仮想空間の平地面上から左右方向にある位置や仮想空間の上下方向に移動した位置にプレイヤキャラクタを留めることもあり得る。また、プレイヤキャラクタが平地面上に配置されている場合だけでなく、表示画像の下端に対応する平地面上の空間内に配置された場合であっても、上記端面制御が行われる。
【0115】
具体的には、仮想カメラが仮想空間の奥に移動することにより表示範囲が奥に移動することによってプレイヤキャラクタが下端部範囲EABに位置する状態となった場合、下端部範囲EAB内にプレイヤキャラクタが留まるように制御される端部制御が行われる。この端部制御では、表示範囲(視野)が奥方向へ移動する間、プレイヤキャラクタが下端部範囲EAB内に留まるように制御される。また、プレイヤキャラクタが仮想カメラに向かって手前側に移動することによって下端部範囲EABに位置する状態となった場合、下端部範囲EAB内にプレイヤキャラクタが留まるように制御される端部制御が行われる。この端部制御では、下端部範囲EAB内から仮想カメラに近づく移動動作をプレイヤキャラクタが行っている間、当該プレイヤキャラクタが下端部範囲EAB内に留まるように制御される。そして、何れの端部制御が行われる場合であっても、当該端部制御が猶予時間以上継続した場合に、表示範囲の中央領域に対応する仮想空間内の位置にプレイヤキャラクタを強制的に移動させる。
【0116】
なお、プレイヤキャラクタが手前から奥に移動することで、仮想カメラも追従して手前から奥に移動し、その結果、仮想空間が奥から手前にスクロールするゲームでは、仮想空間がスクロールすることによる下端部範囲EABを用いた端部制御が有効に作用する。
【0117】
ここで、
図13から明らかなように、下端部範囲EABは、ディスプレイ12に表示される表示画像の下端を基準として、仮想カメラから見て上下左右全面に拡がる鉛直面に沿って形成されるため、表示領域全体に形成されることになる。したがって、平地面上方の空間となる上記下端領域上空の空間ではプレイヤキャラクタが浮いた状態であっても端部制御が行われる。したがって、下端部範囲EABを用いた端部制御においては、プレイヤキャラクタが表示画像の下端に表示されていない場合であっても当該プレイヤキャラクタに対して端部制御が行われることがある。
【0118】
このように下端部範囲EABが仮想空間の鉛直面に沿って形成されることにより、下端部範囲EABを用いた端部制御が行われる場合に平地面上の下端部範囲EAB内に留められるプレイヤキャラクタが表示画面の下端から外に出ることを防止することができる。また、下端部範囲EAB内において、仮想空間の空中からゲームフィールド(平地面)に落ちるようにプレイヤキャラクタが移動する場合であっても、自然な移動を表現することができる。このような効果を期待しない場合、仮想カメラの視体積の下端面に沿って下端部範囲EABを形成してもかまわない。この場合、仮想空間に対して仮想カメラの視点から斜めとなる傾斜空間として下端部範囲EABが形成されるため、下端部範囲EAB内に留められるプレイヤキャラクタが仮想カメラの間近まで接近することも可能となるとともに、下端部範囲EAB内において仮想空間の空中から落下するようにプレイヤキャラクタが移動する際に当該傾斜空間に沿って落下するような動きとなるが、このような動きが不自然とならない仮想空間を用いたゲームであれば、鉛直方向に対して傾斜する下端部範囲EABを形成してもかまわない。
【0119】
本実施例では、例えば、仮想カメラの俯角が大きく視野全体に(表示画像の上端まで)平地面が表示されている場合や、平地面が仮想カメラの奥行方向の遠方まで拡がっている場合、表示画像の上端に対応する仮想空間の範囲に対応する上端部範囲EATを設定して、他の端部範囲と同様の端部制御をしてもよい。しかしながら、
図8に示すような表示画像の場合、ディスプレイ12に表示される表示画像の上端に対応する端部制御が行われなくてもよい。この場合、プレイヤキャラクタが平地面から上昇できる距離に制限を設けることによって、プレイヤキャラクタが表示範囲外に外れることを防止してもよい。
【0120】
なお、プレイヤキャラクタが仮想カメラから離れる遠方へ移動した距離に応じて、当該プレイヤキャラクタを強制的に移動させる処理を行ってもかまわない。例えば、仮想カメラまたは第1プレイヤキャラクタPC1から離れる仮想空間における仮想カメラの遠方へ閾値以上の距離離れた位置まで第2プレイヤキャラクタPC2が移動した場合、第2プレイヤキャラクタPC2を仮想カメラまたは第1プレイヤキャラクタPC1に当該閾値より近づけるように強制的に移動させてもかまわない。なお、上記強制的な移動を開始するタイミングは、仮想カメラまたは第1プレイヤキャラクタPC1から閾値以上の距離離れた位置に到達してから猶予時間が経過した時点であってもよいし、当該到達した時点であってもよい。
【0121】
なお、本実施例においては、上述した端部制御が行われずにプレイヤキャラクタが上記表示範囲の外に対応する仮想空間内の範囲に移動することもあり得る。この場合、上述した端部制御とは異なる制御を契機として、当該表示範囲内に対応する仮想空間内の範囲に上記プレイヤキャラクタを強制的に移動させる処理が行われる。例えば、端部制御が行われる左端部範囲EAL内、右端部範囲EAR内、および下端部範囲EAB内の何れにも配置されずに、ディスプレイ12に表示される表示画像の表示範囲の外に対応する仮想空間内の範囲にプレイヤキャラクタが移動可能なゲームフィールドが形成されていることがある。
【0122】
例えば、
図14に示すように、ディスプレイ12に表示される表示画像の下端に、平地面から高さが急変する崖が表示されている場合を考える。この場合、下端鉛直面は、第1プレイヤキャラクタPC1が位置する仮想空間の水平面(
図14の例では平地面および当該平地面を崖側に延長した面)とディスプレイ12の表示画像の下端(すなわち、仮想カメラの視体積の下端)に対応する仮想空間内の面とが交わる線分を含む、当該仮想空間の鉛直面として形成される。したがって、平地面から仮想カメラ側に離れた位置に下端鉛直面が形成されることになり、当該下端鉛直面に沿って形成される下端部範囲EAB(
図11参照)も平地面から離れた位置に形成されることがあり得る。この場合、平地面と下端部範囲EABとの間にプレイヤキャラクタが崖下に落下可能な空間(隙間)が形成されることもある。そして、上記空間を通って、プレイヤキャラクタが平地面上から崖下に落下する動作を行った場合、下端部範囲EAB内に到達することなく当該プレイヤキャラクタが表示画像の下端から表示範囲の外に対応する仮想空間内の位置まで移動できることになる。
【0123】
本実施例では、上述したような崖下にプレイヤキャラクタが落下した場合、プレイヤキャラクタが表示範囲の外に対応する仮想空間内の位置まで移動した瞬間に当該プレイヤキャラクタを当該表示範囲内に対応する仮想空間内の位置まで強制的に移動させたり、プレイヤキャラクタが表示範囲の外に対応する仮想空間内の位置まで移動した後に所定の処理が行われて当該プレイヤキャラクタを当該表示範囲内に対応する仮想空間内の位置まで強制的に移動させたりする。前者の例として、崖下に地面が形成されていてプレイヤキャラクタにペナルティが与えられることがない場合等では、プレイヤキャラクタが表示範囲の外に対応する仮想空間内の位置まで移動した瞬間に上記強制的な移動が行われてもよい。後者の例として、崖下が奈落である場合等では、上記所定の処理がプレイヤキャラクタに所定のペナルティを与える処理となり、当該処理結果が報知された後に上記強制的な移動が行われてもよい。
【0124】
なお、端部制御が行われずにプレイヤキャラクタが上記表示範囲の外に対応する仮想空間内の範囲に移動する例として、プレイヤキャラクタが崖から落下する例を用いたが、他の態様によってプレイヤキャラクタが上記表示範囲の外に対応する仮想空間内の範囲に移動した場合であっても、当該表示範囲内に対応する仮想空間内の位置までプレイヤキャラクタを強制的に移動させてもよい。例えば、上記表示範囲の端部において、上記端部範囲が設けられずに上記端部制御が行われない端部がある場合、当該端部側からプレイヤキャラクタが表示範囲外に出る場合は、上記端部制御が行われない。このような場合、プレイヤキャラクタが表示範囲外に出た直後に当該表示範囲内に対応する仮想空間内の位置までプレイヤキャラクタを強制的に移動させてもよい。
【0125】
また、本実施例は、2次元のゲーム世界を用いたゲームにおいても好適である。例えば、
図15においては、ディスプレイ12に表示されるゲーム世界が左に横スクロールしながら進行するゲームにおいて、第1プレイヤキャラクタPC1および第2プレイヤキャラクタPC2が当該ゲーム世界の右にそれぞれ移動するゲームが表示されている。このような2次元のゲーム世界が表示されるゲームでは、ディスプレイ12に表示される表示画像の表示範囲の左端に対応するゲーム世界に左端部領域ERLが設定され、当該表示範囲の右端に対応するゲーム世界に右端部領域ERRが設定され、当該表示範囲の上端に対応するゲーム世界に上端部領域ERTが設定され、表示範囲の下端に対応するゲーム世界に下端部領域ERBが設定される。
【0126】
そして、ゲーム世界が左に横スクロールされることによって第1プレイヤキャラクタPC1および/または第2プレイヤキャラクタPC2が何れかの左端部領域ERLに位置する状態となった場合、左端部領域ERL内に第1プレイヤキャラクタPC1および/または第2プレイヤキャラクタPC2が留まるように制御される端部制御が行われる。この端部制御では、左端部領域ERL内から表示範囲外に第1プレイヤキャラクタPC1および/または第2プレイヤキャラクタPC2が出るような横スクロールが行われている間、左端部領域ERL内に留まるように制御される。また、第1プレイヤキャラクタPC1および/または第2プレイヤキャラクタPC2が移動することによって左端部領域ERL、右端部領域ERR、上端部領域ERT、または下端部領域ERBに位置する状態となった場合、当該端部領域内に第1プレイヤキャラクタPC1および/または第2プレイヤキャラクタPC2が留まるように制御される端部制御が行われる。この端部制御では、第1プレイヤキャラクタPC1および/または第2プレイヤキャラクタPC2が端部領域内から表示範囲外となるゲーム世界に出る移動動作を第1プレイヤキャラクタPC1および/または第2プレイヤキャラクタPC2が行っている間、当該端部領域内に留まるように制御される。そして、何れの端部制御が行われる場合であっても、当該端部制御が猶予時間以上継続した場合に、各端部領域以外の表示範囲内に対応するゲーム世界内の位置に第1プレイヤキャラクタPC1および/または第2プレイヤキャラクタPC2を強制的に移動させる。
【0127】
上述したように、プレイヤキャラクタの移動の有無にかかわらずゲーム世界が左側に強制的にスクロールしたり、プレイヤキャラクタが左から右へ移動することに応じてゲーム世界がディスプレイ12の左に横スクロールしたりする2次元ゲームでは、表示範囲が移動することによる端部制御が左端部領域ERLのみが用いられ、このような横スクロールゲームにおいて左端部領域ERLが有効に作用する。つまり、このような2次元スクロールゲームの場合は、ゲーム世界がスクロールされる側の表示範囲の端部のみに端部制御を行うための端部領域(
図15の例の場合は、表示範囲左端部に形成される左端部領域ERL)が設けられてもよい。
【0128】
次に、
図16~
図18を参照して、本実施例においてゲームシステム1で実行される具体的な処理の一例について説明する。
図16は、本実施例において本体装置2のDRAM85に設定されるデータ領域の一例を示す図である。なお、DRAM85には、
図16に示すデータの他、他の処理で用いられるデータも記憶されるが、詳細な説明を省略する。
【0129】
DRAM85のプログラム記憶領域には、ゲームシステム1で実行される各種プログラムPaが記憶される。本実施例においては、各種プログラムPaは、左コントローラ3および/または右コントローラ4や本体装置2から取得したデータに基づいた情報処理を行うためのアプリケーションプログラム(例えば、ゲームプログラム)等が記憶される。なお、各種プログラムPaは、フラッシュメモリ84に予め記憶されていてもよいし、ゲームシステム1に着脱可能な記憶媒体(例えば、スロット23に装着された所定の種類の記憶媒体)から取得されてDRAM85に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてDRAM85に記憶されてもよい。プロセッサ81は、DRAM85に記憶された各種プログラムPaを実行する。
【0130】
また、DRAM85のデータ記憶領域には、ゲームシステム1において実行される情報処理等の処理において用いられる各種のデータが記憶される。本実施形態においては、DRAM85には、操作データDa、第1プレイヤキャラクタデータDb、第2プレイヤキャラクタデータDc、仮想カメラデータDd、端部範囲データDe、端部制御継続時間データDf、および画像データDg等が記憶される。
【0131】
操作データDaは、左コントローラ3および/または右コントローラ4や本体装置2からそれぞれ適宜取得した操作データである。上述したように、左コントローラ3および/または右コントローラ4や本体装置2からそれぞれ取得される操作データには、各入力部(具体的には、各ボタン、アナログスティック、タッチパネル)からの入力に関する情報(具体的には、操作に関する情報)が含まれている。本実施例では、左コントローラ3および/または右コントローラ4や本体装置2からそれぞれ操作データを取得しており、当該取得した操作データを用いて操作データDaが適宜更新される。なお、操作データDaの更新周期は、後述するゲームシステム1で実行される処理の周期である1フレーム毎に更新されてもよいし、上記操作データが取得される周期毎に更新されてもよい。
【0132】
第1プレイヤキャラクタデータDbは、仮想空間に配置されている第1プレイヤキャラクタPC1の配置位置および配置姿勢や、仮想空間における動作や状態等を示すデータである。第2プレイヤキャラクタデータDcは、仮想空間に配置されている第2プレイヤキャラクタPC2の配置位置および配置姿勢や、仮想空間における動作や状態等を示すデータである。
【0133】
仮想カメラデータDdは、仮想空間に配置されている仮想カメラの配置位置および配置姿勢等を示すデータである。
【0134】
端部範囲データDeは、ディスプレイ12に表示される表示画像の表示範囲に基づいて設定される、仮想空間における各端部範囲の位置を示すデータである。
【0135】
端部制御継続時間データDfは、端部制御が継続している時間を示すデータである。
【0136】
画像データDgは、表示画面(例えば、本体装置2のディスプレイ12)に画像(例えば、第1プレイヤキャラクタPC1の画像、第2プレイヤキャラクタPC2の画像、他の仮想オブジェクトの画像、仮想空間の画像、背景画像等)を表示するためのデータである。
【0137】
次に、
図17および
図18を参照して、本実施例におけるゲーム処理の詳細な一例を説明する。なお、ゲーム処理の説明を具体的にするために、仮想空間に登場する第1プレイヤキャラクタPC1および第2プレイヤキャラクタPC2のうち、第2プレイヤキャラクタPC2がノンプレイヤキャラクタであり、端部処理の対象となる例を用いる。
図17は、ゲームシステム1で実行されるゲーム処理の一例を示すフローチャートである。
図18は、
図17におけるステップS128おいて行われる端部制御処理の詳細な一例を示すサブルーチンである。本実施例においては、
図17および
図18に示す一連の処理は、プロセッサ81が各種プログラムPaに含まれる所定のアプリケーションプログラム(ゲームプログラム)を実行することによって行われる。また、
図17および
図18に示すゲーム処理が開始されるタイミングは任意である。
【0138】
なお、
図17および
図18に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。また、本実施例では、上記フローチャートの各ステップの処理をプロセッサ81が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、プロセッサ81以外のプロセッサや専用回路が実行するようにしてもよい。また、本体装置2において実行される処理の一部は、本体装置2と通信可能な他の情報処理装置(例えば、本体装置2とネットワークを介して通信可能なサーバ)によって実行されてもよい。すなわち、
図17および
図18に示す各処理は、本体装置2を含む複数の情報処理装置が協働することによって実行されてもよい。
【0139】
図17において、プロセッサ81は、ゲーム処理における初期設定を行い(ステップS121)、次のステップに処理を進める。例えば、上記初期設定では、プロセッサ81は、以下に説明する処理を行うためのパラメータを初期化する。
【0140】
次に、プロセッサ81は、左コントローラ3、右コントローラ4、および/または本体装置2から操作データを取得して操作データDaを更新し(ステップS122)、次のステップに処理を進める。
【0141】
次に、プロセッサ81は、操作データDaに基づいて、第1プレイヤキャラクタPC1を動作させ(ステップS123)、次のステップに処理を進める。例えば、プロセッサ81は、上記ステップS122において取得された操作データや仮想空間における仮想的な物理演算等に基づいて、仮想空間において第1プレイヤキャラクタPC1を動作させて、第1プレイヤキャラクタデータDbを更新する。
【0142】
次に、プロセッサ81は、所定の動作アルゴリズムおよび仮想空間における仮想的な物理演算等に基づいて、第2プレイヤキャラクタPC2を動作させ(ステップS124)、次のステップに処理を進める。例えば、プロセッサ81は、所定の動作アルゴリズムおよび仮想空間における仮想的な物理演算等に基づいて第2プレイヤキャラクタPC2を動作させて、第2プレイヤキャラクタデータDcを更新する。なお、第2プレイヤキャラクタPC2が他のユーザの操作に基づいて動作する場合、上記ステップS124において、プロセッサ81は、他のユーザ操作によって取得された操作データや仮想空間における仮想的な物理演算等に基づいて、第2プレイヤキャラクタPC2を動作させて、第2プレイヤキャラクタデータDcを更新する。なお、仮想空間において、少なくとも一方がユーザによって操作されるプレイヤオブジェクトである第1ゲームオブジェクトおよび第2ゲームオブジェクトの移動を制御するコンピュータは、一例としてステップS123および/またはステップS124の処理を行うプロセッサ81に相当する。
【0143】
次に、プロセッサ81は、仮想カメラ動作を設定して(ステップS125)、次のステップに処理を進める。第1の例として、プロセッサ81は、第1プレイヤキャラクタPC1が視野の中央領域(例えば、注視点を含む領域)に含まれるように、仮想カメラの位置および/または姿勢を変化させ、当該変化後の仮想カメラの位置および姿勢を用いて、仮想カメラデータDdを更新する。なお、仮想カメラの視野の一部を切り取った表示範囲がディスプレイ12に表示される場合、プロセッサ81は、当該表示範囲の中央領域に第1プレイヤキャラクタPC1が含まれるように、仮想カメラの位置および/または姿勢を変化させる。第2の例として、プロセッサ81は、第1プレイヤキャラクタPC1の位置とは無関係に操作データDaに基づいて、仮想カメラの位置および/または姿勢を変化させる。第3の例として、プロセッサ81は、所定のアルゴリズムに基づいて、仮想カメラの位置および/または姿勢を変化させる。
【0144】
また、上記ステップS125において、プロセッサ81は、設定された仮想カメラの位置および姿勢に基づいた仮想面を用いて、端部制御を行うための端部範囲を設定して、端部範囲データDeを更新する。なお、設定される端部範囲については、
図9~
図13を用いて説明したものと同様であるため、ここでは詳細な説明を省略する。なお、少なくとも第1ゲームオブジェクトの仮想空間における位置に基づいて、仮想カメラの視野を制御するコンピュータは、一例としてステップS125の処理を行うプロセッサ81に相当する。また、表示画像の下端に対応する仮想空間内の位置を含む面を仮想端面として決定するコンピュータは、一例としてステップS125の処理を行うプロセッサ81に相当する。
【0145】
次に、プロセッサ81は、第2プレイヤキャラクタPC2がディスプレイ12の表示範囲内に配置されているか否かを判定する(ステップS126)。そして、プロセッサ81は、表示範囲外となる第2プレイヤキャラクタPC2の配置位置が算出されている場合、ステップS127に処理を進める。一方、プロセッサ81は、表示範囲内となる第2プレイヤキャラクタPC2の配置位置が算出されている場合、端部制御継続時間データDfが示す端部制御継続時間をリセットした後にステップS129に処理を進める。
【0146】
ステップS127において、プロセッサ81は、端部範囲内から表示範囲外となる第2プレイヤキャラクタPC2の配置位置が算出されている状態か否かを判定する。例えば、プロセッサ81は、仮想カメラの動作によって端部範囲内から表示範囲外となる第2プレイヤキャラクタPC2の配置位置が算出されている、または当該第2プレイヤキャラクタPC2自体の動作によって端部範囲内から表示範囲外となる第2プレイヤキャラクタPC2の配置位置が算出されている場合、上記ステップS127において肯定判定する。そして、プロセッサ81は、端部範囲内から表示範囲外となる第2プレイヤキャラクタPC2の配置位置が算出されている状態である場合、ステップS128に処理を進める。一方、プロセッサ81は、端部範囲を経由せずに表示範囲外となる第2プレイヤキャラクタPC2の配置位置が算出されている場合、端部制御継続時間データDfが示す端部制御継続時間をリセットした後にステップS129に処理を進める。
【0147】
ステップS128において、プロセッサ81は、端部制御処理を行って、ステップS129に処理を進める。以下、
図18を参照して、上記ステップS128において行われる端部制御処理について説明する。
【0148】
図18において、プロセッサ81は、仮想カメラの視野が移動することによって端部範囲内から表示範囲外となる第2プレイヤキャラクタPC2の配置位置が算出されている状態か否かを判定する(ステップS141)。そして、プロセッサ81は、仮想カメラの視野が移動することによって第2プレイヤキャラクタPC2が表示範囲外となる第2プレイヤキャラクタPC2の配置位置が算出されている状態である場合、ステップS142に処理を進める。一方、プロセッサ81は、仮想カメラの視野が移動することによって表示範囲外となる第2プレイヤキャラクタPC2の配置位置が算出されている状態でない場合、ステップS144に処理を進める。
【0149】
ステップS142において、プロセッサ81は、仮想空間における第2プレイヤキャラクタPC2の配置位置を、表示範囲外から直近の端部範囲内に変更して、次のステップに処理を進める。例えば、プロセッサ81は、
図9~
図13を用いて説明した端部制御と同様に、第2プレイヤキャラクタPC2の配置位置が端部範囲内に留まるように変更して、第2プレイヤキャラクタデータDcを更新する。
【0150】
次に、プロセッサ81は、第2プレイヤキャラクタPC2の動作を、表示領域の中央領域への方向へ移動する動作に設定して(ステップS143)、ステップS144に処理を進める。例えば、プロセッサ81は、第2プレイヤキャラクタPC2の動作を、上記ステップS142において位置変更前の配置位置から変更後の配置位置へ移動する動作に設定して、第2プレイヤキャラクタデータDcを更新する。
【0151】
ステップS144において、プロセッサ81は、第2プレイヤキャラクタPC2自体が移動することによって、端部範囲内から表示範囲外となる第2プレイヤキャラクタPC2の配置位置が算出されている状態か否かを判定する。そして、プロセッサ81は、第2プレイヤキャラクタPC2自体が移動することによって表示範囲外となる第2プレイヤキャラクタPC2の配置位置が算出されている状態である場合、ステップS145に処理を進める。一方、プロセッサ81は、第2プレイヤキャラクタPC2自体が移動することによって表示範囲外となる第2プレイヤキャラクタPC2の配置位置が算出されている状態でない場合、ステップS147に処理を進める。
【0152】
ステップS145において、プロセッサ81は、仮想空間における第2プレイヤキャラクタPC2の配置位置を、表示範囲外から直近の端部範囲内に変更して、次のステップに処理を進める。例えば、プロセッサ81は、
図9~
図13を用いて説明した端部制御と同様に、第2プレイヤキャラクタPC2の配置位置が端部範囲内に留まるように変更して、第2プレイヤキャラクタデータDcを更新する。
【0153】
次に、プロセッサ81は、端部領域内から表示領域外へ移動しようとしている現在の動作を第2プレイヤキャラクタPC2に継続させて(ステップS146)、ステップS147に処理を進める。例えば、プロセッサ81は、第2プレイヤキャラクタPC2の動作を、第2プレイヤキャラクタPC2が示すそのままの動作に維持する。
【0154】
ステップS147において、プロセッサ81は、端部制御継続時間を更新して、次のステップに処理を進める。例えば、プロセッサ81は、端部制御継続時間データDfが示す端部制御継続時間をインクリメントして、端部制御継続時間データDfを更新する。
【0155】
次に、プロセッサ81は、端部制御継続時間データDfが示す端部制御継続時間が猶予時間に到達したか否かを判定する(ステップS148)。そして、プロセッサ81は、端部制御継続時間が猶予時間に到達した場合、ステップS149に処理を進める。一方、プロセッサ81は、端部制御継続時間が猶予時間に到達していない場合、当該サブルーチンによる処理を終了する。
【0156】
ステップS149において、プロセッサ81は、第1プレイヤキャラクタPC1近傍に第2プレイヤキャラクタPC2の位置を変更し、次のステップに処理を進める。例えば、プロセッサ81は、第1プレイヤキャラクタPC1と隣接する位置に第2プレイヤキャラクタPC2の配置位置を設定して、第2プレイヤキャラクタデータDcを更新する。
【0157】
次に、プロセッサ81は、第2プレイヤキャラクタPC2の動作を、所定の動作に設定して(ステップS150)、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、端部制御継続時間データDfが示す端部制御継続時間をリセットするとともに、第2プレイヤキャラクタPC2の動作を所定の動作に設定して、第2プレイヤキャラクタデータDcを更新する。
【0158】
図17に戻り、ステップS129において、プロセッサ81は、第2プレイヤキャラクタPC2が第1プレイヤキャラクタPC1から所定距離以上遠ざかる位置に到達したか否かを判定する。例えば、プロセッサ81は、第1プレイヤキャラクタPC1から離れる仮想空間における仮想カメラの遠方へ所定の閾値以上の距離離れた位置に第2プレイヤキャラクタPC2が到達した場合、上記ステップS129において肯定判定する。そして、プロセッサ81は、第2プレイヤキャラクタPC2が第1プレイヤキャラクタPC1から所定距離以上遠ざかる位置に到達した場合、ステップS130に処理を進める。一方、プロセッサ81は、第2プレイヤキャラクタPC2が第1プレイヤキャラクタPC1から所定距離以上遠ざかる位置に到達していない場合、ステップS131に処理を進める。
【0159】
ステップS130において、プロセッサ81は、第1プレイヤキャラクタPC1近傍に第2プレイヤキャラクタPC2の位置を変更し、ステップS133に処理を進める。例えば、プロセッサ81は、第1プレイヤキャラクタPC1と隣接する位置に第2プレイヤキャラクタPC2の配置位置を設定して、第2プレイヤキャラクタデータDcを更新する。なお、第2プレイヤキャラクタPC2の動作は、そのままの動作を継続してもよいし、静止動作に変更してもよいし、他の動作に変更されてもよい。
【0160】
ステップS131において、プロセッサ81は、ディスプレイ12の表示範囲外となる第2プレイヤキャラクタPC2の配置位置が算出されているか否かを判定する。そして、プロセッサ81は、表示範囲外となる第2プレイヤキャラクタPC2の配置位置が算出されている場合、ステップS132に処理を進める。一方、プロセッサ81は、表示範囲内となる第2プレイヤキャラクタPC2の配置位置が算出されている場合、ステップS133に処理を進める。
【0161】
ステップS132において、プロセッサ81は、表示範囲外処理を行って第2プレイヤキャラクタデータDcを更新し、ステップS133に処理を進める。一例として、表示範囲外処理は、第2プレイヤキャラクタPC2を表示範囲内に対応する仮想空間内の位置まで強制的に移動させる。他の例として、第2プレイヤキャラクタPC2に対して、所定の処理(第2プレイヤキャラクタPC2に所定のペナルティを与える処理)を行った後に表示範囲内に対応する仮想空間内の位置まで強制的に移動させる。なお、第1プレイヤキャラクタPC1が端部範囲を経由せずにディスプレイ12の表示範囲外となる第1プレイヤキャラクタPC1の配置位置が算出された場合、上記ステップS131において肯定判定されて、上記ステップS132における表示範囲外処理が第1プレイヤキャラクタPC1に対して行われてもかまわない。
【0162】
ステップS133において、プロセッサ81は、表示制御処理を行い、次のステップに処理を進める。例えば、プロセッサ81は、上記ステップS121~ステップS132の処理結果や、第1プレイヤキャラクタデータDb、第2プレイヤキャラクタデータDc、仮想カメラデータDd、画像データDg等に基づいて、仮想空間に仮想カメラや第1プレイヤキャラクタPC1および第2プレイヤキャラクタPC2等を配置し、当該仮想カメラから見た視野を仮想空間の表示範囲としてディスプレイ12に表示する制御を行う。なお、仮想カメラに基づいて、表示画面に表示する表示画像を生成するコンピュータは、一例としてステップS133の処理を行うプロセッサ81に相当する。
【0163】
次に、プロセッサ81は、ゲーム処理を終了するか否かを判定する(ステップS134)。上記ステップS134においてゲーム処理を終了する条件としては、例えば、ゲーム処理が終了される条件が満たされたことや、ユーザがゲーム処理を終了する操作を行ったこと等がある。プロセッサ81は、ゲーム処理を終了しない場合に上記ステップS122に戻って処理を繰り返し、ゲーム処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップS122~ステップS134の一連の処理は、ステップS134で処理を終了すると判定されるまで繰り返し実行される。
【0164】
このように、本実施例においては、複数のゲームオブジェクトの少なくとも1つが従来例において表示画像の表示範囲から外れる場合であっても、当該表示範囲内に留まるような端部制御が行われた所定の時間経過後に表示範囲の端部範囲以外の位置に当該ゲームオブジェクトを移動させるため、仮想空間に配置されているゲームオブジェクトの状況把握等を容易にすることができる。
【0165】
なお、上述した実施例では、端部制御処理が所定の猶予時間継続した場合に端部範囲以外の位置にプレイヤキャラクタを移動させる例を用いたが、端部制御処理が一時的に中断した場合であっても継続時間のカウントを継続してもかまわない。例えば、上述した処理フローにおいて、端部制御処理開始後に当該端部制御処理が一時的に中断した場合であっても、予め定められた処理回数分の中断であれば端部制御継続時間データDfが示す端部制御継続時間のリセットを延期してもかまわない。これによって、ユーザの操作のブレなどにより、一瞬端部制御処理が途切れた場合であっても、当該ブレによる操作結果を除外して上述したプレイヤキャラクタの制御を行うことができる。
【0166】
また、上述した実施例では、プレイヤキャラクタが表示画像の表示範囲内や端部範囲内に配置されているか否かの判定が行われているが、この判定基準については、任意の方法が用いられてもよい。第1の例として、プレイヤキャラクタの配置位置を設定するための基準ポイントの位置、プレイヤキャラクタの重心位置、プレイヤキャラクタの主部位の中心位置等の特徴点を用いて判定されてもよい。第2の例として、プレイヤキャラクタの所定の割合以上(例えば、50%以上)が表示範囲内や端部範囲内に配置されている場合に、当該表示範囲内や当該端部範囲内に配置されていると判定されてもよい。何れの場合であっても、プレイヤキャラクタの一部が表示範囲外や端部範囲外に逸脱していたとしても、上記特徴点が表示範囲内や端部範囲内に配置されていれば表示範囲内や端部範囲内に配置されていると判定される。第3の例として、プレイヤキャラクタの全てが表示範囲内や端部範囲内に配置されているか否かによって判定されてもよいし、プレイヤキャラクタ全てが表示範囲外や端部範囲外に配置されているか否かによって判定されてもよい。
【0167】
また、上述した実施例では、表示画像の表示範囲の外縁に壁を設置しているのではなく、プレイヤキャラクタの配置位置が当該表示範囲の外縁に対応する仮想平面を超えた場合に、当該配置位置を補正することによってプレイヤキャラクタが表示範囲内に留まるように制御しているが、仮想空間内に上記外縁に対応する壁面を設けて、当該壁を越えてプレイヤキャラクタが移動できないように制御してもかまわない。
【0168】
なお、ゲームシステム1は、どのような装置であってもよく、携帯型のゲーム装置、任意の携帯型電子機器(PDA(Personal Digital Assistant)、携帯電話、パーソナルコンピュータ、カメラ、タブレット等)等であってもよい。この場合、プレイヤキャラクタPCを動作させる操作を行うための入力装置は、左コントローラ3、右コントローラ4、またはタッチパネル13でなくてもよく、別のコントローラ、マウス、タッチパッド、タッチパネル、トラックボール、キーボード、十字キー、スライドパッド等であってもよい。
【0169】
また、上述した説明では情報処理(ゲーム処理)をゲームシステム1で行われる例を用いたが、上記処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲームシステム1がさらに他の装置(例えば、別のサーバ、他の画像表示装置、他のゲーム装置、他の携帯端末)と通信可能に構成されている場合、上記処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した情報処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施例においては、ゲームシステム1のプロセッサ81が所定のプログラムを実行することによって情報処理を行うことが可能であるが、ゲームシステム1が備える専用回路によって上記処理の一部または全部が行われてもよい。
【0170】
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
【0171】
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
【0172】
また、上記プログラムは、外部メモリ等の外部記憶媒体を通じてゲームシステム1に供給されるだけでなく、有線または無線の通信回線を通じて当該装置に供給されてもよい。また、上記プログラムは、当該装置内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD-ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【0173】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。また、当業者は、本発明の具体的な実施例の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0174】
以上のように、本発明は、仮想空間に配置されているゲームオブジェクトの状況把握を容易にすることが可能な情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法等として利用することができる。
【符号の説明】
【0175】
1…情報処理システム
2…本体装置
3…左コントローラ
4…右コントローラ
11…ハウジング
12…ディスプレイ
13…タッチパネル
32、52…アナログスティック
42、64…端子
81…プロセッサ
82…ネットワーク通信部
83…コントローラ通信部
85…DRAM
101、111…通信制御部