(57)【要約】      （修正有）【課題】リアル感および臨場感に富み、またゲーム感やゲームへの興味感を大幅に高揚でき、従来に比べて演算処理も遜色なく、ガンシューティングゲームなどに好適な画像生成装置を提供する。【解決手段】ガンゲームのゲーム空間内を移動するエネミを同空間内の移動可能なカメラ視点から捕捉した画像を生成する。エネミに関して定めた注視点と現在のカメラ視点からの視線との位置関係を用いてカメラ視点の移動を画像１フレーム毎に制御する手段を備える。この手段は、カメラ視点の特定の移動状況を判断し、カメラ視点をその視線方向を保持したまま移動させ、カメラ視点の位置から注視点へ向かう方向とその移動前のカメラ視点の視線方向との成す角度を演算し、その角度に基づいてカメラ視点を注視点の方向に回転させる。【選択図】図１
2009064448.tif 000002
【特許請求の範囲】
【請求項１】
仮想３次元空間内を移動する移動体を当該仮想３次元空間内の移動可能な視点から捕捉した画像を生成する画像生成装置において、前記移動体に関して定めた注視点と現在のカメラ視点からの視線との位置関係を用いて前記カメラ視点の移動を制御する移動手段を備える画像生成装置。
【請求項２】
前記仮想３次元空間はゲーム空間であり、前記移動体はそのゲーム空間で演じられるガンシューティングゲームのエネミである請求項１記載の画像生成装置。
【請求項３】
前記ゲーム空間を画面に表示する表示手段と、遊戯者がトリガを操作して前記画面に向かって信号を発することができるガンユニットと、前記表示手段の画面上の前記信号の到達位置を検知するセンサと、前記到達位置に基づき前記エネミと遊戯者との間のガンシューティングゲームを実行するゲーム実行手段とを備える請求項２記載の画像生成装置。
【請求項４】
前記注視点の位置は前記移動体とは別個の位置であり、この注視点を前記画像の１フレームの表示毎に前記移動体に向かって移動させる注視点移動手段を備える請求項３記載の画像生成装置。
【請求項５】
前記注視点移動手段は、前記画像の１フレームの表示毎に、前記注視点と前記移動体の位置とを結んだ直線距離に沿って当該注視点を前記移動体側にその直線距離の所定距離分ずつ移動させる手段である請求項４の画像生成装置。
【請求項６】
前記注視点移動手段は、前記カメラ視点から延びる現在の視線とそのカメラ視点から前記注視点と通って延びる線との間のなす開き角度を演算する手段と、その開き角度から所定の回転角度を演算する手段と、前記画像の１フレームの表示毎に前記回転角度だけ前記カメラ視点の向きを前記注視点側に回転させる手段とを備える請求項４の画像生成装置。
【請求項７】
前記移動手段は、前記遊戯者の操作に応じて変化する前記カメラ視点と前記注視点との相対的位置関係の特定状況の発生を判断する判断手段と、この判断手段により前記特定状況が判断されたときに、前記注視点の位置を常に補足するように前記カメラ視点の位置を制御する視点移動制御手段とを備えた請求項３記載の画像生成装置。
【請求項８】
前記視点移動制御手段は、前記カメラ視点を移動させる移動動作と、当該移動後のそのカメラ視点の位置から前記注視点へ向かう方向とその移動前の前記カメラ視点の視線方向との成す角度に応じた回転動作とを伴う位置制御を行う手段である請求項７記載の画像生成装置。
【請求項９】
前記視点移動制御手段は、前記角度に応じて前記カメラ視点を前記注視点の側に回転させる視点回転手段を有する請求項８記載の画像生成装置。
【請求項１０】
前記視点回転手段は、前記角度を所定値だけ増減させた角度に基づき前記カメラ視点を前記注視点の側に回転させる手段である請求項９記載の画像生成装置。
【請求項１１】
遊戯者を模した前記画面上のキャラクタが前記エネミの発射弾丸を避ける操作をその遊戯者が行う避け操作手段を備え、前記判断手段は、その避け操作手段が操作された状態かどうかを判断する手段である請求項９記載の画像生成装置。
【請求項１２】
仮想ゲーム空間に存在するエネミのキャラクタとの間で遊戯者がガンシューティングゲームを行う画像をディスプレイに表示する画像生成装置において、前記エネミのキャラクタから前記遊戯者への攻撃を前記遊戯者に事前に示唆する画像表示を行う画像処理手段を備える画像生成装置。
【請求項１３】
前記画像表示は、前記エネミのキャラクタから発射され且つ実空間に居る前記遊戯者に向かって飛来する弾丸の表示である請求項１２記載の画像生成装置。
【請求項１４】
前記弾丸の表示は、山なりの弾丸の表示である請求項１３記載の画像生成装置。
【請求項１５】
仮想ゲーム空間に存在するエネミのキャラクタとの間で遊戯者がガンシューティングゲームを行う画像を生成する画像生成装置において、前記ゲームの状況、評価・決定、および行動のファクタとの間で影響し合う前記キャラクタの感情のファクタを取り入れたＡＩ処理を実行するＡＩ処理手段を備える画像生成装置。
【請求項１６】
前記感情のファクタは前記ゲームに関する恐怖と怒りの感情要素で表される請求項１５記載の画像生成装置。
【請求項１７】
前記ＡＩ処理手段は、前記行動のファクタに基づく行動の結果を前記感情のファクタに反映させる処理を行う手段を有する請求項１６記載の画像生成装置。
【請求項１８】
仮想３次元空間内で移動する人物を模した移動体を、接続点を介して接続した複数のパーツで表現した画像を生成する画像生成装置において、前記複数のパーツの内の隣接する２つのパーツについて末端側の子パーツと中央部側の親パーツを特定する第１の特定手段と、前記子パーツの前記親パーツへの接続点が固定点である仮定してその子パーツの動きが親パーツに与える力積を演算する第１の演算手段と、前記第１の特定手段と第１の演算手段の動作を前記移動体の末端側からその中央部に掛けて再帰的に繰り返させる第１の繰り返し手段と、前記複数のパーツの内の隣接する２つのパーツについて中央部側の親パーツと末端側の子パーツを特定する第２の特定手段と、前記親パーツの動きが前記子パーツに掛かる力積を演算する第２の演算手段と、前記第２の特定手段と第２の演算手段の動作を前記移動体の中央部からその末端に掛けて再帰的に繰り返させる第２の繰り返し手段とを備える画像生成装置。
【請求項１９】
前記第１および第２の演算手段の少なくとも一方の演算手段は、前記人物を模す上での味付け的な演算処理を実行する手段である請求項１８記載の画像生成装置。
【請求項２０】
前記味付け的な演算処理は、前記人物の関節の動きの制約に伴って生じる逆むきモーメントを前記パーツに付与する演算、前記人物に及ぼされる外力を前記パーツに反映させる演算、計算のずれに伴って生じる前記パーツの位置の不自然さを補正する演算、前記人物の肉体的特質から生じる内力によるモーメントを前記パーツに付与する演算、および前記人物の精神性から生じる表現を前記パーツに反映させるための当該パーツの回転または移動速度の制御演算の内の１つまたは複数種の演算を含む請求項１９記載の画像生成装置。
【請求項２１】
仮想３次元空間内で移動する移動体の２種類のモーションの間のモーションを補間した画像データを生成する画像生成装置において、前記２種類のモーション間のモーションのファンクションカーブを現在の回転角度、目標回転角度、および目標回転角度到達までのフレーム数に基づき離散的に演算する演算手段と、この演算手段の演算結果に基づきモーション補間を行う補間手段とを備える画像生成装置。
【請求項２２】
仮想３次元空間内で移動する移動体と同空間内に置かれた構造体とのコリジョンの判定を要する画像を生成する画像生成装置において、前記構造体を移動させながら前記移動体とのコリジョンを判定するコリジョン判定手段を備える画像生成装置。
【請求項２３】
前記コリジョン判定手段は、前記構造体を平行移動または回転移動のいずれかの態様で移動させながらコリジョンを判定する手段である請求項２２記載の画像生成装置。
【請求項２４】
前記画像生成装置の各手段を実行するためのプログラムが記憶された記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成装置に関し、特に、仮想３次元空間内を移動させる移動体と、この移動体に画像を追従させるための当該空間内のカメラ視点（すなわちモニタ画像）との移動制御を必須とする、ガンシューティングゲームなどに好適な画像生成装置に関する。
【背景技術】
【０００２】
近年のコンピュータグラフィックス技術の発達に伴い、業務用、家庭用を問わず、シミュレーション装置やゲーム装置が広く一般に普及するようになっている。ゲーム装置の一つのジャンルとして、仮想ゲーム空間を移動する標的（エネミ）を打ち落とすガンシューティングゲーム（ガンゲーム）があり、根強い人気を得ている。
【０００３】
このゲーム装置は通常、ガンユニット、グラフィックス処理用のＣＰＵ、モニタなどを備える。遊戯者がモニタ画面上に現れるエネミを狙ってガンユニットのトリガを操作すると、ＣＰＵはガンユニットから発射された光信号のモニタ画面上の位置を検出し、この位置データに基づきエネミを倒す処理などを含んだ画像処理を行う。
【０００４】
従来の代表的なガンシューティングゲームの一つに、（株）セガ・エンタープライゼス製の「バーチャコップ（商標）」がある。このガンゲームは、モニタ画面上の仮想３次元空間（ゲーム空間）に出現するエネミを遊戯者がガンユニットを用いて打ち落とすことで得点を競うものである。このゲームでは、エネミはモニタ画面上の予め定められた場所に予め定められたタイミングで出現する。また、遊戯者がエネミにガンユニットの銃口を向けると、モニタ画面上の視点がそのエネミに近付き、エネミがモニタ画面に拡大表示される。エネミの行動は装置のＣＰＵで所定プログラムにより制御されており、必要に応じて、モニタ画面を見ている遊戯者に向けて反撃してくるようになっている。
【０００５】
しかしながら、本発明者が従来のガンシューティング用のゲーム装置を種々検討した結果、極力リアルで臨場感に富み、しかもゲームへの興味感を高揚できるゲームを提供して欲しいとする昨今の要求には未だほど遠い面が多々あった。
【０００６】
（１）例えば、従来のガンシューティングゲームにおいて、エネミが遊戯者に向けて反撃する場合の問題がある。エネミがＣＰＵ制御により弾丸を発射してきた場合、遊戯者はゲーム上で「危険な状態」（エネミから狙われている状態）にある。しかし、従来のエネミが遊戯者を狙っている状態でのエネミの正面面積は最も小さいので、遊戯者は「危険な状態」に直面しているということをエネミの画像からだけでは認識し難い。したがって、遊戯者は突然にエネミに倒されてしまったという感覚を抱くことになり、現実の世界でのゲームとの違和感を与えてしまっていた。
【０００７】
これを避けるため、モニタ画面上にマーカを表示して遊戯者に「危険な状態」にあることを認識させるという手法をとっている従来装置もあるが、この手法はあまりにも人為的で、自然なゲーム感を与えるものではなかった。
【０００８】
（２）第２に、カメラ視点（すなわち遊戯者が見るモニタ画面の視点）を、エネミの移動に程よくかつエネミを見失うことなく移動させることができていなかった。例えば、エネミの移動速度が早い場合や、複数のエネミが居る場合などにおいて、従来のカメラ視点の回転が瞬発すぎて、遊戯者が画面上でエネミを見失うなどの問題があった。
【０００９】
（３）また、従来のガンシューティングゲームにおいては、人物の行動を制御するために、すべての状況に対応した規則ベースを持つ必要がある。このため、例えば、「それまで怖がっていたのに、いきなり冷静に反撃する」などの不自然な行動をキャラクタにとらせないようにするには、そのような行動（結果）と原因との間の繋がりについてまでも規則を作り、それをデータベースとして予め保持させておく必要があった。したがって、このデータベースの開発には時間と手間が掛かり、開発コストが上がるという問題があった。また、データベースとして格納してしまうので、格納情報にミスがあっても分かり難いという問題もあった。さらに、データベース用のメモリ容量も大きくなっていた。
【００１０】
（４）さらに、従来のガンシューティングゲームでは壁、障害物など、移動体以外の構造体は移動させていない。このため、弾丸とそれらの構造体とのコリジョン（当たり）判定は、構造体が常にゲーム空間上の固定位置に在るという前提で行われているため、几帳面な画像にはなるが、ゲーム性の向上という観点に立脚したコリジョン時の迫力やダイナミックなゲーム展開を演出するには物足りなかった。
【００１１】
（５）さらに、従来のガンシューティングゲームの場合、キャラクタを構成するパーツの動きや、キャラクタのモーション間の動きにリアル性に欠ける面が多々あった。例えば、従来の場合、弾丸が当たったときに、単に倒れる動きをさせるだけであったが、実際は弾丸が当たったことの反動などの表現も欲しいし、また「撃たれてもまだ死んでいない」といった表現も欲しい。また、あるモーションと次のモーションとの間のキャラクタの動きを演算処理量が少ない状態でかつ滑らかにする面でも不満があった。
【発明の開示】
【００１２】
本発明は、このような従来技術が直面している状況に鑑みてなされたもので、従来よりもリアル感および臨場感に富み、またゲーム感やゲームへの興味感を大幅に高揚でき、しかも従来に比べて演算処理も遜色なく、ガンシューティングゲームなどに好適な画像生成装置を提供することを、その主要な目的とする。
【００１３】
また、遊戯者に「危険な状態」を的確に認識させることで、臨場感に富み、またゲーム感やゲームへの興味感を大幅に高揚できるようにすることも、本発明の別の目的の１つである。
【００１４】
さらに、カメラ視点を、エネミの移動に程よくかつエネミを見失うことなく移動させることで、ゲーム感やゲームへの興味感を大幅に高揚でき、ガンシューティングゲームなどに好適なゲーム装置を提供することも、本発明の別の目的の１つである。
【００１５】
さらに、キャラクタの挙動を制御する上で「感情」に起因した「行動」の要素を持たせることができ、かつ、その開発の手間や時間などを抑え、リアル感および臨場感に富み、しかも従来に比べて演算処理を重くすることなく、ガンシューティングゲームなどに好適なゲーム装置を提供することも、本発明の別の目的の１つである。
【００１６】
さらに、壁、障害物など、移動体以外の構造体とのコリジョンに迫力を持たせ、またダイナミックなゲーム展開を行って、臨場感に富み、またゲーム感やゲームへの興味感を大幅に高揚できるゲーム装置を提供することも、本発明の別の目的の１つである。
【００１７】
さらにまた、キャラクタを構成するパーツの動きや、キャラクタのモーション間の動きのリアル性を向上させ、リアル感および臨場感に富み、しかも従来に比べて演算処理も遜色なく、ガンシューティングゲームなどに好適なゲーム装置を提供することも、本発明の別の目的の１つである。
【００１８】
上記各目的を達成させるため、本発明にかかる画像生成装置は下記のように構成されている。
【００１９】
その第１の構成は、仮想３次元空間内を移動する移動体を当該仮想３次元空間内の移動可能な視点から捕捉した画像を生成する画像生成装置において、前記移動体に関して定めた注視点と現在のカメラ視点からの視線との位置関係を用いて前記カメラ視点の移動を制御する移動手段を備える、ことである。好適には、前記仮想３次元空間はゲーム空間であり、前記移動体はそのゲーム空間で演じられるガンシューティングゲームのエネミである。さらに好適には、前記ゲーム空間を画面に表示する表示手段と、遊戯者がトリガを操作して前記画面に向かって信号を発することができるガンユニットと、前記表示手段の画面上の前記信号の到達位置を検知するセンサと、前記到達位置に基づき前記エネミと遊戯者との間のガンシューティングゲームを実行するゲーム実行手段とを備える。
【００２０】
例えば、前記注視点の位置は前記移動体とは別個の位置であり、この注視点を前記画像の１フレームの表示毎に前記移動体に向かって移動させる注視点移動手段を備えることができる。また、前記注視点移動手段は、前記画像の１フレームの表示毎に、前記注視点と前記移動体の位置とを結んだ直線距離に沿って当該注視点を前記移動体側にその直線距離の所定距離分ずつ移動させる手段であるように構成してもよい。さらに、前記注視点移動手段は、前記カメラ視点から延びる現在の視線とそのカメラ視点から前記注視点と通って延びる線との間のなす開き角度を演算する手段と、その開き角度から所定の回転角度を演算する手段と、前記画像の１フレームの表示毎に前記回転角度だけ前記カメラ視点の向きを前記注視点側に回転させる手段とを備えることもできる。
【００２１】
とくに、前記移動手段は、前記遊戯者の操作に応じて変化する前記カメラ視点と前記注視点との相対的位置関係の特定状況の発生を判断する判断手段と、この判断手段により前記特定状況が判断されたときに、前記注視点の位置を常に補足するように前記カメラ視点の位置を制御する視点移動制御手段とを備えることが望ましい。例えば、前記視点移動制御手段は、前記カメラ視点を移動させる移動動作と、当該移動後のそのカメラ視点の位置から前記注視点へ向かう方向とその移動前の前記カメラ視点の視線方向との成す角度に応じた回転動作とを伴う位置制御を行う手段であるように構成できる。例えば、前記視点移動制御手段は、前記角度に応じて前記カメラ視点を前記注視点の側に回転させる視点回転手段を有する。一例として、前記視点回転手段は、前記角度を所定値だけ増減させた角度に基づき前記カメラ視点を前記注視点の側に回転させる手段に構成できる。これにより、注視点を画面上で少しだけ動かすことができ、遊戯者に移動感や回り込み感を積極的に与えるという味付けを演出できる。さらに例えば、遊戯者を模した前記画面上のキャラクタが前記エネミの発射弾丸を避ける操作をその遊戯者が行う避け操作手段を備え、前記判断手段は、その避け操作手段が操作された状態かどうかを判断する手段である。
【００２２】
本発明の第２の構成は、仮想ゲーム空間に存在するエネミのキャラクタとの間で遊戯者がガンシューティングゲームを行う画像をディスプレイに表示する画像生成装置において、前記エネミのキャラクタから前記遊戯者への攻撃を前記遊戯者に事前に示唆する画像表示を行う画像処理手段を備える。好適には、前記画像表示は、前記エネミのキャラクタから発射され且つ実空間に居る前記遊戯者に向かって飛来する弾丸の表示である。この弾丸の表示は、例えば、山なりの弾丸の表示である。
【００２３】
本発明の第３の構成は、仮想ゲーム空間に存在するエネミのキャラクタとの間で遊戯者がガンシューティングゲームを行う画像を生成する画像生成装置においで、前記ゲームの状況、評価・決定、および行動のファクタとの間で影響し合う前記キャラクタの感情のファクタを取り入れたＡＩ処理を実行するＡＩ処理手段を備える。例えば、前記感情のファクタは前記ゲームに関する恐怖と怒りの感情要素で表される。好ましくは、前記ＡＩ処理手段は、前記行動のファクタに基づく行動の結果を前記感情のファクタに反映させる処理を行う手段を有する。
【００２４】
本発明の第４の構成は、仮想３次元空間内で移動する人物を模した移動体を、接続点を介して接続した複数のパーツで表現した画像を生成する画像生成装置において、前記複数のパーツの内の隣接する２つのパーツについて末端側の子パーツと中央部側の親パーツを特定する第１の特定手段と、前記子パーツの前記親パーツへの接続点が固定点である仮定してその子パーツの動きが親パーツに与える力積を演算する第１の演算手段と、前記第１の特定手段と第１の演算手段の動作を前記移動体の末端側からその中央部に掛けて再帰的に繰り返させる第１の繰り返し手段と、前記複数のパーツの内の隣接する２つのパーツについで中央部側の親パーツと末端側の子パーツを特定する第２の特定手段と、前記親パーツの動きが前記子パーツに掛かる力積を演算する第２の演算手段と、前記第２の特定手段と第２の演算手段の動作を前記移動体の中央部からその末端に掛けて再帰的に繰り返させる第２の繰り返し手段とを備える。
【００２５】
この第４の構成において、前記第１および第２の演算手段の少なくとも一方の演算手段は、前記人物を模す上での味付け的な演算処理を実行する手段としてもよい。例えば、前記味付け的な演算処理は、前記人物の関節の動きの制約に伴って生じる逆むきモーメントを前記パーツに付与する演算、前記人物に及ぼされる外力を前記パーツに反映させる演算、計算のずれに伴って生じる前記パーツの位置の不自然さを補正する演算、前記人物の肉体的特質から生じる内力によるモーメントを前記パーツに付与する演算、および前記人物の精神性から生じる表現を前記パーツに反映させるための当該パーツの回転または移動速度の制御演算の内の１つまたは複数種の演算を含む、ことが望ましい。
【００２６】
本発明の第５の構成は、仮想３次元空間内で移動する移動体の２種類のモーションの間のモーションを補間した画像データを生成する画像生成装置において、前記２種類のモーション間のモーションのファンクションカーブを現在の回転角度、目標回転角度、および目標回転角度到達までのフレーム数に基づき離散的に演算する演算手段と、この演算手段の演算結果に基づきモーション補間を行う補間手段とを備える。
【００２７】
本発明の第６の構成は、仮想３次元空間内で移動する移動体と同空間内に置かれた構造体とのコリジョンの判定を要する画像を生成する画像生成装置において、前記構造体を移動させながら前記移動体とのコリジョンを判定するコリジョン判定手段を備える。好適には、前記コリジョン判定手段は、前記構造体を平行移動または回転移動のいずれかの態様で移動させながらコリジョンを判定する手段である。
【００２８】
本発明はさらに、前記画像生成装置の前記各手段を実行するためのプログラムを記録した記録媒体である。記憶媒体とは、何らかの物理的手段により情報（主に、デジタルデータやプログラム）が記憶されたものであって、コンピュータ、専用プロセッサ等の処理装置に、所定の機能を実行させることができるものである。すなわち、何らかの手段をもってコンピュータにプログラムをダウンロードし、所定の機能を実行させるものであればよい。
【００２９】
例えば、フレキシブルディスク、ハードディスク、磁気テープ、磁気ディスク、ＣＤ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ、ＰＤ、ＭＤ、ＤＣＣ、ＲＯＭカートリッジ、バッテリバックアップ付きのＲＡＭモメリカード、フラッシュメモリカートリッジ、不揮発性ＲＡＭカードリッジ等を含む。
また、有線や無線の通信回線（公衆回線、データ専用線、衛星回線等）を介してホストコンピュータからデータ転送を受ける場合も含むものとする。いわゆるインターネットもここにいう記録媒体に含まれる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明の１つの実施の形態を図面を参照して説明する。
図１に、本発明に係る画像生成装置としてのゲーム装置の外観の一例を示す。このゲーム装置は、仮想ゲーム空間を移動する標的（エネミ）を打ち落とすガンシューティングゲームを実行するものである。
同図に示すように、ゲーム装置は装置本体１を備える。装置本体１は全体に略箱形を成し、その前面にディスプレイ１ａを備える。ディスプレイ１ａの横には後述するスピーカ１４が取り付けられている。
【００３１】
装置本体１の前面には、そのディスプレイ１ａの下側に位置するように操作パネル２が設けられている。操作パネル２には、遊戯者が操作するトリガを備えたガンユニット１１が取り付けられている。ガンユニット１１のトリガを遊戯者が引く（操作）ことにより、ガンユニットから光信号がディスプレイ１ａに向けて発射できるようになっている。また、装置本体１の前面下部には、遊戯者が操作する避け操作手段としてペダルセンサ４が設置されている。このペダルセンサ４は、遊戯者が自分を模したディスプレイ画面上のキャラクタを移動させて、弾丸を避けるときなどに使用するものである。このペダルセンサ４の検知情報は後述するゲーム処理ボードに送られる。このペダルセンサの代わりに、手動スイッチ、手動レバーであってもよい。
【００３２】
またディスプレイ１ａの表示画面には、ガンユニット１１からの光信号の入射位置を検知する位置センサ５が設けられている。位置センサ５はガンユニット１１の一部を成す。この位置センサ５の検知情報は後述するゲーム処理ボードに送られる。
【００３３】
装置本体１の内部には、ゲーム処理ボード１０が設けられている。このゲーム処理ボードには、ディスプレイ１ａ、ペダルセンサ４、位置センサ５、表示器などの出力装置１２、スピーカ１４などの装置が電気的に接続されている。遊戯者はディスプレイ１ａに表示されるゲーム画面を見ながら、ガンユニット１１を操作してガンシューティングゲームを行うことができる。
【００３４】
図２に、本実施形態に係るゲーム装置のブロック図を示す。同図に示す如く、ゲーム処理ボード１０は、カウンタ１００、ＣＰＵ（中央演算処理装置）１０１、ＲＯＭ１０２、ＲＡＭ１０３、サウンド装置１０４、入出力インターフェイス１０６、スクロールデータ演算装置１０７、コ・プロセッサ（補助演算処理装置）１０８、図形データＲＯＭ１０９、ジオメタライザ１１０、形状データＲＯＭ１１１、描画装置１１２、テクスチャデータＲＯＭ１１３、テクスチャマップＲＡＭ１１４、フレームバッファ１１５、画像合成装置１１６、およびＤ／Ａ変換器１１７を備えている。
【００３５】
この内、ＣＰＵ１０１はバスラインを介して、所定のプログラムや画像処理プログラムなどを記憶したＲＯＭ１０２、演算データを記憶するＲＡＭ１０３、サウンド装置１０４、入出力インターフェース１０６、スクロールデータ演算装置１０７、コ・プロセッサ１０８、およびジオメタライザ１１０に接続されている。ＲＡＭ１０３はバッファ用として機能させるもので、ジオメタライザに対する各種コマンドの書込み（オブジェクトの表示など）、各種の演算時の必要データの書込みなどに使用される。
【００３６】
入出力インターフェース１０６はペダルセンサ４および位置センサ５に接続され、両センサの検知信号がデジタル量としてＣＰＵ１０１に取り込まれる。サウンド装置１０４は電力増幅器１０５を介してスピーカ１４に接続されている。これにより、サウンド装置１０４で生成された音響信号が電力増幅され、スピーカ１４から音響として出力される。
ＣＰＵ１０１は、ＲＯＭ１０２に内蔵したプログラムに基づいで、ガンユニット１１からの操作信号および地形データＲＯＭ１０９からの地形データ、または形状データＲＯＭ１１１からの形状データ（「エネミなどのキャラクタ」、および、「地形、空、各種構造物などの背景」などの３次元データ）を読み込んで、キャラクタの挙動計算（シミュレーション）および特殊効果の計算を含む演算を行う。
【００３７】
挙動計算は、仮想３次元空間（ゲーム空間）でのエネミの動きをシミュレートするものである。これを実行するには、仮想３次元空間でのエネミのポリゴンの座標値が決定された後、この座標値を２次元視野座標系に変換するための変換マトリクスと形状データ（ポリゴンデータ）とがジオメタライザ１１０に指定される。コ・プロセッサ１０８には地形データＲＯＭ１０９が接続されており、予め定めた地形データがコ・プロセッサ１０８およびＣＰＵ１０１に渡される。コ・プロセッサ１０８は主に、浮動小数点の演算を引き受けるようになっている。このため、コ・プロセッサ１０８により各種の判定が実行され、その判定結果がＣＰＵ１０１に与えられるから、ＣＰＵの演算負荷を軽減できる。
【００３８】
ジオメタライザ１１０は形状データＲＯＭ１１１および描画装置１１２に接続されている。形状データＲＯＭ１１１には、上述したように、複数のポリゴンから成る形状データ（各頂点から成るキャラクタ、地形、背景などの３次元データ）が予め記憶されている。この形状データはジオメタライザ１１０に渡される。ジオメタライザ１１０はＣＰＵ１０１から送られてくる変換マトリクスで、指定された形状データを透視変換を行い、３次元仮想空間での座標系から視野座標系に変換したデータを得る。
【００３９】
描画装置１１２は、変換された視野座標系の形状データにテクスチャを貼り付け、フレームバッファ１１５に出力する。このテクスチャの貼り付けを行うため、描画装置１１２はテクスチャデータＲＯＭ１１３およびテクスチャマップＲＡＭ１１４に接続されるとともに、フレームバッファ１１５に接続されている。
【００４０】
なお、ポリゴンデータとは、複数の頂点の集合からなるポリゴン（多角形：主に３角形、４角形）の各頂点の相対ないしは絶対座標の座標データ群を言う。前記地形データＲＯＭ１０９には、所定の判定（当たり判定など）を実行する上で足りる、比較的粗く設定されたポリゴンデータが格納されている。これに対し、形状データＲＯＭ１１１にはエネミ、背景などの画面を構成する形状に関して、より緻密に設定されたポリゴンデータが格納されて居る。
【００４１】
スクロールデータ演算装置１０７は文字などのスクロール画面のデータ（ＲＯＭ１０２に格納されている）を計算する。この演算装置１０７とフレームバッファ１１５とが画像合成装置１１６およびＤ／Ａ変換器１１７を介してディスプレイ１ａに至る。これにより、フレームバッファ１１５に一時記憶されたエネミ、地形（背景）などのポリゴン画面（シミュレーション結果）と文字情報などのスクロール画面とが指定プライオリティにしたがって合成され、最終的なフレーム画像データが一定タイミング毎に生成される。このフレーム画像データはＤ／Ａ変換器１１７でアナログ信号に変換されてディスプレイ１ａに送られ、ゲーム画面としてリアルタイムに表示される。
【００４２】
このゲーム装置は、ＣＰＵ１０１を中心とする後述の演算処理によってガンシューティングゲームを行う。図３は、このゲーム装置が提供するゲーム空間の概念図を示す。図４は、ディスプレイ１ａのゲーム画面の模式的一例を示す。
【００４３】
図３において、ゲーム空間は仮想３次元空間より成り、エネミ（移動体）３ａ、障害物（構造体）３ｂ、カメラ視点３ｃ、弾丸（移動体）３ｄなどを含んでいる。エネミ３ａは遊戯者が狙う標的であり、装置側のＣＰＵ制御により、カメラ視点の位置に疑似的に居る遊戯者がガンユニット１１を介して発射した弾丸を避けながら自律的に移動する一方で、カメラ視点の位置に疑似的に居る遊戯者に向けて攻撃（弾丸発射）を仕掛けてくる。カメラ視点３ｃは遊戯者の視点となるもので、例えば、ヘリコプタなどの飛行体上に設けられる。この視点はエネミの移動に追従しながらゲーム空間を移動する。なお、ゲーム空間にはエネミ３ａは複数存在させている。障害物３ｂは例えばコンテナ、ビルディング、壁体などの構造物であり、ゲームに変化を持たせる設けてある。エネミ３ａおよびカメラ視点３ｃはこの障害物３ｂに衝突しないようにゲーム空間を移動する。
また図４では、ゲーム画面は図３におけるカメラ視点３ｃから見た構図に相当する。ゲーム画面には照準３ｅが表示される。この照準３ｅは遊戯者がガンユニット１１の向きを変えることに伴って移動する。照準３ｅがエネミ３ａに重なって見えたときに、遊戯者がガンユニット１１のトリガを引くと、弾丸３ｄはエネミ３ａに向けて発射される。
【００４４】
（作用）
＜メインルーチン処理＞
続いて、本実施形態のゲーム装置によるガンシューティングゲームの画像生成処理を説明する。図５はその画像生成処理のメインルーチンを示す。このメインルーチンは例えば表示インターラプトに同期した１フィールド（１／６０秒）毎にＣＰＵ１０１により繰り返し実行される。
【００４５】
まず、ＣＰＵ１０１は、ペダルセンサ４、ガンユニット１１のトリガ、すなわち位置センサ５の情報を読み込む（ステップＳ１）。
【００４６】
次いで、ＣＰＵ１０１は目標となるエネミが既に決まっている状態か否かを判断する（ステップＳ２）。すでに目標エネミが決まっている場合、次のエネミ決定の処理（ステップＳ３）をスキップするが、ゲームの初期状態では目標エネミが決定していないので、複数のエネミの中から視点の目標となるエネミを、システム側で予め定めたエネミに決める（ステップＳ３）。これにより、ゲーム初期には、予め定められたエネミを中心とするゲーム空間がディスプレイ１ａに表示される。ただし、ゲームが展開されるにつれて、目標エネミは変わる。
【００４７】
次いで、ＣＰＵ１０１はステップＳ４からステップＳ１２までの処理を順次実行する。これらの処理は本発明の特徴を成すものである。
まず、決定された又は既に決まっている目標エネミに向けてカメラ視点を移動させる処理が行われる（ステップＳ４、Ｓ５）。これにより、目標エネミがカメラ視点から外れると、カメラ視点はこのエネミを追跡する。カメラ視点は、ディスプレイ上のエネミの構図が最適となる位置に移動させる。このカメラ視点の移動処理は後に詳述される。
【００４８】
さらに、遊戯者にエネミからの攻撃を示唆する処理が行われる（ステップＳ６，Ｓ７）。これはシステム側で制御するエネミが、遊戯者を狙っているので「危険な状態」な状態にあることを事前に遊戯者に認識させるものである。この攻撃示唆処理も後述される。
【００４９】
さらに、「情動ＡＩ（人口知能）処理」と呼ばれる処理が行われる（ステップＳ８，Ｓ９）。この情動ＡＩ処理は、ゲーム中の敵、味方、そのほかの人物の挙動を制御するＡＩに「感情」のファクタを持たせる処理をさせることで、人間の持つ感情をよりリアルにシミュレートさせる処理である。この情動ＡＩ処理も後述される。
【００５０】
さらに、エネミの挙動、移動を制御する処理が行われる（ステップＳ１０，Ｓ１１）。この処理には、エネミに対する「リアルタイム力学モーション処理」および「非線形離散的モーション補間処理」が含まれる。この両方の処理により、エネミの挙動および移動の表示がよりリアルに表現される。この処理も後述される。
【００５１】
さらに、弾丸とエネミ、障害物などとの当り判定処理（コリジョン処理）が実施される（ステップＳ１２）。この当り判定処理には、「移動コリジョン処理」と呼ばれる、コリジョン面を移動させてダイナミック感を醸成する処理も含まれる。この処理も後述される。
【００５２】
このように種々の特徴ある処理が済むと、ＣＰＵ１０１は次いでゲーム処理を実行する（ステップＳ１３）。すなわち、ステップＳ５で確定されたカメラ視点から見た３次元のゲーム空間を２次元の透視画面に透視変換するための変換マトリクスを生成してジオメタライザ１１０に指定するとともに、エネミなどのキャラクタや障害物などを表すパーツ（複数のポリゴンから成る）をジオメタライザ１１０に指定する。ここで指定される変換マトリクスとポリゴンデータには、上述したステップＳ５，Ｓ７，Ｓ９，Ｓ１１，およびＳ１２の処理で挙動計算した種々のファクタが反映される。
【００５３】
このゲーム処理が完了すると、処理は再びステップＳ１に戻され、上述した一連の処理が一定時間毎に繰り返し実行される。この結果、一定時間毎にシミュレーションされる各フレームの画像データがディスプレイ１ａにリアルタイムなゲーム画像として順次表示され、時間経過と伴にゲーム画像が展開される。
【００５４】
続いて、上述したメインルーチン処理において実行される、本発明の特徴的な種々のサブルーチン処理を詳細に説明する。
【００５５】
＜カメラ視点移動処理＞
カメラ視点移動処理を図６〜図８に基づき説明する。
図６には、メインルーチン処理のステップＳ５でＣＰＵ１０１により実行されるカメラ視点移動処理の詳細な一例を示している。ここでは、図７に示す如く、注視点Ｐは注目エネミＥに向かって移動するようにし、カメラＣの視線（カメラに視点を置いたときの視野の中心線）はその注視点Ｐの方向に追随するようにする。つまり、注視点ＰはカメラＣの視線の目標点であり、注目エネミＥは注視点の移動目標点である。このカメラ視線の移動を、遊戯者が弾丸を避けようとする「避け」発生時と、この避けが発生していないときの通常時とに分けて処理するものである。
【００５６】
まず、注目エネミＥおよび注視点Ｐの現在の位置が演算される（ステップＳ２１）。次いで、注視点Ｐおよび注目エネミＥ間の方向および距離が演算される（ステップＳ２２）。次いで、注視点Ｐが所定量だけ注目エネミＥ側に移動させる演算を行う。図８にはこの移動の一例を模式的に示す。注視点Ｐは、１フレーム（１／６０秒）当たり、注視点Ｐおよび注目エネミＥ間の距離の１／８〜１／１２程度、注目エネミの方向に移動される。この距離は適宜に選択される。
【００５７】
そして、メイン処理のステップＳ１におけるペダルの信号入力に基づき、遊戯者が弾丸を避けようとする「避け」動作が行われているか否かが判断される（ステップＳ２４）。このステップＳ２４の判断でＮＯのときは通常時であるから、続いてステップＳ２５，Ｓ２６の処理が実行される。最初に、現在のカメラ視線と、カメラ位置および注目点Ｐを結んだ線との成す開き角θが演算される（ステップＳ２５：図９参照）。この開き角θに対して、１フレーム当たり、
2009064448.tif 000003
で決まる微小角度ｄθだけ、現在のカメラ視線を注目点Ｐ側に回転させる演算を行う（ステップＳ２６）。ここで、ａ，ｂは係数である。係数ａはカメラをθ度回転させるときのスピードを決める値で、係数ａが大きくなるほどそのスピードは遅くなる。この係数ａには好みに応じて適宜な値が設定される。もう一方の係数ｂは、カメラが回転している間のスピードの変化量を表し、係数ｂを小さくするほど一定スピードになる。係数ｂとしては１〜２程度（好適には１．５程度）の値が選択され、これにより人の動きに近い追随感覚を与えることができる。
【００５８】
これに対し、ステップＳ２４でＹＥＳの判断が下されると、避け発生時のカメラ位置および向き（視線）の制御処理がステップＳ２７〜Ｓ３１で実行される。これらの処理は、単にカメラの向き（視線）の制御だけでなく、カメラの位置の移動も伴うことが特徴である。
【００５９】
まず、カメラＣから注視点Ｐへの現在の向きが決定される（ステップＳ２７）。さらに、図１０に示す如く、カメラＣの位置を所定距離移動させ（ステップＳ２８）、移動後のカメラ位置から注視点Ｐへの向きが決定される（ステップＳ２９）。さらに、移動前のカメラＣの注視点への向きと移動後のそれとの成す角度αが演算される（ステップＳ３０）。そして、カメラの向き（視線の向き）を０．８α〜１．２α程度回転させる演算を行う。この後、メイン処理に戻る。
【００６０】
このようにカメラＣの向きをα度回転させるので、画面上での注視点の見掛けの位置は変化せず、注視点は見失われない。ゲーム中に遊戯者がペダルを操作して避けが発生した場合（あるいはシステム側で危険と判断して避ける場合も含まれる）、上記の通常のカメラ視線の制御だけでは動きが瞬発過ぎて、遊戯者が画面上のエネミを見失うということもあるが、この避け発生時のカメラ位置および向き制御によって、そのような事態を確実に回避できる。
【００６１】
また、カメラの向きを回転させる実際の回転量は０．８α〜１．２αと融通性を持たせてある。このため、開き角αより少し小さい回転量（例えば０．８α）に設定すれば（図１０の仮想矢印（ｉ）参照）、注視点Ｐが画面上で少しだけカメラ移動方向に動くことになるので、遊戯者に移動感を与えることができる。またゲームの難度も上げることができる。反対に、開き角αより少し大きく設定することで（例えば１．２α：図１０の仮想矢印（ｉｉ）参照）、注視点Ｐが画面上で反対方向に少しだけ動いて見えるので、遊戯者には回り込み感を与える。これによってもゲームの難度を上げることができる。
【００６２】
＜攻撃示唆処理＞
図１１には、メインルーチン処理のステップＳ７で実行される攻撃示唆処理の一例を示す。この処理もＣＰＵ１０１によって実行される。
最初に、エネミからの攻撃が開始されるか、または開始されているかが判断される（ステップＳ４１）。この判断がＮＯとなるとき、すなわちエネミは遊戯者を模したキャラクタに対して攻撃（シューティング）を仕掛けてきていないときは、攻撃示唆処理の状態を示すフラグＦ１，Ｆ２＝０に設定してメインルーチンに戻る（ステップＳ４２）。
【００６３】
ステップＳ４１の判断でＹＥＳとなるときは、エネミから発射された弾丸が連続してｍ発目になったか否かが判断される（ステップＳ４３）。弾丸の連続数を示すｍは、例えばｍ＝４に設定される。この判断でＮＯとなるとき、すなわち未だ連続ｍ発目には達していないときは、次いで、一方のフラグＦ１＝１か否かを判断する（ステップＳ４４）。この判断でＮＯのときは、現在の遊戯者を模したキャラクタのゲーム空間（仮想３次元空間）内の位置から所定距離だけ外れた弾丸軌道を演算し、記憶する（ステップＳ４５）。この軌道は、エネミから狙われている危険な状態を遊戯者に示唆するため、例えば図１２に示す如く、山なりの軌道として演算される。
【００６４】
次いで、この軌道計算の完了を示すため、フラグＦ１＝１に設定される（ステップＳ４６）。ステップＳ４４の判断でＹＥＳとなるとき、ステップＳ４５，４６の処理はスキップされる。
【００６５】
次いで、演算した山なりの弾丸軌道に基づき、表示フレーム毎の弾丸の位置が演算される（ステップＳ４７）。さらに、その演算位置の弾丸の軌跡に残像を残す処理が実施される（ステップＳ４８）。このステップＳ４８の残像処理は場合によっては省略してもよい。この後、メインルーチン処理に戻る。
【００６６】
一方、ステップＳ４３でＹＥＳの判断が下されるときは、システム側の処理によって、遊戯者を模したキャラクタをかすめるように、ｍ発の弾丸が連続して、しかも山なりに飛来してきた後である。このｍ発の弾丸は同キャラクタに当たらないように設定してあるから、遊戯者はエネミが攻撃を開始してきたと認識してからある程度の間が与えられる。このため、エネミの攻撃開始と共に、いきなりエネミに倒されることはなく、ゲームの味付けが行われている。このｍ発の弾丸が飛来してくる間に、遊戯者は攻撃されている（狙われている）という実感を得ることができる。
【００６７】
このためステップＳ４３でＹＥＳの判断のときは、もう一方のフラグＦ２＝１かどうかを確認する（ステップＳ４９）。フラグＦ２＝０のときは、次いで、現在の遊戯者を模したキャラクタのゲーム空間内の位置に対してキャラクタに当たる弾丸軌道を演算し、記憶する（ステップＳ５０）。次いで、この軌道計算の完了を示すため、フラグＦ２＝１に設定する（ステップＳ５１）。ステップＳ４９の判断でＹＥＳとなるとき、ステップＳ５０，５１の処理はスキップされる。
【００６８】
その後、演算した弾丸軌道に基づき、表示フレーム毎の弾丸の位置が演算される（ステップＳ５２）。この後、メインルーチン処理に処理を戻す。
この攻撃示唆処理は以上のようであるから、遊戯者は、自分のキャラクタをかすめて数発の弾丸が山なりに飛来することで、危険な状態を察知することができる。このため、遊戯者はペダルを操作して避ける（位置を変える）などの行動に移ることができ、エネミの攻撃にいきなり倒されるということがない。したがって、ゲームへの興味性を高める味付けを行うことができる。弾丸数を適度に設定しておくことにより、ゲームとして自然な流れも確保でき、危険な状態を遊戯者に認識させるために不自然なマーカを表示するなどの手法が不要になる。
【００６９】
なお、ステップＳ４８の残像処理の代わりに、ガンが光を反射して光ったような光の表示処理を行って、遊戯者に対する認識性を高めてもよい。
【００７０】
また上述においては、ディスプレイの画面上に遊戯者を模したキャラクタが居るという前提でエネミキャラクタからの攻撃を示唆する処理を説明してきたが、この処理は、遊戯者のキャラクタが画面に表示されないガンシューティングゲーム或いはそのようなゲーム場面にも同様に適用できる。そのような場合、エネミキャラクタからの攻撃を示す弾丸は、例えば、「遊戯者が被弾するとして予め設定した範囲の近傍であって、かつ、画面に表示される範囲」を通る軌道を飛来させるように前述と同様の画像処理すればよい。これにより、画面を見ている実空間内の遊戯者は自分に向かって画面上を飛来してくる弾丸によって、自分も仮想空間に存在しており、エネミから攻撃されている、といった感覚を抱くことができる。したがって、前述と同様の作用効果を得ることができる。
【００７１】
さらに上述の図１１のステップＳ４３に記載のｍ発の予告弾に関しては、次のような変形例の追加も可能である。つまり、予告弾がｍ発目に達するまでの過程において、予告弾の着弾地点と命中地点（遊戯者の視点であるカメラ位置または遊戯者を模したキャラクタの位置）との間の距離を予告弾が増えるにつれて徐々に縮める。これにより、エネミの狙いが徐々に正確になってくるという感覚を演出でき、ゲーム上での「危険」状態をさらに強烈に示唆できるようになる。
【００７２】
＜情動ＡＩ処理＞
図１３には、メインルーチン処理のステップＳ９で実行される情動ＡＩ処理の一例を示す。この情動ＡＩ処理は、ゲームに登場する人物のキャラクタを、感情のファクタを含めたＡＩにより制御し、より人間的な動きをさせることを目的している。
【００７３】
図１３に示すように、この情動ＡＩ処理には、状況のファクタ（ステップＳ５１）、感情のファクタ（ステップＳ５２）、評価、決定のファクタ（ステップＳ５３）、および行動のファクタ（ステップＳ５４）がこの順に影響するように入る。感情のファクタは、この実施形態では図１４に示すように、怒りと恐怖の２次元で表される。この感情は必ずしも２次元で表す必要はなく、適度な次元に採ればよい。また行動のファクタは再帰的に感情のファクタに反映する。感情のファクタが直接、行動のファクタに影響することもある。この情動ＡＩ処理は感情のファクタを導入したことが特徴であり、この感情のファクタが評価・決定、および行動のファクタとの間で相互に影響し合って、人物の最終的な行動が決められる。図１５には、図１３の処理に対比されるＡＩ処理を示す。
【００７４】
図１３の情動ＡＩ処理の具体例を示す。
ａ．「状況」が「感情」に与える影響として、以下のものを例示できる。
ａ−１：エネミの場合
・近くを遊戯者の弾が通ると「恐怖」が上昇。
・仲間が遊戯者に倒されると「怒り」が上昇。
・１発で死なないエネミがダメージを受けると「怒り」が上昇。
・遊戯者のキャラクタがダメージを受けると「怒り」、「恐怖」共に低下。
・弾を撃っても遊戯者に避けられて当たらないと「怒り」が上昇し、「恐怖」が低下。
・時間の経過と伴に「怒り」、「恐怖」共に少しずつ低下。
ａ−２：民間人の場合
・近くを弾が通ると「恐怖」が上昇。
・他の人が死ぬと「恐怖」が上昇。
・時間の経過と伴に「怒り」、「恐怖」共に少しずつ低下。
ｂ．「行動」が「感情」に与える影響には、例えば、次のような事項を想定できる。
・弾を撃つとすっきりして「怒り」が低下。
・弾を打ちまくっていると麻痺してきて「恐怖」が低下。
ｃ．「感情」から「評価・決定」が受ける影響には、例えば、次のようなものがある。
・「恐怖」が強いときは撃たないで隠れてしまう。
・「怒り」が強いときは避けたりせずに、撃ちまくってしまう。
・あまりに「恐怖」が強いと、立ちすくんでしまう。
ｄ．「感情」から「行動」が受ける影響は、例えば次のようなものである。
・「恐怖」が弱いときは弾の命中率がよくなる。
・「恐怖」が強いときは弾の命中率が下がる。
・「怒り」が強いときは攻撃時の動きが速くなる。
【００７５】
このように情動ＡＩとしたことで、人物として不自然な動き（例えば、それまで怖がっていたのに急に冷静なるなど）の表現を緩和または排除でき、よりリアルに表現したゲームになる。例えば、この実施形態のゲームでは、エネミの攻撃は１発で遊戯者のキャラクタに当たらず、連射の最後の弾が当たる軌道になるように設定している。このため、上述の情動ＡＩによって、「弾の命中率」が良くなると、例えばそれまで４発目で当たっていたのが、３発目で当たるようになる。反対に、「恐怖・怒り共に高い」場合、ものすごい勢いで撃ちまくるが、なかなか当たらないという人間心理をついたパニック状態も的確に表現できる。
【００７６】
また、ゲーム中に人物が多数居た場合、それぞれの人物がかかる情動ＡＩによって自立的に動くことができ、全体を制御する必要がなく、群衆の様子をよりリアルに表現できる。
【００７７】
さらに、従来の処理のように全ての行動を決する規則ベースを持つ必要がないから、データ量や演算量を減少または抑制できる利点もある。
【００７８】
＜リアルタイム力学モーション処理＞
図１６には、メインルーチン処理のステップＳ１１でＣＰＵ１０１により実行されるリアルタイム力学モーション処理の一例を示している。
このモーション処理は、人物のキャラクタを構成するバーツ（各パーツは複数のポリゴンから構成される）の特性に着目したものである。つまり、身体を構成するパーツの内、親パーツの方が子パーツよりも質量があるので、子パーツにとって親パーツとの接続点を固定点と見做すことができるという特性である。  本実施形態で採用している親パーツおよび子パーツの分けかたは便宜的なもので、子パーツを隣接する２パーツの内の身体末端側（胴体から遠い方）のパーツにとり、親パーツをその身体中心部側（胴体に近い方）のパーツにとっている。
【００７９】
図１７には、１６個のパーツを使用して人物を表現した例を示す。同図において、黒丸印がパーツ間の接続点を示している。
【００８０】
そこで、ＣＰＵ１０１は図１６に示すように、まず身体の最末端の子パーツを選択し（ステップＳ６１）、その親パーツを特定する（ステップＳ６２）。このとき、その子パーツと親パーツとの接続点を固定点と見做し、子パーツの動きを計算し（ステップＳ６３）、その後、親パーツに与える力積（力×時間）を計算する（ステップＳ６４）。ここでの子パーツの動き及び親パーツに与える力積は各パーツを剛体と見做して計算される。
【００８１】
この一連の処理を、身体を構成するそれぞれのパーツについて、末端のパーツから親のパーツへ、その親パーツを今度は子パーツとして、その子パーツに接続される親パーツへと、再帰的に繰り返す（ステップＳ６５）。この繰り返しは、子パーツが最も中央のパーツ（これ以上、親パーツの無いパーツを言う。この中央パーツとして、重心位置が在る腰パーツを採用すると計算が簡単になる）になるまで継続される。
【００８２】
中央パーツまで到達すると、今度は反対に、親パーツを特定する（ステップＳ６６）。最初の親パーツはその中央パーツである。次いで、子パーツを特定し（ステップＳ６７）、親パーツの動きにより子パーツに掛かる力積を計算する（ステップＳ６８）。この逆向きの計算は、子パーツを親パーツとして、末端まで順に再帰的に繰り返される（ステップＳ６９）。
【００８３】
このようにキャラクタのモーションを制御することで、一つのモーションを起こすときに、人間の体は末端または末端側から動き、その動きを体の中央部側に伝えつつ、かつ中央部側からの動き、規制が末端側に加えられるという相互的な動きの形態を表し、より自然な滑らかなモーションを表現することができる。
【００８４】
なお、このモーション計算に種々の味付け的な処理を加えることができる。例えば、関節の動きには制約が伴うため、この制約を越えて動こうとしているパーツには逆向きモーメントを与える（ステップＳ７０〜Ｓ７２）。これにより、より人物に近い、正確な動きを表現できる。また、壁や床、弾丸などの外部の物体と接触してパーツに力が及ぼされる場合、さらには、重力などの外力が存在する場合には、その力を加味した計算を行う（ステップＳ７３，Ｓ７４）。このとき、計算のずれにより床にパーツがめり込むなどの現象が生じるならば、適宜な補正を施して、そのような現象を目立たなくする処理も行うことが望ましい。さらに、人間は痛みを感じた瞬間に筋肉が収縮するなどの現象に拠って内力が発生するため、弾丸が当たった瞬間にパーツに内力やモーメントを与える処理を行うことができる（ステップＳ７５，Ｓ７６）。これにより、動きをよりリアルに表現できる。さらにまた、人間は倒れないように自律的に姿勢を修正する機能を持っている。そこで「撃たれてもまだ死んではいない」という状態を表現するため、パーツの回転速度を減速する処理も好ましい（ステップＳ７７，Ｓ７８）。これにより、「耐えている」という表現が可能になり、動きのリアル性をさらに高めることができる。このステップＳ７０〜Ｓ７８の処理は、ステップＳ６１〜Ｓ６９による一連の処理中の適宜な位置で、選択した付加項目の分だけ適宜に組み合わせて実施すればよい。
【００８５】
なお、上述したリアルタイム力学モーション処理において、モーションの計算の順番は、身体を表す複数パーツの内、末端側から先に行うか、身体中央部から先に行うかの順番には限定されない。衝撃が加わった場合、そのパーツ順に行えばよい。
【００８６】
＜非線形離散的モーション補間処理＞
図１８には、メインルーチン処理のステップＳ１１でＣＰＵ１０１により実行される非線形離散的モーション補間処理の一例を示している。  ここでのモーション補間処理は、例えば「走って」から「振り向く」というような２つのモーションを繋ぐ動きを生成する補間処理を言う。この種の補間処理として従来知られている手法は、図１９に示す線形補間処理と、図２０に示す３次曲線補間処理である。線形補間処理によるモーション補間は、モーション間の繋ぎの動きを線形関数で表現するもので、計算量が軽いという利点はあるが、モーション間の繋ぎの滑らかさに欠ける。これに対し、３次曲線補間処理によるモーション補間は、モーション間の繋ぎの動きを３次曲線関数で表現するもので、モーションの繋ぎは滑らかになるが、現在のモーションと次のモーションを指定しないとファンクションカーブを計算できない。また、スプライン曲線を計算するために、計算量が多くなるという欠点もある。
【００８７】
これらの問題を解決するため、非線形離散的モーション補間処理が提供される。このモーション補間処理は、モーションのファンクションカーブを連続的な関数としてではなく、離散的データとして直接計算する手法である。  具体的には、図１８に示すように、現在の角度θｏ、目標角度θａ、目標角度到達までのフレーム数ｆに基づき、目標到達に必要な角速度ｄθａを
ｄθａ＝（θａ−θｏ）／ｆ
の式により計算する（ステップＳ８１）。これは図２１（ａ）の状態をフレーム数、すなわち時間ｔで微分し、同図（ｂ）の状態に変換したことになる。
【００８８】
次いで、前回の角速度ｄθｏをメモリから読み出し（ステップＳ８２）、計算した角速度ｄθａと読み出した前回の角速度ｄθｏとの間の点を今回の角速度ｄθを仮定し、この角速度ｄθを
ｄθ＝（Ａ・ｄθｏ＋Ｂ・ｄθａ）／（Ａ＋Ｂ）
の式により計算する（ステップＳ８３）。Ａ，Ｂは図２１（ｂ）上での角速変ｄθａ，ｄθｏを結ぶ線分を分割して角速度ｄθの位置を決める距離である。この式により、図２１（ｂ）の状態を同図（ｃ）の状態に変換できる。ここで、Ａ＝Ｂとれば、今回の角速度ｄθの位置が中点に定まる。距離Ａの方を距離Ｂよりも大きく設定するほど、大きい慣性を表現できる。  今回演算した角速度ｄθは、次回のインターラプトにおける前回の角速度ｄθｏとしてメモリに格納される（ステップＳ８４）。
【００８９】
このようにインターラプト毎に計算される角速度ｄθを時間積分したファンクションカーブは図２１（ｄ）のように表される。
【００９０】
同図（ｄ）から分かるように、現在のモーションから次のモーションに移行するときにモーションに慣性が付き、目標角度できっかり止まらずに、重さを感じるモーションになる。この慣性を適度に調整することで、慣性を積極的に利用でき、３次曲線補間に比べて、現実的な重みを感じさせる、しかも滑らかな繋ぎのモーションを表現できる。またモーションを途中で突然に切り替えた場合でも、かかる慣性によって、次のモーションに滑らかに繋ぐことができる。一方、連続関数ではなく、離散的な値として処理するので、線形補間と比べても、それほど重い処理にはならずに済む。モーション補間の滑らかさと演算負荷の軽さとを両立させる利点がある。
【００９１】
＜移動コリジョン処理＞
図２２には、メインルーチン処理のステップＳ１２にてＣＰＵ１０１により実行される移動コリジョン処理の一例を示している。
従来のゲームでは、ステージなどのコリジョンは移動されていなかった。本発明ではこれを移動可能にし、よりダイナミックなゲーム展開を行おうとするものである。この移動コリジョン処理は、コリジョン面に座標系を固定することで、コリジョン面の動きを見掛け上消して計算するものである。
【００９２】
最初に、既存の処理である、移動させない固定コリジョンを説明する。図２３に示すように、コリジョン平面（例えば地面、壁など）を移動させない場合、このコリジョン平面と通常のコリジョン線分（例えば弾丸の軌道）は、直線と平面の交点を計算することで簡単にコリジョン点ｐを求めることができる。
【００９３】
本発明はコリジョンをダイナミックに移動させるもので、ＣＰＵ１０１は図２２に示す如く、インターラプト毎に、コリジョンを移動させるか又はその移動中かを判断する（ステップＳ９１）。この判断でＮＯ（移動させない）のときは、ステップＳ９２に移行し、上述した固定コリジョンの判定に処する。しかし、コリジョン移動のときは、ステップＳ９３に移行して、さらに移動が平行かまたは回転かを判断する。
【００９４】
この判断が平行移動となるときは、ステップＳ９４にて平行移動コリジョンの判定を行う。具体的には、図２４（ａ），（ｂ）に示す如く、コリジョン平面を平行移動させる場合、座標系をコリジョン平面に固定し、コリジョン線分の終点ｐ１をコリジョンの平行移動ベクトルの逆ベクトル分だけ移動する。この上で、平面と線分の交点ｐ´をコリジョン点として求め、この後で、ｐ´の座標系を元に戻す変換を行い、交点ｐを得る。
【００９５】
一方、ステップＳ２３の判断が回転移動となるときは、ステップＳ９５にて回転移動コリジョンの判定を行う。具体的には、図２５〜図２７に示す如く、コリジョン平面を回転移動させる場合、平行移動のときと同様に、コリジョン線分の終点ｐ１をコリジョン平面の平行移動ベクトルの逆ベクトル分だけ移動させ、ｐ１´とする（図２５、２６参照）。これにより、平行移動による影響を見掛け上消すことができる。
【００９６】
次に、コリジョン線分の終点ｐ１´をコリジョン平面の原点を軸に−θだけ回転させ、ｐ１"とする（図２７参照）。以上の操作により、コリジョン平面に座標系を固定し、コリジョンの移動および回転の影響を見掛け上消すことができる。そこで、線分ｐ０−ｐ１"とコリジョン平面との交点ｐ"をコリジョン点として求め、この点に逆操作を行うことで交点ｐを求める。
【００９７】
以上により、壁や地面といったコリジョン面を移動させながら、弾丸などのコリジョン線分とのコリジョン判定を行うことで、従来には無かったダイナミックなゲーム画面を生成できる。
【００９８】
なお、コリジョン平面の回転移動を行う場合、その回転原点は必ずしもコリジョン平面上にある必要はなく、コリジョン平面外にあってもよい。また、実際の計算では、コリジョン線分は「ｐ＝ｐ０＋（ｐ１−ｐ０）ｔ」のベクトル式で表される。ｐ´またはｐ"の計算上、ｔが算出されたら、それを直接、この式に代入することで、ｐ´やｐ"の座標を計算した後に座標を逆変換する手間を省くことがきる。さらに、上記実施形態では、コリジョン面は平面であるとして説明したが、コリジョン面が曲面であっても同様の手法で計算できる。さらに、コリジョン面の回転角度θは十分に小さい値であることが望ましい。この回転角度θがあまり大きいと、計算したコリジョン点の座標の誤差が大きくなるので、そのようなときには、回転を幾つかに分割して計算するとよい。
【００９９】
なお、ここで説明したエネミとは、ゲーム機本体側のコンピュータによって操作される標的、敵、あるいは攻撃対象等を意味する。
【産業上の利用可能性】
【０１００】
以上説明したように、本発明にかかる画像生成装置は、従来よりもリアル感および臨場感に富み、またゲーム感やゲームへの興味感を大幅に高揚でき、しかも従来に比べて演算処理も遜色なく、ガンシューティングゲームなどに好適な画像生成装置を提供できる。
【０１０１】
具体的には、遊戯者がエネミから狙われている「危険な状態」を的確に認識させることで、臨場感に富み、またゲーム感やゲームへの興味感を大幅に高揚できる。また、カメラ視点を、エネミの移動に程よくかつエネミを見失うことなく移動させることで、ゲーム感やゲームへの興味感を大幅に高揚でき、ガンシューティングゲームなどに好適なゲーム装置としての画像生成装置を提供できる。
【０１０２】
さらに、キャラクタを制御するＡＩに「感情」に起因した「行動」の要素を持たせることができ、かつ、その開発の手間や時間などを抑え、リアル感および臨場感に富み、しかも従来に比べて演算処理を重くすることなく、ガンシューティングゲームなどに好適なゲーム装置としての画像生成装置を提供できる。さらに、壁、障害物など、移動体以外の構造体とのコリジョンに迫力を持たせ、またダイナミックなゲーム展開を行って、臨場感に富み、またゲーム感やゲームへの興味感を大幅に高揚できるゲーム装置としての画像生成装置を提供できる。
【０１０３】
さらにまた、キャラクタを構成するパーツの動きや、キャラクタのモーション間の動きのリアル性を向上させ、リアル感および臨場感に富み、しかも従来に比べて演算処理も遜色なく、ガンシューティングケームなどに好適なゲーム装置としての画像生成装置を提供することもできる。
【図面の簡単な説明】
【０１０４】
【図１】本発明の１つの実施形態に係る画像生成装置としてのゲーム装置の全体斜視図である。
【図２】ゲーム処理ボードの電気的なブロック図である。
【図３】ゲーム空間の一例を示す概念図である。
【図４】ディスプレイに表示されるゲーム画面の模式的一例を示す図である。
【図５】ＣＰＵにより実行されるメインルーチン処理の概略フローチャートである。
【図６】カメラ視点移動制御処理を示すサブルーチンの概略フローチャートである。
【図７】カメラ視点移動制御を説明する図である。
【図８】カメラ視点移動制御を説明する図である。
【図９】カメラ視点移動制御を説明する図である。
【図１０】カメラ視点移動制御を説明する図である。
【図１１】攻撃示唆処理を示すサブルーチンの概略フローチャートである。
【図１２】攻撃示唆処理によるゲーム画面の一例を示す図である。
【図１３】情動ＡＩ処理を示すサブルーチンの概略フローチャートである。
【図１４】感情のファクタの２次元表現を説明する図である。
【図１５】対比説明のためのＡＩ処理を示すサブルーチンの概略フローチャートである。
【図１６】リアルタイム力学モーション計算処理を示すサブルーチンの概略フローチャートである。
【図１７】複数のパーツにより構成した人物を表した図である。
【図１８】非線形離散的モーション補間処理を示すサブルーチンの概略フローチャートである。
【図１９】モーション補間の従来例である線形補間のファンクションカーブの一例を示す図である。
【図２０】モーション補間の別の従来例である３次曲線補間のファンクションカーブの一例を示す図である。
【図２１】非線形離散的モーション補間処理の過程を示すグラフである。
【図２２】コリジョン移動制御処理を示すサブルーチンの概略フローチャートである。
【図２３】固定コリジョン平面のコリジョン判定を説明する図である。
【図２４】平行移動コリジョン平面のコリジョン判定を説明する図である。
【図２５】回転移動コリジョン平面のコリジョン判定の一過程を説明する図である。
【図２６】回転移動コリジョン平面のコリジョン判定の一過程を説明する図である。
【図２７】回転移動コリジョン平面のコリジョン判定の一過程を説明する図である。
【図１】
2009064448.tif 000004
【図２】
2009064448.tif 000005
【図３】
2009064448.tif 000006
【図４】
2009064448.tif 000007
【図５】
2009064448.tif 000008
【図６】
2009064448.tif 000009
【図７】
2009064448.tif 000010
【図８】
2009064448.tif 000011
【図９】
2009064448.tif 000012
【図１０】
2009064448.tif 000013
【図１１】
2009064448.tif 000014
【図１２】
2009064448.tif 000015
【図１３】
2009064448.tif 000016
【図１４】
2009064448.tif 000017
【図１５】
2009064448.tif 000018
【図１６】
2009064448.tif 000019
【図１７】
2009064448.tif 000020
【図１８】
2009064448.tif 000021
【図１９】
2009064448.tif 000022
【図２０】
2009064448.tif 000023
【図２１】
2009064448.tif 000024
【図２２】
2009064448.tif 000025
【図２３】
2009064448.tif 000026
【図２４】
2009064448.tif 000027
【図２５】
2009064448.tif 000028
【図２６】
2009064448.tif 000029
【図２７】
2009064448.tif 000030
【手続補正書】
【提出日】平成20年10月14日(2008.10.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想ゲーム空間内のキャラクタを制御する方法であって、
前記仮想ゲーム空間内のキャラクタと該仮想ゲーム空間の状況を検出する検出過程と、
前記状況を評価し、その状況に対するキャラクタの情動を決定する決定過程と、
決定された前記情動のファクタに基づいてキャラクタの行動を制御する制御過程とを含むＡＩ処理をコンピュータが実行することを特徴とするキャラクタ制御方法。
【請求項２】
前記仮想ゲーム空間の状況は、キャラクタの周囲の状況、ゲームの進行状況の少なくとも一方を含むことを特徴とする請求項１に記載のキャラクタ制御方法。
【請求項３】
前記キャラクタの種類によって、前記仮想ゲーム空間の状況に基づいて計算される情動の計算結果が異なることを特徴とする請求項１に記載のキャラクタ制御方法。
【請求項４】
前記情動は、キャラクタの怒りと恐怖を反映していることを特徴とする請求項１〜３のいずれか１の請求項に記載のキャラクタ制御方法。
【請求項５】
前記情動は、キャラクタの近くを弾が通る状況、キャラクタがダメージを受ける状況、キャラクタのパフォーマンス、時間の経過の少なくともいずれかの状況に基づいて決定されることを特徴とする請求項２に記載のキャラクタ制御方法。
【請求項６】
仮想ゲーム空間内のキャラクタを制御するシステムであって、
前記仮想ゲーム空間内のキャラクタと該仮想ゲーム空間の状況を検出する検出手段と、
前記状況を評価し、その状況に対するキャラクタの情動を決定する決定手段と、
決定された前記情動のファクタに基づいてキャラクタの行動を制御する制御手段とを具備することを特徴とするキャラクタ制御システム。
【請求項７】
前記仮想ゲーム空間の状況は、キャラクタの周囲の状況、ゲームの進行状況の少なくとも一方を含むことを特徴とする請求項６に記載のキャラクタ制御システム。
【請求項８】
前記キャラクタの種類によって、前記仮想ゲーム空間の状況に基づいて計算される情動の計算結果が異なることを特徴とする請求項６に記載のキャラクタ制御システム。
【請求項９】
前記情動は、キャラクタの怒りと恐怖を反映していることを特徴とする請求項６〜８のいずれか１の請求項に記載のキャラクタ制御システム。
【請求項１０】
前記情動は、キャラクタの近くを弾が通る状況、キャラクタがダメージを受ける状況、キャラクタのパフォーマンス、時間の経過の少なくともいずれかの状況に基づいて決定されることを特徴とする請求項７に記載のキャラクタ制御システム。