IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 任天堂株式会社の特許一覧

特開2023-166044ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023166044
(43)【公開日】2023-11-20
(54)【発明の名称】ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
(51)【国際特許分類】
   A63F 13/55 20140101AFI20231113BHJP
   A63F 13/5258 20140101ALI20231113BHJP
【FI】
A63F13/55
A63F13/5258
【審査請求】有
【請求項の数】20
【出願形態】OL
【公開請求】
(21)【出願番号】P 2022084456
(22)【出願日】2022-05-24
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】水上 明
(57)【要約】
【課題】オブジェクトに自然な挙動を行わせることができるゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法を提供すること。
【解決手段】第1オブジェクトに近い第1範囲内、および、第1オブジェクトから遠い第2範囲内の第2オブジェクトから、アクションの対象の候補を決定する。当該候補のうち、第1範囲内の候補である第1候補オブジェクトが第1の数存在し、かつ、第2範囲内の候補である第2候補オブジェクトが第2の数存在する場合、(1)第2候補オブジェクトを対象にアクションを行わせる前に、第1の数以下の数となる回数で第1候補オブジェクトを対象としてアクションを行わせる第1の態様と、(2)第1候補オブジェクトを対象にアクションを行わせる前に、第2の数以下の数となる回数で第2候補オブジェクトを対象にアクションを行わせる第2の態様と、のいずれかの態様でアクションを行わせる。
【選択図】図18
【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータにおいて実行されるゲームプログラムであって、
前記コンピュータを、
仮想空間内に1つの第1オブジェクトおよび複数の第2オブジェクトを配置する配置手段と、
前記第1オブジェクトから相対的に近い第1の範囲と相対的に遠い第2の範囲のうち、当該第1の範囲内に位置する1つ以上の前記第2オブジェクトおよび当該第2の範囲内に位置する1つ以上の前記第2オブジェクトを、当該第1オブジェクトが時間経過に応じて対象を切り替えて行うアクションの対象の候補である候補オブジェクトとして決定する候補決定手段と、
前記候補オブジェクトのうち、前記第1の範囲内に位置する前記候補オブジェクトである第1候補オブジェクトが第1の数存在し、かつ、前記第2の範囲内に位置する前記候補オブジェクトである第2候補オブジェクトが第2の数存在する場合、
前記第1オブジェクトに、前記第2候補オブジェクトを対象として前記アクションを行わせる前に、前記第1候補オブジェクトを対象として前記アクションを行わせる回数が前記第1の数以下の数となるように前記アクションを行わせた後、前記第2候補オブジェクトを対象として前記アクションを行わせる第1の態様と、
前記第1オブジェクトに、前記第1候補オブジェクトを対象として前記アクションを行わせる前に、前記第2候補オブジェクトを対象として前記アクションを行わせる回数が前記第2の数以下の数となるように前記アクションを行わせた後、前記第1候補オブジェクトを対象として前記アクションを行わせる第2の態様と、
のうちいずれかの態様で第1オブジェクトに前記アクションを行わせるアクション制御手段と、
前記第1オブジェクトを含む前記仮想空間を画面に表示するための表示用画像を生成する画像生成手段として機能させる、ゲームプログラム。
【請求項2】
前記アクション制御手段は、
前記第2オブジェクトの各々に、当該第2オブジェクトに前記アクションが開始されたタイミング以降かつ、次に別の前記第2オブジェクトに当該アクションが開始されたタイミング以前のタイミングを基準タイミングとして関連付け、
前記基準タイミングから経過した時間が長い前記第2オブジェクトほど優先して前記アクションの対象とする、請求項1に記載のゲームプログラム。
【請求項3】
前記アクション制御手段は、
前記候補オブジェクトに含まれる前記第2オブジェクトのうち、前記アクションの対象となったものを、当該第2オブジェクトが当該候補オブジェクトに含まれなくなるまで記憶し、
前記アクションの対象となったことがない前記第2オブジェクトを、前記アクションの対象となったことのある前記第2オブジェクトより優先して前記アクションの対象とする、請求項1に記載のゲームプログラム。
【請求項4】
前記アクション制御手段は、前記アクションの対象となったことがない前記第2オブジェクトのうち、前記第1オブジェクトから近い第2オブジェクトほど優先して前記アクションの対象とする、請求項3に記載のゲームプログラム。
【請求項5】
前記第1オブジェクトの最も近くに位置しており、前記第1の範囲または第2の範囲に含まれていない状態から当該第1の範囲内に新たに含まれることとなった前記第1候補オブジェクトに対して、当該第1候補オブジェクトが当該第1の範囲内に新たに含まれたときに当該第1オブジェクトに前記アクションを行わせる、請求項1に記載のゲームプログラム。
【請求項6】
前記候補決定手段は、前記第1の範囲および前記第2の範囲のそれぞれについて、前記第1オブジェクトの前方方向と、当該第1オブジェクトの位置から前記第2オブジェクトの位置に向かう方向との角度の差が小さい場合の当該第2オブジェクトを、当該角度が大きい場合の当該第2オブジェクトより優先して前記候補オブジェクトとして決定する、請求項1に記載のゲームプログラム
【請求項7】
前記候補決定手段は、前記第1の範囲および前記第2の範囲のそれぞれについて、前記第1オブジェクトの前方方向を含んで所定角度だけ広がる領域内に存在する前記第2オブジェクトを当該領域内に存在しない第2オブジェクトよりも優先して前記候補オブジェクトとして決定する、請求項1に記載のゲームプログラム。
【請求項8】
前記候補決定手段は、前記第1の範囲および前記第2の範囲のそれぞれについて、
前記領域内に存在する第2オブジェクトのうち、前記第1オブジェクトから近い第2オブジェクトを、前記第1オブジェクトから遠い第2オブジェクトよりも優先して前記候補オブジェクトとして決定する、請求項7に記載のゲームプログラム。
【請求項9】
前記第1オブジェクトは、体、顔および目の少なくとも1つを含むオブジェクトであり、
前記アクション制御手段は、前記第1オブジェクトに、前記第1候補オブジェクトまたは前記第2候補オブジェクトを対象として、前記第1オブジェクトの体、顔、および視線の少なくとも1つを向ける前記アクションを行わせる、請求項1に記載の情報処理プログラム。
【請求項10】
前記アクション制御手段は、同じ前記第2オブジェクトに対して連続して前記アクションが行われることを制限する、請求項1に記載の情報処理プログラム。
【請求項11】
前記アクション制御手段は、前記第1の態様において、1つの前記第1候補オブジェクトを対象として、前記第1の数以下の数だけ連続して前記アクションを行わせる、請求項1に記載の情報処理プログラム。
【請求項12】
前記候補決定手段は、10体以下の前記第2オブジェクトを前記候補オブジェクトとして決定する、請求項1に記載の情報処理プログラム。
【請求項13】
前記アクション制御手段は、前記第1の数と前記第2の数が同じ数になるように前記第2オブジェクトを前記候補オブジェクトとして決定する、請求項1に記載のゲームプログラム。
【請求項14】
前記ゲームプログラムは、前記仮想空間内に配置された前記第1オブジェクトの位置を変更する第1オブジェクト移動手段として前記コンピュータを更に機能させる、請求項13に記載のゲームプログラム。
【請求項15】
前記第1オブジェクト移動手段は、プレイヤが操作するプレイヤキャラクタに前記第1オブジェクトが追従するように当該第1オブジェクトの位置を変更する、請求項14に記載のゲームプログラム。
【請求項16】
前記ゲームプログラムは、前記仮想空間内に配置された前記第2オブジェクトの位置を変更する第2オブジェクト移動手段として前記コンピュータを更に機能させる、請求項1に記載のゲームプログラム。
【請求項17】
前記候補決定手段は、前記候補オブジェクトを所定の周期ごとに決定する、請求項1に記載のゲームプログラム。
【請求項18】
仮想空間内に1つの第1オブジェクトおよび複数の第2オブジェクトを配置する配置手段と、
前記第1オブジェクトから相対的に近い第1の範囲と相対的に遠い第2の範囲のうち、当該第1の範囲内に位置する1つ以上の前記第2オブジェクトおよび当該第2の範囲内に位置する1つ以上の前記第2オブジェクトを、当該第1オブジェクトが時間経過に応じて対象を切り替えて行うアクションの対象の候補である候補オブジェクトとして決定する候補決定手段と、
前記候補オブジェクトのうち、前記第1の範囲内に位置する前記候補オブジェクトである第1候補オブジェクトが第1の数存在し、かつ、前記第2の範囲内に位置する前記候補オブジェクトである第2候補オブジェクトが第2の数存在する場合、
前記第1オブジェクトに、前記第2候補オブジェクトを対象として前記アクションを行わせる前に、前記第1候補オブジェクトを対象として前記アクションを行わせる回数が前記第1の数以下の数となるように前記アクションを行わせた後、前記第2候補オブジェクトを対象として前記アクションを行わせる第1の態様と、
前記第1オブジェクトに、前記第1候補オブジェクトを対象として前記アクションを行わせる前に、前記第2候補オブジェクトを対象として前記アクションを行わせる回数が前記第2の数以下の数となるように前記アクションを行わせた後、前記第1候補オブジェクトを対象として前記アクションを行わせる第2の態様と、
のうちいずれかの態様で第1オブジェクトに前記アクションを行わせるアクション制御手段と、
前記第1オブジェクトを含む前記仮想空間を画面に表示するための表示用画像を生成する画像生成手段と、を備える、ゲーム装置。
【請求項19】
仮想空間内に1つの第1オブジェクトおよび複数の第2オブジェクトを配置する配置手段と、
前記第1オブジェクトから相対的に近い第1の範囲と相対的に遠い第2の範囲のうち、当該第1の範囲内に位置する1つ以上の前記第2オブジェクトおよび当該第2の範囲内に位置する1つ以上の前記第2オブジェクトを、当該第1オブジェクトが時間経過に応じて対象を切り替えて行うアクションの対象の候補である候補オブジェクトとして決定する候補決定手段と、
前記候補オブジェクトのうち、前記第1の範囲内に位置する前記候補オブジェクトである第1候補オブジェクトが第1の数存在し、かつ、前記第2の範囲内に位置する前記候補オブジェクトである第2候補オブジェクトが第2の数存在する場合、
前記第1オブジェクトに、前記第2候補オブジェクトを対象として前記アクションを行わせる前に、前記第1候補オブジェクトを対象として前記アクションを行わせる回数が前記第1の数以下の数となるように前記アクションを行わせた後、前記第2候補オブジェクトを対象として前記アクションを行わせる第1の態様と、
前記第1オブジェクトに、前記第1候補オブジェクトを対象として前記アクションを行わせる前に、前記第2候補オブジェクトを対象として前記アクションを行わせる回数が前記第2の数以下の数となるように前記アクションを行わせた後、前記第1候補オブジェクトを対象として前記アクションを行わせる第2の態様と、
のうちいずれかの態様で第1オブジェクトに前記アクションを行わせるアクション制御手段と、
前記第1オブジェクトを含む前記仮想空間を画面に表示するための表示用画像を生成する画像生成手段と、を備える、情報処理システム。
【請求項20】
情報処理装置のコンピュータにおいて実行させるゲーム処理方法であって、
前記コンピュータに、
仮想空間内に1つの第1オブジェクトおよび複数の第2オブジェクトを配置させ、
前記第1オブジェクトから相対的に近い第1の範囲と相対的に遠い第2の範囲のうち、当該第1の範囲内に位置する1つ以上の前記第2オブジェクトおよび当該第2の範囲内に位置する1つ以上の前記第2オブジェクトを、前記第1オブジェクトが時間経過に応じて対象を切り替えて行うアクションの対象の候補である候補オブジェクトとして決定させ、
前記候補オブジェクトのうち、前記第1の範囲内に位置する前記候補オブジェクトである第1候補オブジェクトが第1の数存在し、かつ、前記第2の範囲内に位置する前記候補オブジェクトである第2候補オブジェクトが第2の数存在する場合、
前記第1オブジェクトに、前記第2候補オブジェクトを対象として前記アクションを行わせる前に、前記第1候補オブジェクトを対象として前記アクションを行わせる回数が前記第1の数以下の数となるように前記アクションを行わせた後、前記第2候補オブジェクトを対象として前記アクションを行わせる第1の態様と、
前記第1オブジェクトに、前記第1候補オブジェクトを対象として前記アクションを行わせる前に、前記第2候補オブジェクトを対象として前記アクションを行わせる回数が前記第2の数以下の数となるように前記アクションを行わせた後、前記第1候補オブジェクトを対象として前記アクションを行わせる第2の態様と、
のうちいずれかの態様で第1オブジェクトに前記アクションを行わせ、
前記第1オブジェクトを含む前記仮想空間を画面に表示するための表示用画像を生成させる、ゲーム処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、第1のオブジェクトが複数の第2オブジェクトのいずれかを対象としてアクションを実行するゲーム処理に関する。
【背景技術】
【0002】
従来から、例えばNPCであるオブジェクトが他のオブジェクトを所定のアクションの対象とする場合に、特定のオブジェクトが不自然に頻繁にアクションの対象にならないようにするゲームが知られている(例えば特許文献1)。このようなゲームでは、NPCが第1のオブジェクトに対して何らかのアクションをしたら、当該第1のオブジェクトの注目度を相対的に下げることで、その他のオブジェクトがアクションの対象のオブジェクトとして選ばれやすくしている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010-279460号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のゲームでは、注目度を下げることで、ある特定のオブジェクトが頻繁に行動対象とならないようにしている。その一方で、上記のゲームでは、NPCと他のオブジェクトとの距離の近さに応じて、アクションの対象を決めていた。そのため、結果的に、NPCから見て同じような距離に存在するオブジェクトがアクションの対象として連続的に選ばれてしまっていた。そのため、NPCからの距離という観点からすると、例えばNPCが生き物をモチーフにしたオブジェクトの場合、生き物の挙動・行動としては不自然な印象をプレイヤに与える虞があった。
【0005】
それ故に、本開示における目的は、NPC等のオブジェクトに生き物として自然な挙動を行わせることができるゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、例えば以下のような構成例が挙げられる。
【0007】
(構成1)
構成1は、情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、コンピュータを、配置手段と、候補決定手段と、アクション制御手段と、画像生成手段として機能させる。配置手段は、仮想空間内に1つの第1オブジェクトおよび複数の第2オブジェクトを配置する。候補決定手段は、第1オブジェクトから相対的に近い第1の範囲と相対的に遠い第2の範囲のうち、第1の範囲内に位置する1つ以上の第2オブジェクトおよび第2の範囲内に位置する1つ以上の第2オブジェクトを、第1オブジェクトが時間経過に応じて対象を切り替えて行うアクションの対象の候補である候補オブジェクトとして決定する。アクション制御手段は、上記候補オブジェクトのうち、第1の範囲内に位置する候補オブジェクトである第1候補オブジェクトが第1の数存在し、かつ、第2の範囲内に位置する候補オブジェクトである第2候補オブジェクトが第2の数存在する場合、第1オブジェクトに、第2候補オブジェクトを対象としてアクションを行わせる前に、第1候補オブジェクトを対象としてアクションを行わせる回数が第1の数以下の数となるようにアクションを行わせた後、第2候補オブジェクトを対象としてアクションを行わせる第1の態様と、第1オブジェクトに、第1候補オブジェクトを対象としてアクションを行わせる前に、第2候補オブジェクトを対象としてアクションを行わせる回数が第2の数以下の数となるようにアクションを行わせた後、第1候補オブジェクトを対象としてアクションを行わせる第2の態様と、のうちいずれかの態様で第1オブジェクトにアクションを行わせる。画像生成手段は、第1オブジェクトを含む仮想空間を画面に表示するための表示用画像を生成する。
【0008】
上記構成によれば、アクションを行う対象の第1オブジェクトからの距離について、偏りがおきることを抑制して分散させることができる。これにより、第1オブジェクトの挙動について自然な挙動を表現できる。
【0009】
(構成2)
構成2は、上記構成1において、アクション制御手段は、第2オブジェクトの各々に、当該第2オブジェクトにアクションが開始されたタイミング以降かつ、次に別の第2オブジェクトに当該アクションが開始されたタイミング以前のタイミングを基準タイミングとして関連付け、当該基準タイミングから経過した時間が長い第2オブジェクトほど優先してアクションの対象としてもよい。
【0010】
上記構成によれば、長い時間アクション対象となっていない第2オブジェクト優先してアクションの対象として決定することができる。これにより、様々な第2オブジェクトをアクションの対象として決定できる。
【0011】
(構成3)
構成3は、上記構成1又は2において、アクション制御手段は、候補オブジェクトに含まれる前記第2オブジェクトのうち、アクションの対象となったものを、当該第2オブジェクトが当該候補オブジェクトに含まれなくなるまで記憶してもよい。そして、アクションの対象となったことがない第2オブジェクトを、アクションの対象となったことのある第2オブジェクトより優先して上記アクションの対象としてもよい。
【0012】
上記構成によれば、アクションの対象になっていない第2オブジェクトを優先的にアクションの対象にできる。これにより、同じ第2オブジェクトが集中して上記対象となることを防ぐことができる。
【0013】
(構成4)
構成4は、上記構成3において、アクションの対象となったことがない第2オブジェクトのうち、第1オブジェクトから近い第2オブジェクトほど優先してアクションの対象としてもよい。
【0014】
(構成5)
構成5は、構成1において、第1オブジェクトの最も近くに位置しており、第1の範囲または第2の範囲に含まれていない状態から当該第1の範囲内に新たに含まれることとなった第1候補オブジェクトに対して、当該第1候補オブジェクトが当該第1の範囲内に新たに含まれたときに当該第1オブジェクトにアクションを行わせてもよい。
【0015】
上記構成によれば、急に目の前に現れたオブジェクトに対してアクションを行うという、より自然な挙動を第1オブジェクトに行わせることができる。
【0016】
(構成6)
構成6は、上記構成1~5において、候補決定手段は、第1の範囲および第2の範囲のそれぞれについて、第1オブジェクトの前方方向と、当該第1オブジェクトの位置から第2オブジェクトの位置に向かう方向との角度の差が小さい場合の当該第2オブジェクトを、当該角度が大きい場合の当該第2オブジェクトより優先して候補オブジェクトとして決定してもよい。
【0017】
上記構成によれば、第1オブジェクトの前方にいる第2オブジェクトを優先的に候補オブジェクトにする。これにより、第1オブジェクトの前方にいるもの、すなわち、第1オブジェクトの視野に含まれる第2オブジェクトに対してアクションを行うという、より自然な挙動を表現できる。
【0018】
(構成7)
構成7は、上記構成1において、候補決定手段は、第1の範囲および第2の範囲のそれぞれについて、第1オブジェクトの前方方向を含んで所定角度だけ広がる領域内に存在する第2オブジェクトを、当該領域内に存在しない第2オブジェクトよりも優先して候補オブジェクトとして決定してもよい。
【0019】
上記構成によれば、例えば第1オブジェクトの視野に対応する領域内の第2オブジェクトを優先的に候補オブジェクトにすることができる。これにより、第1オブジェクトが、自身の視野内の第2オブジェクトに対してアクションを行うという、より自然な挙動を表現できる。
【0020】
(構成8)
構成8は、上記構成7において、候補決定手段は、第1の範囲および第2の範囲のそれぞれについて、上記領域内に存在する第2オブジェクトのうち、第1オブジェクトから近い第2オブジェクトを、当該第1オブジェクトから遠い第2オブジェクトよりも優先して候補オブジェクトとして決定してもよい。
【0021】
(構成9)
構成9は、上記構成1~8において、第1オブジェクトは、体、顔および目の少なくとも1つを含むオブジェクトであってもよい。そして、アクション制御手段は、第1オブジェクトに、第1候補オブジェクトまたは第2候補オブジェクトを対象として、第1オブジェクトの体、顔、および視線の少なくとも1つを向けるアクションを行わせてもよい。
【0022】
上記構成によれば、どの第2オブジェクトがアクション対象となっているのかをプレイヤが把握しやすいように提示できる。
【0023】
(構成10)
構成10は、上記構成1~9において、アクション制御手段は、同じ第2オブジェクトに対して連続して前記アクションが行われることを制限してもよい。
【0024】
上記構成によれば、同一の第2オブジェクトを連続してアクション対象にしないようにでき、アクション対象の分散を促すことができる。
【0025】
(構成11)
構成11は、上記構成1~9において、アクション制御手段は、第1の態様において、1つの第1候補オブジェクトを対象として、第1の数以下の数だけ連続してアクションを行わせてもよい。
【0026】
上記構成によれば、例えば「吠える」アクション等、実行するアクションの性質や特性に応じて、より自然な挙動を第1オブジェクトに行わせることができる。
【0027】
(構成12)
構成12は、上記構成1~11において、候補決定手段は、10体以下の第2オブジェクトを候補オブジェクトとして決定してもよい。
【0028】
上記構成によれば、候補オブジェクトの数が増えすぎないようにすることで、アクションの対象とする第2オブジェクトの決定について、第1オブジェクトからの距離が偏らずに分散して決定されていることをプレイヤにわかりやすくすることができる。これにより、第1オブジェクトの挙動にプレイヤが不自然さを感じさせないようにできる。
【0029】
(構成13)
構成13は、上記構成1~12において、アクション制御手段は、第1の数と第2の数が同じ数になるように第2オブジェクトを候補オブジェクトとして決定してもよい。
【0030】
上記構成によれば、第1の範囲内及び第2の範囲内の第2オブジェクトについて、アクションを行う対象を均等に分散させることができる。
【0031】
(構成14)
構成14は、上記構成13において、仮想空間内に配置された第1オブジェクトの位置を変更する第1オブジェクト移動手段としてコンピュータを更に機能させてもよい。
【0032】
上記構成によれば、第1オブジェクトの位置変更による位置関係の変化により、候補オブジェクトとなる第2オブジェクトを切り替えることができる。
【0033】
(構成15)
構成15は、上記構成14において、1オブジェクト移動手段は、プレイヤが操作するプレイヤキャラクタに第1オブジェクトが追従するように当該第1オブジェクトの位置を変更してもよい。
【0034】
(構成16)
構成16は、上記構成1~15において、ゲームプログラムは、仮想空間内に配置された第2オブジェクトの位置を変更する第2オブジェクト移動手段として前記コンピュータを更に機能さてもよい。
【0035】
上記構成によれば、第2オブジェクトの移動によって、候補オブジェクトとなる第2オブジェクトを変更することができる。これにより、様々な第2オブジェクトをアクションの対象とすることができる。
【0036】
(構成17)
構成17は、上記構成1~16において、候補決定手段は、候補オブジェクトを所定の周期ごとに決定してもよい。
【0037】
上記構成によれば、候補オブジェクトの位置が変化した場合、その位置変化を反映することができる。
【発明の効果】
【0038】
本実施形態によれば、アクションを行う対象の第1オブジェクトからの距離的な偏りを抑制して分散させることができる。これにより、第1オブジェクトの挙動について、自然な挙動が表現できる。
【図面の簡単な説明】
【0039】
図1】本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図
図2】本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図
図3】本体装置2の一例を示す六面図
図4】左コントローラ3の一例を示す六面図
図5】右コントローラ4の一例を示す六面図
図6】本体装置2の内部構成の一例を示すブロック図
図7】本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図
図8】本実施形態に係るゲーム画面の一例
図9】本実施形態に係る処理の概要を説明するための図
図10】本実施形態に係る処理の概要を説明するための図
図11】本実施形態に係る処理の概要を説明するための図
図12】DRAM85に記憶される各種データの一例を示すメモリマップ
図13】第1オブジェクトデータ303の一例
図14】第2オブジェクトデータ304の一例
図15】候補データベース305の一例
図16】操作データ308の一例
図17】本実施形態に係るゲーム処理の詳細を示すフローチャート
図18】第1オブジェクト制御処理の詳細を示すフローチャート
図19】DB更新処理の詳細を示すフローチャート
図20】視線アクション制御処理の詳細を示すフローチャート
図21】アクション開始処理の詳細を示すフローチャート
図22】アクション継続処理の詳細を示すフローチャート
図23】候補オブジェクト選択の変形例について説明するための図
【発明を実施するための形態】
【0040】
以下、一実施形態について説明する。
【0041】
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0042】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、プレイヤが入力を行うための操作部を備える装置である。
【0043】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図1および図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0044】
図3は、本体装置2の一例を示す六面図である。図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0045】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0046】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0047】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0048】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図6に示すスピーカ88)を備えている。図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0049】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0050】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0051】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0052】
図4は、左コントローラ3の一例を示す六面図である。図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、図4における上下方向(図4に示すz軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0053】
左コントローラ3は、方向入力デバイスの一例である左アナログスティック(以下、左スティックと呼ぶ)32を備える。図4に示すように、左スティック32は、ハウジング31の主面に設けられる。左スティック32は、方向を入力することが可能な方向入力部として用いることができる。プレイヤは、左スティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、左スティック32を押下する入力が可能である。
【0054】
左コントローラ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プログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0055】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0056】
図5は、右コントローラ4の一例を示す六面図である。図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、図5における上下方向(図5に示すz軸方向)に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0057】
右コントローラ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を備える。
【0058】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0059】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図3に示す構成の他、図6に示す各構成要素81~91、97、および98を備える。これらの構成要素81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0060】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0061】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0062】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0063】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0064】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0065】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0066】
プロセッサ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は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0067】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のプレイヤは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1プレイヤが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2プレイヤが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0068】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
【0069】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0070】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0071】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0072】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0073】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図6で示しているため図7では省略している。
【0074】
左コントローラ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(登録商標)の規格に従って行われる。
【0075】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0076】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、左スティック32を備える。各ボタン103および左スティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0077】
左コントローラ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へ出力される。
【0078】
通信制御部101は、各入力部(具体的には、各ボタン103、左スティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0079】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103および左スティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
【0080】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0081】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0082】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、右スティック52、慣性センサ(加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0083】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0084】
[本実施形態におけるゲーム処理の概要]
次に、本実施形態に係るゲームシステム1で実行されるゲーム処理の動作概要を説明する。上記のように、上記ゲームシステム1では、本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能な構成となっている。本体装置2に左コントローラ3および右コントローラ4を装着した状態でゲームを遊ぶ場合は、ゲーム画像はディスプレイ12に出力される。また、左コントローラ3および右コントローラ4をそれぞれ外した状態の本体装置2単体がクレードルに装着された場合は、本体装置2が、クレードルを介してゲーム画像を据置型モニタ等に出力することもできる。本実施形態では、後者の態様でゲームプレイを行う場合を例に説明する。具体的には、左コントローラ3および右コントローラ4をそれぞれ外した状態の本体装置2単体がクレードルに装着され、本体装置2が、クレードルを介してゲーム画像等を据置型モニタ等に出力する態様である。
【0085】
[画面例]
図8は、本ゲームの舞台となる仮想ゲーム空間を仮想カメラで撮像することで生成される本ゲームの画面例である。なお、本実施形態では当該仮想ゲーム空間が3次元空間である場合を例とするが、他の実施形態では2次元空間であってもよい。図8では、プレイヤキャラクタオブジェクト(以下、PCと呼ぶ)201、第1オブジェクト202が表示されている。PC201は、プレイヤの操作対象となる、人型のオブジェクトである。第1オブジェクト202は、PC201をサポートする立場のNPCであり、眼や顔や体を有する4足歩行の動物をモチーフにしたキャラクタオブジェクトである。また、第1オブジェクト202は、基本的には、PC201の移動に追従して自動的に移動する。また、第1オブジェクト202は、プレイヤの攻撃命令操作に基づいて、所定の敵オブジェクトに攻撃を行うことも可能である。また、プレイヤが操作対象を切り替えるための所定の操作を行うことで、第1オブジェクトを操作対象とすることもできる。この場合、プレイヤは、第1オブジェクト202を直接的に移動操作等することもできる。
【0086】
更に、図8では、複数体の第2オブジェクト203も表示されている。第2オブジェクト203は、上記PC201、第1オブジェクト202以外のキャラクタオブジェクトを総称したものである。例えば、第2オブジェクト203には、「敵オブジェクト」や「関連オブジェクト」等の種別を含む。敵オブジェクトは、自律的に行動し、PC201に攻撃を仕掛けてくるようなキャラクタオブジェクトである。また、関連オブジェクトは、PC201の味方となるキャラクタオブジェクトである。関連オブジェクトは、PC201と関連付けられ、PC201の移動に追従して自動的に移動するキャラクタである。図8の例では、第2オブジェクト203が関連オブジェクトである場合を例示している。ここで、本実施形態のゲームでは、当該関連オブジェクトは、仮想ゲーム空間内のフィールド上に点在している。そして、例えば、プレイヤは、PC201を所定の関連オブジェクトに近づけた状態で所定の操作を行う。これにより、当該関連オブジェクトをPC201に関連付け、追従移動させることが可能となる(具体的には、PC201をリーダーとする「隊列」に関連オブジェクトを加えることができる)。
【0087】
上記のように、本ゲームでは、仮想ゲーム空間内のフィールド上に、関連オブジェクトや敵オブジェクト等の第2オブジェクトが点在している。そして、本実施形態では、第1オブジェクト202がこれら第2オブジェクト203に所定のアクションを行うという制御が行われる。本実施形態では、当該所定のアクションの一例として、「視線を向ける」というアクションを行う場合を例に説明する(以下、当該アクションのことを視線アクションと呼ぶ)。すなわち、本実施形態で説明する処理は、この視線を向ける制御に関するものである。具体的には、本実施形態では、視線を向ける先が特定の距離帯(距離の範囲)に偏らないように分散させるような制御を行う。
【0088】
なお、当該制御は、第1オブジェクト202のゲーム中における状態が所定の状態の場合に実行される。本実施形態では、第1オブジェクト202のゲーム中における状態として、「移動中」、「待機中」、「攻撃中」という3つの状態がある場合を想定する。「移動中」の状態は、(PC201に追従して)移動している状態であり、「攻撃中」の状態は、所定の敵オブジェクトに対して攻撃行動を行っている状態である。また、「待機中」は、移動も攻撃もしていない状態であり、典型的には、その場に留まっているような状態である。そして、本実施形態では、「待機中」や「移動中」の状態において、第1オブジェクト202が周辺の第2オブジェクト203に対して視線アクションを行う(視線を向ける)という制御が行われる。
【0089】
次に、図9図11を用いて、本実施形態における視線制御処理の概要・原理を説明する。図9図11は、第1オブジェクト202を中心とした所定範囲内の仮想ゲーム空間を俯瞰したものを示す模式図である。図9において、第1オブジェクト202は、z軸正方向を向いている状態である。そして、その周囲には、複数の第2オブジェクト203(図9では丸印で示している)が存在している状態である。本実施形態では、これら複数の第2オブジェクト203の中から、第1オブジェクト202が視線を向ける相手を決める制御が行われる。具体的には、これらの第2オブジェクト203の中から、所定数の第2オブジェクト203を、視線を向ける「候補」(以下、アクション候補と呼ぶ)として選択する。そして、これらの「候補」の中から後述する制御によって、実際に視線を向ける「対象」(以下、アクション対象と呼ぶ)を選択し、これに対して所定時間視線を向ける、という制御が行われる。以下、これら「アクション候補」および「アクション対象」の選択・決定手法の概要を説明する。
【0090】
[周辺サーチについて]
本実施形態では、まず、第1オブジェクト202の周囲にいる第2オブジェクト203を検索する(以下、サーチと呼ぶ)。そして、その結果見つかった第2オブジェクト203を、その位置に応じた3種類の距離帯に分類する。具体的には、第1オブジェクト202を中心とする所定の範囲を「近距離」、「中距離」、「遠距離」の3種類の範囲に分類する(以下、これらを総称して距離分類と呼ぶ)。図9の例では、「近距離」は円形、「中距離」「遠距離」はドーナツ形状の範囲として設定されている。近距離は、第1オブジェクト202に最も近い範囲であり、中距離は、近距離よりも相対的に遠い範囲となっている。遠距離は、近距離および中距離よりも相対的に遠い範囲となっている。そして、本実施形態では、所定の周期で、当該所定の範囲内にいる第2オブジェクト203をサーチし、これら3つの範囲のいずれかに分類する。
【0091】
ここで、第1オブジェクト202の前方(図9ではz軸正方向)側に、第1オブジェクト202の頭部を基点に所定の角度の範囲が定義されている。図9では、当該所定の角度の一例として、180度の場合を例示している。なお、この角度は、第1オブジェクト202の「視野」に相当するものでもある。以下の説明では、第1オブジェクト202を中心とする所定の範囲のうち、上記前方180度の角度に含まれる範囲のことを「視野範囲」と呼ぶ。そして、本実施形態では、上記サーチした結果から、この視野範囲に含まれる第2オブジェクト203を優先して「アクション候補」を選ぶような制御が行われる。
【0092】
[アクション候補の選択手法について]
次に、サーチ結果からのアクション候補の選択手法についてより詳しく説明する。本実施形態では、アクション候補となる第2オブジェクト203を、上記のような距離分類からそれぞれ最大3体まで選択する。また、当該選択に際しては、視野範囲に含まれるものの中で第1オブジェクト202からの直線距離で近い順で選択される。そのため、例えば「近距離」の範囲に第2オブジェクト203が4体以上いる場合は、直線距離で第1オブジェクト202に近い順で、3体まで選択されることになる。図10に、アクション候補の選択の一例を示す。図10では、アクション候補として選択された第2オブジェクト203を黒色の四角で示している。図10に示すように、「近距離」の範囲では、視野範囲内の4体の第2オブジェクト203のうち3体がアクション候補として選択されている。「中距離」の範囲については、同じく視野範囲内の7体の第2オブジェクト203のうち、直線距離が近い3体がアクション候補として選択されている。「遠距離」の範囲は、視野範囲内の第2オブジェクト203は3体であるため、これら全てがアクション候補として選択されている。
【0093】
なお、所定の距離分類における第2オブジェクト203が3体未満の場合は、同じ距離分類であって、視野範囲外にいる第2オブジェクト203から、直線距離の近い順に候補として選択される。つまり、本実施形態では、各距離分類について、なるべく候補数が3体となるような処理が行われる。但し、視野範囲外にも候補となり得る第2オブジェクト203がいない場合は、その距離分類の候補数が3体未満になることもあり得る。
【0094】
なお、候補の選択に関しては、他の実施形態では、視野範囲外の第2オブジェクト203は候補として選択しないようにしてもよい。
【0095】
[アクション対象の決定手法について]
次に、上記アクション候補からアクション対象を決定する処理について説明する。本実施形態では、アクション候補となった第2オブジェクトについて、「視線を向けられていない時間」(以下、非注目時間と呼ぶ)がカウントされる。そして、アクション対象を決定する際は、非注目時間が最も長いアクション候補がアクション対象として決定される。当該決定されたアクション対象に対して、視線アクションが開始される。視線アクションが開始されると、視線を向けられた第2オブジェクト203については、今度は、「視線が向けられている時間」(以下、注目時間と呼ぶ)がカウントされる。この際、非注目時間のカウントは停止し、そのカウンタもリセットされる。その後、所定時間視線アクションが行われると、そのアクション対象への視線アクションは終了する。なお、当該視線を向ける時間について、本実施形態では、距離が遠いほど長く視線が向けられるような調整も行われる。これは、視線を向けるという挙動の自然さを考慮したものである。
【0096】
視線アクションが終了すれば、その時点で非注目時間が最も長いアクション候補が次のアクション対象として決定される。また、視線アクションが終わったアクション対象は、アクション候補に戻り、再度、非注目時間のカウントが開始される。
【0097】
このように非注目時間に基づいてアクション対象を決定する処理を繰り返すことで、(第1オブジェクト202および第2オブジェクト203の位置関係が変わらなければ)例えば、図11に示すような順番で、視線アクションが行われ得る。図11では、(結果的に)視線を向けられた順番を四角内の数字で示している。上記のように、各距離分類についてアクション候補の上限数を3体としている。そのため、ある距離分類に視線が偏るということを防ぎ、各距離分類に均等に視線を分散させることができる。例えば、図9図11の例では、中距離範囲で第1オブジェクト202のほぼ正面に、5体の第2オブジェクト203が群れている例を示した。このような状況で、本実施形態のような処理を行わず、例えば視野範囲内の第2オブジェクト203から単純にランダムでアクション対象を決定することを想定する。この場合、第1オブジェクト202が行う視線アクションがこの5体の第2オブジェクト203の群れ(中距離範囲)に偏るような挙動となり得る。しかし、本実施形態の処理であれば、このような場合でも、視線アクションの対象(視線を向ける先)の距離分類が偏ることを抑制し、分散させることが可能となる。特に、ゲームの性質上、第2オブジェクト203がある程度群れた状態でフィールドに点在することが多いゲームの場合、例えば上記5体の第2オブジェクト203の代わりに、10体以上の第2オブジェクト203の群れがいるような場合も想定される。このような場合でも、本実施形態の処理によれば、視線を向ける先がこの10体以上の群れがいる距離分類に偏ることを抑制し、視線を向ける距離分類を分散させることが可能となる。
【0098】
また、上記のような非注目時間に基づいてアクション対象を決定することで、同じ第2オブジェクト203が連続してアクション対象として決定されることを抑制できる。そのため、様々な第2オブジェクト203がアクション対象として決定され得るようになる。
【0099】
なお、詳細は後述するが、本実施形態では、上記の制御に加え、次のような制御も行う。すなわち、「第1オブジェクト202の目の前に急に第2オブジェクト203が現れた」ような状況が発生した場合、上記のような非注目時間にかかわらず、この第2オブジェクト203をアクション対象として急遽設定するような制御も行われている。これにより、「急に目の前に現れたものに視線を向ける」というような自然な挙動を第1オブジェクト202に行わせることができる。なお、以下の説明では、このような「急に現れた第2オブジェクト」のことを「割り込みオブジェクト」と呼ぶ。
【0100】
[本実施形態のゲーム処理の詳細]
次に、図12図22を参照して、本実施形態におけるゲーム処理についてより詳細に説明する。なお、ここでは、主に、上記視線制御に関する処理について説明し、その他のゲーム処理の詳細は割愛する。
【0101】
[使用データについて]
まず、本ゲーム処理にて用いられる各種データに関して説明する。図20は、本体装置2のDRAM85に記憶される各種データの一例を示すメモリマップである。本体装置2のDRAM85には、ゲームプログラム301、PCデータ302、第1オブジェクトデータ303、第2オブジェクトデータ304、候補データベース305、前回データベース306、現在対象データ307、操作データ308等が記憶されている。
【0102】
ゲームプログラム301は、本実施形態におけるゲーム処理を実行するためのプログラムである。
【0103】
PCデータ302は、上記PC201に関するデータである。当該PCデータ302には、PC201の位置や姿勢を示すデータ、PC201のゲーム中における状態を示すデータ等が含まれている。
【0104】
第1オブジェクトデータ303は、上記第1オブジェクト202に関するデータである。図13に、第1オブジェクトデータ303のデータ構成の一例を示す。第1オブジェクトデータ303には、現在位置データ331、現在姿勢データ332、現在ステータス333、視線アクション中フラグ334、動作パラメータ335、アニメーションデータ336等が含まれている。
【0105】
現在位置データ331および現在姿勢データ321は、仮想ゲーム空間内における第1オブジェクト202の現在位置、および現在の姿勢を示すデータである。例えば、現在位置を示す情報として、仮想ゲーム空間内の3次元座標が現在位置データ331に格納される。また、第1オブジェクト202の現在姿勢を示す情報として、第1オブジェクト202のローカル座標系におけるxyz軸それぞれのベクトルを示したベクトルデータ等が現在姿勢データ332に格納される。
【0106】
現在ステータス333は、第1オブジェクト202の現在の状態を示すデータである、本実施形態では、上記のように「待機中」、「移動中」、「攻撃中」のいずれかを示す情報が設定され得る。
【0107】
視線アクション中フラグ334は、第1オブジェクトが所定のアクション対象に視線アクションを行っている状態か否かを示すためのフラグである。
【0108】
動作パラメータ335は、第1オブジェクト202の移動制御のために用いるデータである。例えば、動作パラメータ335には、第1オブジェクト202の移動方向や移動速度等を示すパラメータが含まれる。
【0109】
アニメーションデータ336は、第1オブジェクト202が行う各種動作のアニメーションを定義したデータである。具体的には、上記現在ステータス333で示される状態に対応するアニメーションや、視線アクションに係る動作のアニメーションのデータが定義されている。
【0110】
図12に戻り、第2オブジェクトデータ304は、上記第2オブジェクト203に関するデータである。図14に、第2オブジェクトデータ304のデータ構成の一例を示す。第2オブジェクトデータ304は、1レコードが1体の第2オブジェクト203に対応するよう構成されたデータベースである。当該レコードには、第2オブジェクトID341、位置情報342、姿勢情報343、候補フラグ344、アクション対象フラグ345、第1カウンタ346、第2カウンタ347の項目が少なくとも含まれる。その他、図示は省略するが、各第2オブジェクト203の動作制御を行うための動作パラメータや、第2オブジェクト203の種別を示す種別データ、外観を示す画像データ等も各レコードに含まれていてもよい。
【0111】
第2オブジェクトID341は、各第2オブジェクト203を一意に識別するためのIDである。位置情報342は、その第2オブジェクト203の仮想ゲーム空間内での現在位置を示す情報である。姿勢情報343は、その第2オブジェクト203の現在の姿勢を示す情報である。候補フラグ344は、その第2オブジェクト203が上記アクション候補になっているか否かを示すフラグである。アクション対象フラグ345は、その第2オブジェクト203が上記アクション対象になっているか否かを示すフラグである。第1カウンタ346は、上記注目時間をカウントするためのカウンタである。第2カウンタ347は、上記非注目時間をカウントするためのカウンタである。
【0112】
図12に戻り、次に、候補データベース305は、現在の上記アクション候補を示すデータベースである。図15に、候補データベース305のデータ構成の一例を示す。候補データベース305は、距離分類351として「近距離」、「中距離」、「遠距離」の項目を有しており、各距離分類351について、番号352、第2オブジェクトID353の項目を有している。上記のように、アクション候補の選択に際しては、視野範囲に含まれるものの中で第1オブジェクト202に近い順に選択される。上記番号352は、各レコードの番号を示すと共に、当該距離の近い順に対応する番号でもある。本例では、距離の近い順に昇順であるとする。そのため、「近距離」の1番目のレコードは、第1オブジェクト202に最も近い第2オブジェクト203を示すレコードとなる。また、第2オブジェクトID353は、各レコードに係る第2オブジェクト203を特定する情報であり、上記第2オブジェクトデータ304の第2オブジェクトID341に対応するIDである。
【0113】
図12に戻り、前回データベース306は、上記候補データベース305の内容をコピーしたデータベースである。後述する処理において、前回データベース306と上記候補データベース305とを比較することで、アクション候補の変化の発生等を判定するために用いられる。
【0114】
現在対象データ307は、現在、アクション対象となっている第2オブジェクト203を示すデータである。現在対象データ307には、現在のアクション対象の第2オブジェクトID341が格納される。
【0115】
操作データ308は、プレイヤが操作するコントローラから得られるデータである。すなわち、プレイヤが行った操作内容を示すデータである。図16に、操作データ308のデータ構成の一例を示す。操作データ308には、デジタルボタンデータ381と、右スティックデータ382と、左スティックデータ383と、右慣性センサデータ384と、左慣性センサデータ385とが少なくとも含まれている。デジタルボタンデータ381は、コントローラが有する各種ボタンの押下状態を示すデータである。右スティックデータ382は、上記右スティック52に対する操作内容を示すためのデータである。具体的には、x、yの2次元のデータが含まれる。左スティックデータ383は、上記左スティック32に対する操作内容を示すためのデータである。右慣性センサデータ384は、右コントローラ4の加速度センサ114や角速度センサ115の慣性センサの検出結果を示すデータである。具体的には、3軸の加速度データや3軸の角速度データが含まれる。左慣性センサデータ385は、左コントローラ3の加速度センサ104や角速度センサ105の慣性センサの検出結果を示すデータである。
【0116】
その他、図示は省略するが、ゲーム処理に必要な各種データも適宜生成され、DRAM85に格納される。
【0117】
[プロセッサ81が実行する処理の詳細]
次に、本実施形態におけるゲーム処理の詳細を説明する。なお、以下に示すフローチャートは、処理過程の単なる一例にすぎない。そのため、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判定ステップで利用される閾値も、単なる一例であり、必要に応じて他の値を採用してもよい。
【0118】
図17は、本実施形態に係るゲーム処理の詳細を示すフローチャートである。なお、図17のステップS2~S6の処理ループは、1フレーム毎に繰り返し実行される。
【0119】
[準備処理]
まず、ステップS1で、プロセッサ81は、ゲームを開始する準備のための準備処理を実行する。この処理では、ゲームフィールドを含む仮想3次元空間を構築し、PC201、第1オブジェクト202、複数の第2オブジェクト203を当該仮想3次元空間内に配置する処理が実行される。そして、各種オブジェクトが配置された仮想空間が仮想カメラで撮像されることでゲーム画像が生成され、当該画像が据置型モニタ等に出力される。また、以下の処理で用いられる各種データの初期化も行われる。
【0120】
[PC制御処理]
次に、ステップS2で、プロセッサ81は、プレイヤキャラ制御処理を実行する。この処理では、プレイヤの操作内容をPC201の動作に反映させるための処理が行われる。例えば、操作データ308に基づいてPC201の移動方向や移動速度が設定され、その設定内容に基づいてPC201を移動させる処理が実行される。
【0121】
[第1オブジェクト制御処理]
次に、ステップS3で、プロセッサ81は、第1オブジェクト制御処理を実行する。図18は、当該第1オブジェクト制御処理の詳細を示すフローチャートである。まず、ステップS11で、プロセッサ81は、第1オブジェクト202を移動させる移動制御処理を実行する。本実施形態では、第1オブジェクト202がPC201に追従して移動するような制御が行われる。その他、敵オブジェクトからの攻撃を受けてノックバックする場合等の各種の移動制御も行われる。また、例えばプレイヤが操作対象をPCから第1オブジェクト202に切り替えている場合は、プレイヤの操作内容に基づいて第1オブジェクト202の移動制御が行われる。このような第1オブジェクト202の移動により、第1オブジェクト202と各第2オブジェクト203との位置関係も変化し、上記候補データベース305の内容も変化し得る。また、この移動制御処理に伴い、第1オブジェクト202の現在位置データ331、現在姿勢データ332の内容も適宜更新される。また、それまで「待機中」だった状態から移動を開始したような場合は、現在ステータス333を「移動中」に設定する等、状況に応じて現在ステータス333の内容も適宜更新される。なお、攻撃もしておらず移動も発生していない場合は、現在ステータス333には「待機中」が設定される。
【0122】
次に、ステップS12で、プロセッサ81は、現在ステータス333が「待機中」または「移動中」か否かを判定する。当該判定の結果、いずれでもない場合は(ステップS12でNO)、プロセッサ81は、後述のステップS18に処理を進める。
【0123】
一方、現在ステータス333が「待機中」または「移動中」の場合は(ステップS12でYES)、ステップS13で、プロセッサ81は、上記の「サーチ」を行うタイミングが訪れたか否かを判定する。ここで、「サーチ」を行うタイミングについては、本実施形態では、0.1秒の周期で行われるものとする。なお、この周期は、フレームレート(例えば60fps)よりは長い周期となっている。これは、当該視線制御の処理は、毎フレーム実行するほどのリアルタイム性は要求されないことと、処理負荷軽減の観点によるものである。但し、この実行周期は一例であり、他の実施形態では毎フレーム「サーチ」の処理(および次のDB更新処理)を実行するような構成でもよい。
【0124】
[候補データベースの更新]
上記判定の結果、「サーチ」を行うタイミングが到来している場合は(ステップS13でYES)、ステップS14で、プロセッサ81は、DB更新処理を実行する。当該処理は、第1オブジェクト202の周辺の第2オブジェクト203をサーチし、その結果に基づいて候補データベース305を更新するための処理である。
【0125】
図19は、上記DB更新処理の詳細を示すフローチャートである。図19において、まず、ステップS31で、プロセッサ81は、現在の候補データベース305の内容を前回データベース306にコピーする。
【0126】
次に、ステップS32で、プロセッサ81は、第1オブジェクト202の周囲の第2オブジェクト203をサーチする。そして、その結果を示すリスト(図示は省略)を一時的に生成してDRAM85に格納する。当該リストの内容としては、例えばサーチの結果見つかった第2オブジェクト203の第2オブジェクトID341および位置情報342が含まれていてもよい。あるいは、位置情報342の代わりに、第1オブジェクト202からの距離を示す情報が含まれていてもよい。
【0127】
次に、ステップS33で、プロセッサ81は、上記リストに基づき、候補データベース305の「近距離」分類における第2オブジェクトID353を更新する。具体的には、プロセッサ81は、上記リストに基づき、上記視野範囲内に存在し、かつ、「近距離」の範囲内に存在する第2オブジェクト203を抽出する。「近距離」の範囲内か否かは、例えば、第1オブジェクト202からの直線距離が、「近距離」として予め定義された閾値(例えば仮想空間内における5m)以下であるか否かで判定される。更に、プロセッサ81は、当該抽出した第2オブジェクト203について、第1オブジェクト202からの直線距離が近い順に3体まで候補データベース305に格納されるよう、「近距離」における第2オブジェクトID353を更新する。またこの際、上記視野範囲内で、かつ、「近距離」の範囲内に存在する第2オブジェクト203が3体未満であれば、視野範囲外の「近距離」の範囲内から第2オブジェクト203が選択される。具体的には、プロセッサ81は、視野範囲外で「近距離」の範囲内の第2オブジェクト203の中から、直線距離が近い順で、「近距離」における第2オブジェクトID353を更新する。なお、視野範囲外まで見ても「近距離」の範囲内の第2オブジェクト203が3体未満の場合は、プロセッサ81は、埋まらなかったレコードについては空のレコードとする。
【0128】
次に、ステップS34で、プロセッサ81は、上記リストに基づき、候補データベース305の「中距離」分類における第2オブジェクトID353を更新する。当該処理は、「中距離」の範囲を対象として、上記ステップS33と同様の処理が行われる。
【0129】
次に、ステップS35で、プロセッサ81は、上記リストに基づき、候補データベース305の「遠距離」分類における第2オブジェクトID353を更新する。当該処理は、「遠距離」の範囲を対象として、上記ステップS33と同様の処理が行われる。
【0130】
次に、ステップS36で、プロセッサ81は、上記更新が反映された現在の候補データベース305と、上記前回データベース306とを比較する。更に、プロセッサ81は、当該比較結果に基づき、新たに候補オブジェクトとなった第2オブジェクト203、および、(今回の更新で)候補オブジェクトから外れた第2オブジェクト203を特定する。そして、プロセッサ81は、新たに候補オブジェクトとなった第2オブジェクト203について、候補フラグ344をオンに設定する。また、プロセッサ81は、今回候補オブジェクトから外れた第2オブジェクト203の候補フラグ344をオフに設定する。なお、例えば前回は「遠距離」にいたが、今回は「中距離」に近づいてきたというような、距離分類だけが変化した第2オブジェクト203については、候補オブジェクトである状態から外れたわけではないため、候補フラグ344はオンのままとなる。
【0131】
次に、ステップS37で、プロセッサ81は、上記新たに候補オブジェクトとなった第2オブジェクト203について、第2カウンタ347をリセットする。つまり、新たに候補オブジェクトとなったときから、非注目時間のカウントが開始されることになる。また、上記のような距離分類のみ変化した第2オブジェクト203については、プロセッサ81は、第2カウンタ347の値(非注目時間)をそのまま引き継ぐような処理も行う。すなわち、プロセッサ81は、前回データベース306における当該第2オブジェクト203の第2カウンタ347の値を(更新後の)候補データベース305における第2カウンタ347に設定する。
【0132】
その後、プロセッサ81は、DB更新処理を終了する。
【0133】
[視線アクションの制御]
図18に戻り、次に、ステップS15で、プロセッサ81は、視線アクション制御処理を実行する。この処理では、上記候補データベース305の中から上記アクション対象を決定して、視線アクションの実行を制御するための処理が行われる。
【0134】
図20は、上記視線アクション制御処理の詳細を示すフローチャートである。図20において、まず、ステップS41で、プロセッサ81は、前回データベース306および候補データベース305との比較に基づき、上述したような「割り込みオブジェクト」が存在するか否かを判定する。具体的には、プロセッサ81は、候補データベース305の「近距離」分類の1番目のレコードに対応する第2オブジェクト203が、前回データベース306に存在していたか否かを判定する。上記のように、当該「近距離」分類の1番目のレコードは、第1オブジェクト202に最も近い第2オブジェクト203を示すレコードである。当該判定の結果、存在していた場合は、当該第2オブジェクト203は、候補オブジェクトである状態のまま、第1オブジェクト202との位置関係が変化したに過ぎないと考えられる。そのため、当該1番目のレコードに係る第2オブジェクト203は、「割り込みオブジェクト」に該当せず、「割り込みオブジェクト」が存在していないと判定される。一方、存在していない場合は、当該1番目のレコードに係る第2オブジェクト203は「割り込みオブジェクト」に該当すると考えられる。例えば、前回のサーチ時は第1オブジェクト202の至近距離ではあるが視野範囲外にいたものが、今回のサーチの結果、視野範囲内に入ってきたような場合が考えられる。この場合は、第1オブジェクト202から見ると急に現れたように見えることになるため、「割り込みオブジェクト」として扱われる。そのため、この場合は、「割り込みオブジェクト」が存在すると判定されることになる。
【0135】
上記判定の結果、「割り込みオブジェクト」が存在していない場合は(ステップS41でNO)、次に、ステップS42で、プロセッサ81は、第1オブジェクト202は視線アクションを実行中か否かを視線アクション中フラグ334に基づいて判定する。当該判定の結果、視線アクション中ではない場合は(ステップS42でNO)、ステップS43で、プロセッサ81は、候補データベース305の中から、第2カウンタ347(非注目時間)が最も長い第2オブジェクト203を上記アクション対象として決定する。そして、プロセッサ81は、当該第2オブジェクト203のアクション対象フラグ345をオンに設定する。更に、プロセッサ81は、現在対象データ307に、当該決定した第2オブジェクト203の第2オブジェクトID341を設定する。
【0136】
次に、ステップS44で、プロセッサ81は、アクション開始処理を実行する。この処理は、視線アクションを開始するに際して、その実行に必要な各種設定を行うための処理である。図21は、アクション開始処理の詳細を示すフローチャートである。まず、ステップS61で、プロセッサ81は、アクション対象と第1オブジェクト202との距離に基づき、視線アクションを実行する時間(以下、実行時間)を決定する。例えば、プロセッサ81は、予め定義されている「基本時間」に距離を乗じた時間を上記実行時間として決定する。
【0137】
なお、上記「基本時間」は、第2オブジェクト203毎に異なる時間が設定されていてもよい。例えば、サイズが大きな第2オブジェクト203は、相対的にサイズが小さな第2オブジェクト203よりも長い「基本時間」が設定されていてもよい。また、この場合は、上記第2オブジェクトデータ304の各レコードに当該「基本時間」を持たせる構成としてもよい。また、他の実施形態では、「視線アクションに係るアニメーションの再生時間」を当該「基本時間」として扱ってもよい。
【0138】
次に、ステップS62で、プロセッサ81は、視線アクションの実行における第1オブジェクト202の姿勢や動作パラメータを設定する。具体的には、プロセッサ81は、第1オブジェクト202の視線がアクション対象の方向を向くような動作を行うように、第1オブジェクト202の現在姿勢データ332や動作パラメータ335を設定する。例えば、第1オブジェクト202の頭部(顔)がアクション対象の方向に向くような設定が行われる。あるいは、第1オブジェクト202の「目」の部分について、その視線がアクション対象の方向を向くような設定が行われる。あるいは、体全体がアクション対象の方向を向くような動作を行うように設定されてもよい。
【0139】
次に、ステップS63で、プロセッサ81は、アクション対象の第1カウンタ346および第2カウンタ347の値をリセットする。つまり、上記注目時間および非注目時間を一旦リセットする。
【0140】
次に、ステップS64で、プロセッサ81は、視線アクション中フラグ334にオンを設定する。以上で、アクション開始処理は終了する。
【0141】
図20に戻り、アクション開始処理が終われば、プロセッサ81は、視線アクション制御処理を終了する。
【0142】
一方、上記ステップS42の判定の結果、視線アクションを実行中の場合は(ステップS42でYES)、ステップS45で、プロセッサ81は、アクション継続処理を実行する。図22は、アクション継続処理の詳細を示すフローチャートである。図22において、まず、ステップS71で、プロセッサ81は、視線アクションを終了するためのアクション完了条件が満たされたか否かを判定する。当該アクション完了条件は、本実施形態では以下のような条件である。
(1)上記実行時間が経過したこと。
(2)実行時間経過前であっても、アクション対象が候補データベース305から外れたこと。
上記条件のいずれかが満たされれば、アクション完了条件が満たされたと判定される。つまり、上記実行時間だけ視線を向け続ければ、第1オブジェクト202は視線アクションを終了して、別の候補オブジェクトに視線を向けることになる。あるいは、実行時間が経過する前に、対象オブジェクトが移動した結果、または第1オブジェクト202が移動した結果、候補データベース305に含まれなくなるような位置関係になった場合も、その時点で視線アクションは終了することになる。
【0143】
上記判定の結果、アクション完了条件が満たされていない場合は(ステップS71でNO)、ステップS72で、プロセッサ81は、第1オブジェクト202に、動作パラメータ335に基づき、視線アクションに係る動作を継続させる。その後、プロセッサ81は、アクション継続処理を終了する。
【0144】
一方、上記ステップS71の判定の結果、アクション完了条件が満たされた場合は(ステップS71でYES)、ステップS73で、プロセッサ81は、現在対象データ307に基づき特定される第2オブジェクト203のアクション対象フラグ345にオフを設定する。続くステップS74で、プロセッサ81は、視線アクション中フラグ334にオフを設定する。その後、プロセッサ81はアクション継続処理を終了する。
【0145】
図20に戻り、次に、上記ステップS41の判定の結果、割り込みオブジェクトがいる場合の処理(ステップS41でYES)について説明する。この場合は、まず、ステップS46で、プロセッサ81は、視線アクション中フラグ334に基づき、第1オブジェクト202が上記視線アクションを実行中か否かを判定する。当該判定の結果、実行中の場合は(ステップS46でYES)、現在、割り込みオブジェクト以外の第2オブジェクト203に視線アクションが行われている状態である。この場合は、ステップS47で、プロセッサ81は、現在対象データ307に基づき特定される第2オブジェクト203のアクション対象フラグ345にオフを設定する。つまり、現在実行中の視線アクションは中断されることになる。
【0146】
一方、視線アクション実行中ではない場合は(ステップS46でNO)、上記ステップS47の処理はスキップされる。
【0147】
次に、ステップS48で、プロセッサ81は、上記割り込みオブジェクトのアクション対象フラグ345にオンを設定する、これにより、割り込みオブジェクトがアクション対象として設定されることになる。その結果、割り込みオブジェクトに対して視線アクションが行われることになる。
【0148】
次に、ステップS49で、プロセッサ81は、アクション開始処理を行う、当該処理は、上記ステップS44と同様の処理であるため、説明は割愛する。
【0149】
次に、ステップS50で、プロセッサ81は、現在の候補データベース305を前回データベース306にコピーする。これにより、次のサーチのタイミングが来るまでの間、上記ステップS41の判定で割り込みオブジェクトが存在すると判定されないようになる。その後、プロセッサ81は、視線アクション制御処理を終了する。
【0150】
[非注目時間のカウント]
図18に戻り、視線アクション制御処理が終了すれば、次に、ステップS16で、プロセッサ81は、非注目時間をカウント(計時)する処理を実行する。具体的には、プロセッサ81は、候補フラグ344はオンであり、かつ、アクション対象フラグ345がオフである第2オブジェクトの第2カウンタ347をカウントアップする。
【0151】
[注目時間のカウント]
次に、ステップS17で、プロセッサ81は、アクション対象の注目時間をカウントする処理を実行する。具体的には、プロセッサ81は、候補フラグ344がオンで、かつ、アクション対象フラグ345もオンの第2オブジェクト203(換言すれば、現在対象データ307に基づき特定される第2オブジェクト203)の第1カウンタ346をカウントアップする。
【0152】
[その他の操作に基づく処理]
次に、ステップS18で、プロセッサ81は、第1オブジェクト202に係るその他の動作制御を行う。つまり、上記のような視線制御以外の動作制御が行われる。例えば、第1オブジェクト202の現在ステータス333に応じたアニメーションを再生する制御が行われる(走っているアニメーションや、攻撃行動のアニメーション等)。その後、プロセッサ81は、第1オブジェクト制御処理を終了する。
【0153】
[第2オブジェクトの動作制御]
図17に戻り、次に、ステップS4で、プロセッサ81は、第2オブジェクト制御処理を実行する。具体的には、プロセッサ81は、各第2オブジェクト203(関連オブジェクト、敵オブジェクト等)の移動や攻撃等の各種動作を制御する。例えば、敵オブジェクトであれば、PCや第1オブジェクト202を攻撃するために近づいてくるような制御が行われ得る。そして、第2オブジェクト203の移動によって、第1オブジェクト202と第2オブジェクト203との位置関係も変化し得る。その結果、候補データベース305の内容も変化し得ることになる。
【0154】
[ゲーム画像の出力]
次に、ステップS5で、プロセッサ81は、ゲーム画像出力制御処理を実行する。すなわち、プロセッサ81は、上記のゲーム処理が反映された仮想ゲーム空間を仮想カメラで撮像し、ゲーム画像を生成する。そして、プロセッサ81は、当該ゲーム画像を上記据え置き型モニタ等に出力する。
【0155】
次に、ステップS6で、プロセッサ81は、ゲーム処理の終了条件が満たされたか否かを判定する。例えば、プレイヤによるゲーム終了指示操作があったか否かを判定する。その結果、終了条件が満たされていなければ(ステップS6でNO)、上記ステップS1に戻り、処理が繰り返される。終了条件が満たされていれば(ステップS6でYES)、プロセッサ81は、当該ゲーム処理を終了する。
【0156】
以上で、本実施形態に係るゲーム処理の詳細説明を終了する。
【0157】
このように、本実施形態では、第1オブジェクト202の周辺の第2オブジェクト203を、上記距離分類毎に、分類する。また、各距離分類については、候補オブジェクトとする数について上限数を設けている。そして、候補オブジェクトの中から、上記非注目時間に基づいて、アクション対象を決定している。上記のように各距離分類の候補オブジェクト数に上限があるため、アクション対象の距離分類を偏らせることなく分散させることができる。
【0158】

なお、本実施形態では、各距離分類の候補オブジェクトの上限数を3体とし、候補全体で9体を上限数とする例を示した。この候補上限数は一例であり、他の実施形態では、上限数は他の値としてもよい。但し、候補オブジェクト数が多すぎると、距離分類に応じた分散効果がプレイヤの目から見てわかりにくくなることに鑑みて、候補全体で10体を上限数とするようにしてもよい。また、各距離分類の候補上限数が異なっていてもよい。例えば、「近距離」および「中距離」の候補上限数を3体、「遠距離」の候補上限数は2体としてもよい。
【0159】
また、本実施形態では、第1オブジェクトとして4足歩行の動物をモチーフにしたキャラクタオブジェクトを例示した。これに限らず、他の実施形態では、視線を向けるという動作が可能な生物をモチーフとしたオブジェクトにしてもよい。あるいは、例えばカメラを有するロボット等の無機物のオブジェクトとしてもよい。更に、そのオブジェクトのモチーフ等に応じて、上記視野範囲を変更してもよい。上記の例では視野に相当する角度として180度の場合を例示したが、これに限らず、150度や120度のような角度による範囲を視野範囲としてもよい。例えば、上記モチーフが肉食動物と草食動物との場合で、異なる視野範囲を用いてもよい。
【0160】
また、上記候補オブジェクトの選択に関して、上記の例では第1オブジェクト202からの直線距離が近いものを優先的に選択する例を示した。他の実施形態では、例えば、図23に示すように、第1オブジェクト202の前方方向(正面方向)に延びる直線と、第1オブジェクト202から各第2オブジェクト203に向かう直線の角度差が小さいものを優先的に選択するようにしてもよい。図23の例では、第2オブジェクト203A、203Cよりも、第2オブジェクト203Bのほうが当該角度差が小さいため、候補オブジェクトとして優先的に選択され得る。
【0161】
また、他の実施形態では、第1オブジェクト202については、その位置が固定されていてもよい。あるいは、その移動可能な範囲(行動範囲)が限られていてもよい。この場合は、第1オブジェクト202と第2オブジェクト203との距離を算出することなく、第2オブジェクト203がいる場所やエリアに基づいて、各第2オブジェクト203を分類してもよい。例えば、第1オブジェクト202が空中に存在しており、第2オブジェクト203Aが水上に、第2オブジェクト203Bが水中にいるような場合を想定する。この場合、水上のいる第2オブジェクト203Aは「中距離」とし、水中にいる第2オブジェクト203Bは「遠距離」に分類してもよい。
【0162】
また、他の実施形態では、上記とは逆に、第2オブジェクト203について、その位置が固定されていてもよく、あるいは、行動範囲が制限されていてもよい。この場合は、第1オブジェクト202がいる場所やエリアに基づいて、第2オブジェクト203を分類すればよい。
【0163】
また、更に他の実施形態では、所定範囲内に存在する第2オブジェクト203との距離の平均値を用いて、各第2オブジェクト203を分類してもよい。例えば、距離分類について「近距離」と「遠距離」の2つの範囲だけ用いるような場合を想定する。この場合、上記平均値を閾値として、平均値以上であれば「遠距離」、平均値未満であれば「近距離」と分類してもよい。
【0164】
また、アクション対象を決定する処理に関して、非注目時間が同じ候補オブジェクトが複数体あった場合は、第1オブジェクト202との距離が近いものが優先的にアクション対象として決定されるような制御を行ってもよい。
【0165】
また、アクション対象を決定する処理に関して、上記実施形態では、非注目時間が最も長い候補オブジェクトをアクション対象として決定していた。他の実施形態では、この決定に際して、ランダム性を持たせるような制御を行ってもよい。例えば、アクション対象の決定自体は抽選処理で行うようにし、非注目時間が長いものほど、当選率が高くなるような制御を行ってもよい。
【0166】
また、他の実施形態では、上記アクション対象を決定する際に、視線アクションが実行されていない候補オブジェクトが優先的に決定されるようにしてもよい。この場合は、視線アクションを行った第2オブジェクト203の情報を実行履歴として記憶するようにすればよい。例えば上記図22のステップS71の判定でアクション完了条件が満たされたと判定された場合に、そのときのアクション対象を特定する情報を上記実行履歴に登録する処理を行えばよい。そして、上記図20のステップS43の処理において、アクション対象を決定する際に、当該実行履歴を参照し、そこに登録されていない第2オブジェクト203をアクション対象として優先的に決定するような処理を行えばよい。更に、実行履歴に登録されていない第2オブジェクト203からアクション対象を決定する際に、第1オブジェクト202に近い第2オブジェクト203ほど優先して決定するようにしてもよい。また、当該実行履歴に登録された第2オブジェクト203については、候補データベース305から外れた時点で、当該実行履歴からも消去すればよい。
【0167】
また、アクション対象の決定に関して、例えば、第2オブジェクトとして、味方キャラクタと敵キャラクタとが混在している場合は、敵キャラクタを優先的にアクション対象として決定してもよい。
【0168】
また、上記第2オブジェクトについては、上記のような(移動し得る)キャラクタオブジェクトに限らず、例えばアイテム等の無生物のオブジェクトであってもよい。
【0169】
また、上記非注目時間のカウントのタイミングに関して、上記の例では、視線アクションの開始タイミングで非注目時間をリセットしていた(実質的にカウントの停止)。そして、視線アクションが終了したタイミング(アクション対象ではなくなったタイミング)で非注目時間を再度カウント開始するような処理例を示した。つまり、視線アクションが終了したタイミングを基準タイミングとして、そこからの経過時間を非注目時間として扱う例を示した。この他、視線アクションが開始したタイミングを基準タイミングとして、非注目時間のリセットおよび再カウントの開始を行うようにしてもよい。
【0170】
また、上記実施形態では、第1オブジェクト202が第2オブジェクト203に対して行うアクションとして、「視線を向ける」というアクションを例示した。他の実施形態では、当該アクションとして他のアクションを行うようにしてもよい。例えば、「吠える」というアクションを行わせてもよい。また例えば、「遠距離攻撃(射撃等)」を当該アクションとして行わせてもよい。
【0171】
また、第1オブジェクト202が実行するアクションの内容によっては、同じ第2オブジェクトを連続してアクション対象として決定するようにしてもよい。例えば上記「吠える」というアクションであれば、同じ第2オブジェクト203に連続して3回~5回「吠える」アクションを行うようにしてもよい。これにより、同じ相手に吠え続ける、という動作を第1オブジェクト202に行わせることができる。そして、所定の回数だけアクションを実行すれば、他の候補オブジェクトをアクション対象として決定するようにしてもよい。
【0172】
また、上記実施形態では、第2オブジェクト203毎に第2カウンタ347(非注目時間)を持たせるデータ構成としていた。そして、第2オブジェクト203が候補データベース305に新規登録されたタイミングで、第2カウンタ347をリセットする処理を例示した。つまり、同じ第2オブジェクト203について、候補データベース305に一旦登録された後、その登録が解除され、その後再度登録された場合は、非注目時間をカウントし直すような処理を例示していた。この点、他の実施形態では、候補データベース305に登録されたタイミングにおける第2カウンタ347のリセットは行わないようにしてもよい。すなわち、視線アクションが行われるまでは、各第2オブジェクト203は、候補データベース305への出入りにかかわらず、非注目時間を引き継ぐような処理を行ってもよい。
【0173】
また、上記「割り込みオブジェクト」に関して、他の実施形態では、一旦「割り込みオブジェクト」が存在すると判定された後、一定時間は他の「割り込みオブジェクト」が発生しないような制御を行ってもよい。例えば、「割り込みオブジェクト」が存在すると判定された場合、その後5秒間は、上記視野範囲内に第2オブジェクト203が移動してこないような制御を行ってもよい。あるいは、移動制限等は設けずに、当該割り込みオブジェクトに対する視線アクションが終了するまでは、上記のような「割り込みオブジェクト」の存在を判定する処理(ステップS41)が行われないようにしてもよい。これにより、「割り込みオブジェクト」が短時間で連続して発生した結果、第1オブジェクトの首が激しく動くような挙動となることを防ぎ、より自然な挙動を第1オブジェクトに行わせることができる。
【0174】
また、上記実施形態では、上記実行時間の計時について、アクション対象の注目時間(第1カウンタ346)をカウントアップする例を挙げた。この他、他の実施形態では、実行時間が0になるまでカウントダウンする処理を行ってもよい。この場合は、実行時間が決定された際に、上記第1カウンタ346が当該決定された実行時間となるよう設定すればよい。そして、視線アクションが開始されたタイミングから0になるまで第1カウンタ346をカウントダウンする処理を行ってもよい。
【0175】
また、上記実施形態においては、ゲーム処理に係る一連の処理を単一の本体装置2で実行される場合を説明した。他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。更には、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。また、いわゆるクラウドゲーミングの構成としてもよい。例えば、本体装置2は、プレイヤの操作を示す操作データを所定のサーバに送り、当該サーバにおいて各種ゲーム処理が実行され、その実行結果が動画・音声として本体装置2にストリーミング配信されるような構成としてもよい。
【符号の説明】
【0176】
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
81 プロセッサ
84 フラッシュメモリ
85 DRAM
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
【手続補正書】
【提出日】2023-08-04
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0107
【補正方法】変更
【補正の内容】
【0107】
視線アクション中フラグ334は、第1オブジェクト202が所定のアクション対象に視線アクションを行っている状態か否かを示すためのフラグである。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0121
【補正方法】変更
【補正の内容】
【0121】
[第1オブジェクト制御処理]
次に、ステップS3で、プロセッサ81は、第1オブジェクト制御処理を実行する。図18は、当該第1オブジェクト制御処理の詳細を示すフローチャートである。まず、ステップS11で、プロセッサ81は、第1オブジェクト202を移動させる移動制御処理を実行する。本実施形態では、第1オブジェクト202がPC201に追従して移動するような制御が行われる。その他、敵オブジェクトからの攻撃を受けてノックバックする場合等の各種の移動制御も行われる。また、例えばプレイヤが操作対象をPC201から第1オブジェクト202に切り替えている場合は、プレイヤの操作内容に基づいて第1オブジェクト202の移動制御が行われる。このような第1オブジェクト202の移動により、第1オブジェクト202と各第2オブジェクト203との位置関係も変化し、上記候補データベース305の内容も変化し得る。また、この移動制御処理に伴い、第1オブジェクト202の現在位置データ331、現在姿勢データ332の内容も適宜更新される。また、それまで「待機中」だった状態から移動を開始したような場合は、現在ステータス333を「移動中」に設定する等、状況に応じて現在ステータス333の内容も適宜更新される。なお、攻撃もしておらず移動も発生していない場合は、現在ステータス333には「待機中」が設定される。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0142
【補正方法】変更
【補正の内容】
【0142】
一方、上記ステップS42の判定の結果、視線アクションを実行中の場合は(ステップS42でYES)、ステップS45で、プロセッサ81は、アクション継続処理を実行する。図22は、アクション継続処理の詳細を示すフローチャートである。図22において、まず、ステップS71で、プロセッサ81は、視線アクションを終了するためのアクション完了条件が満たされたか否かを判定する。当該アクション完了条件は、本実施形態では以下のような条件である。
(1)上記実行時間が経過したこと。
(2)実行時間経過前であっても、アクション対象が候補データベース305から外れたこと。
上記条件のいずれかが満たされれば、アクション完了条件が満たされたと判定される。つまり、上記実行時間だけ視線をアクション対象に向け続ければ、第1オブジェクト202は視線アクションを終了して、別の候補オブジェクトに視線を向けることになる。あるいは、実行時間が経過する前に、対象オブジェクトが移動した結果、または第1オブジェクト202が移動した結果、候補データベース305に含まれなくなるような位置関係になった場合も、その時点で視線アクションは終了することになる。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0153
【補正方法】変更
【補正の内容】
【0153】
[第2オブジェクトの動作制御]
図17に戻り、次に、ステップS4で、プロセッサ81は、第2オブジェクト制御処理を実行する。具体的には、プロセッサ81は、各第2オブジェクト203(関連オブジェクト、敵オブジェクト等)の移動や攻撃等の各種動作を制御する。例えば、敵オブジェクトであれば、PC201や第1オブジェクト202を攻撃するために近づいてくるような制御が行われ得る。そして、第2オブジェクト203の移動によって、第1オブジェクト202と第2オブジェクト203との位置関係も変化し得る。その結果、候補データベース305の内容も変化し得ることになる。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0160
【補正方法】変更
【補正の内容】
【0160】
また、上記候補オブジェクトの選択に関して、上記の例では第1オブジェクト202からの直線距離が近いものを優先的に選択する例を示した。他の実施形態では、例えば、図23に示すように、第1オブジェクト202の前方方向(正面方向)に延びる直線と、第1オブジェクト202から各第2オブジェクト203に向かう直線の角度が小さいものを優先的に選択するようにしてもよい。図23の例では、第2オブジェクト203A、203Cよりも、第2オブジェクト203Bのほうが当該角度が小さいため、候補オブジェクトとして優先的に選択され得る。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0163
【補正方法】変更
【補正の内容】
【0163】
また、更に他の実施形態では、第1オブジェクト202と、所定範囲内に存在する第2オブジェクト203との距離の平均値を用いて、各第2オブジェクト203を分類してもよい。例えば、距離分類について「近距離」と「遠距離」の2つの範囲だけ用いるような場合を想定する。この場合、上記平均値を閾値として、平均値以上であれば「遠距離」、平均値未満であれば「近距離」と分類してもよい。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0173
【補正方法】変更
【補正の内容】
【0173】
また、上記「割り込みオブジェクト」に関して、他の実施形態では、一旦「割り込みオブジェクト」が存在すると判定された後、一定時間は他の「割り込みオブジェクト」が発生しないような制御を行ってもよい。例えば、「割り込みオブジェクト」が存在すると判定された場合、その後5秒間は、上記視野範囲内に第2オブジェクト203が移動してこないような制御を行ってもよい。あるいは、移動制限等は設けずに、当該割り込みオブジェクトに対する視線アクションが終了するまでは、上記のような「割り込みオブジェクト」の存在を判定する処理(ステップS41)が行われないようにしてもよい。これにより、「割り込みオブジェクト」が短時間で連続して発生した結果、第1オブジェクト202の首が激しく動くような挙動となることを防ぎ、より自然な挙動を第1オブジェクト202に行わせることができる。
【手続補正書】
【提出日】2023-10-12
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータにおいて実行されるゲームプログラムであって、
前記コンピュータを、
仮想空間内に1つの第1オブジェクトおよび複数の第2オブジェクトを配置する配置手段と、
前記第1オブジェクトを中心とする所定の範囲内において、当該第1オブジェクトから相対的に近い第1の範囲と相対的に遠い第2の範囲のうち、当該第1の範囲内に位置する1つ以上の前記第2オブジェクトおよび当該第2の範囲内に位置する1つ以上の前記第2オブジェクトを、当該第1オブジェクトが時間経過に応じて対象を切り替えて行うアクションの対象の候補である候補オブジェクトとして決定する候補決定手段と、
前記候補オブジェクトのうち、前記第1の範囲内に位置する前記候補オブジェクトである第1候補オブジェクトが第1の数存在し、かつ、前記第2の範囲内に位置する前記候補オブジェクトである第2候補オブジェクトが第2の数存在する場合、
前記第1オブジェクトに、前記第2候補オブジェクトを対象として前記アクションを行わせる前に、前記第1候補オブジェクトを対象として前記アクションを行わせる回数が前記第1の数以下の数となるように前記アクションを行わせた後、前記第2候補オブジェクトを対象として前記アクションを行わせる第1の態様と、
前記第1オブジェクトに、前記第1候補オブジェクトを対象として前記アクションを行わせる前に、前記第2候補オブジェクトを対象として前記アクションを行わせる回数が前記第2の数以下の数となるように前記アクションを行わせた後、前記第1候補オブジェクトを対象として前記アクションを行わせる第2の態様と、
のうちいずれかの態様で第1オブジェクトに前記アクションを行わせるアクション制御手段と、
前記第1オブジェクトを含む前記仮想空間を画面に表示するための表示用画像を生成する画像生成手段として機能させる、ゲームプログラム。
【請求項2】
前記アクション制御手段は、
前記第2オブジェクトの各々に、当該第2オブジェクトに前記アクションが開始されたタイミング以降かつ、次に別の前記第2オブジェクトに当該アクションが開始されたタイミング以前のタイミングを基準タイミングとして関連付け、
前記基準タイミングから経過した時間が長い前記第2オブジェクトほど優先して前記アクションの対象とする、請求項1に記載のゲームプログラム。
【請求項3】
前記アクション制御手段は、
前記候補オブジェクトに含まれる前記第2オブジェクトのうち、前記アクションの対象となったものを、当該第2オブジェクトが当該候補オブジェクトに含まれなくなるまで記憶し、
前記アクションの対象となったことがない前記第2オブジェクトを、前記アクションの対象となったことのある前記第2オブジェクトより優先して前記アクションの対象とする、請求項1に記載のゲームプログラム。
【請求項4】
前記アクション制御手段は、前記アクションの対象となったことがない前記第2オブジェクトのうち、前記第1オブジェクトから近い第2オブジェクトほど優先して前記アクションの対象とする、請求項3に記載のゲームプログラム。
【請求項5】
前記第1オブジェクトの最も近くに位置しており、前記第1の範囲または第2の範囲に含まれていない状態から当該第1の範囲内に新たに含まれることとなった前記第1候補オブジェクトに対して、当該第1候補オブジェクトが当該第1の範囲内に新たに含まれたときに当該第1オブジェクトに前記アクションを行わせる、請求項1に記載のゲームプログ
ラム。
【請求項6】
前記候補決定手段は、前記第1の範囲および前記第2の範囲のそれぞれについて、前記第1オブジェクトの前方方向と、当該第1オブジェクトの位置から前記第2オブジェクトの位置に向かう方向との角度の差が小さい場合の当該第2オブジェクトを、当該角度が大きい場合の当該第2オブジェクトより優先して前記候補オブジェクトとして決定する、請求項1に記載のゲームプログラム
【請求項7】
前記候補決定手段は、前記第1の範囲および前記第2の範囲のそれぞれについて、前記第1オブジェクトの前方方向を含んで所定角度だけ広がる領域内に存在する前記第2オブジェクトを当該領域内に存在しない第2オブジェクトよりも優先して前記候補オブジェクトとして決定する、請求項1に記載のゲームプログラム。
【請求項8】
前記候補決定手段は、前記第1の範囲および前記第2の範囲のそれぞれについて、
前記領域内に存在する第2オブジェクトのうち、前記第1オブジェクトから近い第2オブジェクトを、前記第1オブジェクトから遠い第2オブジェクトよりも優先して前記候補オブジェクトとして決定する、請求項7に記載のゲームプログラム。
【請求項9】
前記第1オブジェクトは、体、顔および目の少なくとも1つを含むオブジェクトであり、
前記アクション制御手段は、前記第1オブジェクトに、前記第1候補オブジェクトまたは前記第2候補オブジェクトを対象として、前記第1オブジェクトの体、顔、および視線の少なくとも1つを向ける前記アクションを行わせる、請求項1に記載のゲームプログラム。
【請求項10】
前記アクション制御手段は、同じ前記第2オブジェクトに対して連続して前記アクションが行われることを制限する、請求項1に記載のゲームプログラム。
【請求項11】
前記アクション制御手段は、前記第1の態様において、1つの前記第1候補オブジェクトを対象として、前記第1の数以下の数だけ連続して前記アクションを行わせる、請求項1に記載のゲームプログラム。
【請求項12】
前記候補決定手段は、10体以下の前記第2オブジェクトを前記候補オブジェクトとして決定する、請求項1に記載のゲームプログラム。
【請求項13】
前記アクション制御手段は、前記第1の数と前記第2の数が同じ数になるように前記第2オブジェクトを前記候補オブジェクトとして決定する、請求項1に記載のゲームプログラム。
【請求項14】
前記ゲームプログラムは、前記仮想空間内に配置された前記第1オブジェクトの位置を変更する第1オブジェクト移動手段として前記コンピュータを更に機能させる、請求項13に記載のゲームプログラム。
【請求項15】
前記第1オブジェクト移動手段は、プレイヤが操作するプレイヤキャラクタに前記第1オブジェクトが追従するように当該第1オブジェクトの位置を変更する、請求項14に記載のゲームプログラム。
【請求項16】
前記ゲームプログラムは、前記仮想空間内に配置された前記第2オブジェクトの位置を変更する第2オブジェクト移動手段として前記コンピュータを更に機能させる、請求項1に記載のゲームプログラム。
【請求項17】
前記候補決定手段は、前記候補オブジェクトを所定の周期ごとに決定する、請求項1に記載のゲームプログラム。
【請求項18】
仮想空間内に1つの第1オブジェクトおよび複数の第2オブジェクトを配置する配置手段と、
前記第1オブジェクトを中心とする所定の範囲内において、当該第1オブジェクトから相対的に近い第1の範囲と相対的に遠い第2の範囲のうち、当該第1の範囲内に位置する1つ以上の前記第2オブジェクトおよび当該第2の範囲内に位置する1つ以上の前記第2オブジェクトを、当該第1オブジェクトが時間経過に応じて対象を切り替えて行うアクションの対象の候補である候補オブジェクトとして決定する候補決定手段と、
前記候補オブジェクトのうち、前記第1の範囲内に位置する前記候補オブジェクトである第1候補オブジェクトが第1の数存在し、かつ、前記第2の範囲内に位置する前記候補オブジェクトである第2候補オブジェクトが第2の数存在する場合、
前記第1オブジェクトに、前記第2候補オブジェクトを対象として前記アクションを行わせる前に、前記第1候補オブジェクトを対象として前記アクションを行わせる回数が前記第1の数以下の数となるように前記アクションを行わせた後、前記第2候補オブジェクトを対象として前記アクションを行わせる第1の態様と、
前記第1オブジェクトに、前記第1候補オブジェクトを対象として前記アクションを行わせる前に、前記第2候補オブジェクトを対象として前記アクションを行わせる回数が前記第2の数以下の数となるように前記アクションを行わせた後、前記第1候補オブジェクトを対象として前記アクションを行わせる第2の態様と、
のうちいずれかの態様で第1オブジェクトに前記アクションを行わせるアクション制御手段と、
前記第1オブジェクトを含む前記仮想空間を画面に表示するための表示用画像を生成する画像生成手段と、を備える、ゲーム装置。
【請求項19】
仮想空間内に1つの第1オブジェクトおよび複数の第2オブジェクトを配置する配置手段と、
前記第1オブジェクトを中心とする所定の範囲内において、当該第1オブジェクトから相対的に近い第1の範囲と相対的に遠い第2の範囲のうち、当該第1の範囲内に位置する1つ以上の前記第2オブジェクトおよび当該第2の範囲内に位置する1つ以上の前記第2オブジェクトを、当該第1オブジェクトが時間経過に応じて対象を切り替えて行うアクションの対象の候補である候補オブジェクトとして決定する候補決定手段と、
前記候補オブジェクトのうち、前記第1の範囲内に位置する前記候補オブジェクトである第1候補オブジェクトが第1の数存在し、かつ、前記第2の範囲内に位置する前記候補オブジェクトである第2候補オブジェクトが第2の数存在する場合、
前記第1オブジェクトに、前記第2候補オブジェクトを対象として前記アクションを行わせる前に、前記第1候補オブジェクトを対象として前記アクションを行わせる回数が前記第1の数以下の数となるように前記アクションを行わせた後、前記第2候補オブジェクトを対象として前記アクションを行わせる第1の態様と、
前記第1オブジェクトに、前記第1候補オブジェクトを対象として前記アクションを行わせる前に、前記第2候補オブジェクトを対象として前記アクションを行わせる回数が前記第2の数以下の数となるように前記アクションを行わせた後、前記第1候補オブジェクトを対象として前記アクションを行わせる第2の態様と、
のうちいずれかの態様で第1オブジェクトに前記アクションを行わせるアクション制御手段と、
前記第1オブジェクトを含む前記仮想空間を画面に表示するための表示用画像を生成する画像生成手段と、を備える、情報処理システム。
【請求項20】
情報処理装置のコンピュータにおいて実行させるゲーム処理方法であって、
前記コンピュータに、
仮想空間内に1つの第1オブジェクトおよび複数の第2オブジェクトを配置させ、
前記第1オブジェクトを中心とする所定の範囲内において、当該第1オブジェクトから相対的に近い第1の範囲と相対的に遠い第2の範囲のうち、当該第1の範囲内に位置する1つ以上の前記第2オブジェクトおよび当該第2の範囲内に位置する1つ以上の前記第2オブジェクトを、前記第1オブジェクトが時間経過に応じて対象を切り替えて行うアクションの対象の候補である候補オブジェクトとして決定させ、
前記候補オブジェクトのうち、前記第1の範囲内に位置する前記候補オブジェクトである第1候補オブジェクトが第1の数存在し、かつ、前記第2の範囲内に位置する前記候補オブジェクトである第2候補オブジェクトが第2の数存在する場合、
前記第1オブジェクトに、前記第2候補オブジェクトを対象として前記アクションを行わせる前に、前記第1候補オブジェクトを対象として前記アクションを行わせる回数が前記第1の数以下の数となるように前記アクションを行わせた後、前記第2候補オブジェクトを対象として前記アクションを行わせる第1の態様と、
前記第1オブジェクトに、前記第1候補オブジェクトを対象として前記アクションを行わせる前に、前記第2候補オブジェクトを対象として前記アクションを行わせる回数が前記第2の数以下の数となるように前記アクションを行わせた後、前記第1候補オブジェクトを対象として前記アクションを行わせる第2の態様と、
のうちいずれかの態様で第1オブジェクトに前記アクションを行わせ、
前記第1オブジェクトを含む前記仮想空間を画面に表示するための表示用画像を生成させる、ゲーム処理方法。