説明

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

【課題】仮想3次元空間に存在するオブジェクトの動作の微妙な違いを比較的少ないデータ量で忠実に再現した画像を生成する。
【解決手段】バスケットボールゲームのキャラクタは、コート上の任意の位置で停止して右手または左手でドリブルする。右手でドリブルしているときに、タッチパネル13上のエリア2、3、5、6、8、9の範囲内がタッチされたときは、右手でドリブルを続ける。エリア2、3、5、6、8、9を形成する長方形の外周に6つの特定座標201〜206が設定されており、それぞれに個別のモーションデータが対応づけられている。エリア3内の位置Tがタッチされたときに、その座標に応じてモーションデータのブレンド対象となる特定座標201、202、204、205が選定され、位置Tからそれぞれへの距離に応じて、各々に対応したモーションデータのブレンド率B(201)、B(202)、B(203)、B(204)が算出される。

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

【図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


【公開番号】特開2009−223904(P2009−223904A)
【公開日】平成21年10月1日(2009.10.1)
【国際特許分類】
【出願番号】特願2009−124292(P2009−124292)
【出願日】平成21年5月22日(2009.5.22)
【分割の表示】特願2005−291801(P2005−291801)の分割
【原出願日】平成17年10月4日(2005.10.4)
【出願人】(308033283)株式会社スクウェア・エニックス (173)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】