説明

プログラム、情報記憶媒体及び画像生成システム

【課題】オブジェクトに対して着地状態にある移動体オブジェクトに対して自然で違和感のない引力制御を行うこと。
【解決手段】 本プログラムは、着地可能オブジェクトに対応して設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向を記憶し、前記移動体オブジェクトと引力設定用オブジェクトのヒットを検出し、前記引力作用方向パラメータとヒット面に設定されている引力方向との方向差を検出し、方向差がある場合には、ヒット面に設定されている引力方向を補正目標値として、当該補正目標値に所定の時間かけて徐徐に近づくように各フレームあたりの補正量を決定し、決定された補正量で引力作用方向パラメータを補正することで、移動体オブジェクトに作用させる引力方向を補正する処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【0002】
従来より、仮想的な3次元空間であるオブジェクト空間内の所与の視点から見える画像を生成する画像生成システムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【0003】
このような画像生成システムでは、プレーヤの仮想現実感の向上のために、よりリアルな画像を生成することが重要な技術的課題になっている。
【0004】
従来のゲームでは例えば宇宙空間内(無引力空間)で移動体オブジェクト(例えばキャラクタ)が移動動作するゲームや、地上面で移動体オブジェクト(例えばキャラクタ)が移動動作するゲームは知られている。
【0005】
例えば前者のみであれば引力を作用させずにプレーヤの入力その他のゲーム要因によって発生する外力による移動制御を行うことで、宇宙空間内(無引力空間)におけるキャラクタが移動動作の制御を行うことができる。
【0006】
また後者のみであれば引力を作用させてプレーヤの入力その他のゲーム要因によって発生する外力による移動制御を行うことで、宇宙空間内(無引力空間)におけるキャラクタが移動動作の制御を行うことができる。
【特許文献1】特許第3467487号
【発明の開示】
【発明が解決しようとする課題】
【0007】
ところが宇宙空間等のゲーム空間にキャラクタとキャラクタが着地可能な宇宙船等が存在し、プレーヤの操作入力によりキャラクタを宇宙空間内でも宇宙船上でも移動動作させることが可能なゲームでは、キャラクタが宇宙空間に浮遊している場合にはキャラクタを無引力状態における移動動作で制御し、キャラクタが宇宙船等に着地状態にあるときはあたかも地上と同様にキャラクタを宇宙船上を移動動作させることが自然な操作感を与える。
【0008】
このようなゲームを実現する場合に、宇宙船に地上と同様に仮想的な引力を設定することが考えられる。例えば地形が広くて平らである設定の場合には単に下向き(例えばy軸方向)の引力を発生させる構成でもよいし、凹凸のある地形が重要である場合には、オブジェクトの各面の垂直方向に引力を設定する構成でもよい。
【0009】
しかし前者ではキャラクタが宇宙船を回り込んで移動するような制御を行うことができない。また後者では宇宙船オブジェクトの各面に対して垂直方向に引力が設定されていると、宇宙船形状により引力方向が大きく変化することになり、キャラクタの姿勢や1人称視点の背景画像等が大きく変化し、見にくくて不自然なゲームとなってしまう。
【0010】
本発明は、このような従来の課題に鑑みてなされたものであり、オブジェクトに対して着地状態にある移動体オブジェクトに対して自然で違和感のない引力制御を行うことが可能な画像生成システム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【0011】
(1)本発明は、
ゲーム空間に移動体オブジェクトと移動体オブジェクトが着地して移動可能な着地可能オブジェクトが配置され、移動体オブジェクトは着地可能オブジェクトに対して非着地状態と着地状態とを相互に移行可能に構成され、非着地状態と着地状態とでは移動体オブジェクトに対し異なる引力制御を行い移動体オブジェクトを移動動作させるゲームの画像を生成するためのプログラムであって、
前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報を記憶する着地可能オブジェクト情報記憶部と、
前記移動体オブジェクトが着地可能オブジェクトに着地状態にある場合には、前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報に基づき各フレームで移動体オブジェクトに作用させる引力作用方向パラメータを決定し、当該引力作用方向パラメータにもとづき移動体オブジェクトに引力を作用させて、移動体オブジェクトの移動及び動作の少なくと一方を演算する移動・動作演算部と、
ゲーム空間を仮想カメラから見た画像を生成する画像生成部としてコンピュータを機能させ、
前記着地可能オブジェクト情報記憶部は、
前記着地可能オブジェクトに対応して設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向を記憶し、
前記移動・動作演算部は、
前記移動体オブジェクトと引力設定用オブジェクトのヒットを検出し、前記引力作用方向パラメータとヒット面に設定されている引力方向との方向差を検出し、方向差がある場合には、ヒット面に設定されている引力方向を補正目標値として、当該補正目標値に所定の時間かけて徐徐に近づくように各フレームあたりの補正量を決定し、決定された補正量で引力作用方向パラメータを補正することで、移動体オブジェクトに作用させる引力方向を補正する処理を行うことを特徴とする。
【0012】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。また本発明は、上記各部を含む画像生成システムに関係する。
【0013】
ゲーム空間とは例えば宇宙空間や海中等であり、移動体オブジェクトとは例えばキャラクタオブジェクト等のように外部入力等によって移動制御されるオブジェクトであり、着地可能オブジェクトとは、例えば惑星や宇宙船、隕石、船等のように移動体オブジェクトが着地(接地)してその面上を移動可能なオブジェクトである。
【0014】
引力とは、2つのオブジェクト間に働く力のことであり、ここではおもに着地可能オブジェクトが移動体オブジェクトに作用させる部分に着目している。本ゲームでは、例えば地球上の物体に働く重力のような力(かかる力を引力と呼ぶ)を着地状態の移動体オブジェクトに作用させてあたかも引力が働いているような動作制御を行う。したがって本発明における引力は、重力や擬似的重力でもよいし、その他着地状態保つ力(例えばスラスター(推力)等移動体オブジェクトが自分自身で力を出している場合の力)でもよい。
【0015】
ここにおいて引力方向とは移動体オブジェクト(例えばキャラクタオブジェクト)に作用させる引力ベクトル(引力の大きさ及び方向)の方向成分である。
【0016】
引力設定用オブジェクトは前記着地可能オブジェクトの形状に基づき設定するようにしてもよい。例えば着地可能オブジェクトの画像生成用のポリゴンモデル(例えば地形モデル等)と共用してもよいし、ヒットチェック用に設定されたポリゴンモデルと共用してもよい。また引力設定用にポリゴンモデルを設定してもよい。この場合に着地可能オブジェクトの形状を簡略化したポリゴンモデルを設定するようにしてもよい。
【0017】
各面(例えばポリゴン面)に設定されている引力方向の向きはポリゴン面の法線ベクトルの逆むきに設定されるようにすることもできる。
【0018】
引力作用方向パラメータに各フレームにおいて着地状態にある移動体オブジェクトに作用させる引力方向を保持し、各フレーム毎に当該引力作用方向パラメータに基づき着地状態にある移動体オブジェクトに引力を作用させるように構成することができる。なお引力作用方向パラメータには、例えば最初に着地したヒット面に設定されている引力方向を初期値として設定するようにしてもよい。
【0019】
引力作用方向パラメータとヒット面に設定されている引力方向との方向差とは例えば方向の角度差でもよい。
【0020】
着地状態では移動体オブジェクトが着地可能オブジェクトの引力の作用を受けており、着地状態にある移動体オブジェクトはプレーヤからの入力情報等により設定される移動ベクトル(速度や加速度や力のベクトル)と、引力方向(引力に対応した加速度や力のベクトル)の基づき移動位置が決定され着地可能オブジェクト上を移動する。
【0021】
また着地状態は移動体オブジェクトと着地可能オブジェクトがヒットしている状態である。移動体オブジェクトと着地可能オブジェクトのヒットは例えば移動体オブジェクトの移動に伴い毎フレーム毎に検出する。そして移動体オブジェクトと着地可能オブジェクトのヒットが所定期間内(所定フレームのあいだ)ない場合には、移動体オブジェクトは着地状態から非着地状態(例えば浮遊状態)に移行したと判定するようにしてもよい。
【0022】
本発明では移動体オブジェクトが着地可能オブジェクトにヒットした場合、ヒット面に設定されている引力方向が引力作用方向パラメータ(現在移動体オブジェクトに作用させている引力方向)と異なる場合でも、直ちに(一瞬で、又は1フレームで)引力作用方向パラメータ(現在移動体オブジェクトに作用させている引力方向)をヒット面に設定されている引力方向に補正するのではなく、ヒット面のポリゴンに設定されている引力方向を補正目標値として、補正目標値に所定の時間かけて徐徐に近づくように移動体オブジェクトに作用させる引力作用方向パラメータを補正する処理を行う。
【0023】
このため、現在移動体オブジェクトに作用させている引力方向(引力作用方向パラメータ)が補正目標値に達するには所定の時間(所定のフレーム)がかかる。従って例えば移動体オブジェクトの移動速度が速い場合には、補正目標値に達する前に移動体オブジェクトと着地可能オブジェクトの次のヒットが検出されるので、次のヒット面に対応した新たな補正目標値が設定され、次のヒット面に対応した新たな補正目標値に所定の時間かけて徐徐に近づくように移動体オブジェクト(例えばキャラクタ)に作用させる引力方向を補正する処理が行われる。このため移動体オブジェクトが早い速度で移動する場合(補正目標値に達するための所定の時間に対して補正が追いつかない程度の速度で移動する場合)には、補正がおいつかず、キャラクタに作用させる引力方向(引力作用方向パラメータ)があまり変化することなく(初期値から余りかわらない)移動体オブジェクトが移動することになる。
【0024】
移動体オブジェクトの姿勢(基本姿勢)や視線方向は引力方向を基準として設定されることが多いので、本発明によれば例えば移動体オブジェクトの移動による姿勢や視線方向のぶれが少なくて済む。
【0025】
例えば1人称視点のゲームではキャラクタの姿勢(向き)に応じて仮想カメラの視線の制御を行うので、引力に対応してキャラクタの姿勢(向き)が変わると視線方向がガクガク変化して不自然であったり、視線方向が急激に変化しゲームにならなかったりする。しかし本発明によれば現在の引力方向と、ヒットしたポリゴン面に設定されている引力方向が異なる場合、所定の期間かけて段階的に(徐徐に)調節するため視線方向が急激に変化しない。
【0026】
また移動体オブジェクトがでこぼこした面を移動する場合でも、でこぼこによる違和感なしに追従することができる。
【0027】
このように本発明によれば着地可能オブジェクトに対して着地状態にある移動体オブジェクトに対して自然で違和感の内引力制御を行うことが可能なプログラム、画像生成システム及び情報記憶媒体を提供することができる。
【0028】
(2)本発明は、
ゲーム空間に移動体オブジェクトと移動体オブジェクトが着地して移動可能な着地可能オブジェクトが配置され、移動体オブジェクトは着地可能オブジェクトに対して非着地状態と着地状態とを相互に移行可能に構成され、非着地状態と着地状態とでは移動体オブジェクトに対し異なる引力制御を行い移動体オブジェクトを移動動作させるゲームの画像を生成するプログラムであって、
入力情報に基づき仮想カメラの視点情報を演算する視点情報演算処理部と、
前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報を記憶する着地可能オブジェクト情報記憶部と、
前記移動体オブジェクトが着地可能オブジェクトに着地状態にある場合には、前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報に基づき各フレームで移動体オブジェクトに作用させる引力作用方向パラメータを決定し、当該引力作用方向パラメータにもとづき移動体オブジェクトに引力を作用させて、移動体オブジェクトの移動及び動作の少なくと一方を演算する移動・動作演算部と、
ゲーム空間を仮想カメラから見た画像を生成する画像生成部としてコンピュータを機能させ、
前記着地可能オブジェクト情報記憶部は、
前記着地可能オブジェクトに対応して設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向を記憶し、
前記視点情報演算部は、
前記移動体オブジェクトと引力設定用オブジェクトのヒットを検出し、前記引力作用方向パラメータとヒット面に設定されている引力方向との方向差を検出し、方向差がある場合には、ヒット面に設定されている引力方向を補正目標値として、当該補正目標値に所定の時間かけて徐徐に近づくように各フレームあたりの補正量を決定し、決定された補正量で視線方向補正することを特徴とする。
【0029】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。また本発明は、上記各部を含む画像生成システムに関係する。
【0030】
(3)本発明は、
ゲーム空間に移動体オブジェクトと移動体オブジェクトが着地して移動可能な着地可能オブジェクトが配置され、移動体オブジェクトは着地可能オブジェクトに対して非着地状態と着地状態とを相互に移行可能に構成され、非着地状態と着地状態とでは移動体オブジェクトに対し異なる引力制御を行い移動体オブジェクトを移動動作させるゲームの画像を生成するプログラムであって、
前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報を記憶する着地可能オブジェクト情報記憶部と、
前記移動体オブジェクトが着地可能オブジェクトに着地状態にある場合には、前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報に基づき各フレームで移動体オブジェクトに作用させる引力作用方向パラメータを決定し、当該引力作用方向パラメータにもとづき移動体オブジェクトに引力を作用させて、移動体オブジェクトの移動及び動作の少なくと一方を演算する移動・動作演算部と、
ゲーム空間を仮想カメラから見た画像を生成する画像生成部としてコンピュータを機能させ、
前記着地可能オブジェクト情報記憶部は、
前記着地可能オブジェクトに対応して設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向を記憶し、
前記移動・動作演算部は、
前記移動体オブジェクトと引力設定用オブジェクトのヒットを検出し、前記引力作用方向パラメータとヒット面に設定されている引力方向との方向差を検出し、方向差がある場合には、ヒット面に設定されている引力方向を補正目標値として、当該補正目標値に所定の時間かけて徐徐に近づくように各フレームあたりの補正量を決定し、決定された補正量で移動体オブジェクトの姿勢を補正する処理を行うことを特徴とする。
【0031】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。また本発明は、上記各部を含む画像生成システムに関係する。
【0032】
移動体オブジェクトの姿勢とは例えば移動体オブジェクトの回転である。
【0033】
(4)本発明は、
移動体オブジェクトと移動体オブジェクトが着地して移動可能な着地可能オブジェクトが配置されたゲーム空間の画像を生成するプログラムであって、
前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報を記憶する着地可能オブジェクト情報記憶部と、
前記移動体オブジェクトが着地可能オブジェクトに着地状態にある場合には、前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報に基づき各フレームで移動体オブジェクトに作用させる引力作用方向パラメータを決定し、当該引力作用方向パラメータにもとづき移動体オブジェクトに引力を作用させて、移動体オブジェクトの移動及び動作の少なくと一方を演算する移動・動作演算部と、
ゲーム空間を仮想カメラから見た画像を生成する画像生成部としてコンピュータを機能させ、
前記着地可能オブジェクト情報記憶部は、
前記着地可能オブジェクトに対応して設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向を記憶し、
前記移動・動作演算部は、
前記移動体オブジェクトと引力設定用オブジェクトのヒットを検出し、前記引力作用方向パラメータとヒット面に設定されている引力方向との方向差を検出し、方向差がある場合には、ヒット面に設定されている引力方向を補正目標値として、当該補正目標値に所定の時間かけて徐徐に近づくように各フレームあたりの補正量を決定し、決定された補正量で引力作用方向パラメータを補正することで、移動体オブジェクトに作用させる引力方向を補正する処理を行うことを特徴とする。
【0034】
(5)また本発明に係るプログラム、情報記憶媒体及び画像生成システムは、
前記移動・動作演算部は、
移動体オブジェクトと着地可能オブジェクトのヒットが所定期間検出されない場合には、着地可能オブジェクトに対する着地状態を解除し、移動体オブジェクトに対し着地可能オブジェクトの引力を作用させる処理を中止することを特徴とする。
【0035】
移動体オブジェクトが着地状態にあるときは、着地状態にある着地可能オブジェクトの引力や移動に関する外部入力情報等に基づき、移動体オブジェクトの位置や速度や移動や動作が演算される。
【0036】
そして各フレーム毎に移動体オブジェクトと着地可能オブジェクトのヒットを検出する。移動体オブジェクトと着地可能オブジェクトのヒットは、例えば移動体オブジェクトと着地可能オブジェクトに対応して設定されている引力設定用オブジェクトとの間で検出するようにしてもよい。
【0037】
着地状態が解除されると、非着地状態(例えば浮遊状態)に移行する。非着地状態(例えば浮遊状態)では、着地可能オブジェクトの引力は作用させず、移動に関する外部入力情報等に基づき、移動体オブジェクトの位置や速度や移動や動作が演算される。
【0038】
本発明によれば例えば移動体オブジェクトが移動している場合、例えば移動体オブジェクトが着地可能オブジェクトを一時的にはなれた場合(移動体オブジェクト(例えばキャラクタ)が着地可能オブジェクトがヒットしないフレームがある場合)でも、それが前のヒットから所定期間内(所定時間内又は所定フレーム内)であれば、着地状態が継続しているとみなされ、着地状態に置ける移動制御が行われる。このため、例えば移動体オブジェクト(例えばキャラクタ)が一時的にジャンプしたり、接地面が平らでないために移動体オブジェクト(例えばキャラクタ)と着地可能オブジェクトを一時的にはなれた場合でも着地状態が継続しているとみなされる。
【0039】
ここにおいて前記所定期間は適宜設定することができる。
【0040】
あまりに短い時間に設定すると、移動体オブジェクトと着地可能オブジェクトが少しでも離れたらすぐ着地状態が解除され、またあまりに長い時間に設定すると例えばプレーヤが着地状態を解除するように移動体オブジェクト(例えばキャラクタ)の移動を入力した場合にプレーヤの意思を反映できない。従って前記所定期間は、プレーヤの操作性に応じて適切な時間に設定することが好ましい。
【0041】
(6)また本発明に係るプログラム、情報記憶媒体及び画像生成システムは、
前記移動・動作演算部は、
非着地状態にある移動体オブジェクトと着地可能オブジェクトのヒットを検出した場合には、引力情報としてヒット面に設定されている引力方向に基づき引力作用方向パラメータに初期設定することを特徴とする。
【0042】
非着地状態にある移動体オブジェクトと着地可能オブジェクトとのヒットの検出は引力設定用オブジェクトと着地可能オブジェクトの画像生成用のオブジェクトを用いて行っても良いし、ヒットチェック用に用意されたオブジェクトをもちいてもよい。
【0043】
本発明によれば移動体オブジェクトが着地可能オブジェクトに着地直後は着地面に設定された引力に一気にきり変わる。このようにすることにより着地直後は違和感のない画像を生成することができる。
【0044】
(7)また本発明に係るプログラム、情報記憶媒体及び画像生成システムは、
前記移動・動作演算部は、
移動体オブジェクトと引力設定用オブジェクトのヒットを検出したときに、前記引力作用方向パラメータとヒット面のポリゴンに設定されている引力方向との方向差を検出し、方向差がある場合には、前記引力作用方向パラメータとヒット面のポリゴンに設定されている引力方向との方向差を予め設定された補正期間に配分して、各フレーム当たりの補正量を求め、求めた補正量で各フレームの前記引力作用方向パラメータを補正して、移動体オブジェクトに作用させることを特徴とする。
【0045】
本発明では補正目標値までの補正期間を規定し、引力作用方向パラメータ(現在移動体オブジェクトに作用させている引力方向)とヒット面のポリゴンに設定されている引力方向との方向差(方向の角度差)を補正期間(フレーム数)に適宜配分することにより、各フレームあたりの補正量を決定する。この時、各フレームあたりの補正量が一定になるように配分してもよいし、各フレームあたりの補正量が異なるように配分してもよい。
【0046】
例えば角度差/所定期間=1フレーム当たり補正角度(β)を求め、βで引力作用方向パラメータを修正するようにしてもよい。
【0047】
(8)また本発明に係るプログラム、情報記憶媒体及び画像生成システムは、
前記着地可能オブジェクト情報記憶部は、
着地可能オブジェクトにに対応して設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向の補正情報を記憶し、
前記移動動・動作演算部は、
引力設定用オブジェクトと移動体オブジェクトのヒットを検出し、ヒット面に設定されている補正情報に基づき、補正目標値にいたるまでの各フレームの補正量を決定し、決定された補正量で各フレームの引力作用方向パラメータを補正することを特徴とする。
【0048】
(9)また本発明に係るプログラム、情報記憶媒体及び画像生成システムは、
前記着地可能オブジェクト情報記憶部は、
着地可能オブジェクトにに対応して設定された引力設定用オブジェクトを構成する面に対応付けてイージーランディング可否情報を記憶し、
前記移動・動作演算部は、
非着地状態にある移動体オブジェクトと、引力設定用オブジェクトのヒットを検出し、ヒット面に設定されているイージーランディング可否情報に基づきイージーランディング可否を判断し、イージーランディング可である場合には、移動体オブジェクトをヒット面に着地状態にする処理を行うことを特徴とする。
【0049】
ここにおいてイージーランディング可とは非着地状態にある移動体オブジェクトと、着地可能オブジェクト(引力設定用オブジェクト)がヒットしたら、移動体オブジェクトが着地可能オブジェクトに着地状態になることを意味する。例えば移動体オブジェクトと着地可能オブジェクトがヒットしても、移動体オブジェクトが所定の姿勢でヒットしないと着地状態にならない設定や、移動体オブジェクトの所定の位置(例えば足)がヒットしないと着地状態にならない設定はイージーランディング可ではない。
【0050】
またイージーランディング不可とは非着地状態にある移動体オブジェクトと着地可能オブジェクト(引力設定用オブジェクト)がヒットしても、移動体オブジェクト(例えばキャラクタ)が着地可能オブジェクトに着地できない(例えば衝突するがはじき返される)場合と、移動体オブジェクトが所定の姿勢や位置でヒットしないと着地したとみなさない場合のいずれかまたは両方を意味する。
【0051】
イージーランディング可否情報は、引力設定用オブジェクトを構成する面がイージーランディング可能な面であることを示す情報でもよいし、イージーランディング不可な面であることを示す情報でもよい。
【0052】
前者の場合、イージーランディング可能であることが設定されている面に移動体オブジェクトがヒットすれば移動体オブジェクトを着地状態に移行させ、それ以外の面にヒットすれば着地状態に移行させない(例えば跳ね返す)処理を行うようにしてもよいし、移動体オブジェクトが所定の姿勢や位置でヒットしないと着地したとみなさない処理を行うようにしてもよい。
【0053】
後者の場合、イージーランディング不可であることが設定されている面にヒットすれば着地状態に移行させない(例えば跳ね返す)処理や移動体オブジェクトが所定の姿勢や位置でヒットしないと着地したとみなさない処理を行うようにし、それ以外の面に移動体オブジェクトがヒットすれば移動体オブジェクトを着地状態に移行させてもよいし、移動体オブジェクトが所定の姿勢や位置でヒットしないと着地したとみなさない処理を行うようにしてもよい。
【0054】
本発明によればイージーランディング可が設定されている面には移動体オブジェクトをヒットさせるだけで、着地させることができるため、移動体オブジェクトの姿勢等を制御する難しい操作なしで移動体オブジェクトを非着地状態から着地状態へ移行させることができる。
【0055】
また設計者側は、例えば着地可能オブジェクトの一部等に着地を許可したくない場所がある場合には、これに対応する面にイージーランディング不可の設定をするだけでよい。
【0056】
(10)また本発明に係るプログラム、情報記憶媒体及び画像生成システムは、
前記着地可能オブジェクト情報記憶部は、
着地可能オブジェクトにに対応して設定された引力設定用オブジェクトを構成する面に対応付けてイージーランディング可否情報を記憶し、
前記移動・動作演算部は、
非着地状態にある移動体オブジェクトと、引力設定用オブジェクトのヒット又はヒット予定を検出し、ヒット又はヒット予定面のポリゴンに設定されているイージーランディング可否情報に基づきイージーランディング可否を判断し、イージーランディング可である場合には、所定の着陸用姿勢変化情報に従って移動体オブジェクトの姿勢を変化させる表示制御を行うことを特徴とする。
【0057】
ここにおいて姿勢とは移動体オブジェクトの回転(基準姿勢からの回転)やモーション等であり、着陸用姿勢変化情報は、着陸予定時刻から着陸時までの姿勢またはその変化量に関する情報である。
【0058】
(11)また本発明に係るプログラム、情報記憶媒体及び画像生成システムは、
前記移動・動作演算部は、
非着地状態にある移動体オブジェクトと、着地可能オブジェクトが所定の位置関係にある場合に、操作部からイージーランディング指定入力を受け付けると、所定の着陸用姿勢変化情報に従って移動体オブジェクトの姿勢を変化させる表示制御を行うことを特徴とする。
【0059】
ここにおいて姿勢とは移動体オブジェクトの回転(基準姿勢からの回転)やモーション等であり、着陸用姿勢変化情報は、着陸予定時刻から着陸時までの姿勢またはその変化量に関する情報である。
【0060】
(12)また本発明に係るプログラム、情報記憶媒体及び画像生成システムは、
前記着地可能オブジェクト情報記憶部は、
着地可能オブジェクトに対して、当該着地可能オブジェクトの形状に応じて設定された引力設定用オブジェクトを構成する面に対応付けてイージーランディング可否情報を記憶し、
前記移動・動作演算部は、
非着地状態にある移動体オブジェクトと、引力設定用オブジェクトのヒット又はヒット予定を検出し、ヒット又はヒット予定面のポリゴンに設定されているイージーランディング可否情報に基づきイージーランディング可否を判断し、イージーランディング可である場合には、所定の形状変化情報に従って移動体オブジェクトの形状を変化させる表示制御を行うことを特徴とする。
【0061】
(13)また本発明に係るプログラム、情報記憶媒体及び画像生成システムは、
前記移動・動作演算部は、
非着地状態にある移動体オブジェクトと、着地可能オブジェクトが所定の位置関係にある場合に、操作部からイージーランディング指定入力を受け付けると、所定の形状変化情報に従って移動体オブジェクトの形状を変化させる表示制御を行うことを特徴とする。
【0062】
(14)また本発明に係るプログラム、情報記憶媒体及び画像生成システムは、
入力情報及び移動体オブジェクトの位置情報の少なくとも一方に基づき仮想カメラの視点情報を演算する視点情報演算処理部を含み、
前記視点情報演算処理部は、
前記引力作用方向パラメータに基づき、視点情報を設定又は補正又は変更する処理を行うことを特徴とする。
【0063】
仮想カメラの視点情報とは仮想カメラの視点位置、視線方向(仮想カメラの向きや回転)の少なくとも1つを含む。
【0064】
例えば引力方向と直交する方向に基づき仮想カメラの視線方向を設定するようにしてもよい。
【0065】
(15)また本発明に係るプログラム、情報記憶媒体及び画像生成システムは、
入力情報及び移動体オブジェクトの位置情報の少なくとも一方に基づき仮想カメラの視点情報を演算する視点情報演算処理部を含み、
前記視点情報演算処理部は、
移動体オブジェクトが着地状態にあるか非着地状態にあるかに基づき、視点情報を設定又は補正又は変更する処理を行うことを特徴とする。
【0066】
例えば引力方向と直交する方向に基づき仮想カメラの視線方向を設定するようにしてもよい。
【0067】
(16)また本発明に係るプログラム、情報記憶媒体及び画像生成システムは、
前記移動動・動作演算部は、
前記引力作用方向パラメータに基づき、移動体オブジェクトの姿勢の設定又は調整又は変更する処理を行うことを特徴とする。
【0068】
例えば引力方向と略同方向に移動体オブジェクトの姿勢(回転、角度、向き)を設定するようにしてもよい。
【0069】
(17)また本発明に係るプログラム、情報記憶媒体及び画像生成システムは、
前記移動・動作演算部は、
移動体オブジェクトが着地状態にあるか非着地状態にあるかに基づき、モーションデータを切り替える処理を行うことを特徴とする。
【発明を実施するための最良の形態】
【0070】
以下、本発明の好適な実施形態について図面を用いて説明する。
【0071】
1.構成
図1に、本実施形態のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部100を含めばよく(或いは処理部100と記憶部170、或いは処理部100と記憶部170と情報記憶媒体180を含めばよく)、それ以外のブロック(例えば操作部160、表示部190、音出力部192、携帯型情報記憶装置194、通信部196)については、任意の構成要素とすることができる。
【0072】
ここで処理部100は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ(CPU、DSP等)、或いはASIC(ゲートアレイ等)などのハードウェアや、所与のプログラム(ゲームプログラム)により実現できる。
【0073】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筺体などのハードウェアにより実現できる。
【0074】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
【0075】
記憶部は着地可能オブジェクト情報記憶部178を含む。
【0076】
着地可能オブジェクト情報記憶部178は、前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報として前記着地可能オブジェクトに対応して設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向を記憶する。
【0077】
また着地可能オブジェクト情報記憶部178は、着地可能オブジェクトに対して、当該着地可能オブジェクトの形状に応じて設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向の補正情報を記憶するようにしてもよい。
【0078】
また着地可能オブジェクト情報記憶部178は、着地可能オブジェクトに対して、当該着地可能オブジェクトの形状に応じて設定された引力設定用オブジェクトを構成する面に対応付けてイージーランディング可否情報を記憶するようにしてもよい。
【0079】
情報記憶媒体(コンピュータにより使用可能な記憶媒体)180は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納される情報に基づいて本発明(本実施形態)の種々の処理を行う。即ち情報記憶媒体180には、本発明(本実施形態)の手段(特に処理部100に含まれるブロック)を実行するための情報(プログラム或いはプログラム及びデータ)が格納される。
【0080】
なお、情報記憶媒体180に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部170に転送されることになる。また情報記憶媒体180に記憶される情報は、本発明の処理を行うためのプログラムコード、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも1つを含むものである。
【0081】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0082】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【0083】
携帯型情報記憶装置194は、プレーヤの個人データやセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【0084】
通信部196は、外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0085】
なお本発明(本実施形態)の手段を実行するためのプログラム或いはデータは、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180に配信するようにしてもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含まれる。
【0086】
処理部100は、ゲーム処理部110、画像処理部140、音処理部150を含む。
【0087】
ここでゲーム処理部110は、コイン(代価)の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクトの位置や回転角度(X、Y又はZ軸回り回転角度)を求める処理、オブジェクトを動作させる処理(モーション処理)、視点位置や視線角度(視線方向)を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果(成果、成績)を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などの種々のゲーム処理を、操作部160からの操作データや、携帯型情報記憶装置194からの個人データ、保存データや、ゲームプログラムなどに基づいて行う。
【0088】
画像生成部140は、ゲーム処理部110からの指示等にしたがって、各種の画像処理を行うものである。また、音生成部150は、ゲーム処理部110からの指示等にしたがって、各種の音処理を行うものである。
【0089】
なお画像生成部140、音生成部150の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0090】
ゲーム処理部110は、移動・動作演算部112、視点情報演算部114、オブジェクト表示制御処理部116を含む。
【0091】
移動・動作演算部112は、キャラクタ、ボールなどのオブジェクトの移動情報(位置データ、回転角度データ)や動作情報(オブジェクトの各パーツの位置データ、回転角度データ)を演算するものであり、例えば、操作部160によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトを移動させたり動作させたりする処理を行う。
【0092】
より具体的には、移動・動作演算部112は、オブジェクトの位置や回転角度を例えば1フレーム(1/60秒)毎に求める処理を行う。例えば(k−1)フレームでのオブジェクトの位置をPMk-1、速度をVMk-1、加速度をAMk-1、1フレームの時間を△tとする。するとkフレームでのオブジェクトの位置PMk、速度VMkは例えば下式(1)、(2)のように求められる。
【0093】
PMk=PMk-1+VMk-1×△t (1)
VMk=VMk-1+AMk-1×△t (2)
また移動・動作演算部112は、移動体オブジェクトが着地可能オブジェクトに着地状態にある場合には、前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報に基づき各フレームで移動体オブジェクトに作用させる引力作用方向パラメータを決定し、当該引力作用方向パラメータにもとづき移動体オブジェクトに引力を作用させて、移動体オブジェクトの移動及び動作の少なくと一方を演算する。そして前記移動体オブジェクトと引力設定用オブジェクトのヒットを検出し、前記引力作用方向パラメータとヒット面に設定されている引力方向との方向差を検出し、方向差がある場合には、ヒット面に設定されている引力方向を補正目標値として、当該補正目標値に所定の時間かけて徐徐に近づくように各フレームあたりの補正量を決定し、決定された補正量で引力作用方向パラメータを補正することで、移動体オブジェクトに作用させる引力方向を補正する処理を行う。
【0094】
また移動・動作演算部112は、移動体オブジェクトと着地可能オブジェクトのヒットが所定期間検出されない場合には、着地可能オブジェクトに対する着地状態を解除し、移動体オブジェクトに対し着地可能オブジェクトの引力を作用させる処理を中止するようにしてもよい。
【0095】
また移動・動作演算部112は、非着地状態にある移動体オブジェクトと着地可能オブジェクトのヒットを検出した場合には、引力情報としてヒット面に設定されている引力方向を引力作用方向パラメータに初期設定するようにしてもよい。
【0096】
また移動・動作演算部112は、移動体オブジェクトと引力設定用オブジェクトのヒットを検出したときに、前記引力作用方向パラメータとヒット面のポリゴンに設定されている引力方向との方向差を検出し、方向差がある場合には、前記引力作用方向パラメータとヒット面のポリゴンに設定されている引力方向との方向差を予め設定された補正期間に配分して、各フレーム当たりの補正量を求め、求めた補正量で各フレームの前記引力作用方向パラメータを補正して、移動体オブジェクトに作用させるようにしてもよい。
【0097】
また移動・動作演算部112は、引力設定用オブジェクトと移動体オブジェクトのヒットを検出し、ヒット面に設定されている補正情報に基づき、補正目標値にいたるまでの各フレームの補正量を決定し、決定された補正量で各フレームの引力作用方向パラメータを補正するようにしてもよい。
【0098】
また移動・動作演算部112は、非着地状態にある移動体オブジェクトと、引力設定用オブジェクトのヒットを検出し、ヒット面に設定されているイージーランディング可否情報に基づきイージーランディング可否を判断し、イージーランディング可である場合には、移動体オブジェクトをヒット面に着地状態にする処理を行うようにしてもよい。
【0099】
また前記移動・動作演算部112は、前記引力作用方向パラメータに基づき、キャラクタの姿勢の設定又は調整又は変更する処理を行うようにしてもよい。
【0100】
前記移動・動作演算部112は、移動体オブジェクトが着地状態にあるか非着地状態にあるかに基づき、モーションデータを切り替える処理を行うようにしてもよい。
【0101】
視点情報演算部114は、入力情報に基づき仮想カメラの視点位置又はキャラクタの位置を演算する。
【0102】
また前記引力作用方向パラメータに基づき、視点情報を設定又は補正又は変更する処理を行うようにしてもよい。
【0103】
また視点情報演算部114は、移動体オブジェクトが着地状態にあるか非着地状態にあるかに基づき、視点情報を設定又は補正又は変更する処理を行うようにしてもよい。
【0104】
オブジェクト表示制御処理部116は、非着地状態にある移動体オブジェクトと、引力設定用オブジェクトのヒット又はヒット予定を検出し、ヒット又はヒット予定面のポリゴンに設定されているイージーランディング可否情報に基づきイージーランディング可否を判断し、イージーランディング可である場合には、所定の着陸用姿勢変化情報に従って移動体オブジェクトの姿勢を変化させる表示制御を行うようにしてもよい。
【0105】
またオブジェクト表示制御処理部116は、非着地状態にある移動体オブジェクトと、着地可能オブジェクトが所定の位置関係にある場合に、操作部からイージーランディング指定入力を受け付けると、所定の着陸用姿勢変化情報に従って移動体オブジェクトの姿勢を変化させる表示制御を行うようにしてもよい。
【0106】
またオブジェクト表示制御処理部116は、非着地状態にある移動体オブジェクトと、引力設定用オブジェクトのヒット又はヒット予定を検出し、ヒット又はヒット予定面のポリゴンに設定されているイージーランディング可否情報に基づきイージーランディング可否を判断し、イージーランディング可である場合には、所定の形状変化情報に従って移動体オブジェクトの形状を変化させる表示制御を行うようにしてもよい。
【0107】
またオブジェクト表示制御処理部116は、非着地状態にある移動体オブジェクトと、着地可能オブジェクトが所定の位置関係にある場合に、操作部からイージーランディング指定入力を受け付けると、所定の形状変化情報に従って移動体オブジェクトの形状を変化させる表示制御を行うようにしてもよい。
【0108】
画像生成部140は、ジオメトリ処理部(3次元座標演算部)142、シザリング処理部144、描画部(レンダリング部)146を含む。
【0109】
ここで、ジオメトリ処理部142は、座標変換、クリッピング処理、透視変換、或いは光源計算などの種々のジオメトリ処理(3次元座標演算)を行う。そして、本実施形態では、ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点データ(頂点位置、頂点テクスチャ座標、輝度データ)や法線ベクトル等)は、記憶部170のメインメモリ172に格納されて保存される。
【0110】
ジオメトリ処理部142は、3次元空間に配置されたオブジェクトをスクリーン座標系に座標変換を行い、オブジェクトを構成するプリミティブの頂点情報の集合である頂点データセットを生成する。
【0111】
描画部146は、ジオメトリ処理後(透視変換後)の頂点データセット(プリミティブ)の頂点情報を受け取り、テクチャマッピングやデプスキューング処理やピクセルテストやアンチウェイリアシングやαブレンディング処理等をおこない、頂点データセット単位でオブジェクトをフレームバッファに描画する処理を行う。
【0112】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0113】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末を用いて生成してもよい。
【0114】
2.本実施の形態の特徴と動作
次に本実施の形態の特徴と動作について説明する。
【0115】
図2(A)(B)は、本実施の形態の特徴について説明するための図である。
【0116】
本実施の形態のゲーム空間(例えば宇宙空間等)にキャラクタオブジェクト(移動体オブジェクトの一例である)210と着地可能オブジェクト(例えば惑星や宇宙船、隕石、船等)220がオブジェクトが配置され、移動体オブジェクトの移動により、図2(B)に示すようなキャラクタオブジェクト210が着地可能オブジェクト220に着地してない状態と、図2(A)に示すようなキャラクタオブジェクト210が着地可能オブジェクト220に着地している状態とを相互に移行可能に構成されている。そして図2(B)に示すような着地状態と図2(A)に示すような非着地状態(浮遊状態)とでは移動体オブジェクト210にたいし異なる引力制御を行い移動体オブジェクト210を移動動作させる。
【0117】
図2(B)に示すような着地状態にある移動体オブジェクト210はプレーヤからの入力情報等により設定される移動ベクトルFと、着地可能オブジェクトに設定された引力ベクトルgに基づき着地可能オブジェクト上の移動動作が制御される。
【0118】
これに対し図2(A)に示すような非着地状態(浮遊状態)にある移動体オブジェクト210はプレーヤからの入力情報等により設定される移動ベクトルFに基づきゲーム空間(例えば宇宙空間等であり着地可能オブジェクト上以外)内における移動動作が制御される。
【0119】
引力gとは、2つのオブジェクト間に働く力のことであり、ここではおもに着地可能オブジェクトが移動体オブジェクトに作用させる部分に着目している。本ゲームでは、例えば地球上の物体に働く重力のような力(かかる力を引力と呼ぶ)を着地状態の移動体オブジェクトに作用させてあたかも引力が働いているような動作制御を行う。したがって本発明における引力は、重力や擬似的重力でもよいし、その他着地状態保つ力(例えばスラスター(推力)等移動体オブジェクトが自分自身で力を出している場合の力)でもよい。
【0120】
ここにおいて引力方向とは移動体オブジェクト(例えばキャラクタオブジェクト)に作用させる引力ベクトルg(引力の大きさ及び方向)の方向成分である。
【0121】
なお着地可能オブジェクト220は静止していてもよいし、移動していてもよい。移動している着地可能オブジェクト220に移動体オブジェクト210が着地状態にある場合には、移動体オブジェクト210は引力gとともに着地可能オブジェクト220に働く移動ベクトルが働くことになる。これにより着地状態にあり、自ら移動していない移動体オブジェクト210は着地可能オブジェクト220に対して、相対的に静止していることになる。
【0122】
2−1 着地可能オブジェクト情報
図3(A)(B)は、着地可能オブジェクト情報記憶部に記憶されている情報について説明するための図である。また図4は引力設定用オブジェクトの各面に設定されている移動体オブジェクトに作用させる引力方向についてしめした図である。
【0123】
図3(A)は当該着地可能オブジェクトの形状に応じて設定された引力設定用オブジェクトの一例である。引力設定用オブジェクト250は複数のポリゴンP1,P2、・・・からなるポリゴンオブジェクトとして構成されている。なお引力設定用オブジェクト250は、例えば着地可能オブジェクトの画像生成用のモデルオブジェクトと共用してもよいし、着地可能オブジェクトのヒットチェック用のヒットチェック用オブジェクトと共用してもよいし、画像生成用のモデルを簡易化して専用の引力設定用オブジェクトを設定してもよい。
【0124】
図3(B)は引力設定用オブジェクトの各面に対応付けて記憶されている各種情報について説明するための図である。
【0125】
本実施の形態の着地可能オブジェクト情報記憶部には、引力設定用オブジェクト250を構成する各面(ここではポリゴン面)P1、P2、・・・に対応付けて移動体オブジェクトに作用させる引力方向が設定された引力情報を含む各種情報が格納されている。例えば図3(B)に示すように、各ポリゴン310に対応づけて、ポリゴンの頂点情報320、ポリゴンの引力方向情報(法線情報)330、イージーランディング可否情報340、引力作用方向補正パターン情報350等を含む。
【0126】
頂点情報320にはポリゴンを構成する頂点座標データが格納され、例えばhヒットチェック演算等に使用される。
【0127】
ポリゴンの引力方向情報(法線情報)330は、ポリゴン面にヒットした移動体オブジェクトに作用させる引力方向に関する情報である。ここで引力方向は、図4に示すように各面310の法線の向きと反対方向に設定することもできる。このような場合にはポリゴンの法線情報を引力方向情報として使用することができる。
【0128】
なお移動体オブジェクトに作用させる引力方向に関する情報としては、ポリゴンにポリゴン引力方向のみ設定されていてもよいし(例えば大きさが各面で同じ場合には各面毎に設定されていなくても良い)、方向と大きさを含むベクトル情報として設定されていてもよい。
【0129】
イージーランディング可否情報340は、ポリゴン面がイージーランディング可能な面であることを示す情報でもよいし、ポリゴン面がイージーランディング不可な面であることを示す情報でもよい。
【0130】
イージーランディング可能とは非着地状態にあるキャラクタオブジェクトと着地可能オブジェクトがヒットしたら、キャラクタオブジェクトが着地可能オブジェクトに着地状態になることを意味する。
【0131】
またイージーランディング不可とは非着地状態にあるキャラクタオブジェクトと着地可能オブジェクトがヒットしても、キャラクタオブジェクトが着地可能オブジェクトに着地できない(例えば衝突するがはじき返される)場合と、移動体オブジェクト(例えばキャラクタ)が所定の姿勢や位置でヒットしないと着地したとみなさない場合のいずれかまたは両方を意味する。
【0132】
図3(A)(B)では、例えばポリゴンP1のイージーランディング可否情報340には’1’が設定されており「イージーランディング可」であることを示している。したがってキャラクタオブジェクトが着地可能オブジェクトのポリゴンP1とヒットすると(どのような姿勢や位置でヒットしても)、キャラクタオブジェクトは着地可能オブジェクトに着地状態となる。
【0133】
また例えばポリゴンP2のイージーランディング可否情報340には’0’が設定されており「イージーランディング不可」であることを示している。したがってキャラクタオブジェクトが着地可能オブジェクトのポリゴンP2とヒットしても(本実施の形態ではどのような姿勢や位置でヒットしても)、キャラクタオブジェクトは着地可能オブジェクトに着地状態とならず、例えば跳ね返されるような移動制御が行われる。
【0134】
引力作用方向補正パターン情報350は、当該ポリゴン面にヒットしたキャラクタオブジェクトに作用させる引力方向の補正パターンが設定されている。例えばパターン識別番号が格納され、各パターン識別番号に対応付けられた補正パターンがプログラム化されていてもよいし、テーブル化されててもよい。
【0135】
補正パターンは例えば補正目標値に達するまでの各フレームにどのような配分で補正量を割り振るかについてのパターンが記憶されている。このようにするとヒット面に応じて適切な補正パターンでキャラクタに作用させる引力作用方向を修正することができる。
【0136】
なお引力設定用オブジェクトの各面に対応付けて設定可能な情報は上記に限られない。例えば着陸の可否の情報を設定しておくようにしてもよい。着陸可が設定された面は、着陸可能であることを意味し、着陸不可が設定された面は着陸不可であることを意味する。着陸可能であるとは予めゲームでさめられた方式に従って着陸可能という意味である。従ってイージーランディング可能で着陸可能な面であれば当該面にヒットすれば着陸できる。またイージーランディング不可で着陸可能な面であればであれば、ゲームで定められた所定の姿勢や位置で当該面にヒットすれば着陸できる。また着陸不可である場合どのようにしても着陸できない。
【0137】
従ってゲーム上着陸されては困る場所の面には着陸不可の設定をしておくだけでよいので設計が楽である。
【0138】
2−2 引力作用方向補正処理
図5は本実施の形態の引力作用方向補正処理について説明するための図である。
【0139】
時刻(フレーム)t0において非着地状態(浮遊状態)にあったキャラクタオブジェクト210−0が、時刻(フレーム)t1において着地可能オブジェクト220のポリゴン面P1に着地したとする。
【0140】
時刻(フレーム)t0においてはキャラクタオブジェクト210−0は非着地状態(浮遊状態)であるため、他のオブジェクトからの引力は作用せず、入力情報その他のゲーム要因に基づく移動ベクトルFt0が作用し、キャラクタオブジェクト210−0を移動させる。
【0141】
時刻(フレーム)t1においてはキャラクタオブジェクト210−1が、時刻着地可能オブジェクト220のポリゴン面P1に着地したため、キャラクタオブジェクトは210−1は着地状態に移行し、着地可能オブジェクト220からの引力の作用を受ける。
【0142】
ポリゴン面P1には、引力ベクトルg1(引力方向情報の一例)が設定されており、着地直後のキャラクタオブジェクト210−1に作用する引力作用方向Gt1(時刻t1に置ける引力作用方向パラメータ)として、この引力ベクトルg1が初期設定される。
【0143】
そして時刻t1において入力情報その他のゲーム要因に基づく移動ベクトルFt1と引力作用方向Gt1(時刻t1に置ける引力作用方向パラメータ)の合力Bt1の方向にキャラクタオブジェクト210−1を移動させる力が働く。
【0144】
この合力Bt1によってキャラクタオブジェクト210−1が移動し、時刻(フレーム)t2においてポリゴン面S2にヒットしたとする。ポリゴン面P2には、引力ベクトルg2(引力方向情報の一例)が設定されている。キャラクタオブジェクト210−2に現在作用させている引力作用方向Gt1(時刻t2における引力作用方向パラメータ)とヒット面P2に設定されている引力方向g2との方向差(角度差α)を検出し、方向差(角度差α)がある場合には、ヒット面S2に設定されている引力方向g2を補正目標値として、当該補正目標値に所定の時間かけて徐徐に近づくように移動体オブジェクトに作用させる引力方向を補正する処理を行う。
【0145】
例えばnフレームかけて補正目標値に達するように補正する場合には各フレーム毎の補正量をα/nと設定し、以降のフレームにおいて次のヒットが検出されるまで、キャラクタオブジェクトに作用させる引力作用方向(引力作用方向パラメータ)をα/nずつ補正目標値にちかづくように補正するようにしてもよい。
【0146】
このように引力作用方向パラメータに各フレームにおいて着地状態にある移動体オブジェクトに作用させる引力方向を保持し、各フレーム毎に当該引力作用方向パラメータに基づき着地状態にある移動体オブジェクトに引力を作用させるように構成することができる。なお引力作用方向パラメータには、例えば最初に着地したヒット面に設定されている引力方向を初期値として設定するようにしてもよい。
【0147】
引力作用方向パラメータとヒット面に設定されている引力方向との方向差とは例えば方向の角度差でもよい。
【0148】
着地状態では移動体オブジェクトが着地可能オブジェクトの引力の作用を受けており、着地状態にある移動体オブジェクトはプレーヤからの入力情報等により設定される移動ベクトル(速度や加速度や力のベクトル)と、引力方向(引力に対応した加速度や力のベクトル)の基づき移動位置が決定され着地可能オブジェクト上を移動する。
【0149】
また着地状態は移動体オブジェクトと着地可能オブジェクトがヒットしている状態である。移動体オブジェクトと着地可能オブジェクトのヒットは例えば移動体オブジェクトの移動に伴い毎フレーム毎に検出する。そして移動体オブジェクトと着地可能オブジェクトのヒットが所定期間内(所定フレームのあいだ)ない場合には、移動体オブジェクトは着地状態から非着地状態(例えば浮遊状態)に移行したと判定するようにしてもよい。
【0150】
本発明では移動体オブジェクトが着地可能オブジェクトにヒットした場合、ヒット面に設定されている引力方向が引力作用方向パラメータ(現在移動体オブジェクトに作用させている引力方向)と異なる場合でも、直ちに(一瞬で、又は1フレームで)引力作用方向パラメータ(現在移動体オブジェクトに作用させている引力方向)をヒット面に設定されている引力方向に補正するのではなく、ヒット面のポリゴンに設定されている引力方向を補正目標値として、補正目標値に所定の時間かけて徐徐に近づくように移動体オブジェクトに作用させる引力作用方向パラメータを補正する処理を行う。
【0151】
現在移動体オブジェクトに作用させている引力方向(引力作用方向パラメータ)が補正目標値に達するには所定の時間(所定のフレーム)がかかる。従って例えば移動体オブジェクトの移動速度が速い場合には、補正目標値に達する前に移動体オブジェクトと着地可能オブジェクトの次のヒットが検出されるので、次のヒット面に対応した新たな補正目標値が設定され、次のヒット面に対応した新たな補正目標値に所定の時間かけて徐徐に近づくように移動体オブジェクト(例えばキャラクタ)に作用させる引力方向を補正する処理が行われる。このため移動体オブジェクトが早い速度で移動する場合(補正目標値に達するための所定の時間に対して補正が追いつかない程度の速度で移動する場合)には、補正がおいつかず、キャラクタに作用させる引力方向(引力作用方向パラメータ)があまり変化することなく(初期値から余りかわらない)移動体オブジェクトが移動することになる(図8(A)参照)。
【0152】
移動体オブジェクトの姿勢(基本姿勢)や視線方向は引力方向を基準として設定されることが多いので、本発明によれば例えば移動体オブジェクトの移動による姿勢や視線方向のぶれが少なくて済む。
【0153】
例えば1人称視点のゲームではキャラクタの姿勢(向き)に応じて仮想カメラの視線の制御を行うので、引力に対応してキャラクタの姿勢(向き)が変わると視線方向がガクガク変化して不自然であったり、視線方向が急激に変化しゲームにならなかったりする。しかし本発明によれば現在の引力方向と、ヒットしたポリゴン面に設定されている引力方向が異なる場合、所定の期間かけて段階的に(徐徐に)調節するため視線方向が急激に変化しない。
【0154】
また移動体オブジェクトがでこぼこした面を移動する場合でも、でこぼこによる違和感なしに追従することができる。
【0155】
図6は本実施の形態の補正処理について説明するためのフローチャート図である。
【0156】
まず、現在の引力作用方向に移動量を発生させ、移動ベクトル(引力以外の要素によって生じた移動ベクトル)に加算する(ステップS10)。
【0157】
つぎに加算された移動ベクトル方向について着地可能オブジェクトとのヒットチェックを行う(ステップS20)。
【0158】
ヒットしない場合にはステップS60にいき、ヒットした場合には、ヒット面に設定されている引力方向を補正目標値に設定し、1フレームあたりの補正量を求める(ステップS30、S40)。
【0159】
次にヒット面に設定されている引力方向をキャラクタオブジェクトの新たな姿勢目標とする(ステップS50)。
【0160】
そして決定された補正量に基づき、引力作用方向を補正する(ステップS60)。
【0161】
また現在のキャラクタオブジェクトの姿勢を補正目標値にちかづけるように補正する(ステップS70)。
【0162】
図7(A)(B)は、引力作用方向の補正値について説明するための図である。
【0163】
図7(A)(B)は、ヒット時の引力作用方向とヒット面に設定されている引力方向(補正目標値)の角度差410と以降次のヒットが検出されるまでの各フレームの補正量420の関係を示した図である。図7(A)にしめすように角度差410に関わらず毎フレーム一定の補正量で補正するようにしてもよい。また図7(A)にしめすように角度差410が大きくなると毎フレームあたりの補正量がおおきくなるようにしてもよい。なお角度差410と毎フレームあたりの補正量が比例するようにしてもよい(角度差にかかわらず補正時間をおなじにする構成と同義である)。
【0164】
なお上記では毎フレームあたりの補正量が同じ又は、角度差が同じであれば毎フレームあたりの補正量がおなじである場合を例に取り説明したが是に限られない。たとえば、補正開始時からの経過時間にしたがって補正量が変化するようにしてもよい(補正量を各フレームで均一に設定しないようにしてもよい)。
【0165】
図8(A)(B)は、本実施の形態の補正処理の効果について説明するための図である。
【0166】
図8(A)は移動速度が速い場合の各フレームf1,f2,f3,・・・におけるキャラクタオブジェクトの姿勢を示した図であり、図8(B)は移動速度が遅い場合の各フレームf1,f2,f3,・・・に置けるキャラクタオブジェクトの姿勢を示した図である。
【0167】
本実施の形態では、キャラクタオブジェクトに作用している引力方向に基づき、キャラクタの姿勢Sの設定又は調整又は変更する処理を行う。具体的にはキャラクタの基本姿勢を現在キャラクタに作用している引力方向と合わせることにより、違和感のない自然な画像を生成することができる。
【0168】
また本実施の形態ではキャラクタオブジェクト210に作用している引力方向に基づき、視点情報(仮想カメラの位置、視線方向K、画角等)を設定又は調整又は変更する処理を行う。具体的には視線方向Kをキャラクタオブジェクト210に作用している引力方向に直交する方向に設定するようにしてもよい。
【0169】
図8(A)に示すようにキャラクタオブジェクト210の移動速度が速い場合には、補正目標値への補正が行われるよりも早く次のヒットが検出されるため、ほとんど補正されないまま(例えば初期設定された引力方向のまま)移動することになる。ここでヒット面(着地面)P1、P2、P3、P4にそれぞれ引力方向g1,g2,g3,g4が設定されており、引力方向g1,g2,g3,g4はそれぞれかなりの角度差を有している。
【0170】
しかしキャラクタオブジェクト210の移動速度が速い場合にはかかる引力方向の変化の影響をほとんど受けることなくキャラクタオブジェクト210を移動させることができる。
【0171】
同時にキャラクタの姿勢や視線方向もほとんど変化することなくキャラクタオブジェクト210を移動させることができる。従ってゲーム画面のぶれ等のなく、プレーヤの操作感覚も違和感なく着地可能用オブジェクト上でキャラクタオブジェクトを移動させることができる。このように早い移動の場合には地面の凹凸の影響をうけないのはプレーヤの操作感覚に一致しており違和感なく走行を行わせることができる。
【0172】
また図8(B)に示すようにキャラクタオブジェクト210の移動速度が遅い場合には、補正目標値への補正がある程度行われた後に次のヒットが検出されるため、ある程度補正されながら移動することになる。ここでヒット面(着地面)P1、P2、P3、P4にそれぞれ引力方向g1,g2,g3,g4が設定されており、引力方向g1,g2,g3,g4はそれぞれかなりの角度差を有している。
【0173】
従ってキャラクタオブジェクト210の移動速度が遅い場合にはかかる引力方向の変化の影響を受けながらキャラクタオブジェクト210を移動させることができる。このように遅い移動の場合には地面の凹凸の影響をうけるのはプレーヤの操作感覚に一致しており違和感なく走行を行わせることができる
同時にキャラクタの姿勢や視線方向も変化しながらキャラクタオブジェクト210を移動させることができる。従ってあるていどゲーム画面のぶれが生じるがそれは地面の凹凸を反映した姿勢や視線に変化として、プレーヤの操作感覚も違和感なく着地可能用オブジェクト上でキャラクタオブジェクトを移動させることができる。
【0174】
2−3 着地状態非着地(状態浮遊状態)切り替え制御処理
図2(B)にしめすように移動体オブジェクト210が着地状態にあるときは、例えば図5で説明したように着地状態にある着地可能オブジェクト220の引力や移動に関する外部入力情報等に基づき、移動体オブジェクトの位置や速度や移動や動作が演算される。
【0175】
そして各フレーム毎に移動体オブジェクトと着地可能オブジェクトのヒットを検出する。移動体オブジェクトと着地可能オブジェクトのヒットは、例えば移動体オブジェクトと着地可能オブジェクトに対応して設定されている引力設定用オブジェクトとの間で検出するようにしてもよい。
【0176】
着地状態が解除されると、図2(A)にしめすように非着地状態(例えば浮遊状態)に移行する。非着地状態(例えば浮遊状態)では、図5で説明したように着地可能オブジェクトの引力は作用させず、移動に関する外部入力情報等に基づき、移動体オブジェクトの位置や速度や移動や動作が演算される。
【0177】
本発明によれば例えば移動体オブジェクトが移動している場合、例えば移動体オブジェクトが着地可能オブジェクトを一時的にはなれた場合(移動体オブジェクト(例えばキャラクタ)が着地可能オブジェクトがヒットしないフレームがある場合)でも、それが前のヒットから所定期間内(所定時間内又は所定フレーム内)であれば、着地状態が継続しているとみなされ、着地状態に置ける移動制御が行われる。このため、例えば移動体オブジェクト(例えばキャラクタ)が一時的にジャンプしたり、接地面が平らでないために移動体オブジェクト(例えばキャラクタ)と着地可能オブジェクトを一時的にはなれた場合でも着地状態が継続しているとみなされる。
【0178】
ここにおいて前記所定期間は適宜設定することができる。
【0179】
あまりに短い時間に設定すると、移動体オブジェクトと着地可能オブジェクトが少しでも離れたらすぐ着地状態が解除され、またあまりに長い時間に設定すると例えばプレーヤが着地状態を解除するように移動体オブジェクト(例えばキャラクタ)の移動を入力した場合に反映さない。従って前記所定期間は、プレーヤの操作性に応じて適切な時間に設定することが好ましい。
【0180】
図9は本実施の形態の着地状態非着地(状態浮遊状態)切り替え制御処理について説明するためのフローチャート図である。
【0181】
プレーヤキャラクタ(移動オブジェクトの一例)が非着地状態(浮遊状態)にある場合にはプレーヤからの入力やその他の引力(着地可能オブジェクトが着地状態において作用する引力を除く)等からプレーヤキャラクタの移動ベクトルを演算する(ステップS110)。
【0182】
次に移動ベクトルに基づきプレーヤキャラクタの移動方向の着地可能オブジェクトへの着地判定(プレーヤキャラクタと着地可能オブジェクトとのヒットチェック)を行う(ステップS120)。
【0183】
着地が検出されない(ヒットなし)場合にはステップS110に戻ってステップS110〜S130の処理を繰り返し、着地が検出された(ヒットあり)場合には以下の処理を行う。
【0184】
まずキャラクタオブジェクトの属性を着地状態に変更し、ヒットなし継続時間T(ヒットなし継続時間をカウントするための変数)に0を設定する(ステップS140)。
【0185】
次に着地面に設定された引力方向をキャラクタへの引力作用方向に初期設定する(ステップS150)。
【0186】
次にプレーヤからの入力やその他の引力(着地可能オブジェクトが着地状態において作用する引力を除く)等からプレーヤキャラクタの移動ベクトルを演算する(ステップS160)。
【0187】
現在の引力作用方向に移動量を発生させ、ステップS160で求めた移動ベクトルに加算する(ステップS170)。
【0188】
次にキャラクタが現在位置からステップS170で求めた移動ベクトル分移動した位置にあるとして着地可能オブジェクトに対する着地判定(ヒットチェック)を行う。
【0189】
ヒットしていない場合には、ステップS140に戻ってステップS140〜S180の処理を繰り返し、ヒットしている場合には、以下の処理を行う。
【0190】
ヒット無し継続時間Tを加算(インクリメント)する(ステップS200)。
【0191】
そしてヒット無し継続時間Tが所定の値X以上かいなか判定し、所定の値以上である場合には、キャラクタオブジェクトの属性を非着地状態(浮遊状態)に変更してステップS110に戻る。
【0192】
また所定の値以上でない場合にはステップS160に戻る。
2−4 イージーランディング処理
図10は本実施の形態のイージーランディング処理について説明するためのフローチャート図である。
【0193】
まずプレーヤからの入力やその他の引力(着地可能オブジェクトが着地状態において作用する引力を除く)等から非着地状態にあるキャラクタオブジェクトの移動ベクトルを演算する(ステップS310)。
【0194】
移動ベクトルに基づき、移動方向における着地可能オブジェクトに対する着陸ヒットチェックを行う(ステップS320)。
【0195】
ヒットしない場合にはステップS310に戻りステップS310〜S330の処理を繰り返し、ヒットした場合には以下の処理を行う(ステップS330)。
【0196】
ヒットした場所がイージーランディング可能かいなか判定する(ステップS340)。例えば図3(A)(B)で説明したように各面にイージーランディング可否情報が設定された引力設定用オブジェクトとのヒットチェックを行い、ヒット面のイージーランディング可否情報に基づきイージーランディング可能かいなか判定するようにしてもよい。
【0197】
イージーランディング可能である場合には着陸処理を行う(ステップS350、S360)。
【0198】
イージーランディング可能でない場合には通常の着陸可能判定を行う(ステップS350、S370)。通常の着陸可能判定とキャラクタオブジェクトが所定の姿勢でヒットした場合や所定の位置(例えばキャラクタオブジェクトの足)でヒットした場合に着陸可能と判定する処理である。
【0199】
通常の着陸が可能である場合には着陸処理を行い(ステップS380、S360)、通常の着陸が可能でない場合には衝突処理を行う(ステップS380、S390)。
【0200】
図11は本実施の形態において、着陸先を予測して着陸準備をする場合のイージーランディング処理について説明するためのフローチャート図である。
【0201】
まずプレーヤからの入力やその他の引力(着地可能オブジェクトが着地状態において作用する引力を除く)等から非着地状態にあるキャラクタオブジェクトの移動ベクトルを演算する(ステップS410)。
【0202】
移動ベクトルに基づき、移動方向における着地可能オブジェクトに対する着陸ヒットチェックを行う(ステップS420)。
【0203】
ヒットしない場合にはステップS500に〜S520の処理をおこないステップS410に戻る。
【0204】
任意の移動予測先にイージーランディング可能場所があるか判定する(ステップS500)。
【0205】
イージーランディング可能でなければステップS410に戻り、イージーランディング可能であれば着陸準備を行いステップS410に戻る(ステップS510、S520)。
【0206】
ステップS420においてヒットした場合には,ヒットした場所がイージーランディング可能か否か判定し(ステップS440)、イージーランディング可能であれば着陸処理を行う(ステップS460)。
【0207】
イージーランディング可能でなければ通常の着陸可能判定を行う(ステップS470)。通常の着陸可能判定とキャラクタオブジェクトが所定の姿勢でヒットした場合や所定の位置(例えばキャラクタオブジェクトの足)でヒットした場合に着陸可能と判定する処理である。
【0208】
通常の着陸が可能である場合には着陸処理を行い(ステップS480、S460)、通常の着陸が可能でない場合には衝突処理を行う(ステップS480、S490)。
【0209】
図12(A)(B)は本実施の形態の着陸処理の一例について説明するための図である。
【0210】
例えば、図12(A)にしめすようにキャラクタオブジェクトが時刻t1、t2,t3において210−1、」210−2,210−3のように移動にて時刻t3において着地可能オブジェクトにヒットしたとする。
【0211】
このような場合、本実施の形態ではヒット面がイージーランディング可能面で図12(B)に示すように、時刻t3に置けるキャラクタの姿勢を着陸基本姿勢に変化させる。着陸基本姿勢とは、ヒット面に設定されている引力方向gと姿勢の向きSが同じ姿勢である。
【0212】
そしてプレーヤキャラクタの属性は着地状態となり、着地している着地可能オブジェクトの引力の作用を受けることになる。
【0213】
図13は、本実施の形態のイージーランディング時の姿勢制御について説明するための図である。
【0214】
本実施の形態では非着地状態にあるキャラクタオブジェクト210−1と着地可能オブジェクト220が所定の位置関係にある場合に、操作部からイージーランディング指定入力を受け付けると又は接触予定面がイージーランディング面である場合には予め用意された着陸用姿勢変化情報にしたがってキャラクタオブジェクトの表示制御を行う。ここで所定の位置関係とは例えばキャラクタオブジェクト210−1と着地可能オブジェクト220の距離が所定距離内にある場合等である。
【0215】
例えば図13に示すように時刻t1〜t4においてキャラクタオブジェクト210−1から姿勢(回転)210−4のS1〜S4のように徐徐に着地姿勢に変化させる処理をプレーヤの入力とは無関係に行う。
【0216】
例えばキャラクタオブジェクト210−1と着地可能オブジェクト220の距離とキャラクタオブジェクトの移動速度に基づき、着地予定時刻t4を求め、着陸態勢開始時刻t1におけるキャラクタオブジェクトの姿勢S1と、t4におけるキャラクタオブジェクトの姿勢S4の方向差(角度差)を求める。そして求めた方向差(角度差)を着陸予定時間(予定フレーム数)に配分して各フレームあたりの補正量をもとめ、各フレームに置けるキャラクタの姿勢を補正するようにしてもよい。
【0217】
このようにすることでプレーヤは複雑な姿勢制御のための操作入力を行わなくも、プレーヤキャラクタの姿勢変化の画像演出を行うことができる。
【0218】
図14(A)(B)は、本実施の形態のイージーランディング時の形状変化制御について説明するための図である。
【0219】
図14(A)は、飛行機の形状を有する移動体オブジェクトが着地可能オブジェクトに着地する様子を示している。
【0220】
図14(B)は、飛行機の形状を有する移動体オブジェクトが着地可能オブジェクトに着地する形状が車両に変化する様子を示している。
【0221】
本実施の形態では図14(B)に示すように非着地状態にある移動体オブジェクト510と、着地可能オブジェクト220のヒット又はヒット予定を検出し、ヒット又はヒット予定面のポリゴンに設定されているイージーランディング可否情報に基づきイージーランディング可否を判断し、イージーランディング可である場合には、予め用意された形状変化情報に従って移動体オブジェクト(例えばキャラクタ)の形状を変化させるための表示制御を行う。
【0222】
なお形状の変化は図14(B)に示すように着陸時に瞬時に変化する場合でも良いし、着陸態勢開始時刻t1から着陸予定時刻t4にかけて徐徐に変化する場合でもよい。後者の場合には飛行機モデルと車両モデルを同時に表示し、一方(ここでは車両モデル)をフェードインさせると同時に他方(ここでは飛行機モデル)をフェードアウトさせることにより、飛行機が車両に変化するような移動体オブジェクトの形状変化を実現することができる。
【0223】
図15(A)(B)は、本実施の形態のモーションデータの切り替え制御について説明するための図である。
【0224】
図15(A)のO1は、非着地状態(浮遊状態)にある移動体オブジェクト210のモーションの制御点を示しており、図15(B)のO2は、着地状態にある移動体オブジェクト210のモーションの制御点を示している。
【0225】
ここにおいてモーションの制御点とは、オブジェクトの代表点としてワールド座標系に配置する際の基準点となる点である。なお例えば1人称視点等(3人称視点でも可能)では、制御点の位置に基づき仮想カメラの位置を決定するようにしてもい。
【0226】
このように本実施の形態では、移動体オブジェクト210が着地状態にあるか否かに応じて、モーションデータ(ここでは制御点を切り替えるため、モーションデータ自体も切り替えが必要である)の切り替える処理を行う。
【0227】
図15(A)に示すように、非着地状態(浮遊状態)では移動体オブジェクト210のモーション制御点O1は移動体オブジェクトの中心付近にあり、着地状態では移動体オブジェクト210のモーション制御点O2は移動体オブジェクトの足下付近にある。
【0228】
従って、非着地状態(浮遊状態)と着地状態では使用するモーションデータも異なってくる。すなわち非着地状態(浮遊状態)では制御点が移動体オブジェクト210の中心付近に設定されたモーションデータを使用し、着地状態では制御点が移動体オブジェクト210の足下付近に設定されたモーションデータを使用する。したがって、着地状態では従来の地上で行われるゲームのモーションデータを使用することが可能である。
本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【0229】
また本発明は種々のゲーム(格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。
【0230】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、画像生成システム、ゲーム画像を生成するシステムボード等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【0231】
【図1】本実施形態のブロック図の一例を示す。
【図2】図2(A)(B)は、本実施の形態の特徴について説明するための図である。
【図3】図3(A)(B)は、着地可能オブジェクト情報記憶部に記憶されている引力情報について説明するための図である。
【図4】引力設定用オブジェクトの各面に設定されている移動体オブジェクトに作用させる引力方向についてしめした図である。
【図5】本実施の形態の引力作用方向補正処理について説明するための図である。
【図6】本実施の形態の補正処理について説明するためのフローチャート図である。
【図7】図7(A)(B)は、引力作用方向の補正値について説明するための図である。
【図8】図8(A)(B)は、本実施の形態の補正処理の効果について説明するための図である。
【図9】本実施の形態の着地状態非着地(状態浮遊状態)切り替え制御処理について説明するためのフローチャート図である。
【図10】本実施の形態のイージーランディング処理について説明するためのフローチャート図である。
【図11】本実施の形態において、着陸先を予測して着陸準備をする場合のイージーランディング処理について説明するためのフローチャート図である。
【図12】図12(A)(B)は本実施の形態の着陸処理の一例について説明するための図である。
【図13】本実施の形態のイージーランディング時の姿勢制御について説明するための図である。
【図14】図14(A)(B)は、本実施の形態のイージーランディング時の形状変化制御について説明するための図である。
【図15】図15(A)(B)は、本実施の形態のモーションデータの切り替え制御について説明するための図である。
【符号の説明】
【0232】
100 処理部
110 ゲーム処理部
112 移動・動作演算部
114 視点情報演算部
116 オブジェクト表示制御処理部
140 画像生成部
142 ジオメトリ処理部
144 シザリング処理部
146 描画部
150 音生成部
160 操作部
170 記憶部
172 メインメモリ
174 フレームバッファ
176 テクスチャ記憶部
178 着地可能オブジェクト情報記憶部
180 情報記憶媒体
190 表示部
192 音出力部
194 携帯型情報記憶装置
196 通信部

【特許請求の範囲】
【請求項1】
ゲーム空間に移動体オブジェクトと移動体オブジェクトが着地して移動可能な着地可能オブジェクトが配置され、移動体オブジェクトは着地可能オブジェクトに対して非着地状態と着地状態とを相互に移行可能に構成され、非着地状態と着地状態とでは移動体オブジェクトに対し異なる引力制御を行い移動体オブジェクトを移動動作させるゲームの画像を生成するためのプログラムであって、
前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報を記憶する着地可能オブジェクト情報記憶部と、
前記移動体オブジェクトが着地可能オブジェクトに着地状態にある場合には、前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報に基づき各フレームで移動体オブジェクトに作用させる引力作用方向パラメータを決定し、当該引力作用方向パラメータにもとづき移動体オブジェクトに引力を作用させて、移動体オブジェクトの移動及び動作の少なくと一方を演算する移動・動作演算部と、
ゲーム空間を仮想カメラから見た画像を生成する画像生成部としてコンピュータを機能させ、
前記着地可能オブジェクト情報記憶部は、
前記着地可能オブジェクトに対応して設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向を記憶し、
前記移動・動作演算部は、
前記移動体オブジェクトと引力設定用オブジェクトのヒットを検出し、前記引力作用方向パラメータとヒット面に設定されている引力方向との方向差を検出し、方向差がある場合には、ヒット面に設定されている引力方向を補正目標値として、当該補正目標値に所定の時間かけて徐徐に近づくように各フレームあたりの補正量を決定し、決定された補正量で引力作用方向パラメータを補正することで、移動体オブジェクトに作用させる引力方向を補正する処理を行うことを特徴とするプログラム。
【請求項2】
ゲーム空間に移動体オブジェクトと移動体オブジェクトが着地して移動可能な着地可能オブジェクトが配置され、移動体オブジェクトは着地可能オブジェクトに対して非着地状態と着地状態とを相互に移行可能に構成され、非着地状態と着地状態とでは移動体オブジェクトに対し異なる引力制御を行い移動体オブジェクトを移動動作させるゲームの画像を生成するプログラムであって、
入力情報に基づき仮想カメラの視点情報を演算する視点情報演算処理部と、
前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報を記憶する着地可能オブジェクト情報記憶部と、
前記移動体オブジェクトが着地可能オブジェクトに着地状態にある場合には、前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報に基づき各フレームで移動体オブジェクトに作用させる引力作用方向パラメータを決定し、当該引力作用方向パラメータにもとづき移動体オブジェクトに引力を作用させて、移動体オブジェクトの移動及び動作の少なくと一方を演算する移動・動作演算部と、
ゲーム空間を仮想カメラから見た画像を生成する画像生成部としてコンピュータを機能させ、
前記着地可能オブジェクト情報記憶部は、
前記着地可能オブジェクトに対応して設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向を記憶し、
前記視点情報演算部は、
前記移動体オブジェクトと引力設定用オブジェクトのヒットを検出し、前記引力作用方向パラメータとヒット面に設定されている引力方向との方向差を検出し、方向差がある場合には、ヒット面に設定されている引力方向を補正目標値として、当該補正目標値に所定の時間かけて徐徐に近づくように各フレームあたりの補正量を決定し、決定された補正量で視線方向補正することを特徴とするプログラム。
【請求項3】
ゲーム空間に移動体オブジェクトと移動体オブジェクトが着地して移動可能な着地可能オブジェクトが配置され、移動体オブジェクトは着地可能オブジェクトに対して非着地状態と着地状態とを相互に移行可能に構成され、非着地状態と着地状態とでは移動体オブジェクトに対し異なる引力制御を行い移動体オブジェクトを移動動作させるゲームの画像を生成するプログラムであって、
前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報を記憶する着地可能オブジェクト情報記憶部と、
前記移動体オブジェクトが着地可能オブジェクトに着地状態にある場合には、前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報に基づき各フレームで移動体オブジェクトに作用させる引力作用方向パラメータを決定し、当該引力作用方向パラメータにもとづき移動体オブジェクトに引力を作用させて、移動体オブジェクトの移動及び動作の少なくと一方を演算する移動・動作演算部と、
ゲーム空間を仮想カメラから見た画像を生成する画像生成部としてコンピュータを機能させ、
前記着地可能オブジェクト情報記憶部は、
前記着地可能オブジェクトに対応して設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向を記憶し、
前記移動・動作演算部は、
前記移動体オブジェクトと引力設定用オブジェクトのヒットを検出し、前記引力作用方向パラメータとヒット面に設定されている引力方向との方向差を検出し、方向差がある場合には、ヒット面に設定されている引力方向を補正目標値として、当該補正目標値に所定の時間かけて徐徐に近づくように各フレームあたりの補正量を決定し、決定された補正量で移動体オブジェクトの姿勢を補正する処理を行うことを特徴とするプログラム。
【請求項4】
移動体オブジェクトと移動体オブジェクトが着地して移動可能な着地可能オブジェクトが配置されたゲーム空間の画像を生成するプログラムであって、
前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報を記憶する着地可能オブジェクト情報記憶部と、
前記移動体オブジェクトが着地可能オブジェクトに着地状態にある場合には、前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報に基づき各フレームで移動体オブジェクトに作用させる引力作用方向パラメータを決定し、当該引力作用方向パラメータにもとづき移動体オブジェクトに引力を作用させて、移動体オブジェクトの移動及び動作の少なくと一方を演算する移動・動作演算部と、
ゲーム空間を仮想カメラから見た画像を生成する画像生成部としてコンピュータを機能させ、
前記着地可能オブジェクト情報記憶部は、
前記着地可能オブジェクトに対応して設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向を記憶し、
前記移動・動作演算部は、
前記移動体オブジェクトと引力設定用オブジェクトのヒットを検出し、前記引力作用方向パラメータとヒット面に設定されている引力方向との方向差を検出し、方向差がある場合には、ヒット面に設定されている引力方向を補正目標値として、当該補正目標値に所定の時間かけて徐徐に近づくように各フレームあたりの補正量を決定し、決定された補正量で引力作用方向パラメータを補正することで、移動体オブジェクトに作用させる引力方向を補正する処理を行うことを特徴とするプログラム。
【請求項5】
請求項1乃至4のいずれかにおいて
前記移動・動作演算部は、
移動体オブジェクトと着地可能オブジェクトのヒットが所定期間検出されない場合には、着地可能オブジェクトに対する着地状態を解除し、移動体オブジェクトに対し着地可能オブジェクトの引力を作用させる処理を中止することを特徴とするプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて
前記移動・動作演算部は、
非着地状態にある移動体オブジェクトと着地可能オブジェクトのヒットを検出した場合には、引力情報としてヒット面に設定されている引力方向に基づき引力作用方向パラメータに初期設定することを特徴とするプログラム。
【請求項7】
請求項1乃至6のいずれかにおいて
前記移動・動作演算部は、
移動体オブジェクトと引力設定用オブジェクトのヒットを検出したときに、前記引力作用方向パラメータとヒット面のポリゴンに設定されている引力方向との方向差を検出し、方向差がある場合には、前記引力作用方向パラメータとヒット面のポリゴンに設定されている引力方向との方向差を予め設定された補正期間に配分して、各フレーム当たりの補正量を求め、求めた補正量で各フレームの前記引力作用方向パラメータを補正して、移動体オブジェクトに作用させることを特徴とするプログラム。
【請求項8】
請求項1乃至7のいずれかにおいて
前記着地可能オブジェクト情報記憶部は、
着地可能オブジェクトに対応して設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向の補正情報を記憶し、
前記移動・動作演算部は、
引力設定用オブジェクトと移動体オブジェクトのヒットを検出し、ヒット面に設定されている補正情報に基づき、補正目標値にいたるまでの各フレームの補正量を決定し、決定された補正量で各フレームの引力作用方向パラメータを補正することを特徴とするプログラム。
【請求項9】
請求項1乃至8のいずれかにおいて
入力情報及び移動体オブジェクトの位置情報の少なくとも一方に基づき仮想カメラの視点情報を演算する視点情報演算処理部を含み、
前記視点情報演算処理部は、
前記引力作用方向パラメータに基づき、視点情報を設定又は補正又は変更する処理を行うことを特徴とするプログラム。
【請求項10】
請求項1乃至9のいずれかにおいて
入力情報及び移動体オブジェクトの位置情報の少なくとも一方に基づき仮想カメラの視点情報を演算する視点情報演算処理部を含み、
前記視点情報演算処理部は、
移動体オブジェクトが着地状態にあるか非着地状態にあるかに基づき、視点情報を設定又は補正又は変更する処理を行うことを特徴とするプログラム。
【請求項11】
請求項1乃至10のいずれかにおいて
前記移動動・動作演算部は、
前記引力作用方向パラメータに基づき、移動体オブジェクトの姿勢の設定又は調整又は変更する処理を行うことを特徴とするプログラム。
【請求項12】
請求項1乃至11のいずれかにおいて
前記移動・動作演算部は、
移動体オブジェクトが着地状態にあるか非着地状態にあるかに基づき、モーションデータを切り替える処理を行うことを特徴とするプログラム。
【請求項13】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至12のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項14】
ゲーム空間に移動体オブジェクトと移動体オブジェクトが着地して移動可能な着地可能オブジェクトが配置され、移動体オブジェクトは着地可能オブジェクトに対して非着地状態と着地状態とを相互に移行可能に構成され、非着地状態と着地状態とでは移動体オブジェクトに対し異なる引力制御を行い移動体オブジェクトを移動動作させるゲームの画像を生成する画像生成システムであって、
前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報を記憶する着地可能オブジェクト情報記憶部と、
前記移動体オブジェクトが着地可能オブジェクトに着地状態にある場合には、前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報に基づき各フレームで移動体オブジェクトに作用させる引力作用方向パラメータを決定し、当該引力作用方向パラメータにもとづき移動体オブジェクトに引力を作用させて、移動体オブジェクトの移動及び動作の少なくと一方を演算する移動・動作演算部と、
ゲーム空間を仮想カメラから見た画像を生成する画像生成部とを含み、
前記着地可能オブジェクト情報記憶部は、
前記着地可能オブジェクトに対応して設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向を記憶し、
前記移動・動作演算部は、
前記移動体オブジェクトと引力設定用オブジェクトのヒットを検出し、前記引力作用方向パラメータとヒット面に設定されている引力方向との方向差を検出し、方向差がある場合には、ヒット面に設定されている引力方向を補正目標値として、当該補正目標値に所定の時間かけて徐徐に近づくように各フレームあたりの補正量を決定し、決定された補正量で引力作用方向パラメータを補正することで、移動体オブジェクトに作用させる引力方向を補正する処理を行うことを特徴とする画像生成システム。
【請求項15】
ゲーム空間に移動体オブジェクトと移動体オブジェクトが着地して移動可能な着地可能オブジェクトが配置され、移動体オブジェクトは着地可能オブジェクトに対して非着地状態と着地状態とを相互に移行可能に構成され、非着地状態と着地状態とでは移動体オブジェクトに対し異なる引力制御を行い移動体オブジェクトを移動動作させるゲームの画像を生成する画像生成システムであって、
入力情報に基づき仮想カメラの視点情報を演算する視点情報演算処理部と、
前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報を記憶する着地可能オブジェクト情報記憶部と、
前記移動体オブジェクトが着地可能オブジェクトに着地状態にある場合には、前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報に基づき各フレームで移動体オブジェクトに作用させる引力作用方向パラメータを決定し、当該引力作用方向パラメータにもとづき移動体オブジェクトに引力を作用させて、移動体オブジェクトの移動及び動作の少なくと一方を演算する移動・動作演算部と、
ゲーム空間を仮想カメラから見た画像を生成する画像生成部とを含み、
前記着地可能オブジェクト情報記憶部は、
前記着地可能オブジェクトに対応して設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向を記憶し、
前記視点情報演算部は、
前記移動体オブジェクトと引力設定用オブジェクトのヒットを検出し、前記引力作用方向パラメータとヒット面に設定されている引力方向との方向差を検出し、方向差がある場合には、ヒット面に設定されている引力方向を補正目標値として、当該補正目標値に所定の時間かけて徐徐に近づくように各フレームあたりの補正量を決定し、決定された補正量で視線方向補正することを特徴とする画像生成システム。
【請求項16】
ゲーム空間に移動体オブジェクトと移動体オブジェクトが着地して移動可能な着地可能オブジェクトが配置され、移動体オブジェクトは着地可能オブジェクトに対して非着地状態と着地状態とを相互に移行可能に構成され、非着地状態と着地状態とでは移動体オブジェクトに対し異なる引力制御を行い移動体オブジェクトを移動動作させるゲームの画像を生成する画像生成システムであって、
前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報を記憶する着地可能オブジェクト情報記憶部と、
前記移動体オブジェクトが着地可能オブジェクトに着地状態にある場合には、前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報に基づき各フレームで移動体オブジェクトに作用させる引力作用方向パラメータを決定し、当該引力作用方向パラメータにもとづき移動体オブジェクトに引力を作用させて、移動体オブジェクトの移動及び動作の少なくと一方を演算する移動・動作演算部と、
ゲーム空間を仮想カメラから見た画像を生成する画像生成部とを含み、
前記着地可能オブジェクト情報記憶部は、
前記着地可能オブジェクトに対応して設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向を記憶し、
前記移動・動作演算部は、
前記移動体オブジェクトと引力設定用オブジェクトのヒットを検出し、前記引力作用方向パラメータとヒット面に設定されている引力方向との方向差を検出し、方向差がある場合には、ヒット面に設定されている引力方向を補正目標値として、当該補正目標値に所定の時間かけて徐徐に近づくように各フレームあたりの補正量を決定し、決定された補正量で移動体オブジェクトの姿勢を補正する処理を行うことを特徴とする画像生成システム。
【請求項17】
移動体オブジェクトと移動体オブジェクトが着地して移動可能な着地可能オブジェクトが配置されたゲーム空間の画像を生成する画像生成システムであって、
前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報を記憶する着地可能オブジェクト情報記憶部と、
前記移動体オブジェクトが着地可能オブジェクトに着地状態にある場合には、前記着地可能オブジェクトが移動体オブジェクトに作用させる引力情報に基づき各フレームで移動体オブジェクトに作用させる引力作用方向パラメータを決定し、当該引力作用方向パラメータにもとづき移動体オブジェクトに引力を作用させて、移動体オブジェクトの移動及び動作の少なくと一方を演算する移動・動作演算部と、
ゲーム空間を仮想カメラから見た画像を生成する画像生成部とを含み、
前記着地可能オブジェクト情報記憶部は、
前記着地可能オブジェクトに対応して設定された引力設定用オブジェクトを構成する面に対応付けて移動体オブジェクトに作用させる引力方向を記憶し、
前記移動・動作演算部は、
前記移動体オブジェクトと引力設定用オブジェクトのヒットを検出し、前記引力作用方向パラメータとヒット面に設定されている引力方向との方向差を検出し、方向差がある場合には、ヒット面に設定されている引力方向を補正目標値として、当該補正目標値に所定の時間かけて徐徐に近づくように各フレームあたりの補正量を決定し、決定された補正量で引力作用方向パラメータを補正することで、移動体オブジェクトに作用させる引力方向を補正する処理を行うことを特徴とする画像生成システム。

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

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2006−212079(P2006−212079A)
【公開日】平成18年8月17日(2006.8.17)
【国際特許分類】
【出願番号】特願2005−25353(P2005−25353)
【出願日】平成17年2月1日(2005.2.1)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】