(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022132553
(43)【公開日】2022-09-08
(54)【発明の名称】情報処理プログラム、情報処理装置、情報処理方法、および情報処理システム
(51)【国際特許分類】
A63F 13/56 20140101AFI20220901BHJP
A63F 13/42 20140101ALI20220901BHJP
A63F 13/573 20140101ALI20220901BHJP
【FI】
A63F13/56
A63F13/42
A63F13/573
【審査請求】有
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022115662
(22)【出願日】2022-07-20
(62)【分割の表示】P 2017101410の分割
【原出願日】2017-05-23
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100115808
【弁理士】
【氏名又は名称】加藤 真司
(74)【代理人】
【識別番号】100113549
【弁理士】
【氏名又は名称】鈴木 守
(74)【代理人】
【識別番号】230121430
【弁護士】
【氏名又は名称】安井 友章
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】田中 航
(57)【要約】
【課題】 プレイヤが操作の区別を意識することなく自然に意図した対象について情報処理をすることができる情報処理装置等を提供する。
【解決手段】 ゲームシステム1は、仮想空間内のプレイヤオブジェクト51の状態を判定するプレイヤオブジェクト状態判定部721と、プレイヤオブジェクト51の状態に基づいて、ノンプレイヤオブジェクトを探索するための探索範囲511を決定する探索範囲決定部722と、ノンプレイヤオブジェクト502が探索範囲511に存在するか否かを判定する対象オブジェクト存在判定部723と、ノンプレイヤオブジェクト502が探索範囲511に存在すると判定された場合に、ノンプレイヤオブジェクト502を帽子投げ処理の対象に設定する対象オブジェクト設定部724とを備えている。
【選択図】
図9
【特許請求の範囲】
【請求項1】
情報処理装置を、
仮想空間内の第1オブジェクトの状態を判定する第1オブジェクト状態判定手段、
第2オブジェクトを探索するための探索範囲を前記第1オブジェクトの状態に基づいて決定する探索範囲決定手段、
前記第2オブジェクトが前記探索範囲に存在するか否かを探索する存在判定手段、および
前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、前記第2オブジェクトを所定の情報処理の対象に設定する対象設定手段、
として機能させ、
前記第1オブジェクト状態判定手段は、前記第1オブジェクトの状態として、前記第1オブジェクトに対する移動入力の大きさ、前記第1オブジェクトの位置変化の大きさ、前記第1オブジェクトに対する向き入力変化の大きさ、又は前記第1オブジェクトの向き変化の大きさの少なくとも一つを判定し、
前記探索範囲決定手段は、前記第1オブジェクト状態判定手段が前記第1オブジェクトの状態として前記第1オブジェクトに対する向き入力変化の大きさを判定した場合に、前記向き入力変化が大きいほど、連続的または離散的に広くなるように前記探索範囲を決定する、情報処理プログラム。
【請求項2】
情報処理装置を、
仮想空間内の第1オブジェクトの状態を判定する第1オブジェクト状態判定手段、
第2オブジェクトを探索するための探索範囲を前記第1オブジェクトの状態に基づいて決定する探索範囲決定手段、
前記第2オブジェクトが前記探索範囲に存在するか否かを探索する存在判定手段、および
前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、前記第2オブジェクトを所定の情報処理の対象に設定する対象設定手段、
として機能させ、
前記第1オブジェクト状態判定手段は、前記第1オブジェクトの状態として、前記第1オブジェクトに対する移動入力の大きさ、前記第1オブジェクトの位置変化の大きさ、前記第1オブジェクトに対する向き入力変化の大きさ、又は前記第1オブジェクトの向き変化の大きさの少なくとも一つを判定し、
前記探索範囲決定手段は、前記第1オブジェクト状態判定手段が前記第1オブジェクトの状態として前記第1オブジェクトの向き変化の大きさを判定した場合に、前記向き変化が大きいほど、連続的または離散的に広くなるように前記探索範囲を決定する、情報処理プログラム。
【請求項3】
情報処理装置を、
仮想空間内の第1オブジェクトの状態を判定する第1オブジェクト状態判定手段、
第2オブジェクトを探索するための探索範囲を前記第1オブジェクトの状態に基づいて決定する探索範囲決定手段、
前記第2オブジェクトが前記探索範囲に存在するか否かを探索する存在判定手段、および
前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、前記第2オブジェクトを所定の情報処理の対象に設定する対象設定手段、
として機能させ、
前記第1オブジェクト状態判定手段は、前記第1オブジェクトの状態として、前記第1オブジェクトに対する移動入力の大きさ、前記第1オブジェクトの位置変化の大きさ、前記第1オブジェクトに対する向き入力変化の大きさ、又は前記第1オブジェクトの向き変化の大きさの少なくとも一つを判定し、
前記情報処理装置を、さらに、前記所定の情報処理として、前記第1オブジェクトから前記対象に向けて第3オブジェクトを発射する情報処理を行う情報処理手段として機能させ、
前記探索範囲決定手段は、発射された前記第3オブジェクトの軌道を変更するための入力があったと判定された場合に、発射された前記第3オブジェクトを基準として、前記変更するための入力に応じた前記探索範囲を決定する、情報処理プログラム。
【請求項4】
情報処理装置を、
仮想空間内の第1オブジェクトの状態を判定する第1オブジェクト状態判定手段、
第2オブジェクトを探索するための探索範囲を前記第1オブジェクトの状態に基づいて決定する探索範囲決定手段、
前記第2オブジェクトが前記探索範囲に存在するか否かを探索する存在判定手段、および
前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、前記第2オブジェクトを所定の情報処理の対象に設定する対象設定手段、
として機能させ、
前記第1オブジェクト状態判定手段は、前記第1オブジェクトの状態として、前記第1オブジェクトに対する移動入力の大きさ、前記第1オブジェクトの位置変化の大きさ、前記第1オブジェクトに対する向き入力変化の大きさ、又は前記第1オブジェクトの向き変化の大きさの少なくとも一つを判定し、
前記情報処理装置を、さらに、前記所定の情報処理として、前記第1オブジェクトから前記対象に向けて第3オブジェクトを発射する情報処理を行う情報処理手段として機能させ、
前記第1オブジェクトは、プレイヤによって操作されるプレイヤオブジェクトであり、
前記情報処理手段は、前記所定の情報処理の後に、プレイヤオブジェクトとなるオブジェクトを、前記第1オブジェクトから、前記対象となった前記第2オブジェクトに変更する、情報処理プログラム。
【請求項5】
情報処理装置を、
仮想空間内の第1オブジェクトの状態を判定する第1オブジェクト状態判定手段、
第2オブジェクトを探索するための探索範囲を前記第1オブジェクトの状態に基づいて決定する探索範囲決定手段、
前記第2オブジェクトが前記探索範囲に存在するか否かを探索する存在判定手段、
前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、前記第2オブジェクトを所定の情報処理の対象に設定する対象設定手段、および
前記所定の情報処理として、前記第1オブジェクトから前記対象に向けて第3オブジェクトを発射する情報処理を行う情報処理手段、
として機能させ、
前記探索範囲決定手段は、発射された前記第3オブジェクトの軌道を変更するための入力があったと判定された場合に、発射された前記第3オブジェクトを基準として、前記変更するための入力に応じた前記探索範囲を決定する、情報処理プログラム。
【請求項6】
情報処理装置を、
仮想空間内の第1オブジェクトの状態を判定する第1オブジェクト状態判定手段、
第2オブジェクトを探索するための探索範囲を前記第1オブジェクトの状態に基づいて決定する探索範囲決定手段、
前記第2オブジェクトが前記探索範囲に存在するか否かを探索する存在判定手段、
前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、前記第2オブジェクトを所定の情報処理の対象に設定する対象設定手段、および
前記所定の情報処理として、前記第1オブジェクトから前記対象に向けて第3オブジェクトを発射する情報処理を行う情報処理手段、
として機能させ、
前記第1オブジェクトは、プレイヤによって操作されるプレイヤオブジェクトであり、
前記情報処理手段は、前記所定の情報処理の後に、プレイヤオブジェクトとなるオブジェクトを、前記第1オブジェクトから、前記対象となった前記第2オブジェクトに変更する、情報処理プログラム。
【請求項7】
仮想空間内の第1オブジェクトの状態を判定する第1オブジェクト状態判定手段、
第2オブジェクトを探索するための探索範囲を前記第1オブジェクトの状態に基づいて決定する探索範囲決定手段、
前記第2オブジェクトが前記探索範囲に存在するか否かを探索する存在判定手段、
前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、前記第2オブジェクトを所定の情報処理の対象に設定する対象設定手段、および
前記所定の情報処理として、前記第1オブジェクトから前記対象に向けて第3オブジェクトを発射する情報処理を行う情報処理手段、
を備え、
前記探索範囲決定手段は、発射された前記第3オブジェクトの軌道を変更するための入力があったと判定された場合に、発射された前記第3オブジェクトを基準として、前記変更するための入力に応じた前記探索範囲を決定する、情報処理装置。
【請求項8】
仮想空間内の第1オブジェクトの状態を判定する第1オブジェクト状態判定手段、
第2オブジェクトを探索するための探索範囲を前記第1オブジェクトの状態に基づいて決定する探索範囲決定手段、
前記第2オブジェクトが前記探索範囲に存在するか否かを探索する存在判定手段、
前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、前記第2オブジェクトを所定の情報処理の対象に設定する対象設定手段、および
前記所定の情報処理として、前記第1オブジェクトから前記対象に向けて第3オブジェクトを発射する情報処理を行う情報処理手段、
を備え、
前記第1オブジェクトは、プレイヤによって操作されるプレイヤオブジェクトであり、
前記情報処理手段は、前記所定の情報処理の後に、プレイヤオブジェクトとなるオブジェクトを、前記第1オブジェクトから、前記対象となった前記第2オブジェクトに変更する、情報処理装置。
【請求項9】
仮想空間内の第1オブジェクトの状態を判定する第1オブジェクト状態判定ステップ、
第2オブジェクトを探索するための探索範囲を前記第1オブジェクトの状態に基づいて決定する探索範囲決定ステップ、
前記第2オブジェクトが前記探索範囲に存在するか否かを探索する存在判定ステップ、
前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、前記第2オブジェクトを所定の情報処理の対象に設定する対象設定ステップ、および
前記所定の情報処理として、前記第1オブジェクトから前記対象に向けて第3オブジェクトを発射する情報処理を行う情報処理ステップ、
を含み、
前記探索範囲決定ステップは、発射された前記第3オブジェクトの軌道を変更するための入力があったと判定された場合に、発射された前記第3オブジェクトを基準として、前記変更するための入力に応じた前記探索範囲を決定する、情報処理方法。
【請求項10】
仮想空間内の第1オブジェクトの状態を判定する第1オブジェクト状態判定ステップ、
第2オブジェクトを探索するための探索範囲を前記第1オブジェクトの状態に基づいて決定する探索範囲決定ステップ、
前記第2オブジェクトが前記探索範囲に存在するか否かを探索する存在判定ステップ、
前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、前記第2オブジェクトを所定の情報処理の対象に設定する対象設定ステップ、および
前記所定の情報処理として、前記第1オブジェクトから前記対象に向けて第3オブジェクトを発射する情報処理を行う情報処理ステップ、
を含み、
前記第1オブジェクトは、プレイヤによって操作されるプレイヤオブジェクトであり、
前記情報処理ステップは、前記所定の情報処理の後に、プレイヤオブジェクトとなるオブジェクトを、前記第1オブジェクトから、前記対象となった前記第2オブジェクトに変更する、情報処理方法。
【請求項11】
仮想空間内の第1オブジェクトの状態を判定する第1オブジェクト状態判定手段、
第2オブジェクトを探索するための探索範囲を前記第1オブジェクトの状態に基づいて決定する探索範囲決定手段、
前記第2オブジェクトが前記探索範囲に存在するか否かを探索する存在判定手段、
前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、前記第2オブジェクトを所定の情報処理の対象に設定する対象設定手段、および
前記所定の情報処理として、前記第1オブジェクトから前記対象に向けて第3オブジェクトを発射する情報処理を行う情報処理手段、
を備え、
前記探索範囲決定手段は、発射された前記第3オブジェクトの軌道を変更するための入力があったと判定された場合に、発射された前記第3オブジェクトを基準として、前記変更するための入力に応じた前記探索範囲を決定する、情報処理システム。
【請求項12】
仮想空間内の第1オブジェクトの状態を判定する第1オブジェクト状態判定手段、
第2オブジェクトを探索するための探索範囲を前記第1オブジェクトの状態に基づいて決定する探索範囲決定手段、
前記第2オブジェクトが前記探索範囲に存在するか否かを探索する存在判定手段、
前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、前記第2オブジェクトを所定の情報処理の対象に設定する対象設定手段、および
前記所定の情報処理として、前記第1オブジェクトから前記対象に向けて第3オブジェクトを発射する情報処理を行う情報処理手段、
として機能させ、
前記第1オブジェクトは、プレイヤによって操作されるプレイヤオブジェクトであり、
前記情報処理手段は、前記所定の情報処理の後に、プレイヤオブジェクトとなるオブジェクトを、前記第1オブジェクトから、前記対象となった前記第2オブジェクトに変更する、情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間のオブジェクトについて情報処理を行う情報処理プログラム、情報処理装置、情報処理方法、および情報処理システムに関するものである。
【背景技術】
【0002】
仮想空間を提供するとともに、プレイヤの操作に応じて仮想空間内に設定されたプレイヤオブジェクトからオブジェクトを発射する情報処理装置が知られている。この情報処理装置において、プレイヤオブジェクトからノンプレイヤオブジェクトに向けてオブジェクトを発射しようとする場合に、常にプレイヤオブジェクトの正面方向にオブジェクトを発射させることとすると、プレイヤオブジェクトの正面方向をノンプレイヤオブジェクトが存在する方向に向けた状態でオブジェクトを発射しなければならないが、そのようなプレイヤオブジェクトの方向調整は容易ではない。
【0003】
そこで、仮想空間内における所定の探索範囲にノンプレイヤオブジェクトが存在するか否かを判定し、探索範囲内に存在するノンプレイヤオブジェクトを対象としてオブジェクトを発射するという情報処理を行うプレイヤアシスト機能が知られている。例えば、プレイヤオブジェクトとノンプレイヤオブジェクトが存在する仮想空間において、プレイヤオブジェクトを基準とする探索範囲にノンプレイヤオブジェクトが存在する場合に、プレイヤの操作に基づいてプレイヤオブジェクトからノンプレイヤオブジェクトに向けてオブジェクトを発射させる情報処理装置が知られている。
【0004】
このような情報処理装置の例として、特許文献1では、サッカーゲームを実行する情報処理が開示されている。特許文献1のサッカーゲームでは、ボールオブジェクトを保持しているオブジェクトをプレイヤによって操作されるプレイヤオブジェクトとして、味方オブジェクトがプレイヤオブジェクトの正面方向を中心とする所定角度範囲内にいる場合に、プレイヤのボールパス操作の入力に応じてプレイヤオブジェクトから当該味方オブジェクトにボールオブジェクトを移動させる。
【0005】
特許文献1の情報処理装置では、ボールパス操作においてボタンを強く押すと、所定角度範囲の角度が狭くなる。これにより、ボールパス操作のボタン押下を強くすると、距離が遠くてもプレイヤオブジェクトの正面方向に近い方向にいる味方プレイヤオブジェクトにボールをパスでき、ボールパス操作のボタン押下を弱くすると、プレイヤオブジェクトの正面方向から比較的ずれている味方プレイヤオブジェクトであっても距離が近い味方プレイヤオブジェクトにボールをパスできる。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1の情報処理装置では、意図した対象にボールオブジェクトを移動させるためには、プレイヤによる操作の区別(強い押下と弱い押下)が必要であった。
【0008】
本発明は、プレイヤが操作の区別を意識することなく自然に情報処理の対象を設定できるプレイヤアシスト機能を実現する情報処理装置等を提供することを目的とする。
【課題を解決するための手段】
【0009】
一態様の情報処理プログラムは、情報処理装置を、仮想空間内の第1オブジェクトの状態を判定する第1オブジェクト状態判定手段、第2オブジェクトを探索するための探索範囲を前記第1オブジェクトの状態に基づいて決定する探索範囲決定手段、前記第2オブジェクトが前記探索範囲に存在するか否かを探索する存在判定手段、および前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、前記第2オブジェクトを所定の情報処理の対象に設定する対象設定手段として機能させる構成を有している。
【0010】
この構成により、第2オブジェクトを探索するための探索範囲を第1オブジェクトの状態に基づいて決定して、情報処理の対象を設定するので、プレイヤが操作の区別を意識することなく自然に情報処理の対象として設定できるプレイヤアシスト機能が提供される。
【0011】
上記の情報処理プログラムにおいて、前記第1オブジェクト状態判定手段は、前記第1オブジェクトの状態として、前記第1オブジェクトに対する移動入力の大きさを判定してよい。
【0012】
この構成により、探索範囲決定手段は、第1オブジェクトに対する移動入力の大きさに基づいて探索範囲を決定することになる。
【0013】
上記の情報処理プログラムにおいて、前記第1オブジェクト状態判定手段は、前記第1オブジェクトの状態として、前記第1オブジェクトの位置変化の大きさを判定してよい。
【0014】
この構成により、探索範囲決定手段は、第1オブジェクトの位置変化の大きさに基づいて探索範囲を決定することになる。
【0015】
上記の情報処理プログラムにおいて、前記探索範囲決定手段は、前記移動入力が小さいほど、連続的または離散的に広くなるように前記探索範囲を決定してよい。
【0016】
この構成により、第1オブジェクトに対する移動入力が大きいほど、連続的または離散的に広くなるように探索範囲が決定される。なお、探索範囲決定手段は、第1オブジェクトに対する移動入力が小さいほど、離散的に広くなるように探索範囲を決定する場合において、第1オブジェクトに対する移動入力がある(あるいは移動入力が所定の閾値以上である)ときに探索範囲を第1の広さとし、第1オブジェクトに対する移動入力がない(あるいは移動入力が所定の閾値より小さい)ときに探索範囲を第1の広さより広い第2の広さとする2段階の制御を行ってよい。
【0017】
上記の情報処理プログラムにおいて、前記探索範囲決定手段は、前記位置変化が小さいほど、連続的または離散的に広くなるように前記探索範囲を決定してよい。
【0018】
この構成により、第1オブジェクトの位置変化が大きいほど、連続的または離散的に広い探索範囲が決定される。なお、探索範囲決定手段は、第1オブジェクトの位置変化が大きいほど、離散的に広くなるように探索範囲を決定する場合において、第1オブジェクトの位置変化がある(あるいは位置変化が所定の閾値以上である)ときに探索範囲を第1の広さとし、第1オブジェクトの位置変化がない(あるいは位置変化が所定の閾値より小さい)ときに探索範囲を第1の広さより広い第2の広さとする2段階の制御を行ってよい。
【0019】
上記の情報処理プログラムにおいて、前記第1オブジェクト状態判定手段は、前記第1オブジェクトの状態として、前記第1オブジェクトに対する向き入力変化の大きさを判定してよい。
【0020】
この構成により、探索範囲決定手段は、第1オブジェクトに対する向き入力変化の大きさに基づいて探索範囲を決定することになる。
【0021】
上記の情報処理プログラムにおいて、前記第1オブジェクト状態判定手段は、前記第1オブジェクトの状態として、前記第1オブジェクトの向き変化の大きさを判定してよい。
【0022】
この構成により、探索範囲決定手段は、第1オブジェクトの向き変化の大きさに基づいて探索範囲を決定することになる。
【0023】
上記の情報処理プログラムにおいて、前記探索範囲決定手段は、前記向き入力変化が大きいほど、連続的または離散的に広い探索範囲を決定してよい。
【0024】
この構成により、第1オブジェクトに対する向き入力変化が大きいほど、連続的または離散的に広くなるように探索範囲が決定される。なお、探索範囲決定手段は、第1オブジェクトに対する向き入力変化が大きいほど、離散的に広くなるように探索範囲を決定する場合において、第1オブジェクトに対する向き入力変化がない(あるいは向き入力変化が所定の閾値以下である)ときに探索範囲を第1の広さとし、第1オブジェクトに対する向き入力変化がある(あるいは向き入力変化が所定の閾値より大きい)ときに探索範囲を第1の広さより広い第2の広さとする2段階の制御を行ってよい。
【0025】
上記の情報処理プログラムにおいて、前記探索範囲決定手段は、前記向き変化が大きいほど、連続的または離散的に広くなるように前記探索範囲を決定してよい。
【0026】
この構成により、第1オブジェクトの向き変化が大きいほど、連続的または離散的に広くなるように探索範囲が決定される。なお、探索範囲決定手段は、第1オブジェクトの向き変化が大きいほど、離散的に広くなるように探索範囲を決定する場合において、第1オブジェクトの向き変化がない(あるいは向き変化が所定の閾値以下である)ときに探索範囲を第1の広さとし、第1オブジェクトの向き変化がある(あるいは向き変化が所定の閾値より大きい)ときに探索範囲を第1の広さより広い第2の広さとする2段階の制御を行ってよい。
【0027】
上記の情報処理プログラムにおいて、前記対象設定手段は、複数の前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、所定の条件を満たす前記第2オブジェクトを前記情報処理の対象としてよい。
【0028】
この構成により、探索範囲に複数の第2オブジェクトが存在する場合に、そのうちの一部のみを情報処理の対象とすることができる。
【0029】
上記の情報処理プログラムにおいて、前記所定の条件は、少なくとも、第1オブジェクトの正面方向に延びる仮想線との距離が近いか否かに基づく条件であってよい。
【0030】
この構成により、第1オブジェクトの向きに基づいて情報処理の対象とする第2オブジェクトを設定できる。
【0031】
上記の情報処理プログラムにおいて、前記探索範囲決定手段は、前記第1オブジェクトの位置および向きを基準として前記探索範囲を決定してよい。
【0032】
この構成により、第1オブジェクトを基準として探索範囲を設定できる。
【0033】
上記の情報処理プログラムにおいて、前記探索範囲は、前記第1オブジェクトの位置を中心とし、前記第1オブジェクトの正面方向を中心角の中心とする扇形であってよく、前記探索範囲決定手段は、前記第1オブジェクトの状態に基づいて、前記扇形の中心角、前記扇形の半径の長さの少なくとも一方を決定することにより前記探索範囲を決定してよい。
【0034】
この構成により、第1オブジェクトの状態に基づいて扇形の探索範囲の大きさが調整される。
【0035】
上記の情報処理プログラムにおいて、前記探索範囲決定手段は、前記所定の情報処理を行うための入力があったと判定された場合に、前記探索範囲を決定してよい。
【0036】
この構成により、情報処理の指示があった場合、即ち第2オブジェクトの探索の必要がある場合に探索範囲が決定される。
【0037】
上記の情報処理プログラムは、前記情報処理装置を、さらに、前記所定の情報処理として、前記第1オブジェクトから前記対象に向けて第3オブジェクトを発射する情報処理を行う情報処理手段として機能させてよい。
【0038】
この構成により、第1オブジェクトの状態に基づいて決定された探索範囲に存在する第2オブジェクトに対して第3オブジェクトを発射できる。
【0039】
上記の情報処理プログラムにおいて、前記情報処理手段は、前記探索範囲に前記第2オブジェクトが存在しないと判定された場合は、前記第1オブジェクトの正面方向に前記第3オブジェクトを発射してよい。
【0040】
この構成により、情報処理の対象となる第2オブジェクトが存在しない場合に、第1オブジェクトの正面方向に第3オブジェクトを発射できる。
【0041】
上記の情報処理プログラムにおいて、前記探索範囲決定手段は、発射された前記第3オブジェクトの軌道を変更するための入力があったと判定された場合に、発射された前記第3オブジェクトを基準として、前記変更するための入力に応じた前記探索範囲を決定してよい。
【0042】
この構成により、発射した第3オブジェクトの軌道を変更するための入力によって探索範囲が決定される。
【0043】
上記の情報処理プログラムにおいて、前記第1オブジェクトは、プレイヤによって操作されるプレイヤオブジェクトであってよい。
【0044】
この構成により、プレイヤオブジェクトの状態に応じて所定の情報処理の対象となる第2オブジェクトを探索できる。
【0045】
上記の情報処理プログラムにおいて、前記第1オブジェクトは、プレイヤによって操作されるプレイヤオブジェクトであってよく、前記情報処理手段は、前記所定の情報処理の後に、プレイヤオブジェクトとなるオブジェクトを、前記第1オブジェクトから、前記対象となった前記第2オブジェクトに変更してよい。
【0046】
この構成により、対象となった第2のオブジェクトにプレイヤオブジェクトが憑依するというゲーム効果が得られる。
【0047】
一態様の情報処理装置は、仮想空間内の第1オブジェクトの状態を判定する第1オブジェクト状態判定手段、第2オブジェクトを探索するための探索範囲を前記第1オブジェクトの状態に基づいて決定する探索範囲決定手段、前記第2オブジェクトが前記探索範囲に存在するか否かを探索する存在判定手段、および前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、前記第2オブジェクトを所定の情報処理の対象に設定する対象設定手段を備えた構成を有している。
【0048】
この構成により、第2オブジェクトを探索するための探索範囲を第1オブジェクトの状態に基づいて決定して、情報処理の対象を設定するので、プレイヤが操作の区別を意識することなく自然に情報処理の対象を設定できるプレイヤアシスト機能が提供される。
【0049】
一態様の情報処理方法は、仮想空間内の第1オブジェクトの状態を判定する第1オブジェクト状態判定ステップ、第2オブジェクトを探索するための探索範囲を前記第1オブジェクトの状態に基づいて決定する探索範囲決定ステップ、前記第2オブジェクトが前記探索範囲に存在するか否かを探索する存在判定ステップ、および前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、前記第2オブジェクトを所定の情報処理の対象に設定する対象設定ステップを含む構成を有している。
【0050】
この構成により、第2オブジェクトを探索するための探索範囲を第1オブジェクトの状態に基づいて決定して、情報処理の対象を設定するので、プレイヤが操作の区別を意識することなく自然に情報処理の対象を設定できるプレイヤアシスト機能が提供される。
【0051】
一態様の情報処理システムは、仮想空間内の第1オブジェクトの状態を判定する第1オブジェクト状態判定手段、第2オブジェクトを探索するための探索範囲を前記第1オブジェクトの状態に基づいて決定する探索範囲決定手段、前記第2オブジェクトが前記探索範囲に存在するか否かを探索する存在判定手段、および前記第2オブジェクトが前記探索範囲に存在すると判定された場合に、前記第2オブジェクトを所定の情報処理の対象に設定する対象設定手段を備えた構成を有している。
【0052】
この構成により、第2オブジェクトを探索するための探索範囲を第1オブジェクトの状態に基づいて決定して、情報処理の対象を設定するので、プレイヤが操作の区別を意識することなく自然に情報処理の対象を設定できるプレイヤアシスト機能が提供される。
【発明の効果】
【0053】
本発明によれば、プレイヤが操作の区別を意識することなく自然に情報処理の対象を設定できるプレイヤアシスト機能が提供される。
【図面の簡単な説明】
【0054】
【
図1】本体装置に左コントローラおよび右コントローラを装着した状態の一例を示す図
【
図2】本体装置から左コントローラおよび右コントローラをそれぞれ外した状態の一例を示す図
【
図7】本体装置と左コントローラおよび右コントローラとの内部構成の一例を示すブロック図
【
図8】ゲームシステムのゲーム処理によって表示されるゲーム画面の例
【
図9】ゲームシステムにおいてゲーム処理を実行するための構成を示すブロック図
【
図12】プレイヤアシスト機能によって帽子オブジェクトの発射方向が補正された帽子投げ動作を説明する図
【
図13】プレイヤアシスト機能によって帽子オブジェクトの発射方向が補正された帽子投げ動作を説明する図
【
図14】プレイヤアシスト機能によって帽子オブジェクトの発射方向が補正された帽子投げ動作を説明する図
【
図15】移動入力が比較的大きい場合の探索範囲を示す図
【
図16】移動入力が比較的小さい場合の探索範囲を示す図
【
図17】向き入力変化が比較的小さい場合の探索範囲を示す図
【
図18】向き入力変化が比較的大きい場合の探索範囲を示す図
【
図19】探索範囲に複数のノンプレイヤオブジェクトが存在する場合の対象設定処理を説明する図
【
図20】ゲーム処理部によるプレイヤアシスト機能のフローチャート
【
図21】帽子投げ処理の軌道変更動作における探索範囲の設定を説明する図
【発明を実施するための形態】
【0055】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態に応じた具体的構成が適宜採用されてよい。以下では、情報処理システムがゲームシステムとして構成される例を説明する。
【0056】
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(
図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0057】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0058】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。
図1および
図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0059】
図3は、本体装置2の一例を示す六面図である。
図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0060】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0061】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0062】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0063】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、
図6に示すスピーカ88)を備えている。
図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0064】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0065】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0066】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0067】
図4は、左コントローラ3の一例を示す六面図である。
図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、
図1および
図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0068】
左コントローラ3は、アナログスティック32を備える。
図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0069】
左コントローラ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プログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0070】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0071】
図5は、右コントローラ4の一例を示す六面図である。
図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0072】
右コントローラ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を備える。
【0073】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0074】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、
図3に示す構成の他、
図6に示す各構成要素81~91、97、および98を備える。これらの構成要素81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0075】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central
Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0076】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0077】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0078】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0079】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0080】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0081】
プロセッサ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は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0082】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0083】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
【0084】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0085】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0086】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0087】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0088】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図6で示しているため
図7では省略している。
【0089】
左コントローラ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(登録商標)の規格に従って行われる。
【0090】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0091】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(
図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0092】
左コントローラ3は、慣性センサを備える。具体的には、左コントローラ3は、加速度センサ104を備える。また、左コントローラ3は、角速度センサ105を備える。本実施形態においては、加速度センサ104は、所定の3軸(例えば、
図4に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ104は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ105は、所定の3軸(例えば、
図4に示すxyz軸)回りの角速度を検出する。なお、角速度センサ105は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。加速度センサ104および角速度センサ105は、それぞれ通信制御部101に接続される。そして、加速度センサ104および角速度センサ105の検出結果は、適宜のタイミングで繰り返し通信制御部101へ出力される。
【0093】
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0094】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
【0095】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0096】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0097】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52、慣性センサ(加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0098】
右コントローラ4は、処理部121を備える。処理部121は、通信制御部111に接続される。右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0099】
次に、本実施形態のゲームシステム1の制御について説明する。
図8は、ゲームシステム1のゲーム処理によって表示されるゲーム画面の例である。このゲームでは、仮想空間の一例として、仮想3次元空間が提供され、複数のノンプレイヤオブジェクト502が存在する仮想空間内をプレイヤオブジェクト501が移動することによってゲームが展開される。プレイヤオブジェクト501は、プレイヤによって操作されるオブジェクトである。プレイヤオブジェクト501は、帽子オブジェクト503を着用している。プレイヤによる所定の操作に応じてプレイヤオブジェクト501は、この帽子オブジェクト503を投げる動作を行い、この動作に伴って帽子オブジェクト503は、プレイヤオブジェクト501から投げ出され、プレイヤオブジェクト501に戻ってくるという動作を行う。以下、プレイヤオブジェクト501によるこの帽子投げの動作を「帽子投げ動作」といい、ゲームシステム1による帽子投げ動作のための処理を「帽子投げ処理」という。
【0100】
図9は、ゲームシステム1においてゲーム処理を実行するための構成を示すブロック図である。ゲームシステム1は、プレイヤが入力を行う入力部71と、ゲーム処理を行うゲーム処理部72と、ゲーム画面を表示する表示部73を備えている。
図7に示した左コントローラ3および本体装置2の左側端子17からなる構成、ならびに右コントローラ4、および本体装置2の右側端子21からなる構成がそれぞれ入力部71に相当する。また、本体装置2のタッチパネル13およびタッチパネルコントローラ86からなる構成も入力部71に相当し得る。本体装置2のプロセッサ81、フラッシュメモリ84、DRAM85からなる構成がゲーム処理部72に相当する。また、本体装置2のディスプレイ12は表示部73に相当する。また、上記で説明した据置型モニタも表示部73に相当し得る。
【0101】
ゲーム処理部72は、入力部71に入力されたプレイヤからの入力に応じてゲーム処理を実行する。プレイヤは入力部71への入力によって仮想空間内のプレイヤオブジェクトを操作することができる。プレイヤオブジェクト501が左コントローラ3および右コントローラ4によって操作される(典型的には、プレイヤは左手に本体装置2から分離した左コントローラ3を持ち、右手に本体装置2から分離した右コントローラ4を持つ)ときは、プレイヤオブジェクト501は、スティック32の傾倒に応じて仮想空間内を移動する。具体的には、プレイヤオブジェクト501は、スティック32の傾倒方向に応じた方向に、スティック32の傾倒量に応じた速度で仮想空間内を移動する。
【0102】
ゲーム処理部72は、仮想空間内のプレイヤオブジェクト501の状態を判定するプレイヤオブジェクト状態判定部721と、プレイヤオブジェクト501の状態に基づいて、ノンプレイヤオブジェクト502を探索するための探索範囲を決定する探索範囲決定部722と、ノンプレイヤオブジェクト502が探索範囲に存在するか否かを探索(判定)する対象オブジェクト存在判定部723と、ノンプレイヤオブジェクト502が探索範囲に存在すると判定された場合に、ノンプレイヤオブジェクト502を帽子投げ処理の対象、即ち帽子を投げ出す際の的に設定する対象オブジェクト設定部724とを備えている。
【0103】
ゲーム処理部72は、さらに、設定されたノンプレイヤオブジェクト502を対象として帽子投出処理を実行する処理実行部725と、処理実行部725による処理の実行の結果を反映したゲーム画面を生成する画面描画部726とを備えている。画面描画部726にて生成されたゲーム画面は表示部73において表示される。
【0104】
図10は、帽子投げ処理の基本動作を説明する図である。
図10は、仮想空間内のプレイヤオブジェクト501を上方から見た図である。
図10のプレイヤオブジェクト501において尖っている方向はプレイヤオブジェクト501の正面方向である。プレイヤオブジェクト501が左コントローラ3および右コントローラ4によって操作されるときは、プレイヤオブジェクト501は、例えば右コントローラ4のAボタン53の押下に応じて帽子投げ動作を行う。
【0105】
帽子投げ処理では、基本的には、
図10に示すように、プレイヤオブジェクト501を出発点として、プレイヤオブジェクト501の正面方向に帽子オブジェクト503が発射される。帽子オブジェクト503は、所定の距離だけ進んだ後にプレイヤオブジェクト501まで戻ってくる。以上のように、基本的には、帽子投げ動作によって、帽子オブジェクト503は、プレイヤオブジェクト501からプレイヤオブジェクト501の正面方向を基準とする方向に投げ出される(発射される)。なお、帽子オブジェクト503は、投げ出されていないときには、
図8に示すようにプレイヤオブジェクト501の頭に装着されている。
【0106】
図11は、帽子投げ処理の軌道変更動作を説明する図である。上記の帽子投げ動作によって帽子がプレイヤオブジェクト501から発射されて、プレイヤオブジェクト501から離れていっているときに、プレイヤが左コントローラ3または右コントローラ4を右方向または左方向に振る振り操作を行うと、帽子オブジェクト503は、所定の距離だけ進んだ後に、軌道を変更することで振り操作の方向に曲がって、その後にプレイヤオブジェクト501に戻ってくる。この振り操作は、右コントローラ4の加速度センサ114および/または角速度センサ115によって検知することができる。なお、軌道変更動作のための振り操作は、左コントローラ3において受け付けてもよい。
【0107】
本実施の形態のゲームでは、上記のようにしてプレイヤオブジェクト501が帽子オブジェクト503を投げ出すことで種々のゲーム効果が得られる。例えば、投げ出した帽子オブジェクト503を所定のノンプレイヤオブジェクト502に当てることで、プレイヤオブジェクト501が当該ノンプレイヤオブジェクト502に憑依する(当該ノンプレイヤオブジェクト502がプレイヤによって操作されるプレイヤオブジェクトとなる)というゲーム効果が得られる。以下では、帽子投げ動作において、帽子オブジェクト503をノンプレイヤオブジェクト502に当てようとする際のプレイヤアシスト機能について説明する。
【0108】
プレイヤオブジェクト51の正面方向をノンプレイヤオブジェクト502がいる方向に正確に向けて帽子オブジェクト53を投げ当てることは容易ではない。特に、移動するノンプレイヤオブジェクト502に帽子オブジェクト503を投げ当てることは容易ではない。
【0109】
そこで、本実施の形態では、帽子投げ動作における帽子オブジェクト503の発射方向はプレイヤオブジェクト501の正面方向とすることを基本としつつ、プレイヤオブジェクト501の正面方向を中心とする所定の探索範囲内にノンプレイヤオブジェクト502が存在している場合には、帽子オブジェクト503の発射方向をプレイヤオブジェクト501の正面方向とせずに、当該ノンプレイヤオブジェクト502に向けて帽子オブジェクト503を発射させて、帽子オブジェクト503を当該ノンプレイヤオブジェクト52に当てるというプレイヤアシスト機能を採用する。
【0110】
図12~
図14は、プレイヤアシスト機能によって帽子オブジェクト503の発射方向が補正された帽子投げ動作を説明する図である。探索範囲決定部722は、
図12に示すように、プレイヤオブジェクト501を中心とし、プレイヤオブジェクト501の正面方向Fを中心角の中心とし、所定の半径を有する扇形の探索範囲511を設定する。対象オブジェクト存在判定部723は、探索範囲511にノンプレイヤオブジェクト502が存在するか否かを判定する。
【0111】
図13に示すように、探索範囲511にノンプレイヤオブジェクト502が存在する場合には、対象オブジェクト設定部524は、このノンプレイヤオブジェクト502を対象オブジェクトとして設定し、処理実行部725は、
図14に示すように、発射方向をこの対象オブジェクトに向かう方向とする帽子投げ処理を実行する。この結果、帽子投げ動作によって帽子オブジェクト503が、探索範囲511内にいるノンプレイヤオブジェクト502に当たる。
【0112】
このような帽子投げ動作は、プレイヤオブジェクト501を移動させながら、あるいは、プレイヤオブジェクト501の向きを変えながら行うことができる。プレイヤは、スティック32を傾倒しながらAボタン53を押すことで、プレイヤオブジェクト501に移動しながらないしは向きを変えながらの帽子投げ動作を実行させることができる。
【0113】
本実施の形態のゲーム処理部72は、プレイヤオブジェクト501の状態に応じて探索範囲の広さを調節する機能を有している。具体的には、ゲーム処理部72は、プレイヤオブジェクト501の動作状態(位置変化の大きさ、向き変化の大きさ)に応じて探索範囲を調節する。このために、プレイヤオブジェクト状態判定部721は、プレイヤオブジェクト501に対する移動入力の大きさ、および向き入力変化の大きさを判定する。
【0114】
プレイヤオブジェクト状態判定部721は、スティック32の傾倒角度(傾倒量)に基づいて移動入力の大きさを判定する。すなわち、スティック32の傾倒角度が大きいほど移動入力は大きいと判定される。また、プレイヤオブジェクト状態判定部721は、過去の所定時間(所定フレーム数)における向き入力変化の平均値ないし累積値に基づいて向き入力変化の大きさを判定する。すなわち、過去の所定数のフレームにおいて、向き変化があるフレームの数が多いほど向き入力変化が大きいと判定される。
【0115】
探索範囲決定部722は、プレイヤオブジェクト状態判定部721で判定されたプレイヤオブジェクト501に対する移動入力の大きさ、および向き入力変化の大きさに応じて、探索範囲の広さを調節する。具体的には、探索範囲決定部722は、プレイヤオブジェクト501に対する移動入力が大きいほど探索範囲511の中心角を小さくし、プレイヤオブジェクト501に対する移動入力が小さいほど探索範囲511の中心角を大きくする。
【0116】
このとき、本実施の形態では、探索範囲決定部722は、プレイヤオブジェクト501に対する移動入力の大きさに応じて連続的に探索範囲511の中心角を変化させるが、これに代えて、プレイヤオブジェクト501に対する移動入力の大きさに応じて離散的に探索範囲511の中心角を変化させてよい。離散的に中心角を変化させる場合において、探索範囲決定部722は、プレイヤオブジェクト501に対する移動入力がある(あるいは移動入力が所定の閾値より大きい)ときに中心角を第1の大きさとし、プレイヤオブジェクト501に対する移動入力がない(あるいは移動入力が所定の閾値以下である)ときに中心角を第1の大きさより大きい第2の大きさとする2段階の制御を行ってよい。
【0117】
図15は、移動入力が比較的大きい場合の探索範囲511を示す図であり、
図16は、移動入力が比較的小さい場合の探索範囲511を示す図である。
図15及び
図16に示すように、
図15の場合のプレイヤオブジェクト501の移動入力(移動速度)v1と
図16の場合のプレイヤキャラクタ501の移動入力(移動速度)v2との関係はv1>v2であり、移動入力が比較的小さい
図16の場合には移動入力が比較的大きい
図15の場合よりも探索範囲511の中心角は大きく設定される。
【0118】
また、探索範囲決定部722は、プレイヤオブジェクト501の向き入力変化が大きいほど探索範囲511の中心角を大きく、プレイヤオブジェクト501の向き入力変化が小さいほど探索範囲511の中心角を小さくする。このとき、探索範囲決定部722は、プレイヤオブジェクト501の向き入力変化の大きさに応じて連続的に探索範囲511の中心角を変化させるが、これに代えて、プレイヤオブジェクト501の向き入力変化の大きさに応じて離散的に探索範囲511の中心角を変化させてよい。
【0119】
離散的に中心角を変化させる場合において、探索範囲決定部722は、プレイヤオブジェクト501に対する向き入力変化がない(あるいは向き入力変化が所定の閾値以下である)ときに中心角を第3の大きさとし、プレイヤオブジェクト501に対する向き入力変化がある(あるいは向き入力変化が所定の閾値より大きい)ときに中心角を第3の大きさより大きい第4の大きさとする2段階の制御を行ってよい。
【0120】
図17は、向き入力変化が比較的小さい場合の探索範囲511を示す図であり、
図18は向き入力変化が比較的大きい場合の探索範囲511を示す図である。
図17及び
図18に示すように、
図17の場合のプレイヤオブジェクト501の向き入力変化av1と
図18の場合のプレイヤオブジェクト501の向き入力変化av2との関係はav1<av2であり、向き入力変化が比較的大きい
図18の場合には向き入力変化が比較的小さい
図17の場合よりも探索範囲511の中心角は大きく設定される。
【0121】
本実施の形態では、プレイヤオブジェクト状態判定部721は、スティック32の傾倒量によってプレイヤオブジェクト501に対する移動入力の大きさを判定するが、これに代えて、スティック32の傾倒量に従ってゲーム処理部72が算出したプレイヤオブジェクト501の移動速度または位置変化量の大きさを判定してよい。また、本実施の形態では、プレイヤオブジェクト状態判定部721は、所定時間(所定フレーム数)における向きを変更する入力がされた時間(フレーム数)によってプレイヤオブジェクト501に対する向き入力変化の大きさを判定するが、これに代えて、スティック32の所定時間における傾倒方向の変化量の大きさを判定してよく、あるいは、スティック32の傾倒方向の変化に従って、ゲーム処理部73がゲーム処理を行った結果、所定時間(所定フレーム数)において向きを変えたプレイヤオブジェクト501の正面方向の角度差分の大きさを判定してもよい。
【0122】
また、プレイヤオブジェクト状態判定部721は、プレイヤオブジェクト51の向きの変更については、過去の所定時間(所定フレーム数)における向き変化(上記の角度差分)の平均値ないし累積値を向き変化の大きさとしてよい。プレイヤオブジェクト状態判定部721は、例えば、過去の10フレームにおけるスティックの傾倒方向とプレイヤオブジェクト51の正面方向との角度差分の平均値ないし累積値を向き変化の大きさとしてよい。これにより、プレイヤオブジェクト51が大回りに旋回しながら大きく向きを変えている場合にも向き変化が大きいと判定でき、旋回は小回りだが大きな角度変化をした直後(例えば、10フレーム以内)にも向き変化が大きいと判定できる。
【0123】
探索範囲決定部722は、探索範囲511の最大中心角を60度、最小中心角を10度とし、プレイヤオブジェクト501に対する移動入力の大きさ、および向き入力変化の大きさに応じて、この最大値と最小値との間で探索範囲511の中心角を調節する。具体的には、向き入力変化が大きいときには中心角を最大の60度とし、スティック操作がなく移動も回転もしていないときは中心角を20度とし、プレイヤオブジェクト501が最大速度で直進しているときは中心角を最小の10度とする。このように、中心角は、静止しているときは直進しているときよりも広くなり、回転している場合には向き入力変化が大きいほど大きくなる。
【0124】
なお、プレイヤオブジェクト501に対する移動入力や向き入力変化が所定の閾値に達しないほど小さい場合には、移動入力や向き入力変化がないものとして扱う。
【0125】
図19は、探索範囲511に複数のノンプレイヤオブジェクト502が存在する場合の対象設定処理を説明する図である。探索範囲511に複数のノンプレイヤオブジェクト502a、502bが存在する場合には、対象オブジェクト設定部724は、そのうちの1つのノンプレイヤオブジェクト502を対象オブジェクトとして選択する。このとき、プレイヤオブジェクト501の正面方向からのずれ(の小ささ)を重視しつつ、プレイヤオブジェクト501からの距離(の近さ)も考慮して対象とするノンプレイヤオブジェクト502を選択する。
【0126】
具体的には、対象オブジェクト設定部724は、探索範囲511内のノンプレイヤオブジェクト502からプレイヤオブジェクト501の正面方向Fに延びる仮想線に対して垂線を下ろしたときの垂線の長さをDとし、垂線の足からプレイヤオブジェクト501までの長さをLとしたときの評価値G=L+αD(α>1)が小さいノンプレイヤオブジェクト502を対象オブジェクトとして選択する。ここで、αはプレイヤオブジェクト501の正面方向Fからのずれの小ささを重視する程度を示す係数であり、例えば5とする。
【0127】
図19の例では、例えばα=5とすると、ノンプレイヤオブジェクト502aについては、D1=23、L1=41なので、G1=L1+αD1=41+5×23=156となり、ノンプレイヤオブジェクト502bについては、D2=10、L2=67なので、G2=L2+αD2=67+5×10=117となり、G1>G2となってノンプレイヤオブジェクト502bの方が評価値が小さいので、ノンプレイヤオブジェクト502bが対象オブジェクトとして選択される。
【0128】
図20は、ゲーム処理部72によるプレイヤアシスト機能のフローチャートである。プレイヤオブジェクト状態判定部721は、まずプレイヤオブジェクト501の状態を判定する。具体的には、プレイヤオブジェクト状態判定部721は、スティック入力があるか否かを判定する(ステップS201)。ここでは、過去10フレームの入力のスティックの傾倒量の平均値ないし累積値が所定の閾値を超えるか否かによって、スティック入力があるか否かを判断する。なお、この場合の閾値は0であってもよく、閾値が0である場合には、少しでもスティック入力がある場合にスティック入力ありと判定される。スティック入力がない場合(ステップS201にてNO)は、プレイヤオブジェクト501の状態を「静止」であると判定する(ステップS202)。
【0129】
スティック入力がある場合には(ステップS201にてYES)、スティック入力がプレイヤオブジェクト501を回転させるものであるか否かを判定する(ステップS203)。ここでも、プレイヤオブジェクト状態判定部721は、過去10フレームにおける向きを変える入力(向き入力変化)の大きさによって回転か否かを判断する。この向き入力変化が所定の閾値を超える場合には(ステップS203にてYES)、プレイヤオブジェクト状態判定部721は、プレイヤオブジェクト501の状態を「回転」であると判定し(ステップS204)、閾値を超えない場合には(ステップS203にてNO)、プレイヤオブジェクト501の状態を「移動」であると判定する。なお、上述のように、向き入力変化は過去の時間も含めた平均値又は累積値で取得しているために、現在は移動入力がなくプレイヤオブジェクト501が静止していても、プレイヤオブジェクト501について向き入力変化があると判定されることがあり得る。
【0130】
なお、探索範囲決定部722は、プレイヤオブジェクト状態判定部721の判定に基づいて探索範囲を設定する(ステップS206)。このとき、探索範囲決定部722は、上述のように、プレイヤオブジェクト501に対する向き入力変化の大きさに応じて探索範囲511の中心角を大きくするが、プレイヤオブジェクト501に対する移動入力がない場合には、最小値20度、最大値60度の範囲で向き入力変化の大きさに応じて中心角を決定し、プレイヤオブジェクト501に対する移動入力がある場合には、最小値10度、最大値45度の範囲で移動入力の大きさ及び向き入力変化の大きさに応じて中心角を決定する。
【0131】
次に、対象オブジェクト判定部723は、決定された探索範囲511にノンプレイヤオブジェクト502が存在するか否かを判定する(ステップS207)。探索範囲511にノンプレイヤオブジェクト502が存在する場合には(ステップS207にてYES)、対象オブジェクト判定部723は、探索範囲511に複数のノンプレイヤオブジェクト502が存在するか否かを判定する(ステップS208)。
【0132】
探索範囲511に複数のノンプレイヤオブジェクト502が存在する場合には(ステップS208にてYES)、対象オブジェクト設定部724は、上記で説明した評価関数Gを用いてそのうちの1つのノンプレイヤオブジェクト502を選択し(ステップS209)、選択されたノンプレイヤオブジェクト502を対象オブジェクトとして設定する(ステップS210)。探索範囲511に存在するノンプレイヤオブジェクト502が1つである場合は(ステップS208にてNO)、対象オブジェクト設定部724は、当該ノンプレイヤオブジェクト502を対象オブジェクトとして設定する(ステップS210)。
【0133】
処理実行部725は、帽子投げ処理を実行するが(ステップS211)、このとき対象オブジェクトが設定されている場合には、帽子オブジェクト503の発射方向をプレイヤオブジェクト501から対象オブジェクトに向かう方向とする。なお、探索範囲511にノンプレイヤオブジェクト502が存在しない場合には(ステップS207にてNO)、帽子オブジェクト503の発射方向をプレイヤオブジェクト501の正面方向とする。
【0134】
なお、ゲーム処理部72は、プレイヤオブジェクト501が仮想空間にいる間に上記のプレイヤオブジェクト状態判定から対象オブジェクト設定までの処理(ステップS201~S210)を繰り返し行い、プレイヤによる帽子投げ処理のための所定の入力があったときに、処理実行の処理(ステップS211)の処理を行ってよく、あるいは、プレイヤによる帽子投げ処理のための所定の入力があったときに、上記のプレイヤオブジェクト判定から処理実行の処理(ステップS201~S211)を実行するようにしてもよい。また、
図20では図示を省略するが、画面描画部726は、所定のフレームレートでゲーム処理部72の処理結果を反映したゲーム画面を生成し、表示部73は、所定のフレームレートでゲーム画面を表示する。
【0135】
図21は、帽子投げ処理の軌道変更動作における探索範囲の設定を説明する図である。上述のように、プレイヤオブジェクト501が帽子投げ動作を行って帽子オブジェクト503が発射された後にプレイヤが軌道変更動作のための所定の入力(本実施の形態では曲げ方向への右コントローラの振り入力)を行うことで、飛行中の帽子オブジェクト503の軌道を変更して振り入力の方向に曲げることができる。
【0136】
探索範囲決定部722は、軌道変更動作を行う際には、曲げられた方向に第2の探索範囲531を設定する。具体的には、探索範囲決定部722は、曲がる寸前の帽子オブジェクト503の位置を中心とし、
図11に示す変更後の軌道F2を中心角の中心とする所定半径の扇形の第2の探索範囲531を設定する。プレイヤオブジェクト501を中心とする探索範囲については最大の中心角は60度であったが、第2の探索範囲の中心角はこれより広く85度とする。なお、本実施の形態では、第2の探索範囲531の中心角は固定値を用いるが、探索範囲511と同様に、プレイヤオブジェクト501の状態に応じて広狭を調節可能としてもよい。
【0137】
以下の処理は、探索範囲511についての処理と同様であり、対象オブジェクト存在判定部723は第2の探索範囲531にノンプレイヤオブジェクト502が存在するかを判定し、第2の探索範囲531にノンプレイヤオブジェクト502が存在する場合には、対象オブジェクト設定部724は対象オブジェクトを設定し、処理実行部725は当該対象オブジェクトに帽子オブジェクト503が当たるように、帽子オブジェクト503を対象オブジェクトに向かう方向に曲げる処理を行う。
【0138】
以上のように、本実施の形態のゲームシステム1によれば、プレイヤオブジェクト501は、帽子投げ動作によって正面方向に帽子オブジェクト503を発射できるが、その際に、探索範囲511を設定することで、プレイヤオブジェクト501が帽子オブジェクト503を発射してノンプレイヤオブジェクト502に帽子オブジェクト503を当てやすくするプレイヤアシスト機能が提供される。
【0139】
本実施の形態のゲームシステム1では、さらに、このプレイヤアシストの程度、即ち探索範囲511の広さをプレイヤオブジェクト501の状態に応じて可変にする。具体的には、プレイヤオブジェクト501が静止しているときには、プレイヤオブジェクト501が移動しているときよりも探索範囲511を広くする。これは、初級者の場合には、帽子投げ動作によってノンプレイヤオブジェクト502に帽子オブジェクト503を当てようとする場合には、そのことに集中するためにプレイヤオブジェクト501を静止させることが多いからであり、そのような初級者には、よりプレイヤアシストの程度を強くすべく、探索範囲511を広く設定する。
【0140】
また、プレイヤオブジェクト501が回転しているときには、プレイヤオブジェクト51が回転していないときよりも探索範囲511を広くする。これは、プレイヤオブジェクト501を回転させながらノンプレイヤオブジェクト502に帽子オブジェクト503を当てるのは難易度が高いからであり、回転時にはよりプレイヤアシストの程度を強くすべく、探索範囲511を広く設定する。
【0141】
このような探索範囲511の調節によって、難易度が高くなり過ぎず、かつ過剰なプレイヤアシストによってゲーム性が低減することも防止できる。
【0142】
なお、上記の実施の形態では、探索範囲511をプレイヤオブジェクト501を中心とする扇形としたが、探索範囲511の形状はこれに限られない。例えば、探索範囲511は、上記の扇形と、プレイヤオブジェクト501からその正面方向に所定幅で伸びる矩形領域とで形成される領域であってよく、他の形状の領域であってもよい。
【0143】
また、上記の実施の形態では、中心角の大きさを調節することで扇形の探索範囲511の広さが調節されたが、これに代えて、または、これに加えて、扇形の半径の長さを調節することで探索範囲511の広さを調節してもよい。
【0144】
また、上記の実施の形態では、プレイヤオブジェクト501が帽子オブジェクト503を投げるという帽子投げ動作について実施の形態を説明したが、プレイヤオブジェクトから発射されるオブジェクトは帽子オブジェクト503に限られず、また、投げるという動作でなくてもよい。例えば、プレイヤオブジェクトがボールオブジェクトを蹴り出すという動作について本実施の形態の技術を適用してもよい。また、発射されるオブジェクト(帽子オブジェクト、ボールオブジェクト等)は、必ずしもプレイヤオブジェクトから発射されなくてもよい。
【0145】
また、上記の実施の形態では、プレイヤアシスト機能によって、プレイヤオブジェクト501の正面方向ではなく、探索範囲511内にいるノンプレイヤオブジェクト502に向かう方向に帽子オブジェクト503が発射されたが、ノンプレイヤオブジェクト502が移動している場合には、発射された帽子オブジェクト503の軌道をノンプレイヤオブジェクト502の移動に合わせて曲げてもよく、あるいは、ノンプレイヤオブジェクト502の移動を事前に予測して移動先に向けて帽子オブジェクト503を発射するようにしてもよい。
【0146】
また、上記の実施の形態では、仮想空間が3次元空間である例を説明したが、仮想空間は2次元空間であってもよい。
【0147】
また、上記の実施の形態では、探索範囲511の説明は3次元空間を上から見た場合の視点で説明したが、実際には探索範囲511は、上下方向に広がる円錐や角錐のような範囲であってよい。また、探索範囲511は、プレイヤから離れた位置を中心とする円形や球形であってもよい。
【0148】
また、上記の実施の形態では、探索範囲511にノンプレイヤオブジェクト502が複数あるときは、そのうちの1つを選択して対象オブジェクトとして設定したが、これに代えて、探索範囲511にいる複数のノンプレイヤオブジェクトのうちの複数のノンプレイヤオブジェクトを対象オブジェクトに設定してよい。この場合に、例えば評価値Gが低い順に順次帽子オブジェクト503が当たるような軌道で帽子オブジェクト503を飛ばしてもよいし、複数の対象オブジェクトを経由するように自然な軌道で帽子オブジェクト503を飛ばしてもよい。
【0149】
また、上記の実施の形態では、振り入力によって帽子オブジェクト503の軌道を曲げる軌道変更動作を実行したが、軌道変更動作は、振り入力に限らずボタン操作に応じて行ってもよい。
【0150】
また、上記の実施の形態では、探索範囲511は、第1オブジェクトの状態に応じて広さを変えるものであったが、これに代えて、または、これに加えて、探索範囲511の位置や形状が変化してもよい。
【0151】
また、上記の実施の形態では、帽子投げ動作において、帽子オブジェクト503は対象オブジェクトに向かったに直線状に飛んでいったが、これに代えて、帽子オブジェクト503は曲線状の軌道で飛んで行ってもよい。
【符号の説明】
【0152】
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
71 入力部
72 ゲーム処理部
721 プレイヤオブジェクト状態判定部
722 探索範囲決定部
723 対象オブジェクト存在判定部
724 対象オブジェクト設定部
725 処理実行部
726 画面描画部
73 表示部
501 プレイヤオブジェクト
502 ノンプレイヤオブジェクト
503 帽子オブジェクト
511 探索範囲
531 第2の探索範囲