説明

画像生成装置及び方法、プログラム、並びに記録媒体

【課題】第1オブジェクトと第2オブジェクトとが存在する仮想空間において、同じ動作が指示されたときであっても、第2オブジェクトの存在によって異なる動作を第1オブジェクトが行うものとした画像を生成する。
【解決手段】操作スイッチ部の方向指示スイッチから方向入力があったときに、バスケットボールゲームのプレイヤキャラクタ100は、ボール110をドリブルしながら該入力された方向に移動することができる。プレイヤキャラクタ100の位置からボール110に向けた方向が入力された方向と一致するときのプレイヤキャラクタ100の移動速度はVとなる。プレイヤキャラクタ100の位置からボール110に向けた方向が入力された方向と一致しないときは、プレイヤキャラクタ100の位置からボール110に向けた方向と入力された方向とがなす角度をθとすると、プレイヤキャラクタ100の移動速度は、Vcos(θ/2)となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間に存在する第1オブジェクトと第2オブジェクトのうちで少なくとも第1オブジェクトを、両者の関係に応じて動作させた画像を生成する画像生成装置等に関する。
【背景技術】
【0002】
従来より、仮想3次元空間に存在するキャラクタなどのオブジェクトを動作させ、これらのオブジェクトが動作する様子を仮想カメラにより透視変換して生成する手法が、3次元ビデオゲームにおいて広く適用されている。このような3次元ビデオゲームでは、仮想3次元空間には、プレイヤの操作に応じて動作するプレイヤキャラクタの他に、該プレイヤキャラクタと相対する敵キャラクタなどの多数のオブジェクトが存在している。
【0003】
このように仮想3次元空間に多数のオブジェクトが存在する場合、あるオブジェクトの動作は、他のオブジェクトから受けた外力による影響を受けることとなる。そこで、例えば、第1のオブジェクト(プレイヤキャラクタが所持する武器)が第2のオブジェクト(敵キャラクタ)にヒットした場合に、第1のオブジェクトのモーションデータについて、該第1のオブジェクトに設定された骨毎にモーションデータの個別ブレンド率を変えることで、あるオブジェクトが他のオブジェクトから受けた外力による影響を再現しようとする画像生成システムがあった(例えば、特許文献1、2参照)。
【0004】
【特許文献1】特開2003−62326号公報(段落0099〜0113)
【特許文献2】特開2003−67773号公報(段落0103〜0117)
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、現実世界における人間や動物の行動は、他のオブジェクトから直接的に外力を受けていなくても、他のオブジェクトが存在するだけで、これによる影響を受けている。例えば、あるオブジェクトを常に監視しながら行動したり(例えば、球技の場面においてボールを追うことがこれに当たる)、あるオブジェクトを避けるように向きを変えたり(例えば、障害物を避ける場合がこれに当たる)といった他のオブジェクトから影響される行動は、無意識のうちに行われているものも多い。
【0006】
これに対して、従来のゲーム装置においてプレイヤがキャラクタに対して動作の指示を入力する操作パッドは、方向を入力する方向キーや個別の指示を入力するボタンの数が限られているため、入力できる指示の種類も限られている。このため、他のオブジェクトの存在によって異なる指示を入力することが不可能であり、同じ動作を指示したときには、他のオブジェクトがどこに存在するかに関わらず同じ動作をしてしまうことがある。
【0007】
一方、操作パッドから入力できる指示の種類を多くすれば、ゲームが複雑になりすぎるという問題がある。さらに、操作パッドから入力できる指示の種類を多くしたとしても、それぞれの入力に対して、キャラクタがどのように動作するか、或いは他のオブジェクトがキャラクタに対してどのような位置関係に置かれるかということを直感的に判断するのがプレイヤにとって困難なものとなる。このため、プレイヤが意図していなかった指示が入力されてしまったり、プレイヤの指示の入力が遅れてしまったりということが起こりやすくなるという問題がある。
【0008】
本発明は、第1オブジェクトと第2オブジェクトとが存在する仮想空間において、同じ動作が指示されたときであっても、第2オブジェクトの存在によって異なる動作を第1オブジェクトが行うものとした画像を生成することのできる画像生成装置及び方法、並びにそのために用いられるプログラム及び記録媒体を提供することを第1の目的とする。
【0009】
本発明は、第1オブジェクトと第2オブジェクトとが存在する仮想空間において、操作者の直感的な入力によって第1のオブジェクトと第2のオブジェクトの位置関係が定められる画像を生成することのできる画像生成装置及び方法、並びにそのために用いられるプログラム及び記録媒体を提供することを第2の目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明の第1の観点にかかる画像生成装置は、仮想空間に存在する第1オブジェクトと第2オブジェクトのうち少なくとも第1オブジェクトを動作させた画像を生成する画像生成装置であって、操作者の操作に応じて前記第1オブジェクトを前記仮想空間において動作させるための指示を入力する動作入力手段と、前記動作入力手段から動作の指示が入力されたときに、前記第1オブジェクトと前記第2オブジェクトとの位置関係を判断する位置関係判断手段と、前記位置関係判断手段の判断結果に応じて異なる動作となるように、前記動作入力手段から入力された指示に対応した動作を少なくとも前記第1オブジェクトに行わせるオブジェクト動作手段と、前記オブジェクト動作手段により動作させられている第1オブジェクトと、前記第2オブジェクトとを含む画像を生成する画像生成手段と、前記画像生成手段の生成した画像を表示手段に表示させる表示制御手段とを備えることを特徴とする。
【0011】
上記第1の観点にかかる画像生成装置では、動作入力手段から第1オブジェクトを動作させるための指示が入力されたときに、該第1のオブジェクトは、第2のオブジェクトとの位置関係に応じて動作させられる。このため、第2のオブジェクトの存在に関わらずに第1のオブジェクトが同じ動作をしてしまうようなことがなく、第1のオブジェクトが不自然な動作を行わないようにすることができる。また、操作者が第2のオブジェクトの存在によって第1のオブジェクトに適切な動作をさせるために操作者が入力する指示を使い分けなくてもよいので、第1のオブジェクトを動作させるための指示の入力が複雑にならないで済む。
【0012】
上記第1の観点にかかる画像生成装置において、前記動作入力手段は、前記第1オブジェクトの位置を現時点の位置から予め定められた複数の方向のうちのいずれかの方向に向かって移動させるための指示を入力する移動入力手段を含むものとしてもよい。この場合において、前記オブジェクト動作手段は、前記移動入力手段から移動の指示が入力されたときに、該入力された指示に対応した方向と前記位置関係判断手段の判断結果とに応じた速度で、前記仮想空間において該入力された指示に対応した方向に前記第1オブジェクトを移動させるものとすることができる。
【0013】
ここでは、第1のオブジェクトは、仮想空間において移動入力手段から入力された指示に対応した方向に移動するが、その速度は、第2のオブジェクトとの位置関係に応じて変化する。このため、第2のオブジェクトの存在に関わらずに第1のオブジェクトが不自然な速度で仮想空間を移動するのを防ぐことができる。
【0014】
上記第1の観点にかかる画像生成装置において、前記位置関係判断手段は、前記第1オブジェクトと前記第2オブジェクトとの位置関係として、該第1オブジェクトの位置から該第2オブジェクトの位置に向けた方向を判断してもよい。
【0015】
この場合において、上記第1の観点にかかる画像生成装置が、前記移動入力手段から入力された指示に対応した方向が、前記位置関係判断手段の判断した方向に対して第1特定範囲内にあるかどうかを判定する入力方向判定手段をさらに備えるものとした場合には、前記オブジェクト動作手段は、前記入力方向判定手段により前記第1特定範囲内にあると判定されたときに、該第1特定範囲外にあると判定されたときよりも高速で前記第1オブジェクトを移動させるものとすることができる。
【0016】
また、前記オブジェクト動作手段は、前記移動入力手段から入力された指示に対応した方向と、前記第1オブジェクトの位置から前記第2オブジェクトの位置に向けた方向とがなす角度が小さいほど、前記第1オブジェクトを高速で移動させるものとすることもできる。
【0017】
これらの場合において、上記第1の観点にかかる画像生成装置は、前記オブジェクト動作手段により前記第1のオブジェクトが前記仮想空間を移動するのに追随して、前記第2のオブジェクトを前記仮想空間において移動させる第2オブジェクト移動手段を備えるものとすることができる。例えば、第1のオブジェクトが第2のオブジェクトを随伴して移動させるキャラクタのようなものである場合には、第2のオブジェクトが進行方向に対してどのような位置にあるかに応じて第1のオブジェクトの移動させる際の容易さも変わるはずである。ここでは、第2のオブジェクトが進行方向に対してどのような位置にあるかに応じて第1のオブジェクトを自然な速度で移動させることができるようになる。
【0018】
上記第1の観点にかかる画像生成装置において、前記動作入力手段は、前記第1オブジェクトの位置を現時点の位置から予め定められた複数の方向のうちのいずれかの方向に向かって移動させるための指示を入力する移動入力手段を含むものとしてもよく、また、前記位置関係判断手段は、前記第1オブジェクトと前記第2オブジェクトとの位置関係として、該第1オブジェクトの位置から該第2オブジェクトの位置に向けた方向との関係を判断してもよい。この場合において、前記オブジェクト動作手段は、前記移動入力手段から移動の指示が入力されたときに、該入力された指示に対応した方向と前記位置関係判断手段の判断結果とに応じて異なる動作を前記第1オブジェクトに行わせるものとすることができる。
【0019】
ここでは、第1のオブジェクトは、移動入力手段から入力された指示に対応した方向に応じた動作(該方向への方向転換など)をすることとなるが、その動作は、第1のオブジェクトから第2のオブジェクトに向けた方向に応じたものとなる。このため、第2のオブジェクトの存在に関わらずに第1のオブジェクトが不自然な方向に移動したりすることを防ぐことができる。
【0020】
上記第1の観点にかかる画像生成装置において、前記動作入力手段は、前記第1オブジェクトの位置を現時点の位置から予め定められた複数の方向のうちのいずれかの方向に向かって移動させるための指示を入力する移動入力手段を含むものとしてもよく、また、上記第1の観点にかかる画像生成装置は、前記移動入力手段から移動の指示が入力されたときに、前記第1オブジェクトが前記仮想空間において向いている方向を検出する第1オブジェクト方向検出手段をさらに備えるものとしてもよい。この場合において、前記オブジェクト動作手段は、前記位置関係判断手段の判断結果、前記第1オブジェクト方向検出手段により検出された方向、及び前記移動入力手段から移動の指示が入力された指示に対応した方向に応じた動作を前記第1オブジェクトに行わせるものとすることができる。
【0021】
この場合において、前記オブジェクト動作手段は、前記位置関係判断手段の判断結果、前記第1オブジェクト方向検出手段により検出された方向、及び前記移動入力手段から移動の指示が入力された指示に対応した方向に応じて、前記第1オブジェクトの方向を前記移動入力手段から入力された指示に対応した方向に変化させるものとしてもよい。
【0022】
ここでは、第1のオブジェクトは、移動入力手段から入力された指示に対応した方向に応じた動作(該方向への方向転換など)をすることとなるが、その動作は、第2のオブジェクトとの位置関係や第1のオブジェクト自体が向いている方向にも応じたものとなる。このため、第2のオブジェクトの存在に関わらずに第1のオブジェクトが不自然な方向に移動したり、不自然な方向を向いてしまったりすることを防ぐことができる。
【0023】
ここで、上記第1の観点にかかる画像生成装置は、前記移動入力手段から入力された指示に対応した方向が、前記位置関係判断手段により判断された方向に対して第2特定範囲内にあるかどうかを判定する第1検出方向判定手段と、前記移動入力手段から入力された指示に対応した方向が前記第1オブジェクト方向検出手段の検出した方向に対して第3特定範囲外にあるかどうかを判定する第2検出方向判定手段とをさらに備えていてもよい。この場合において、前記オブジェクト動作手段は、前記第2検出方向判定手段により前記第3特定範囲外にあると判定されたときにおいて、前記第1検出方向判定手段により前記第2特定範囲内にあると判定されたときには該第2特定範囲外にあると判定されたときよりも高速で、前記第1オブジェクトの方向を前記移動入力手段から入力された指示に対応した方向に変化させることができる。
【0024】
また、前記オブジェクト動作手段は、前記第2検出方向判定手段により前記第3特定範囲外にあると判定されたときにおいて、前記第1検出方向判定手段により前記第2特定範囲内にあると判定されたときに、前記第1オブジェクトの前記仮想空間における位置を移動させることなく、前記第1オブジェクトの方向を前記移動入力手段から入力された指示に対応した方向に変化させるものであってもよい。
【0025】
これらの場合において、例えば、第1のオブジェクトが第2のオブジェクトを動きを操作するキャラクタのようなものである場合には、最終的に同じ方向(ここでは、移動入力手段から入力された指示に応じた方向)を向くことになっても、第2のオブジェクトがあるときと当該方向に最初からあるときと全く異なる方向にあるときとでは、第1のオブジェクトを当該方向に方向転換させる際の容易さも変わるはずである。ここでは、第2のオブジェクトが第1のオブジェクトが向こうとする方向に対してどのような方向の範囲にあるかに応じて自然な速度で第1のオブジェクトを方向転換させることができるようになる。
【0026】
なお、前記第1検出方向判定手段は、前記移動入力手段から入力された指示に対応した方向が前記位置関係判断手段により判断された方向に対して実質的に同一方向にあるときに、前記第2特定範囲内にあると判定し、前記第2検出方向判定手段は、前記移動入力手段から入力された指示に対応した方向が前記第1オブジェクト方向検出手段の検出した方向に対して実質的に同一方向にあるときに、前記第3特定範囲内にあると判定することができる。
【0027】
前記移動入力手段が、隣接する方向同士がなす角度が等分された複数の方向に対して、それぞれ前記第1オブジェクトを移動させるための指示を入力するものである場合には、前記第1検出方向判定手段及び前記第2検出方向判定手段は、該等分された角度の範囲毎に実質的に同一方向であるかどうかを判断することができる。
【0028】
このように移動入力手段から入力された指示に対応した方向と実質的に同一方向であるかどうかで第2特定範囲内及び第3特定範囲内にあるかどうかを判定することで、第1検出方向判定手段及び第2検出方向判定手段の判定を容易に行うことができるようになる。
【0029】
上記第1の観点にかかる画像生成装置は、前記第1オブジェクトの動作を規定する複数のモーションデータを記憶したモーションデータ記憶手段をさらに備えていてもよい。この場合において、前記オブジェクト動作手段は、前記モーションデータ記憶手段に記憶された複数のモーションデータのうちで前記第1オブジェクトに行わせるべき動作に対応したモーションデータを用いて、該第1オブジェクトを動作させることができる。
【0030】
ここで、前記オブジェクト動作手段は、前記モーションデータ記憶手段に記憶された複数のモーションデータを、前記第1オブジェクトに行わせるべき動作に応じたブレンド率でブレンドし、該ブレンドしたモーションデータを用いて、該第1オブジェクトを動作させるものとすることができる。
【0031】
上記第2の目的を達成するため、本発明の第2の観点にかかる画像生成装置は、仮想空間に存在する第1オブジェクトと第2オブジェクトのうち少なくとも第1オブジェクトを動作させた画像を生成する画像生成装置であって、操作者の操作に応じて前記第1オブジェクトの位置を現時点の位置から予め定められた複数の方向のうちのいずれかの方向に向かって移動させるための指示を入力する移動入力手段と、前記移動入力手段から移動の指示が入力されたときに、前記仮想空間において該入力された指示に対応した方向に前記第1オブジェクトを移動させる移動制御手段と、操作者の操作に応じて2次元平面上の任意の座標位置を入力する座標位置入力手段と、前記座標位置入力手段から入力された座標位置に基づいて、前記第1オブジェクトと前記第2オブジェクトとの位置関係を設定する位置関係設定手段と、前記移動制御手段により移動された前記第1オブジェクトの前記仮想空間における位置に対して前記位置関係設定手段により設定された位置関係に応じた前記仮想空間内の位置に、前記第2オブジェクトを配置する第2オブジェクト配置手段と、前記移動制御手段により移動させられている前記第1オブジェクトと、前記第2オブジェクト配置手段により配置された前記第2オブジェクトとを含む画像を生成する画像生成手段と、前記画像生成手段の生成した画像を表示手段に表示させる表示制御手段とを備えることを特徴とする。
【0032】
上記第2の観点にかかる画像生成装置では、操作者により移動入力手段から入力された指示に応じて第1のオブジェクトが仮想空間において移動するものとなる。第1のオブジェクトが移動している間に、操作者により座標位置入力手段から座標位置の入力があると、該入力された座標位置に応じて第1のオブジェクトと第2のオブジェクトとの位置関係が設定され、これにより仮想空間を移動中の第1のオブジェクトの位置に対して第2のオブジェクトが配置されることとなる。このように仮想空間を移動する第1のオブジェクトに対して操作者が第2のオブジェクトを所望の位置に配置させようとする際には、座標位置入力手段から座標位置を入力するだけでよいので、直感的な入力操作が可能となり、操作が複雑なものとならない。
【0033】
上記第2の観点にかかる画像生成装置は、前記位置関係設定手段により設定された位置関係に応じて、前記第1オブジェクトの動作を規定するモーションデータを決定するモーションデータ決定手段をさらに備えていてもよい。この場合において、前記移動制御手段は、前記モーションデータ決定手段によって決定されたモーションデータを用いて、前記第1オブジェクトを移動させるものとすることができる。
【0034】
この場合、第1のオブジェクトと第2のオブジェクトとの位置関係に応じて第1のオブジェクトの動作を規定するモーションデータが決定されるため、仮想空間を移動する際の第2のオブジェクトの存在に関わらずに第1オブジェクトが不自然な動作をすることがない。
【0035】
上記第2の観点にかかる画像生成装置において、前記位置関係設定手段は、前記座標位置入力手段から入力された座標位置と前記2次元平面上に予め設定された特定座標位置との位置関係に基づいて、前記第1オブジェクトと前記第2オブジェクトとの位置関係を設定することができる。
【0036】
この場合、第1のオブジェクトと第2のオブジェクトとの位置関係を、座標位置入力手段から入力する座標位置との特定座標位置との位置関係により容易に設定することができるようになる。
【0037】
上記第1の目的を達成するため、本発明の第3の観点にかかる画像生成方法は、第1オブジェクトを仮想空間において動作させるための指示を入力する動作入力装置と、データを記憶する記憶装置と、画像を表示する表示装置とを備えるコンピュータ装置によって実行され、前記第1オブジェクトと該第1オブジェクトとは別に前記仮想空間に存在する第2オブジェクトを含む画像を生成するため画像生成方法であって、前記動作入力装置から動作の指示が入力されたときに、前記記憶装置に記憶され、少なくとも前記第1オブジェクトと前記第2オブジェクトの前記仮想空間における位置をデータとして含む動作データに従って、該第1オブジェクトと該第2オブジェクトとの位置関係を判断し、前記第1オブジェクトと第2オブジェクトとの位置関係の判断結果に応じて異なる動作となるように、前記動作入力装置から入力された指示に対応した動作を少なくとも前記第1オブジェクトに行わせ、該行わせた動作に応じて前記記憶装置に記憶されている動作データを更新し、前記記憶装置に記憶されている動作データに基づいて前記第1オブジェクトと前記第2オブジェクトとを含む画像を生成し、前記生成した画像を前記表示装置に表示させることを特徴とする。
【0038】
上記第1の目的を達成するため、本発明の第4の観点にかかるプログラムは、第1オブジェクトを仮想空間において動作させるための指示を入力する動作入力装置と、画像を表示する表示装置とを備えるコンピュータ装置によって実行され、前記第1オブジェクトと該第1オブジェクトとは別に前記仮想空間に存在する第2オブジェクトを含む画像を生成するためのプログラムであって、前記動作入力装置から動作の指示が入力されたときに、前記第1オブジェクトと前記第2オブジェクトとの位置関係を判断する位置関係判断手段、前記位置関係判断手段の判断結果に応じて異なる動作となるように、前記動作入力装置から入力された指示に対応した動作を少なくとも前記第1オブジェクトに行わせるオブジェクト動作手段、前記オブジェクト動作手段により動作させられている第1オブジェクトと、前記第2オブジェクトとを含む画像を生成する画像生成手段、及び、前記画像生成手段の生成した画像を前記表示装置に表示させる表示制御手段として前記コンピュータ装置を機能させることを特徴とする。
【0039】
上記第1の目的を達成するため、本発明の第5の観点にかかるコンピュータ読み取り可能な記録媒体は、第1オブジェクトを仮想空間において動作させるための指示を入力する動作入力装置と、画像を表示する表示装置とを備えるコンピュータ装置によって実行され、前記第1オブジェクトと該第1オブジェクトとは別に前記仮想空間に存在する第2オブジェクトを含む画像を生成するためのプログラムを記録した記録媒体であって、前記プログラムは、前記動作入力装置から動作の指示が入力されたときに、前記第1オブジェクトと前記第2オブジェクトとの位置関係を判断する位置関係判断手段、前記位置関係判断手段の判断結果に応じて異なる動作となるように、前記動作入力装置から入力された指示に対応した動作を少なくとも前記第1オブジェクトに行わせるオブジェクト動作手段、前記オブジェクト動作手段により動作させられている第1オブジェクトと、前記第2オブジェクトとを含む画像を生成する画像生成手段、及び、前記画像生成手段の生成した画像を前記表示装置に表示させる表示制御手段として前記コンピュータ装置を機能させることを特徴とする。
【0040】
上記第2の目的を達成するため、本発明の第6の観点にかかる画像生成方法は、第1オブジェクトを仮想空間において移動させるための指示を入力する移動入力装置と、2次元平面上の任意の座標位置を入力する座標位置入力装置と、データを記憶する記憶装置と、画像を表示する表示装置とを備えるコンピュータ装置によって実行され、前記第1オブジェクトと該第1オブジェクトとは別に前記仮想空間に存在する第2オブジェクトを含む画像を生成するため画像生成方法であって、前記移動入力装置から移動の指示が入力されたときに、前記仮想空間において該入力された指示に対応した方向に前記第1オブジェクトを移動させ、該移動後の位置を前記記憶装置に記憶させ、前記座標位置入力装置から入力された座標位置に基づいて、前記第1オブジェクトと前記第2オブジェクトとの位置関係を設定し、前記記憶装置に記憶された前記第1オブジェクトの前記仮想空間における位置に対して前記設定された位置関係に応じた前記仮想空間内の位置を、前記第2オブジェクトの位置として前記記憶装置に記憶させ、前記記憶装置にそれぞれ記憶されている位置に基づいて前記第1オブジェクトと前記第2オブジェクトとを含む画像を生成し、前記生成した画像を前記表示装置に表示させることを特徴とする。
【0041】
上記第2の目的を達成するため、本発明の第7の観点にかかるプログラムは、第1オブジェクトを仮想空間において移動させるための指示を入力する移動入力装置と、2次元平面上の任意の座標位置を入力する座標位置入力装置と、画像を表示する表示装置とを備えるコンピュータ装置によって実行され、前記第1オブジェクトと該第1オブジェクトとは別に前記仮想空間に存在する第2オブジェクトを含む画像を生成するためのプログラムであって、前記移動入力装置から移動の指示が入力されたときに、前記仮想空間において該入力された指示に対応した方向に前記第1オブジェクトを移動させる移動制御手段、前記座標位置入力装置から入力された座標位置に基づいて、前記第1オブジェクトと前記第2オブジェクトとの位置関係を設定する位置関係設定手段、前記移動制御手段により移動された前記第1オブジェクトの前記仮想空間における位置に対して前記位置関係設定手段により設定された位置関係に応じた前記仮想空間内の位置に、前記第2オブジェクトを配置する第2オブジェクト配置手段、前記移動制御手段により移動させられている前記第1オブジェクトと、前記第2オブジェクト配置手段により配置された前記第2オブジェクトとを含む画像を生成する画像生成手段、及び、前記画像生成手段の生成した画像を前記表示装置に表示させる表示制御手段として前記コンピュータ装置を機能させることを特徴とする。
【0042】
上記第2の目的を達成するため、本発明の第8の観点にかかるコンピュータ読み取り可能な記録媒体は、第1オブジェクトを仮想空間において移動させるための指示を入力する移動入力装置と、2次元平面上の任意の座標位置を入力する座標位置入力装置と、画像を表示する表示装置とを備えるコンピュータ装置によって実行され、前記第1オブジェクトと該第1オブジェクトとは別に前記仮想空間に存在する第2オブジェクトを含む画像を生成するためのプログラムを記録した記録媒体であって、前記プログラムは、前記移動入力装置から移動の指示が入力されたときに、前記仮想空間において該入力された指示に対応した方向に前記第1オブジェクトを移動させる移動制御手段、前記座標位置入力装置から入力された座標位置に基づいて、前記第1オブジェクトと前記第2オブジェクトとの位置関係を設定する位置関係設定手段、前記移動制御手段により移動された前記第1オブジェクトの前記仮想空間における位置に対して前記位置関係設定手段により設定された位置関係に応じた前記仮想空間内の位置に、前記第2オブジェクトを配置する第2オブジェクト配置手段、前記移動制御手段により移動させられている前記第1オブジェクトと、前記第2オブジェクト配置手段により配置された前記第2オブジェクトとを含む画像を生成する画像生成手段、及び、前記画像生成手段の生成した画像を前記表示装置に表示させる表示制御手段として前記コンピュータ装置を機能させることを特徴とする。
【発明を実施するための最良の形態】
【0043】
以下、添付図面を参照して、本発明の実施の形態について説明する。
【0044】
図1は、この実施の形態に適用されるゲーム装置1の構成を示す外観図である。ここでは、ゲーム装置1の一例として、携帯ゲーム装置を示す。図1において、ゲーム装置1は、2つの液晶表示器(LCD)11および12を所定の配置位置となるように、ハウジング18に収納して構成される。
【0045】
第1液晶表示器(以下、「LCD」という)11および第2LCD12を互いに上下に配置して収納する場合は、ハウジング18が下部ハウジング18aおよび上部ハウジング18bから構成され、上部ハウジング18bが下部ハウジング18aの上辺の一部で回動自在に支持される。上部ハウジング18bは、第1LCD11の平面形状よりも少し大きな平面形状を有し、一方主面から第1LCD11の表示画面を露出するように開口部が形成される。下部ハウジング18aは、その平面形状が上部ハウジング18bよりも横長に選ばれ、横方向の略中央部に第2LCD12の表示画面を露出する開口部が形成され、第2LCD12を挟む何れか一方にスピーカ15の音抜き孔が形成されるとともに、第2LCD12を挟む左右に操作スイッチ部14が装着される。
【0046】
操作スイッチ部14は、第2LCD12の右横における下部ハウジング18aの一方主面に装着される動作スイッチ(Aボタン)14aおよび動作スイッチ(Bボタン)14bと、第2LCD12の左横における下部ハウジング18aの一方主面に装着される方向指示スイッチ(十字キー)14cと、スタートスイッチ14dと、セレクトスイッチ14eと、側面スイッチ14fおよび14gとを含む。
【0047】
動作スイッチ14aおよび14bは、例えば、この実施の形態で適用されるバスケットボールゲームにおいてはパスやシュートを行う等の指示の入力に使用される。方向指示スイッチ14cは、プレイヤによって操作スイッチ部14を用いて操作可能なプレイヤオブジェクト(この実施の形態では、プレイヤキャラクタ)の移動方向を指示したり、カーソルの移動方向を指示したりする等のゲーム画面における方向指示に用いられる。側面スイッチ(Lボタン)14fおよび側面スイッチ(Rボタン)14gは、下部ハウジング18aにおける上部面(上部側面)の左右に設けられる。方向指示スイッチ14cは、十字キーにより構成されているが、十字の互いに隣接する2つのキー(上と右、右と下、下と左、左と上)は、同時操作可能であり、単独のキーの操作による上、下、左及び右の入力と、隣接するキーの同時操作による右上、右下、左上、左下の合計8方向の入力を行うことができる。
【0048】
第2LCD12の上面には、タッチパネル13(図1における破線領域)が装着される。タッチパネル13は、例えば、抵抗膜方式、光学式(赤外線方式)、静電容量結合式の何れの種類でもよく、その上面をスティック16(または指でも可)で押圧操作、移動操作、または撫でる操作をしたとき、スティック16の座標位置を検出して出力するものである。この実施の形態で適用されるバスケットボールゲームでは、タッチパネル13は、プレイヤキャラクタがボールをドリブルしているときに、そのドリブルする位置を入力するために使用される。
【0049】
上部ハウジング18bの側面近傍には、必要に応じてタッチパネル13を操作するスティック16を収納するための収納孔(図1における二点破線領域)が形成される。この収納孔には、スティック16が収納される。下部ハウジング18aの側面の一部には、ゲームプログラムを記憶したメモリ(例えば、ROM)を内蔵したゲームカートリッジ17(以下、単にカートリッジ17と記載する)を着脱自在に装着するためのカートリッジ挿入部(図1における一点破線領域)が形成される。カートリッジ17は、ゲームプログラムを記憶する情報記憶媒体であり、例えば、ROMまたはフラッシュメモリのような不揮発性半導体メモリが用いられる。カートリッジ挿入部の内部には、カートリッジ17と電気的に接続するためのコネクタ(図2参照)が内蔵される。さらに、下部ハウジング18a(または上部ハウジング18bでも可)には、CPU等の各種電子部品を実装した電子回路基板が収納される。
【0050】
次に、ゲーム装置1の回路構成について説明する。図2は、ゲーム装置1の回路構成を示すブロック図である。図2において、ハウジング18に収納される電子回路基板には、CPUコア21が実装される。CPUコア21には、所定のバスを介して、カートリッジ17と接続するためのコネクタ28が接続されるとともに、入出力インターフェース(I/F)回路27、第1のグラフィック処理ユニット(第1GPU)24、第2のグラフィック処理ユニット(第2GPU)26、およびワーキングRAM(WRAM)22が接続される。
【0051】
コネクタ28には、カートリッジ17が着脱自在に接続される。カートリッジ17は、上述したようにゲームプログラムを格納するための記憶媒体であり、具体的には、ゲームプログラムを記憶するROM171とバックアップデータを書き換え可能に記憶するRAM172とを搭載する。カートリッジ17のROM171に記憶されたゲームプログラムは、WRAM22にロードされ、当該WRAM22にロードされたゲームプログラムがCPUコア21によって実行される。CPUコア21がゲームプログラムを実行して得られる一時的なデータや画像を生成するためのデータがWRAM22に記憶される。ROM171には、ゲーム装置1のコンピュータ、特にCPUコア21によって実行可能な形式の命令群及びデータ群であるゲームプログラムが記録される。そして、このゲームプログラムは、WRAM22に適宜読み込まれ実行される。
【0052】
第1GPU24には、第1ビデオRAM(以下「VRAM」)23が接続され、第2GPU26には、第2のビデオRAM(以下「VRAM」)25が接続される。第1GPU24は、CPUコア21からの指示に応じて、WRAM22に記憶される画像を生成するためのデータに基づいて第1ゲーム画像を生成し、第1VRAM23に描画する。第2GPU26は、CPUコア21からの指示に応じて、WRAM22に記憶される画像を生成するためのデータに基づいて第2ゲーム画像を生成し、第2VRAM25に描画する。
【0053】
第1GPU24が第1LCD11に接続され、第2GPU26が第2LCD12に接続される。第1GPU24は、CPUコア21からの指示に応じて第1VRAM23に描画された第1ゲーム画像を第1LCD11に出力する。そして、第1LCD11は、第1GPU24から出力された第1ゲーム画像を表示する。第2GPU26は、CPUコア21からの指示に応じて第2VRAM25に描画された第2ゲーム画像を第2LCD12に出力する。そして、第2LCD12は、第2GPU26から出力された第2ゲーム画像を表示する。
【0054】
I/F回路27には、タッチパネル13、操作スイッチ部14、およびスピーカ15が接続される。I/F回路27は、タッチパネル13、操作スイッチ部14、およびスピーカ15等の外部入出力装置とCPUコア21との間のデータの受け渡しを行う回路である。スピーカ15は、上述した音抜き孔の内側位置に配置され、実行中のゲームに応じて生成される音声を出力する。
【0055】
タッチパネル13(タッチパネル用のデバイスドライバを含む)は、第2VRAM25の座標系に対応する座標系を有し、スティック16等によって入力(指示)された位置に対応する座標データをWRAM22に設けられる所定のレジスタに出力するものである。例えば、第2LCD12の表示画面の解像度は256dot×192dotであり、タッチパネル13の検出精度も表示画面に対応した256dot×192dotである。なお、タッチパネル13の検出精度は、第2LCD12の表示画面の解像度よりも低いものであってもよいし、高いものであってもよい。
【0056】
以下、この実施の形態において、図1、図2に示したゲーム装置1で実行されるゲームについて説明する。この実施の形態にかかるゲームは、プレイヤチームのキャラクタと、相手チームのキャラクタとがバスケットボールの試合を行うバスケットボールゲームである。プレイヤチームがオフェンス側にあるときには、通常は、プレイヤチームのキャラクタのうちで実際にボールを所持しているキャラクタがプレイヤからの指示に応じて動作するプレイヤキャラクタとなる。すなわち、プレイヤキャラクタは、ゲームの進行状況に応じて変わることがある。
【0057】
プレイヤキャラクタを含むプレイヤチームの各キャラクタ、相手チームの各キャラクタは、仮想3次元空間に形成されたバスケットボールコート(以下、単に「コート」という)上に存在しており、ゲームの進行状況に応じてコート上で動作する。仮想3次元空間に形成されたコート上には、ボールも存在し、それぞれのキャラクタの動作によってコート上でボールを運んで、敵チーム(プレイヤチームにとっては相手チーム)のゴールにボールを入れることで得点となる。
【0058】
プレイヤチームの他のキャラクタの動作は、ボールやプレイヤキャラクタの動きに応じてゲーム装置1のCPUコア21により制御される。相手チームのキャラクタの動作は、全てゲーム装置1のCPUコア21により制御される。なお、プレイヤチームがディフェンス側にあるとき、或いはルーズボールとなっているときには、ボールの位置や相手チームのキャラクタの位置などによってプレイヤキャラクタが決定され、プレイヤからの指示により動作させられることとなるが、これについては本発明と直接的に関わりがないので説明を省略する。
【0059】
図3は、この実施の形態にかかるバスケットボールゲームにおいて、プレイヤチームがオフェンス側にあるときの表示画面の例を示す図である。図3(a)に示すように、第1LCD11には、ボール110を所持している(ここでは、ドリブルしている)プレイヤキャラクタ100を参照点とし、所定の位置に視点の設定された仮想カメラによりコートを含む仮想3次元空間を透視変換した画像が表示される。プレイヤキャラクタ100以外のプレイヤチームのキャラクタ101〜104、及び相手チームのキャラクタ121〜125は、プレイヤキャラクタ100を基準とした透視変換される範囲に存在すれば、第1LCD11に表示される。
【0060】
仮想カメラの視点の位置は、プレイヤキャラクタ100がコート上での位置の移動を停止したとき、或いはパスなどを受けることにより新たなプレイヤキャラクタ100が設定されたときに、プレイヤキャラクタ100の背面側の方向(プレイヤキャラクタ100の基準方向であるルート100Rの方向と反対側の方向)の所定距離の位置に設定される(但し、視点とプレイヤキャラクタ100との間に障害物がない場合)。
【0061】
プレイヤキャラクタ100は、後述するようにタッチパネル13のタッチによりボール110をドリブルする位置を変えることで、その向き(すなわち、ルート100Rの向き)を変えることがある。但し、ボール110をドリブルする位置の変化よりも向きの変化は小さい。後述するクイックターンの場合を除いて、プレイヤキャラクタ100のコート上の位置が変わらなければ、視点の位置が変わることはない。方向指示スイッチ14cの操作によりプレイヤキャラクタ100がコート上で移動すれば、その移動に追随して視点の位置が移動する。後述するクイックターンの際も、ターン後のプレイヤキャラクタ100の背面側の方向に視点の位置が移動する。
【0062】
また、図3(b)に示すように、第2LCD12には、プレイヤキャラクタ100の位置を中心として、仮想3次元空間のx−z平面(y方向、すなわち高さ方向に垂直な平面)の画像が表示される。表示される範囲は、プレイヤキャラクタ100が中心となり、第1LCD11に画像を表示するための仮想カメラの視点の方向が下方向となる範囲に設定される。図3(a)の例では、ここでは、視点とプレイヤキャラクタ100とを結ぶ直線がコートの縦方向と一致しているため、第2LCD12の表示範囲は、図3(b)に示すようなものとなる。この表示範囲に存在するキャラクタのうちでプレイチームのキャラクタ(プレイヤキャラクタ100を含む)100〜104は白丸で、相手チームのキャラクタ121〜125は黒丸で、コート上における位置が示される。
【0063】
第2LCD12の表示範囲の縦横方向は、必ずしもコートの縦横方向と一致しない。すなわち、参照点となるプレイヤキャラクタ100と仮想カメラの視点を結ぶ直線の方向に応じて表示範囲の縦横方向は、コートの縦横方向に対して傾くものとなる。方向指示スイッチ14cの入力方向(8方向)は、第2LCD12の表示方向に対応するものであり、方向指示スイッチ14cを操作したときのプレイヤキャラクタ100のコート上における移動方向は、表示範囲とコートとの傾き角に応じて決められるものとなる。
【0064】
次に、この実施の形態にかかるバスケットボールゲームにおいて、プレイヤチームがオフェンス側にあるときのプレイヤキャラクタ100の動作について説明する。この場合のプレイヤキャラクタ100の動作としては、コート上の任意の位置で停止してのボールのドリブル、ボール110をドリブルしながらのコート上の移動、プレイヤチームの他のキャラクタへのボールのパス(この場合、パスを受けたキャラクタが新たなプレイヤキャラクタ100となる)、シュートなどの動作がある。
【0065】
プレイヤキャラクタ100がコート上の任意の位置で停止してボールをドリブルする場合について説明する。プレイヤキャラクタ100は、コート上の任意の位置に停止しているとき、モーションデータに従ってボール110をドリブルし続けている。プレイヤキャラクタ100の位置に対するボール110の位置は、タッチパネル13をタッチする位置に応じてプレイヤキャラクタ100の手が届く範囲において任意に切り替えられる。また、タッチパネル13をタッチする位置に応じてボール110をドリブルする手も切り替えられる。もっとも、ボール110の位置及びドリブルする手が変わるのは、タッチパネル13のタッチによりプレイヤキャラクタ100にドリブル動作するためのモーションデータが変わることによるものである。
【0066】
このようにタッチパネル13をタッチした位置に応じて任意の位置でボール110をドリブルできるため、タッチパネル13の位置毎にプレイヤキャラクタ100がボール110をドリブルする際のモーションデータを用意しておいたのでは、モーションデータのデータ量が膨大なものとなってしまう。そこで、この実施の形態にかかるバスケットボールゲームでは、タッチパネル13上の特定の座標位置(以下、特定座標)にのみ対応づけてモーションデータをROM171に書き込んでおき、これ以外の位置がタッチされたときには、タッチされた位置の座標に応じてROM171に記憶されたモーションデータをブレンドして、プレイヤキャラクタ100にドリブル動作させるためのモーションデータを生成するものとしている。
【0067】
図4は、プレイヤキャラクタ100がコート上の任意の位置に停止してドリブルを行う場合におけるモーションブレンドの説明図である。プレイヤキャラクタ100は右手でも左手でもボール110をドリブルすることができるが、図4は、右手でドリブルを行う場合のモーションブレンドを説明するものである。左手でドリブルを行う場合は、図4の左右を反転したパターンとして考えればよいこととなる。
【0068】
図4(a)に示すように、タッチパネル13上の領域は、(1)〜(9)の3行3列の9つのエリアに等間隔で区切られている。プレイヤキャラクタ100が右手でドリブルを行っている場合には、図中斜線を付して示すように、真ん中の列(縦方向)にある3つのエリア(2)、(5)、(8)と、右側の列にある3つのエリア(3)、(6)、(9)がドリブルする手を変えないエリアとして設定されている。また、これらの6つのエリアで形成される長方形の4つの頂点の位置と、縦方向の2つの辺の中点の位置に、全部で6つの特定座標201〜206が設定されている。
【0069】
特定座標201〜206には、それぞれの位置に対応したモーションデータが対応づけられている。プレイヤキャラクタ100が右手でドリブルしているときにタッチパネル13上のタッチされた位置の座標が特定座標201〜206のいずれかであれば、タッチされた位置に対応する特定座標に対応づけられたモーションデータがWRAM22にロードされてプレイヤキャラクタ100にドリブル動作させるためのモーションデータとしてそのまま用いられる。パスを受けるなどして新たなプレイヤキャラクタ100が設定された場合には、デフォルトとして特定座標201に対応したモーションデータがWRAM22にロードされて用いられる。これは、プレイヤキャラクタ100の正面(すなわち、ルート100Rの方向)でボール110をドリブルするためのモーションデータである。
【0070】
タッチパネル13上のエリア(2)、(3)、(5)、(6)、(8)、(9)の範囲内で特定座標201〜206以外の位置がタッチされた場合には、まず、そのタッチされた位置の座標がWRAM22に保存される。タッチパネル13上のタッチされた位置の座標は、少なくとも最新の2回分が保存される。新たなプレイヤキャラクタ100が設定された場合には、それまでにWRAM22に保存されていた座標は全て消去され、デフォルトとして用いられるモーションデータに対応した特定座標201が最新のタッチされた位置の座標としてWRAM22に保存される。この位置の座標に従って、特定位置201〜206に対応したモーションデータがブレンドされて、モーションデータが生成される。
【0071】
例えば、図4(b)に示すように、エリア(3)内の位置T(x1,y1)がタッチされたものとする。位置Tのy座標y1は、上辺の頂点201、204のy座標0よりも大きく、中点の特定座標202、205のy座標95よりも小さいため、4つの特定座標201、202、204、205がモーションデータのブレンド対象となる特定座標として選定される。頂点201〜206とx座標またはy座標の一方が同じ位置がタッチされた場合は、特定座標は2つだけ選定されることとなる。
【0072】
次に、選定された特定座標201、202、204、205で囲まれる長方形の上辺(特定座標201、204を結ぶ辺)、底辺(特定座標202、205を結ぶ辺)、左辺(特定座標201、202を結ぶ辺)、右辺(特定座標204、205を結ぶ辺)と、位置Tを通り、これらの辺に平行な直線の交点の位置をTh、Tu、Tl、Trとしたとき、位置Tと位置Thの間の長さと位置Tと位置Tuの間の長さの比がH:U、位置Tと位置Tlの間の長さ、位置Tと位置Trの間の長さの比がL:Rとなったものとする。
【0073】
この場合、特定座標201、202、204、205に対応したモーションデータのブレンド率B(201)、B(202)、B(204)、B(205)は、それぞれ図4(c)に示す数式で求められる。これらの数式から分かるように、タッチパネル13上のタッチされた位置Tに近い位置にある特定座標に対応したモーションデータほど、ブレンド率が高くなっている。特定座標201、202、204、205に対応したモーションデータは、求められたブレンド率B(201)、B(202)、B(204)、B(205)でブレンドされて、プレイヤキャラクタ100がボール110をドリブルするためのモーションデータが生成されて、WRAM22に保存される。
【0074】
こうして新たなタッチ位置に応じたモーションデータがブレンドされ、WRAM22に記憶されると、タッチパネル13をタッチする前のモーションデータから新たにタッチした位置に応じたモーションデータに移行されて(但し、移行の際のフレーム補間がある)、プレイヤキャラクタ100が動作されるものとなる。もっとも、前回のタッチ位置と今回のタッチ位置との関係によっては、タッチする前のモーションデータから、一旦つなぎモーションのモーションデータに移行してプレイヤキャラクタ100を動作させた後、新たにタッチした位置に応じたモーションデータに移行してプレイヤキャラクタ100を動作させるものとなる。
【0075】
一方、プレイヤキャラクタ100が右手でドリブルを行っている場合に、タッチパネル13の左側の3つのエリア(1)、(4)、(7)の範囲内の位置がタッチされた場合には、ボール110をドリブルする手が左手に切り替えられる。図5は、プレイヤキャラクタ100がボール110をドリブルする手を右手から左手に切り替える場合についての説明図である。ボール110をドリブルする手を左手から右手に切り替える場合は、図5の左右を反転したパターンで考えればよいこととなる。
【0076】
例えば、図5(a)に示すように、プレイヤキャラクタ100が右手でボール110をドリブルしている状態でタッチパネル13上のエリア(1)の範囲内に含まれる位置tがタッチされたものとする。この位置は、右手のままドリブルできる位置に対応していないので、図5(b)に示すように左手でのドリブルに対応した特定座標のうちから、タッチされた位置tに対応する特定座標221〜224がモーションデータのブレンド対象となる特定座標として選定されるものとなる。ここで、モーションデータの生成は、図4(b)、(c)に示したのと同様の手法で行えばよい。
【0077】
プレイヤキャラクタ100がボール110をドリブルする手を切り替える場合には、タッチパネル13をタッチする前のモーションデータから、新たにタッチした位置に応じたモーションデータにそのまま移行される訳ではない。タッチする前のモーションデータから、一旦つなぎモーションのモーションデータに移行してプレイヤキャラクタ100を動作させた後、新たにタッチした位置に応じたモーションデータに移行してプレイヤキャラクタ100を動作させるものとなる。
【0078】
次に、つなぎモーションについて説明する。図6は、つなぎモーションの説明図である。つなぎモーションは、前述したようにプレイヤキャラクタ100が右手から左手にボール110を持ち替えてドリブルする場合には、必ず挿入される。プレイヤキャラクタ100がボールを持ち替えないときでも、前回タッチパネル13がタッチされた位置がエリア(1)〜(3)の範囲内に含まれるときであって今回タッチされた位置がエリア(7)〜(9)の範囲内に含まれるとき、または前回タッチされた位置がエリア(7)〜(9)の範囲内に含まれるときであって今回タッチされた位置がエリア(1)〜(3)の範囲内に含まれるときにも、つなぎモーションが挿入されることとなる。
【0079】
つなぎモーションも、モーションデータの再生によりプレイヤキャラクタ100を動作させるものであるが、前回タッチパネル13がタッチされた位置が含まれるエリアと、今回タッチされた位置が含まれるエリアとの違いに応じて異なるモーションデータが用意されており、ROM171に予め記憶されている。新たなタッチパネル13のタッチの前にプレイヤキャラクタ100が右手でボール110をドリブルしていた場合のつなぎモーションとして、図6(a)に示す26種類のつなぎモーションが用意されている。
【0080】
ここで、例えば、R(3)とは、エリア(3)に含まれる位置のタッチに基づいて右手でボール110をドリブルすることを示すものである。L(4)とは、エリア(4)に含まれる位置のタッチに基づいて左手でボール110をドリブルすることを示すものである。新たなタッチパネル13のタッチの前にプレイヤキャラクタ100が右手でボール110をドリブルしていた場合のつなぎモーションとしても、図6(a)に示すパターンの左右を反転させた26種類のつなぎモーションが用意されている。
【0081】
つなぎモーションの態様として、例えば、R(2)→L(1)のつなぎモーションでは、プレイヤキャラクタ100がボール110をドリブルする手を右手から左手に入れ替える動作が含まれている。また、R(2)→R(8)のつなぎモーションでは、プレイヤキャラクタ100がエリア(2)に対応した位置でドリブルする動作からエリア(8)に対応した位置でドリブルする動作に動作を変化させる間に、中間位置で一旦ドリブルする動作が含まれている。
【0082】
つなぎモーションが挿入される場合、前回タッチパネル13がタッチされた位置に基づいて生成されたモーションデータから、つなぎモーションのモーションデータを経て、今回タッチパネル13がタッチされた位置に基づいて生成されたモーションデータでプレイヤキャラクタ100を動作させる。ここで、図6(b)に示すように、前回タッチパネル13がタッチされた位置に基づいて生成されたモーションデータからつなぎモーションのモーションデータに移行する間に、所定フレーム数だけフレーム補間(スタート補間)がされる。また、つなぎモーションのモーションデータから今回タッチパネル13がタッチされた位置に基づいて生成されたモーションデータに移行する間にも、所定フレーム数だけフレーム補間(エンド補間)がされる。
【0083】
次に、プレイヤキャラクタ100がドリブルしながらコート上を移動する場合について説明する。プレイヤキャラクタ100がコート上を移動するための指示は、プレイヤによる方向指示スイッチ14cの操作に応じて入力される。プレイヤキャラクタ100は、方向指示スイッチ14cから入力された方向にボール110をドリブルしながら移動するものとなる。プレイヤキャラクタ100が移動するモーションについてもモーションデータが予め用意されてROM117に記憶されており、ドリブルのモーションデータとブレンドされて再生されることとなる。
【0084】
この実施の形態にかかるバスケットボールゲームでは、ボール110をドリブルする位置に応じてプレイヤキャラクタ100が移動する速度が変わるものとなる。図7は、ボール110をドリブルする位置とプレイヤキャラクタ100の移動速度との関係を示す説明図である。ここでは、プレイヤキャラクタ100のルート100Rの方向は、方向指示スイッチ14cから入力された方向を既に向いているものとし、プレイヤキャラクタ100は、入力された方向(移動方向100D)に移動するものとする。
【0085】
図7(a)に示すように、プレイヤキャラクタ100の移動方向100D上にボール110があるとき、すなわちプレイヤキャラクタ100からボール110に向けた方向が移動方向100Dと一致するときには、プレイヤキャラクタ100は、速度Vでコート上を移動するものとなる。この場合は、移動のためのモーションデータを通常の速度で再生しながらプレイヤキャラクタ100を移動させればよいものとなる。
【0086】
図7(b)に示すように、プレイヤキャラクタ100からボール110に向けた方向と移動方向100Dとがなす角度がθ1であるときには、プレイヤキャラクタ100は、速度Vcos(θ1/2)で移動することとなり、移動方向100D上にボール110があるときの速度Vよりも遅くなる。さらに、図7(c)に示すように、プレイヤキャラクタ100からボール110に向けた方向と移動方向100Dとがなす角度がθ1よりも大きいθ2であるときには、プレイヤキャラクタ100は、速度Vcos(θ2/2)で移動することとなり、その角度がθ1のときの速度Vcos(θ1/2)よりも遅くなる。これらの場合、プレイヤキャラクタ100の移動速度が制御されるだけではなく、これに合わせてモーションデータの再生速度も、通常のcos(θ1/2)倍、cos(θ2/2)倍となり、速度Vでプレイヤキャラクタが移動するときよりも遅くなる。
【0087】
また、プレイヤキャラクタ100がコート上を移動する際には、その向きであるルート100Rが進行方向を向いていなければならず、方向指示スイッチ14cから入力された方向がルート100Rの方向と一致していなかったときには、まず、ルート100Rの方向が変えられてから、プレイヤキャラクタ100がコート上で移動することとなる。ルート100Rの方向を変える場合、方向指示スイッチ14cから入力された方向から所定範囲内にボール110が予め存在するときには、クイックターンという手法によりプレイヤキャラクタ100のルート100Rの方向が変えられる。
【0088】
図8は、方向指示スイッチ14cから入力された方向から所定範囲内にボール110が存在しないときの通常ターンと、方向指示スイッチ14cから入力された方向から所定範囲内にボール110が予め存在するときのクイックターンの説明図である。ここでは、プレイヤキャラクタ100のルート100Rが右方向を向いている状態で方向指示スイッチ14cから上方向の入力があった場合を例として説明している。
【0089】
図8(a)に示すように、プレイヤキャラクタ100のルート100Rが右方向を向いている状態で方向指示スイッチ14cから上方向の入力があったときにおいて移動方向100Dから±θ3の範囲外にボール110が存在したものとする。この場合、図8(b)に示すように、プレイヤキャラクタ100は、ボール110をドリブルしながらルート100Rの方向が移動方向100Dに一致するまで方向転換をする。ROM117には方向転換用のモーションデータも予め記憶されており、ドリブルのモーションデータとブレンドされて再生されることとなる。ボール110が元々存在していた位置にもよるが、ルート100Rが移動方向100Dを向くまでに、少なくとも十数フレーム程度の期間は要するものとなる。
【0090】
一方、図8(c)に示すように、プレイヤキャラクタ100のルート100Rが右方向を向いている状態で方向指示スイッチ14cから上方向の入力があったときにおいて移動方向100Dから±θ3の範囲内にボール110が存在したものとする。この場合、図8(d)に示すように、プレイヤキャラクタ100は、即座にルート100Rの方向を移動方向100Dに向けるものとなる。但し、方向転換の際に数フレームのフレーム補間を行うものとしてもよい。
【0091】
なお、方向指示スイッチ14cの操作によってプレイヤキャラクタ100がボール110をドリブルしながらコート上を移動する間に、タッチパネル13をタッチすることによってボール110をドリブルする手や位置を変えたりすることもできる。この場合の動作は、上記の動作の処理を組み合わせることによって実現できる(但し、つなぎモーションとして、停止してドリブルするときとは異なるモーションデータが用いられる場合がある)。また、パスやシュートの動作については、本発明と直接的に関わりがないので、説明を省略する。
【0092】
以下、図1、図2に示したゲーム装置1において、この実施の形態にかかるバスケットボールゲームを行うための処理について説明する。ゲームの進行の流れでは、相手チームのキャラクタがボールを所持していたり、プレイヤチームのキャラクタのうちでボールを実際に所持するキャラクタが変わることでプレイヤキャラクタの切り替えなどの処理も行われる。もっとも、ここでは、本発明に関わる処理のみ、すなわちボールを実際に所持しているプレイヤキャラクタを動作させる処理のみについて説明するものとする。
【0093】
図9は、バスケットボールゲームにおいて、プレイヤチームがオフェンス側のときにプレイヤキャラクタ100を動作させるための処理を示すフローチャートである。このフローチャートの処理は、CPUコア21がカートリッジ17のROM171からWRAM22にロードされたゲームプログラムを実行する処理である。この処理が最初に開始されるときには、右手でボール110をドリブルする場合の特定座標がデフォルトとして設定されている。
【0094】
まず、CPUコア21は、タッチパネル13がタッチされ、そのいずれかの座標位置が入力されたかどうかを判定する(ステップS101)。タッチパネル13から座標位置が入力されていれば、CPUコア21は、詳細を後述するタッチ時処理を行う(ステップS102)。その後、再びステップS101の処理に戻る。タッチパネル13から座標位置が入力されていなければ、CPUコア21は、方向指示スイッチ14cから8方向のうちのいずれかの方向が入力されたかどうかを判定する(ステップS103)。方向指示スイッチ14cからいずれかの方向が入力されていれば、詳細を後述する方向入力時処理を行う(ステップS104)。その後、再びステップS101の処理に戻る。
【0095】
方向指示スイッチ14cからいずれの方向も入力されていなければ、CPUコア21は、操作スイッチ部14から他の入力があったかどうかを判定する(ステップS105)。操作スイッチ部14から他の入力があった場合には、CPUコア21は、当該入力に応じた処理(例えば、プレイヤキャラクタ100にシュートさせる、他のキャラクタにパスさせるなど)を行う(ステップS106)。その後、再びステップS101の処理に戻る。他の入力もなかった場合には、CPUコア21は、WRAM22に記憶されている最新のモーションデータに従って、プレイヤキャラクタ100を動作させる(ステップS107)。そして、ステップS101の処理に戻る。
【0096】
図10は、ステップS102のタッチ時処理を詳細に示すフローチャートである。タッチ時処理においては、CPUコア21は、タッチパネル13から入力されたタッチされた位置の座標をWRAM22に保存する(ステップS201)。次に、CPUコア21は、現時点でプレイヤキャラクタ100が左手でボール110をドリブルしており、且つタッチパネル13上でタッチされた位置がエリア(3)、(6)、(9)のいずれかの範囲内に含まれるかどうかを判定する(ステップS202)。
【0097】
プレイヤキャラクタ100が右手でボール110をドリブルしているか、タッチされた位置がエリア(3)、(6)、(9)の範囲外であった場合には、CPUコア21は、さらにプレイヤキャラクタ100が右手でボール110をドリブルしており、且つタッチパネル13上でタッチされた位置がエリア(1)、(4)、(7)のいずれかの範囲内に含まれるかどうかを判定する(ステップS203)。
【0098】
プレイヤキャラクタ100が左手でボール110をドリブルしているか、タッチされた位置がエリア(1)、(4)、(7)の範囲外であった場合には、CPUコア21は、さらにWRAM22に前回記憶されたタッチパネル13のタッチされた位置(デフォルトで記憶された位置を含む)がエリア(1)〜(3)のいずれかの範囲内であって今回タッチされた位置がエリア(7)〜(9)のいずれかの範囲内であるか、或いはWRAM22に前回記憶されたタッチパネル13のタッチされた位置がエリア(7)〜(9)のいずれかの範囲内であって今回タッチされた位置がエリア(1)〜(3)のいずれかの範囲内であるかを判定する(ステップS204)。
【0099】
WRAM22に前回記憶されたタッチの位置または今回タッチされた位置が(4)〜(6)のいずれかの範囲内であるか、WRAM22に前回記憶されたタッチパネル13のタッチされた位置がエリア(7)〜(9)のいずれかの範囲内であって今回タッチされた位置がエリア(7)〜(9)のいずれかの範囲内であるか、WRAM22に前回記憶されたタッチパネル13のタッチされた位置がエリア(1)〜(3)のいずれかの範囲内であって今回タッチされた位置がエリア(1)〜(3)のいずれかの範囲内であった場合には、CPUコア21は、設定されている特定座標のうちからモーションデータのブレンド対象となる特定座標を今回タッチパネル13がタッチされた位置に応じて選定する(ステップS205)。
【0100】
CPUコア21は、選定した特定座標に対応したモーションデータのブレンド率を、各々の特定座標と今回タッチされた位置の座標に応じてそれぞれ算出する(ステップS206)。CPUコア21は、選定した特定座標に対応したモーションデータをそれぞれに算出したブレンド率でブレンドして、プレイヤキャラクタ100にボール110をドリブルさせるためのモーションデータを生成し、WRAM22に保存する(ステップS207)。
【0101】
CPUコア21は、今回タッチパネル13がタッチされる前に適用されていたモーションデータから、タッチパネル13の新たなタッチ位置に従って生成されたモーションデータに移行させるまでの所定フレーム数のフレーム補間を行う(ステップS208)。そして、タッチ時処理を終了して、図9のフローチャートに復帰する。図9のフローチャートに復帰し、そのまま何の入力もなければ、ステップS207において生成されたモーションデータに従ってプレイヤキャラクタ100が動作させられるものとなる。
【0102】
また、ステップS202でプレイヤキャラクタ100が左手でボール110をドリブルしており、且つタッチパネル13上でタッチされた位置がエリア(3)、(6)、(9)のいずれかの範囲内に含まれていた場合には、CPUコア21は、プレイヤキャラクタ100が右手でボール110をドリブルする場合の特定データを設定し、WRAM22に記憶させる。さらに、CPUコア21は、WRAM22に前回記憶されたタッチされた位置を含むエリアと、今回タッチされた位置を含むエリアに応じたつなぎモーションのモーションデータを選択する(ステップS209)。そして、ステップS212の処理に進む。
【0103】
また、ステップS203でプレイヤキャラクタ100が右手でボール110をドリブルしており、且つタッチパネル13上でタッチされた位置がエリア(1)、(4)、(7)のいずれかの範囲内に含まれていた場合には、CPUコア21は、プレイヤキャラクタ100が左手でボール110をドリブルする場合の特定データを設定し、WRAM22に記憶させる。さらに、CPUコア21は、WRAM22に前回記憶されたタッチされた位置を含むエリアと、今回タッチされた位置を含むエリアに応じたつなぎモーションのモーションデータを選択する(ステップS210)。そして、ステップS212の処理に進む。
【0104】
さらに、ステップS204でWRAM22に前回記憶されたタッチパネル13のタッチされた位置がエリア(1)〜(3)のいずれかの範囲内であって今回タッチされた位置がエリア(7)〜(9)のいずれかの範囲内であるか、或いはWRAM22に前回記憶されたタッチパネル13のタッチされた位置がエリア(7)〜(9)のいずれかの範囲内であって今回タッチされた位置がエリア(1)〜(3)のいずれかの範囲内であった場合には、CPUコア21は、WRAM22に前回記憶されたタッチされた位置を含むエリアと、今回タッチされた位置を含むエリアに応じたつなぎモーションのモーションデータを選択する(ステップS211)。そして、ステップS212の処理に進む。
【0105】
ステップS212〜S214の処理は、ステップS205〜S207の処理と同じである。ステップS214を終了すると、CPUコア21は、今回タッチパネル13がタッチされる前に適用されていたモーションデータから、ステップS209〜S211で選択されたつなぎモーションのモーションデータに移行させるまでの所定フレーム数のフレーム補間を行う(ステップS215)。その後、CPUコア21は、ステップS209〜211で選択されたつなぎモーションのモーションデータに従って、プレイヤキャラクタ100を動作させる(ステップS216)。
【0106】
さらに、CPUコア21は、つなぎモーションのモーションデータから、タッチパネル13の新たなタッチ位置に従って生成されたモーションデータに移行させるまでの所定フレーム数のフレーム補間を行う(ステップS217)。そして、タッチ時処理を終了して、図9のフローチャートに復帰する。図9のフローチャートに復帰し、そのまま何の入力もなければ、ステップS214において生成されたモーションデータに従ってプレイヤキャラクタ100が動作させられるものとなる。
【0107】
図11は、ステップS104の方向入力時処理を詳細に示すフローチャートである。このフローチャートの処理においては、プレイヤキャラクタ100とボール110との方向やルート100Rの方向と、方向指示スイッチ14cから入力された方向とを扱っているが、前者の方向を後者の方向と比較するときには、仮想カメラの視点から参照点となるプレイヤキャラクタ100に向けた方向に応じて方向指示スイッチ14cから入力された方向を変換しており、以下の説明における入力方向は、変換された後の方向を指すものとする。
【0108】
方向入力時処理においては、まず、CPUコア21は、コート上におけるプレイヤキャラクタ100の位置からボール110の位置に向けた方向を判断する(ステップS301)。次に、CPUコア21は、方向指示スイッチ14cから入力された方向がプレイヤキャラクタ100のルート100Rの方向と一致するかどうかを判定する(ステップS302)。入力方向がルート100Rの方向と一致していれば、そのままプレイヤキャラクタ100をコート上で移動させることができるようになるため、ステップS311の処理に進む。
【0109】
入力方向がルート100Rの方向と一致しない場合には、まず、ルート100Rの方向を入力方向と一致させてから、プレイヤキャラクタ100を移動させる必要がある。ここでは、CPUコア21は、方向指示スイッチ14cから入力された方向から±θ3の範囲内の領域にボール110が存在しているかどうかを判定する(ステップS303)。
【0110】
±θ3の範囲内の領域にボール110が存在しなければ、プレイヤキャラクタ100をクイックターンにより方向転換させることはできない。この場合において、CPUコア21は、プレイヤキャラクタ100がボール110をドリブルする動作のモーションデータ(WRAM22に現時点で記憶されているものとしても、この場合の専用のものとしてもよい)をROM117に記憶されている方向転換用のモーションデータとブレンドし、ここでの方向転換のためのモーションデータを生成する(ステップS304)。
【0111】
CPUコア21は、ステップS304で生成されたモーションデータを用いて、プレイヤキャラクタ100にボール110をドリブルさせながら、方向指示スイッチ14cから入力された方向に向けてルート100Rの向きを所定角度ずつ方向転換させる(ステップS305)。その後、CPUコア21は、方向指示スイッチ14cからの方向の入力が解除されたかどうかを判定する(ステップS306)。方向の入力が解除されていた場合には、これで方向入力時処理を終了して、図9のフローチャートに復帰する。
【0112】
方向の入力が解除されていなかった場合には、CPUコア21は、プレイヤキャラクタ100のルート100Rの方向が方向指示スイッチ14cから入力された方向に一致したかどうかを判定する(ステップS307)。ルート100Rの方向が入力方向に未だ一致していなければ、ステップS305に戻り、プレイヤキャラクタ100の方向転換を継続する。ルート100Rの方向が入力方向に一致した場合には、プレイヤキャラクタ100をコート上で移動させることができるようになるため、ステップS310の処理に進む。
【0113】
ステップS303において入力方向から±θ3の範囲内の領域にボール110が存在していれば、CPUコア21は、そのままプレイヤキャラクタ100のルート100Rの方向を方向指示スイッチ14cから入力された方向に即座に転換させる(ステップS308)。その後、CPUコア21は、方向指示スイッチ14cからの方向の入力が解除されたかどうかを判定する(ステップS309)。方向の入力が解除されていた場合には、これで方向入力時処理を終了して、図9のフローチャートに復帰する。方向の入力が解除されていなかった場合には、ステップS308のクイックターンによりルート100Rの方向が入力方向に一致し、プレイヤキャラクタ100をコート上で移動させることができるようになるため、ステップS310の処理に進む。
【0114】
ステップS310では、プレイヤキャラクタ100がボール110をドリブルしながらルート100Rの方向を転換させた場合には、プレイヤキャラクタ100の位置からボール110の位置に向けた方向が変わってしまっているので、CPUコア21は、ここで再びコート上におけるプレイヤキャラクタ100の位置からボール110の位置に向けた方向を判断する。そして、ステップS311の処理に進む。
【0115】
ステップS311では、CPUコア21は、ステップS301またはS310で判断したプレイヤキャラクタ100の位置からボール110の位置に向けた方向が方向指示スイッチ14cから入力された方向となす角度θを算出する。さらに、CPUコア21は、プレイヤキャラクタ100がボール110をドリブルする動作のモーションデータをROM117に記憶されている移動用のモーションデータとブレンドし、コート上での移動のためのモーションデータを生成する(ステップS312)。
【0116】
CPUコア21は、ステップS312で生成したモーションデータを通常のcos(θ/2)の速度で再生するとともに、Vcos(θ/2)の移動速度でプレイヤキャラクタ100をコート上で方向指示スイッチ14cから入力された方向に移動させる(ステップS313)。
【0117】
その後、CPUコア21は、方向指示スイッチ14cからの方向の入力が解除されたかどうかを判定する(ステップS314)。方向の入力が解除されていなかった場合には、ステップS313の処理に戻り、さらにプレイヤキャラクタ100を入力方向に移動させる。一方、方向の入力が解除されていた場合には、これで方向入力時処理を終了して、図9のフローチャートに復帰する。
【0118】
以上のような処理により、プレイヤキャラクタ100は、仮想3次元空間に形成されたコート上で動作するものとなる。また、プレイヤキャラクタ100以外の他のキャラクタ101〜104、121〜125も、CPUコア21の制御により仮想3次元空間に形成されたコート上で動作するものとなる。プレイヤキャラクタ100及び他のキャラクタ101〜104、121〜125の動作に従って、ボール110も仮想3次元空間に形成されたコート上で動作するものとなる。これらの動作によって、この実施の形態にかかるバスケットボールゲームが進行していく。
【0119】
こうしてゲームが進行する様子は、第1LCD11及び第2LCD12に画像として表示されるが、第1LCD11及び第2LCD12に表示する画像の生成は、次のようにして行われる。
【0120】
第1LCD11に表示させる画像を生成するために、CPUコア21は、プレイヤキャラクタ100の動作や、新たなプレイヤキャラクタ100への切り替えに応じて、仮想カメラの視点の位置を設定する。CPUコア21は、1フレーム期間(例えば、1/30秒)毎に、仮想カメラの参照点をプレイヤキャラクタ100の位置に設定し、仮想3次元空間において透視変換される範囲に含まれるオブジェクト(プレイヤキャラクタ100、他のキャラクタ101〜104、121〜125、ボール110を含む)を構成するポリゴンの各頂点を視点座標系の座標に変換する。
【0121】
CPUコア21は、視点座標系に変換した各頂点の座標を第1GPU24に送るとともに、第1GPU24に描画命令を出力する。描画命令を受け取った第1GPU24は、CPUコア21から送られてきた視点座標系の座標に基づいて、視点から近い位置にあるポリゴンが最終的に描画されるように第1VRAM23に画像データを展開していく。ここで、画像データの展開の際には、陰面消去処理、シェーディング、テクスチャマッピングなどの処理も行われている。
【0122】
第1GPU24は、第1VRAM23に展開された画像データを順次読み出し、同期信号を付加してビデオ信号を生成し、第1LCD11に出力する。第1LCD11は、第1GPU24から出力されたビデオ信号に対応した画像を表示する。こうして1フレーム期間毎に第1LCD11に表示される画像が切り替えられていくことで、プレイヤは、プレイヤキャラクタ100や他のキャラクタ101〜104、121〜125が仮想3次元空間に形成されたコート上でバスケットボールの試合を行う様子の画像を3次元表示で見ることができるようになる。
【0123】
一方、第2LCD12に表示させる画像を生成するために、CPUコア21は、1フレーム期間毎にプレイヤキャラクタ100の位置を第2LCD12の中心位置の座標に設定し、他のキャラクタ101〜104、121〜125の仮想3次元空間におけるx−z平面の座標をプレイヤキャラクタ100から仮想カメラの視点の方向をy軸方向に設定した座標系の座標に変換する。
【0124】
CPUコア21は、変換したプレイヤキャラクタ100及び他のキャラクタ101〜104、121〜125の座標を第2GPU26に送るとともに、第2GPU26に描画命令を出力する。描画命令を受け取った第2GPU26は、キャラクタ100〜104、121〜125の種類に応じたアイコンを、それぞれのキャラクタ100〜104、121〜125の座標位置に応じて第2VRAM25に展開する。
【0125】
第2GPU26は、第2VRAM25に展開された画像データを順次読み出し、同期信号を付加してビデオ信号を生成し、第2LCD12に出力する。第2LCD12は、第2GPU26から出力されたビデオ信号に対応した画像を表示する。こうして1フレーム期間毎に第2LCD12に表示される画像が切り替えられていくことで、プレイヤは、プレイヤキャラクタ100を中心にしてコート上のどの位置に各キャラクタ101〜104、121〜125が存在するかを示す2次元画像を見ることができるようになる。
【0126】
以上説明したように、この実施の形態にかかるバスケットボールゲームでは、プレイヤチームがオフェンス側で操作スイッチ部14から入力がない場合、プレイヤキャラクタ100は、仮想3次元空間に形成されたコート上で位置を移動せずにボール110をドリブルし続けることとなる。このドリブル動作は、モーションデータを用いて再生され、第1LCD11に画像が表示されるものである。ここで、プレイヤキャラクタ100がボール110をドリブルする位置は、タッチパネル13の任意の位置をタッチすることで変えることができるが、ボールをドリブルする位置が変われば、プレイヤキャラクタ100の動作の再生に必要となるモーションデータも異なることとなる。
【0127】
プレイヤキャラクタ100がボール110をドリブルするためのモーションデータは、タッチパネル13上に設定される特定座標201〜206、221〜224に対してのみ予め用意されている。ここで、プレイヤがタッチパネル13の特定座標201〜206、221〜224以外の位置をタッチしたときには、タッチした位置の座標と特定座標201〜206、221〜224との位置関係に応じて、特定座標201〜206、221〜224にそれぞれ対応したモーションデータのブレンド率が算出され、該ブレンド率でモーションデータをブレンドしてプレイヤキャラクタ100のドリブル動作の再生のために用いるものとしている。
【0128】
このように特定座標201〜206、221〜224のそれぞれに対応したモーションデータは、タッチパネル13のタッチされた位置に応じて異なるブレンド率でブレンドすることができるので、タッチされた位置によりモーションデータも異なるものとなる。これにより、タッチパネル13のタッチする位置の差に応じてプレイヤキャラクタ100のドリブル動作として微妙な違いも表現できるようになり、現実世界のバスケットボール選手の動作と同様なプレイヤキャラクタ100の動作を再現することができるようになる。
【0129】
また、タッチパネル13のタッチする位置の違いにより異なるモーションデータを用いてプレイヤキャラクタ100が動作させられることから、プレイヤの観点で考えると、タッチパネル13のタッチする位置を変えるだけでプレイヤキャラクタ100がボール110をドリブルする位置を自在に変えることができるようになる。また、プレイヤキャラクタ100にどのような位置でボール110をドリブルさせるかという指示を、タッチパネル13のタッチする座標位置をどうするかという直感的な判断で入力することができるようになる。
【0130】
さらに、方向指示スイッチ14cからの入力によりプレイヤキャラクタ100をコート上で移動させている間にタッチパネル13をタッチすると、プレイヤキャラクタ100が移動するモーションデータと、タッチされた位置に応じて生成されたドリブルのモーションデータとがブレンドされて再生されるものとなっている。つまり、プレイヤキャラクタ100がコート上を移動する間も、タッチパネル13をタッチする位置によってプレイヤキャラクタ100がボール110をドリブルする位置を設定することができる。このため、プレイヤキャラクタ100がコート上を移動しているときも、直感的な判断による入力でボール110をドリブルする位置を変えることができるようになる。
【0131】
また、タッチパネル13のタッチされた位置の違いによって最終的にプレイヤキャラクタ100のドリブル動作に用いられるモーションデータが全て異なるものになるとしても、ゲームカートリッジ17のROM171に予め記憶させておかなければならないモーションデータは、特定座標201〜206、221〜224に対応したものだけでもよい。このため、モーションデータを予め記憶しておくために必要なROM171の記憶容量を比較的小さな量に抑えることができる。
【0132】
ここで、ROM171に予め記憶されたモーションデータのうちでブレンドの対象となるものは、タッチパネル13のタッチされた位置との関連性が深い特定座標に対応した2つまたは4つだけが選択されるものとなっている。例えば、図4(b)に示した位置Tがタッチされた場合には、特定座標201、202、204、205以外の特定座標はタッチされた位置Tからも遠く、また、それらに対応するモーションデータも、タッチされた位置に応じた動作とは相反するような動作となるものとなるからである。このようにROM117に記憶されたモーションデータは、プレイヤキャラクタ100の片手に対して6種類、全体で12種類あるものの、ブレンドの対象となるモーションデータは、2つまたは4つだけで済むため、ブレンド率の算出やモーションデータのブレンドの処理に要する処理量が大きくなりすぎないで済む。
【0133】
選択された2または4の特定座標に対応したモーションデータのブレンド率は、タッチパネル13上のタッチされた位置に近い特定座標に対応したモーションデータほど高く値が算出される。このため、タッチパネル13のどの位置をタッチすれば、プレイヤキャラクタ100がどのように動作するかをプレイヤが予測しやすくなり、ゲームが複雑にならない。しかも、タッチパネル13の下側にある第2LCD12に表示される画像は、プレイヤキャラクタ100が中央に位置し、他のキャラクタ101〜104、121〜125の位置も表示されるものとなっているので、プレイヤは、ゲームの進行状況に応じてタッチパネル13のどの位置をタッチすればよいかを判断しやすくなる。
【0134】
また、選択された2または4の特定座標に対応したモーションデータのブレンド率は、それぞれタッチされた位置の座標と特定座標のx座標とy座標毎に距離の割合を求め、それぞれに求めた割合を互いに乗算して算出されるものとなる。このため、加減乗除という比較的容易な演算のみで各特定座標に対応したモーションデータのブレンド率を算出することができ、ブレンド率の算出のためにCPUコア21にかかる処理負荷が大きくなりすぎない。
【0135】
また、タッチパネル13のタッチされた位置の座標が、たまたま特定座標201〜206、221〜224と一致するような場合もあるが、このような場合には、タッチされた位置に一致する特定座標に対応したモーションデータをそのまま用いて、プレイヤキャラクタ100にドリブル動作をさせればよい。従って、プレイヤキャラクタ100を動作させるために用いるモーションデータを得るために余分な処理を行う必要がなくなり、CPUコア21の処理負荷を小さくすることができる。
【0136】
この実施の形態のゲームはバスケットボールゲームであるので、プレイヤキャラクタ100は、コート上で位置を移動する場合と移動しない場合とがあり得る。オフェンス側のチームとディフェンス側のチームが変わったり、キャラクタ間でボール110をパスしたりすることにより、これまでとは異なるキャラクタが新たにボール110をドリブルするプレイヤキャラクタ100となることがある。プレイヤキャラクタ100がコート上で移動を止めたり、これまでと異なるキャラクタが新たなプレイヤキャラクタ100となった場合にも、プレイヤキャラクタ100は、特定座標201に対応したモーションデータを用いてドリブル動作させることができる。このデフォルトで適用されるモーションデータは、モーションブレンドの必要がないので、CPUコア21に余分な処理負荷がかかることがない。
【0137】
ところで、プレイヤキャラクタ100によるボール110のドリブル動作としては、右手でドリブルする動作と左手でドリブルする動作とがある。ここで、例えば、プレイヤキャラクタ100が右手でボール110をドリブルしているときにタッチパネル13のエリア(2)、(3)、(5)、(6)、(8)、(9)の範囲内がタッチされれば、新たに生成されるモーションデータでも右手でドリブルを続けることとなる。左手に持ち替えるのは、エリア(1)、(4)、(7)の範囲内がタッチされたときだけである。左手でボール110をドリブルしているときにおけるタッチパネル13のタッチでは、左右を反転したパターンとなる。
【0138】
すなわち、タッチパネル13で真ん中の列に当たるエリア(2)、(5)、(8)がタッチされたときは、タッチされた時点で右手でドリブルしていればタッチ後も右手でドリブルを続けるように、タッチされた時点で左手でドリブルしていればタッチ後も左手でドリブルを続けるように、モーションデータのブレンド対象となる特定座標が選ばれることとなる。このため、プレイヤキャラクタ100がボール110をドリブルする手の入れ替えが頻繁になりすぎたり、不自然な手の入れ替えが生じたりしないようにすることができ、プレイヤに違和感を感じさせるのを防ぐことができる。
【0139】
さらに、タッチパネル13が新たにタッチされたときにプレイヤキャラクタ100がボール110を右手でドリブルしているか左手でドリブルしているかは、タッチされた時点でのプレイヤキャラクタ100の動作状態そのものを調べるのではなく、前回にタッチパネル13がタッチされた位置を含むエリアと今回タッチされた位置を含むエリアの関係で判断している。このため、プレイヤキャラクタ100がボール110をドリブルする手を替えるべきかどうかの判断も比較的少ない計算量で行うことができる。
【0140】
また、プレイヤキャラクタ100がボール110をドリブルする手を右手から左手、或いは左手から右手に切り替えるときには、タッチパネル13をタッチする前のモーションデータから、タッチパネル13をタッチした後のモーションデータにそのまま移行させるのではない。タッチパネル13をタッチする前のモーションデータから一旦つなぎモーションのモーションデータに移行し、さらにつなぎモーションのモーションデータからタッチパネル13をタッチした後のモーションデータに移行させるものとしている。
【0141】
つなぎモーションは、前回のタッチした位置を含むエリアが(1)〜(3)で今回のタッチした位置を含むエリアが(7)〜(9)であるとき、或いは前回のタッチした位置を含むエリアが(7)〜(9)で今回のタッチした位置を含むエリアが(1)〜(3)であるときにも挿入される。ドリブルする手の入れ替えも含めて、つなぎモーションを挿入するかどうかも、前回にタッチパネル13がタッチされた位置を含むエリアと今回タッチされた位置を含むエリアの関係で判断しているので、つなぎモーションの挿入の判断も比較的少ない計算量で行うことができる。
【0142】
そして、このようにタッチパネル13がタッチされた前後で適用されるモーションデータの差が大きい場合には、いきなり両者間でモーションデータを移行させるのではなく、一旦つなぎモーションのモーションデータを用いてプレイヤキャラクタ100を動作させているため、タッチパネル13がタッチされる前後でプレイヤに違和感が生じさせないように、プレイヤキャラクタ100を動作させることができるようになる。
【0143】
ところで、この実施の形態で適用されているゲームは、バスケットボールゲームであるが、ボール110のドリブル以外のプレイヤキャラクタ100の動作は、操作スイッチ部14からの入力によって指示することができる。プレイヤキャラクタ100は、例えば、方向指示スイッチ14cからの入力により仮想3次元空間に形成されたコート上を移動したり、方向転換したりする。このようにタッチパネル13以外の入力手段からの入力によって、ゲームの進行のためにプレイヤキャラクタ100にボール110をドリブルする以外の様々な動作をさせることができるようになる。
【0144】
方向指示スイッチ14cからの入力があった場合、プレイヤキャラクタ100は、ボール110をドリブルしながらコート上で該入力された方向に移動するものとなる。ここで現実の世界におけるバスケットボール選手の動きを考えると、ボール110の扱いは、体の正面にあるときの方が容易になる。この実施の形態にかかるバスケットボールゲームでは、プレイヤキャラクタ100からボール110に向けた方向とプレイヤキャラクタ100の進行方向(すなわち、方向指示スイッチ14cから入力された方向)とがなす角度に応じた速度でプレイヤキャラクタ100の移動速度を変えているので、ボール110をドリブルする位置に応じて自然な速度でプレイヤキャラクタ100を移動させることができる。
【0145】
また、この実施の形態にかかるバスケットボールゲームでは、方向指示スイッチ14cからの入力があった場合、プレイヤキャラクタ100が向いている方向(ルート100Rの方向)が進行方向からずれてプレイヤに違和感を感じさせることがないよう、まず、プレイヤキャラクタ100のルート100Rの向きを転換させるものとしている。ここでも現実の世界におけるバスケットボール選手の動きを考えると、ボールが予め進行方向にあれば、体を反転させるだけでボールを正面でさばきつつ進行方向を向くことができるが、ボール110が予め進行方向になければ、ボールを正面でさばくには体を反転させるだけでは済まない。
【0146】
方向指示スイッチ14cから入力された方向がプレイヤキャラクタ100のルート100Rの方向と異なるときにおいて、入力された方向から±θ3の範囲内にボールがあることを条件として、ボール110の位置をそのままにしてプレイヤキャラクタ100のルート100Rの方向を転換するクイックターンを行うものとしている。これにより、方向指示スイッチ14cからの入力に応じた方向へプレイヤキャラクタ100を方向転換させる場合にも、その方向転換を自然な速度で行うことができるようになる。
【0147】
以上のようにプレイヤキャラクタ100の動作は、ボール110をドリブルする位置の違いに応じて自動的に変わるものとなる。つまり、プレイヤが行うこととなる入力操作の種類が少なくても、プレイヤキャラクタ100は、ボール110をドリブルする位置に応じて自然な動作をすることができるようになる。また、プレイヤキャラクタ100に自然な動作をさせるためにゲームが複雑になりすぎることもない。
【0148】
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
【0149】
上記の実施の形態では、特定座標201〜206に対応したモーションデータのブレンド率を、タッチパネル13のタッチされた位置の座標と特定座標201〜206との間のx座標、y座標毎の距離に基づいて算出するものとしていた。しかしながら、特定座標201〜206に対応したモーションデータのブレンド率の算出方法はこれに限るものではなく、タッチパネル13のタッチされた位置の座標と特定座標201〜206との間の直線距離に基づいて算出したり、直線距離の自乗に基づいて算出するものとしてもよい。
【0150】
上記の実施の形態では、タッチパネル13のタッチされた位置の座標と特定座標201〜206との間のx座標、y座標毎の距離に基づいてモーションデータのブレンド率を算出し、該算出したブレンド率でブレンドしたモーションデータを用いて、プレイヤキャラクタ100を動作させるものとしていた。これに対して、プレイヤキャラクタ100を動作させるためのモーションデータは、タッチパネル13のタッチされた位置に最も近い特定座標201〜206に対応したモーションデータをそのまま用いるものとし、モーションデータのブレンドを行わないものとしてもよい。
【0151】
ここで、特定座標201〜206に対応したモーションデータをそのまま用いるのは、タッチパネル13上の特定座標201〜206から所定範囲(例えば、x座標及びy座標ともに±10の範囲)内にある位置がタッチされた場合だけとしてもよい。所定範囲外の位置がタッチされた場合には、上記の実施の形態で示したようにタッチされた位置に応じてモーションデータをブレンドし、該ブレンドしたモーションデータを用いてプレイヤキャラクタ100を動作させるものとしてもよい。
【0152】
上記の実施の形態では、プレイヤキャラクタ100の動作を規定するモーションデータは、タッチパネル13上の特定座標201〜206に対応づけて用意されていた。これに対して、タッチパネル13上の領域に設定されたエリア(1)〜(9)にそれぞれ対応づけてモーションデータを用意するものとしてもよい。この場合において、例えば、タッチパネル13においてエリア(1)の範囲内のいずれかの位置がタッチされたときには、当該エリア(1)に対応づけてROM171に記憶されているモーションデータを選択し、該モーションデータを用いてプレイヤキャラクタ100を動作させるものとしてもよい。
【0153】
また、例えば、タッチパネル13上の領域が5行5列のエリアに区切られているものとした場合、第2行及び第4行、並びに第2列及び第4列に含まれないエリアについてのみモーションデータを用意しておくものとしてもよい。ここで、第m行第n列のエリアをエリア(m,n)と表すものとすると、タッチパネル13においてエリア(1,1)、(1,3)、(1,5)、(3,1)、(3,3)、(3,5)、(5,1)、(5,3)、(5,5)の範囲内のいずれかの位置がタッチされたときには、タッチされたエリアに対応づけられたモーションデータをそのまま用いてプレイヤキャラクタ100を動作させるものとしてもよい。
【0154】
一方、これ以外のエリアの範囲内のいずれかの位置がタッチされたときには、ブレンドしたモーションデータを用いてプレイヤキャラクタ100を動作させるものとすればよい。例えば、エリア(1,2)の範囲内の位置がタッチされた場合には、エリア(1,1)に対応したモーションデータとエリア(1,3)に対応したモーションデータとをブレンドすればよい。この場合のブレンド率は、それぞれ50%とすることができる。また、エリア(2,2)の範囲内の位置がタッチされた場合には、エリア(1,1)に対応したモーションデータ、エリア(1,3)に対応したモーションデータ、及びエリア(3,1)に対応したモーションデータ、エリア(3,3)に対応したモーションデータをブレンドすればよい。この場合のブレンド率は、それぞれ25%とすることができる。
【0155】
上記の実施の形態では、プレイヤキャラクタ100がコート上を移動する際に該移動のモーションデータとブレンドされるドリブルのモーションデータも、タッチパネル13のタッチされた位置の座標のみに応じて生成されるものとなっていた。しかしながら、プレイヤキャラクタ100の移動する方向によっては、タッチパネル13のタッチされた位置のみに応じて生成されたドリブルのモーションデータでは、移動の方向とドリブルの動作とに違和感を生じさせてしまう虞もある。
【0156】
そこで、プレイヤキャラクタ100がコート上を移動する際に該移動のモーションデータとブレンドされるドリブルのモーションデータは、タッチパネル13のタッチされた位置の座標に加えてプレイヤキャラクタ100の移動方向(方向指示スイッチ14cから入力された方向)に応じて生成するものとしてもよい。このための手法として、例えば、タッチパネル13のタッチされた位置の座標をプレイヤキャラクタ100の移動方向に応じた演算式で変換し、該演算式により変換した座標と特定座標201〜206との位置関係に応じてドリブルのモーションデータを生成するものとすることができる。つなぎモーションを挿入するかどうかも、返還後の座標と特定座標201〜206との位置関係に応じて決めることができる。
【0157】
これにより、プレイヤキャラクタ100がコート上を移動する際には、プレイヤキャラクタ100は、その移動動作に対して違和感の感じられない状態でボール110をドリブルすることができるようになる。また、プレイヤキャラクタ100がボール110をドリブルする位置もタッチパネル13のタッチする位置による直感的な入力で変化させることができるようになる。
【0158】
上記の実施の形態では、プレイヤキャラクタ100にボール110をドリブルする手を入れ替えさせるか、つなぎモーションを挿入するかといった点についてのみ、前回と今回のタッチパネル13がタッチされた位置同士の関係で判断されていた。もっとも、プレイヤキャラクタ100のルート100Rの方向と方向指示スイッチ14cから入力された方向の相違の判断や、プレイヤキャラクタ100からボール110へ向けた方向の判断も、前回と今回のタッチパネル13がタッチされた位置同士の関係で判断してもよい。
【0159】
方向指示スイッチ14cから入力可能な方向は8方向であり、タッチパネル13上でも中心にあるエリア(5)から8方向に他のエリアがあるため、全ての方向性の判断を、これら8方向を単位として行えばよい。例えば、プレイヤキャラクタ100からボール110に向けた方向を、仮想カメラの視点からプレイヤキャラクタ100に向けた方向に応じて8等分した角度範囲のいずれの角度範囲に含まれるかで判断するものとしてもよい。これにより、異なる対象の方向同士を比較する処理が容易なものとなる。
【0160】
上記の実施の形態では、方向指示スイッチ14cからの入力があったときに、プレイヤキャラクタ100は、プレイヤキャラクタ100からボール110に向けた方向と入力された方向とがなす角度をθとするとき、Vcos(θ/2)の速度で入力された方向に移動するものとなっていた。つまり、プレイヤキャラクタ100の移動速度は、θの大きさに応じて連続的に変化するものとなっていた。これに対して、プレイヤキャラクタ100からボール110の方向と入力された方向とがなす角度θを予め定められた閾値(複数あってもよい)と比較し、θがこの閾値以下であるときにはプレイヤキャラクタ100を所定の速度V1で移動させ、θがこの閾値より大きいときにはプレイヤキャラクタ100をV1よりも遅い速度V2で移動させるものとしてもよい。つまり、プレイヤキャラクタ100の移動速度は、θが閾値よりも大きいかどうかにより段階的に変化するものとしてもよい。
【0161】
上記の実施の形態では、プレイヤキャラクタ100のルート100Rの方向が方向指示スイッチ14cから入力された方向と一致しないときに、ボール110が入力された方向から±θ3の範囲内にあれば、プレイヤキャラクタ100をその場でクイックターンさせるものとしていた。もっとも、方向指示スイッチ14cからの入力時にタッチパネル13が現にタッチされていなければ、ボール110の位置に関わらずにプレイヤキャラクタ100をクイックターンさせることはないが、方向指示スイッチ14cからの入力があったときにタッチパネル13が現にタッチされていれば(但し、入力された方向から±θ3の範囲内の位置が)、プレイヤキャラクタ100をクイックターンさせるものとしてもよい。
【0162】
上記の実施の形態では、タッチパネル13上の領域が9つのエリアに分割されており、つなぎモーションの挿入対象となるかどうかは、先にタッチされた位置が含まれるエリアと後にタッチされた位置が含まれるエリアとの関係に応じて判断されるものとなっていた。先にタッチされた位置そのものと後にタッチされた位置そのものとの関係を判定して、つなぎモーションを挿入するかどうかを判断するものとしてもよい。特定座標201〜206のうちで先にタッチされた位置に最も近い特定座標と後にタッチされた位置に最も近い特定座標との関係を判定して、つなぎモーションを挿入するかどうかを判断するものとしてもよい。
【0163】
上記の実施の形態では、プレイヤキャラクタ100からボール110に向けた方向により両者の位置関係が判断されるものとなっていたが、さらにプレイヤキャラクタ100とボール110との間の距離によっても両者の位置関係を判断するものとしてもよい。また、プレイヤキャラクタ100に対して位置関係の判断対象となるオブジェクトはボール110だけであったが、2つ以上あってもよい。
【0164】
上記の実施の形態では、本発明をバスケットボールゲームにおいてボール110をドリブルするプレイヤキャラクタ100に適用していたが、サッカーゲームなどの他のゲームのプレイヤキャラクタに適用するものとしてもよい。プレイヤキャラクタの動作に影響を与えるオブジェクトは、ボール以外のものであってもよく、プレイヤキャラクタの動作とは全く独立して仮想3次元空間において移動可能なものとしてもよい。図6、図10にて示したモーションブレンドの手法は、ボールのようなオブジェクトを扱わないプレイヤキャラクタに対しても適用することができる。図7、図8、図11にて示したようなプレイヤキャラクタの移動や方向転換の手法は、2次元ビデオゲームにも適用することができる。
【0165】
上記の実施の形態では、第2LCD12の前面側に配設されたタッチパネル13から座標位置の入力を行うものとしていた。もっとも、タッチパネル13は、第2LCD12のような表示装置の前面側に配設されるものでなくてもよい。また、座標位置を入力するデバイスは、タッチパネル13に限るものではなく、表示装置上に表示されたカーソルの位置により座標入力を行うマウスなど、他のポインティングデバイスを用いるものとしてもよい。
【0166】
上記の実施の形態では、第1LCD11と第2LCD12という2つの表示装置、及びタッチパネル13というポインティングデバイスを備えるゲーム装置1において、本発明を適用したバスケットボールゲームを実行するものとした場合を例として説明した。しかしながら、少なくともゲームの画像を表示する表示装置と、プレイヤが所望の座標位置を入力することのできるポインティングデバイスを備えるものであれば、ゲーム装置1以外のコンピュータ装置において、本発明を適用したゲームを実行するものとしてもよい。本発明を適用したゲームを実行するコンピュータ装置は、ゲーム専用機でもパーソナルコンピュータのような汎用機であってもよく、携帯型であるか据え置き型であるかを問わない。また、発明を適用したゲームを実行するコンピュータ装置として、携帯電話機を適用することもできる。
【0167】
上記の実施の形態では、ゲーム装置1のプログラム及びデータは、ゲームカートリッジ17のROM171に格納されて配布されるものとしていた。もっとも、これらのプログラム及びデータを格納する記録媒体は、このようなものに限るものではなく、プラットフォームとなるコンピュータ装置の形態に応じて、光and/or磁気ディスク装置(フレキシブルディスク、CD−ROM、DVD−ROMなど)を適用することもできる。固定ディスク装置を備えるコンピュータ装置をプラットフォームとする場合には、これらのプログラム及びデータは、固定ディスク装置に予め格納して配布してもよい。
【0168】
さらに、ネットワークを介して他のコンピュータ装置と通信可能なコンピュータ装置をプラットフォームとして適用する場合には、これらのプログラム及びデータは、ネットワーク上に存在するサーバ装置が有する固定ディスク装置に格納しておき、ネットワークを介して配信するものとしてもよい。
【図面の簡単な説明】
【0169】
【図1】本発明の実施の形態に適用されるゲーム装置の構成を示す外観図である。
【図2】本発明の実施の形態に適用されるゲーム装置の回路構成を示すブロック図である。
【図3】本発明の実施の形態にかかるバスケットボールゲームにおける表示画面の例を示す図である。
【図4】プレイヤキャラクタがコート上の任意の位置に停止してドリブルを行う場合におけるモーションブレンドの説明図である。
【図5】ボールをドリブルする手の切り替えについての説明図である。
【図6】つなぎモーションについての説明図である。
【図7】ボールをドリブルする位置とプレイヤキャラクタの移動速度との関係を示す説明図である。
【図8】通常ターンとクイックターンの説明図である。
【図9】本発明の実施の形態にかかるバスケットボールゲームにおいて、プレイヤチームがオフェンス側のときにプレイヤキャラクタを動作させるための処理を示すフローチャートである。
【図10】図9のタッチ時処理を詳細に示すフローチャートである。
【図11】図9の方向入力時処理を詳細に示すフローチャートである。
【符号の説明】
【0170】
1 ゲーム装置
11 第1LCD
12 第2LCD
13 タッチパネル
14 操作スイッチ部
14c 方向指示スイッチ
17 ゲームカートリッジ
171 ROM
21 CPUコア
22 WRAM
24 第1GPU
26 第2GPU
100 プレイヤキャラクタ
110 ボール
201〜206、221〜224 特定座標

【特許請求の範囲】
【請求項1】
仮想空間に存在する第1オブジェクトと第2オブジェクトのうち少なくとも第1オブジェクトを動作させた画像を生成する画像生成装置であって、
操作者の操作に応じて前記第1オブジェクトを前記仮想空間において動作させるための指示を入力する動作入力手段と、
前記動作入力手段から動作の指示が入力されたときに、前記第1オブジェクトと前記第2オブジェクトとの位置関係を判断する位置関係判断手段と、
前記位置関係判断手段の判断結果に応じて異なる動作となるように、前記動作入力手段から入力された指示に対応した動作を少なくとも前記第1オブジェクトに行わせるオブジェクト動作手段と、
前記オブジェクト動作手段により動作させられている第1オブジェクトと、前記第2オブジェクトとを含む画像を生成する画像生成手段と、
前記画像生成手段の生成した画像を表示手段に表示させる表示制御手段と
を備えることを特徴とする画像生成装置。
【請求項2】
前記動作入力手段は、前記第1オブジェクトの位置を現時点の位置から予め定められた複数の方向のうちのいずれかの方向に向かって移動させるための指示を入力する移動入力手段を含み、
前記オブジェクト動作手段は、前記移動入力手段から移動の指示が入力されたときに、該入力された指示に対応した方向と前記位置関係判断手段の判断結果とに応じた速度で、前記仮想空間において該入力された指示に対応した方向に前記第1オブジェクトを移動させる
ことを特徴とする請求項1に記載の画像生成装置。
【請求項3】
前記位置関係判断手段は、前記第1オブジェクトと前記第2オブジェクトとの位置関係として、該第1オブジェクトの位置から該第2オブジェクトの位置に向けた方向を判断し、
前記移動入力手段から入力された指示に対応した方向が、前記位置関係判断手段の判断した方向に対して第1特定範囲内にあるかどうかを判定する入力方向判定手段をさらに備え、
前記オブジェクト動作手段は、前記入力方向判定手段により前記第1特定範囲内にあると判定されたときに、該第1特定範囲外にあると判定されたときよりも高速で前記第1オブジェクトを移動させる
ことを特徴とする請求項2に記載の画像生成装置。
【請求項4】
前記位置関係判断手段は、前記第1オブジェクトと前記第2オブジェクトとの位置関係として、該第1オブジェクトの位置から該第2オブジェクトの位置に向けた方向を判断し、
前記オブジェクト動作手段は、前記移動入力手段から入力された指示に対応した方向と、前記第1オブジェクトの位置から前記第2オブジェクトの位置に向けた方向とがなす角度が小さいほど、前記第1オブジェクトを高速で移動させる
ことを特徴とする請求項2に記載の画像生成装置。
【請求項5】
前記動作入力手段は、前記第1オブジェクトの位置を現時点の位置から予め定められた複数の方向のうちのいずれかの方向に向かって移動させるための指示を入力する移動入力手段を含み、
前記位置関係判断手段は、前記第1オブジェクトと前記第2オブジェクトとの位置関係として、該第1オブジェクトの位置から該第2オブジェクトの位置に向けた方向との関係を判断し、
前記オブジェクト動作手段は、前記移動入力手段から移動の指示が入力されたときに、該入力された指示に対応した方向と前記位置関係判断手段の判断結果とに応じて異なる動作を前記第1オブジェクトに行わせる
ことを特徴とする請求項1に記載の画像生成装置。
【請求項6】
前記動作入力手段は、前記第1オブジェクトの位置を現時点の位置から予め定められた複数の方向のうちのいずれかの方向に向かって移動させるための指示を入力する移動入力手段を含み、
前記移動入力手段から移動の指示が入力されたときに、前記第1オブジェクトが前記仮想空間において向いている方向を検出する第1オブジェクト方向検出手段をさらに備え、
前記オブジェクト動作手段は、前記位置関係判断手段の判断結果、前記第1オブジェクト方向検出手段により検出された方向、及び前記移動入力手段から移動の指示が入力された指示に対応した方向に応じて異なる動作を前記第1オブジェクトに行わせる
ことを特徴とする請求項1乃至5のいずれか1項に記載の画像生成装置。
【請求項7】
前記オブジェクト動作手段は、前記位置関係判断手段の判断結果、前記第1オブジェクト方向検出手段により検出された方向、及び前記移動入力手段から移動の指示が入力された指示に対応した方向に応じて、前記第1オブジェクトの方向を前記移動入力手段から入力された指示に対応した方向に変化させる
ことを特徴とする請求項6に記載の画像生成装置。
【請求項8】
前記位置関係判断手段は、前記第1オブジェクトと前記第2オブジェクトとの位置関係として、該第1オブジェクトの位置から該第2オブジェクトの位置に向けた方向を判断し、
前記移動入力手段から入力された指示に対応した方向が、前記位置関係判断手段により判断された方向に対して第2特定範囲内にあるかどうかを判定する第1検出方向判定手段と、
前記移動入力手段から入力された指示に対応した方向が前記第1オブジェクト方向検出手段の検出した方向に対して第3特定範囲外にあるかどうかを判定する第2検出方向判定手段とをさらに備え、
前記オブジェクト動作手段は、前記第2検出方向判定手段により前記第3特定範囲外にあると判定されたときにおいて、前記第1検出方向判定手段により前記第2特定範囲内にあると判定されたときには該第2特定範囲外にあると判定されたときよりも高速で、前記第1オブジェクトの方向を前記移動入力手段から入力された指示に対応した方向に変化させる
ことを特徴とする請求項7に記載の画像生成装置。
【請求項9】
前記オブジェクト動作手段は、前記第2検出方向判定手段により前記第3特定範囲外にあると判定されたときにおいて、前記第1検出方向判定手段により前記第2特定範囲内にあると判定されたときに、前記第1オブジェクトの前記仮想空間における位置を移動させることなく、前記第1オブジェクトの方向を前記移動入力手段から入力された指示に対応した方向に変化させる
ことを特徴とする請求項8に記載の画像生成装置。
【請求項10】
前記第1検出方向判定手段は、前記移動入力手段から入力された指示に対応した方向が前記位置関係判断手段により判断された方向に対して実質的に同一方向にあるときに、前記第2特定範囲内にあると判定し、
前記第2検出方向判定手段は、前記移動入力手段から入力された指示に対応した方向が前記第1オブジェクト方向検出手段の検出した方向に対して実質的に同一方向にあるときに、前記第3特定範囲内にあると判定する
ことを特徴とする請求項8または9に記載の画像生成装置。
【請求項11】
仮想空間に存在する第1オブジェクトと第2オブジェクトのうち少なくとも第1オブジェクトを動作させた画像を生成する画像生成装置であって、
操作者の操作に応じて前記第1オブジェクトの位置を現時点の位置から予め定められた複数の方向のうちのいずれかの方向に向かって移動させるための指示を入力する移動入力手段と、
前記移動入力手段から移動の指示が入力されたときに、前記仮想空間において該入力された指示に対応した方向に前記第1オブジェクトを移動させる移動制御手段と、
操作者の操作に応じて2次元平面上の任意の座標位置を入力する座標位置入力手段と、
前記座標位置入力手段から入力された座標位置に基づいて、前記第1オブジェクトと前記第2オブジェクトとの位置関係を設定する位置関係設定手段と、
前記移動制御手段により移動された前記第1オブジェクトの前記仮想空間における位置に対して前記位置関係設定手段により設定された位置関係に応じた前記仮想空間内の位置に、前記第2オブジェクトを配置する第2オブジェクト配置手段と、
前記移動制御手段により移動させられている前記第1オブジェクトと、前記第2オブジェクト配置手段により配置された前記第2オブジェクトとを含む画像を生成する画像生成手段と、
前記画像生成手段の生成した画像を表示手段に表示させる表示制御手段と
を備えることを特徴とする画像生成装置。
【請求項12】
前記位置関係設定手段により設定された位置関係に応じて、前記第1オブジェクトの動作を規定するモーションデータを決定するモーションデータ決定手段をさらに備え、
前記移動制御手段は、前記モーションデータ決定手段によって決定されたモーションデータを用いて、前記第1オブジェクトを移動させる
ことを特徴とする請求項11に記載の画像生成装置。
【請求項13】
前記位置関係設定手段は、前記座標位置入力手段から入力された座標位置と前記2次元平面上に予め設定された特定座標位置との位置関係に基づいて、前記第1オブジェクトと前記第2オブジェクトとの位置関係を設定する
ことを特徴とする請求項11または12に記載の画像生成装置。
【請求項14】
第1オブジェクトを仮想空間において動作させるための指示を入力する動作入力装置と、データを記憶する記憶装置と、画像を表示する表示装置とを備えるコンピュータ装置によって実行され、前記第1オブジェクトと該第1オブジェクトとは別に前記仮想空間に存在する第2オブジェクトを含む画像を生成するため画像生成方法であって、
前記動作入力装置から動作の指示が入力されたときに、前記記憶装置に記憶され、少なくとも前記第1オブジェクトと前記第2オブジェクトの前記仮想空間における位置をデータとして含む動作データに従って、該第1オブジェクトと該第2オブジェクトとの位置関係を判断し、
前記第1オブジェクトと第2オブジェクトとの位置関係の判断結果に応じて異なる動作となるように、前記動作入力装置から入力された指示に対応した動作を少なくとも前記第1オブジェクトに行わせ、該行わせた動作に応じて前記記憶装置に記憶されている動作データを更新し、
前記記憶装置に記憶されている動作データに基づいて前記第1オブジェクトと前記第2オブジェクトとを含む画像を生成し、
前記生成した画像を前記表示装置に表示させる
ことを特徴とする画像生成方法。
【請求項15】
第1オブジェクトを仮想空間において動作させるための指示を入力する動作入力装置と、画像を表示する表示装置とを備えるコンピュータ装置によって実行され、前記第1オブジェクトと該第1オブジェクトとは別に前記仮想空間に存在する第2オブジェクトを含む画像を生成するためのプログラムであって、
前記動作入力装置から動作の指示が入力されたときに、前記第1オブジェクトと前記第2オブジェクトとの位置関係を判断する位置関係判断手段、
前記位置関係判断手段の判断結果に応じて異なる動作となるように、前記動作入力装置から入力された指示に対応した動作を少なくとも前記第1オブジェクトに行わせるオブジェクト動作手段、
前記オブジェクト動作手段により動作させられている第1オブジェクトと、前記第2オブジェクトとを含む画像を生成する画像生成手段、及び、
前記画像生成手段の生成した画像を前記表示装置に表示させる表示制御手段
として前記コンピュータ装置を機能させることを特徴とするプログラム。
【請求項16】
第1オブジェクトを仮想空間において動作させるための指示を入力する動作入力装置と、画像を表示する表示装置とを備えるコンピュータ装置によって実行され、前記第1オブジェクトと該第1オブジェクトとは別に前記仮想空間に存在する第2オブジェクトを含む画像を生成するためのプログラムを記録した記録媒体であって、
前記プログラムは、
前記動作入力装置から動作の指示が入力されたときに、前記第1オブジェクトと前記第2オブジェクトとの位置関係を判断する位置関係判断手段、
前記位置関係判断手段の判断結果に応じて異なる動作となるように、前記動作入力装置から入力された指示に対応した動作を少なくとも前記第1オブジェクトに行わせるオブジェクト動作手段、
前記オブジェクト動作手段により動作させられている第1オブジェクトと、前記第2オブジェクトとを含む画像を生成する画像生成手段、及び、
前記画像生成手段の生成した画像を前記表示装置に表示させる表示制御手段
として前記コンピュータ装置を機能させることを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項17】
第1オブジェクトを仮想空間において移動させるための指示を入力する移動入力装置と、2次元平面上の任意の座標位置を入力する座標位置入力装置と、データを記憶する記憶装置と、画像を表示する表示装置とを備えるコンピュータ装置によって実行され、前記第1オブジェクトと該第1オブジェクトとは別に前記仮想空間に存在する第2オブジェクトを含む画像を生成するため画像生成方法であって、
前記移動入力装置から移動の指示が入力されたときに、前記仮想空間において該入力された指示に対応した方向に前記第1オブジェクトを移動させ、該移動後の位置を前記記憶装置に記憶させ、
前記座標位置入力装置から入力された座標位置に基づいて、前記第1オブジェクトと前記第2オブジェクトとの位置関係を設定し、
前記記憶装置に記憶された前記第1オブジェクトの前記仮想空間における位置に対して前記設定された位置関係に応じた前記仮想空間内の位置を、前記第2オブジェクトの位置として前記記憶装置に記憶させ、
前記記憶装置にそれぞれ記憶されている位置に基づいて前記第1オブジェクトと前記第2オブジェクトとを含む画像を生成し、
前記生成した画像を前記表示装置に表示させる
ことを特徴とする画像生成方法。
【請求項18】
第1オブジェクトを仮想空間において移動させるための指示を入力する移動入力装置と、2次元平面上の任意の座標位置を入力する座標位置入力装置と、画像を表示する表示装置とを備えるコンピュータ装置によって実行され、前記第1オブジェクトと該第1オブジェクトとは別に前記仮想空間に存在する第2オブジェクトを含む画像を生成するためのプログラムであって、
前記移動入力装置から移動の指示が入力されたときに、前記仮想空間において該入力された指示に対応した方向に前記第1オブジェクトを移動させる移動制御手段、
前記座標位置入力装置から入力された座標位置に基づいて、前記第1オブジェクトと前記第2オブジェクトとの位置関係を設定する位置関係設定手段、
前記移動制御手段により移動された前記第1オブジェクトの前記仮想空間における位置に対して前記位置関係設定手段により設定された位置関係に応じた前記仮想空間内の位置に、前記第2オブジェクトを配置する第2オブジェクト配置手段、
前記移動制御手段により移動させられている前記第1オブジェクトと、前記第2オブジェクト配置手段により配置された前記第2オブジェクトとを含む画像を生成する画像生成手段、及び、
前記画像生成手段の生成した画像を前記表示装置に表示させる表示制御手段
として前記コンピュータ装置を機能させることを特徴とするプログラム。
【請求項19】
第1オブジェクトを仮想空間において移動させるための指示を入力する移動入力装置と、2次元平面上の任意の座標位置を入力する座標位置入力装置と、画像を表示する表示装置とを備えるコンピュータ装置によって実行され、前記第1オブジェクトと該第1オブジェクトとは別に前記仮想空間に存在する第2オブジェクトを含む画像を生成するためのプログラムを記録した記録媒体であって、
前記プログラムは、
前記移動入力装置から移動の指示が入力されたときに、前記仮想空間において該入力された指示に対応した方向に前記第1オブジェクトを移動させる移動制御手段、
前記座標位置入力装置から入力された座標位置に基づいて、前記第1オブジェクトと前記第2オブジェクトとの位置関係を設定する位置関係設定手段、
前記移動制御手段により移動された前記第1オブジェクトの前記仮想空間における位置に対して前記位置関係設定手段により設定された位置関係に応じた前記仮想空間内の位置に、前記第2オブジェクトを配置する第2オブジェクト配置手段、
前記移動制御手段により移動させられている前記第1オブジェクトと、前記第2オブジェクト配置手段により配置された前記第2オブジェクトとを含む画像を生成する画像生成手段、及び、
前記画像生成手段の生成した画像を前記表示装置に表示させる表示制御手段
として前記コンピュータ装置を機能させることを特徴とするコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2007−102504(P2007−102504A)
【公開日】平成19年4月19日(2007.4.19)
【国際特許分類】
【出願番号】特願2005−291802(P2005−291802)
【出願日】平成17年10月4日(2005.10.4)
【出願人】(592044813)株式会社スクウェア・エニックス (115)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】