(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-17
(45)【発行日】2024-10-25
(54)【発明の名称】ゲームプログラム、情報処理装置、情報処理システム、および、ゲーム処理方法
(51)【国際特許分類】
A63F 13/55 20140101AFI20241018BHJP
A63F 13/52 20140101ALI20241018BHJP
A63F 13/53 20140101ALI20241018BHJP
【FI】
A63F13/55
A63F13/52
A63F13/53
(21)【出願番号】P 2020096009
(22)【出願日】2020-06-02
【審査請求日】2023-04-06
【前置審査】
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】佐藤 晴紀
(72)【発明者】
【氏名】朝倉 淳
(72)【発明者】
【氏名】佐藤 雄久
(72)【発明者】
【氏名】佐藤 祐也
【審査官】西村 民男
(56)【参考文献】
【文献】特開2019-195399(JP,A)
【文献】特開平10-156042(JP,A)
【文献】[スーパーマリオメーカー2]ヤマムラ道場 - コースづくりのコツ(初級),YouTube [online][video],2019年09月19日,https://www.youtube.com/watch?v=nkIKZUgNFEA,主に、25:10~25:40を参照、[2024年02月14日検索]
【文献】渡辺 諭,スーパーマリオメーカー for ニンテンドー3DS パーフェクトガイド,第1版,株式会社KADOKAWA,2016年12月22日,pp. 23, 24
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24,13/00-13/98
G06T 1/00,11/00-11/40
11/60-13/80,
15/00-17/00,17/05,
17/10-17/30,
19/00-19/20
(57)【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータに、
プレイヤキャラクタと地形オブジェクトとが少なくとも含まれる仮想空間内において、プレイヤの操作入力に基づいて前記地形オブジェクト上において前記プレイヤキャラクタを移動させる制御を少なくとも含む通常移動制御を行わせ、
少なくとも前記プレイヤキャラクタの上方に天井となる前記地形オブジェクトがあり、かつ、当該プレイヤキャラクタの上方であって当該天井のさらに上方に、当該プレイヤキャラクタを配置することが可能な前記地形オブジェクト上の移動先があることを少なくとも満たす場合に、前記プレイヤの操作入力に基づいて、当該プレイヤキャラクタを当該移動先まで移動させる特殊移動制御をさらに行わせ、
前記特殊移動制御によって前記プレイヤキャラクタを前記移動先まで移動させる場合において、当該プレイヤキャラクタに関して、前記地形オブジェクト内を移動しているときと、当該地形オブジェクト外を移動しているときとで異なるアニメーションの表示を行わせる、ゲームプログラム。
【請求項2】
情報処理装置のコンピュータに、
プレイヤキャラクタと地形オブジェクトとが少なくとも含まれる仮想空間内において、プレイヤの操作入力に基づいて前記地形オブジェクト上において前記プレイヤキャラクタを移動させる制御を少なくとも含む通常移動制御を行わせ、
前記プレイヤの操作入力による第1の指示に応じて、前記プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあり、かつ、当該プレイヤキャラクタの上方であって当該天井のさらに上方に、当該プレイヤキャラクタを配置することが可能な当該地形オブジェクト上
の移動先があることという判定条件が満たされるか否かの判定と、判定結果を示す表示とをさらに行わせ、
前記判定条件が満たされる場合において前記プレイヤの操作入力による第2の指示があったことに応じて、前記プレイヤキャラクタを前記移動先まで移動させる特殊移動制御をさらに行わせる、ゲームプログラム。
【請求項3】
情報処理装置のコンピュータに、
プレイヤキャラクタと地形オブジェクトとが少なくとも含まれる仮想空間内において、プレイヤの操作入力に基づいて前記地形オブジェクト上において前記プレイヤキャラクタを移動させる制御を少なくとも含む通常移動制御を行わせ、
少なくとも前記プレイヤキャラクタの上方に天井となる前記地形オブジェクトがあり、かつ、当該プレイヤキャラクタの上方であって当該天井のさらに上方に、当該プレイヤキャラクタを配置することが可能な前記地形オブジェクト上の移動先があることを少なくとも満たし、当該プレイヤキャラクタの上方であって当該地形オブジェクトのうちで上を向く場所の状態と、当該場所の上側にある当該地形オブジェクト外の空間の大きさとの少なくともいずれかに基づいた判定条件をさらに満たす場合に、前記プレイヤの操作入力に基づいて、当該場所を移動先として当該プレイヤキャラクタを当該移動先まで移動させる特殊移動制御をさらに行わせる、ゲームプログラム。
【請求項4】
前記特殊移動制御において、前記天井となる地形オブジェクトが、前記プレイヤキャラクタから上方へ所定距離以内にあることをさらに満たす場合に、前記プレイヤの操作入力に基づいて当該プレイヤキャラクタを前記移動先まで移動させる制御を前記コンピュータに行わせる、請求項1から請求項3のいずれか1項に記載のゲームプログラム。
【請求項5】
前記特殊移動制御において前記プレイヤキャラクタを現在位置から上方へ移動させ、さらに、前記天井から前記地形オブジェクトを通り抜けて当該プレイヤキャラクタを移動させることによって、当該プレイヤキャラクタを前記移動先まで移動させる制御を前記コンピュータに行わせる、請求項1から請求項4のいずれか1項に記載のゲームプログラム。
【請求項6】
前記判定条件が満たされるか否かの判定のうち、前記プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあるか否かの判定は、当該プレイヤキャラクタの位置から上方に向けて延びる所定高さの判定形状を仮想的に配置した場合に当該判定形状が前記地形オブジェクトに接触するか否かに基づいて行われる、請求項2に記載のゲームプログラム。
【請求項7】
前記判定形状は、上方に延びる1以上の線分により規定される形状、多角柱形状、および、円柱形状の少なくともいずれかである、請求項6に記載のゲームプログラム。
【請求項8】
前記プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあるか否かの判定は、前記判定形状が前記地形オブジェクトの表面に接触する部分の大きさに基づいて行われる、請求項6または請求項7に記載のゲームプログラム。
【請求項9】
前記プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあるか否かの判定として、前記判定形状が接触する部分における前記地形オブジェクトの状態に基づいて、当該地形オブジェクトの当該部分を前記天井とみなすか否かの判定を前記コンピュータにさらに行わせる、請求項6から請求項8のいずれか1項に記載のゲームプログラム。
【請求項10】
前記判定結果を示す表示は、前記地形オブジェクトが前記判定形状に接触する部分と、前記判定形状が配置される位置との少なくともいずれかが、当該判定結果に応じて異なる表示態様で描画されることによって行われる、請求項6から請求項9のいずれか1項に記載のゲームプログラム。
【請求項11】
プロセッサを備え、
前記プロセッサは、
プレイヤキャラクタと地形オブジェクトとが少なくとも含まれる仮想空間内において、プレイヤの操作入力に基づいて前記地形オブジェクト上において前記プレイヤキャラクタを移動させる制御を行う通常移動制御と、
少なくとも前記プレイヤキャラクタの上方に天井となる前記地形オブジェクトがあり、かつ、当該プレイヤキャラクタの上方であって当該天井のさらに上方に、当該プレイヤキャラクタを配置することが可能な前記地形オブジェクト上の移動先があることを少なくとも満たす場合に、前記プレイヤの操作入力に基づいて、当該プレイヤキャラクタを当該移動先まで移動させる特殊移動制御とを実行し、
前記特殊移動制御によって前記プレイヤキャラクタを前記移動先まで移動させる場合において、当該プレイヤキャラクタに関して、前記地形オブジェクト内を移動しているときと、当該地形オブジェクト外を移動しているときとで異なるアニメーションの表示を行う、情報処理装置。
【請求項12】
プロセッサを備え、
前記プロセッサは、
プレイヤキャラクタと地形オブジェクトとが少なくとも含まれる仮想空間内において、プレイヤの操作入力に基づいて前記地形オブジェクト上において前記プレイヤキャラクタを移動させる制御を行う通常移動制御と、
前記プレイヤの操作入力による第1の指示に応じて、前記プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあり、かつ、当該プレイヤキャラクタの上方であって当該天井のさらに上方に、当該プレイヤキャラクタを配置することが可能な当該地形オブジェクト上
の移動先があることという判定条件が満たされるか否かの判定と、判定結果を示す表示と、
前記判定条件が満たされる場合において前記プレイヤの操作入力による第2の指示があったことに応じて、前記プレイヤキャラクタを前記移動先まで移動させる特殊移動制御とを実行する、情報処理装置。
【請求項13】
プロセッサを備え、
前記プロセッサは、
プレイヤキャラクタと地形オブジェクトとが少なくとも含まれる仮想空間内において、プレイヤの操作入力に基づいて前記地形オブジェクト上において前記プレイヤキャラクタを移動させる制御を行う通常移動制御と、
少なくとも前記プレイヤキャラクタの上方に天井となる前記地形オブジェクトがあり、かつ、当該プレイヤキャラクタの上方であって当該天井のさらに上方に、当該プレイヤキャラクタを配置することが可能な前記地形オブジェクト上の移動先があることを少なくとも満たし、当該プレイヤキャラクタの上方であって当該地形オブジェクトのうちで上を向く場所の状態と、当該場所の上側にある当該地形オブジェクト外の空間の大きさとの少なくともいずれかに基づいた判定条件をさらに満たす場合に、前記プレイヤの操作入力に基づいて、当該場所を移動先として当該プレイヤキャラクタを当該移動先まで移動させる特殊移動制御とを実行する、情報処理装置。
【請求項14】
前記プロセッサは、前記特殊移動制御において、前記天井となる地形オブジェクトが、前記プレイヤキャラクタから上方へ所定距離以内にあることをさらに満たす場合に、前記プレイヤの操作入力に基づいて当該プレイヤキャラクタを前記移動先まで移動させる、請求項11から請求項13のいずれか1項に記載の情報処理装置。
【請求項15】
前記プロセッサは、前記特殊移動制御において、前記プレイヤキャラクタを現在位置から上方へ移動させ、さらに、前記天井から前記地形オブジェクトを通り抜けて当該プレイヤキャラクタを移動させることによって、当該プレイヤキャラクタを前記移動先まで移動させる、請求項11から請求項14のいずれか1項に記載の情報処理装置。
【請求項16】
前記判定条件が満たされるか否かの判定のうち、前記プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあるか否かの判定は、当該プレイヤキャラクタの位置から上方に向けて延びる所定高さの判定形状を仮想的に配置した場合に当該判定形状が前記地形オブジェクトに接触するか否かに基づいて行われる、請求項12に記載の情報処理装置。
【請求項17】
前記判定形状は、上方に延びる1以上の線分により規定される形状、多角柱形状、および、円柱形状の少なくともいずれかである、請求項16に記載の情報処理装置。
【請求項18】
前記プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあるか否かの判定は、前記判定形状が前記地形オブジェクトの表面に接触する部分の大きさに基づいて行われる、請求項16または請求項17に記載の情報処理装置。
【請求項19】
前記プロセッサは、前記プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあるか否かの判定として、前記判定形状が接触する部分における前記地形オブジェクトの状態に基づいて、当該地形オブジェクトの当該部分を前記天井とみなすか否かの判定をさらに行う、請求項16から請求項18のいずれか1項に記載の情報処理装置。
【請求項20】
前記判定結果を示す表示は、前記地形オブジェクトが前記判定形状に接触する部分と、前記判定形状が配置される位置との少なくともいずれかが、当該判定結果に応じて異なる表示態様で描画されることによって行われる、請求項16から請求項19のいずれか1項に記載の情報処理装置。
【請求項21】
プロセッサを備え、
前記プロセッサは、
プレイヤキャラクタと地形オブジェクトとが少なくとも含まれる仮想空間内において、プレイヤの操作入力に基づいて前記地形オブジェクト上において前記プレイヤキャラクタを移動させる制御を行う通常移動制御と、
少なくとも前記プレイヤキャラクタの上方に天井となる前記地形オブジェクトがあり、かつ、当該プレイヤキャラクタの上方であって当該天井のさらに上方に、当該プレイヤキャラクタを配置することが可能な前記地形オブジェクト上の移動先があることを少なくとも満たす場合に、前記プレイヤの操作入力に基づいて、当該プレイヤキャラクタを当該移動先まで移動させる特殊移動制御とを実行し、
前記特殊移動制御によって前記プレイヤキャラクタを前記移動先まで移動させる場合において、当該プレイヤキャラクタに関して、前記地形オブジェクト内を移動しているときと、当該地形オブジェクト外を移動しているときとで異なるアニメーションの表示を行う、情報処理システム。
【請求項22】
プロセッサを備え、
前記プロセッサは、
プレイヤキャラクタと地形オブジェクトとが少なくとも含まれる仮想空間内において、プレイヤの操作入力に基づいて前記地形オブジェクト上において前記プレイヤキャラクタを移動させる制御を行う通常移動制御と、
前記プレイヤの操作入力による第1の指示に応じて、前記プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあり、かつ、当該プレイヤキャラクタの上方であって当該天井のさらに上方に、当該プレイヤキャラクタを配置することが可能な当該地形オブジェクト上
の移動先があることという判定条件が満たされるか否かの判定と、判定結果を示す表示と、
前記判定条件が満たされる場合において前記プレイヤの操作入力による第2の指示があったことに応じて、前記プレイヤキャラクタを前記移動先まで移動させる特殊移動制御とを実行する、情報処理システム。
【請求項23】
プロセッサを備え、
前記プロセッサは、
プレイヤキャラクタと地形オブジェクトとが少なくとも含まれる仮想空間内において、プレイヤの操作入力に基づいて前記地形オブジェクト上において前記プレイヤキャラクタを移動させる制御を行う通常移動制御と、
少なくとも前記プレイヤキャラクタの上方に天井となる前記地形オブジェクトがあり、かつ、当該プレイヤキャラクタの上方であって当該天井のさらに上方に、当該プレイヤキャラクタを配置することが可能な前記地形オブジェクト上の移動先があることを少なくとも満たし、当該プレイヤキャラクタの上方であって当該地形オブジェクトのうちで上を向く場所の状態と、当該場所の上側にある当該地形オブジェクト外の空間の大きさとの少なくともいずれかに基づいた判定条件をさらに満たす場合に、前記プレイヤの操作入力に基づいて、当該場所を移動先として当該プレイヤキャラクタを当該移動先まで移動させる特殊移動制御とを実行する、情報処理システム。
【請求項24】
前記プロセッサは、前記特殊移動制御において、前記天井となる地形オブジェクトが、前記プレイヤキャラクタから上方へ所定距離以内にあることをさらに満たす場合に、前記プレイヤの操作入力に基づいて当該プレイヤキャラクタを前記移動先まで移動させる、請求項21から請求項23のいずれか1項に記載の情報処理システム。
【請求項25】
情報処理システムによって実行されるゲーム処理方法であって、
プレイヤキャラクタと地形オブジェクトとが少なくとも含まれる仮想空間内において、プレイヤの操作入力に基づいて前記地形オブジェクト上において前記プレイヤキャラクタを移動させる制御を行う通常移動制御と、
少なくとも前記プレイヤキャラクタの上方に天井となる前記地形オブジェクトがあり、かつ、当該プレイヤキャラクタの上方であって当該天井のさらに上方に、当該プレイヤキャラクタを配置することが可能な前記地形オブジェクト上の移動先があることを少なくとも満たす場合に、前記プレイヤの操作入力に基づいて、当該プレイヤキャラクタを当該移動先まで移動させる特殊移動制御とを実行し、
前記特殊移動制御によって前記プレイヤキャラクタを前記移動先まで移動させる場合において、当該プレイヤキャラクタに関して、前記地形オブジェクト内を移動しているときと、当該地形オブジェクト外を移動しているときとで異なるアニメーションの表示を行う、ゲーム処理方法。
【請求項26】
情報処理システムによって実行されるゲーム処理方法であって、
プレイヤキャラクタと地形オブジェクトとが少なくとも含まれる仮想空間内において、プレイヤの操作入力に基づいて前記地形オブジェクト上において前記プレイヤキャラクタを移動させる制御を行う通常移動制御と、
前記プレイヤの操作入力による第1の指示に応じて、前記プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあり、かつ、当該プレイヤキャラクタの上方であって当該天井のさらに上方に、当該プレイヤキャラクタを配置することが可能な当該地形オブジェクト上
の移動先があることという判定条件が満たされるか否かの判定と、判定結果を示す表示と、
前記判定条件が満たされる場合において前記プレイヤの操作入力による第2の指示があったことに応じて、前記プレイヤキャラクタを前記移動先まで移動させる特殊移動制御とを実行する、ゲーム処理方法。
【請求項27】
情報処理システムによって実行されるゲーム処理方法であって、
プレイヤキャラクタと地形オブジェクトとが少なくとも含まれる仮想空間内において、プレイヤの操作入力に基づいて前記地形オブジェクト上において前記プレイヤキャラクタを移動させる制御を行う通常移動制御と、
少なくとも前記プレイヤキャラクタの上方に天井となる前記地形オブジェクトがあり、かつ、当該プレイヤキャラクタの上方であって当該天井のさらに上方に、当該プレイヤキャラクタを配置することが可能な前記地形オブジェクト上の移動先があることを少なくとも満たし、当該プレイヤキャラクタの上方であって当該地形オブジェクトのうちで上を向く場所の状態と、当該場所の上側にある当該地形オブジェクト外の空間の大きさとの少なくともいずれかに基づいた判定条件をさらに満たす場合に、前記プレイヤの操作入力に基づいて、当該場所を移動先として当該プレイヤキャラクタを当該移動先まで移動させる特殊移動制御とを実行する、ゲーム処理方法。
【請求項28】
前記特殊移動制御において、前記天井となる地形オブジェクトが、前記プレイヤキャラクタから上方へ所定距離以内にあることをさらに満たす場合に、前記プレイヤの操作入力に基づいて当該プレイヤキャラクタを前記移動先まで移動させる、請求項25から請求項27のいずれか1項に記載のゲーム処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プレイヤキャラクタの移動制御を行うゲームプログラム、情報処理装置、情報処理システム、および、ゲーム処理方法に関する。
【背景技術】
【0002】
従来、仮想のゲーム空間においてプレイヤキャラクタを高く飛び上がらせるように動作を制御することが行われている(例えば、非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【文献】“ゼルダの伝説 ブレスオブザワイルド”、[online]、任天堂株式会社、[令和2年4月21日検索]、インターネット<https://www.nintendo.co.jp/zelda/index.html>
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来においては、プレイヤキャラクタを高く飛び上がらせることができる一方、プレイヤキャラクタの上方に地形オブジェクトがある場合には、当該地形オブジェクトよりも上方にプレイヤキャラクタを移動させることはできなかった。
【0005】
それ故、本発明の目的は、プレイヤキャラクタの上方に地形オブジェクトがある場合において当該地形オブジェクトの上方に当該プレイヤキャラクタを移動させることができるゲームプログラム、情報処理装置、情報処理システム、および、ゲーム処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は、以下の(1)~(11)の構成を採用した。
【0007】
(1)
本発明の一例は、情報処理装置のコンピュータに、通常移動制御と、特殊移動制御とを行わせるゲームプログラムである。通常移動制御は、プレイヤキャラクタと地形オブジェクトとが少なくとも含まれる仮想空間内において、プレイヤの操作入力に基づいて地形オブジェクト上においてプレイヤキャラクタを移動させる制御を少なくとも含む。特殊移動制御は、少なくともプレイヤキャラクタの上方に天井となる地形オブジェクトがあり、かつ、当該プレイヤキャラクタの上方であって当該天井のさらに上方に、当該プレイヤキャラクタを配置することが可能な地形オブジェクト上の移動先があることを少なくとも満たす場合に、プレイヤの操作入力に基づいて、当該プレイヤキャラクタを当該移動先まで移動させる制御である。
【0008】
上記(1)の構成によれば、プレイヤキャラクタの上方に地形オブジェクトがある場合において当該地形オブジェクトの上方に当該プレイヤキャラクタを移動させることができる。
【0009】
(2)
ゲームプログラムは、特殊移動制御において、天井となる地形オブジェクトが、プレイヤキャラクタから上方へ所定距離以内にあることをさらに満たす場合に、プレイヤの操作入力に基づいて当該プレイヤキャラクタを移動先まで移動させる制御をコンピュータに行わせてもよい。
【0010】
上記(2)の構成によれば、プレイヤキャラクタから天井となる地形オブジェクトまでの距離が離れすぎている場合に、プレイヤキャラクタが移動される可能性を低減することができる。
【0011】
(3)
ゲームプログラムは、特殊移動制御においてプレイヤキャラクタを現在位置から上方へ移動させ、さらに、天井から地形オブジェクトを通り抜けて当該プレイヤキャラクタを移動させることによって、当該プレイヤキャラクタを移動先まで移動させる制御をコンピュータに行わせてもよい。
【0012】
上記(3)の構成によれば、プレイヤキャラクタが現在位置から地形オブジェクト上の移動先まで移動する際に地形オブジェクトを通り抜けて移動することをプレイヤに直感的に認識させることができる。
【0013】
(4)
ゲームプログラムは、特殊移動制御によってプレイヤキャラクタを移動先まで移動させる場合において、当該プレイヤキャラクタに関して、地形オブジェクト内を移動しているときと、当該地形オブジェクト外を移動しているときとで異なるアニメーションの表示をコンピュータに行わせてもよい。
【0014】
上記(4)の構成によれば、プレイヤキャラクタが地形オブジェクト内を移動していることをプレイヤにわかりやすく認識させることができる。
【0015】
(5)
ゲームプログラムは、プレイヤの操作入力による第1の指示に応じて、プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあり、かつ、当該プレイヤキャラクタの上方であって当該天井のさらに上方に当該地形オブジェクト上の移動先があることという判定条件が満たされるか否かの判定と、判定結果を示す表示とをコンピュータにさらに行わせてもよい。また、ゲームプログラムは、特殊移動制御において、判定条件が満たされる場合においてプレイヤの操作入力による第2の指示があったことに応じて、プレイヤキャラクタを移動先まで移動させる制御をコンピュータに行わせてもよい。
【0016】
上記(5)の構成によれば、プレイヤは、地形オブジェクト上への移動が可能であるか否かを確認した後で、当該移動を実際に行わせるための第2の指示を行うことができる。
【0017】
(6)
判定条件が満たされるか否かの判定のうち、プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあるか否かの判定は、当該プレイヤキャラクタの位置から上方に向けて延びる所定高さの判定形状を仮想的に配置した場合に当該判定形状が地形オブジェクトに接触するか否かに基づいて行われてもよい。
【0018】
(7)
判定形状は、上方に延びる1以上の線分により規定される形状、多角柱形状、および、円柱形状の少なくともいずれかであってもよい。
【0019】
上記(6)または(7)の構成によれば、判定形状を用いることによって判定を容易に行うことができる。
【0020】
(8)
プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあるか否かの判定は、判定形状が地形オブジェクトの表面に接触する部分の大きさに基づいて行われてもよい。
【0021】
上記(8)の構成によれば、プレイヤキャラクタが地形オブジェクト中を通り抜ける際にプレイヤキャラクタの一部が地形オブジェクトからはみ出した状態で移動するといった不自然な表示が行われる可能性を低減することができる。
【0022】
(9)
ゲームプログラムは、プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあるか否かの判定として、判定形状が接触する部分における地形オブジェクトの状態に基づいて、当該地形オブジェクトの当該部分を天井とみなすか否かの判定をコンピュータにさらに行わせてもよい。
【0023】
上記(9)の構成によれば、プレイヤキャラクタによる移動先への移動が可能であるとすればゲームの進行に不都合が生じるおそれがある場合において、このような不都合が生じる可能性を低減することができる。
【0024】
(10)
判定結果を示す表示は、地形オブジェクトが判定形状に接触する部分と、判定形状が配置される位置との少なくともいずれかが、当該判定結果に応じて異なる表示態様で描画されることによって行われてもよい。
【0025】
上記(10)の構成によれば、プレイヤキャラクタによる移動先への移動が可能か否かをプレイヤにとってかりやすく通知することができる。
【0026】
(11)
ゲームプログラムは、プレイヤキャラクタの上方であって地形オブジェクトのうちで上を向く場所の状態と、当該場所の上側にある当該地形オブジェクト外の空間の大きさとの少なくともいずれかに基づいた判定条件をさらに満たす場合に、プレイヤの操作入力に基づいて、当該場所を移動先とする特殊移動制御をコンピュータに行わせてもよい。
【0027】
上記(11)の構成によれば、プレイヤキャラクタを配置することができない場所へプレイヤキャラクタが移動されてしまう可能性を低減することができる。
【0028】
なお、本発明の別の一例は、上記(1)~(11)における処理を実行する情報処理装置または情報処理システムであってもよい。また、本発明の別の一例は、上記(1)~(11)における処理を実行するゲーム処理方法であってもよい。
【発明の効果】
【0029】
本発明によれば、プレイヤキャラクタの上方に地形オブジェクトがある場合において当該地形オブジェクトの上方に当該プレイヤキャラクタを移動させることができる。
【図面の簡単な説明】
【0030】
【
図1】本体装置に左コントローラおよび右コントローラを装着した状態の一例を示す図
【
図2】本体装置から左コントローラおよび右コントローラをそれぞれ外した状態の一例を示す図
【
図7】本体装置と左コントローラおよび右コントローラとの内部構成の一例を示すブロック図
【
図8】本実施形態におけるゲーム空間においてプレイヤキャラクタが通り抜け移動を行う様子を模式的に示す図
【
図9】高さ条件が満たされる場合と満たされない場合との一例を示す図
【
図10】プレイヤキャラクタの周囲に設定されるレイの一例を示す図
【
図11】天井角度条件が満たされる場合と満たされない場合との一例を示す図
【
図12】面積条件が満たされる場合と満たされない場合との一例を示す図
【
図13】オブジェクト条件が満たされる場合と満たされない場合との一例を示す図
【
図14】移動先条件が満たされる場合と満たされない場合との一例を示す図
【
図15】プレイヤキャラクタの上方に複数の地形オブジェクトがある場合の一例を示す図
【
図16】移動用アイテムが使用可能となる前の状態におけるゲーム画像の一例を示す図
【
図17】
図16に示す状態においてアイテム指定指示が行われたことに応じて表示されるゲーム画像の一例を示す図
【
図18】地形オブジェクト中をプレイヤキャラクタが移動する場合におけるプレイヤキャラクタおよび仮想カメラの配置の一例を示す図
【
図19】ゲームシステムにおける情報処理に用いられる各種データの一例を示す図
【
図20】ゲームシステムによって実行されるゲームプログラム処理の流れの一例を示すフローチャート
【
図21】
図20に示すステップS13の通り抜け移動処理の詳細な流れの一例を示すサブフローチャート
【発明を実施するための形態】
【0031】
[1.ゲームシステムの構成]
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(
図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0032】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0033】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。
図1および
図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0034】
図3は、本体装置2の一例を示す六面図である。
図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0035】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0036】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0037】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0038】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、
図6に示すスピーカ88)を備えている。
図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0039】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0040】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0041】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0042】
図4は、左コントローラ3の一例を示す六面図である。
図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、
図1および
図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0043】
左コントローラ3は、アナログスティック32を備える。
図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0044】
左コントローラ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プログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0045】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0046】
図5は、右コントローラ4の一例を示す六面図である。
図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0047】
右コントローラ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を備える。
【0048】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0049】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、
図3に示す構成の他、
図6に示す各構成要素81~91、97、および98を備える。これらの構成要素81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0050】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0051】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0052】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0053】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0054】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0055】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0056】
プロセッサ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は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0057】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0058】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0059】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0060】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0061】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0062】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図6で示しているため
図7では省略している。
【0063】
左コントローラ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(登録商標)の規格に従って行われる。
【0064】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0065】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(
図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0066】
通信制御部101は、各入力部(具体的には、各ボタン103、および、アナログスティック32)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0067】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。
【0068】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0069】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0070】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、および、アナログスティック52を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0071】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0072】
[2.ゲームシステムにおける処理の概要]
図8~
図18を参照して、ゲームシステム1において実行されるゲーム処理の概要について説明する。本実施形態においては、上記ゲーム処理によるゲームにおいて、プレイヤ(換言すれば、ユーザ)によって操作されるプレイヤキャラクタが仮想の3次元のゲーム空間内において移動する。ゲーム空間には、プレイヤキャラクタの他、地形オブジェクト(例えば、地面や建物のオブジェクト)や敵キャラクタ等が配置されている。プレイヤキャラクタは、地形オブジェクト上をプレイヤによる操作に応じて移動することが可能である。このような地形オブジェクト上を移動する制御は、従来の制御方法と同様であってもよい。ここで、本実施形態においては、プレイヤキャラクタは、地形オブジェクト上の移動に加えて、自身の上方にある地形オブジェクトを通り抜ける移動(以下、「通り抜け移動」と呼ぶ。)を行うことが可能である。以下、このような通り抜け移動のための処理について説明する。
【0073】
[2-1:移動の概要]
図8は、本実施形態におけるゲーム空間においてプレイヤキャラクタが通り抜け移動を行う様子を模式的に示す図である。なお、
図8は、水平方向に平行な方向からゲーム空間を見た図である。
図8におけるゲーム状態は、プレイヤキャラクタ201が地形オブジェクト202の上に配置されており、その上には天井となる地形オブジェクト203がある状態である。このような状態において、プレイヤキャラクタ201は、後述する移動条件が満たされることを条件として、地形オブジェクト203を通り抜けて当該地形オブジェクト203上に移動することができる(
図8参照)。
【0074】
なお、本明細書において、地形オブジェクトとは、ゲーム空間に配置されるオブジェクトであって、少なくとも当該地形オブジェクトの一部分においてプレイヤキャラクタが当該地形オブジェクトの上に配置されることが可能な任意のオブジェクトを指す。地形オブジェクトは、ゲーム空間における地面を示すものであってもよいし、建物を示すものであってもよい。また、本実施形態においては、地面の地形オブジェクトの上に配置されているオブジェクト(例えば、岩や大きな箱等のオブジェクト)も地形オブジェクトの一種になり得る。地形オブジェクトは、例えば、あるゲーム条件が満たされた場合に移動する岩のオブジェクトのように、一定条件下で移動するものであってもよい。
【0075】
また、本明細書において、天井とは、建物のオブジェクトにおける天井の部分に限らず、任意の地形オブジェクトにおける下を向く部分であって、通り抜け移動が可能な部分は天井となり得る。例えば、地面を示す地形オブジェクトによって洞窟が形成される場合、または、山を示す地形オブジェクトによってトンネルが形成される場合において、当該地形オブジェクトのうちで下を向く部分は天井である。
【0076】
なお、
図8に示すように、プレイヤキャラクタが通り抜け移動を行う場合においては、当該地形オブジェクトに孔が空けられるわけではない。本実施形態における通り抜け移動は、当該移動の際にはプレイヤキャラクタと地形オブジェクトとの当たり判定を例外的に行わないようにすることで、地形オブジェクトとの当たり判定を無視してプレイヤキャラクタを移動させるものである。
【0077】
また、上記通り抜け移動は、プレイヤキャラクタが地面からジャンプする動作とは異なる動作である。本実施形態において、通り抜け移動は、プレイヤキャラクタの上方に天井があることを少なくとも条件として行われる動作であり、プレイヤキャラクタの上方に天井がない場合には、プレイヤキャラクタは移動しない(
図8参照。なお、この場合にはジャンプの動作も行わない)。したがって、通り抜け移動は、プレイヤの操作に応じてプレイヤキャラクタがジャンプを行う一般的なジャンプ動作とは異なる動作であると言うことができる。なお、本実施形態においては、プレイヤキャラクタは、通り抜け移動とは別の操作によってジャンプ動作を行うことができる。
【0078】
本実施形態においては、上記の通り抜け移動によって、プレイヤキャラクタは、自身の上方にある地形オブジェクトの上に移動することが可能となる。したがって、例えば、プレイヤキャラクタが地下の洞窟にいる場合に、通り抜け移動によって洞窟からすぐに脱出したり、建物の中から屋根の上にすぐに移動したりすることができる。また例えば、入り口に鍵が掛かっていて入ることできない建物の下方に洞窟がある場合において、プレイヤキャラクタは、通り抜け移動によって洞窟から建物の中に入ることができる。このように、通り抜け移動によって、今までにない移動方法を提供することができ、ゲームの戦略性を向上することができる。
【0079】
[2-2:移動条件]
次に、上記の通り抜け移動をプレイヤキャラクタが行うことが可能となる条件(「移動条件」と呼ぶ。)について説明する。本実施形態においては、移動条件は、天井に関する天井条件と、移動先に関する移動先条件とを含む。天井条件および移動先条件がともに満たされる場合に、通り抜け移動が可能となる。以下、天井条件および移動先条件について説明する。
【0080】
[2-2-1:天井条件]
本実施形態においては、天井条件は、プレイヤキャラクタの上方の天井に関する条件であり、下記の4つの条件を含む。
・プレイヤキャラクタから天井までの高さに関する高さ条件
・天井の傾斜角度に関する天井角度条件
・天井の面積に関する面積条件
・天井に設けられるオブジェクトに関するオブジェクト条件
本実施形態において、ゲームシステム1は、上記4つの条件が満たされる場合、天井条件が満たされた(すなわち、通り抜け移動が可能な天井がある)と判定し、上記4つの条件のうち少なくとも1つが満たされない場合、天井条件が満たされないと判定する。なお、他の実施形態においては、天井条件は上記4つの条件を全て含んでいる必要は無く、少なくとも1つの条件を含んでいてもよい。また、天井条件は、上記4つの条件とは異なる条件を含んでいてもよい。
【0081】
図9は、高さ条件が満たされる場合と満たされない場合との一例を示す図である。本実施形態においては、高さ条件は、プレイヤキャラクタ201の位置から天井(すなわち、天井となる地形オブジェクト203)までの距離が所定距離以内であることである。ゲームシステム1は、プレイヤキャラクタ201から天井までの距離(「天井距離」と呼ぶ。)Lに基づいて高さ条件を判定する。すなわち、天井距離Lが所定距離以内である場合、高さ条件は満たされる(
図9に示す(a)参照)。一方、天井距離Lが所定距離よりも長い場合、高さ条件は満たされない(
図9に示す(b)参照)。
【0082】
上記天井距離Lの算出方法は任意であるが、本実施形態においては例えば以下の方法で天井距離Lが算出される。本実施形態においては、天井距離Lは、プレイヤキャラクタの位置に基づいて設定される直線(「レイ」と呼ぶ。)を用いて算出される。
図10は、プレイヤキャラクタの周囲に設定されるレイの一例を示す図である。
図10に示すように、ゲームシステム1は、プレイヤキャラクタ201の周囲に、開始点aから上方向に延びるレイ301~306をゲーム空間に仮想的に配置する。本実施形態においては、6本のレイ301~306が設定される。つまり、本実施形態においては、プレイヤキャラクタを内部に含む6角柱を仮想的に配置していると言うこともできる。なお、他の実施形態においては、設定されるレイの本数は1以上の任意の本数でよい。
【0083】
本実施形態においては、6本のレイ301~306は、ゲーム空間の上方向から見て、プレイヤキャラクタ201の位置を中心とする6角形の頂点の位置に配置される(
図10参照)。ただし、レイは、プレイヤキャラクタ201の周囲の任意の位置に配置されてもよい。また、各レイ301~306の各開始点aは、上下方向に関して、プレイヤキャラクタ201の足下の位置(具体的には、プレイヤキャラクタ201の下端の位置)に設定される(
図10参照)。なお、プレイヤキャラクタ201が配置される地形オブジェクトに凹凸や傾斜がある場合でも、各レイ301~306の各開始点aは、上下方向に関してそれぞれ同じ高さに設定される。また、開始点の上方方向に関する位置は、プレイヤキャラクタ201の上下方向の位置によって決められる任意の位置でよい。他の実施形態においては、開始点の上方方向に関する位置は、例えばプレイヤキャラクタ201の頭の位置でもあってもよい。
【0084】
ゲームシステム1は、開始点aから、レイと天井とが接触する位置(「接触点」と呼ぶ。)までの長さを、レイ毎に算出する。そして、ゲームシステム1は、各レイ301~306についての開始点aから接触点までの各長さに基づいて天井距離Lを算出する。例えば、天井距離Lは、6本のレイ301~306(ただし、天井に接触していないレイを除く)についての開始点から接触点までの各長さの平均値として算出されてもよい。なお、複数本のレイに基づくことで、天井に凹凸や傾斜がある場合であっても天井距離Lを精度良く算出することができる。
【0085】
上記のように、本実施形態においては、ゲームシステム1は、上記高さ条件を設定し、プレイヤキャラクタから天井までの距離(例えば、天井距離L)が高さ条件を満たすことを条件として、通り抜け移動をプレイヤキャラクタに行わせる。つまり、ゲームシステム1は、天井となる地形オブジェクトが、プレイヤキャラクタから上方へ所定距離以内にあることを満たす場合に、通り抜け移動をプレイヤキャラクタに行わせる。上記によれば、プレイヤキャラクタの上方に地形オブジェクトがあっても当該地形オブジェクトがプレイヤキャラクタから離れすぎている場合には、当該地形オブジェクトに対する通り抜け移動を抑制することができる。例えば、地面の遙か上空に地形オブジェクトが存在し、当該地形オブジェクトの場所は、本来はゲームを進行させた後でプレイヤキャラクタが行くことができるようになる場所である場合を考える。このような場合において、上記の場所への通り抜け移動が可能であるとすれば、ゲームの進行に不都合が生じるおそれがある。これに対して、本実施形態によれば、高さ条件を設定することによって上記の不都合が生じる可能性を低減することができる。
【0086】
また、上記のように、本実施形態においては、高さ条件の判定(すなわち、プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあるか否かの判定)は、プレイヤキャラクタの位置から上に向けて延びる所定高さの判定形状を仮想的に配置した場合に当該判定形状が地形オブジェクトに接触するか否かに基づいて行われる、と言うこともできる。ここで、本実施形態における判定形状は、上記6本のレイ301~306により規定される形状であり、6本のレイ301~306を側面の各辺とする6角柱であると言うこともできる。また、この6角柱の高さは、高さ条件の閾値となる上記所定距離と等しい高さである。なお、他の実施形態においては、判定形状は、任意の柱状形状であってもよく、6角柱以外の多角柱形状であってもよいし、円柱形状であってもよい。上記のように、判定形状を用いて高さ条件の判定を行うことによって、判定を容易に行うことができる。なお、詳細は後述するが、天井角度条件、面積条件、および、オブジェクト条件の判定においても判定形状(具体的には、レイ301~306)が用いられる。判定形状を用いることによって、これらの条件についても高さ条件と同様に、判定を容易に行うことができる。
【0087】
図11は、天井角度条件が満たされる場合と満たされない場合との一例を示す図である。本実施形態においては、天井角度条件は、プレイヤキャラクタ201の上方にある天井の傾斜角度が所定角度以内であることである。なお、傾斜角度は、具体的には、天井となる地形オブジェクト203の、水平方向に対する傾斜角度θ1である(
図11参照)。
【0088】
ゲームシステム1は、上記傾斜角度θ1に基づいて天井角度条件を判定する。すなわち、上記傾斜角度θ1が所定角度(例えば、50°)以下である場合、天井角度条件は満たされる(
図11に示す(a)参照)。一方、傾斜角度θ1が所定角度よりも大きい場合、天井角度条件は満たされない(
図11に示す(b)参照)。このように傾斜角度θ1が大きい場合は、プレイヤキャラクタ201の上方にある地形オブジェクト203の部分は天井というよりは壁に近いとみなし、通り抜け移動は行われないものとする。
【0089】
上記傾斜角度θ1の算出方法は任意であるが、本実施形態においては例えば以下の方法で算出される。すなわち、本実施形態においては、上記傾斜角度θ1は、上述のレイを用いて算出される。具体的には、ゲームシステム1は、レイと天井とが接触する上記接触点における地形オブジェクト203の傾斜角度を、レイ毎に算出する。そして、ゲームシステム1は、レイ毎に算出された各傾斜角度の平均値として、上記傾斜角度θ1を算出する。これによれば、天井に凹凸がある場合であっても傾斜角度を精度良く算出することができる。
【0090】
なお、天井角度条件は、上記の判定に替えて、もしくは上記の判定に加えさらに、以下に示す方法で判定されてもよい。ゲームシステム1は、まず、各レイ301~306について接触点の高さをそれぞれ算出する。次に、ゲームシステム1は、任意の3つの接触点を通る平面の角度(具体的には、水平方向に対する角度)を算出する。本実施形態においては、ゲームシステム1は、上記平面の角度を上記3つの接触点の組み合わせ毎に算出し、いずれかの平面の角度が基準よりも大きい場合は天井角度条件が満たされないものとする。上記の方法によれば、例えば、プレイヤキャラクタ201の上方にある天井に所定の基準よりも大きな段差がある場合、天井角度条件が満たされないと判定される(
図11に示す(c)参照)。したがって、このような段差がある場合には通り抜け移動が行われないようにする場合には、ゲームシステム1は、上記の方法によって天井角度条件を判定してもよい。
【0091】
上記のように、ゲームシステム1は、判定形状(例えば、6本のレイ301~306により規定される6角柱)が接触する部分における地形オブジェクトの状態(例えば、天井の上記傾斜角度、天井の段差、または、後述の禁止オブジェクトの配置状態等)に基づいて、当該地形オブジェクトの当該部分を天井とみなすか否かを判定する。これによれば、天井とは言えない急な傾斜である部分や大きな段差がある部分について通り抜け移動が行われる可能性を低減することができる。また、通り抜け移動が行われることをゲーム製作者が意図していない場所について通り抜け移動が行われることによって、ゲームの進行に不都合が生じる可能性を低減することができる。
【0092】
図12は、面積条件が満たされる場合と満たされない場合との一例を示す図である。本実施形態においては、面積条件は、プレイヤキャラクタ201の上方にある天井の投影面積が所定量以上であることである。上記投影面積は、具体的には、プレイヤキャラクタ201と交わる面領域であって水平方向に平行な面領域(具体的には、6本のレイ301~306の開始点を頂点とする6角形の領域)を上方へ天井に投影した場合に、天井に投影される面積である。
【0093】
ゲームシステム1は、上記投影面積に基づいて面積条件を判定する。すなわち、投影面積が所定量(例えば、上記6角形の面積の2/3)以上である場合、面積条件は満たされる(
図12に示す(a)参照)。一方、投影面積が所定量未満である場合、面積条件は満たされない。例えば、
図12の(b)に示すように、上記面領域の一部のみが地形オブジェクト203の天井に投影される場合には、投影面積が小さくなり、面積条件は満たされない。このように投影面積が小さい場合、ゲームシステム1は、プレイヤキャラクタ201の上方にある地形オブジェクト203の部分には通り抜け移動が可能な天井は無いと判断し、通り抜け移動を行わない。
【0094】
上記投影面積の算出方法は任意であるが、本実施形態においては例えば以下の方法で算出される。すなわち、本実施形態においては、ゲームシステム1は、レイ301~306の開始点を結ぶ線分によって囲まれる六角形の領域を上方へ天井に対して投影した場合に、投影される領域の面積を投影面積として算出する。また、他の実施形態においては、ゲームシステム1は、6本のレイ301~306のうちで天井となる地形オブジェクト203に接触するレイの本数によって投影面積の大まかな値を算出することができる。このとき、面積条件の判定は、地形オブジェクト203に接触するレイの本数が所定数(例えば、4本)以上であるか否かによって行われてもよい。
【0095】
上記のように、本実施形態においては、プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあるか否かの判定は、上記面積条件の判定を含む。つまり、プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあるか否かの判定は、判定形状が地形オブジェクトの表面に接触する部分の大きさ(例えば、上記投影面積)に基づいて行われる。ここで、仮に、投影面積が小さい場合にプレイヤキャラクタが通り抜け移動を行うとすれば、プレイヤキャラクタが地形オブジェクト中を通り抜ける際に、プレイヤキャラクタの一部が地形オブジェクトからはみ出した状態で移動するといった不自然な表示が行われる可能性がある。これに対して、本実施形態によれば、面積条件を用いることによって、上記のような不自然な表示が行われる可能性を低減することができる。
【0096】
図13は、オブジェクト条件が満たされる場合と満たされない場合との一例を示す図である。本実施形態においては、オブジェクト条件は、禁止オブジェクト205が天井となる地形オブジェクト203に配置されていないことである。ここで、禁止オブジェクト205は、ゲームプログラムにおいて定められた特定のオブジェクトであって、例えば、トゲのついたオブジェクトである(
図13参照)。
【0097】
ゲームシステム1は、プレイヤキャラクタ201の上方の天井に禁止オブジェクト205が配置されているか否かを判定する。具体的には、ゲームシステム1は、上述のレイ301~306が禁止オブジェクト205に接触するか否かによって、オブジェクト条件を判定する。すなわち、レイ301~306がそれぞれ禁止オブジェクト205に接触しない場合、オブジェクト条件が満たされる(
図13に示す(a)参照)。一方、レイ301~306の少なくともいずれかが禁止オブジェクト205に接触する場合、オブジェクト条件が満たされない(
図13に示す(b)参照)。
【0098】
なお、プレイヤキャラクタ201の上方の天井に禁止オブジェクトが配置されているか否かの具体的な判定方法は任意である。例えば、他の実施形態において、ゲームシステム1は、禁止オブジェクト205に接触するレイの本数が所定数(例えば、1本)以下である場合、オブジェクト条件が満たされると判定してもよい。
【0099】
また、禁止オブジェクト205が天井の表面に配置されていない場合(すなわち、プレイヤキャラクタとその上方の禁止オブジェクト205との間に他の地形オブジェクトがある場合)には、仮にレイを上に延ばした先に禁止オブジェクト205が存在したとしても、ゲームシステム1はオブジェクト条件が満たされると判定してもよい。例えば、天井である地形オブジェクトに禁止オブジェクト205が設置されている状態において、禁止オブジェクト205を覆うように他のオブジェクトが配置された場合(例えば、プレイヤキャラクタ201が当該他のオブジェクトを移動させた場合)、ゲームシステムは、当該他のオブジェクトに関してオブジェクト条件が満たされると判定してもよい。これによれば、禁止オブジェクトが設置されている場所においても、プレイヤが他のオブジェクトを用いた工夫を行うことによって、プレイヤキャラクタ201は通り抜け移動を行うことができるようになる。なお、他の実施形態においては、プレイヤキャラクタ201から移動先までの間に禁止オブジェクトがある場合には、ゲームシステム1はオブジェクト条件が満たされないと判定してもよい。
【0100】
上記のように、ゲームシステム1は、判定形状(例えば、6本のレイ301~306により規定される6角柱)が接触する部分における地形オブジェクトの状態(例えば、禁止オブジェクトの配置状態)に基づいて、当該地形オブジェクトの当該部分を天井とみなすか否かを判定する。これによれば、ゲーム製作者は、地形オブジェクトの状態を設定することによって、プレイヤキャラクタによる通り抜け移動を容易に禁止することができる。例えば、通り抜け移動が可能であるとすればゲームの進行に不都合が生じるおそれがあるような場所が存在する場合、当該場所の地形オブジェクトの状態を変更する(例えば、禁止オブジェクトを設置する)ことによって、そのような不都合が生じる可能性を低減することができる。
【0101】
なお、上記「地形オブジェクトの状態」とは、当該地形オブジェクトに他のオブジェクトが配置されているか否かに関する状態に限らず、当該地形オブジェクト自体に関する状態であってもよい。「地形オブジェクトの状態」とは、例えば、当該地形オブジェクト自体が禁止オブジェクトであるか否かに関する状態であってもよい。
【0102】
[2-2-2:移動先条件]
次に、移動先条件について説明する。
図14は、移動先条件が満たされる場合と満たされない場合との一例を示す図である。移動先条件は、プレイヤキャラクタの上方の移動先に関する条件であり、下記の2つの条件を含む。
・移動先となる場所の傾斜角度に関する移動先角度条件
・移動先における空間に関する空間条件
ゲームシステム1は、上記2つの条件が満たされる場合、移動先条件が満たされた(すなわち、プレイヤキャラクタを配置可能な移動先がある)と判定し、上記2つの条件のうち少なくとも1つが満たされない場合、移動先条件が満たされないと判定する。なお、他の実施形態においては、移動先条件は上記2つの条件を全て含んでいる必要は無く、少なくとも1つの条件を含んでいてもよい。また、移動先条件は、上記2つの条件とは異なる条件を含んでいてもよい。
【0103】
移動先角度条件は、プレイヤキャラクタ201の上方で天井をなす地形オブジェクト203のさらに上方で上を向く場所Pの傾斜角度が所定角度以内であることである。なお、この傾斜角度は、具体的には、地形オブジェクト203における上記場所Pの、水平方向に対する傾斜角度θ2である(
図14参照)。傾斜角度θ2の算出方法は任意であるが、上述の傾斜角度θ1と同様、レイを用いて算出されてもよい。
【0104】
ゲームシステム1は、上記傾斜角度θ2に基づいて移動先角度条件を判定する。すなわち、上記傾斜角度θ2が所定角度(例えば、50°)以下である場合、移動先角度条件は満たされる(
図14に示す(a)参照)。一方、傾斜角度θ2が所定角度よりも大きい場合、天井角度条件は満たされない(
図14に示す(b1)参照)。このように傾斜角度θ2が大きい場合は、上記場所Pは、プレイヤキャラクタ201を配置可能な移動先とはみなされず、通り抜け移動は行われない。
【0105】
なお、本実施形態においては、プレイヤキャラクタ201が地形オブジェクト上に配置された状態において、プレイヤキャラクタ201が配置された位置における当該地形オブジェクトの傾斜角度が基準角度以上であれば、ゲームシステム1は、プレイヤによる操作が無い状態においてはプレイヤキャラクタ201が傾斜の下方へ移動する(例えば、ずり落ちる)ように制御する。上記移動先角度条件における閾値となる上記所定角度は、上記基準角度と同じ角度であってもよい。
【0106】
また、上記空間条件は、上記場所Pの上側にある空間(すなわち、地形オブジェクト外の空間)が、プレイヤキャラクタ201を配置可能な大きさ(具体的には、幅、奥行き、および、高さ)であることである。すなわち、上記空間の大きさが、プレイヤキャラクタ201を配置可能な所定の大きさを有する場合、空間条件は満たされる(
図14に示す(a)参照)。一方、上記空間の大きさが上記所定の大きさを有しない場合、空間条件は満たされない(
図14に示す(b2)参照)。このように上記空間が小さい場合は、上記場所Pは、プレイヤキャラクタ201を配置可能な移動先とはみなされず、通り抜け移動は行われない。
【0107】
なお、上記所定の大きさは、少なくとも、プレイヤキャラクタ201を上記場所Pに配置したと仮定した場合にプレイヤキャラクタ201と地形オブジェクト203とが接地部分以外で接触または重複しない大きさである。
【0108】
上記のように、本実施形態においては、ゲームシステム1は、プレイヤキャラクタの上方であって地形オブジェクトのうちで上を向く場所の状態(例えば、傾斜角度θ2)と、当該場所の上側にある当該地形オブジェクト以外の空間の大きさとの少なくともいずれかに基づいた判定条件をさらに満たす場合に、当該場所を移動先とする通り抜け移動の制御を行う。これによれば、通り抜け移動によって、プレイヤキャラクタを配置することができない場所へプレイヤキャラクタが移動されてしまう可能性を低減することができる。
【0109】
上記「地形オブジェクトのうちで上を向く場所の状態」とは、当該場所における傾斜角度に関する状態に限らず、当該場所における地形オブジェクトの種類、あるいは、当該場所の上側にある空間に関する状態を含む意味である。例えば、他の実施形態においては、地形オブジェクトの上記場所が、オブジェクト上のプレイヤキャラクタがダメージを受けてしまう種類のオブジェクト(例えば、溶岩を示す種類のオブジェクト)である場合、ゲームシステム1は、移動先条件が満たされないと判定するようにしてもよい。また例えば、地形オブジェクトの上記場所の上側にある空間が、プレイヤキャラクタが一定時間しか存在することができない空間(例えば、水中)である場合、ゲームシステム1は、移動先条件が満たされないと判定するようにしてもよい。上記のように、ゲームシステム1は、プレイヤキャラクタを配置することが不可能な場所を移動先としないことに加えて、プレイヤキャラクタを配置することが可能であっても特定の場所を移動先から除外するようにしてもよい。
【0110】
ここで、ゲーム空間においては、地形オブジェクトが複数の層状に配置される場合があり、この場合、プレイヤキャラクタの上方に複数層の地形オブジェクトがあることもあり得る。以下、プレイヤキャラクタの上方に複数層の地形オブジェクトがある場合における移動先の決定方法について説明する。
【0111】
図15は、プレイヤキャラクタの上方に複数の地形オブジェクトがある場合の一例を示す図である。
図15に示す例においては、プレイヤキャラクタ201の上方に2つの地形オブジェクト203および207が存在するものとする。また、
図15に示す例においては、プレイヤキャラクタ201の上方であって、天井となる地形オブジェクト203のうちで上を向く場所P1は、移動先条件を満たさず、地形オブジェクト203のさらに上方にある地形オブジェクト207のうちで上を向く場所P2は、移動先条件を満たすものとする。
【0112】
図15に示す例において、まず、ゲームシステム1は、プレイヤキャラクタ201の上方にある地形オブジェクトのうちでプレイヤキャラクタ201に最も近い地形オブジェクト203について、移動先条件が満たされるか否かを判定する。そして、上記地形オブジェクト203について移動先条件が満たされない場合、ゲームシステム1は、プレイヤキャラクタ201の上方にある地形オブジェクトのうちで、地形オブジェクト203を除いてプレイヤキャラクタ201に最も近い地形オブジェクト207について、移動先条件が満たされるか否かを判定する。
図15に示す例においては、地形オブジェクト207における場所P2は移動先条件を満たすので、当該場所P2が移動先として決定される(
図15参照)。
【0113】
上記のように、ゲームシステム1は、プレイヤキャラクタ201の上方に複数の地形オブジェクトがある場合、プレイヤキャラクタ201に近い地形オブジェクトから順に移動先条件を満たすか否かを判定する。ゲームシステム1は、移動先条件が満たされる地形オブジェクトが存在するまで、上記の判定を繰り返す。そして、各地形オブジェクトについて移動先条件が満たされない場合は、ゲームシステム1は、移動条件が満たされないと判定し、プレイヤキャラクタ201による通り抜け移動を行わないようにする。一方、移動先条件が満たされる地形オブジェクトが存在する場合は、当該地形オブジェクトの移動先への通り抜け移動をプレイヤキャラクタ201に行わせる。これによって、本実施形態によれば、プレイヤキャラクタ201の上方に複数の地形オブジェクトがある場合であっても、移動先を決定することができる。
【0114】
[2-3:通り抜け移動に関するゲーム操作およびゲーム表示の流れ]
本実施形態においては、上記の通り抜け移動は、プレイヤキャラクタ201が所定の移動用アイテムを使用することで行われる。具体的には、ゲーム中において、プレイヤは、まずアイテム指定指示を行うことによって、プレイヤキャラクタ201が移動用アイテムを使用可能な状態とする。この状態において、プレイヤは、移動開始指示を行うことによって、(上記移動条件が満たされることを条件として)プレイヤキャラクタ201に通り抜け移動を行わせることができる。以下、プレイヤキャラクタ201に通り抜け移動を行わせるためのプレイヤの操作と、通り抜け移動が行われる場合における表示について説明する。
【0115】
[2-3-1:通り抜け移動前のゲーム画像]
図16は、移動用アイテムが使用可能となる前の状態におけるゲーム画像の一例を示す図である。
図16に示すように、上記の状態においては、プレイヤキャラクタ201を含むゲーム空間を示すゲーム画像がディスプレイ12に表示される。つまり、ゲームシステムは、ゲーム画像を生成するための仮想カメラの位置および姿勢を、プレイヤキャラクタ201が視野範囲に含まれるような位置および姿勢に設定する。また、上記の状態において、プレイヤは、地面の地形オブジェクト211上をプレイヤキャラクタ201に移動させる操作を行うことが可能であるとともに、プレイヤキャラクタ201が上記移動用アイテムを使用可能な状態とするためのアイテム指定指示を行うことが可能である。
【0116】
上記の状態において、プレイヤがアイテム指定指示を行うと、プレイヤキャラクタ201が移動用アイテムを使用可能な状態となる。アイテム指定指示を行うための具体的な操作方法は任意である。例えば、ゲームシステム1は、プレイヤキャラクタ201が所有する複数のアイテムのうちから使用可能な状態とするアイテムを上記移動用アイテムに切り替える操作を、アイテム指定指示として受け付けるようにしてもよい。
【0117】
本実施形態においては、アイテム指定指示が行われたことに応じて、ゲームシステム1は、プレイヤキャラクタ201の位置から上を向くように仮想カメラの位置および姿勢を変更する。
図17は、
図16に示す状態においてアイテム指定指示が行われたことに応じて表示されるゲーム画像の一例を示す図である。ここで、
図16に示す状態においては、プレイヤキャラクタ201の上方に天井となる地形オブジェクト212がある。したがって、アイテム指定指示が行われたことに応じて仮想カメラが上を向いた場合には、
図17に示すように、天井となる地形オブジェクト212がディスプレイ12に表示される。
図17に示す例においては、プレイヤキャラクタ201は表示されないものとするが、他の実施形態においては、仮想カメラが上を向いた場合にプレイヤキャラクタ201の一部(例えば、頭)が表示されてもよい。また、仮想カメラは、必ずしも真上を向く必要は無く、プレイヤキャラクタ201の上方にある天井が視野範囲に含まれるような向きに設定されてもよい。
【0118】
なお、上記の仮想カメラの変更は、アイテム指定指示に応じて自動的に(つまり、アイテム指定指示以外のプレイヤの指示が行われることなしに)行われる。これによって、プレイヤは、アイテム指定指示を行った後、プレイヤキャラクタ201の上方に天井があるか否かを容易に確認することができる。
【0119】
なお、本実施形態においては、アイテム指定指示が行われたことに応じて仮想カメラが上を向いた状態において、ゲームシステム1は、仮想カメラの姿勢を変化させる操作をプレイヤから受け付ける。したがって、上記の状態において、プレイヤは、仮想カメラの視線方向を任意の向きに変更することができる。また、別の実施形態においては、アイテム指定指示に応じて仮想カメラが自動的に上を向くことは行わずに、プレイヤが必要に応じて仮想カメラを操作して上を見ることができるようにしてもよい。
【0120】
本実施形態においては、ゲームシステム1は、アイテム指定指示に応じて天井となる地形オブジェクトが表示される場合、移動条件の判定結果を示すマーク310を表示する(
図17参照)。本実施形態においては、マーク310は、天井となる地形オブジェクト212上に表示される。具体的には、マーク310は、プレイヤキャラクタ201の上方の位置、すなわち、上述の判定形状と地形オブジェクト212とが接触する位置に表示される。なお、マーク310は、地形オブジェクト212の表面上に配置されなくてもよく、地形オブジェクト212の表面付近(例えば、表面から少し離れた位置)に配置されてもよい。
【0121】
また、プレイヤキャラクタ201の上方へ所定距離以内に天井となる地形オブジェクトがない状態(つまり、高さ条件が満たされない状態)でアイテム指定指示が行われた場合、マーク310は、プレイヤキャラクタ201の上方の所定位置に配置される。この所定位置は、例えば、プレイヤキャラクタ201から上記所定距離だけ離れた位置である。
【0122】
また、マーク310は、移動条件が満たされる場合と満たされない場合とで異なる表示態様で表示される。本実施形態においては、前者の場合と後者の場合とでマーク310の色が異なる(
図17の(a)および(b)参照。なお、
図17においては、マーク310の色の違いをハッチングの有無で表している。)。
【0123】
上記のように、本実施形態においては、移動条件の判定結果を示す表示は、地形オブジェクトが上記判定形状に接触する部分(例えば、マーク310)が、当該判定結果に応じて異なる表示態様で描画されることによって行われる。これによって、プレイヤは、移動先条件が満たされるか否か(すなわち、通り抜け移動が可能か否か)を容易に確認することができる。なお、上記において「ある部分が、判定結果に応じて異なる表示態様で描画される」とは、一方の判定結果の場合には当該部分にマークが表示され、他方の判定結果の場合には当該部分にマークが表示されないことを含む意味である。
【0124】
なお、本実施形態においては、移動条件の判定結果を示す表示(具体的には、マーク310)は、天井となる地形オブジェクト上に配置された。ここで、移動条件の判定結果を示す表示の位置は、任意である。例えば、他の実施形態においては、移動条件の判定結果を示す表示の位置は、上記判定形状が配置される位置であってもよい。例えば、本実施形態における変形例においては、上述のレイ301~306が、判定結果に応じて異なる表示態様で表示されてもよい。このように、本実施形態または上記変形例においては、地形オブジェクトが判定形状に接触する部分と、判定形状が配置される位置との少なくともいずれかにおいて、移動条件の判定結果を示す表示を行う。これによれば、移動条件の判定対象となる天井の位置と、当該移動条件の判定結果とが関連付けて表示されるので、両者をプレイヤにとってわかりやすく提示することができる。
【0125】
また、他の実施形態においては、移動用アイテムが使用可能となった状態(例えば、
図17に示すゲーム画像が表示される状態)において、ゲームシステム1は、地形オブジェクト211上をプレイヤキャラクタ201に移動させるための操作を受け付けてもよい。これによれば、プレイヤは、プレイヤキャラクタ201を移動させることによって、通り抜け移動が可能となるプレイヤキャラクタ201の位置を探しやすくなる。
【0126】
[2-3-2:通り抜け移動時におけるゲーム画像の生成]
また、移動用アイテムが使用可能となった状態において、ゲームシステム1は、移動用アイテムを使用して通り抜け移動を開始する移動開始指示と、当該状態を解除する解除指示とを受け付ける。プレイヤによって移動開始指示が行われた場合、ゲームシステム1は、移動条件が満たされていることを前提として、プレイヤキャラクタ201が通り抜け移動を行う動作制御処理(すなわち、
図20に示すステップS13における通り抜け移動処理)を開始する。一方、プレイヤによって解除指示が行われた場合、ゲームシステム1は、仮想カメラの位置および姿勢を、アイテム指定指示が行われる前の位置および姿勢に戻す。これによって、
図16に示すような、プレイヤキャラクタ201を含むゲーム空間を示すゲーム画像がディスプレイ12に表示される。
【0127】
プレイヤキャラクタ201が通り抜け移動を行う動作制御処理において、ゲームシステム1は、まず、プレイヤキャラクタ201を上に移動させる。なお、通り抜け移動が行われる際、ゲームシステム1は、プレイヤキャラクタ201の位置から上へ延びる柱状のエフェクト画像を表示してもよく、この柱状のエフェクト画像の内側をプレイヤキャラクタ201が上へ移動していくように制御してもよい。なお、エフェクト画像は、その内側のプレイヤキャラクタが視認可能なように半透明で表示されてもよい。上記のエフェクト画像によれば、プレイヤキャラクタ201が移動する経路をプレイヤにわかりやすく提示することができる。なお、エフェクト画像は、プレイヤキャラクタ201が地形オブジェクトの外側に位置する場合にのみ表示されてもよいし、プレイヤキャラクタ201が地形オブジェクトの外側に位置する場合と内側に位置する場合との両方の場合に表示されてもよい。
【0128】
プレイヤキャラクタ201を上に移動させていくと、プレイヤキャラクタ201は天井となる地形オブジェクト212に接触することとなる。上記動作制御処理においては、接触が生じてもプレイヤキャラクタ201の上への移動が継続され、その結果、プレイヤキャラクタ201は地形オブジェクト212の内部を上へ移動していく。なお、通常の処理中(すなわち、上記動作制御処理以外の処理中)においては、プレイヤキャラクタ201と地形オブジェクト212との間で当たり判定処理が行われ、プレイヤキャラクタ201が地形オブジェクト212内に入ることはない。
【0129】
図18は、地形オブジェクトの内部をプレイヤキャラクタが移動する場合におけるプレイヤキャラクタおよび仮想カメラの配置の一例を示す図である。本実施形態においては、通り抜け移動中において、ゲームシステム1は、プレイヤキャラクタ201が視野範囲内に含まれる位置および姿勢となるように仮想カメラ311を配置する。例えば、仮想カメラ311は、上下方向に関してプレイヤキャラクタ201と同じ位置に、水平方向を向くように配置される(
図18参照)。このとき、仮想カメラ311は、プレイヤキャラクタ201から所定距離だけ離れた位置に配置される。なお、通り抜け移動中においてプレイヤキャラクタ201は上に移動するので、仮想カメラ311もプレイヤキャラクタ201の移動に合わせて上に移動する。
【0130】
ここで、通り抜け移動中において、仮想カメラ311が地形オブジェクト212中に配置される場合もあり得る(
図18に示す(a)参照)。この場合、ゲームシステム1は、仮想カメラ311から見てプレイヤキャラクタ201の後側に、背景オブジェクト312を配置する。本実施形態においては、背景オブジェクト312は、仮想カメラ311の視野範囲を覆うことが可能な大きさであり、仮想カメラ311の視野範囲を覆う位置に(すなわち、背景オブジェクト312の後方の地形オブジェクト212が表示されないように)配置される((
図18に示す(a)参照)。したがって、上記の場合、プレイヤキャラクタ201とその背景にある背景オブジェクト312がディスプレイ12に表示され、地形オブジェクト212(厳密には、地形オブジェクト212の表面のポリゴン)は表示されない。なお、背景オブジェクト312に描画されるテクスチャは任意であるが、例えば、プレイヤキャラクタ201が地中を移動する様子を表現する画像や、あるいは、プレイヤキャラクタ201がワープして移動する様子を表現する画像が背景オブジェクト312に描画される。
【0131】
上記のように、本実施形態においては、通り抜け移動中において、仮想カメラが地形オブジェクト中に配置される場合には、背景オブジェクトが表示される。これによって、地形オブジェクトのポリゴンの裏側から(換言すれば、内側から)の視点で表示処理が行われる場合の不都合を防止することができる。たとえば、ポリゴンの裏側は描画されない処理とされることが多いが、その場合、地形オブジェクトが部分的に表示されたりされなかったりして見た目が崩れるという問題がある。また、ポリゴンの裏側を描画する場合であっても、オブジェクトの裏側は通常は表示されない前提のものであるのでやはり不自然な見た目となる。これに対して、背景オブジェクトに替えることで見た目の不自然さを軽減することができる。
【0132】
一方、通り抜け移動中において、仮想カメラ311が地形オブジェクト212外に配置される場合には、上記背景オブジェクト312は配置されない(
図18に示す(b)参照)。この場合、地形オブジェクト212を外側から見たゲーム空間を示すゲーム画像(例えば、地形オブジェクト212の側壁を示すゲーム画像)が表示される。なお、この場合にはプレイヤキャラクタ201が表示されない。ただし、他の実施形態においては、上記の場合において、ゲームシステム1は、地形オブジェクト212中のプレイヤキャラクタ201を半透明で重ね合わせて表示するようにしてもよいし、地形オブジェクト212を半透明で表示するようにしてプレイヤキャラクタ201が見えるようにしてもよい。また、他の実施形態においては、仮想カメラ311が地形オブジェクト212外に配置される場合も、地形オブジェクト212内に配置される場合と同様の表示となるように背景オブジェクトが配置されてもよい。このとき、ゲームシステム1は、仮想カメラ311とプレイヤキャラクタ201との間にある地形オブジェクト212の表面(具体的には、地形オブジェクト212のポリゴン)を表示しないようにする。
【0133】
なお、通り抜け移動中においてプレイヤキャラクタ201が地形オブジェクト中を通り抜ける様子を表すゲーム画像の内容は任意であり、他の実施形態においては、本実施形態とは異なる方法によってゲーム画像が生成されて表示されてもよい。
【0134】
上記のように、本実施形態においては、ゲームシステム1は、プレイヤキャラクタ201を現在位置から上方へ移動させ、さらに、天井から地形オブジェクトを通り抜けて当該プレイヤキャラクタ201を移動させることによって、当該プレイヤキャラクタ201を移動先まで移動させる。これによって、プレイヤキャラクタ201が現在位置から地形オブジェクト上の移動先まで移動する際に地形オブジェクトを通り抜けることをプレイヤに直感的に認識させることができる。
【0135】
なお、他の実施形態においては、通り抜け移動によってプレイヤキャラクタ201を移動先まで移動させる際に、ゲームシステム1は、地形オブジェクト中を通り抜けるアニメーションを表示しなくてもよい。例えば、ゲームシステム1は、プレイヤキャラクタ201が移動前の位置から移動先へとワープする表示を行うようにしてもよい。
【0136】
また、本実施形態においては、ゲームシステム1は、通り抜け移動によってプレイヤキャラクタ201を移動先まで移動させる場合において、 当該プレイヤキャラクタ201に関して、地形オブジェクト内を移動しているときと、当該地形オブジェクト外を移動しているときとで異なるアニメーションの表示を行う。例えば、ゲームシステム1は、プレイヤキャラクタ201が地形オブジェクト内を移動しているときには、背景オブジェクトを含むアニメーションや、地形オブジェクトの側壁を示すアニメーションを表示する。これによって、プレイヤキャラクタ201が地形オブジェクト内を移動していることをプレイヤにわかりやすく認識させることができる。
【0137】
また、本実施形態においては、ゲームシステム1は、通り抜け移動によってプレイヤキャラクタ201を移動先まで移動させる場合における当該プレイヤキャラクタ201の移動を表すアニメーションとして、地形オブジェクト上をプレイヤキャラクタ201が移動する場合のアニメーション(例えば、歩いたり走ったりする動作を示すアニメーション)とは異なるアニメーションを生成する。例えば、ゲームシステム1は、通り抜け移動中のプレイヤキャラクタ201に、飛び上がるような体勢や、上向きに泳ぐような体勢をとらせる。これによって、地形オブジェクト上をプレイヤキャラクタ201が移動する通常の移動とは異なる移動(すなわち、通り抜け移動)が行われていることをプレイヤにわかりやすく認識させることができる。
【0138】
なお、通り抜け移動における移動開始位置から移動先までの距離が所定の基準より長い場合、ゲームシステム1は、プレイヤキャラクタ201の移動速度を増加させるようにしてもよい。これによれば、通り抜け移動に要する時間が長くなる場合に当該時間を短縮することができる。
【0139】
通り抜け移動によってプレイヤキャラクタ201が移動先に到達した場合、ゲームシステム1は、プレイヤキャラクタ201が通り抜け移動を行う動作制御処理を終了する。なお、本実施形態においては、通り抜け移動が終了すると、プレイヤキャラクタ201が上記移動用アイテムを使用可能となる状態が自動的に(つまり、プレイヤによる操作無しに)解除される。これによって、プレイヤは、上述の解除指示を行うことなくプレイヤキャラクタ201に対する移動操作等を行うことができる。なお、他の実施形態においては、通り抜け移動が終了した場合、ゲームシステム1は、プレイヤキャラクタ201が上記移動用アイテムを使用可能となる状態を維持するようにしてもよい。
【0140】
なお、本実施形態においては、ゲームシステム1は、通り抜け移動が行われている間は、プレイヤキャラクタ201に対するプレイヤの操作を受け付けないものとする。これによって、アイテム指定指示が行われた時点で特定された移動先とは異なる位置にプレイヤキャラクタ201が移動されることを防止することができる。なお、他の実施形態においては、ゲームシステム1は、通り抜け移動が行われている間においても、プレイヤキャラクタ201に対するプレイヤの操作を受け付けるようにしてもよい。また、ゲームシステム1は、通り抜け移動が行われている間においては、プレイヤキャラクタ201を移動させる操作以外の操作(例えば、他のアイテムを使用する操作等)を受け付けるようにしてもよい。
【0141】
以上のように、本実施形態においては、ゲームシステム1は、プレイヤの操作入力による第1の指示(例えば、アイテム指定指示)に応じて、プレイヤキャラクタの上方の所定距離以内に天井となる地形オブジェクトがあり、かつ、当該プレイヤキャラクタの上方であって当該天井のさらに上方に当該地形オブジェクト上の移動先があることという判定条件(例えば、移動条件)が満たされるか否かの判定と、判定結果を示す表示(例えば、マーク310の表示)とを行う。そして、ゲームシステム1は、上記判定条件が満たされる場合においてプレイヤの操作入力による第2の指示(例えば、移動開始指示)があったことに応じて、プレイヤキャラクタを移動先まで移動させる。これによれば、プレイヤは、通り抜け移動が可能であるか否かを確認した後で、通り抜け移動を実際に行う第2の指示を行うことができる。したがって、通り抜け移動が可能でない場合にプレイヤが第2の指示を行ってしまう可能性を低減することができ、通り抜け移動のための操作性を向上することができる。
【0142】
なお、本実施形態においては、プレイヤキャラクタが移動用アイテムを使用することによって通り抜け移動を行うこととしたが、他の実施形態においては、移動用アイテムのような特定のアイテムを使用することは通り抜け移動を行う条件である必要はない。すなわち、他の実施形態においては、特定のアイテムを有しているか否かに関わらず、プレイヤキャラクタは通り抜け移動が可能であってもよい。
【0143】
[3.ゲームシステムにおける処理の具体例]
次に、
図19~
図21を参照して、ゲームシステム1における情報処理の具体例について説明する。
【0144】
図19は、ゲームシステム1における情報処理に用いられる各種データの一例を示す図である。
図19に示す各種データは、本体装置2がアクセス可能な記憶媒体(例えば、フラッシュメモリ84、DRAM85、および/または、スロット23に装着されたメモリカード等)に記憶される。
【0145】
図19に示すように、ゲームシステム1は、ゲームプログラムを記憶する。ゲームプログラムは、本実施形態におけるゲーム(具体的には、
図20に示すゲーム制御処理)を実行するためのゲームプログラムである。また、ゲームシステム1は、操作データ、カメラデータ、キャラクタデータ、移動先候補データ、および、移動先データを記憶する。
【0146】
操作データは、上述のように各コントローラ3および4から本体装置2へ送信されて本体装置2において記憶される。本実施形態においては、操作データは、上述の各入力部に対する入力を示す入力データを含む。カメラデータは、仮想のゲーム空間において設定される仮想カメラに関する情報(例えば、仮想カメラの位置および姿勢等を示す情報)を示す。キャラクタデータは、上記ゲーム空間に配置されるプレイヤキャラクタに関する情報(例えば、プレイヤキャラクタの位置、姿勢、状態等に関する情報)を示す。移動先候補データは、上記ゲーム空間において移動先の候補を示し、具体的には当該候補の位置(例えば、座標)を示す。移動先データは、上記ゲーム空間における移動先を示し、具体的には当該移動先の位置(例えば、座標)を示す。
【0147】
図20は、ゲームシステム1によって実行されるゲーム制御処理の流れの一例を示すフローチャートである。
図20に示すゲーム制御処理は、上記ゲームプログラムの実行中において、プレイヤキャラクタ201がゲーム空間に配置された状態となったことに応じて開始される。なお、図示しないが、ゲーム制御処理は、ユーザの指示によりメニュー画面が表示される場合、あるいは、ユーザの指示によりゲームを終了する場合に終了される。
【0148】
なお、本実施形態では、本体装置2のプロセッサ81が、ゲームシステム1に記憶されている上記ゲームプログラムを実行することによって、
図20に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、プロセッサ81とは別のプロセッサ(例えば、専用回路等)が実行するようにしてもよい。また、ゲームシステム1が他の情報処理装置(例えば、サーバ)と通信可能である場合、
図20および
図21に示す各ステップの処理の一部は、他の情報処理装置において実行されてもよい。また、
図20および
図21に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。
【0149】
また、プロセッサ81は、
図20および
図21に示す各ステップの処理を、メモリ(例えば、DRAM85)を用いて実行する。すなわち、プロセッサ81は、各処理ステップによって得られる情報(換言すれば、データ)をメモリに記憶し、それ以降の処理ステップにおいて当該情報を用いる場合には、メモリから当該情報を読み出して利用する。
【0150】
図20に示すステップS1において、プロセッサ81は、プレイヤによって上述のアイテム指定指示が行われたか否かを判定する。本実施形態においては、プロセッサ81は、プレイヤによる各種指示(例えば、アイテム指定指示、解除指示、および、移動開始指示)が行われたか否かを、各コントローラ3または4から取得された操作データに基づいて判定する。ここで、プロセッサ81は、コントローラ通信部83および/または各端子17および21を介して各コントローラから受信される操作データを適宜のタイミングで取得してメモリに記憶する。プロセッサ81は、取得された操作データに基づいて上記の判定を行う。ステップS1の判定結果が否定である場合、ステップS2の処理が実行される。一方、ステップS1の判定結果が肯定である場合、ステップS3の処理が実行される。
【0151】
ステップS2において、プロセッサ81は、プレイヤキャラクタが地形オブジェクト上を移動するための制御処理を実行する。例えば、プロセッサ81は、コントローラに対する方向入力(例えば、アナログスティック32に対する方向入力)に応じて、プレイヤキャラクタが地形オブジェクト上において移動する動作(例えば、歩いたり走ったりする動作)を行わせる。このとき、プロセッサ81は、プレイヤキャラクタの動作の制御後の内容を示すように、メモリに記憶されているキャラクタデータを更新する。さらに、ステップS2において、プロセッサ81は、上記制御処理後のゲーム空間を示すゲーム画像を生成し、ディスプレイ12に表示する。なお、ステップS2の処理は、従来におけるゲーム制御処理と同様であってもよい。また、ゲームシステム1は、プレイヤキャラクタの移動を制御する処理を実行することに加えて、仮想カメラ、および、敵キャラクタ等の他のオブジェクトの移動を制御する処理を実行してもよい。ステップS2の次に、ステップS1の処理が再度実行される。
【0152】
なお、ステップS1およびS2の処理ループは、所定時間(例えば1フレーム時間)に1回の割合で実行される。つまり、本実施形態においては、プロセッサ81は、所定時間に1回の割合でアイテム指定指示が行われたか否かを判定する。
【0153】
ステップS3において、プロセッサ81は、プレイヤキャラクタの位置から上を向くように仮想カメラの位置および姿勢を設定する。具体的には、プロセッサ81は、設定された位置および姿勢を示す内容となるように、メモリに記憶されているカメラデータを更新する。ステップS3の処理によって、後述するステップS7またはS10においては、プレイヤキャラクタの上方にある天井を示すゲーム画像(
図17参照)が表示される。ステップS3の次に、ステップS4の処理が実行される。
【0154】
ステップS4において、プロセッサ81は、プレイヤキャラクタの現在位置に関して、上述の天井条件が満たされるか否かを判定する。この判定は、上記“[2-2-1:天井条件]”で述べた方法に従って行われる。ステップS4の判定結果が肯定である場合、ステップS5の処理が実行される。一方、ステップS4の判定結果が否定である場合、後述するステップS7の処理が実行される。
【0155】
ステップS5において、プロセッサ81は、移動先候補があるか否かを判定する。ここで、移動先候補は、プレイヤキャラクタの上方であって、天井となる地形オブジェクトのうちで上を向く場所のうちで、後述するステップS6において移動先条件が満たされないと判定されたものを除いて、プレイヤキャラクタに最も近い位置にある場所である。なお、このような移動先候補がある場合、プロセッサ81は、当該場所を移動先候補と設定する。すなわち、プロセッサ81は、当該場所の位置を示すデータを移動先候補データとしてメモリに記憶する。ステップS5の判定結果が肯定である場合、ステップS6の処理が実行される。一方、ステップS5の判定結果が否定である場合、後述するステップS7の処理が実行される。
【0156】
ステップS6において、プロセッサ81は、ステップS5において設定された移動先候補が上述の移動先条件を満たすか否かを判定する。この判定は、上記“[2-2-2:移動先条件]”で述べた方法に従って行われる。ステップS6の判定結果が肯定である場合、ステップS7の処理が実行される。一方、ステップS6の判定結果が否定である場合、ステップS5の処理が再度実行される。したがって、本実施形態においては、移動先候補が移動先条件を満たすと判定されるか、または、全ての移動先候補について移動先条件を満たさないと判定されるまで、ステップS5およびS6の処理ループが繰り返される。
【0157】
ステップS7において、プロセッサ81は、通り抜け移動が不可能であることを示す表示態様でゲーム画像をディスプレイ12に表示する。このとき、プロセッサ81は、ステップS3の処理によって設定された仮想カメラに基づいてゲーム画像を生成する。具体的には、プロセッサ81は、仮想カメラの位置から、仮想カメラの姿勢に応じた向きに見たときのゲーム空間を表すゲーム画像を生成する。このとき、プロセッサ81は、通り抜け移動が不可能であることを示す表示態様のマークを上記ゲーム画像に含める(
図17の(b)参照)。以上のように生成されたゲーム画像がディスプレイ12に表示される。ステップS7の次に、ステップS8の処理が実行される。
【0158】
ステップS8において、プロセッサ81は、プレイヤによって上述の解除指示が行われたか否かを判定する。ステップS8の判定結果が肯定である場合、ステップS1の処理が再度実行される。一方、ステップS8の判定結果が否定である場合、ステップS8の処理が再度実行される。つまり、本実施形態においては、ステップS7においてゲーム画像が表示された後、解除指示が行われるまでプロセッサ81は待機し、解除指示が行われた場合にステップS1の処理が再度実行される。
【0159】
一方、ステップS9において、プロセッサ81は、移動先条件を満たすと判定された移動先候補を、通り抜け移動における移動先に決定する。すなわち、プロセッサ81は、メモリに記憶されている移動先データの内容を、移動先候補データとして記憶されている内容に更新する。ステップS9の次に、ステップS10の処理が実行される。
【0160】
ステップS10において、プロセッサ81は、通り抜け移動が可能であることを示す表示態様でゲーム画像をディスプレイ12に表示する。このとき、プロセッサ81は、上記ステップS7の処理と同様にして、仮想カメラに基づいてゲーム画像を生成する。また、ステップS10においては、プロセッサ81は、通り抜け移動が可能であることを示す表示態様のマークを上記ゲーム画像に含める(
図17の(a)参照)。以上のように生成されたゲーム画像がディスプレイ12に表示される。ステップS10の次に、ステップS11の処理が実行される。
【0161】
ステップS11において、プロセッサ81は、プレイヤによって上述の解除指示が行われたか否かを判定する。ステップS11の判定結果が肯定である場合、ステップS1の処理が再度実行される。つまり、この場合、プレイヤキャラクタによる通り抜け移動は行われず、ゲームの状態は、アイテム指定指示が行われる前の状態に戻る。一方、ステップS11の判定結果が否定である場合、ステップS12の処理が実行される。
【0162】
ステップS12において、プロセッサ81は、プレイヤによって上述の移動開始指示が行われたか否かを判定する。ステップS12の判定結果が肯定である場合、ステップS13の処理が実行される。一方、ステップS12の判定結果が否定である場合、ステップS11の処理が再度実行される。つまり、ステップS10の処理の後、プロセッサ81は、解除指示または移動開始指示が行われるまで待機する。
【0163】
ステップS13において、プロセッサ81は、通り抜け移動処理を実行する。通り抜け移動処理は、プレイヤキャラクタに通り抜け移動の動作を行わせるための動作制御処理である。通り抜け移動処理の詳細については後述する。通り抜け移動処理が終了すると、ステップS1の処理が再度実行される。
【0164】
図21は、
図20に示すステップS13の通り抜け移動処理の詳細な流れの一例を示すサブフローチャートである。通り抜け移動処理においては、まずステップS21において、プロセッサ81は、プレイヤキャラクタを上に向かって移動させる。具体的には、プロセッサ81は、メモリに記憶されているキャラクタデータを、現在の位置から上方向へ移動させた位置を示すように更新する。なお、本実施形態における通り抜け移動処理においては、ステップS21~S26の一連の処理からなる処理ループは、所定時間(例えば1フレーム時間)に1回の割合で繰り返し実行される。したがって、1回のステップS21の処理においては、上記所定時間の間における移動量だけプレイヤキャラクタが移動される。ステップS21の次に、ステップS22の処理が実行される。
【0165】
ステップS22において、プロセッサ81は、プレイヤキャラクタの位置に応じて仮想カメラを配置する。具体的には、プロセッサ81は、ステップS21の処理による移動後のプレイヤキャラクタの位置に基づいて、プレイヤキャラクタが視野範囲内に含まれる位置および姿勢となるように仮想カメラを配置する。このとき、プロセッサ81は、メモリに記憶されているカメラデータを、上記による配置後の位置を示すように更新する。なお、本実施形態においては、ステップS21の処理によってプレイヤキャラクタが上へ移動するので、仮想カメラもプレイヤキャラクタに応じて上へ移動することとなる。ステップS22の次に、ステップS23の処理が実行される。
【0166】
ステップS23において、プロセッサ81は、ステップS22の処理で配置された仮想カメラの位置が地形オブジェクトの内部の位置であるか否かを判定する。この判定は、メモリに記憶されているカメラデータと、ゲームプログラムに基づいて生成されたゲーム空間の構成を示すデータ(このデータは、地形オブジェクトの位置を示すデータを含む)とに基づいて行われる。ステップS23の判定結果が肯定である場合、ステップS24の処理が実行される。一方、ステップS23の判定結果が否定である場合、ステップS24の処理がスキップされてステップS25の処理が実行される。
【0167】
ステップS24において、プロセッサ81は、仮想カメラから見てプレイヤキャラクタの後側に背景オブジェクトを配置する(
図18(a)参照)。具体的には、プロセッサ81は、上記“[2-3-2:通り抜け移動時におけるゲーム画像の生成]”で述べた方法に従って地形オブジェクトの内部に背景オブジェクトを配置する。ステップS24の次に、ステップS25の処理が実行される。
【0168】
ステップS25において、プロセッサ81は、プレイヤキャラクタが通り抜け移動を行う様子を示すゲーム画像をディスプレイ12に表示する。上述のように、ステップS21~S26の一連の処理からなる処理ループは、所定時間(例えば1フレーム時間)に1回の割合で繰り返し実行されるので、ステップS25の処理も当該所定時間に1回の割合で実行される。したがって、上記処理ループが繰り返し実行されることによって、プレイヤキャラクタが通り抜け移動を行う様子を示すアニメーションが表示されることとなる。ステップS25の次に、ステップS26の処理が実行される。
【0169】
ステップS26において、プロセッサ81は、プレイヤキャラクタが移動先に到達したか否かを判定する。この判定は、メモリに記憶されているキャラクタデータが示すプレイヤキャラクタの位置と、移動先データが示す位置とに基づいて行うことができる。ステップS26の判定結果が肯定である場合、プロセッサ81は通り抜け移動処理を終了する。一方、ステップS26の判定結果が否定である場合、ステップS21の処理が再度実行される。以降、プレイヤキャラクタが移動先に到達したと判定されるまで、ステップS21~S26の処理ループが繰り返し実行される。
【0170】
[4.本実施形態の作用効果および変形例]
以上のように、上記実施形態においては、ゲームプログラムは、情報処理装置(例えば、本体装置2)のコンピュータ(例えば、プロセッサ81)に下記の処理を実行させる。
・プレイヤキャラクタと地形オブジェクトとが少なくとも含まれる仮想空間内において、プレイヤの操作入力に基づいて地形オブジェクト上においてプレイヤキャラクタを移動させる制御を少なくとも含む通常移動制御
・少なくともプレイヤキャラクタの上方に天井となる地形オブジェクトがあり、かつ、当該プレイヤキャラクタの上方であって当該天井のさらに上方に、当該プレイヤキャラクタを配置することが可能な当該地形オブジェクト上の移動先があることを満たす場合に、前記プレイヤの操作入力(例えば、移動開始指示)に基づいて、当該プレイヤキャラクタを当該移動先まで移動させる特殊移動制御
【0171】
上記によれば、プレイヤキャラクタの上方に地形オブジェクトがある場合において、プレイヤによる操作入力に応じて当該地形オブジェクトの上方に当該プレイヤキャラクタを移動させることができる。このように、本実施形態によれば、ゲーム空間におけるプレイヤキャラクタの新たな移動方法を提供することができる。
【0172】
(移動条件に関する変形例)
上記実施形態においては、移動先に関してはプレイヤキャラクタの現在位置からの距離(具体的には、高さ)に関する条件は設定されなかった。ここで、他の実施形態においては、ゲームシステム1は、移動先に関して、プレイヤキャラクタの位置からの距離に関する条件を設定するようにしてもよい。具体的には、移動先条件は、「プレイヤキャラクタの位置から移動先までの距離が所定距離以内であること」という高さ条件を含んでもよい。なお、この所定距離は、天井条件に含まれる高さ条件の閾値よりも大きい値に設定される。これによれば、プレイヤキャラクタが通り抜け移動によって遙か上空の場所に移動できてしまう可能性をより低減することができる。
【0173】
また、他の実施形態においては、移動条件に含まれる天井条件として、プレイヤキャラクタから天井までの高さに関する上記高さ条件を設定しないようにしてもよい。すなわち、ゲームにおいて、上述の上空の場所のような除外したい場合が無い場合には、高さの制限を設けなくともよい。または、高さ条件における制限高さを無限または十分な高さと設定することで実質的に制限なしとしてもよい。
【0174】
(通り抜け移動が行われる際の表示に関する変形例)
他の実施形態においては、ゲームシステム1は、プレイヤが移動開始指示を行う前に、移動先の周囲のゲーム空間を示すゲーム画像を表示するようにしてもよい。これによれば、プレイヤは、プレイヤキャラクタに通り抜け移動を行わせる前に移動先の状況を確認することができる。例えば、ゲームシステム1は、アイテム指定指示に応じて天井を示すゲーム画像(
図17参照)が表示されている状態において、移動先のゲーム画像を表示する旨の指示をプレイヤから受け付けてもよい。この指示が行われた場合、ゲームシステム1は、移動条件が満たされることを条件として、移動先のゲーム画像を表示するようにしてもよい。
【0175】
なお、他の実施形態において、情報処理システムは、上記実施形態における構成の一部を備えていなくてもよいし、上記実施形態において実行される処理の一部を実行しなくてもよい。例えば、情報処理システムは、上記実施形態における一部の特定の効果を奏するためには、当該効果を奏するための構成を備え、当該効果を奏するための処理を実行すればよく、その他の構成を備えていなくてもよいし、その他の処理を実行しなくてもよい。
【産業上の利用可能性】
【0176】
上記実施形態は、プレイヤキャラクタの上方に地形オブジェクトがある場合において当該地形オブジェクトの上方に当該プレイヤキャラクタを移動させること等を目的として、例えばゲームプログラムやゲームシステムとして利用することが可能である。
【符号の説明】
【0177】
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
81 プロセッサ
201 プレイヤキャラクタ
202,203 地形オブジェクト
205 禁止オブジェクト
310 マーク
311 仮想カメラ
312 背景オブジェクト