(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024018675
(43)【公開日】2024-02-08
(54)【発明の名称】ゲームプログラム、ゲームシステム、ゲーム装置およびゲーム制御方法
(51)【国際特許分類】
A63F 13/5375 20140101AFI20240201BHJP
A63F 13/55 20140101ALI20240201BHJP
A63F 13/5258 20140101ALI20240201BHJP
【FI】
A63F13/5375
A63F13/55
A63F13/5258
【審査請求】有
【請求項の数】28
【出願形態】OL
(21)【出願番号】P 2022122148
(22)【出願日】2022-07-29
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100090181
【弁理士】
【氏名又は名称】山田 義人
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(74)【代理人】
【識別番号】100168217
【弁理士】
【氏名又は名称】大村 和史
(72)【発明者】
【氏名】佐野 伸也
(72)【発明者】
【氏名】松本 広大
(72)【発明者】
【氏名】阿部 貴企
(57)【要約】 (修正有)
【課題】プレイヤキャラクタが進むべき方向を常に確認することができるとともに、プレイヤキャラクタと目標地点までの高さ方向の位置関係を確認することもできる。
【解決手段】ゲームシステムは、本体装を含み、本体装置は仮想のゲームを実行し、ゲーム画面200が表示装置に表示される。ゲーム画面には、プレイヤキャラクタ202および床、階段、扉などの背景オブジェクト204が表示されるとともに、プレイヤキャラクタを囲むように、指示オブジェクト220が表示される。指示オブジェクトは、プレイヤキャラクタが進行するべき方向を指示するオブジェクトであって、具体的には、仮想空間内に設定された目標地点を指示する。指示オブジェクトは、円環形状または円筒形状の第1方向指示部と三角形状の第2方向指示部を含み、第1方向指示部の非着色部分から着色部分に向かう方向が目標地点を向くように、水平方向の向きおよび傾きを制御される。
【選択図】
図8
【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータにおいて実行されるゲームプログラムであって、前記コンピュータを、
前記仮想空間内の所定の位置を目標地点として設定する目標地点設定手段と、
第1部分と第2部分とを有する指示オブジェクトを、前記仮想空間内のプレイヤキャラクタの位置を基準とした所定範囲内に配置する指示オブジェクト配置手段と、
プレイヤの操作入力に基づいて、仮想空間内において前記プレイヤキャラクタを移動させる移動制御手段と、
前記第1部分が前記プレイヤキャラクタよりも前記目標地点に近い位置に、かつ、前記第2部分が前記プレイヤキャラクタよりも前記目標地点に遠い位置になり、前記第2部分から前記第1部分へ向かう方向が水平方向の成分に関して前記目標地点を向くように、前記指示オブジェクトの向きを更新すると共に、前記プレイヤキャラクタの位置から前記目標地点へ向かう方向の高さ方向の成分に基づいて、前記第1部分の前記目標地点側の端部の高さを更新する、指示オブジェクト制御手段と、
前記仮想空間内の仮想カメラに基づいて、前記指示オブジェクトと前記プレイヤキャラクタとを少なくとも含む表示用画像を生成する画像生成手段として機能させる、ゲームプログラム。
【請求項2】
前記指示オブジェクトは第1オブジェクトと前記目標地点までの方向を示す方向指示部を含み、
前記指示オブジェクト配置手段は、
前記第1オブジェクトを、前記プレイヤキャラクタを囲うように配置し、
前記指示オブジェクトを前記第1オブジェクトの中心を軸として回転させることで、水平方向に関して前記方向指示部が前記目標地点に向かうように前記指示オブジェクトの向きを更新するとともに、前記プレイヤキャラクタの位置から前記目標地点へ向かう方向の高さ方向の成分に基づいて、前記指示オブジェクトの傾きを変更することで、前記方向指示部の高さを更新する、請求項1記載のゲームプログラム。
【請求項3】
前記第1オブジェクトは円環形状または円筒形状であり、
前記第1部分は前記第1オブジェクトの前記方向指示部側の一部である第1円弧であり、前記第2部分は前記第1オブジェクトの前記方向指示部と反対側の一部である第2円弧である、請求項2記載のゲームプログラム。
【請求項4】
前記方向指示部は、三角形状であり、
前記指示オブジェクト配置手段は、前記方向指示部を、前記方向指示部の所定の先端が前記目標地点側を向くように配置する、請求項2記載のゲームプログラム。
【請求項5】
前記第1オブジェクトの一部分は、前記第1オブジェクトの他の部分とは異なる視覚的特徴で描画される、請求項2記載のゲームプログラム。
【請求項6】
前記指示オブジェクト制御手段は、前記プレイヤキャラクタと前記目標地点との関係が所定の条件を満たしたときに、第2オブジェクトを生成し、前記第1オブジェクトから前記目標地点に向かって前記第2オブジェクトを移動させる、請求項2記載のゲームプログラム。
【請求項7】
前記指示オブジェクト制御手段は、前記指示オブジェクトを、前記所定条件を満たしている間は前記仮想空間内に配置せず、前記所定条件を満たしていない間は前記仮想空間内に配置する、請求項6記載のゲームプログラム。
【請求項8】
前記第1部分は、第1端部を有し、前記第1端部側に先端を有する矢印形状の面を含み、
前記第2部分は、第2端部を有し、前記第2端部側と反対側に先端を有する面を含み、
前記指示オブジェクト配置手段は、前記プレイヤキャラクタを挟むように前記第1部分と前記第2部分を配置し、
前記指示オブジェクト制御手段は、前記プレイヤキャラクタの位置から前記目標地点へ向かう方向の高さ方向の成分に基づいて、前記第1端部の高さが変更されるように前記第1部分を変形させる、または傾きを変更させる、請求項1記載のゲームプログラム。
【請求項9】
前記第2部分は、三角形の面を含む形状であり、
前記指示オブジェクト配置手段は、前記第2部分を、前記先端が前記目標地点側を向くように配置する、請求項8記載のゲームプログラム。
【請求項10】
前記高さ方向の成分について、
前記プレイヤキャラクタの位置が前記目標地点よりも高い位置にある場合に、前記プレイヤキャラクタの位置が前記目標地点よりも高い位置でない場合よりも、前記第1端部の位置が低い位置になるように前記第1部分を変形させる、または傾きを変更させ、
前記プレイヤキャラクタの位置が前記目標地点よりも低い位置にある場合に、前記プレイヤキャラクタの位置が前記目標地点よりも低い位置でない場合よりも、前記第1端部の位置が高い位置になるように前記第1部分を変形させる、または傾きを変更させる、請求項8記載のゲームプログラム。
【請求項11】
前記指示オブジェクト制御手段は、
前記第1部分を、前記第1部分の前記矢印形状の面の一部が前記仮想カメラの方向に向くように回転させ、
前記第1部分を回転させた場合、前記第1端部の位置を保ったまま、前記第1部分をさらに変形または傾きを変更させる、請求項8記載のゲームプログラム。
【請求項12】
前記仮想空間内の所定の位置を目標地点として設定する目標地点設定手段と、
第1部分と第2部分とを有する指示オブジェクトを、前記仮想空間内のプレイヤキャラクタの位置を基準とした所定範囲内に配置する指示オブジェクト配置手段と、
プレイヤの操作入力に基づいて、仮想空間内において前記プレイヤキャラクタを移動させる移動制御手段と、
前記第1部分が前記プレイヤキャラクタよりも前記目標地点に近い位置に、かつ、前記第2部分が前記プレイヤキャラクタよりも前記目標地点に遠い位置になり、前記第2部分から前記第1部分へ向かう方向が水平方向の成分に関して前記目標地点を向くように、前記指示オブジェクトの向きを更新すると共に、前記プレイヤキャラクタの位置から前記目標地点へ向かう方向の高さ方向の成分に基づいて、前記第1部分の前記目標地点側の端部の高さを更新する、指示オブジェクト制御手段と、
前記仮想空間内の仮想カメラに基づいて、前記指示オブジェクトと前記プレイヤキャラクタとを少なくとも含む表示用画像を生成する画像生成手段を備える、ゲームシステム。
【請求項13】
前記指示オブジェクトは第1オブジェクトと前記目標地点までの方向を示す方向指示部を含み、
前記指示オブジェクト配置手段は、
前記第1オブジェクトを、前記プレイヤキャラクタを囲うように配置し、
前記指示オブジェクトを前記第1オブジェクトの中心を軸として回転させることで、水平方向に関して前記方向指示部が前記目標地点に向かうように前記指示オブジェクトの向きを更新するとともに、前記プレイヤキャラクタの位置から前記目標地点へ向かう方向の高さ方向の成分に基づいて、前記指示オブジェクトの傾きを変更することで、前記方向指示部の高さを更新する、請求項12記載のゲームシステム。
【請求項14】
前記第1オブジェクトは円環形状または円筒形状であり、
前記第1部分は前記第1オブジェクトの前記方向指示部側の一部である第1円弧であり、前記第2部分は前記第1オブジェクトの前記方向指示部と反対側の一部である第2円弧である、請求項13記載のゲームシステム。
【請求項15】
前記方向指示部は、三角形状であり、
前記指示オブジェクト配置手段は、前記方向指示部を、前記方向指示部の所定の先端が前記目標地点側を向くように配置する、請求項2記載のゲームプログラム。
【請求項16】
前記第1オブジェクトの一部分は、前記第1オブジェクトの他の部分とは異なる視覚的特徴で描画される、請求項13記載のゲームシステム。
【請求項17】
前記指示オブジェクト制御手段は、前記プレイヤキャラクタと前記目標地点との関係が所定の条件を満たしたときに、第2オブジェクトを生成し、前記第1オブジェクトから前記目標地点に向かって前記第2オブジェクトを移動させる、請求項13記載のゲームシステム。
【請求項18】
前記指示オブジェクト制御手段は、前記指示オブジェクトを、前記所定条件を満たしている間は前記仮想空間内に配置せず、前記所定条件を満たしていない間は前記仮想空間内に配置する、請求項17記載のゲームシステム。
【請求項19】
前記第1部分は、第1端部を有し、前記第1端部側に先端を有する矢印形状の面を含み、
前記第2部分は、第2端部を有し、前記第2端部側と反対側に先端を有する面を含み、
前記指示オブジェクト配置手段は、前記プレイヤキャラクタを挟むように前記第1部分と前記第2部分を配置し、
前記指示オブジェクト制御手段は、前記プレイヤキャラクタの位置から前記目標地点へ向かう方向の高さ方向の成分に基づいて、前記第1端部の高さが変更されるように前記第1部分を変形させる、または傾きを変更させる、請求項12記載のゲームシステム。
【請求項20】
前記第2部分は、三角形の面を含む形状であり、
前記指示オブジェクト配置手段は、前記第2部分を、前記先端が前記目標地点側を向くように配置する、請求項19記載のゲームシステム。
【請求項21】
前記高さ方向の成分について、
前記プレイヤキャラクタの位置が前記目標地点よりも高い位置にある場合に、前記プレイヤキャラクタの位置が前記目標地点よりも高い位置でない場合よりも、前記第1端部の位置が低い位置になるように前記第1部分を変形させる、または傾きを変更させ、
前記プレイヤキャラクタの位置が前記目標地点よりも低い位置にある場合に、前記プレイヤキャラクタの位置が前記目標地点よりも低い位置でない場合よりも、前記第1端部の位置が高い位置になるように前記第1部分を変形させる、または傾きを変更させる、請求項19記載のゲームシステム。
【請求項22】
前記指示オブジェクト制御手段は、
前記第1部分を、前記第1部分の前記矢印形状の面の一部が前記仮想カメラの方向に向くように回転させ、
前記第1部分を回転させた場合、前記第1端部の位置を保ったまま、前記第1部分をさらに変形または傾きを変更させる、請求項19記載のゲームシステム。
【請求項23】
前記仮想空間内の所定の位置を目標地点として設定する目標地点設定手段と、
第1部分と第2部分とを有する指示オブジェクトを、前記仮想空間内のプレイヤキャラクタの位置を基準とした所定範囲内に配置する指示オブジェクト配置手段と、
プレイヤの操作入力に基づいて、仮想空間内において前記プレイヤキャラクタを移動させる移動制御手段と、
前記第1部分が前記プレイヤキャラクタよりも前記目標地点に近い位置に、かつ、前記第2部分が前記プレイヤキャラクタよりも前記目標地点に遠い位置になり、前記第2部分から前記第1部分へ向かう方向が水平方向の成分に関して前記目標地点を向くように、前記指示オブジェクトの向きを更新すると共に、前記プレイヤキャラクタの位置から前記目標地点へ向かう方向の高さ方向の成分に基づいて、前記第1部分の前記目標地点側の端部の高さを更新する、指示オブジェクト制御手段と、
前記仮想空間内の仮想カメラに基づいて、前記指示オブジェクトと前記プレイヤキャラクタとを少なくとも含む表示用画像を生成する画像生成手段を備える、ゲーム装置。
【請求項24】
前記指示オブジェクトは第1オブジェクトと前記目標地点までの方向を示す方向指示部を含み、
前記指示オブジェクト配置手段は、
前記第1オブジェクトを、前記プレイヤキャラクタを囲うように配置し、
前記指示オブジェクトを前記第1オブジェクトの中心を軸として回転させることで、水平方向に関して前記方向指示部が前記目標地点に向かうように前記指示オブジェクトの向きを更新するとともに、前記プレイヤキャラクタの位置から前記目標地点へ向かう方向の高さ方向の成分に基づいて、前記指示オブジェクトの傾きを変更することで、前記方向指示部の高さを更新する、請求項23記載のゲーム装置。
【請求項25】
前記第1部分は、第1端部を有し、前記第1端部側に先端を有する矢印形状の面を含み、
前記第2部分は、第2端部を有し、前記第2端部側と反対側に先端を有する面を含み、
前記指示オブジェクト配置手段は、前記プレイヤキャラクタを挟むように前記第1部分と前記第2部分を配置し、
前記指示オブジェクト制御手段は、前記プレイヤキャラクタの位置から前記目標地点へ向かう方向の高さ方向の成分に基づいて、前記第1端部の高さが変更されるように前記第1部分を変形させる、または傾きを変更させる、請求項23記載のゲーム装置。
【請求項26】
(a)前記仮想空間内の所定の位置を目標地点として設定するステップと、
(b)第1部分と第2部分とを有する指示オブジェクトを、前記仮想空間内のプレイヤキャラクタの位置を基準とした所定範囲内に配置するステップと、
(c)プレイヤの操作入力に基づいて、仮想空間内において前記プレイヤキャラクタを移動させるステップと、
(d)前記第1部分が前記プレイヤキャラクタよりも前記目標地点に近い位置に、かつ、前記第2部分が前記プレイヤキャラクタよりも前記目標地点に遠い位置になり、前記第2部分から前記第1部分へ向かう方向が水平方向の成分に関して前記目標地点を向くように、前記指示オブジェクトの向きを更新すると共に、前記プレイヤキャラクタの位置から前記目標地点へ向かう方向の高さ方向の成分に基づいて、前記第1部分の前記目標地点側の端部の高さを更新する、ステップと、
(e)前記仮想空間内の仮想カメラに基づいて、前記指示オブジェクトと前記プレイヤキャラクタとを少なくとも含む表示用画像を生成するステップを含む、ゲーム制御方法。
【請求項27】
前記指示オブジェクトは第1オブジェクトと前記目標地点までの方向を示す方向指示部を含み、
前記ステップ(b)は、
前記第1オブジェクトを、前記プレイヤキャラクタを囲うように配置し、
前記指示オブジェクトを前記第1オブジェクトの中心を軸として回転させることで、水平方向に関して前記方向指示部が前記目標地点に向かうように前記指示オブジェクトの向きを更新するとともに、前記プレイヤキャラクタの位置から前記目標地点へ向かう方向の高さ方向の成分に基づいて、前記指示オブジェクトの傾きを変更することで、前記方向指示部の高さを更新する、請求項26記載のゲーム制御方法。
【請求項28】
前記第1部分は、第1端部を有し、前記第1端部側に先端を有する矢印形状の面を含み、
前記第2部分は、第2端部を有し、前記第2端部側と反対側に先端を有する面を含み、
前記ステップ(b)は、前記プレイヤキャラクタを挟むように前記第1部分と前記第2部分を配置し、
前記ステップ(d)は、前記プレイヤキャラクタの位置から前記目標地点へ向かう方向の高さ方向の成分に基づいて、前記第1端部の高さが変更されるように前記第1部分を変形させる、または傾きを変更させる、請求項23記載のゲーム装置。
【発明の詳細な説明】
【技術分野】
【0001】
この発明はゲームプログラム、ゲームシステム、ゲーム装置およびゲーム制御方法に関し、特にたとえば、プレイヤが仮想空間内においてプレイヤキャラクタを移動させて仮想のゲームを進行させる、ゲームプログラム、ゲームシステム、ゲーム装置およびゲーム制御方法に関する。
【背景技術】
【0002】
背景技術の一例が特許文献1に開示される。この特許文献1のレースゲーム装置は、遊技者の操作するオートバイが方向指示地点から所定距離以内に近接すると、方向指示地点上に目的地への最短の方向を三次元のオブジェクトである矢印で表示する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1のレースゲーム装置では、三次元のオブジェクトである矢印は、遊戯者が操作するオートバイから離れた位置に表示されるため、仮想のカメラの位置がオートバイのような移動体の近くに位置する場合1に、矢印が画面上にうまく表示されない可能性がある。このため、移動体が進むべき方向を確認できない場合がある。また、特許文献1のレースゲーム装置では、オートバイのような移動体に対する目的地までの高さ方向における方向指示については考慮されていないため、改善の余地がある。
【0005】
それゆえに、この発明の主たる目的は、新規な、ゲームプログラム、ゲームシステム、ゲーム装置およびゲーム制御方法を提供することである。
【0006】
また、この発明の他の目的は、プレイヤキャラクタが進むべき方向を常に確認することができるとともに、プレイヤキャラクタと目標地点までの高さ方向の位置関係を確認することもできる、ゲームプログラム、ゲームシステム、ゲーム装置およびゲーム制御方法を提供することである。
【課題を解決するための手段】
【0007】
(構成1)
構成1は、情報処理装置のコンピュータにおいて実行されるゲームプログラムであって、コンピュータを、仮想空間内の所定の位置を目標地点として設定する目標地点設定手段と、第1部分と第2部分とを有する指示オブジェクトを、仮想空間内のプレイヤキャラクタの位置を基準とした所定範囲内に配置する指示オブジェクト配置手段と、プレイヤの操作入力に基づいて、仮想空間内においてプレイヤキャラクタを移動させる移動制御手段と、第1部分がプレイヤキャラクタよりも目標地点に近い位置に、かつ、第2部分がプレイヤキャラクタよりも目標地点に遠い位置になり、第2部分から第1部分へ向かう方向が水平方向の成分に関して目標地点を向くように、指示オブジェクトの向きを更新すると共に、プレイヤキャラクタの位置から目標地点へ向かう方向の高さ方向の成分に基づいて、第1部分の目標地点側の端部の高さを更新する、指示オブジェクト制御手段と、仮想空間内の仮想カメラに基づいて、指示オブジェクトとプレイヤキャラクタとを少なくとも含む表示用画像を生成する画像生成手段として機能させる、ゲームプログラムである。
【0008】
構成1によれば、指示オブジェクトをプレイヤキャラクタの位置を基準とした所定範囲内に配置するので、プレイヤキャラクタが進むべき方向を常に確認することができる。また、プレイヤキャラクタの位置から目標地点へ向かう方向の高さ方向の成分に基づいて、指示オブジェクトの第1部分の目標地点側の端部の高さを更新するので、プレイヤキャラクタと目標地点までの高さ方向の位置関係を確認することもできる。
【0009】
(構成2)
構成2は、上記の構成1において、指示オブジェクトは第1オブジェクトと目標地点までの方向を示す方向指示部を含み、指示オブジェクト配置手段は、第1オブジェクトを、プレイヤキャラクタを囲うように配置し、指示オブジェクトを第1オブジェクトの中心を軸として回転させることで、水平方向に関して方向指示部が目標地点に向かうように指示オブジェクトの向きを更新するとともに、プレイヤキャラクタの位置から目標地点へ向かう方向の高さ方向の成分に基づいて、指示オブジェクトの傾きを変更することで、方向指示部の高さを更新する。
【0010】
構成2によれば、指示オブジェクトの傾きを変更することで方向指示部の高さを更新するので、プレイヤキャラクタと目標地点までの高さ方向の位置関係を確認することができる。
【0011】
(構成3)
構成3は、上記の構成2において、第1オブジェクトは円環形状または円筒形状であり、第1部分は第1オブジェクトの方向指示部側の一部である第1円弧であり、第2部分は第1オブジェクトの方向指示部と反対側の一部である第2円弧である。
【0012】
構成3によれば、第1オブジェクトは円環形状または円筒形状であるため、円環または円筒の円弧の傾きを見ただけでプレイヤキャラクタと目標地点までの高さ方向の位置関係を確認することができる。
【0013】
(構成4)
構成4は、上記の構成2または構成3において、方向指示部は、三角形状であり、指示オブジェクト配置手段は、方向指示部を、方向指示部の所定の先端が目標地点側を向くように配置する。
【0014】
構成4によれば、方向指示部は三角形状であり、その所定の先端を目標地点側に向けるので、三角形の先端でプレイヤキャラクタの進行方向を指示することができる。
【0015】
(構成5)
構成5は、上記の構成2から構成4までのいずれかにおいて、第1オブジェクトの一部分は、第1オブジェクトの他の部分とは異なる視覚的特徴で描画される。
【0016】
構成5によれば、第1オブジェクトの一部分と他の部分とは異なる視覚的特徴を有するので、第1オブジェクトが有する異なる視覚的特徴に基づいて指示オブジェクトの向きを知ることができる。
【0017】
(構成6)
構成6は、上記の構成2から構成5までのいずれかにおいて、指示オブジェクト制御手段は、プレイヤキャラクタと目標地点との関係が所定の条件を満たしたときに、第2オブジェクトを生成し、第1オブジェクトから目標地点に向かって第2オブジェクトを移動させる。
【0018】
構成6によれば、第2オブジェクトを目標地点に向かって移動させるので、プレイヤの注意を目標地点に向けることができる。
【0019】
(構成7)
構成7は、上記の構成6において、指示オブジェクト制御手段は、指示オブジェクトを、所定条件を満たしている間は仮想空間内に配置せず、所定条件を満たしていない間は仮想空間内に配置する。
【0020】
構成7によれば、指示オブジェクトを配置しないことで、構成6の場合よりも、プレイヤの注意を目的地点に向けることができる。
【0021】
(構成8)
構成8は、構成1から構成7までのいずれかにおいて、第1部分は、第1端部を有し、第1端部側に先端を有する矢印形状の面を含み、第2部分は、第2端部を有し、第2端部側と反対側に先端を有する面を含み、指示オブジェクト配置手段は、プレイヤキャラクタを挟むように第1部分と第2部分を配置し、指示オブジェクト制御手段は、プレイヤキャラクタの位置から目標地点へ向かう方向の高さ方向の成分に基づいて、第1端部の高さが変更されるように第1部分を変形させる、または傾きを変更させる。
【0022】
構成8によれば、第1部分、プレイヤキャラクタおよび第2部分が直線上に並ぶので、仮に第1部分または第2部分が見えなくても、見える方とプレイヤキャラクタとの位置関係から見えないオブジェクトの位置を推測することができ、水平方向における位置関係を把握することができる。
【0023】
(構成9)
構成9は、上記の構成8において、第2部分は、三角形の面を含む形状であり、指示オブジェクト配置手段は、第2部分を、先端が目標地点側を向くように配置する。
【0024】
構成9によれば、第2部分の先端で目標地点を指示することができる。
【0025】
(構成10)
構成10は、上記の構成8または構成9において、高さ方向の成分について、プレイヤキャラクタの位置が目標地点よりも高い位置にある場合に、プレイヤキャラクタの位置が目標地点よりも高い位置でない場合よりも、第1端部の位置が低い位置になるように第1部分を変形させる、または傾きを変更させ、プレイヤキャラクタの位置が目標地点よりも低い位置にある場合に、プレイヤキャラクタの位置が目標地点よりも低い位置でない場合よりも、第1端部の位置が高い位置になるように第1部分を変形させる、または傾きを変更させる。
【0026】
構成10によれば、第1部分の第1端部の位置が変化することで、現在のプレイヤキャラクタと目標地点までの位置関係が分かる。
【0027】
(構成11)
構成11は、上記の構成8から構成10までのいずれかにおいて、指示オブジェクト制御手段は、第1部分を、第1部分の矢印形状の面の一部が仮想カメラの方向に向くように回転させ、第1部分を回転させた場合、第1端部の位置を保ったまま、第1部分をさらに変形または傾きを変更させる。
【0028】
構成11によれば、第1部分の矢印形状の面の一部が仮想カメラの方向に向くように回転させるので、仮想カメラをどの位置に移動させても矢印形状の面を見て、目標地点の方向を知ることができる。
【0029】
(構成12)
構成12は、仮想空間内の所定の位置を目標地点として設定する目標地点設定手段と、第1部分と第2部分とを有する指示オブジェクトを、仮想空間内のプレイヤキャラクタの位置を基準とした所定範囲内に配置する指示オブジェクト配置手段と、プレイヤの操作入力に基づいて、仮想空間内においてプレイヤキャラクタを移動させる移動制御手段と、第1部分がプレイヤキャラクタよりも目標地点に近い位置に、かつ、第2部分がプレイヤキャラクタよりも目標地点に遠い位置になり、第2部分から第1部分へ向かう方向が水平方向の成分に関して目標地点を向くように、指示オブジェクトの向きを更新すると共に、プレイヤキャラクタの位置から目標地点へ向かう方向の高さ方向の成分に基づいて、第1部分の目標地点側の端部の高さを更新する、指示オブジェクト制御手段と、仮想空間内の仮想カメラに基づいて、指示オブジェクトとプレイヤキャラクタとを少なくとも含む表示用画像を生成する画像生成手段を備える、ゲームシステムである。
【0030】
(構成13)
構成13は、仮想空間内の所定の位置を目標地点として設定する目標地点設定手段と、第1部分と第2部分とを有する指示オブジェクトを、仮想空間内のプレイヤキャラクタの位置を基準とした所定範囲内に配置する指示オブジェクト配置手段と、プレイヤの操作入力に基づいて、仮想空間内においてプレイヤキャラクタを移動させる移動制御手段と、第1部分がプレイヤキャラクタよりも目標地点に近い位置に、かつ、第2部分がプレイヤキャラクタよりも目標地点に遠い位置になり、第2部分から第1部分へ向かう方向が水平方向の成分に関して目標地点を向くように、指示オブジェクトの向きを更新すると共に、プレイヤキャラクタの位置から目標地点へ向かう方向の高さ方向の成分に基づいて、第1部分の目標地点側の端部の高さを更新する、指示オブジェクト制御手段と、仮想空間内の仮想カメラに基づいて、指示オブジェクトとプレイヤキャラクタとを少なくとも含む表示用画像を生成する画像生成手段を備える、ゲーム装置である。
【0031】
(構成14)
構成14は、(a)仮想空間内の所定の位置を目標地点として設定するステップと、(b)第1部分と第2部分とを有する指示オブジェクトを、仮想空間内のプレイヤキャラクタの位置を基準とした所定範囲内に配置するステップと、(c)プレイヤの操作入力に基づいて、仮想空間内においてプレイヤキャラクタを移動させるステップと、(d)第1部分がプレイヤキャラクタよりも目標地点に近い位置に、かつ、第2部分がプレイヤキャラクタよりも目標地点に遠い位置になり、第2部分から第1部分へ向かう方向が水平方向の成分に関して目標地点を向くように、指示オブジェクトの向きを更新すると共に、プレイヤキャラクタの位置から目標地点へ向かう方向の高さ方向の成分に基づいて、第1部分の目標地点側の端部の高さを更新する、ステップと、(e)仮想空間内の仮想カメラに基づいて、指示オブジェクトとプレイヤキャラクタとを少なくとも含む表示用画像を生成するステップを含む、ゲーム制御方法である。
【0032】
構成12ないし構成14においても、構成1と同様に、プレイヤキャラクタが進むべき方向を常に確認することができるとともに、プレイヤキャラクタと目標地点までの高さ方向の位置関係を確認することもできる。
【発明の効果】
【0033】
この発明によれば、プレイヤキャラクタが進むべき方向を常に確認することができるとともに、プレイヤキャラクタと目標地点までの高さ方向の位置関係を確認することもできる。
【0034】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0035】
【
図1】
図1はこの実施例の本体装置に左コントローラおよび右コントローラを装着した状態の限定しない一例を示す図である。
【
図2】
図2は本体装置から左コントローラおよび右コントローラをそれぞれ外した状態の限定しない一例を示す図である。
【
図3】
図3は
図1および
図2に示した本体装置の限定しない一例を示す六面図である。
【
図4】
図4は
図1および
図2に示した左コントローラの限定しない一例を示す六面図である。
【
図5】
図5は
図1および
図2に示した右コントローラの限定しない一例を示す六面図である。
【
図6】
図6は
図1および
図2に示した本体装置の内部構成の限定しない一例を示すブロック図である。
【
図7】
図7は
図1および
図2に示した本体装置と左コントローラおよび右コントローラとの内部構成の限定しない一例を示すブロック図である。
【
図8】
図8はゲーム画面の限定しない一例を示す図である。
【
図9】
図9(A)は第1実施例の指示オブジェクトの限定しない一例を上方から見た上面図であり、
図9(B)は第1実施例の指示オブジェクトの限定しない一例を横から見た側面図である。
【
図10】
図10(A)はゲーム画面に表示されるプレイヤキャラクタおよび指示オブジェクトの限定しない一例を真上から見た図であり、
図10(B)はゲーム画面に表示されるプレイヤキャラクタお限定しない一例を横から見た図である。
【
図11】
図11はゲーム画面に表示されるプレイヤキャラクタおよび指示オブジェクトの限定しない他の例を示す図である。
【
図12】
図12はゲーム画面に表示されるプレイヤキャラクタおよび指示オブジェクトの限定しない他の例を示す図である。
【
図13】
図13(A)は仮想空間におけるプレイヤキャラクタと仮想カメラの位置関係の限定しない一例を横方向から見た図であり、
図13(B)は仮想空間におけるプレイヤキャラクタと仮想カメラの位置関係の限定しない一例を後方向から見た図である。
【
図14】
図14はゲーム画面の限定しない他の例を示す図である。
【
図15】
図15はゲーム画面の限定しない他の例を示す図である。
【
図16】
図16はゲーム画面の限定しない他の例を示す図である。
【
図17】
図17はゲーム画面の限定しない他の例を示す図である。
【
図18】
図18は
図6に示す本体装置のDRAMのメモリマップの限定しない一例を示す図である。
【
図19】
図19は
図6に示す本体装置のプロセッサの全体処理の限定しない一例を示すフロー図である。
【
図20】
図20は
図6に示す本体装置のプロセッサのゲーム制御処理の限定しない一例を示すフロー図である。
【
図21】
図21は
図6に示す本体装置のプロセッサのキャラクタ制御処理の限定しない一例の第1の一部を示すフロー図である。
【
図22】
図22は
図6に示す本体装置のプロセッサの指示オブジェクト配置処理の限定しない一例の一部を示すフロー図である。
【
図23】
図23は
図6に示す本体装置のプロセッサの指示オブジェクト配置処理の限定しない一例の他の一部であって、
図22に後続するフロー図である。
【
図24】
図24は第2実施例のゲーム画面の限定しない一例を示す図である。
【
図25】
図25(A)は第2実施例の指示オブジェクトの限定しない一例を上方から見た上面図であり、
図25(B)は第2実施例の指示オブジェクトの限定しない一例を横から見た側面図である。
【
図26】
図26は第2実施例のゲーム画面の限定しない他の例を示す図である。
【
図27】
図27(A)は第2実施例の指示オブジェクトの限定しない他の例を上方から見た上面図であり、
図27(B)は第2実施例の指示オブジェクトの限定しない他の例を横から見た側面図である。
【
図28】
図28(A)は仮想空間におけるプレイヤキャラクタと第2実施例の指示オブジェクトの限定しない一例を横方向から見た図であり、
図28(B)は仮想空間におけるプレイヤキャラクタと第2実施例の指示オブジェクトの限定しない一例を斜め上方向から見た図であり、
図28(C)は仮想空間におけるプレイヤキャラクタと第2実施例の指示オブジェクトの限定しない一例を斜め下方向から見た図である。
【
図29】
図29は第2実施例の指示オブジェクト配置処理の限定しない一例の一部を示すフロー図である。
【発明を実施するための形態】
【0036】
[第1実施例]
以下、この第1実施例の限定しない一例に係るゲームシステムについて説明する。この第1実施例におけるゲームシステム1の一例は、本体装置(ゲーム装置;この第1実施例ではゲーム本体装置として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(
図2参照)。以下では、この第1実施例のゲームシステム1のハードウェア構成について説明し、その後に、この第1実施例のゲームシステム1の制御について説明する。
【0037】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0038】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。
図1および
図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0039】
図3は、本体装置2の一例を示す六面図である。
図3に示すように、本体装置2は、略板状のハウジング11を備える。この第1実施例において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0040】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0041】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。この第1実施例においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0042】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。この第1実施例においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0043】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、
図6に示すスピーカ88)を備えている。
図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0044】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0045】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種のゲーム装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0046】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。この第1実施例において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、この第1実施例においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0047】
図4は、左コントローラ3の一例を示す六面図である。
図4に示すように、左コントローラ3は、ハウジング31を備える。この第1実施例においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、
図1および
図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0048】
左コントローラ3は、アナログスティック32を備える。
図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、この第1実施例においては、アナログスティック32を押下する入力が可能である。
【0049】
左コントローラ3は、各種操作ボタンを備える。左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33~36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36)を備える。さらに、左コントローラ3は、録画ボタン37および-(マイナス)ボタン47を備える。左コントローラ3は、ハウジング31の側面の左上にLボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面のうち、本体装置2に装着される際に装着される側の面に、SLボタン43およびSRボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0050】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0051】
図5は、右コントローラ4の一例を示す六面図である。
図5に示すように、右コントローラ4は、ハウジング51を備える。この第1実施例においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0052】
右コントローラ4は、左コントローラ3と同様、方向入力部としてアナログスティック52を備える。この第1実施例においては、アナログスティック52は、左コントローラ3のアナログスティック32と同じ構成である。また、右コントローラ4は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ4は、左コントローラ3と同様、ハウジング51の主面上に4つの操作ボタン53~56(具体的には、Aボタン53、Bボタン54、Xボタン55、およびYボタン56)を備える。さらに、右コントローラ4は、+(プラス)ボタン57およびホームボタン58を備える。また、右コントローラ4は、ハウジング51の側面の右上にRボタン60およびZRボタン61を備える。また、右コントローラ4は、左コントローラ3と同様、SLボタン65およびSRボタン66を備える。
【0053】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0054】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、
図3に示す構成の他、
図6に示す各構成要素81~91、97、および98を備える。これらの構成要素81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0055】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0056】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0057】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0058】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0059】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。この第1実施例においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルエリアネットワーク内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0060】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、この第1実施例においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0061】
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信(または、取得)する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信(または、取得)する。また、プロセッサ81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、この第1実施例においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、表示画像データや音声データ)を据置型モニタ等に出力することができる。
【0062】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0063】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
【0064】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0065】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0066】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0067】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0068】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図6で示しているため
図7では省略している。
【0069】
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。
図7に示すように、通信制御部101は、端子42を含む各構成要素に接続される。この第1実施例においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
【0070】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0071】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(
図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0072】
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、第1所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0073】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判断することができる。
【0074】
左コントローラ3は、電力供給部108を備える。この第1実施例において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0075】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0076】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0077】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0078】
次に、
図8-
図17を参照して、この第1実施例のゲームシステム1において実行される仮想のゲームのゲーム処理についての概要を説明する。
図8は、この第1実施例の仮想のゲームのアプリケーションを実行した場合に、表示装置(たとえば、ディスプレイ12)に表示されるゲーム画像の限定しない一例を示す図である。
【0079】
本体装置2は、画像処理装置としても機能し、ゲーム画像などの各種画面に対応する表示画像データを生成および出力(表示)する。プロセッサ81は、3次元の仮想空間に各種のオブジェクトおよびキャラクタを配置し、或る情景または場面(シーン)が生成される。このシーンを仮想のカメラで撮影した(視点から見た)画像がゲーム画像としてディスプレイ12に表示される。
【0080】
図8に示すゲーム画像はゲーム画面200の一例であり、ゲーム画面200は、プレイヤキャラクタ202および複数の背景オブジェクト204を含む。また、ゲーム画面200には、アイテムまたは/およびノンプレイヤキャラクタが含まれる場合もある。
【0081】
プレイヤキャラクタ202は、プレイヤによって動作を制御されるオブジェクトまたはキャラクタである。この第1実施例では、プレイヤキャラクタ202は、人間を模した主人公のキャラクタである。プレイヤキャラクタ202の動作としては、仮想の或る場所すなわち仮想空間内において、移動したり、アイテムを取得したり、ノンプレイヤキャラクタにアイテムを渡したり、ノンプレイヤキャラクタからアイテムを取得したり、ノンプレイヤキャラクタと会話したりすることなどが該当する。また、この第1実施例において、アイテムは、プレイヤキャラクタ202またはノンプレイヤキャラクタが使用または所持する道具、お宝およびお金などの様々なオブジェクトを意味する。
【0082】
また、ノンプレイヤキャラクタは、プレイヤでは無くコンピュータ(
図6のプロセッサ81)によって動作を制御されるオブジェクトまたはキャラクタである。一例として、ノンプレイヤキャラクタは、プレイヤキャラクタ202以外の人間を模したオブジェクトまたはキャラクタと、魚、鳥および昆虫を模したオブジェクトまたはキャラクタである。ノンプレイヤキャラクタの動作としては、移動したり、プレイヤキャラクタ202からアイテムを取得したり、プレイヤキャラクタ202にアイテムを渡したり、プレイヤキャラクタ202が所持するカメラで撮影されたり、プレイヤキャラクタ202に捕まえられたりすることが該当する。
【0083】
背景オブジェクト204は、仮想空間に配置された置物、乗り物、地形などの背景を構成するオブジェクトである。置物とは、看板、立て札、石造、石碑、壺、骨董品、花瓶、絵画、掛け軸などを意味する。乗り物とは、自転車、オートバイ、自動車、電車、馬車、トロッコ、船、飛行機などを意味する。地形とは、地面(道路、陸地、花畑、農地などを含む)、坂、床、木、草、花、建物、階段、橋、川、池、穴、洞窟、崖、柱、壁、塀、柵などを意味する。
【0084】
図8に示す例では、背景オブジェクト204として、床オブジェクト、壁オブジェクト、階段オブジェクトおよび扉オブジェクトが設けられる。以下、この明細書においては、背景オブジェクト204、すなわち置物、乗り物および地形のオブジェクトを説明する場合には、置物、乗り物および地形の名称のみを記載し、「オブジェクト」の語を省略することにする。
【0085】
この第1実施例では、プレイヤは、仮想空間においてプレイヤキャラクタ202を移動させるなどして、所定のイベントを実行または進行させることで仮想のゲームを進行させる。一例として、プレイヤキャラクタ202は、アナログスティック32を傾倒した方向に移動される。詳細な説明は省略するが、プレイヤキャラクタ202は、各ボタン113を操作することで、予め設定された動作(ただし、移動を除く)を行う。
【0086】
また、この第1実施例では、所定のイベントは、ゲーム中において発生する任意の出来事を意味し、仮想空間に配置された所定の背景オブジェクト204に設定された仕掛け、パズルまたは謎を解くことで実行(または、開始)される。具体的には、所定のイベントは、プレイヤキャラクタ202が所定のアイテムを取得したり、プレイヤキャラクタ202が仕掛けまたは謎を解くためのヒントを得たり、扉が開いたり、秘密の入り口または出口が出現したり、落石または石碑が移動したり、可動橋が移動または変形したりするなどの出来事である。このような所定のイベントが実行(または、開始)されると、当該所定のイベントが進行する様子を示すゲーム画面200が表示される。
【0087】
また、
図8に示すように、ゲーム画面200には、プレイヤキャラクタ202を囲むように、指示オブジェクト220が表示される。指示オブジェクト220は、プレイヤキャラクタ202が進行するべき方向を指示するオブジェクトである。
【0088】
プレイヤキャラクタ202が進行するべき方向は、所定のイベントが設定された複数の背景オブジェクト204の各々に対応して配置された各目印オブジェクト210(
図14参照)に向かう方向である。ただし、目印オブジェクト210に到達するまでに経由すべき1または複数の経由地が在る場合には、1または複数の経由地に向かう方向もプレイヤキャラクタ202が進行するべき方向に含まれる。
【0089】
経由地は、目印オブジェクト210に到達するまでに、プレイヤキャラクタ202が進行するべき地点である。たとえば、目印オブジェクト210が、プレイヤキャラクタ202が存在する階よりも、上の階または下の階に配置されている場合には、階段または梯子を用いて、上の階または下の階に移動する必要があるため、階段または梯子が配置されている地点(すなわち、経由地)が目標地点として設定される。プレイヤキャラクタ202が上の階または下の階に移動するためには、階段または梯子を上ったり下りたりする必要があるため、プレイヤキャラクタ202が階段または梯子が配置されている地点に到達すると、階段または梯子を上り切った地点または下り切った地点(すなわち、経由地)が目標地点として設定される。
【0090】
また、目印オブジェクト210が、プレイヤキャラクタ202の対岸に配置されている場合には、川を横断するために、橋を渡ったり、船で移動したりする必要あるため、橋の架かっている地点または船着き場(すなわち、経由地)が目標地点として設定される。また、プレイヤキャラクタ202が川を横断するためには、橋を渡ったり、船で移動したりする必要があるため、プレイヤキャラクタ202が橋の架かっている地点または船着き場に到達すると、対岸の或る場所(すなわち、経由地)が目標地点として設定される。
【0091】
なお、これらは一例であり、目印オブジェクト210が配置された場所に応じて、1または複数の経由地が適宜設定される。
【0092】
プレイヤが、プレイヤキャラクタ202を、1または複数の経由地および各目印オブジェクト210の配置位置を順に移動させることができるように、各経由地および各目印オブジェクト210の配置位置が順に目標地点として設定され、各目標地点が指示オブジェクト220で順に指示される。
【0093】
現在の目標地点が目印オブジェクト210の配置位置である場合には、プレイヤまたはプレイヤキャラクタ202が当該目印オブジェクト210に対応する背景オブジェクト204に設定された仕掛け、パズルまたは謎を解くことで、所定のイベントが進行し、所定のイベントが終了すると、次の目標地点が現在の目標地点として設定される。
【0094】
また、現在の目標地点が経由地である場合には、プレイヤキャラクタ202が現在の目標地点を進行するべき方向(以下、「順方向」という)に通過すると、次の目標地点が現在の目標地点として設定される。ただし、プレイヤキャラクタ202が、一旦順方向に通過した経由地を逆方向に通過した場合には、当該経由地が再度現在の目標地点として設定される。
【0095】
図9(A)は指示オブジェクト220の限定しない一例を真上から見た図であり、
図9(B)は指示オブジェクト220の限定しない一例を真横から見た図である。
図10(A)はゲーム画面200において表示されるプレイヤキャラクタ202および指示オブジェクト220の限定しない一例を真上から見た図であり、
図10(B)はゲーム画面200において表示されるプレイヤキャラクタ202の限定しない一例を横から見た図である。
図9(A)、
図9(B)、
図10(A)および
図10(B)を参照して、指示オブジェクト220について説明する。
【0096】
指示オブジェクト220は、所定の大きさに設定され、第1方向指示部220aと第2方向指示部220bを含み、第1方向指示部220aと第2方向指示部220bは直線上に配置される(
図9(B)参照)。指示オブジェクト220の方向は、第2方向指示部220bから第1方向指示部220aに向かう方向である。
【0097】
また、この第1実施例では、プレイヤキャラクタ202の所定位置(たとえば、腰の高さで胴体の中心位置)に、指示オブジェクト220の基準位置が重なるように、指示オブジェクト220が配置される。また、一例として、指示オブジェクト220の基準位置は、第1方向指示部220aの中心位置に設定されている。また、プレイヤキャラクタ202の所定位置は、プレイヤキャラクタ202の位置から腰の高さに平行移動した位置である。ただし、これは一例であり、所定位置は、プレイヤキャラクタ202の頭部の中心位置でもよい。プレイヤキャラクタ202の位置は、仮想空間において、プレイヤキャラクタ202が床面または地面と接触する位置(たとえば、足元の位置)である。一例として、プレイヤキャラクタ202の高さ(すなわち、身長)は、仮想空間において175cmに設定され、腰の高さは足元の位置から110cmに設定される。
【0098】
したがって、指示オブジェクト220は、プレイヤキャラクタ202の位置を基準とした所定範囲内に配置されている。一例として、指示オブジェクト220の基準位置から先端までの長さが仮想空間において100cmに設定されているとすると、指示オブジェクト220は、プレイヤキャラクタ202の所定位置を中心に半径100cm内に配置されることになる。ただし、指示オブジェクト220の先端は、指示オブジェクト220の長手方向のうちの第2方向指示部220bの端である。また、指示オブジェクト220の後端は、指示オブジェクト220の長手方向のうちの先端とは反対側の端である。
【0099】
第1方向指示部220aは、プレイヤキャラクタ202を囲む円環形状または円筒形状のオブジェクトである。ただし、第1方向指示部220aは、透明のオブジェクトの一部に着色し、他の一部に着色していないため、分断して(不連続)に見える。第1実施例の第1方向指示部220aでは、着色部分は3箇所であり、非着色部分は3箇所である。着色部分および非着色部分はいずれも円弧であり、一例として、着色部分は非着色部分よりも円弧の長さが長く(約3倍)されている。
【0100】
具体的には、
図10(A)に示すように、第1方向指示部220aのうち、着色されているのは、第2方向指示部220bが設けられる側の着色部分222a(「第1部分」に相当する。)、当該着色部分222aと時計周りおよび反時計周りのそれぞれに120度ずれた着色部分222bおよび着色部分222cである。また、第1方向指示部220aのうち、着色されていないのは、基準位置(または、プレイヤキャラクタ202)を挟んで着色部分222aの反対側に位置する非着色部分224a(「第2部分」に相当する。)、当該非着色部分224aと時計回りおよび反時計周りのそれぞれに120度ずれた非着色部分224bおよび非着色部分224cである。つまり、非着色部分224bは、基準位置(または、プレイヤキャラクタ202)を挟んで着色部分222bの反対側に位置し、非着色部分224cは、基準位置(または、プレイヤキャラクタ202)を挟んで着色部分222cの反対側に位置する。
【0101】
なお、第1実施例では、第1方向指示部220aの一部を着色しない非着色部分224a、224bおよび224cが設けられるが、非着色部分224a、224bおよび224cに相当する部分を第1方向指示部220aから削除してもよい。つまり、第1方向指示部220aを円環形状または円筒形状に配置された3つの円弧形状のオブジェクト(つまり、着色部分222a、222b、222c)で構成してもよい。
【0102】
また、着色の有無で部分を区別することに代えて、形状の違いで区別するようにしてもよい。たとえば、同じ色が着色された実線と破線で描画することで、部分(222a、222b、222c)と部分(224a、224b、224c)を区別するようにしてもよい。
【0103】
第1方向指示部220aに、非着色部分224a、224bおよび224cを設けるのは、第2方向指示部220bがプレイヤキャラクタ202に隠れて見えない場合であっても、目標地点を指示する水平方向を知るためである(
図14参照)。上述したように、非着色部分224aは、着色部分222aとは反対側に設けられるため、非着色部分224a、224bおよび224cに基づいて非着色部分224aを判断し、第1方向指示部220aのうち、非着色部分224aから当該非着色部分224aの反対側に向かう方向の水平成分が目標地点を指示する水平方向であることが分かる。
【0104】
なお、第2方向指示部220bと非着色部分224aの両方がプレイヤキャラクタ202で隠れることは無いため、非着色部分224bおよび非着色部分224cは設けられなくてもよい。つまり、非着色部分224aのみが第1方向指示部220aに設けられてもよい。
【0105】
また、第1方向指示部220aの形状は正多角形でもよいし、複数の球体、複数の円または複数の円筒が円形状を形成するように配置された形状でもよい。さらに、正多角形が正三角形の場合には、頂点を識別可能に描画することで第2方向指示部220bを省略することもできる。一例として、頂点または頂点を含む部分に他の部分とは異なる色を着色したり、頂点の対辺(底辺)の一部の色を着色しないようにしたり、当該対辺の一部を削除したりしてもよい。ただし、頂点の対辺の一部は、頂点から対辺に垂下した直線が当該対辺と交わる点を含む部分である。
【0106】
第2方向指示部220bは、第1方向指示部220aと同一平面内であり、当該第1方向指示部220aと所定の間隔を隔てて設けられた三角形状のオブジェクトである。ただし、指示オブジェクト220すなわち第2方向指示部220bは角丸にされてもよい。または、第2方向指示部220bは複数の三角形を指示オブジェクト220の幅方向に少しずらして重ね合わせた形状でもよい。かかる場合には、第2方向指示部220bの角はギザギザになる。ただし、指示オブジェクト220の幅方向は、第1方向指示部220aおよび第2方向指示部220bと同じ平面内であり、かつ、指示オブジェクト220が指示する方向に垂直な方向である。
【0107】
なお、第1実施例では、第2方向指示部220bは第1方向指示部220aと所定の間隔を隔てて設けられるが、他の例では、第1方向指示部220aの内側または外側で接して設けられたり、第1方向指示部220aに重ねて設けられたりしてもよい。また、第2方向指示部220bの形状は矢印の形状でもよい。
【0108】
上述したように、指示オブジェクト220は、目標地点の方向を指示する。指示オブジェクト220の向きは、非着色部分224aから着色部分222aに向かう方向である。また、指示オブジェクト220の向きは、第1方向指示部220aから第2方向指示部220bに向かう方向であるとも言える。したがって、第1方向指示部220aにおいては、着色部分222aは、プレイヤキャラクタ202を挟んで、非着色部分224aよりも目標地点に近い側に配置される。つまり、着色部分222aは、プレイヤキャラクタ202よりも目標地点に近い位置に配置され、非着色部分224aは、プレイヤキャラクタ202よりも目標地点に遠い位置に配置される。また、第2方向指示部220bは、第1方向指示部220aよりも目標地点に近い側に配置される。
【0109】
また、指示オブジェクト220は、第1方向指示部220aの中心(中心点)を基準位置として、目標地点の方向を直線的に指示するように表示される。つまり、指示オブジェクト220は、基準位置を中心に水平面と平行な面内を回転(または、回動)し、基準位置を中心に水平面と垂直な方向に回動する。したがって、指示オブジェクト220の方向の水平成分が目標地点への水平方向である。また、指示オブジェクト220の方向が水平面となす角度が所定位置から目標地点を見た場合の俯角または仰角である。つまり、指示オブジェクト220の傾きが所定位置に対する目標地点の高さを表現している。
【0110】
具体的には、
図9(A)に示すように、指示オブジェクト220すなわち第1方向指示部220aおよび第2方向指示部220bは、真上から見た場合に、基準位置を中心に左右の方向に回動する。
図9(A)に示す例では、図面上で右向きの指示オブジェクト220を基準として、基準位置を中心に左向きに(すなわち、反時計周りに)30度回動した場合の指示オブジェクト220の第2方向指示部220bを点線で示し、基準位置を中心に右向きに(すなわち、時計周りに)30度回動した場合の指示オブジェクト220の第2方向指示部220bを一点鎖線で示してある。
【0111】
また、
図9(B)に示すように、指示オブジェクト220すなわち第1方向指示部220aおよび第2方向指示部220bは、真横から見た場合に、基準位置を中心に上下の方向に回動(または、傾斜)する。
図9(B)に示す例では、図面上で右向きの指示オブジェクト220を基準として、基準位置を中心に上向きに30度回動した場合の指示オブジェクト220を点線で示し、基準位置を中心に下向きに30度回動した場合の指示オブジェクト220を一点鎖線で示してある。
【0112】
プレイヤは、指示オブジェクト220(または、第2方向指示部220b)の向きで目標地点の水平方向を知ることができ、また、指示オブジェクト220(または、第1方向指示部220a)の傾きで、プレイヤキャラクタ202の所定位置に対する目標地点の高さを知ることができる。
【0113】
つまり、指示オブジェクト220は、プレイヤキャラクタ202の所定位置から目標地点に向かう方向(3次元方向である。以下、同じ。)を算出し、算出した方向を向くように仮想空間に配置される。指示オブジェクト220は、その向きの水平成分が、算出した方向の水平成分と一致するように配置され、指示オブジェクト220の先端の高さが、算出した方向の垂直成分に基づいて決定される。
図9(A)に示すように、指示オブジェクト220の先端は、指示オブジェクト220の長手方向のうちの第2方向指示部220bの端であり、具体的には、三角形状の第2方向指示部220bの3つの頂点のうち、指示オブジェクト220の方向を指示する1つの頂点である。
【0114】
この第1実施例では、指示オブジェクト220の先端の高さを決定するために、指示オブジェクト220を傾ける角度を算出する。所定位置および目標地点の3次元座標が分かっているため、所定位置と目標地点の直線距離、水平距離および垂直距離を算出することができる。したがって、三角関数を用いて、所定位置から目標地点に向かう方向が水平面となす角度すなわち指示オブジェクト220を傾ける角度が算出される。
【0115】
ただし、所定位置は、プレイヤキャラクタ202の現在位置から算出することができる。プレイヤキャラクタ202の現在位置は、基本的には、プレイヤの操作に従って変更される。仮想のゲームにおいて所定のイベントが実行される場合に、プレイヤキャラクタ202の位置がコンピュータ(すなわち、プロセッサ81)によって強制的に変更される場合もある。
【0116】
図11は、プレイヤキャラクタ202の所定位置より高い位置の目標地点を指示する場合の指示オブジェクト220の一例を示す図である。
図12は、プレイヤキャラクタ202の所定位置より低い位置の目標地点を指示する指示オブジェクト220の一例を示す図である。
【0117】
図11および
図12に示すように、指示オブジェクト220の向きは所定位置から目標地点に向かう方向を指示する。したがって、
図11に示すように、目標地点が所定位置よりも上方である場合には、第2方向指示部220bの先端が目標地点を指すように、指示オブジェクト220が上向きに傾けられる。つまり、指示オブジェクト220の先端が指示オブジェクト220の後端よりも高い位置となる。当然のことではあるが、この場合、着色部分222aが非着色部分224aよりも高い位置となる。この場合、第1方向指示部220aと第2方向指示部220bは直線上に配置されるため、第1方向指示部220aの中心位置から、着色部分222aのうちの第2方向指示部220bに最も近い点に向かう方向が目標地点を指すように、第1方向指示部220aが上向きに傾けられる。
【0118】
また、
図12に示すように、目標地点が所定位置よりも下方である場合には、第2方向指示部220bの先端が目標地点を指すように、指示オブジェクト220が下向きに傾けられる。つまり、指示オブジェクト220の先端が指示オブジェクト220の後端よりも低い位置となる。当然のことではあるが、この場合、着色部分222aが非着色部分224aよりも低い位置となる。この場合、第1方向指示部220aの中心位置から、着色部分222aのうちの第2方向指示部220bに最も近い点に向かう方向が目標地点を指すように、第1方向指示部220aが下向き傾けられる。
【0119】
このように、指示オブジェクト220の上下方向の傾きが変化(または、更新)されると、指示オブジェクト220のうち、着色部分222aのうちの第2方向指示部220bに最も近い点、すなわち、第1方向指示部220aのうちの目標地点側の端部の高さが変化(または、更新)される。
【0120】
なお、図示は省略するが、指示オブジェクト220の上下の向きが変化される場合には、指示オブジェクト220はフレーム毎に次第に傾けられる。ただし、フレームは、画面更新の単位時間であり、1/30秒、1/60秒または1/120秒である。
【0121】
また、プレイヤは、仮想カメラ250を制御して、仮想カメラ250を移動したり、ズームしたりすることができる。一例として、仮想カメラ250は、アナログスティック52を傾倒した方向に移動され、Lボタン38でズームインされ、Rボタン60でズームアウトされる。
【0122】
図13(A)は仮想空間におけるプレイヤキャラクタ202および仮想カメラ250の位置関係の一例を仮想カメラ250の横方向から見た図である。
図13(B)は仮想空間におけるプレイヤキャラクタ202および仮想カメラ250の位置関係の一例を仮想カメラ250の後方から見た図である。
【0123】
図13(A)および
図13(B)に示すように、仮想空間においては、ワールド座標系が設定されており、x軸およびz軸を含む水平面または水平面に平行な平面がxz平面であり、x軸およびy軸(すなわち、xz平面)に対して垂直にy軸が設定される。
【0124】
仮想のゲームを開始した当初(つまり、初期状態)では、仮想カメラ250は、仮想空間において、プレイヤキャラクタ202の後方に配置される。具体的には、仮想カメラ250は、プレイヤキャラクタ202との水平距離が距離Dであり、プレイヤキャラクタ202の足元の位置からの高さHである位置に配置される。また、仮想カメラ250の向きは、プレイヤキャラクタ202の頭部の少し右側の位置(すなわち、注視点)を俯瞰して見るように設定される。プレイヤが仮想カメラ250を移動しない場合には、仮想カメラ250は、この位置関係を保ってプレイヤキャラクタ202を追従する。ただし、プレイヤキャラクタ202の足元の位置が、プレイヤキャラクタ202の位置である。
【0125】
プレイヤが仮想カメラ250を移動する場合には、仮想カメラ250の位置と注視点の間の距離Rを保ったままで、仮想カメラ250が注視点を向くように、仮想カメラ250の位置および向きが変更される。つまり、注視点を中心とし、距離Rの半径を有する球面上を仮想カメラ250は移動される。ただし、仮想カメラ250が、地面または床面、壁、柱などの背景オブジェクト204を突き抜けたり埋もれたりする場合には、移動を制限される。このことは、仮想カメラ250をズームする場合も同じである。
【0126】
プレイヤが仮想カメラ250をズームインする場合には、仮想カメラ250は注視点に近づく方向に移動され、ズームアウトする場合には、仮想カメラ250は注視点から遠ざかる方向に移動される。つまり、仮想カメラ250がズームされると、距離Rが変化される。
【0127】
プレイヤが仮想カメラ250を移動する場合には、プレイヤキャラクタ202との位置関係が変更され、仮想カメラ250は、変更された位置関係を保ってプレイヤキャラクタ202を追従する。
【0128】
なお、プレイヤが仮想カメラ250の位置および向きをリセットすると、プレイヤキャラクタ202に対する仮想カメラ250の位置および向きが初期状態に戻される。
【0129】
図14は表示装置に表示されるゲーム画面200の限定しない他の例を示す。
図14に示すゲーム画面200は、
図8に示したゲーム画面200が表示されている場合よりも、プレイヤキャラクタ202を手前に移動させ、仮想カメラ250を下方に移動させた場合に表示される。
図14に示すゲーム画面200では、第2方向指示部220bは、プレイヤキャラクタ202に隠れている。ただし、プレイヤは、第1方向指示部220aの非着色部分224aが視認可能であるため、プレイヤキャラクタ202を挟んで非着色部分224aの反対側に第2方向指示部220bが配置されていることを認識することができる。
【0130】
図14に示すように、所定のイベントが設定された背景オブジェクト204には、目印オブジェクト210が配置される。ただし、
図8および
図14から分かるように、指示オブジェクト220は、目印オブジェクト210を指示しないで、プレイヤキャラクタ202の右斜め前方に配置された階段を指示している。これは、プレイヤキャラクタ202が、目印オブジェクト210に到達する前に、階段を上って1つ上の階に移動する必要があるためである。つまり、階段の上り口に経由地である目標地点が設定されている。
【0131】
また、階段を上る必要があるため、階段を登り切った地点にも経由地である目標地点が設定される。したがって、プレイヤキャラクタ202が階段の上り口に設定した目標地点に到達すると、指示オブジェクト220は、階段を登り切った地点に設定された目標地点を指示するように、斜め上方に向けられる。
【0132】
経由地である目標地点を通過したかどうかはそれぞれの目標地点に対応して設定したフラグ(以下、「通過フラグ」という)で判断される。プレイヤキャラクタ202が経由地である目標地点を順方向に通過した場合には、通過フラグがオンされる。一方、プレイヤキャラクタ202が経由地である目標地点を逆方向に通過した場合には、通過フラグはオフされる。このように、通過フラグをオンまたはオフすることで、プレイヤキャラクタ202が、所定のイベントが設定された目標地点に到達する前に、一旦経由地を順方向に通過した後に、同じ経由地を逆方向に通過した場合に、再度同じ経由地である目標地点を指示オブジェクト220で指示することができる。
【0133】
図15は表示装置に表示されるゲーム画面200の限定しない他の例を示す。
図15に示すように、プレイヤキャラクタ202が階段上に居る場合には、階段を上り切った地点に設定された経由地である目標地点が指示オブジェクト220で指示される。この場合、プレイヤキャラクタ202に設定された所定位置よりも目標地点が上方であるため、指示オブジェクト220は上向きに配置される。
【0134】
図16も参照して分かるように、プレイヤキャラクタ202は、階段を上り切り、通路を左側に進行すると、目印オブジェクト210に近づく。プレイヤキャラクタ202から、目印オブジェクト210までの距離が所定距離(たとえば、仮想空間における6m)以下になると、指示オブジェクト220が消去され、指示オブジェクト220が表示されていた位置に複数の粒子オブジェクト230が表示される。つまり、指示オブジェクト220に代えて複数の粒子オブジェクト230が表示される。そして、複数の粒子オブジェクト230が目印オブジェクト210に向けて移動する。
【0135】
ただし、指示オブジェクト220が消去され、複数の粒子オブジェクト230が表示されている場合に、プレイヤキャラクタ202が目印オブジェクト210から遠ざかり、プレイヤキャラクタ202から目印オブジェクト210までの距離が所定距離よりも大きくなると、複数の粒子オブジェクト230が消去され、指示オブジェクト220が表示される。
【0136】
なお、第1実施例では、プレイヤキャラクタ202から目印オブジェクト210までの距離が所定距離以下になると、指示オブジェクト220を消去するようにしたが、指示オブジェクト220を消去しなくてもよい。
【0137】
図16はプレイヤキャラクタ202から目印オブジェクト210までの距離が所定距離以下になったときのゲーム画面200の一例を示す図である。
図17は
図16に示した状態から複数の粒子オブジェクト230が目印オブジェクト210に向けて少し移動した状態のゲーム画面200の一例を示す図である。
【0138】
図16に示すように、プレイヤキャラクタ202から目印オブジェクト210までの距離が所定距離以下になると、指示オブジェクト220が消去されるとともに、この指示オブジェクト220が表示されていた位置に、複数の粒子オブジェクト230が出現される。その後、
図17に示すように、複数の粒子オブジェクト230は、それぞれ、目印オブジェクト210に向けて飛んで行く。このように、複数の粒子オブジェクト230は、目印オブジェクト210に向けて移動されるので、プレイヤは、直接的に目印オブジェクト210の位置を知ることができる。つまり、プレイヤの注意を目印オブジェクト210に向けることができる。上述したように、指示オブジェクト220に代えて粒子オブジェクト230が表示されるため、指示オブジェクト220を消去しない場合よりも、目印オブジェクト210にプレイヤの注意を向けることができると考えられる。
【0139】
プレイヤの操作によって、プレイヤキャラクタ202は、目印オブジェクト210が配置された背景オブジェクト204を調べたり、背景オブジェクト204に対して所定の動作を行なったりする。このことによって、背景オブジェクト204に対して設定された所定のイベントが実行され、仮想のゲームが進行される。つまり、目印オブジェクト210については、単に到達または通過しただけでは仮想のゲームを進行することができず、対応する背景オブジェクト204に設定された所定のイベントが実行されることで仮想のゲームが進行される。所定のイベントが終了すると、次の目標地点を指示するように、指示オブジェクト220が配置される。そして、最終的な目標が達成されることで、仮想のゲームがクリアされる。
【0140】
図18は
図6に示したDRAM85のメモリマップ850の限定しない一例を示す図である。
図18に示すように、DRAM85は、プログラム記憶領域852およびデータ記憶領域854を含む。プログラム記憶領域852には、ゲームアプリケーションのプログラム(つまり、ゲームプログラム)が記憶される。
図18に示すように、ゲームプログラムは、メイン処理プログラム852a、画像生成プログラム852b、操作検出プログラム852c、ゲーム制御プログラム852d、カメラ制御プログラム852eおよび画像表示プログラム852fなどを含む。ただし、ゲーム画像などの画像を表示する機能は本体装置2が備える機能である。したがって、画像表示プログラム852fは、ゲームプログラムに含まれない。
【0141】
詳細な説明は省略するが、各プログラム852a-852fは、本体装置2に電源が投入された後の適宜のタイミングで、フラッシュメモリ84および/またはスロット23に装着された記憶媒体からその一部または全部が読み込まれてDRAM85に記憶される。ただし、各プログラム852a-852fの一部または全部は、本体装置2と通信可能な他のコンピュータから取得するようにしてもよい。
【0142】
メイン処理プログラム852aは、この第1実施例の仮想のゲームの全体的な処理(以下、「全体処理」という)を実行するためのプログラムである。
【0143】
画像生成プログラム852bは、後述する画像生成データ854bを用いて、ゲーム画像などの各種の画像に対応する表示画像データを生成するためのプログラムである。この画像生成プログラム852bには、上述した指示オブジェクト220を配置する処理(
図23参照)も含まれる。
【0144】
操作検出プログラム852cは、左コントローラ3または/および右コントローラ4からの操作データ854aを取得するためのプログラムである。
【0145】
ゲーム制御プログラム852dは、仮想のゲームについてのゲーム制御処理を実行するためのプログラムである。ゲーム制御処理には、プレイヤの操作に従ってプレイヤキャラクタ202に任意の動作を実行させたり、プレイヤの操作に関係無くノンプレイヤキャラクタに任意の動作を実行させたりする処理が含まれる。ただし、ゲーム制御処理では、プレイヤの操作に関係なく、仮想のゲームの進行に従ってプレイヤキャラクタ202の位置および向きを変更する場合もある。
【0146】
カメラ制御プログラム852eは、プレイヤの操作に従って、または、プレイヤの操作に関係無く仮想のゲームの進行に従って、仮想カメラ250の位置および向きを変更するためのプログラムである。
【0147】
画像表示プログラム852fは、画像生成プログラム852bに従って生成した表示画像データを表示装置に出力するためのプログラムである。したがって、表示画像データに対応する画像(ゲーム画面200など)がディスプレイ12などの表示装置に表示される。
【0148】
なお、プログラム記憶領域852には、BGM等の音を出力するための音出力プログラム、他の機器と通信するための通信プログラム、データをフラッシュメモリ84などの不揮発性の記憶媒体に記憶するためのバックアッププログラムなども記憶される。
【0149】
また、データ記憶領域854には、操作データ854a、画像生成データ854b、プレイヤキャラクタデータ854c、指示オブジェクトデータ854d、仮想カメラデータ854eおよび目標地点データ854fなどが記憶される。また、データ記憶領域854には、接近フラグ854gおよび移動終了フラグ854iが設けられる。
【0150】
操作データ854aは、左コントローラ3または/および右コントローラ4から受信される操作データである。この第1実施例においては、本体装置2が左コントローラ3および右コントローラ4の両方から操作データを受信する場合には、本体装置2は、左コントローラ3および右コントローラ4のそれぞれを識別可能にして操作データ854aを記憶する。また、1または複数の他のコントローラが用いられる場合には、本体装置2は、1または他のコントローラを識別可能にして操作データ854aを記憶する。
【0151】
画像生成データ854bは、ポリゴンデータおよびテクスチャデータなど、表示画像データを生成するために必要なデータである。
【0152】
プレイヤキャラクタデータ854cは、プレイヤキャラクタ202の現在位置データ、向きデータおよびアイテムデータを含む。プレイヤキャラクタ202の現在位置データは、仮想空間における、プレイヤキャラクタ202の現在の位置すなわち3次元座標のデータである。プレイヤキャラクタ202の向きデータは、仮想空間における、プレイヤキャラクタ202の現在の向きのデータである。プレイヤキャラクタ202のアイテムデータは、プレイヤキャラクタ202が所持するアイテムの種類および個数のデータである。
【0153】
指示オブジェクトデータ854dは、指示オブジェクト220の現在位置データおよび向きデータを含む。指示オブジェクト220の現在位置データは、仮想空間における、指示オブジェクト220の現在の位置すなわち3次元座標のデータである。上述したように、指示オブジェクト220の現在の位置は、プレイヤキャラクタ202に設定された所定位置であり、プレイヤキャラクタ202の現在の位置を、上方に所定の長さ(たとえば、110cm)移動した位置である。指示オブジェクト220の向きデータは、仮想空間における、指示オブジェクト220の現在の方向のデータである。
【0154】
仮想カメラデータ854eは、仮想カメラ250の現在位置データおよび向きデータを含む。仮想カメラ250の現在位置データは、仮想空間における、仮想カメラ250の現在の位置すなわち3次元座標のデータである。仮想カメラ250の向きデータは、仮想空間における、仮想カメラ250の現在の方向のデータである。
【0155】
目標地点データ854fは、仮想空間に設定された複数の目標地点の各々の位置データおよび各々の通過フラグである。複数の目標地点は、仮想のゲームの進行に従う順序で設定される。上述したように、目標地点は、目印オブジェクト210の位置および各目印オブジェクト210に到達するための1または複数の経由地である。通過フラグは、目標地点を通過したかどうかを判断するためのフラグである。目印オブジェクト210の位置については、当該目印オブジェクト210に対応する背景オブジェクト204に設定された所定のイベントが終了するまでは、通過フラグはオフされ、当該所定のイベントが終了すると、通過フラグがオンされる。また、経由地については、プレイヤキャラクタ202が当該経由地を順方向に通過する前では、通過フラグはオフされ、プレイヤキャラクタ202が当該経由地を順方向に通過すると、通過フラグはオンされる。また、目印オブジェクト210に対応する背景オブジェクト204に設定された所定のイベントが終了する前に、プレイヤキャラクタ202が当該目印オブジェクト210までの経由地を逆方向に通過した場合にも、通過フラグはオフされる。
【0156】
接近フラグ854gは、プレイヤキャラクタ202が目標地点として設定されている目印オブジェクト210の位置に接近したかどうかを判断するためのフラグである。プレイヤキャラクタ202の現在位置から現在の目標地点である目印オブジェクト210の位置までの距離が所定距離(この第1実施例では、仮想空間における6m)未満である場合には、プレイヤキャラクタ202が現在の目標地点である目印オブジェクト210の位置に接近したと判断され、接近フラグ854gはオンされる。一方、プレイヤキャラクタ202の現在位置から現在の目標地点である目印オブジェクト210の位置までの距離が所定距離以上である場合には、プレイヤキャラクタ202が現在の目標地点である目印オブジェクト210の位置に接近していないと判断され、接近フラグ854gはオフされる。
【0157】
移動終了フラグ854hは、複数の粒子オブジェクト230の移動が終了したかどうかを判断するためのフラグである。複数の粒子オブジェクト230のすべてが現在の目標地点である目印オブジェクト210の位置まで到達した場合には、複数の粒子オブジェクト230の移動が終了したと判断され、移動終了フラグ854hはオンされる。一方、現在の目標地点である目印オブジェクト210の位置まで到達していない粒子オブジェクト230がある場合(すなわち、移動中の場合)には、複数の粒子オブジェクト230の移動が終了していないと判断され、移動終了フラグ854hはオフされる。
【0158】
図示は省略するが、データ記憶領域854には、仮想空間に配置されているノンプレイヤキャラクタおよび背景オブジェクトについてのデータなどの他のデータが記憶されたり、他のフラグおよびタイマ(またはカウンタ)が設けられたりする。
【0159】
図19は、本体装置2のプロセッサ81(またはコンピュータ)のゲームプログラムの処理(全体処理)の限定しない一例を示すフロー図である。
図20は、本体装置2のプロセッサ81のゲーム制御処理の限定しない一例を示すフロー図である。
図21は、本体装置2のプロセッサ81のキャラクタ制御処理の限定しない一例を示すフロー図である。
図22および
図23は、本体装置2のプロセッサ81の指示オブジェクト配置処理の限定しない一例を示すフロー図である。以下、
図19-
図23を用いて、全体処理、ゲーム制御処理、キャラクタ制御処理および指示オブジェクト配置処理について説明する。
【0160】
ただし、
図19-
図23に示すフロー図の各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、この第1実施例では、基本的には、
図19-
図23に示すフロー図の各ステップの処理をプロセッサ81が実行するものとして説明するが、プロセッサ81以外のプロセッサや専用回路が一部のステップを実行するようにしてもよい。
【0161】
本体装置2の電源が投入されると、全体処理の実行に先だって、プロセッサ81は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってDRAM85等の各ユニットが初期化される。本体装置2は、プレイヤによって、この第1実施例のゲームプログラムの実行が指示されると、全体処理を開始する。
【0162】
図19に示すように、プロセッサ81は、全体的なゲーム処理を開始すると、ステップS1で、初期設定を実行する。ここでは、プロセッサ81は、仮想空間において、プレイヤキャラクタ202、ノンプレイヤキャラクタおよび背景オブジェクト204を初期位置に配置する。また、プロセッサ81は、プレイヤキャラクタ202の初期位置に基づいて指示オブジェクト220を配置する。ただし、前回の続きからゲームを開始する場合には、セーブされた時点における位置にプレイヤキャラクタ202、ノンプレイヤキャラクタおよび背景オブジェクト204を配置する。このとき、プレイヤキャラクタ202の初期位置またはセーブされた時点における位置のデータが、プレイヤキャラクタデータ854cの現在位置のデータとしてデータ記憶領域854に記憶される。また、ここでは、プロセッサ81は、目標地点データ854fを参照して、次に到達または通過するべき目標地点を現在の目標地点に設定する。
【0163】
続くステップS3では、左コントローラ3または/および右コントローラ4から送信された操作データを取得し、ステップS5では、後述するゲーム制御処理(
図20参照)を実行する。
【0164】
次のステップS7では、ゲーム画像を生成する。ここでは、プロセッサ81は、ステップS5のゲーム制御処理の結果に基づいてゲーム画像(ゲーム画面200など)に対応するゲーム画像データを生成する。たとえば、ゲーム画像を生成する場合には、プロセッサ81は、仮想空間における現在位置にプレイヤキャラクタ202を配置し、ノンプレイヤキャラクタを配置する。また、プロセッサ81は、プレイヤキャラクタ202の現在位置に基づいて指示オブジェクト220を配置する(
図22および
図23参照)。さらに、プロセッサ81は、プレイヤキャラクタ202の現在位置に応じた背景オブジェクトを配置(生成)する。したがって、或るシーン(情景)が生成される。このシーンを仮想カメラ250から見た画像(撮影画像)がゲーム画像として生成される。
【0165】
また、ステップS9では、ゲーム音声を生成する。ここでは、プロセッサ81は、ステップS5のゲーム制御処理の結果に応じたゲーム音声に対応する音声データを生成する。
【0166】
続いて、ステップS11では、ゲーム画像を表示する。ここでは、プロセッサ81は、ステップS7で生成したゲーム画像データをディスプレイ12に出力する。また、ステップS13では、ゲーム音声を出力する。ここでは、プロセッサ81は、ステップS9で生成したゲーム音声データを、コーデック回路87を介してスピーカ88に出力する。
【0167】
そして、ステップS15では、ゲームを終了するかどうかを判断する。ステップS15の判断は、プレイヤがゲームを終了する指示を行ったか否か等によって行われる。
【0168】
ステップS15で“NO”であれば、つまりゲームを終了しない場合には、ステップS3に戻る。一方、ステップS15で“YES”であれば、つまりゲームを終了する場合には、全体的なゲーム処理を終了する。
【0169】
図20に示すように、プロセッサ81は、ステップS5に示したゲーム制御処理を開始すると、ステップS31で、後述するキャラクタ制御処理(
図21参照)を実行する。次のステップS33では、プレイヤの操作またはゲームの進行に従って、カメラ制御処理を実行する。
【0170】
続くステップS35では、プレイヤキャラクタ202が現在の目標地点に到達したかどうかを判断する。ステップS35で“NO”であれば、つまり、プレイヤキャラクタ202が現在の目標地点に到達していなければ、ステップS55に進む。一方、ステップS35で“YES”であれば、つまり、現在の目標地点に到達していれば、ステップS37で、現在の目標地点が目印オブジェクト210の位置であるかどうかを判断する。
【0171】
ステップS37で“NO”であれば、つまり、現在の目標地点が経由地であれば、ステップS55に進む。一方、ステップS37で“YES”であれば、つまり、現在の目的地点が目印オブジェクト210の位置であれば、ステップS39で、イベントの進行中かどうかを判断する。
【0172】
ステップS39で“YES”であれば、つまり、イベントの進行中であれば、ステップS41で、イベントを進行させて、ステップS55に進む。一方、ステップS39で“NO”であれば、つまり、イベントの進行中でなければ、ステップS43で、イベントの終了かどうかを判断する。
【0173】
ステップS43で“NO”であれば、つまり、イベントの終了でなければ、ステップS45で、イベントを実行可能かどうかを判断する。つまり、プレイヤ(プレイヤキャラクタ202)がイベントを実行するための仕掛け、パズルまたは謎を解いたかどうかを判断する。
【0174】
ステップS45で“NO”であれば、つまり、イベントを実行可能でなければ、ステップS55に進む。一方、ステップS45で“YES”であれば、つまり、イベントを実行可能であれば、ステップS47で、イベントを実行して、ステップS55に進む。
【0175】
また、ステップS43で“YES”であれば、つまり、イベントの終了であれば、ステップS49で、当該目印オブジェクト210の位置の通過フラグをオンする。ここでは、プロセッサ81は、目標地点データ854fを参照して、現在の目標地点についての通過フラグをオンする。
【0176】
次のステップS51で、次の目標地点があるかどうかを判断する。ここでは、プロセッサ81は、目標地点データ854fを参照して、現在の目標地点の次に到達または通過するべき目標地点が有るかどうかを判断する。
【0177】
ステップS51で“NO”であれば、つまり、次の目標地点が無い場合には、ステップS55に進む。一方、ステップS51で“YES”であれば、つまり、次の目標地点が有る場合には、ステップS53で、次の目標地点を現在の目標地点として設定して、ステップS55に進む。
【0178】
ステップS55では、その他のゲーム処理を実行して、ゲーム制御処理を終了する。このステップS55では、プレイヤキャラクタ202およびノンプレイヤキャラクタの動作以外の処理、ゲームクリアの処理およびゲームデータのセーブ処理などが実行される。
【0179】
図21に示すように、プロセッサ81は、キャラクタ制御処理を開始すると、ステップS71で、プレイヤキャラクタ202の動作を制御する。ステップS71でプレイヤキャラクタ202の位置または/および向きを変更する場合には、プレイヤキャラクタデータ854cのうち、位置データまたは/および向きデータが更新される。ただし、プレイヤがプレイヤキャラクタ202の動作に関する操作を行っていない場合には、ステップS71の処理はスキップされる場合もある。また、プレイヤの操作に関係無く、プロセッサ81によって、強制的に、プレイヤキャラクタ202の位置および向きが更新される場合もある。さらに、ステップS71では、プレイヤキャラクタ202は、背景オブジェクト204を調べたり、背景オブジェクト204に対して動作を行なったり、アイテムを取得したり、謎を解いたり、パズルを解いたり、ノンプレイヤキャラクタと会話したりする。
【0180】
続くステップS73では、ノンプレイヤキャラクタの動作を制御する。ただし、ノンプレイヤキャラクタの動作を制御しない場合には、プロセッサ81は、ステップS73の処理をスキップする。
【0181】
続いて、ステップS75では、プレイヤキャラクタ202の位置から現在の目標地点である目印オブジェクト210の位置までの距離が所定距離(たとえば、仮想空間における6m)以内かどうかを判断する。ステップS75で“YES”であれば、つまり、プレイヤキャラクタ202の位置から目印オブジェクト210の位置までの距離が所定距離以内であれば、ステップS77で、接近フラグ854gをオンし、キャラクタ制御処理を終了して、ゲーム制御処理にリターンする。
【0182】
一方、ステップS75で“NO”であれば、つまり、プレイヤキャラクタ202の位置から目印オブジェクト210の位置までの距離が所定距離以内でなければ、ステップS79で、接近フラグ854gをオフし、ステップS81で、プレイヤキャラクタ202が経由地を順方向に通過したかどうかを判断する。
【0183】
ステップS81で“YES”であれば、つまり、プレイヤキャラクタ202が経由地を順方向に通過した場合には、ステップS83で、当該経由地である目標地点の通過フラグをオンし、キャラクタ制御処理を終了して、ゲーム制御処理にリターンする。
【0184】
一方、ステップS81で“NO”であれば、つまり、プレイヤキャラクタ202が経由地を順方向に通過していなければ、ステップS85で、プレイヤキャラクタ202が経由地を逆方向に通過したかどうかを判断する。
【0185】
ステップS85で“YES”であれば、つまり、プレイヤキャラクタ202が経由地を逆方向に通過した場合には、ステップS87で、当該経由地である目標地点の通過フラグをオフし、キャラクタ制御処理を終了して、ゲーム制御処理にリターンする。
【0186】
一方、ステップS85で“NO”であれば、つまり、プレイヤキャラクタ202が経由地を逆方向に通過していなければ、キャラクタ制御処理を終了して、ゲーム制御処理にリターンする。
【0187】
図22および
図23は、
図19に示したステップS7のゲーム画像の生成処理において実行される指示オブジェクト配置処理のフロー図である。
【0188】
図22に示すように、指示オブジェクト配置処理を開始すると、ステップS121で、指示オブジェクト220の位置を決定する。ここでは、プロセッサ81は、プレイヤキャラクタ202の位置を所定距離(たとえば、仮想空間において110cm)だけ上方に移動した位置を、指示オブジェクト220の位置として決定し、指示オブジェクトデータ854dに含まれる現在位置データを記憶(または、更新)する。
【0189】
次のステップS123では、接近フラグ854gがオンであるかどうかを判断する。ステップS123で“YES”であれば、つまり、接近フラグ854gがオンであれば、
図23に示すステップS129に進む。
【0190】
一方、ステップS123で“NO”であれば、つまり、接近フラグ854gがオフであれば、ステップS125で、プレイヤキャラクタ202の所定位置から現在の目標地点に向かう方向を算出し、指示オブジェクトデータ854dに含まれる向きデータを記憶(または、更新)する。
【0191】
次のステップS127で、ステップS125で算出した方向に向けて、ステップS121で決定した位置に、指示オブジェクト220を配置して、指示オブジェクト配置処理を終了して、ステップS7のゲーム画像の生成処理にリターンする。
【0192】
上述したように、ステップS123で“YES”である場合には、
図23に示すステップS129で、複数の粒子オブジェクト230の移動終了かどうかを判断する。ステップS129で“YES”であれば、つまり、複数の粒子オブジェクト230の移動終了であれば、ステップS131で、移動終了フラグ854hをオンして、指示オブジェクト配置処理を終了して、ステップS7のゲーム画像の生成処理にリターンする。
【0193】
一方、ステップS129で“NO”であれば、つまり、複数の粒子オブジェクト230の移動終了でなければ、ステップS133で、複数の粒子オブジェクト230移動中であるかどうかを判断する。
【0194】
ステップS133で“YES”であれば、つまり、複数の粒子オブジェクト230の移動中であれば、ステップS135で、複数の粒子オブジェクト230を目印オブジェクト210の位置に向けて1フレーム分移動させ、指示オブジェクト配置処理を終了して、ステップS7のゲーム画像の生成処理にリターンする。
【0195】
一方、ステップS133で“NO”であれば、つまり、複数の粒子オブジェクト230の移動中でなければ、ステップS137で、複数の粒子オブジェクト230を指示オブジェクト220が表示されていたプレイヤキャラクタ202の周囲に配置し、ステップS139で、移動終了フラグ854hをオフし、指示オブジェクト配置処理を終了して、ステップS7のゲーム画像の生成処理にリターンする。
【0196】
なお、ゲーム画像の生成処理では、指示オブジェクト220は、第2方向指示部220bと、第1方向指示部220aのうち、非着色部分224a、224bおよび224cを除く、着色部分222a、222bおよび222cを着色される。
【0197】
第1実施例によれば、プレイヤキャラクタを囲むように所定範囲内に配置した指示オブジェクトの向きで、プレイヤキャラクタから見た目標地点の水平方向のみならず、プレイヤキャラクタから見た目標地点の高さ方向を指示するので、プレイヤキャラクタが進むべき方向を常に確認することができるとともに、プレイヤキャラクタと目標地点までの高さ方向の位置関係を確認することもできる。
【0198】
なお、第1実施例では、プレイヤキャラクタの位置から目印オブジェクトの位置までの距離が所定距離未満になった場合に、複数の粒子オブジェクトを目印オブジェクトに向けて移動させるようにしたが、これに限定される必要はない。
【0199】
プレイヤキャラクタの進行方向またはプレイヤキャラクタの視線方向が目印オブジェクトを向いている場合に、複数の粒子オブジェクトを目印オブジェクトに向けて移動させるようにすることもできる。また、これらの条件を複合的に満たす場合に、複数の粒子オブジェクトを目印オブジェクトに向けて移動させるようにしてもよい。
【0200】
また、仮想のカメラの位置および向きと、目標オブジェクトが所定の位置関係を有する場合に、複数の粒子オブジェクトを目印オブジェクトに向けて移動させるようにすることもできる。たとえば、所定の位置関係は、プレイヤキャラクタの位置から目印オブジェクトの位置までの距離が所定距離未満であり、かつ、画面上に目標オブジェクトが表示されている状態である。この場合、目標オブジェクトが、画面の中心から上下および左右の一定割合以下に表示されていることを条件としてもよい。
【0201】
[第2実施例]
第2実施例のゲームシステム1は、指示オブジェクトの形状および目標地点の指示方法が異なる以外は、第1実施例のゲームシステム1と同じであるため、異なる内容について説明し、重複する内容についての説明は省略することにする。
【0202】
図24は第2実施例のゲーム画面200の一例を示す図である。
図24に示すように、ゲーム画面200には、プレイヤキャラクタ202および複数の背景オブジェクト204が表示されるとともに、第2実施例の指示オブジェクト260が表示される。
【0203】
図24に示すように、第2実施例の指示オブジェクト260は、第1方向指示部260a(「第1部分」に相当する。)および第2方向指示部260b(「第2部分」に相当する。)を含み、第1方向指示部260aと第2方向指示部260bは、プレイヤキャラクタ202を挟んで直線上に配置される(
図25(A)参照)。ただし、矢印形状の第1方向指示部260aの矢印が指示する方向と、三角形状の第2方向指示部260bの1つの頂点(すなわち、先端)が指示する方向とが一致するように、第1方向指示部260aと第2方向指示部260bは並べられる。
【0204】
第2実施例においても、プレイヤキャラクタ202の所定位置(たとえば、腰の高さで胴体の中心位置)に、指示オブジェクト260の基準位置が重なるように、指示オブジェクト260が配置される。一例として、指示オブジェクト260の基準位置は、第1方向指示部260aと第2方向指示部260bの中心位置に設定されている(
図25(A)、
図25(B)、
図27(A)および
図27(B)参照)。
【0205】
このように、プレイヤキャラクタ202を挟んで、第1方向指示部260aと第2方向指示部260bを設けるのは、第1方向指示部260aまたは第2方向指示部260bがプレイヤキャラクタ202に隠れて見えない場合であっても、少なくとも目標地点を指示する水平方向を指示するためである。
【0206】
また、第2実施例の指示オブジェクト260では、第1方向指示部260aは、プレイヤキャラクタ202を挟んで、第2方向指示部260bよりも目標地点に近い側に配置される。つまり、第1方向指示部260aは、プレイヤキャラクタ202よりも目標地点に近い位置に配置され、第2方向指示部260bは、プレイヤキャラクタ202よりも目標地点に遠い位置に配置される。
【0207】
図25(A)は
図24に示すように仮想空間の水平面に対して面が垂直となるように配置された状態の指示オブジェクト260の一例を示す上面図であり、
図25(B)は
図24に示すように仮想空間の水平面に対して面が垂直となるように配置された状態の指示オブジェクト260の一例を示す側面図である。第2実施例では、仮想カメラ250の俯角または仰角が所定角度(たとえば、45度)未満である場合に、指示オブジェクト260は、その面が水平面に対して垂直となるように配置される。
図24、
図25(A)および
図25(B)を参照しながら、第2実施例の指示オブジェクト260について説明する。
【0208】
第1方向指示部260aは、矢印形状の面を有するオブジェクトであり、厚みを有している。また、第1方向指示部260aは、全体に着色されている。
【0209】
第2方向指示部260bは、第1方向指示部260aと同一平面内であり、当該第1方向指示部260aと所定の間隔を隔てて設けられた三角形状の面を有するオブジェクトであり、当該第1方向指示部260aと同じ厚みを有している。また、第2方向指示部260bは、全体に着色されている。一例として、第2方向指示部260bは、第1方向指示部260aと同じ色で着色される。ただし、第2方向指示部260bの形状は矢印形状でもよい。
【0210】
指示オブジェクト260の先端は、第1方向指示部260aを変形していない状態において、指示オブジェクト260の長手方向のうちの第1方向指示部260aの端である。つまり、矢印形状の矢の先端である。また、指示オブジェクト260の後端は、第1方向指示部260aを変形していない状態おいて、指示オブジェクト260の長手方向のうちの先端とは反対側の端である。つまり、第2方向指示部260bのうちの第1方向指示部260a側の頂点から対辺に引いた垂線がこの対辺と交わる位置である。
【0211】
指示オブジェクト260は、基準位置を中心に水平面と平行な面内を回転(または、回動)し、プレイヤキャラクタ202の所定位置と目標地点の高さが異なる場合には、先端を目標地点に向けるように、第2方向指示部260bを変形する。
【0212】
具体的には、
図25(A)に示すように、指示オブジェクト260すなわち第1方向指示部260aおよび第2方向指示部260bは、真上から見た場合に、基準位置を中心に回動する。
図25(A)に示す例では、図面上で右向きの直線的な指示オブジェクト260を基準として、基準位置を中心に左向きに(すなわち、反時計周りに)30度回動した場合の指示オブジェクト260を点線で示し、基準位置を中心に右向きに(すなわち、時計周りに)30度回動した場合の指示オブジェクト260を一点鎖線で示してある。
【0213】
また、
図25(B)に示すように、指示オブジェクト260は、真横から見た場合に、目標地点を先端が向く方向で指示するように、第1方向指示部260aが変形される。
図25(B)に示す例では、指示オブジェクト260の面は水平面に対して縦であるため、第1方向指示部260aの矢印が幅方向すなわち仮想空間における上下方向に曲がるように変形される。
図25(B)では、図面上で右向きの直線的な指示オブジェクト260を基準として、上向きに曲げて先端が指示する方向の水平面に対する上向きの角度を30度にした場合の第1方向指示部260aを点線で示し、下向きに曲げて先端が指示する方向の水平面に対する下向きの角度を30度にした場合の第1方向指示部260aを一点鎖線で示してある。ただし、第2方向指示部260bは変形されない。
【0214】
したがって、第2実施例では、第1方向指示部260aの先端で指示する方向の水平成分および第2方向指示部260bで指示する方向が、それぞれ、指示オブジェクト260によって指示される水平方向である。また、第2実施例では、第1方向指示部260aの先端が指示する方向が水平面に対してなす角度が、所定位置から目標地点を見た場合の俯角または仰角である。
【0215】
プレイヤは、指示オブジェクト260の第1方向指示部260aの水平成分の向きまたは/および第2方向指示部260bの向きで目標地点の水平方向を知ることができ、また、指示オブジェクト260の第1方向指示部260aの先端の傾きで、プレイヤキャラクタ202の所定位置に対する目標地点の高さを知ることができる。
【0216】
つまり、指示オブジェクト260は、所定位置から目標地点に向かう方向を算出し、算出した方向の水平成分の向きに、第2方向指示部260bが向くとともに、算出した方向を先端が向くように変形された第1方向指示部260aの先端の向きの水平成分が向くように仮想空間に配置される。
【0217】
なお、第1方向指示部260aおよび第2方向指示部260bは角丸にしてもよい。また、第1方向指示部260aは、複数の矢印形状を指示オブジェクト260の幅方向に少しずらして重ね合わせた形状でもよい。同様に、第2方向指示部260bは、複数の三角形を指示オブジェクト260の幅方向に少しずらして重ね合わせた形状でもよい。かかる場合には、第1方向指示部260aおよび第2方向指示部260bの先端はギザギザになる。
【0218】
図26は、プレイヤキャラクタ202の所定位置より高い位置の目標地点を指示する場合の指示オブジェクト260を含むゲーム画面200の一例を示す図である。
図26に示すゲーム画面200では、プレイヤキャラクタ202が階段の上り口まで移動し、指示オブジェクト260は階段を上り切った地点に設定された目標地点を指示している。
【0219】
また、第2実施例では、仮想カメラ250の俯角または仰角が所定角度(この実施例、45度)以上になると、指示オブジェクト260の面が水平面に対して平行(すなわち、横)にされる。ゲーム画面200に表示される指示オブジェクト260を見やすくするためである。
図25(A)に示したように、指示オブジェクト260の面が水平面に対して縦である場合に、指示オブジェクト260を斜め上方または下方から見ると、厚み部分を見ることとなり、第1方向指示部260aおよび第2方向指示部260bが指示する方向が分かり難いためである。つまり、指示オブジェクト260が指示する方向を分かり易くするために、指示オブジェクト260の面の向きが変更される。
【0220】
図27(A)は、第1方向指示部260aを変形していない状態において、仮想空間の水平面に対して面が平行となるように配置された状態の指示オブジェクト260の一例を示す上面図である。また、
図27(B)は、第1方向指示部260aを変形していない状態において、仮想空間の水平面に対して面が平行となるように配置された状態の指示オブジェクト260の一例を示す側面図である。
【0221】
上述したように、指示オブジェクト260すなわち第1方向指示部260aおよび第2方向指示部260bは、真上から見た場合に、基準位置を中心に回動する。
図27(A)に示す例では、図面上で右向きの直線的な指示オブジェクト260を基準として、基準位置を中心に左向きに(すなわち、反時計周りに)30度回動した場合の指示オブジェクト260を点線で示し、基準位置を中心に右向きに(すなわち、時計周りに)30度回動した場合の指示オブジェクト260を一点鎖線で示してある。
【0222】
また、
図27(B)に示すように、指示オブジェクト260は、真横から見た場合に、目標地点を先端が向く方向で指示するように、第1方向指示部260aが変形される。
図25(B)に示す例では、第1方向指示部260aが変形していない場合には、指示オブジェクト260の面は水平面に対して平行であるため、第1方向指示部260aの矢印が厚み方向すなわち仮想空間における上下方向に曲がるように変形される。
図27(B)では、図面上で右向きの直線的な指示オブジェクト260を基準として、上向きに曲げて先端が指示する方向の水平面に対する上向きの角度を30度にした場合の第1方向指示部260aを点線で示し、下向きに曲げて先端が指示する方向の水平面に対する下向きの角度を30度にした場合の第1方向指示部260aを一点鎖線で示してある。
【0223】
なお、この実施例では、仮想カメラ250の俯角または仰角が45度未満であるか以上であるかで、指示オブジェクト260を、第1方向指示部260aを変形していない状態において、仮想空間の水平面に対して面が垂直または平行となるように配置するため、仮想カメラ250は指示オブジェクト260の面を正面以外の方向から捉える場合もある。このため、この実施例では、指示オブジェクト260の形状を輪郭線のみで表現してある。
【0224】
図28(A)は、プレイヤキャラクタ202および指示オブジェクト260の限定しない一例を横から見た図であり、
図28(B)はプレイヤキャラクタ202および指示オブジェクト260の限定しない一例を斜め上方から図であり、
図28(C)はプレイヤキャラクタ202および指示オブジェクト260の限定しない一例を斜め下方から見た図である。
【0225】
図28(A)では、仮想カメラ250はプレイヤキャラクタ202および指示オブジェクト260の横に配置され、仮想カメラ250の俯角が5度に設定される。プレイヤキャラクタ202の向きは異なるが、
図13(A)および
図13(B)に示したような位置関係となるように、仮想カメラ250は配置されている。つまり、俯角は45度未満である。したがって、指示オブジェクト260は、その面が水平面に対して垂直になるように配置される。
【0226】
図28(B)では、仮想カメラ250はプレイヤキャラクタ202および指示オブジェクト260を斜め上方に配置され、仮想カメラ250の俯角が75度に設定される。つまり、俯角は45度以上である。したがって、指示オブジェクト260は、その面が水平面と平行になるように配置される。
【0227】
図28(C)では、仮想カメラ250はプレイヤキャラクタ202および指示オブジェクト260の斜め下方に配置され、仮想カメラ250の仰角が75度に設定される。つまり、仰角は45度以上である。したがって、指示オブジェクト260は、その面が水平面と平行になるように配置される。
【0228】
このように仮想カメラ250の俯角または仰角(すなわち、位置)に応じて指示オブジェクト260の面の向きを変化させるので、プレイヤは、指示オブジェクト260の面を常に見ることができる。したがって、プレイヤは、仮想カメラ250を移動させて周囲の状況を把握しながら、目標地点の方向も認識することができる。
【0229】
第2実施例では、画像生成プログラム852bに従って指示オブジェクト260が描画される点が第1実施例と異なるだけであるため、メモリマップ850の説明等は省略する。つまり、第2実施例では、第1実施例で説明した指示オブジェクト配置処理の一部が変更される。
図29は第2実施例のプロセッサ81の指示オブジェクト配置処理のフロー図の位置を示す。
図29に示すように、第2実施例の指示オブジェクト配置処理では、第1実施例の指示オブジェクト配置処理のステップS127に代えて、ステップS201、S203およびS205が実行される。
【0230】
図29に示すように、ステップS125の処理に続いて、ステップS201で、仮想カメラデータ854eを参照して、仮想カメラ250の俯角または仰角が45度未満かどうかを判断する。
【0231】
ステップS201で“YES”であれば、つまり、仮想カメラ250の俯角または仰角が45度未満であれば、ステップS203で、面を水平面に対して垂直して、ステップS125で算出した方向を指示するように、指示オブジェクト260を配置して、指示オブジェクト配置処理を終了し、ステップS7のゲーム画像の生成処理にリターンする。
【0232】
ステップS203では、
図25(A)および
図25(B)を用いて説明したように、第1方向指示部260aを変形していない状態で面を水平面に対して垂直にして、ステップS125で算出した方向の水平成分の方向を向くように、指示オブジェクト260を配置する。また、ステップS125で算出した方向が垂直成分を有している場合には、第1方向指示部260aの先端がその方向を向くように上下方向に湾曲させる。つまり、第1方向指示部260aをその幅方向に曲げる。
【0233】
一方、ステップS201で“NO”であれば、つまり、仮想カメラ250の俯角または仰角が45度以上であれば、ステップS205で、面を水平面と平行にして、ステップS125で算出した方向を指示するように、指示オブジェクト260を配置して、指示オブジェクト配置処理を終了し、ステップS7のゲーム画像の生成処理にリターンする。
【0234】
ステップS205では、
図27(A)および
図27(B)を用いて説明したように、第1方向指示部260aを変形していない状態で面を水平面と平行にして、ステップS125で算出した方向の水平成分の方向を向くように、指示オブジェクト260を配置する。また、ステップS125で算出した方向が垂直成分を有している場合には、第1方向指示部260aの先端がその方向を向くように上下方向に湾曲させる。つまり、第1方向指示部260aをその厚み方向に曲げる。
【0235】
第2実施例においても、指示オブジェクトの向きで、プレイヤキャラクタから見た目標地点の水平方向のみならず、プレイヤキャラクタから見た目標地点の高さ方向を指示するので、プレイヤキャラクタが進むべき方向を常に確認することができるとともに、プレイヤキャラクタと目標地点までの高さ方向の位置関係を確認することもできる。
【0236】
なお、第2実施例では、仮想カメラの俯角または仰角が45度未満である場合には、第1方向指示部が変形されていない状態の指示オブジェクトの面を水平面と垂直に配置するようにするとともに、俯角または仰角が45度以上である場合に、第1方向指示部が変形されていない状態の指示オブジェクトの面を水平面と平行に配置するようにしたが、限定される必要はない。他の例では、仮想カメラの俯角および仰角の大きさに関係無く、第1方向指示部が変形されていない状態の指示オブジェクトの面を仮想カメラの視線に対して直交になるように指示オブジェクトを配置するようにしてもよい。つまり、指示オブジェクト260は、仮想カメラ250に対して面を向けるように傾けて配置される。ただし、この場合にも、必要に応じて、第1方向指示部は、目標地点を指示するように変形される。
【0237】
また、第2実施例では、第1方向指示部を変形することで、プレイヤキャラクタと目標地点までの高さ方向を指示するようにしたが、これに限定される必要はない。第1方向指示部のみを傾斜させたり、第1実施例と同様に、指示オブジェクトすなわち第1方向指示部および第2方向指示部を傾斜させたりしてもよい。第1方向指示部または指示オブジェクトを傾斜させる方法は、第1実施例で説明した方法と同じである。ただし、第1方向指示部のみを傾斜させる場合には、第1方向指示部は、その中心または重心を軸に上下方向に回転(または、回動)される。
【0238】
さらに、第2実施例では、指示オブジェクトに厚みを設けるようにしたが、厚みは設けなくてもよい。
【0239】
なお、上述の実施例では、ゲームシステムの一例としてゲームシステム1を示したが、その構成は限定される必要は無く、他の構成を採用することが可能である。たとえば、上記「コンピュータ」は、上述の実施例においては、1つのコンピュータ(具体的には、プロセッサ81)であるが、他の実施例においては、複数のコンピュータであってもよい。上記「コンピュータ」は、例えば、複数の装置に設けられる(複数の)コンピュータであってもよく、より具体的には、上記「コンピュータ」は、本体装置2のプロセッサ81と、コントローラが備える通信制御部(マイクロプロセッサ)101、111とによって構成されてもよい。
【0240】
また、上述の実施例では、ディスプレイ12にゲーム画像を表示する場合について説明したが、これに限定される必要はない。本体装置2を、クレードルを介して据置型モニタ(たとえば、テレビモニタ)に接続することにより、ゲーム画像を据置型モニタに表示することもできる。かかる場合には、ゲームシステム1と据置型モニタを含むゲームシステムを構成することもできる。
【0241】
さらに、上述の実施例では、本体装置2に左コントローラ3および右コントローラ4を着脱可能な構成のゲームシステム1を用いた場合について説明したが、これに限定される必要はない。たとえば、左コントローラ3および右コントローラ4と同様の操作ボタンおよびアナログスティックを有する操作部を本体装置2に一体的に設けたゲーム装置またはゲームプログラムを実行可能な他の電子機器のようなゲーム装置を用いることもできる。他の電子機器としては、スマートフォンまたはタブレットPCなどが該当する。かかる場合には、操作部はソフトウェアキーで構成することもできる。
【0242】
さらにまた、上述の実施例で示した具体的な数値および画像は一例であり、実際の製品に応じて適宜変更可能である。
【符号の説明】
【0243】
1 …ゲームシステム
2 …本体装置
3 …左コントローラ
4 …右コントローラ
32、52 …アナログスティック
39 …ZLボタン
60 …Rボタン
61 …ZRボタン
81 …プロセッサ