JP2006254950A - プログラム、情報記憶媒体及びゲーム装置 - Google Patents

プログラム、情報記憶媒体及びゲーム装置 Download PDF

Info

Publication number
JP2006254950A
JP2006254950A JP2005072789A JP2005072789A JP2006254950A JP 2006254950 A JP2006254950 A JP 2006254950A JP 2005072789 A JP2005072789 A JP 2005072789A JP 2005072789 A JP2005072789 A JP 2005072789A JP 2006254950 A JP2006254950 A JP 2006254950A
Authority
JP
Japan
Prior art keywords
character
unit
characters
operation input
player
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005072789A
Other languages
English (en)
Inventor
Daisuke Murano
大輔 村野
Masaki Iwasaki
正揮 岩崎
Naoki Enokido
直樹 榎戸
Ryohei Hase
亮平 長谷
Naotaka Kaneda
直隆 金田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bandai Namco Entertainment Inc
Original Assignee
Namco Bandai Games Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Namco Bandai Games Inc filed Critical Namco Bandai Games Inc
Priority to JP2005072789A priority Critical patent/JP2006254950A/ja
Publication of JP2006254950A publication Critical patent/JP2006254950A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】プレーヤが直接操作可能なキャラクタ以外のキャラクタについてプレーヤの意思を反映させた移動制御を実現し、プレーヤにキャラクタの操作感覚を与え、ゲームの面白さを増大させる。
【解決手段】各操作部に対応づけられる直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って複数のキャラクタの中から選択的に変更設定させると共に、プレーヤによる各操作部に対する操作入力に基づき、現在の直接操作キャラクタとして各操作部に対応づけて設定されているキャラクタを移動制御する。また、プレーヤが各操作部を操作した際の操作入力の内容を、各キャラクタと対応付けて操作データ304に記憶し、従前に直接操作キャラクタとして設定され、且つ現在設定されていないキャラクタについては、当該キャラクタに対応づけて記憶されている操作入力の内容に基づいて移動制御する。
【選択図】図1

Description

本発明は、接続されたコントローラから入力される操作信号に基づいて所与のゲームを実行させるためのプログラム等に関する。
従来、プレーヤによって操作される複数の味方キャラクタと、コンピュータ制御される複数の敵キャラクタとが対戦するタイプのゲームがある。例えば、サッカーゲームなどのスポーツ系のゲームや、主人公と複数の仲間でパーティを組むRPG(ロールプレイング)ゲームの戦闘シーンが該当する。これらのゲームでは、通常、操作対象となるキャラクタを切り替えることで、現在の操作対象である1体のキャラクタの動きや機能を巧妙に使いこなして敵陣を攻めたり、味方の陣地を守ったりして、戦略的な攻防を楽しむことができる。
ところが、一度に操作できるキャラクタが一体であったため、複数のキャラクタを同時に操作する方法が望まれていた。そこで、複数のキャラクタをプレーヤの操作により独立して制御する方法として、同一プレーヤにより操作されるコントローラの右手操作部及び左手操作部からそれぞれ出力される右手操作信号及び左手操作信号に応じて、ゲーム画面上の2体のキャラクタの動作を独立して制御するキャラクタ制御方法が考案されている(例えば、特許文献1)。
特開2001−5977号公報
しかしながら、上述したキャラクタ制御方法(例えば、特許文献1)にあっては、ゲーム画面上の2体のキャラクタの動作を独立して制御することはできるが、キャラクタが3体以上ある場合、他のキャラクタについては、プレーヤの操作により独立して制御することはできず、3体目以上のキャラクタについてはコンピュータ制御が行われていた。従って、これらのキャラクタについては、プレーヤの意思・作戦を反映させることが困難であり、戦略的なゲーム展開を実現することが難しかった。
本発明の課題は、プレーヤが直接操作可能なキャラクタ以外のキャラクタについてプレーヤの意思を反映させた移動制御を実現し、プレーヤにキャラクタの操作感覚を与え、ゲームの面白さを増大させることを目的とする。
上記課題を解決するために、第1の発明は、
コンピュータに、プレーヤによるN個(Nは2以上の整数。)のキャラ操作入力部(例えば、図2の左手操作部1700a,右手操作部1700b)に対する操作入力に基づいて、仮想空間中のN+1以上のキャラクタ(例えば、図3のキャラクタEa〜Ec)の移動を制御し、前記仮想空間の画像を生成してゲームを実行させるためのプログラム(例えば、図4のキャラクタ制御処理プログラム301)であって、
前記キャラ操作入力部それぞれに対応づける直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って前記複数のキャラクタの中から選択的に変更設定する変更設定手段(例えば、図4の操作制御部221、図8のステップS5)、
プレーヤによる前記キャラ操作入力部それぞれに対する操作入力に基づき、前記変更設定手段により現在の直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタを移動制御する直接操作対象キャラ制御手段(例えば、図4のキャラクタ制御部222、図9のステップS12〜S14)、
プレーヤが前記キャラ操作入力部それぞれを操作した際の操作入力の内容を、前記変更設定手段により現在直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタと対応づけて記憶する操作内容記憶手段(例えば、図4の操作データ304)、
前記変更設定手段により従前に直接操作キャラクタとして設定され、且つ現在設定されていないキャラクタを、前記操作内容記憶手段により当該キャラクタに対応づけて記憶されている操作入力の内容に基づいて移動制御する他キャラ制御手段(例えば、図4のキャラクタ制御部222、図9のステップS18〜S20)、
として前記コンピュータを機能させるためのプログラムである。
第8の発明は、
プレーヤによるN個(Nは2以上の整数。)のキャラ操作入力部(例えば、図2の左手操作部1700a,右手操作部1700b)に対する操作入力に基づいて、仮想空間中のN+1以上のキャラクタ(例えば、図3のキャラクタEa〜Ec)の移動を制御し、前記仮想空間の画像を生成してゲームを実行するためのゲーム装置(例えば、図1の家庭用ゲーム装置1)であって、
前記キャラ操作入力部それぞれに対応づける直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って前記複数のキャラクタの中から選択的に変更設定する変更設定手段(例えば、図4の操作制御部221、図8のステップS5)と、
プレーヤによる前記キャラ操作入力部それぞれに対する操作入力に基づき、前記変更設定手段により現在の直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタを移動制御する直接操作対象キャラ制御手段(例えば、図4のキャラクタ制御部222、図9のステップS12〜S14)と、
プレーヤが前記キャラ操作入力部それぞれを操作した際の操作入力の内容を、前記変更設定手段により現在直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタと対応づけて記憶する操作内容記憶手段例えば、図4の操作データ304)と、
前記変更設定手段により従前に直接操作キャラクタとして設定され、且つ現在設定されていないキャラクタを、前記操作内容記憶手段により当該キャラクタに対応づけて記憶されている操作入力の内容に基づいて移動制御する他キャラ制御手段(例えば、図4のキャラクタ制御部222、図9のステップS18〜S20)と、
を備えるゲーム装置である。
第1の発明等によれば、キャラ操作入力部それぞれに対応付けて設定されている直接操作キャラクタについては、キャラ操作入力部に対する操作入力に基づいて移動制御すると共に、キャラ操作入力部に対する操作入力の内容を現在設定されている操作対象キャラクタに対応付けて操作内容記憶手段に記憶させ、現在直接操作キャラクタとして設定されていないキャラクタについては、操作内容記憶手段によりキャラクタに対応付けて記憶されている操作入力の内容に基づいて移動制御するため、プレーヤは、キャラ操作入力部に対応付けられていないキャラクタについても、自己の操作入力に基づいて移動制御が行われているような操作感覚を味わうことができる。例えば、直接操作キャラクタの移動制御に追従するといった単純な移動制御ではなく、直接操作キャラクタと全く異なる方向への移動制御が可能となり、プレーヤは複数のキャラクタそれぞれを戦略的に移動させることができる。
また、N個のキャラ操作入力部に対する操作入力に基づいて、仮想空間中のN+1以上のキャラクタの移動を制御する場合に、N個のキャラ操作入力部それぞれに対応づけられる直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って複数のキャラクタの中から選択的に設定変更することができるため、ゲーム中に適宜直接操作キャラクタを設定変更することにより、N+1以上のキャラクタそれぞれについてプレーヤの意思を反映した移動制御を行うことができる。
第2の発明は、第1の発明のプログラムであって、
前記他キャラ制御手段が、前記変更設定手段により従前に直接操作キャラクタとして設定され、且つ現在設定されていないキャラクタに対応づけて前記操作内容記憶手段により記憶されている最新の操作入力の内容に基づいて、当該キャラクタを移動制御するように前記コンピュータを機能させるためのプログラムである。
第2の発明によれば、他キャラ制御手段により制御されるキャラクタは、操作内容記憶手段により記憶されている最新の操作入力の内容に基づいて移動制御が行われるため、プレーヤは直接対象キャラクタ以外の他のキャラクタについても、最新の操作入力の内容を考慮して戦略的に移動させることができる。
第3の発明は、
コンピュータに、プレーヤによるN個(Nは2以上の整数。)のキャラ操作入力部(例えば、図2の左手操作部1700a,右手操作部1700b)に対する操作入力に基づいて、仮想空間中のN+1以上のキャラクタ(例えば、図11のユニットFa〜Fc)の移動を制御し、前記仮想空間の画像を生成してゲームを実行させるためのプログラム(例えば、図13のユニット制御処理プログラム601)であって、
前記キャラ操作入力部それぞれに対応づける直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って前記複数のキャラクタの中から選択的に変更設定する変更設定手段(例えば、図13のキャラクタ制御部224、図18のステップS28)、
プレーヤによる前記キャラ操作入力部それぞれに対する操作入力に基づき、前記変更設定手段により現在の直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタを移動制御する直接操作対象キャラ制御手段(例えば、図13のキャラクタ制御部224、図19のステップS31〜S39)、
前記各キャラクタ相互間の位置関係に関する拘束条件を設定する拘束条件設定手段(例えば、図13の仮想紐情報607)、
前記直接操作キャラクタの移動に伴い、前記直接操作キャラクタ以外の他のキャラクタを、前記拘束条件設定手段により設定された各キャラクタ相互間の拘束条件を満たすように移動させる制御を行う他キャラ制御手段(例えば、図13のキャラクタ制御部224、図20のステップS51〜S58)、
として前記コンピュータを機能させるためのプログラムである。
第9の発明は、
プレーヤによるN個(Nは2以上の整数。)のキャラ操作入力部(例えば、図2の左手操作部1700a,右手操作部1700b)に対する操作入力に基づいて、仮想空間中のN+1以上のキャラクタの移動を制御し、前記仮想空間の画像を生成してゲームを実行するためのゲーム装置(例えば、図1の家庭用ゲーム装置1)であって、
前記キャラ操作入力部それぞれに対応づける直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って前記複数のキャラクタの中から選択的に変更設定する変更設定手段(例えば、図13のキャラクタ制御部224、図18のステップS28)と、
プレーヤによる前記キャラ操作入力部それぞれに対する操作入力に基づき、前記変更設定手段により現在の直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタを移動制御する直接操作対象キャラ制御手段(例えば、図13のキャラクタ制御部224、図19のステップS31〜S39)と、
前記各キャラクタ相互間の位置関係に関する拘束条件を設定する拘束条件設定手段(例えば、図13の仮想紐情報607)と、
前記直接操作キャラクタの移動に伴い、前記直接操作キャラクタ以外の他のキャラクタを、前記拘束条件設定手段により設定された各キャラクタ相互間の拘束条件を満たすように移動させる制御を行う他キャラ制御手段(例えば、図13のキャラクタ制御部224、図18のステップS51〜S58)と、
を備えるゲーム装置である。
第3の発明等によれば、プレーヤによるN個(Nは2以上の整数。)のキャラ操作入力部に対する操作入力に基づいて、仮想空間中のN+1以上のキャラクタの移動を制御し、前記仮想空間の画像を生成してゲームを実行するためのゲーム装置において、キャラ操作入力部それぞれに対応付けて設定されている直接操作キャラクタについては、キャラ操作入力部に対する操作入力に基づいて移動制御すると共に、直接操作キャラクタ以外の他のキャラクタを、各キャラクタ相互間の位置関係に関する拘束条件を満たすように移動制御することができるため、プレーヤは、キャラ操作入力部に対応付けて設定されていない他のキャラクタについても、プレーヤ操作により間接的に操作しているような感覚を味わうことができる。
また、プレーヤによるN個(Nは2以上の整数。)のキャラ操作入力部に対する操作入力に基づいて、N+1以上のキャラクタの移動を制御する場合、Nが2以上であることから、拘束条件に基づく一方向の移動制御だけでなく、多方向にN+1以上のキャラクタを移動制御させることができる。つまり、複数のキャラクタにより形成される陣形を可変させながら移動の制御を行うといったことができ、プレーヤは戦略的なゲームプレイを行うことができる。
第4の発明は、第3の発明のプログラムであって、
前記拘束条件設定手段が、前記複数のキャラクタの全部又は一部の相互間に当該キャラクタ間を接続する仮想紐を前記拘束条件として設定する仮想紐設定手段を有するように前記コンピュータを機能させ、
前記他キャラ制御手段が、前記仮想紐設定手段により設定された各仮想紐に基づき、当該仮想紐で結ばれたキャラクタ間の距離が当該仮想紐の紐長を超えないようにして前記直接操作キャラクタ以外の他のキャラクタの移動を制御するように前記コンピュータを機能させる、
ためのプログラムである。
第4の発明によれば、直接操作キャラクタ以外の他のキャラクタについては、仮想紐で結ばれたキャラクタ間の距離が仮想紐の紐長を超えないように移動制御されるため、直接操作キャラクタの操作入力に連動して、プレーヤが容易に推測可能な移動先に直接操作キャラクタ以外の他のキャラクタを移動させることができる。この結果、プレーヤは直接操作キャラクタ以外の他のキャラクタについても、自己の意思を反映させた移動制御を行うことができ、自己の操作入力により他のキャラクタを移動させているような感覚を味わうことができる。
第5の発明は、第4の発明のプログラムであって、
前記直接操作対象キャラ制御手段が、前記複数の直接操作キャラクタのうち、何れか2つの直接操作キャラクタ間の距離が、前記仮想紐設定手段により設定された当該2つの直接操作キャラクタ間を最短で結ぶ仮想紐の組合せの合計長より長い場合、当該2つの直接操作キャラクタのうち一方の位置と他方の位置とを近づけ、当該距離が当該合計長以上とならないように当該2つの直接操作キャラクタの位置を変化させるように前記コンピュータを機能させるためのプログラムである。
第5の発明によれば、直接操作キャラクタについても、仮想紐の紐長に基づいて、その位置を変化させるように移動制御がなされるため、直接操作キャラクタ以外の他のキャラクタを移動制御する際に破綻を生じさせることがなく、計算負荷を軽減することができる。
第6の発明は、第3の発明のプログラムであって、
前記拘束条件設定手段が、前記複数のキャラクタの全部又は一部の相互間に当該キャラクタ間を接続し、バネ長に応じて可変する弾性力が設定された仮想バネを前記拘束条件として設定する仮想バネ設定手段(例えば、図24の仮想バネ情報707)を有するように前記コンピュータを機能させ、
前記直接操作対象キャラ制御手段の移動制御による前記直接操作キャラクタの位置変化に基づき、当該直接操作キャラクタに接続されている仮想バネの弾性力を更新設定する第1の弾性力更新手段(例えば、図24のキャラクタ制御部226、図28のステップS73)として前記コンピュータを機能させ、
前記他キャラ制御手段が、各仮想バネに設定されている弾性力に基づいて前記直接操作キャラクタ以外の他のキャラクタの移動を制御するように前記コンピュータを機能させる、
前記他キャラ制御手段の移動制御による前記他のキャラクタの位置変化に基づき、当該他のキャラクタに接続されている仮想バネの弾性力を更新設定する第2の弾性力設定手段(例えば、図24のキャラクタ制御部226、図28のステップS74)として前記コンピュータを機能させる、
ためのプログラムである。
第6の発明によれば、直接操作キャラクタ以外の他のキャラクタのうち、直接操作キャラクタと仮想バネで接続されているキャラクタについては、第1の弾性力設定手段により直接操作キャラクタの位置変化に基づいて更新される仮想バネの弾性力に応じて移動制御され、直接操作キャラクタ以外の他のキャラクタと仮想バネで接続されているキャラクタについては、第2の弾性力設定手段により他のキャラクタの位置変化に基づいて更新される仮想バネの弾性力に基づいて移動制御されるため、直接操作キャラクタの操作入力に連動して、プレーヤが容易に推測可能な移動先に直接操作キャラクタ以外の他のキャラクタを移動させることができる。このため、プレーヤは直接操作キャラクタ以外の他のキャラクタについても、自己の意思を反映させた移動制御を行うことができ、自己の操作入力により移動しているような感覚を味わうことができる。
また、バネ長に応じて可変する弾性力が設定された仮想バネが拘束条件として設定されるため、直接操作キャラクタの位置に応じて自由度の高い他のキャラクタの移動制御を実現することができる。これにより、複数のキャラクタによる多彩な陣形を取り得ることができ、戦略的なゲームプレイを楽しむことができる。
第7の発明は、第1〜第6の発明の何れかのプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体(例えば、図4の記憶部30)である。
第7の発明によれば、第1から第6の発明と同様の作用効果を奏する情報記憶媒体を実現し得る。
本発明によれば、プレーヤが直接操作可能なキャラクタ以外のキャラクタについてプレーヤの意思を反映させた制御を実現し、プレーヤにキャラクタの操作感覚を与え、ゲームの面白さを増大させることができる。
以下、図面を参照して、本発明を実施するための最良の形態を説明する。なお、以下では、自キャラクタを操作することにより仮想3次元空間内を移動させて、RPG(ロールプレイングゲーム)を実行する場合を説明するが、本発明の適用がこれに限定されるものではない。
[第1の実施の形態]
1−1.ゲーム装置の外観例
本第1の実施の形態における家庭用ゲーム装置1について図を参照して説明する。図1は、本発明を家庭用ゲーム装置1に適用した一例を示す外観図である。図1に示すように、家庭用ゲーム装置1は、本体装置1100と、コントローラ1110,1110と、スピーカ1202を具備するディスプレイ1200と、を備える。コントローラ1110,1110は本体装置1100に接続され、ディスプレイ1200は、画像信号及び音信号を伝送可能なケーブルKによって本体装置1100に接続されている。
また、本体装置1100は、例えばCPUやICメモリ等を搭載した制御ユニットや、CD−ROM1104等の情報記憶媒体の読取装置を具備する。そして、CD−ROM1104等から読み出したゲーム情報と、コントローラ1110,1110からの操作信号とに基づいて種々のゲーム処理を実行し、ゲーム画面の画像信号及びゲーム音の音信号を生成する。さらに、生成した画像信号及び音信号をディスプレイ1200に出力して、ディスプレイ1200にゲーム画面を表示させると共に、スピーカ1202からゲーム音を出力させる。プレーヤは、ディスプレイ1200に表示されたゲーム画面を見ながら、コントローラ1110,1110を操作してゲームを楽しむ。
本体装置1100がゲーム処理を行うために必要なプログラムやデータ等を含むゲーム情報等は、例えば本体装置1100に着脱自在な情報記憶媒体であるCD−ROM1104やICメモリ1106、メモリカード1108等に格納されている。
コントローラ1110,1110は、プレーヤがゲーム操作等を入力するためのボタンスイッチ等を具備し、操作に応じた操作信号を本体装置1100に出力する。図2に、本実施形態におけるコントローラ1110の平面図を示す。同図によれば、コントローラ1100は、左右に2つのグリップ1300a、1300bと、グリップ1300a、1300bの内側にそれぞれ設けられた操作スティック1500a、1500bを備える本体1400と、本体1400の表面上に設けられたボタン群1600と、から主に構成される。
操作スティック1500aは、左手用の操作スティックであり、プレーヤがグリップ1300aを握った際に左手の親指が届く範囲に配置される。操作スティック1500bは、右手用の操作スティックであり、プレーヤがグリップ1300bを握った際に右手の親指が届く範囲に配置される。この操作スティック1500a、1500bは、真上に直立した位置が中立位置であって、360度の方向に傾斜し、且つ直立した状態で旋回可能であり、また、外力が加わらないときは中立位置に弾性保持される。操作スティック1500a、1500bがプレーヤに操作されると、操作スティック1500a、1500bが傾斜した傾斜角及び傾斜方向に応じた操作信号が本体装置1100に出力される。
ボタン群1600は、左手ボタン群1600aと、右手ボタン群1600bとに分割され、それぞれプレーヤがグリップ1300a、1300bを握った際の左右の親指が届く範囲にそれぞれ配置される。左手ボタン群1600aには、4つの矢印ボタン↑,↓,←,→と、1つの補助ボタンL1が含まれ、右手ボタン群1600bには、4つの機能ボタン○,×,△,□と、1つの補助ボタンR1が含まれる。
以下では、左手用のグリップ1300a、操作スティック1500a及び左手ボタン群1600aを併せて左手操作部1700aとし、右手用のグリップ1300b、操作スティック1500b及び右手ボタン群1600bを合わせて右手操作部1700bとする。この左手操作部1700a及び右手操作部1700bには、それぞれ1体ずつのキャラクタをプレーヤが直接操作する対象のキャラクタとして設定可能であり、プレーヤは、コントローラ1110を用いて同時に2体のキャラクタを直接操作することができる。なお、以下では、左手操作部1700aと右手操作部1700bとを併せて各操作部1700a,1700bと記す。
1−2.原理
本実施の形態においては、プレーヤが、操作対象であるキャラクタを仮想三次元空間に背景やキャラクタ等の各種オブジェクトを配置して設定されたゲーム空間内で移動させ、発生するさまざまなイベントをクリアしていくことでゲームが進行される。そして、所与の視点、例えば、プレーヤの操作対象であるキャラクタに追従するように設定された仮想カメラからゲーム空間を見た3DCGがゲーム画面としてディスプレイ1200に表示される。
図3は、ユーザの操作対象となるキャラクタの動作を説明するための図であり、本実施の形態におけるゲーム空間の概略俯瞰図である。まず、図3(a)に示すように、ゲーム空間には、プレーヤの直接操作対象となるキャラクタ(以下、「直接操作キャラクタ」と記す)と、間接操作対象となるキャラクタ(以下、「間接操作キャラクタ」と記す)とが配置される。同図では、3体のキャラクタEa、Eb、Ecが設定・配置された様子が示されている。
直接操作キャラクタは、左手操作部1700a、右手操作部1700bから入力されるプレーヤの操作入力に基づいて移動制御されるキャラクタである。また。間接操作キャラクタは、直接操作キャラクタとして設定されていた際に入力された操作入力の内容に基づいて移動制御されるキャラクタである。直接操作キャラクタと間接操作キャラクタとは、ゲーム実行中のプレーヤの操作入力に応じて設定の変更が可能であり、直接操作キャラクタに設定されたキャラクタは、プレーヤの操作入力に基づいて移動制御が行われ、直接操作キャラクタから間接操作キャラクタに設定が変更されたキャラクタは、従前に入力されていた操作入力の内容に基づいて移動制御が行われる。また、従前に直接操作キャラクタとして設定された履歴のない間接操作キャラクタについては、移動制御が行われない。
具体的には、図3(a)に示すように、初期状態からプレーヤの操作入力が開始されると、直接操作キャラクタであるキャラクタEa、Ecは、プレーヤの操作入力に従って、図中矢印の方向に移動制御される。一方、初期状態にあって直接操作キャラクタに設定された履歴のない間接操作キャラクタであるキャラクタEbは、移動制御が行われない。
続いて、プレーヤの入力操作により、直接操作キャラクタと間接操作キャラクタとの設定変更が行われた場合について説明する。図3(b)は、直接操作キャラクタとしてキャラクタEa、Ebが設定され、間接操作キャラクタとしてキャラクタEcが設定され、それぞれのキャラクタが配置された場合を示す図である。すなわち、キャラクタEbは、間接操作キャラクタから直接操作キャラクタへ設定変更され、キャラクタEcは、直接操作キャラクタから間接操作対象へ設定変更されている。
図3(b)に示すように、プレーヤの操作入力が開始されると直接操作キャラクタであるキャラクタEa、Ebは、プレーヤの操作入力に基づいて、図中矢印の方向に移動制御される。また、間接操作キャラクタであるキャラクタEcは、直前に入力された操作入力の内容に従って移動制御される。すなわち、キャラクタEcは、図中点線矢印で示されるベクトルP2と同一のベクトルP5を移動ベクトルとして、移動制御される。
1−3.機能構成
次に、本実施形態における家庭用ゲーム装置1の機能構成について説明する。図4は、本実施の形態の家庭用ゲーム装置1の内部構成の一例を示すブロック図である。図4に示すように、家庭用ゲーム装置1は、操作部10、処理部20、記憶部30、表示部40、音出力部50等を備えて構成され、ビデオゲームを実行してゲーム画像を生成し、生成したゲーム画像を表示部40に表示させる。
操作部10は、プレーヤによる操作指示を受け付け、操作に応じた操作信号を処理部20に出力する。この機能は、例えばボタンや操作スティック、ダイヤル、マウス、キーボード、各種センサ等によって実現される。図1ではコントローラ1110,1110がこれに相当する。
処理部20は、家庭用ゲーム装置1全体の制御やゲームの進行、画像生成等の各種演算処理を行う。この機能は、例えばCPU(CISC型、RISC型)、ASIC(ゲートアレイ等)等の演算装置やその制御プログラムにより実現される。図1では、本体装置1100に具備される制御ユニットがこれに相当する。
また、処理部20は、主にゲームに係る演算処理を行うゲーム演算部22と、ゲーム演算部22の処理によって求められた各種のデータに基づき、仮想カメラ等の所与の視点から見た仮想三次元空間(ゲーム空間)の画像の生成及びゲーム画面を表示させるための画像信号の生成を実行する画像生成部24と、効果音やBGM等のゲーム音の生成及びゲーム音を出力させるための音信号の生成を実行する音生成部26と、を含んでいる。
ゲーム演算部22は、主な機能部として、操作制御部221と、キャラクタ制御部222とを含む。操作制御部221は、コントローラ1110とキャラクタとの対応付けを制御する機能部であり、プレーヤから設定変更の指示が入力されると、現在コントローラ1110に割り当てられているキャラクタと、キャラクタ設定テーブル303とに基づいて、コントローラ1110に割り当てられているキャラクタの設定変更を行う。
キャラクタ制御部222は、キャラクタ制御処理プログラム301、移動制御処理プログラム302に従ってキャラクタ制御処理、移動制御処理を実行し、プレーヤの操作入力に基づいて、直接操作キャラクタ及び間接操作キャラクタとして設定されているキャラクタのゲーム空間中での移動を制御する。
画像生成部24は、例えばCPUやDSP等の演算装置やその制御プログラム、フレームバッファ等の描画フレーム用ICメモリ等によって実現される。画像生成部24は、ゲーム演算部22による演算結果に基づき、幾何変換処理やシェーディング処理等を実行してゲーム画面を表示するためのゲーム画像(3DCG画像)を生成し、生成した画像の画像信号を表示部40に出力する。
表示部40は、画像生成部24からの画像信号に基づいて、例えば1/60秒毎に1フレームの画面を再描画しながらゲーム画面を表示する。この機能は、例えばCRT、LCD、ELD、PDP、HMD等のハードウェアによって実現される。図1では、ディスプレイ1200がこれに相当する。
音生成部26は、例えばCPUやDSP等の演算装置及びその制御プログラムによって実現され、ゲーム中に使用される効果音やBGM等のゲーム音を生成し、生成したゲーム音の音信号を音出力部50に出力する。
音出力部50は、音生成部26からの音信号に基づいて、BGMや効果音等のゲーム音声を出力する。この機能は、例えばスピーカ等によって実現される。図1では、スピーカ1202がこれに相当する。
記憶部30は、処理部20に家庭用ゲーム装置1を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なプログラムやデータ等を記憶すると共に、処理部20の作業領域として用いられ、処理部20が各種プログラムに従って実行した演算結果や操作入力部10から入力される入力データ等を一時的に記憶する。この機能は、例えば各種ICメモリやハードディスク、CD−ROM、DVD、MO、RAM、VRAM等によって実現される。図1では、本体装置1100が具備するCD−ROM1104、ICメモリ1106、メモリカード1108等がこれに該当する。
また、記憶部30は、処理部20をゲーム演算部22として機能させるためのゲームプログラム及びゲームデータを記憶する。具体的に、ゲームプログラムには、キャラクタ制御処理プログラム301、移動制御処理プログラム302、を含む。また、ゲームデータには、キャラクタ設定テーブル303、操作データ304、キャラクタ情報305、を含んでいる。
キャラクタ制御処理プログラム301及び移動制御処理プログラム302は、ゲーム演算部22をキャラクタ制御部222として機能させるためのプログラムである。
キャラクタ設定テーブル303は、コントローラ1110に設けられた設定変更のためのボタンの種別と、当該ボタンの操作前後で直接操作キャラクタとして設定されるキャラクタの種類とを各操作部毎に対応付けて記憶するテーブルである。図5にキャラクタ設定テーブル303のデータ構成例を示す。なお、本第1の実施の形態においては、プレーヤの操作対象となるキャラクタが3体あり、そのうち2体のキャラクタが直接操作キャラクタとして設定される場合を例として説明する。
図5に示すように、キャラクタ設定テーブル303には、操作部の属性(例えば、左手操作部、右手操作部)に応じて、各操作部に設けられた設定変更ボタンの種類(例えば、L1、R1)と、当該設定変更ボタンの操作前後で設定変更されるキャラクタの種類(例えば、キャラクタEa,Eb,Ec)とが記憶されている。具体的に、左手操作部1700aの直接操作キャラクタとしてキャラクタEaが設定されていた場合に、左手操作部1700aのボタンL1が操作されると、左手操作部1700aの直接操作キャラクタとして、キャラクタEbが設定される。また、右手操作部1700bの直接操作キャラクタとしてキャラクタEaが設定されていた場合に、右手操作部1700bのボタンR1が操作されると、右手操作部1700bの直接操作キャラクタとして、キャラクタEcが設定される。
このように、プレーヤは、左手操作部1700aのL1ボタンを操作することにより、キャラクタEaとキャラクタEbとを相互に直接操作キャラクタとして切り替えることができ、右手操作部1700bのR1ボタンを操作することにより、キャラクタEaとキャラクタEcとを相互に直接操作キャラクタに切り替えることができる。なお、キャラクタ設定テーブル303は一例であり、上述した設定変更の形態の他に種々の設定変更の形態を取り得ることは勿論である。
操作データ304は、直接操作キャラクタとして設定されているキャラクタEa〜Ecに対して入力された操作信号に基づく操作入力の内容を、操作データとしてキャラクタの種別毎にそれぞれ更新可能に記憶する。図6に操作データ304のデータ構成例を示す。図6に示すように、操作データ304には、キャラクタの種別(例えば、キャラクタEa〜Ec)と、各キャラクタEa〜Ecに対して入力された操作データ(例えば、移動方向及び加算ベクトル)が記憶されている。
この操作データ304の更新は、ゲーム演算部22により行われる。ゲーム演算部22は、操作スティックが操作され、直接操作キャラクタとして設定されたキャラクタEa〜Ecに対して操作信号が入力されると、対応するキャラクタEa〜Ecの操作データを入力された操作信号に基づいて更新する。ここで、直接操作キャラクタとして設定されていないキャラクタ、すなわち間接操作キャラクタに対しては操作信号が入力されないため、操作データは更新されない。そして、ゲーム演算部22は、この操作データ304に基づいて、各キャラクタEa〜Ecを移動制御するため、直接操作キャラクタとして設定されているキャラクタについては、更新された操作データ、すなわちプレーヤの操作入力に基づいて移動制御され、間接操作キャラクタについては、未更新の操作データ、すなわち従前の操作入力に基づいて移動制御されることとなる。
キャラクタ情報305は、プレーヤの操作対象となるキャラクタの種別(キャラクタNo)に対応づけて、直接操作キャラクタに対して割り当てられる操作部の種別と、各キャラクタの位置情報と、各キャラクタの移動ベクトルとを、それぞれ更新可能に記憶している。図7にキャラクタ情報305のデータ構成例を示す。
図7に示すように、キャラクタNoには、例えば、キャラクタEa〜Ecが記憶され、操作部には、直接操作キャラクタに対応づけて右手操作部、左手操作部の種別が記憶されている。すなわち、右手操作部が対応付けられているキャラクタEaは、右手操作部で操作可能な直接操作キャラクタとして設定されていることを示し、左手操作部が対応付けられているキャラクタEbは、左手操作部で操作可能な直接操作キャラクタとして設定されていることを示し、いずれの操作部も対応付けられていないキャラクタEcは、間接操作キャラクタとして設定されていることを示している。
位置情報には、ゲーム空間内における各キャラクタの現在位置を示す座標情報(例えば、(X1、Y1、Z1))がそれぞれ記憶されている。移動ベクトルには、操作データ304に基づいて算出された移動ベクトル(例えば、ベクトルVa)が記憶されている。この移動ベクトルの大きさを移動量として、ベクトルの方向を移動方向として、各キャラクタの位置情報が更新され、更新された位置情報にキャラクタが移動・配置されることにより、移動制御が行われる。
1−4.処理の流れ
本第1の実施の形態における処理の流れについて説明する。
図8は、キャラクタ制御処理を示すフローチャートである。この処理は、ゲーム中、1フレーム(1/60秒)毎に繰り返し実行される処理であり、キャラクタ制御部222がキャラクタ制御処理プログラム301を実行することで実現される。
キャラクタ制御処理では、まず、プレーヤによりゲームを開始する指示が入力されると、各種データのクリアや初期設定等の初期化処理が行われる(ステップS1)。なお、この初期化処理により、直接操作キャラクタとして所定のキャラクタが初期設定される。以下では、左手操作部1700aにキャラクタEaが設定され、右手操作部1700bにキャラクEcが設定された場合について説明する。
続いて、キャラクタ制御部222は、左手操作部1700a、右手操作部1700bが操作されることにより、直接操作キャラクタに移動指示が入力されたか否かを判別し(ステップS2)、移動指示が入力された場合(ステップS2;YES)、後述する移動制御処理(図9参照)を実行する。
図9を参照して、移動制御処理について説明する。この処理は、キャラクタ制御処理のサブルーチンとして実行される処理であり、キャラクタ制御部222が移動制御処理プログラム302を実行することにより実現される。
移動制御処理において、キャラクタ制御部222は、左手操作部1700aから操作信号が入力されると、キャラクタ情報305を参照して、左手操作部1700aに割り当てられているキャラクタの種別(例えば、キャラクタEa)を取得する。そして、左手操作部1700aから入力される操作信号に基づいて、操作データ304の左手操作部1700aに割当てられているキャラクタに関する操作データを更新する(ステップS10)。
また、キャラクタ制御部222は、右手操作部1700bから操作信号が入力されると、キャラクタ情報305を参照して、右手操作部1700bに割り当てられているキャラクタの種別(例えば、キャラクタEc)を取得する。そして、右手操作部1700bから入力される操作信号に基づいて、操作データ304の右手操作部1700bに割当てられているキャラクタに関する操作データを更新する(ステップS11)。
続いて、キャラクタ制御部222は、操作データ304からキャラクタEaの操作データを取得して、取得した操作データから移動ベクトルを算出し、キャラクタ情報305に記憶されているキャラクタEaの移動ベクトルを更新する(ステップS12)。そして、更新された移動ベクトルに基づいて、キャラクタEaの位置情報を更新し(ステップS13)、更新された位置情報に従ってキャラクタEaをゲーム空間に配置する(ステップS14)。
次に、キャラクタ制御部222は、操作データ304からキャラクタEbの操作データを取得して、取得した操作データから移動ベクトルを算出し、キャラクタ情報305に記憶されているキャラクタEbの移動ベクトルを更新する(ステップS15)。そして、更新された移動ベクトルに基づいて、キャラクタEbの位置情報を更新し(ステップS16)、更新された位置情報に従ってキャラクタEbをゲーム空間に配置する(ステップS17)。
さらに、キャラクタ制御部222は、操作データ304からキャラクタEcの操作データを取得して、取得した操作データから移動ベクトルを算出し、キャラクタ情報305に記憶されているキャラクタEcの移動ベクトルを更新する(ステップS18)。そして、更新された移動ベクトルに基づいて、キャラクタEbの位置情報を更新し(ステップS19)、更新された位置情報に従ってキャラクタEcをゲーム空間に配置する(ステップS20)。そして、キャラクタ制御部222は、移動制御処理を終了して、キャラクタ制御処理に移行する。
図8に戻り、キャラクタ制御部222は、キャラクタの設定変更の指示が入力されたか否かを判別し(ステップS4)、設定変更の指示が入力された場合(ステップS4;YES)、入力された操作指示及びキャラクタ設定テーブル303に基づいてキャラクタ情報305を更新して、直接操作キャラクタの設定を変更する(ステップS5)。そして、ステップS2に移行して、移動指示が入力されたか否かを判別する。移動指示が入力された場合には(ステップS2;YES)、上述した移動制御処理を繰り返して実行し、移動指示が入力されない場合(ステップS2;NO)、キャラクタ制御部222は、終了指示が入力されたか否かを判別し(ステップS6)、終了指示が入力された場合(ステップS6;YES)、本キャラクタ制御処理を終了する。
1−5.ハードウェア構成
次に、本実施の形態における家庭用ゲーム装置1を実現するためのハードウェア構成の一例について図10を参照して説明する。図10に示す電子機器100は、CPU1000、ROM1002、RAM1004、情報記憶媒体1006、画像生成IC1010、音生成IC1008、VRAM1012、I/Oポート1014、1016を備え、各部がシステムバス1018により相互にデータ入出力可能に接続されている。I/Oポート1014には入力装置1024が、I/Oポート1016には通信装置1026が、それぞれ接続されている。
CPU1000は、情報記憶媒体1006に格納されるプログラム、ROM1002に格納されるシステムプログラム(装置本体の初期化情報等)、入力装置1022によって入力される信号等に従って、機器全体の制御や各種データ処理を行う。このCPU1000は、図4に示す処理部20に相当する。
RAM1004は、CPU1000の作業領域等として用いられる記憶部であり、情報記憶媒体1006やROM1002内の所与の内容、CPU1000の演算結果等が格納される。このRAM1004は、図4に示す記憶部30の一部を構成するものである。
情報記憶媒体1006は、プログラム、画像データ、音データ、プレイデータ等が主に格納されるものである。この情報記憶媒体1006は、図4に示す記憶部30の一部を構成するものである。本実施の形態を実現するものがコンピュータシステムである場合には、情報記憶媒体1006は、キャラクタ制御処理プログラム301などを格納する情報記憶媒体としてのCD−ROM、DVD或いはハードディスク等が用いられる。
また、この装置に設けられている画像生成IC1010と音生成IC1008により、音や画像の好適な出力が行えるようになっている。
画像生成IC1010は、CPU1000の命令によって、ROM1002、RAM1004、情報記憶媒体1006等から送られる情報に基づいて画素情報を生成する集積回路であり、生成される表示信号は表示装置1022に出力される。表示装置1022は、CRT、LCD、ELD、PDP、HMD等により実現され、図4に示す表示部40に相当する。
また、音生成IC1008は、CPU1000の命令によって、情報記憶媒体1006やROM1002に記憶される情報、RAM1004に格納される音データに応じた音信号を生成する集積回路であり、生成される音信号はスピーカ1020によって出力される。スピーカ1020は、図4に示す音出力部50に相当する。
VRAM1012は、表示装置1022に表示される画像データを一時的に格納する記憶装置であり、図4に示す記憶部30の一部を構成するものである。このVRAM1012は、画像生成IC1010によって生成される、1フレーム分の画像データを格納するためのフレームバッファや、1フィールド分の画像データを格納するためのフィールドバッファを備える。
入力装置1024は、各種操作を入力するための装置であり、その機能は、レバー、ボタン、タッチパネル等のハードウェアにより実現される。この入力装置1024は、図4に示す操作部10に相当する。
通信装置1026は装置内部で利用される情報を外部とやりとりするものであり、他の装置と通信回線を介して接続されてプログラムに応じた所与の情報を送受すること等に利用される。
1−6.作用・効果
以上のように、本第1の実施の形態によれば、左手操作部1700a、右手操作部1700bそれぞれに対応づけられる直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って複数のキャラクタの中から選択的に変更設定させる。また、プレーヤによる左手操作部1700a、右手操作部1700bそれぞれに対する操作入力に基づき、現在の直接操作キャラクタとして左手操作部1700a、右手操作部1700bに対応づけて設定されているキャラクタを移動制御する。一方、プレーヤが左手操作部1700a、右手操作部1700bそれぞれを操作した際の操作入力の内容を、直接操作キャラクタとして左手操作部1700a、右手操作部1700bに対応づけて設定されているキャラクタと対応づけて操作データ304に記憶する。そして、従前に直接操作キャラクタとして設定され、且つ現在設定されていないキャラクタについては、当該キャラクタに対応づけて記憶されている操作入力の内容に基づいて移動制御するため、プレーヤは、各操作部1700a、1700bに対応付けられていない間接操作キャラクタについても、従前の操作入力の内容に基づいて移動制御が行われることにより、自己の操作入力に基づいて移動制御が行われているような操作感覚を味わうことができる。
また、間接操作キャラクタについては、従前の操作入力の内容に基づいて移動制御されるため、例えば、直接操作キャラクタの移動制御に追従するといった単純な移動制御ではなく、直接操作キャラクタと全く異なる方向への移動制御が可能となる。これにより、プレーヤは3体目以上のキャラクタそれぞれについて自己の意思を反映させた戦略的な移動制御を行うことができる。さらに、ゲーム中に入力される設定変更操作により、直接操作キャラクタの設定を変更することができるため、適宜直接操作キャラクタを変更して操作入力の内容を更新することにより、多彩なゲームプレイを楽しむことができる。
また、操作データ304に記憶される操作データは、各操作部1700a、1700bから入力された最新の操作データに更新・記憶されるため、間接操作キャラクタについては、直近に入力された操作データに基づいて移動制御することができる。これにより、プレーヤは、間接操作キャラクタに対して入力されている操作データの把握がし易く、複数のキャラクタを容易に移動制御することができる。
1−7.変形例
以上、本発明についての好適な実施形態の一例について説明したが、本発明は、上記したものに限らず、発明の趣旨を逸脱しない限りにおいて適宜変更可能である。例えば、左手操作部1700aは、キャラクタEa又はキャラクタEbに切替可能に対応付けられ、右手操作部1700bは、キャラクタEa又はキャラクタEcに切替可能に対応付けられ、各操作部1700a,1700bに現在対応付けられているキャラクタを直接操作キャラクタとする構成について説明を行ったが、キャラクタ制御テーブル303のデータ構成は一例であり、この構成に限定されないのは勿論である。例えば、右手操作部1700a、左手操作部1700bのそれぞれに全てのキャラクタを切替可能に対応付けられる構成であっても良い。
また、操作データ304は、各操作部1700a,1700bから入力された操作入力の内容を、最新の操作データに更新して記憶する場合について説明を行ったが、ゲーム実行中に入力された操作入力の内容を全て操作データとして記憶する構成であっても良い。さらに、各操作部の数や、キャラクタの数は上述した例に限定されない。
[第2の実施の形態]
次に、第2の実施の形態について、図11〜図21を参照して説明する。第1の実施の形態においては、間接操作キャラクタの移動制御を、当該キャラクタが直接操作キャラクタとして設定されていた際に入力された操作データに基づいて行う場合について説明した。本第2の実施の形態においては、各キャラクタ間を接続する仮想紐(可視としても不可視としてもよい。)を拘束条件として設定し、間接操作キャラクタの移動制御を、直接操作キャラクタの位置変化と、設定された仮想紐の紐長とに基づいて行う場合について説明する。
2−1.原理
第2の実施の形態における原理について説明する。
図11は、ユーザの操作対象となるキャラクタが前進する場合の移動制御を説明するための図であり、ゲーム空間の概略俯瞰図である。なお、第2の実施の形態におけるキャラクタは、複数のサブキャラクタをグループ化した集団から構成され、プレーヤはこの集団を1体のキャラクタとして操作する。以下では、集団からなるキャラクタをユニットと記す。
図11(a)に示すように、ゲーム空間には、プレーヤの直接操作対象となるユニット(以下、「直接操作ユニット」と記す)と、間接操作対象となるユニット(以下、「間接操作ユニット」と記す)とが配置される。同図では、直接操作ユニットとして2体のユニットFa,Fcと、間接操作ユニットとして1体のユニットFbとが設定・配置された様子を示している。また、各ユニットFa〜Fcには、各ユニット相互間の位置関係に関する拘束条件として、隣接するユニット間を接続する仮想紐が設定されている。つまり、各ユニット同士(例えば、ユニットFaとユニットFb、ユニットFbとユニットFc)が所定の紐長の仮想紐で接続されることにより、直接操作ユニット(ユニットFa,ユニットFc)の移動に伴って、間接操作ユニット(ユニットFb)は、仮想紐で結ばれたキャラクタ間の距離が当該仮想紐の紐長を超えないようにして移動制御される。
まず、図11(a)に示すように、直接操作ユニットであるユニットFa,Fcに対してプレーヤから前進指示の操作入力が開始されると、図11(b)に示すように、ユニットFa,Fcは、プレーヤの操作入力に従って、図中矢印の方向に移動制御される。また、間接操作ユニットであるユニットFbは、この時点では仮想紐の拘束条件が作用しないため、移動制御されない。
続いて、プレーヤからの前進指示が継続して操作入力され、ユニットFaとユニットFbとを接続する仮想紐の紐長と、ユニットFaとユニットFbとの離間距離が同一となった場合、又はユニットFbとユニットFcとを接続する仮想紐の紐長と、ユニットFbとユニットFcとの離間距離が同一となった場合、ユニットFbは、図11(c)に示すように、仮想紐に拘束されて、ユニットFa又はユニットFcを追従するように移動制御される。また、ユニットFaとユニットFbとの離間距離及びユニットFbとユニットFcとの離間距離の何れもが各ユニットを接続している仮想紐の紐長と同一になった場合、ユニットFbは、ユニットFa及びユニットFcを追従するように移動制御される。
図12は、ユーザの操作対象となるユニットが横方向に移動する場合の移動制御を説明するための図であり、ゲーム空間の概略俯瞰図である。図12(a)に示すように、ゲーム空間には、直接操作ユニットとして2体のユニットFa,Fcと、間接操作ユニットとして1体のユニットFbとが設定・配置されている。また、各ユニットFa〜Fcには、ユニット間の位置関係に関する拘束条件として、隣接するユニット間を接続する仮想紐が設定されている。
まず、図11(a)に示すように、直接操作ユニットであるユニットFa,Fcに対してプレーヤから右方向への移動指示が操作入力されると、ユニットFa,Fcは、プレーヤの操作入力に従って、図中矢印の方向に移動制御が開始される。また、間接操作ユニットであるユニットFbは、この時点では仮想紐の拘束条件が作用しないため、移動制御されない。
続いて、図11(b)に示すように、ユニットFa,Fcの移動に伴い、ユニットFcとユニットFbとを接続する仮想紐の紐長と、ユニットFcとユニットFbとの離間距離とが同一となった場合、ユニットFbに対して仮想紐の張力が作用するようになり、ユニットFcとユニットFbとの離間距離が仮想紐の紐長を超えないようにユニットFbの移動制御が開始される。
そして、図11(c)に示すように、プレーヤからの横方向への移動指示が継続して操作入力されると、ユニットFa,Fcは、プレーヤの操作入力に従って、図中矢印の方向に移動制御されると共に、ユニットFbは、あたかも仮想紐の張力により、ユニットFcを追従するかのように移動制御される。
2−2.機能構成
次に、本第2の実施の形態における家庭用ゲーム装置の機能構成について説明する。なお、本第2の実施の形態は、上述した第1の実施の形態における家庭用ゲーム装置1を用いて実現されるものであるため、第1の実施の形態と共通する点については説明を省略し、同一の機能、構成については同一の符号で表し、以下では第2の実施の形態に特徴的な部分につき詳細に説明する。
図13は、第2の実施の形態における家庭用ゲーム装置1の内部構成の一例を示すブロック図である。図13に示すように、家庭用ゲーム装置1は、操作部10、処理部20、記憶部60、表示部40、音出力部50等を備えて構成され、いわゆるビデオゲームを実行してゲーム画像を生成し、生成したゲーム画像を表示部40に表示させる。
ゲーム演算部22は、主な機能部として、操作制御部223と、キャラクタ制御部224とを含む。操作制御部223は、本第2の実施の形態に特徴的な構成としてユニット制御処理プログラム601に従ってユニット制御処理を実行して、プレーヤから入力された操作指示に対応する操作制御を行う。また、キャラクタ制御部224は、本第2の実施の形態に特徴的な構成として、ユニット制御処理プログラム601、移動制御処理プログラム602、間接操作ユニット位置情報更新処理プログラム603に従ってユニット制御処理、移動制御処理、間接操作ユニット位置情報更新処理を実行して、直接操作ユニット及び間接操作ユニットとして設定されているユニットの移動制御を行う。
記憶部60は、ユニット制御処理プログラム601、移動制御処理プログラム602、間接操作ユニット位置情報更新処理プログラム603、ユニット設定テーブル604、陣形テーブル605、ユニット情報606、仮想紐情報607等を格納している。
ユニット制御処理プログラム601、移動制御処理プログラム602及び間接操作ユニット位置情報更新処理プログラム603は、ゲーム演算部22を操作制御部223、キャラクタ制御部224として機能させるためのプログラムである。
ユニット設定テーブル604は、各操作部に対応付けられたボタンと、設定変更前後で直接操作ユニットとして設定されるユニットの種別とを対応付けて記憶するテーブルである。なお、ユニット設定テーブル604のデータ構成は、上述した第1の実施の形態におけるキャラクタ設定テーブル303と略同一の構成によってなるため、図示及び詳細な説明を省略する。
陣形テーブル605は、複数の陣形について、対応する陣形の形状と陣形パラメータとを対応付けて記憶するテーブルである。図14に陣形テーブル605のデータ構成例を示す。図14に示すように、陣形テーブル605には、陣形の種類として、普通陣、攻撃陣、機動陣、防御陣が記憶されている。また、陣形の形状として、普通陣には□、攻撃陣には△、機動陣には○、防御陣には×の形状がそれぞれ記憶されている。さらに、陣形パラメータとして、攻撃力、防御力、機動力の数値データがそれぞれ記憶されている。
各陣形の形状は、コントローラ1110の右手ボタン群1600bの□、△、○、×ボタンに対応付けられており、キャラクタ制御部224は、操作されたボタンの形状に対応する陣形の形状を陣形テーブル605から取得し、複数のサブキャラクタから構成されるユニットの陣形を変形させる。さらに、対応する陣形パラメータを取得して、各ユニットの攻撃力、防御力、機動力等を変化させる。これにより、ユーザの戦略を反映させたゲーム進行を実現することができ、ゲームの面白さを増大することができる。また、プレーヤはゲーム空間内に表示されるユニットの陣形に基づいて、敵味方の各ユニットの攻撃力、防御力、機動力等の特性を容易に把握することができるため、戦闘状況に応じて陣形を変更することにより戦略的な攻防を楽しむことができる。
ユニット情報606は、プレーヤの操作対象となるユニットの種別と、直接操作ユニットに割り当てられる操作部の種別と、各ユニットの位置情報と、各ユニットの移動ベクトル、陣形とを対応付けて、それぞれ更新可能に記憶している。図15に、ユニット情報606のデータ構成例を示す。図15に示すように、ユニット情報606は、操作部、位置情報、移動ベクトルが、第1の実施の形態のキャラクタ情報305と同様に記憶される他、各ユニットに設定される陣形(例えば、攻撃陣)がそれぞれ記憶されている。
仮想紐情報607は、仮想紐により接続されるユニットの組み合わせに応じて複数のテーブルを記憶しており、各テーブルには、仮想紐で接続されるユニット及び仮想紐の紐長が記憶されている。例えば、プレーヤの操作対象となるユニットが3体ある場合、図16(a)〜(c)に示すように、仮想紐で接続されるユニットの組み合わせは3種類ある。そこで、図16(a)に示す組み合わせに対応する仮想紐情報607aを一例として図17に示して説明する。
図17は、仮想紐情報607aのデータ構成例を示す図である。図17において、仮想紐情報607aは、仮想紐を特定するヒモNoに対応付けて、仮想紐の紐長と、仮想紐により接続される2つのユニットとを記憶している。具体的に、仮想紐情報607aの最上段を例として説明すると、ヒモNoには「ST1」が記憶され、紐長には「l1」が記憶され、接続されるユニットとして接続1には「ユニットFa」が記憶され、接続2には、「ユニットFb」が記憶されている。
2−3.処理の流れ
次に、本第2の実施の形態における処理の流れについて説明する。
図18は、ユニット制御処理を示すフローチャートである。この処理は、キャラクタ制御部224がユニット制御処理プログラム601を実行することで実現される。
図18に示すように、ユニット制御処理では、まず、プレーヤによりゲームを開始する指示が入力されると、各種データのクリアや初期設定等の初期化処理が行われる(ステップS21)。なお、この初期化処理により、直接操作ユニットとして所定のユニットが初期設定される。
続いて、キャラクタ制御部224は、各操作部1700a、1700bが操作されることにより、直接操作ユニットに移動指示が入力されたか否かを判別し(ステップS22)、移動指示が入力された場合(ステップS22;YES)、後述する移動制御処理2(図19参照)を実行する。
図19は、移動制御処理2を示すフローチャートである。この処理は、ユニット制御処理の一部として実行される処理であり、キャラクタ制御部224が移動制御処理プログラム602を実行することで実現される。
図19において、移動制御処理2では、まず、左手操作部1700aから操作信号が入力されると、ユニット情報605から左手操作部1700aに割り当てられているユニットの種別を取得すると共に、入力された操作信号から移動ベクトルを算出する(ステップS31)。次いで、左手操作部1700aに割り当てられているユニットの位置情報を移動ベクトルに基づいて更新する(ステップS32)。
次に、右手操作部1600aから操作信号が入力されると、ユニット情報605から右手操作部1700bに割り当てられているユニットの種別を取得すると共に、入力された操作信号から移動ベクトルを算出する(ステップS33)。続いて、算出された移動ベクトルに基づいて右手操作部1700bに割り当てられているユニットの位置情報を算出し、直接操作ユニット同士の離間距離が、直接操作ユニット及びその間に挟まれる間接操作ユニットを接続する仮想紐の合計長を超えていないか否かを判別する(ステップS34)。
ここで、直接操作ユニット同士の離間距離が、直接操作ユニット及びその間に挟まれる間接操作ユニットを接続する仮想紐の合計長を超えていない場合、破綻が生じていないと判断して(ステップS34;NO)、右手操作部に割当てられているユニットの位置情報を移動ベクトルに基づいて更新する(ステップS35)。
一方、直接操作ユニット同士の離間距離が、直接操作ユニット及びその間に挟まれる間接操作ユニットを接続する仮想紐の合計長を超えている場合、破綻が生じていると判断して(ステップS34;YES)、左手操作部に割当てられているユニットの位置情報と、仮想紐の合計長とに基づいて右手操作部に割当てられているユニットの移動ベクトルを補正する(ステップS36)。さらに、補正した移動ベクトルに基づいて右手操作部に割当てられているユニットの位置情報を更新する(ステップS37)。そして、更新された位置情報に従って左手操作部に割当てられているユニット、右手操作部に割当てられているユニットをそれぞれゲーム空間に配置する(ステップS38)。
続いて、キャラクタ制御部224は、間接操作ユニットを移動制御するため後述する間接操作ユニット位置情報更新処理(図20参照)を実行する。図20は、間接操作ユニット位置情報更新処理の流れを示すフローチャートである。この処理は、移動制御処理2の一部として実行される処理であり、キャラクタ制御部224が間接操作ユニット位置情報更新処理プログラム603を実行することで実現される。
図20において、間接操作ユニット位置情報更新処理では、まず、間接操作ユニットが2つの直接操作ユニットに接続されているか否かを判別する(ステップS51)。ここで、例えば、ユニットFa〜Fcが、図16(b)に示す接続関係を満たし、且つユニットFa,Fcが直接操作ユニットに設定されている場合、間接操作ユニットが2つの直接操作ユニットに接続されていると判別し(ステップS51;YES)、2つの直接操作ユニットの位置情報に基づいて、2つの直接操作ユニットと、間接操作ユニットとの離間距離をそれぞれ算出する。すなわち、まず、左手操作部に割当てられているユニットの位置情報と、間接操作ユニットの位置情報とから、両ユニットの離間距離r1を算出する(ステップS52)。
続いて、右手操作部に割当てられているユニットの位置情報と間接操作ユニットとの位置情報から、両ユニットの離間距離r2を算出する(ステップS53)。そして、左手操作ユニットに割当てられているユニットと間接操作ユニットとを接続する仮想紐の紐長l1がr1より長く、且つ、右手操作部に割当てられているユニットと間接操作ユニットとを接続する仮想紐の紐長l2がr2より長いか否か、すなわち、l1>r1、l2>r2を満たすか否かを判別する(ステップS54)。
ここで、l1>r1、L2>r2を満たす場合(ステップS54;YES)、2本の仮想紐はたるんだままとなり、間接操作ユニットはいずれの仮想紐からも張力を受けない。従って、間接操作ユニットの位置情報は更新されず(ステップS55)、本間接操作ユニット位置情報更新処理を終了して、移動制御処理2に移行する。
一方、l1>r1、l2>r2を満たさない場合(ステップS54;NO)、左手操作部に割当てられているユニットと間接操作ユニットとを接続する仮想紐の紐長がr1より長い、又は右手操作部に割当てられているユニットと間接操作ユニットとを接続する仮想紐の紐長がr2より長いか否か、すなわち、l1>r1、l2≦r2又はl1≦r1、l2>r2を満たすか否かを判別する(ステップS56)。
ここで、l1>r1、l2≦r2又はl1≦r1、l2>r2を満たす場合、間接操作ユニットは、左手操作部に割当てられているユニット又は右手操作部に割当てられているユニットのいずれか一方と接続されている仮想紐の張力を受けることとなる。すなわち、l1>r1、l2≦r2を満たす場合、間接操作ユニットは、右手操作部に割当てられているユニットと接続されている仮想紐の張力を受けて移動制御されることとなる。従って、右手操作部に割当てられているユニットの位置情報及び仮想紐の紐長l2とに基づいて間接操作ユニットの位置情報が更新される(ステップS58)。
一方、l1≦r1、l2>r2を満たす場合、間接操作ユニットは、左手操作部に割当てられているユニットと接続されている仮想紐の張力を受けて移動制御されることとなる。従って、左手操作部に割当てられているユニットの位置情報及び仮想紐の紐長l1とに基づいて間接操作ユニットの位置情報が更新される(ステップS58)。
また、l1>r1、l2≦r2又はl1≦r1、l2>r2を満たさない場合(ステップS56;NO)、l1≦r1且つl2≦r2を満たすこととなる。すなわち間接操作ユニットは、左手操作部に割当てられているユニットと接続されている仮想紐と、右手操作部に割当てられているユニットと接続されている仮想紐の両方から張力を受けることとなる。従って、2つの直接操作ユニットの位置情報と、仮想紐の紐長l1、l2とに基づいて、間接操作ユニットの位置情報を更新する(ステップS57)。そして、間接操作ユニット位置情報更新処理を終了して、移動制御処理2に移行する。
さらに、ステップS51に戻り、間接操作ユニットが2つの直接操作ユニットに接続されていない場合について説明する。例えば、ユニットFa〜Fcが、図16(a)に示す接続関係を満たし、且つユニットFa,Fcが直接操作ユニットに設定されている場合、キャラクタ制御部224は、間接操作ユニットが2つの直接操作ユニットに接続されていないと判別し(ステップS51;NO)、キャラクタ制御手段224は、接続されている直接操作ユニットの位置情報と、間接操作ユニットの位置情報とから、両ユニットの離間距離r3を算出する(ステップS61)。
続いて、間接操作ユニットと直接操作ユニットとを接続する仮想紐の紐長l3が離間距離r3より大きいか否かを判別する(ステップS62)。ここで、仮想紐の紐長l3が離間距離r3より大きい場合(ステップS61;YES)、仮想紐はたるんだままとなり、間接操作ユニットに対して張力が働かないため、間接操作の位置情報は更新されない(ステップS64)。一方、仮想紐の紐長l3が離間距離r3より小さい場合(ステップS62;YES)、直接操作ユニットの位置情報と仮想紐の紐長l3とに基づいて、間接操作ユニットの位置情報を更新する(ステップS63)。そして、キャラクタ制御部224は、本間接操作ユニット位置情報更新処理を終了して、移動制御処理2に移行する。
続いて、移動制御処理2に戻り、キャラクタ制御部224は、ユニット情報606に記憶された間接操作ユニットの位置情報に従って、間接操作ユニットを配置する(ステップS41)。そして、本移動制御処理2を終了して、ユニット制御処理へ移行する。
ユニット制御処理に戻り、キャラクタ制御部224は、プレーヤの操作入力により、陣形変換指示が入力されたか否かを判別する(ステップS24)。ここで、陣形変換指示が入力された場合(ステップS24;YES)、キャラクタ制御部224は、操作入力の内容、すなわち操作されたボタンの種別に応じて、陣形テーブル605から対応する陣形を取得し、ユニット情報606に記憶される陣形を更新する(ステップS25)。さらに、陣形テーブルから対応する陣形の形状を取得して対応するユニットの陣形の形状を変換して表示させると共に、陣形パラメータを変更する(ステップS26)。
続いて、操作制御部223は、直接操作ユニットの変更設定指示が入力されたか否かを判別し(ステップS27)、変更設定指示が入力された場合(ステップS27;YES)、操作入力の内容及びユニット設定テーブル604に基づいて、ユニット情報606の操作部の割当てを変更し、直接操作ユニットの設定を変更する(ステップS28)。
そして、ゲーム演算部22は、ゲームが終了したか否かを判別し(ステップS29)、ゲームが終了していない場合(ステップS29;NO)、ステップS22に移行して、上述した処理を繰り返して実行する。一方、ゲームが終了した場合(ステップS29;YES)、本ユニット制御処理を終了する。
2−4.作用・効果
以上のように、第2の実施の形態によれば、左手操作部1700a、右手操作部1700bそれぞれに対応づけられる直接操作ユニットを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って複数のユニットの中から選択的に変更設定させると共に、プレーヤによる左手操作部1700a、右手操作部1700bそれぞれに対する操作入力に基づき、現在の直接操作ユニットとして左手操作部1700a、右手操作部1700bに対応づけて設定されているユニットを移動制御する。また、各ユニット相互間の位置関係に関する拘束条件として各ユニット間を接続する仮想紐を設定し、直接操作ユニットの移動に伴い、各ユニット相互間の拘束条件を満たすように、すなわち、仮想紐で結ばれたユニット間の距離が仮想紐の紐長を超えないようにして間接操作ユニットを移動制御する。
これにより、左手操作部1700a、右手操作部1700bそれぞれに対応付けて設定されている直接操作ユニットについては、左手操作部1700a、右手操作部1700bに対する操作入力に基づいて移動制御すると共に、直接操作ユニット以外の他のユニットを、各ユニット相互間の位置関係に関する拘束条件を満たすように移動制御することができるため、プレーヤは左手操作部1700a、右手操作部1700bに対応付けて設定されていない他のユニットについても、プレーヤ操作により間接的に操作しているような感覚を味わうことができる。
つまり、直接操作ユニット以外の他のユニットについては、仮想紐で結ばれたユニット間の距離が仮想紐の紐長を超えないように移動制御されるため、直接操作ユニットの操作入力に連動して、プレーヤが容易に推測可能な移動先に間接操作ユニットを移動させることができる。この結果、プレーヤは間接操作ユニットについても、自己の意思を反映させた移動制御を行うことができ、自己の操作入力により間接操作ユニットを移動させているような感覚を味わうことができる。
さらに、2つの直接操作ユニット間の距離が、2つの直接操作ユニット間を最短で結ぶ仮想紐の組合せの合計長より長い場合、2つの直接操作ユニットのうち一方の位置と他方の位置とを近づけ、当該距離が仮想紐の組み合わせの合計長以上とならないように2つの直接操作ユニット位置を変化させる。すなわち、直接操作ユニットについても仮想紐の紐長の合計長に基づいて、その位置を変化させるように移動制御なされるため、間接操作ユニットを移動制御する際に、仮想紐の紐長と各ユニットの位置関係とに破綻を生じさせることがなく、計算負荷を軽減することができる。
また、直接操作ユニットが2体以上設定可能であるため、一方向の移動制御だけでなく、多方向に複数のユニットを移動制御させることができる。つまり、複数のユニットにより形成される陣形を可変させながら移動の制御を行うことができ、プレーヤは戦略的なゲームプレイを行うことができる。
2−5.変形例
以上、第2の実施の形態においては、プレーヤの操作対象となるユニットが3体であり、直接操作対象ユニットに設定されるユニットが2体である場合を例として説明を行ったが、これらのユニットの数は上述した例に限定されない。
例えば、プレーヤの操作対象となるユニットが4体であり、直接操作ユニットに設定されるユニットが2体ある構成であってもよい。具体的には、図21(a)に示すように、直接操作ユニットにユニットFb,ユニットFcが設定され、間接操作ユニットにユニットFa,ユニットFdが設定されている場合に、直接操作ユニットに対してプレーヤの操作入力が開始されると、ユニットFbとユニットFcは、図中矢印の方向に移動制御される。
続いて、各ユニット間を接続する仮想紐の紐長がユニット間の離間距離と同一になった場合、接続されている間接操作ユニットに対して張力が作用するため、図21(b)に示すように、ユニットFa,ユニットFdは、図中矢印の方向に移動制御される。このように、4体のユニット相互間の位置関係に関する拘束条件として、それぞれのユニットを接続する仮想紐を設定し、直接操作ユニットの移動に伴って、各仮想紐に基づき、仮想紐で結ばれたユニット間の距離が仮想紐の紐長を超えないようにして間接操作ユニットの移動制御を行うことにより、直接操作ユニットを単に追従するといった単純な移動制御ではない、多様な移動制御を実現することができる。
また、第2の実施の形態においては、複数のサブキャラクタをグループ化した集団から構成されるユニットを一体のキャラクタとして移動制御する場合について説明を行ったが、これらユニットに限らず、一体のキャラクタをユニットと同様に上述した方法で移動制御する構成であってもよい。
[第3の実施の形態]
次に、第3の実施の形態について、図22〜図29を参照して説明する。第2の実施の形態においては、ユニット相互間の位置関係に関する拘束条件としてユニット間を接続する仮想紐を設定し、直接操作ユニット以外の間接操作ユニットを、設定された各仮想紐の紐長を超えないようにして移動制御する場合について説明を行ったが、第3の実施の形態においては、拘束条件としてユニット間を接続する仮想バネを設定し、設定された仮想バネのバネ長に応じた弾性力に基づいて間接操作ユニットを移動制御する場合について説明する。
3−1.原理
第3の実施の形態における原理について説明する。
図22は、ユーザの操作対象となるユニットが前進する場合の動作を説明するための図であり、ゲーム空間の概略俯瞰図である。図22(a)に示すように、ゲーム空間には、直接操作ユニットと、間接操作ユニットとが配置される。同図では、直接操作ユニットとして2体のユニットFa,Fcと、間接操作ユニットとして1体のユニットFbとが設定・配置された様子を示している。
また、ユニットFa〜Fcには、各ユニット相互間の位置関係に関する拘束条件として、隣接するユニット間を接続する仮想バネが設定されている。各ユニット同士が仮想バネで接続された場合、直接操作ユニットの移動に伴って、直接操作ユニットと間接操作ユニットとの距離が広がると、間接操作ユニットは仮想バネから引張力を受ける。また、直接操作ユニットと間接操作ユニットとの距離が縮まると、間接操作ユニットは仮想バネから反発力を受ける。従って、間接操作ユニットは、この仮想バネの引張力又は反発力(以下、引張力と反発力とを併せて「弾性力」と呼ぶ)に応じて移動制御されることとなる。
まず、図22(a)に示す接続状態において、直接操作ユニットFa,Fcに対してプレーヤから前進指示の操作入力が開始されると、直接操作ユニットFa,Fcは、操作入力に応じて前方方向に移動制御される。続いて、図22(b)に示すように、ユニットFa,Fcの移動に伴い、ユニットFbに対して仮想バネによる弾性力が作用するようになる。ユニットFbに対して作用する弾性力は、ユニットFaとユニットFbとを接続する仮想バネSP1による弾性力ベクトルF1aと、ユニットFcとユニットFbとを接続する仮想バネSP2による弾性力ベクトルF2cとを合計した合計弾性力ベクトルFacにより表される。そして、ユニットFbは、この合計弾性力ベクトルFacを移動ベクトルとして移動制御される。
また、間接操作ユニットの移動制御は、各ユニットの運動の慣性を加味して行われても良い。例えば、図23に示すように、間接操作ユニットFdに慣性力Fiが作用している場合、合計弾性力ベクトルFacと、慣性力Fiとの合力を算出し、これを移動ベクトルとして移動制御する構成であっても良い。この構成によれば、間接操作ユニットの自然な移動制御を行うことができる。
3−2.機能構成
次に第3の実施の形態における家庭用ゲーム装置の機能構成について説明する。
なお、第3の実施の形態は、上述した第1の実施の形態及び第2の実施の形態における家庭用ゲーム装置1を用いて実現されるものであるため、第1の実施の形態及び第2の実施の形態と共通する点については説明を省略し、同一の機能、構成については同一の符号で表し、以下では第3の実施の形態に特徴的な部分につき詳細に説明する。
図24は、本第3の実施の形態における家庭用ゲーム装置1の内部構成の一例を示す図である。図24に示すように、家庭用ゲーム装置1は、操作部10、処理部20、記憶部70、表示部40、音出力部50等を備えて構成され、ビデオゲームを実行してゲーム画像を生成し、生成したゲーム画像を表示部40に表示させる。
ゲーム演算部22は、主な機能部として、操作制御部225と、キャラクタ制御部226とを含む。操作制御部225は、本第3の実施の形態に特徴的な構成としてユニット制御処理プログラム701に従ってユニット制御処理を実行し、プレーヤから入力された操作指示に対応する操作制御を行う。また、キャラクタ制御部226は、第3の実施の形態に特徴的な構成として、ユニット制御処理プログラム701、移動制御処理プログラム702それぞれに従ってユニット制御処理、移動制御処理3を実行して、直接操作ユニット及び間接操作ユニットとして設定されているユニットの移動制御を行う。
記憶部70は、ユニット制御処理プログラム701、移動制御処理プログラム702、ユニット設定テーブル703、陣形テーブル704、ユニット情報705、仮想バネ接続テーブル706、仮想バネ情報707等を格納している。
ユニット制御処理プログラム701及び移動制御処理プログラム702は、ゲーム演算部22を操作制御部225、キャラクタ制御部226として機能させるためのプログラムである。
ユニット設定テーブル703は、各操作部に対応付けられたボタンと、設定変更前後で直接操作ユニットとして設定されるユニットの種別とを対応付けて記憶するテーブルである。なお、ユニット設定テーブル703のデータ構成は、上述した第1の実施の形態において説明したキャラクタ設定テーブル303と略同一の構成によってなるため、図示及び詳細な説明を省略する。
陣形テーブル704は、複数の陣形について、対応する陣形の形状と陣形パラメータとを対応付けて記憶するテーブルである。なお、陣形テーブル704は、上述した第2の実施の形態において説明した陣形テーブル605と略同一の構成によってなるため、図示及び詳細な説明は省略する。
ユニット情報705は、プレーヤの操作対象となるユニットの種別と、直接操作ユニットに割り当てられる操作部の種別と、各ユニットの位置情報と、各ユニットの移動ベクトルとを対応付けて、それぞれ更新可能に記憶している。なお、ユニット情報606のデータ構成は、上述した第1の実施の形態におけるキャラクタ情報305と略同一の構成によってなるため、詳細な説明を省略する。
仮想バネ接続テーブル706は、各仮想バネにより接続されるユニットを設定するためのテーブルである。図25に仮想バネ接続テーブル706のデータ構成例を示す。図25において、仮想バネ接続テーブル706は、各仮想バネを特定するバネNo(例えば、SP1)に対応付けて、仮想バネにより接続される2つのユニットを接続1(例えば、ユニットFa)、接続2(例えば、ユニットFb)として記憶している。
仮想バネ情報707は、各仮想バネ毎にバネ係数と、バネ長と、バネ長に応じて可変する弾性力とを記憶している。図26に、仮想バネ情報707のデータ構成例を示す。図26において、仮想バネ情報707には、各仮想バネを特定するバネNo(例えば、「SP1」)に対応付けて、バネ定数(例えば、「k1」)、バネ長(例えば、「10」)、接続1としてユニットFaに対する弾性力ベクトル(例えば、「ベクトルF1a」)、接続2としてユニットFbに対する弾性力ベクトル(例えば、「ベクトルF1b」)が記憶されている。
そして、この仮想バネ情報707に記憶される弾性力ベクトルに基づいて、間接操作ユニットの移動制御が行われる。つまり、キャラクタ制御部226は、仮想バネ情報707に記憶された弾性力ベクトルから移動ベクトルを算出し、算出した移動ベクトルに基づいて、間接操作ユニットの移動制御を行う。
3−3.処理の流れ
次に、第3の実施の形態における処理の流れについて説明する。
なお、第3の実施の形態におけるユニット制御処理は、上述した第2の実施の形態におけるユニット制御処理と略同一の処理が行われるため、図示及び説明を省略する。以下では、第3の実施の形態に特徴的な移動制御処理3について説明する。
図28は、移動制御処理3を示すフローチャートである。この処理は、第2の実施の形態のユニット制御処理の一部として実行される移動制御処理2に代わって実行される処理であり、キャラクタ制御部226が移動制御処理プログラム702を実行することで実現される。
図28において、移動制御処理3では、まず、直接操作ユニットに対して操作信号が入力されると、操作入力に従って移動ベクトルを算出し、算出された移動ベクトルに基づいて位置情報を更新する。そして、更新された位置情報に基づいて、直接操作ユニットをゲーム空間に配置させることにより、直接操作ユニットを移動させる(ステップS71)。
次に、更新された直接操作ユニットの位置情報と間接操作ユニットの位置情報とに基づいて、各仮想バネのバネ長を更新する(ステップS72)。続いて、各仮想バネのバネ長から、間接操作ユニットに対する弾性力ベクトルをそれぞれ算出し、更新する(ステップS73)。そして、間接操作ユニットに接続されている全仮想バネの弾性力ベクトルを合計して合計弾性力ベクトルを算出する(ステップS74)。さらに、現在の移動ベクトルと合計弾性力ベクトルとを合計して係数をかけ、移動ベクトルを算出し、更新する(ステップS75)。
ここで、係数は、算出された合計弾性力ベクトルの値を補正するためのものであり、間接操作ユニットの自然な移動制御を実現するためのものである。例えば、図27に示すように、バネ長lが一定の長さ範囲内(a<l<b)にある場合、係数0を乗算して弾性力(引張力又は反発力)が間接操作ユニットに対して作用するのを制限する。この状態はいわば遊びの状態である。そして、バネ長が一定の長さ以上(b≦l)になった場合、引張力を補正するための係数を乗算して合成弾性力ベクトルを算出する。一方、バネ長が一定の長さ以下(a≧l)になった場合、反発力を補正するための係数を乗算して合成弾性力ベクトルを算出する。なお、上述した例では、係数0を乗算して遊びを持たせる範囲を設定したが、この遊びを持たせない構成であっても良い。
これにより、例えば、図23に図示して説明したように、各ベクトルを単純に加算していった場合、合計弾性力ベクトルの長さは大きなものとなるが、係数を乗算することで、合計弾性力ベクトルを一定の大きさ以内のベクトルとなるように調整することができる。この結果、間接操作ユニットの自然な移動制御を実現できる。
図28に戻り、キャラクタ制御部226は、ユニット情報705に記憶される位置情報を取得して、各ユニットを対応する位置情報に従ってゲーム空間に配置する(ステップS76)。さらに、全てのユニットについて位置情報を更新するまで、ループBを繰り返して実行する。全てのユニットについて位置情報を更新した場合、プレーヤから操作入力が行われているか否かを判別し、操作入力が継続して行われている場合、ループAを繰り返して実行する。一方、操作入力が行われていない場合、本移動制御処理3を終了して、ユニット制御処理に移行する。
3−4.作用・効果
以上のように、本第3の実施の形態によれば、左手操作部1700a、右手操作部1700bそれぞれに対応づけられる直接操作ユニットを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って複数のユニットの中から選択的に変更設定させる。また、プレーヤによる左手操作部1700a、右手操作部1700bそれぞれに対する操作入力に基づき、現在の直接操作ユニットとして左手操作部1700a、右手操作部1700bに対応づけて設定されているユニットを移動制御する。また、各ユニット相互間の位置関係に関する拘束条件として、バネ長に応じて可変する弾性力が設定された仮想バネで各ユニット間を接続する。そして、直接操作ユニットと仮想バネで接続されている間接操作ユニットについては、直接操作ユニットの位置変化に基づいて更新される仮想バネの弾性力に応じて移動制御するため、直接操作ユニットに対する操作入力に連動して、プレーヤが容易に推測可能な移動先に間接操作ユニットを移動させることができる。
これにより、プレーヤは間接操作ユニットについても、自己の意思を反映させた移動制御を行うことができ、自己の操作入力により移動させているような感覚を味わうことができる。また、バネ長に応じて可変する弾性力が設定された仮想バネが拘束条件として設定されるため、直接操作ユニットの位置に応じて自由度の高い間接操作ユニットの移動制御を実現することができる。これにより、複数のユニットによる多彩な陣形を取り得ることができ、戦略的なゲームプレイを楽しむことができる。
3−5.変形例
以上、第3の実施の形態においては、プレーヤの操作対象となるユニットが3体であり、直接操作対象ユニットに設定されるユニットが2体である場合を例として説明を行ったが、これらのユニットの数は上述した例に限定されない。
例えば、プレーヤの操作対象となるユニットが4体であり、直接操作ユニットに設定されるユニットが2体ある構成であっても良い。具体的には、図29に示すように、直接操作ユニットにユニットFa,ユニットFcが設定され、間接操作ユニットにユニットFb,ユニットFdが設定されている場合に、直接操作ユニットに対してプレーヤの操作入力が開始されると、ユニットFbとユニットFcは、図中矢印の方向に移動制御される。
続いて、各ユニット間を接続する仮想バネのバネ長に応じた弾性力により、間接操作ユニットが移動制御される。すなわち、ユニットFbは、ユニットFaと接続されている仮想バネから作用される弾性力ベクトルF1aと、ユニットFcと接続されている仮想バネから作用される弾性力ベクトルF2cとの合計から算出される合計弾性力ベクトルFacに基づいて移動ベクトルが算出され、移動制御される。一方、ユニットFdは、ユニットFcと接続されている仮想バネのみから弾性力の作用を受けるため、弾性力ベクトルF3cに基づいて、移動ベクトルが算出され、移動制御される。
このように、複数のユニットを仮想バネで接続して、直接操作ユニットの位置変化と仮想バネが及ぼす弾性力とに基づいて、直接操作ユニット以外の間接操作ユニットを移動制御することができるため、多数のユニットについてプレーヤの意思を反映させた移動制御を実現することができる。また、直接操作ユニットに対して入力された操作入力に基づいて、直接操作ユニットの移動制御が行われた後に、間接操作ユニットの移動制御が行われるため、間接操作ユニットの移動制御が1フレーム遅れることとなる。これにより、プレーヤは自己が直接操作しているユニットを一見して容易に把握することができる。
また、第3の実施の形態においては、複数のサブキャラクタをグループ化した集団から構成されるユニットを一体のキャラクタとして移動制御する場合について説明を行ったが、ユニットに限らず、一体のキャラクタをユニットと同様に上述した方法で移動制御する構成であってもよい。
また、上述した実施形態では、家庭用ゲーム装置を例に挙げて説明したが、本発明を適用可能な装置は、これに限られず、業務用のゲーム装置の他、携帯型のゲーム装置、PDA等の装置であってもよいことは勿論である。
本実施の形態における家庭用ゲーム装置の概観図。 ゲームコントローラの概観図。 第1の実施の形態の原理を説明する図。 家庭用ゲーム装置の機能ブロック図。 キャラクタ制御テーブルのデータ構成例を示す図。 操作データのデータ構成例を示す図。 キャラクタ情報のデータ構成例を示す図。 キャラクタ制御処理を示すフローチャート。 移動制御処理1を示すフローチャート。 ハードウェアの構成の一例を示す図。 第2の実施の形態の原理を説明する図。 第2の実施の形態の原理を説明する図。 第2の実施の形態における家庭用ゲーム装置の機能ブロック図。 陣形テーブルのデータ構成例を示す図。 ユニットのデータ構成例を示す図。 複数のユニットの接続状態を説明する図。 仮想紐情報のデータ構成例を示す図。 ユニット制御処理を示すフローチャート。 移動制御処理2を示すフローチャート。 間接操作ユニット位置情報更新処理を示すフローチャート。 第2の実施の形態の変形例を説明する図。 第3の実施の形態の原理を説明する図。 合計弾性力ベクトルを説明する図。 第3の実施の形態における家庭用ゲーム装置の機能ブロック図。 仮想バネ接続テーブルのデータ構成例を示す図。 仮想バネ情報のデータ構成例を示す図。 弾性力ベクトルの係数を説明する図。 移動制御処理3を示すフローチャート。 第3の実施の形態の変形例を示す図。
符号の説明
10 操作部
20 処理部
22 ゲーム演算部
221 操作制御部
222 キャラクタ制御部
24 画像生成部
26 音生成部
30 記憶部
301 キャラクタ制御処理プログラム
302 移動制御処理プログラム
303 キャラクタ設定テーブル
304 操作データ
305 キャラクタ情報
40 表示部
50 音出力部

Claims (9)

  1. コンピュータに、プレーヤによるN個(Nは2以上の整数。)のキャラ操作入力部に対する操作入力に基づいて、仮想空間中のN+1以上のキャラクタの移動を制御し、前記仮想空間の画像を生成してゲームを実行させるためのプログラムであって、
    前記キャラ操作入力部それぞれに対応づける直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って前記複数のキャラクタの中から選択的に変更設定する変更設定手段、
    プレーヤによる前記キャラ操作入力部それぞれに対する操作入力に基づき、前記変更設定手段により現在の直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタを移動制御する直接操作対象キャラ制御手段、
    プレーヤが前記キャラ操作入力部それぞれを操作した際の操作入力の内容を、前記変更設定手段により現在直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタと対応づけて記憶する操作内容記憶手段、
    前記変更設定手段により従前に直接操作キャラクタとして設定され、且つ現在設定されていないキャラクタを、前記操作内容記憶手段により当該キャラクタに対応づけて記憶されている操作入力の内容に基づいて移動制御する他キャラ制御手段、
    として前記コンピュータを機能させるためのプログラム。
  2. 前記他キャラ制御手段が、前記変更設定手段により従前に直接操作キャラクタとして設定され、且つ現在設定されていないキャラクタに対応づけて前記操作内容記憶手段により記憶されている最新の操作入力の内容に基づいて、当該キャラクタを移動制御するように前記コンピュータを機能させるための請求項1に記載のプログラム。
  3. コンピュータに、プレーヤによるN個(Nは2以上の整数。)のキャラ操作入力部に対する操作入力に基づいて、仮想空間中のN+1以上のキャラクタの移動を制御し、前記仮想空間の画像を生成してゲームを実行させるためのプログラムであって、
    前記キャラ操作入力部それぞれに対応づける直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って前記複数のキャラクタの中から選択的に変更設定する変更設定手段、
    プレーヤによる前記キャラ操作入力部それぞれに対する操作入力に基づき、前記変更設定手段により現在の直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタを移動制御する直接操作対象キャラ制御手段、
    前記各キャラクタ相互間の位置関係に関する拘束条件を設定する拘束条件設定手段、
    前記直接操作キャラクタの移動に伴い、前記直接操作キャラクタ以外の他のキャラクタを、前記拘束条件設定手段により設定された各キャラクタ相互間の拘束条件を満たすように移動させる制御を行う他キャラ制御手段、
    として前記コンピュータを機能させるためのプログラム。
  4. 前記拘束条件設定手段が、前記複数のキャラクタの全部又は一部の相互間に当該キャラクタ間を接続する仮想紐を前記拘束条件として設定する仮想紐設定手段を有するように前記コンピュータを機能させ、
    前記他キャラ制御手段が、前記仮想紐設定手段により設定された各仮想紐に基づき、当該仮想紐で結ばれたキャラクタ間の距離が当該仮想紐の紐長を超えないようにして前記直接操作キャラクタ以外の他のキャラクタの移動を制御するように前記コンピュータを機能させる、
    ための請求項3に記載のプログラム。
  5. 前記直接操作対象キャラ制御手段が、前記複数の直接操作キャラクタのうち、何れか2つの直接操作キャラクタ間の距離が、前記仮想紐設定手段により設定された当該2つの直接操作キャラクタ間を最短で結ぶ仮想紐の組合せの合計長より長い場合、当該2つの直接操作キャラクタのうち一方の位置と他方の位置とを近づけ、当該距離が当該合計長以上とならないように当該2つの直接操作キャラクタの位置を変化させるように前記コンピュータを機能させるための請求項4に記載のプログラム。
  6. 前記拘束条件設定手段が、前記複数のキャラクタの全部又は一部の相互間に当該キャラクタ間を接続し、バネ長に応じて可変する弾性力が設定された仮想バネを前記拘束条件として設定する仮想バネ設定手段を有するように前記コンピュータを機能させ、
    前記直接操作対象キャラ制御手段の移動制御による前記直接操作キャラクタの位置変化に基づき、当該直接操作キャラクタに接続されている仮想バネの弾性力を更新設定する第1の弾性力更新手段として前記コンピュータを機能させ、
    前記他キャラ制御手段が、各仮想バネに設定されている弾性力に基づいて前記直接操作キャラクタ以外の他のキャラクタの移動を制御するように前記コンピュータを機能させる、
    前記他キャラ制御手段の移動制御による前記他のキャラクタの位置変化に基づき、当該他のキャラクタに接続されている仮想バネの弾性力を更新設定する第2の弾性力設定手段として前記コンピュータを機能させる、
    ための請求項3に記載のプログラム。
  7. 請求項1〜6のいすれか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
  8. プレーヤによるN個(Nは2以上の整数。)のキャラ操作入力部に対する操作入力に基づいて、仮想空間中のN+1以上のキャラクタの移動を制御し、前記仮想空間の画像を生成してゲームを実行するためのゲーム装置であって、
    前記キャラ操作入力部それぞれに対応づける直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って前記複数のキャラクタの中から選択的に変更設定する変更設定手段と、
    プレーヤによる前記キャラ操作入力部それぞれに対する操作入力に基づき、前記変更設定手段により現在の直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタを移動制御する直接操作対象キャラ制御手段と、
    プレーヤが前記キャラ操作入力部それぞれを操作した際の操作入力の内容を、前記変更設定手段により現在直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタと対応づけて記憶する操作内容記憶手段と、
    前記変更設定手段により従前に直接操作キャラクタとして設定され、且つ現在設定されていないキャラクタを、前記操作内容記憶手段により当該キャラクタに対応づけて記憶されている操作入力の内容に基づいて移動制御する他キャラ制御手段と、
    を備えるゲーム装置。
  9. プレーヤによるN個(Nは2以上の整数。)のキャラ操作入力部に対する操作入力に基づいて、仮想空間中のN+1以上のキャラクタの移動を制御し、前記仮想空間の画像を生成してゲームを実行するためのゲーム装置であって、
    前記キャラ操作入力部それぞれに対応づける直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って前記複数のキャラクタの中から選択的に変更設定する変更設定手段と、
    プレーヤによる前記キャラ操作入力部それぞれに対する操作入力に基づき、前記変更設定手段により現在の直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタを移動制御する直接操作対象キャラ制御手段と、
    前記各キャラクタ相互間の位置関係に関する拘束条件を設定する拘束条件設定手段と、
    前記直接操作キャラクタの移動に伴い、前記直接操作キャラクタ以外の他のキャラクタを、前記拘束条件設定手段により設定された各キャラクタ相互間の拘束条件を満たすように移動させる制御を行う他キャラ制御手段と、
    を備えるゲーム装置。
JP2005072789A 2005-03-15 2005-03-15 プログラム、情報記憶媒体及びゲーム装置 Pending JP2006254950A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005072789A JP2006254950A (ja) 2005-03-15 2005-03-15 プログラム、情報記憶媒体及びゲーム装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005072789A JP2006254950A (ja) 2005-03-15 2005-03-15 プログラム、情報記憶媒体及びゲーム装置

Publications (1)

Publication Number Publication Date
JP2006254950A true JP2006254950A (ja) 2006-09-28

Family

ID=37094795

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005072789A Pending JP2006254950A (ja) 2005-03-15 2005-03-15 プログラム、情報記憶媒体及びゲーム装置

Country Status (1)

Country Link
JP (1) JP2006254950A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010035561A (ja) * 2008-07-31 2010-02-18 Square Enix Co Ltd ビデオゲーム処理装置、ビデオゲーム処理方法、およびビデオゲーム処理プログラム
JP2019000221A (ja) * 2017-06-13 2019-01-10 任天堂株式会社 ゲームプログラム、情報処理装置、情報処理システム、および、ゲーム処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010035561A (ja) * 2008-07-31 2010-02-18 Square Enix Co Ltd ビデオゲーム処理装置、ビデオゲーム処理方法、およびビデオゲーム処理プログラム
JP2019000221A (ja) * 2017-06-13 2019-01-10 任天堂株式会社 ゲームプログラム、情報処理装置、情報処理システム、および、ゲーム処理方法

Similar Documents

Publication Publication Date Title
JP5507893B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4124475B2 (ja) ビデオゲーム処理装置、ビデオゲーム処理方法、およびビデオゲーム処理プログラム
US7094153B2 (en) Virtual space control method
US7559835B2 (en) Video game processing apparatus, a method and a computer program product for processing a video game
JP2008136694A (ja) プログラム、情報記憶媒体及びゲーム装置
JP3618298B2 (ja) モーション表示方法、ゲーム装置及び記録媒体
JP2008000184A (ja) ゲームプログラムおよびゲーム装置
JP2007222549A (ja) ビデオゲーム処理装置、ビデオゲーム処理方法、およびビデオゲーム処理プログラム
JP2001327750A (ja) 球技系ゲームのカーソル表示を処理するためのプログラムを記録したコンピュータ読み取り可能な記録媒体およびプログラム、ならびに、球技系ゲームのカーソル表示処理装置およびその方法
US6614435B1 (en) Method of control of playback of motion and program product and game system for same
JP2007029222A (ja) プログラム、情報記憶媒体及び電子機器
JP4181200B2 (ja) ビデオゲーム処理装置、およびビデオゲーム処理プログラム
US20010016511A1 (en) Entertainment system, entertainment apparatus, recording medium, and program
JP2007244540A (ja) プログラム、情報記憶媒体及びゲーム装置
WO2004082786A1 (ja) ゲーム装置、ゲーム制御方法、及びプログラム
JP2006314434A (ja) プログラム、情報記憶媒体及びゲーム装置
JP3685829B2 (ja) 3次元ゲーム装置及び画像合成方法
JP2006254950A (ja) プログラム、情報記憶媒体及びゲーム装置
JP4165983B2 (ja) ゲーム装置および情報記憶媒体
JP5122669B2 (ja) ゲーム装置、ゲーム装置の制御方法、及びプログラム
JP2000126451A (ja) ゲーム装置、キャラクタのパラメータ変化方法および記録媒体
JP4097236B2 (ja) 画像生成装置及び情報記憶媒体
JP5127802B2 (ja) ゲームプログラム、ゲーム装置、およびゲーム制御方法
JP2000126446A (ja) ゲーム装置、ゲームのアイテム収容方法、および情報記録媒体
JP2009045273A (ja) プログラム、情報記憶媒体、およびゲームシステム