本実施の形態に係る3次元ゲーム装置は、オブジェクト空間に配置される少なくとも1つの3次元オブジェクトを覆うように設けられるカバーオブジェクト上で、操作手段からの操作情報に基づいて移動体を移動させる演算を行う移動体演算手段と、前記移動体の移動により前記カバーオブジェクトを区分する領域が特定された場合の該特定領域におけるカバーオブジェクトの画像情報を少なくとも変更する画像情報変更手段と、前記カバーオブジェクトの周囲において前記移動体の移動に追従し且つ前記特定領域における画像の変化の少なくとも一部が見える視点位置、視線方向での視界画像を合成する手段とを含むことを特徴とする。
本実施の形態によれば、操作手段からの操作情報に基づいて、3次元オブジェクトを覆うカバーオブジェクト上を移動体が移動し、この移動により例えばプレーヤの所望する領域が特定される。そして、この特定領域における画像情報が変更される。この場合、特定領域にあるカバーオブジェクトによりカバーされていた3次元オブジェクトの画像が見えるように画像情報を変更することが望ましい。視界画像を合成する視点位置、視線方向は、移動体の移動に追従すると共に特定領域での画像の変化の少なくとも一部が見えるように設定される。従って本実施の形態によれば、プレーヤは、自身が移動体を操作することにより次々に変化してゆくカバーオブジェクトの画像、あるいはそのカバーオブジェクトによりカバーされていた3次元オブジェクトの画像が見えてくる様子を楽しむことができ、優れた視覚効果を得ることができる。またプレーヤは、3次元的に形成されたゲームフィールドであるカバーオブジェクト上で移動体を移動させてゲームを楽しむことができるため、プレーヤの感じるスリル感、ダイナミック感を大幅に向上できる。
また本実施の形態に係る3次元ゲーム装置は、オブジェクト空間に配置される少なくとも1つの3次元オブジェクトを覆うように設けられるカバーオブジェクト上で、操作手段からの操作情報に基づいて移動体を移動させる演算を行う移動体演算手段と、前記移動体の移動軌跡が交差することで該移動軌跡を縁とする閉じた領域が特定された場合の該特定領域におけるカバーオブジェクトの画像情報を少なくとも変更する画像情報変更手段と、オブジェクト空間内の所与の視点位置、視線方向での視界画像を合成する手段とを含むことを特徴とする。
本実施の形態によれば、移動体の移動軌跡が交差することで領域が特定され、この特定領域でのカバーオブジェクトの画像情報が変更される。3次元オブジェクトをカバーオブジェクトで覆う場合、例えば縁が無いカバーオブジェクトを用いると、ゲーム開始時にどのような視点位置から見ても3次元オブジェクトを見ることができないようにすることができる。本実施の形態によれば、このように縁が無いカバーオブジェクトを用いた場合でも、領域の簡易な特定が可能となる。
また本実施の形態は、前記画像情報変更手段が、前記カバーオブジェクトが複数のポリゴン又は曲面により構成されている場合に、前記特定領域にある少なくとも1つのポリゴン又は曲面の表示、非表示を切り替えることを特徴とする。
本実施の形態によれば、カバーオブジェクトを構成するポリゴン又は曲面の表示、非表示を切り替えるという画像情報の変更が行われる。カバーオブジェクトのポリゴン等が非表示になると、そのポリゴン等により隠されていた部分での3次元オブジェクトの画像を見ることが可能となり、優れた視覚効果を得ることができる。
また本実施の形態は、前記画像情報変更手段が、前記特定領域におけるカバーオブジェクトの少なくとも一部について不透明、透明を切り替える又は半透明率を変更することを特徴とする。
本実施の形態によれば、カバーオブジェクトの一部が不透明から透明に切り替わる、或いは半透明率が変更される。これによりプレーヤは、その部分での3次元オブジェクトの画像を見ることが可能となる。特に半透明率を段階的に変化させ、3次元オブジェクトの画像が徐々に見えてくるようにすれば、視覚効果を一段と向上させることができる。
また本実施の形態に係る3次元ゲーム装置は、オブジェクト空間に配置される少なくとも1つの3次元オブジェクト上で、操作手段からの操作情報に基づいて移動体を移動させる演算を行う移動体演算手段と、前記移動体の移動により前記3次元オブジェクトを区分する領域が特定された場合の該特定領域における3次元オブジェクトの画像情報を少なくとも変更する画像情報変更手段と、前記3次元オブジェクトの周囲において前記移動体の移動に追従し且つ前記特定領域における画像の変化の少なくとも一部が見える視点位置、視線方向での視界画像を合成する手段とを含むことを特徴とする。
本実施の形態によれば、操作手段からの操作情報に基づいて移動体が3次元オブジェクト上を移動し、この移動により特定された領域における画像情報が変更される。また視点位置等も移動体に移動に追従するため、プレーヤは、自身が移動体を操作することにより次々に変化してゆく3次元オブジェクトの3次元的な画像を楽しむことができる。またプレーヤは、3次元的に形成されたゲームフィールドである3次元オブジェクト上で移動体を移動させてゲームを楽しむことができるため、プレーヤの感じるスリル感、ダイナミック感を大幅に向上できる。
また本実施の形態に係る3次元ゲーム装置は、オブジェクト空間に配置される少なくとも1つの3次元オブジェクト上で、操作手段からの操作情報に基づいて移動体を移動させる演算を行う移動体演算手段と、前記移動体の移動軌跡が交差することで該移動軌跡を縁とする閉じた領域が特定された場合の該特定領域における3次元オブジェクトの画像情報を少なくとも変更する画像情報変更手段と、オブジェクト空間内の所与の視点位置、視線方向での視界画像を合成する手段とを含むことを特徴とする。
本実施の形態によれば、移動体の移動軌跡が交差することで領域が特定され、この特定領域での3次元オブジェクトの画像情報が変更される。本実施の形態によれば、例えば3次元オブジェクトの表面をゲームフィールドとした場合に、領域の簡易な特定が可能となる。
また本実施の形態は、前記画像情報変更手段が、前記特定領域の少なくとも一部にマッピングされるテクスチャを変更することを特徴とする。
本実施の形態によれば、マッピングされるテクスチャを変更することで、例えば3次元オブジェクトを覆うカバーオブジェクトのポリゴンを非表示にする手法等と同等の視覚効果を得ることができる。なおテクスチャの変更は、テクスチャを指定するテクスチャ座標を変更してもよいし、テクスチャ自体を描き替えてもよい。
また本実施の形態は、前記移動体演算手段が、前記カバーオブジェクト又は前記3次元オブジェクトがポリゴンにより形成されている場合に、前記移動体を該ポリゴンの縁上で移動させる演算を該ポリゴンの頂点位置情報に基づいて行うことを特徴とする。
本実施の形態によれば、例えばポリゴンの第1の頂点の位置情報と第2の頂点の位置情報とに基づいて、これらの頂点間を移動する移動体の位置情報を求め、これにより第1の頂点と第2の頂点とを結ぶ縁上で移動体を移動させる演算を行うことが可能となる。特にポリゴンの頂点位置情報はポリゴンの表示処理の際にも使用されるため、本実施の形態によれば、表示処理の際に使用する頂点位置情報の有効利用が図れる。
以下、本発明の具体的な実施形態について図面を用いて説明する。
図1に本実施例の機能ブロック図を示す。ここで操作部12は、プレーヤが例えばレバー、ボタン(図18(A)の1102、1104参照)を操作して操作情報を入力するためのものであり、操作部12にて得られた操作情報は処理部100に出力される。処理部100は、この操作情報と、所与のプログラム等に基づいて、表示物を表すオブジェクトが複数配置されて成るオブジェクト空間を設定する演算等を行うものであり、ハードウェア的には例えばCPU及びメモリにより構成される。画像合成部200は、この設定されたオブジェクト空間内の所与の視点位置、視線方向での視界画像を合成する演算を行うものであり、ハードウェア的には例えば画像合成専用のIC或いはCPU及びメモリにより構成される。この際にテクスチャマッピングを行う場合には、テクスチャ情報記憶部210に記憶されるテクスチャ情報を用いて画像合成を行う。得られた視界画像は表示部10において表示される。
図2(A)、(B)、図3(A)、(B)、図4(A)、(B)に、本実施例により得られるゲーム画面(視界画像)の一例を示す。図2(A)に示すように、オブジェクト空間(仮想3次元空間)内には、牛を表す3次元オブジェクト40、この3次元オブジェクト40を覆うように設けられゲームフィールドとなるカバーオブジェクト42、背景を表すオブジェクト(図示せず)等が配置されている。このようなオブジェクト空間へのオブジェクトの配置処理は図1のオブジェクト空間設定部140により行われる。そして操作部12を用いてプレーヤが入力する操作情報に基づいて、図2(B)に示すように自機である移動体44がカバーオブジェクト42上を移動する。なお本実施例では敵キャラクタである移動体46もカバーオブジェクト42上を移動している。これらの移動体を移動させる演算は図1の移動体演算部110において行われる。
本実施例では、カバーオブジェクトを区分けする領域が移動体の移動により特定された場合の該特定領域でのカバーオブジェクトの画像情報が変更される。この画像情報の変更は図1の画像情報変更部120により行われる。特に本実施例では、移動体の移動軌跡が交差することで移動軌跡を縁とする閉じた領域が特定された場合の該特定領域でのカバーオブジェクトの画像情報が変更される。具体的には例えば、図2(B)においては、1枚のポリゴンが配置されていた領域36が移動体44の移動により特定され、この領域36に配置されていたポリゴンを非表示にする画像情報の変更が行われている。この場合、領域36に配置されていたポリゴンの縁上を移動体44が移動し、その移動軌跡が交差することで領域36が特定される。領域36の画像情報を変更し、この領域でのポリゴンを非表示にすることで、プレーヤは、3次元オブジェクト40の画像のうち、カバーオブジェクト42により隠されていた部分(牛の皮膚)の画像を見ることが可能となる。
特に本実施例では、図2(B)から図3(A)へのゲーム画面の変化から明らかなように、カバーオブジェクト42の周囲において移動体44の移動に追従し且つ特定領域での画像の変化が見える視点位置、視線方向での視界画像が合成される。この場合、視界画像が合成される視点位置、視線方向を設定する処理は、図1の視点設定部130が行う。本実施例では、視点位置等が移動体の移動に追従し、特定領域において変化する画像をプレーヤは見ることができる。このため例えば、プレーヤは、3次元オブジェクト40の画像のうちカバーオブジェクト42により隠されていた部分を様々な角度から注視するように次々と見ることができることになり、従来の2次元ゲーム装置には無い優れた視覚効果を得ることができる。
移動体44は、敵キャラクタである移動体46に捕まらないようにカバーオブジェクト42を構成するポリゴンを次々と非表示にしてゆく。そして図3(B)に示すように、カバーオブジェクト42を構成する全てのポリゴンが非表示になると1つのゲームステージが終了し、次のゲームステージに進む。
なお図2(A)、(B)、図3(A)、(B)では、カバーオブジェクト42により1つの3次元オブジェクト40を覆っていたが、2つ以上の3次元オブジェクトをカバーオブジェクトにより覆うようにしてもよい。例えば図4(A)、(B)では、牛乳パックを模したカバーオブジェクト42により、2つの3次元オブジェクト40、41が覆われており、プレーヤは移動体44を操作して、中に配置された3次元オブジェクト40、41が完全に見えるまで、このカバーオブジェクト42を構成するポリゴンを順次非表示にするプレイを行う。
特に図4(A)、(B)のように、3次元オブジェクト40、41をカバーオブジェクト42により完全に覆う場合、縁が無いカバーオブジェクト42を用いることになる。このような場合には、領域の特定には、移動体の移動軌跡が交差することで移動軌跡を縁とする領域を特定する手法が特に有効である。
次に本実施例の詳細例について説明する。本実施例では、各ゲームステージのゲームが始まる前に、図5(A)に示す画面が表示される。この画面では、各ゲームステージにおいてプレイ対象となる3次元オブジェクトの識別画像がパネルA〜M等の上に表示される。例えばパネルAには、図2(A)の牛を表した3次元オブジェクト40を簡略化したものが表示される。
図5(B)に示すように、本実施例では、ゲームスタートからゲームエンディングの間に複数のセグメントが設定され、各セグメントの中には複数のゲームステージが配置される。例えばセグメント1、2、3には、ステージA〜C、D〜F、G〜Jが配置される。これらのステージA〜Jは図5(A)のパネルA〜Jに対応するものである。プレーヤは、まずセグメント1の中のゲームステージA〜Cから、ランダムに或いは任意の選択により1つのゲームステージをプレイする。そして例えばプレーヤがゲームステージAをクリアしたとすると、セグメント1の中の他のゲームステージB、Cをプレイすることなく、セグメント2に移行する。そしてプレーヤは、今度は、セグメント2の中のゲームステージD〜Fから、ランダム或いは任意の選択により1つのゲームステージをプレイする。
例えばゲームステージが2分岐構造となっているゲームでは、ゲームエンディングに到達するために、プレーヤは、最初のゲームステージを何度も繰り返さなければならない。これに対して、本実施例のゲームステージ構成によれば、1つのセグメントに含まれるゲームステージを全てプレイしなくても次のセグメントに移ることができる。従って、プレーヤは、それほど時間、プレイ回数を要することなく、趣向が凝らされた終盤のゲームステージをプレイしたりゲームエンディングを見ることができ、ゲームの面白味を大幅に向上できる。しかもゲームスタートからゲームエンディングまで一巡した後、再度リプレイした場合に、プレーヤは、異なったゲーム展開を楽しむことができる。即ちプレーヤは、プレイしなかった他のゲームステージをプレイしたいがために再び最初からゲームをスタートすることになり、これによりプレーヤにリプレイを促すことができる。
図6に、ゲームステージ選択後に表示されるゲーム画面の例を示す。図6に示すように、本実施例では、3次元オブジェクト40を覆うように、ゲームフィールドとなるカバーオブジェクト42が設けられている。このカバーオブジェクト42は複数のポリゴンにより形成されており、これらのポリゴンの縁であるフィールドフレーム上で自機である移動体44及び敵キャラクタである移動体46〜54が移動する。またゲーム画面上には、制限時間の残りを表すタイマ表示56が映し出されている。
本実施例では、プレーヤが操作部12のレバー(図18(A)の1102)を倒していない場合でも、自機の移動体44は一定速度で前進する。そしてレバーを上方向に倒すと移動体44は加速し、下方向に倒すと減速する。また図7(A)において、フィールドフレーム(ポリゴンの縁)58の交点(ポリゴンの頂点)60の手前でレバーを左に倒すと矢印61の方向に進み、右に倒すと矢印62の方向に進み、それ以外の場合には、矢印63の方向に進む。プレーヤが操作部12のボタン(図18(A)の1104)を押すと、図7(B)に示すように、ボタンを押した時の移動体44の位置にマーカ64が表示される。そしてそのままボタンを押し続けるとマーカ64と移動体44との間にライン66が引かれる。図7(C)に示すように、ボタンを押し続ける限りこのライン66は伸びて行く。
図7(D)において、敵の移動体46、47は所与のアルゴリズムに従って特定の動きをしている。しかし図7(E)に示すように自機の移動体44が引くライン66に接触すると、図7(F)に示すように高速でライン66に沿って移動体44を追いかける。敵に接触すると移動体44は爆発する。そして残機が無くなったり制限時間が尽きるとゲームオーバーとなる。
一方、図8(A)に示すように、移動体44の移動軌跡であるライン66が交差しライン66を縁とする閉じた領域が特定され、プレーヤがボタンを離すと、この領域68にあったポリゴンが非表示になる。これによりプレーヤは、領域68に配置されていたポリゴンにより隠されていたこの領域68での3次元オブジェクト40(図6参照)の画像を見ることができる。なおプレーヤがボタンを離した時にこの領域68及びライン66上にいた敵の移動体46、47は消滅する。
本実施例では、図8(B)のようにライン66が引かれた場合には領域69、70に配置されていたポリゴンが非表示になる。また図8(C)のようにライン66が引かれた場合には、ポリゴン71は表示から非表示に切り替わり、ポリゴン72、73、74は非表示から表示に切り替わる。また図8(D)においてポリゴン76はライン66により2重に囲まれたと考え、表示状態を維持する。即ちライン66により複数回囲まれた領域は、その回数分だけ表示、非表示が切り替わる。
なお、画像情報変更部120は少なくとも特定領域における画像を変更するものであればよく、例えば特定領域以外の領域に配置されるポリゴンの方が特定領域に配置されるポリゴンよりも多い場合は、特定領域以外の領域のポリゴンの表示、非表示を切り替えるようにしてもよい。
また図9(A)に示すように、フィールドフレーム58にバイパス59を設けてもよい。また図9(B)に示すように、このバイパス59により、2つの3次元オブジェクト40、41間を行き来できるようにしてもよい。更に図9(C)に示すように、演出効果を高めるために、非表示となるポリゴンをバラバラにして飛ばすようにしてもよい。
次に移動体をカバーオブジェクト上で移動させる手法の一例について説明する。本実施例では、カバーオブジェクトがポリゴンにより形成されている場合に、移動体をポリゴンの縁上で移動させる演算を、ポリゴンの頂点位置情報に基づいて行っている。そのために本実施例では、まず、図10(A)に示すような頂点関係リストを用いる。この頂点関係リストは、カバーオブジェクトを構成するポリゴンの頂点の各々について格納エリアを有し、各格納エリアには、その頂点を参照するための頂点インデックス、その頂点のワールド(絶対)座標系での位置情報、その頂点の下隣、左隣、上隣、右隣にある頂点のインデックス等が格納されている。図10(B)に示すカバーオブジェクト42を構成するポリゴン78の頂点V7を例にとれば、頂点関係リストには、頂点V7のインデックスV7、位置情報(XV7、YV7、ZV7)、頂点V7の下隣、左隣、上隣、右隣にある頂点のインデックスV2、V6、V12、V8が格納されている。このような頂点関係リストは、オブジェクト情報の1つである頂点位置リスト(図11(B)参照)に基づいて容易に作成することができる。
図10(B)に示すように、移動体44が頂点V7に向かって移動している場合を考える。この時、図1の移動体演算部110は、移動体44がV7に到達した時或いは到達時よりも所与の時間前において、レバーがどちらの方向に倒されているかを検出する。この時、移動体44がV7に到達したか否かの判断は、頂点関係リストの中の頂点V2、V7の格納エリアに格納される頂点V2、V7の位置情報に基づいて行う。例えば検出時にレバーが左に倒されていたとすると、移動体演算部110は、頂点関係リストの中の頂点V7の格納エリアから、左隣にある頂点のインデックスを読み出す。この場合には左隣の頂点インデックスはV6であるため、移動体演算部110は、次に、頂点関係リストの中の頂点V6の格納エリアから頂点V6の位置情報を読み出す。そして頂点V6、V7の位置情報に基づいて移動体44の移動すべき軌道を求め、この軌道上で移動体44を微少期間毎(例えば1/60秒毎)に移動させる演算を行う。そして、この軌道上を移動する移動体44のワールド座標系での位置情報をオブジェクト空間設定部140に順次出力する。オブジェクト空間設定部140は、この位置情報等に基づいて、移動体44を含む複数のオブジェクトをオブジェクト空間内に配置設定する処理を行う。画像合成部200は、この設定情報に基づいて画像合成を行う。このようにして、ポリゴンの縁であるフィールドフレーム上を移動する移動体44の画像を得ることができる。
一方、頂点V7への到達時又は所与の時間前に、レバーが右に倒された場合には頂点V8の格納エリアの読み出しを行い、レバーが左にも右にも倒されなかった場合には頂点V12の格納エリアの読み出しを行い、上記と同様の処理を行う。また敵の移動体を移動させる処理も自機の場合と同様にして実現できる。
このように本実施例によれば、ポリゴンの頂点位置情報を利用して移動体をポリゴンの縁上で移動させているため、簡易な処理、少ないデータ量で移動体をカバーオブジェクト上で移動させることが可能となる。特に図10(A)の頂点関係リストは、カバーオブジェクトの頂点位置リスト(図11(B)参照)から容易に作成でき、またこれらのリスト間でデータを共有化できるという利点がある。
次に画像情報変更部120による画像情報の変更処理について説明する。本実施例では、画像情報変更部120は、カバーオブジェクトの特定領域にあるポリゴンの表示、非表示を切り替える処理を行っている。
図11(A)に、カバーオブジェクト42の一例を示す。この例では、カバーオブジェクト42は12枚のポリゴンにより構成されている。このカバーオブジェクト42を表示するために、オブジェクト空間設定部140は、図11(B)に示す頂点位置リストと、図11(C)に示すポリゴン情報リストを作成し、これらを画像合成部200に出力している。カバーオブジェクト以外の他のオブジェクトについても同様である。ここで頂点位置リストは、図11(B)に示すように、オブジェクトを構成するポリゴンの頂点の各々について格納エリアを有し、各格納エリアには、その頂点を参照するためのインデックス、その頂点のワールド座標系での位置情報が格納されている。またポリゴン情報リストは、図11(C)に示すように、オブジェクトを構成するポリゴンの各々について格納エリアを有し、各格納エリアには、そのポリゴンの識別情報、そのポリゴンを構成する頂点のインデックスの並び情報、そのポリゴンにマッピングするテクスチャのテクスチャ空間での座標、そのポリゴンに設定する半透明率等を含むポリゴン情報が格納されている。ポリゴンP0を例にとれば、頂点インデックスの並び情報はV0−V1−V7−V6となっており、この情報に基づいて図11(B)の頂点位置リストを参照することで、ポリゴンP0を構成する頂点の位置情報を特定することができる。またポリゴンP0のテクスチャ座標は(U0(P0),V0(P0))〜(U3(P0),V3(P0))となっており、画像合成部200内のテクスチャマッピング部202がこの(U0(P0),V0(P0))〜(U3(P0),V3(P0))で指定されるテクスチャ情報をテクスチャ情報記憶部210から読み出すことでポリゴンP0へのテクスチャマッピングが行われる。またポリゴンP0の半透明率はTP0となっており、画像合成部200内の半透明演算部204がこのTP0を用いて所与の半透明演算を行うことで、ポリゴンP0を半透明にすることができる。半透明の演算は、例えば対象となるポリゴンの色と、このポリゴンの後ろに位置する表示物の色とをブレンドする処理を行うこと等で実現される。
なおグーローシェーディング等の輝度演算処理を行う場合には、ポリゴン情報の中に頂点法線ベクトル情報或いは頂点輝度情報(或いはこれらのインデックス)を含めればよい。
カバーオブジェクトの特定領域にあるポリゴンを表示から非表示に切り替える処理は、図11(C)のポリゴン情報リストから、非表示にするポリゴンの格納エリアを削除することで実現できる。例えば移動体がポリゴンP1の縁上を移動し、ポリゴンP1が特定され非表示にすることが決定された場合には、図11(C)のポリゴン情報リストからポリゴンP1の格納エリアの部分を削除する。このようにすることで画像合成部200によるポリゴンP1の画像合成が省略され、ポリゴンP1を非表示にすることができる。
次に視点位置、視線方向の設定について説明する。本実施例では、カバーオブジェクトの周囲において移動体の移動に追従し且つ移動体の移動により特定された領域における画像の変化の少なくとも一部が見えるように、視点位置、視線方向を設定する。この設定は、図1の視点設定部130が、移動体演算部110で求められた移動体の位置情報等に基づいて行う。図12(A)において、視点位置82は仮想カメラ80の位置であり、視線方向84は仮想カメラ80の向く方向である。表示部10では、この視点位置82、視線方向84での視界画像が表示される(図2(B)参照)。但し本実施例では、仮想カメラ80の移動に対して慣性が働くと仮定してあり、図12(A)に示す視点位置82は、この慣性の働きを無視した時の目標視点位置である。この目標視点位置は、図12(A)に示すように、自機の移動体44の真上から進行方向と逆方向に一定の距離Lだけシフトした位置に設定されている。
仮想カメラ80は、図12(B)に示すように、自機の移動体44との間で一定の高度を保ちながら移動する。この高度を目標視点高さとする。また仮想カメラ80の高さ方向の移動にも慣性が働くと仮定する。これにより図12(B)に示すように、移動体44が、高度差のあるゲームフィールドを移動すると、図12(B)のFに示すように仮想カメラ80がズームしたりすることになる。
また本実施例では、移動体44の速度は、レバーを下に倒した時に低速、上に倒した時に高速、何もしなかった場合に中速となる(レバーを下に倒した時に下に移動し、上に倒した時に上に移動し、何もしなかった時に停止するようにしてもよい)。移動体44が低速か、中速か、高速かにより、図12(C)に示すように、移動体の真上の位置と目標視点位置との距離L(図12(A)も参照)が変化する。高速で移動する移動体44に対してはカメラ80は後ろに取り残され、低速の場合には真上に近い位置からの視界画像が合成されることになる。
以上のように本実施例では、視界画像を合成する視点位置、視線方向が移動体の移動に追従する。そして図2(B)に示すように、移動体44の移動により特定された領域36での画像の変化(この例ではポリゴンの表示、非表示)の少なくと一部が見える位置に視点位置、視線方向が設定される。これによりプレーヤは、自らの操作で移動体44を操作してプレーヤが所望する領域を特定し、その特定された領域での画像の変化を楽しむことができる。図2(B)の例では、領域36でのポリゴンが非表示になることで、3次元オブジェクトの、領域36のポリゴンにより隠されていた部分を見るという楽しみを得ることができる。また3次元的に形成されるカバーオブジェクト42上のどの位置に移動体44が移動しても、視点位置、視線方向はこの移動体44の移動に追従する。この結果、カバーオブジェクト42により覆われていた部分の3次元オブジェクト40が次第に見えてくる様子をプレーヤは楽しむことができ、しかもこの時に見える画像は3次元画像になるため、ゲームの面白味を格段に向上できる。
以上では、特定領域での画像情報を変更する例として、移動体の移動により特定された領域でのポリゴンを非表示にする手法について説明した。この手法では、図13(A)に示すように、3次元オブジェクト40を覆うカバーオブジェクト42を構成するポリゴン(又は曲面)のうち、特定領域に配置されるポリゴン86を消滅させる。このようにすることで、特定領域にあったポリゴン86により隠されていた部分の3次元オブジェクトの画像を見ることができるようになる。ポリゴン86の表示、非表示の切り替えは、既に説明したように、図1の画像情報変更部120が、図11(C)のポリゴン情報リストからポリゴン86のポリゴン情報を消去したり生成したりすることで実現できる。
しかしながら画像情報の変更手法としては、これ以外にも種々ものを考えることができる。
例えば図13(B)に示す画像情報の変更手法では、カバーオブジェクトを構成するポリゴン(又は曲面)のうち特定領域に配置されるポリゴン86の半透明率を変更している(透明にしてもよい)。このようにしても、ポリゴン86により隠されていた部分の3次元オブジェクト40の画像を見ることができるようになる。特にこの手法によれば、半透明率を不透明から透明に向かって徐々に変化させること等により、図13(A)よりも更に優れた視覚効果を得ることができる。半透明率の変更は、例えば図11(C)のポリゴン情報リストにおいて、ポリゴン86のポリゴン情報に含まれる半透明率を、画像情報変更部120が変更することで実現できる。
また図13(C)に示す画像情報の変更手法では、特定領域にありカバーオブジェクト42を構成するポリゴン(又は曲面)86にマッピングするテクスチャを指定するテクスチャ座標を、テクスチャ87を指定するテクスチャ座標からテクスチャ88を指定するテクスチャ座標に変更している。ここでテクスチャ88は透明又は半透明のテクスチャであり、このように透明又は半透明のテクスチャ88をポリゴン86にマッピングすることにより、不透明のテクスチャ87がマッピングされていたポリゴン86により隠されていた部分の3次元オブジェクト40の画像を見ることができるようになる。なおテクスチャ88の全てを透明又は半透明にする必要はなく、一部のみを透明又は半透明にしてもよい。ポリゴンにマッピングするテクスチャの変更は、例えば図11(C)のポリゴン情報リストにおいて、ポリゴン86のポリゴン情報に含まれるテクスチャ座標(テクスチャ平面でのUV座標。テクスチャ情報記憶部210のテクスチャ情報を格納するアドレス)を、画像情報変更部120が変更することで実現できる。
また図13(D)に示す画像情報の変更手法では、カバーオブジェクト42の一部又は全部にマッピングするテクスチャ自体を、テクスチャ89からテクスチャ90に描き替えている。テクスチャ90は、テクスチャ89を描き替え、領域91の部分を透明又は半透明にすることで生成される。このテクスチャ90をカバーオブジェクト42にマッピングすることで、領域91に対応する部分での3次元オブジェクト40の画像を見ることができる。カバーオブジェクト42にマッピングするテクスチャの描き替えは、画像情報変更部120が、RAM等により構成されるテクスチャ情報記憶部210に記憶されるテクスチャ情報の内容を描き替えることにより実現できる。即ちカバーオブジェクト42に割り当てられたテクスチャ座標位置に格納されるテクスチャを、テクスチャ89からテクスチャ90に描き替える。この手法によれば、図13(A)〜(C)と異なり、画像情報の変更を必ずしもポリゴン毎に行わなくてもよくなる。このため例えば移動体をポリゴンの縁上のみならず、カバーオブジェクト42上の任意の位置を移動させ、その移動により特定された領域での画像情報を変更することを容易に実現できる。
さて以上の説明では、3次元オブジェクトを覆うカバーオブジェクトの画像情報を変更していたが、このようなカバーオブジェクトを設けず、3次元オブジェクト自体の画像情報を変更するようにしてもよい。
例えば図14(A)に示す画像情報の変更手法では、3次元オブジェクト40を構成するポリゴン(又は曲面)92にマッピングするテクスチャを指定するテクスチャ座標を、テクスチャ93を指定するテクスチャ座標からテクスチャ94を指定するテクスチャ座標に変更している。ここでテクスチャ93は、図13(C)のカバーオブジェクト42のポリゴン86にマッピングされるテクスチャと同様のものである。またテクスチャ94は、図13(C)でポリゴン86を透明又は半透明にした時に見える3次元オブジェクト40の画像を表すものである。図2(B)の場合を例にとれば、カバーオブジェクト42の模様がテクスチャ93になり、領域36にあったポリゴンを非表示にした時に見える3次元オブジェクト40の画像、即ち領域36での牛の皮膚の模様がテクスチャ94になる。このような手法を用いることで、カバーオブジェクトのポリゴンを非表示にしたり、該ポリゴンの半透明率を変えたり、カバーオブジェクトにマッピングするテクスチャを変えたりするのと、ほぼ同様の視覚効果を得ることができる。ポリゴン92にマッピングするテクスチャの変更は、例えば図11(C)のポリゴン情報リストにおいて、ポリゴン92のポリゴン情報に含まれるテクスチャ座標を、画像情報変更部120が変更することで実現できる。
また図14(B)に示す画像情報の変更手法では、3次元オブジェクト40の一部又は全部にマッピングするテクスチャ自体を、テクスチャ96からテクスチャ97に変更している。テクスチャ96とテクスチャ97とは、領域98での画像が異なっている。領域98は、例えば図13(D)で領域91を透明又は半透明にした時に見える3次元オブジェクト40の画像と同様のものに描き替えられる。図2(B)の場合を例にとれば、領域98でのテクスチャは、牛の皮膚を表す模様に描き替えられる。このようにすることで、カバーオブジェクトのポリゴンを非表示にすること等と、ほぼ同一の視覚効果を得ることができる。3次元オブジェクト40にマッピングするテクスチャの描き替えは、画像情報変更部120が、RAM等により構成されるテクスチャ情報記憶部210に記憶されるテクスチャ情報の内容を描き替えることにより実現できる。この手法によれば、図14(A)と異なり、画像情報の変更を必ずしもポリゴン毎に行わなくてもよくなる。このため例えば移動体をポリゴンの縁上のみならず、3次元オブジェクト40上の任意の位置を移動させ、その移動により特定された領域での画像情報を変更することを容易に実現できる。
なお図13(A)〜(D)に示すカバーオブジェクトの画像情報を変更する手法には、(1)3次元オブジェクトの形状とカバーオブジェクトの形状が異なっている場合でも適用可能である(2)1つの3次元オブジェクトに複数のカバーオブジェクトを組み合わせることで異なる様々な画像を得ることができる(3次元オブジェクトを共用できる)(3)カバーオブジェクトを構成するポリゴン(又は曲面)の表示、非表示を切り替えるだけで画像情報の変更が可能となる等の利点がある。一方、図14(A)、(B)に示す3次元オブジェクトの画像情報を変更する手法には、(1)カバーオブジェクトが必要ないためデータ容量を節約できる(2)透明、半透明の機能を有しない装置でも実現可能である等の利点がある。
次に本実施例の動作について図15、図16のフローチャートを用いて説明する。図15は、図13(A)〜(D)の手法に対応するフローチャートである。まず操作部12によりプレーヤが操作情報を入力し、この操作情報に基づいて移動体をカバーオブジェクト上で移動させる処理を行う(ステップS1、S2)。移動体をポリゴンの縁上で移動させる場合には、図10(A)、(B)で説明したようにポリゴンの頂点位置情報を用いて上記処理を行う。次に、移動体の移動により領域が特定された否かを判断する(ステップS3)。例えば図8(A)〜(D)の場合では、移動体の移動軌跡が交差することでこの移動軌跡を縁とする閉じた領域が特定される。そして領域が特定された場合には、図13(A)〜(D)に示すような種々の手法でカバーオブジェクトの画像情報を変更する(ステップS4)。そして所与の視点位置、視線方向、例えば移動体に追従し且つ画像の変化が見える視点位置、視線方向での視界画像を合成する(ステップS5)。
図16は、図14(A)、(B)の手法に対応するフローチャートである。図15との違いは、ステップT2において移動体をカバーオブジェクトではなく3次元オブジェクト上で移動させる点、及び、ステップT4においてカバーオブジェクトではなく3次元オブジェクトの画像情報を変更する点である。
次に、本実施例のハードウェア構成の一例について図17を用いて説明する。同図に示す装置では、CPU1000、ROM1002、RAM1004、情報記憶媒体1006、音合成IC1008、画像合成IC1010、I/Oポート1012、1014が、システムバス1016により相互にデータ送受信可能に接続されている。そして前記画像合成IC1010にはディスプレイ1018が接続され、音合成IC1008にはスピーカ1020が接続され、I/Oポート1012にはコントロール装置1022が接続され、I/Oポート1014には通信装置1024が接続されている。
情報記憶媒体1006は、ゲームプログラム、表示物を表現するための画像情報等が主に格納されるものであり、CD−ROM、ゲームカセット、ICカード、MO、FD、メモリ等が用いられる。例えば家庭用ゲーム装置ではゲームプログラム等を格納する情報記憶媒体としてCD−ROM、ゲームカセットが、業務用ゲーム装置ではROM等のメモリが用いられる。
コントロール装置1022はゲームコントローラ、操作パネル等に相当するものであり、プレーヤがゲーム進行に応じて行う判断の結果を装置本体に入力するための装置である。
情報記憶媒体1006に格納されるゲームプログラム、ROM1002に格納されるシステムプログラム(装置本体の初期化情報等)、コントロール装置1022によって入力される信号等に従って、CPU1000は装置全体の制御や各種データ処理を行う。RAM1004はこのCPU1000の作業領域等として用いられる記憶手段であり、情報記憶媒体1006やROM1002の所与の内容、あるいはCPU1000の演算結果等が格納される。また頂点関係リスト(図10(A))、頂点位置リスト(図11(B))、ポリゴン情報リスト(図11(C))等の論理的な構成を持つデータ構造は、このRAM又は情報記憶媒体上に構築されることになる。
更に、この種の装置には音合成IC1008と画像合成IC1010とが設けられていてゲーム音やゲーム画面の好適な出力が行えるようになっている。音合成IC1008は情報記憶媒体1006やROM1002に記憶される情報に基づいて効果音やバックグラウンド音楽等のゲーム音を合成する集積回路であり、合成されたゲーム音はスピーカ1020によって出力される。また、画像合成IC1010は、RAM1004、ROM1002、情報記憶媒体1006等から送られる画像情報に基づいてディスプレイ1018に出力するための画素情報を合成する集積回路である。なおディスプレイ1018として、いわゆるヘッドマウントディスプレイ(HMD)と呼ばれるものを使用することもできる。
また、通信装置1024はゲーム装置内部で利用される各種の情報を外部とやりとりするものであり、他のゲーム装置と接続されてゲームプログラムに応じた所与の情報を送受したり、通信回線を介してゲームプログラム等の情報を送受することなどに利用される。
そして図2(A)、(B)〜図14(A)、(B)で説明した種々の処理は、図15、図16のフロチャートに示した処理等を行うゲームプログラムを格納した情報記憶媒体1006と、該ゲームプログラムに従って動作するCPU1000、画像合成IC1010等によって実現される。なお画像合成IC1010、音合成IC1008等で行われる処理は、CPU1000あるいは汎用のDSP等によりソフトウェア的に行ってもよい。
図18(A)に、本実施例を業務用ゲーム装置に適用した場合の例を示す。プレーヤは、ディスプレイ1100上に映し出されたゲーム画面を見ながら、レバー1102、ボタン1104を操作してゲームを楽しむ。装置に内蔵されるIC基板1106には、CPU、画像合成IC、音合成IC等が実装されている。そしてカバーオブジェクト又は3次元オブジェクト上で移動体を移動させるための情報、特定領域におけるカバーオブジェクト又は3次元オブジェクトの画像情報を変更するための情報、オブジェクト空間内の所与の視点位置、視線方向(移動体の移動に追従し且つ画像の変化の少なくとも一部を見ることができる視点位置、視線方向)での視界画像を合成するための情報等は、IC基板1106上の情報記憶媒体であるメモリ1108に格納される。以下、これらの情報を格納情報と呼ぶ。これらの格納情報は、上記の種々の処理を行うためのプログラムコード、画像情報、音情報、表示物の形状情報、テーブルデータ、リストデータ、プレーヤ情報等の少なくとも1つを含むものである。
図18(B)に、本実施例を家庭用のゲーム装置に適用した場合の例を示す。プレーヤはディスプレイ1200に映し出されたゲーム画面を見ながら、ゲームコントローラ1202、1204を操作してゲームを楽しむ。この場合、上記格納情報は、本体装置に着脱自在な情報記憶媒体であるCD−ROM1206、ICカード1208、1209等に格納されている。
図18(C)に、ホスト装置1300と、このホスト装置1300と通信回線1302を介して接続される端末1304-1〜1304-nとを含むゲーム装置に本実施例を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置1300が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体1306に格納されている。端末1304-1〜1304-nが、CPU、画像合成IC、音合成ICを有し、スタンドアロンでゲーム画像、ゲーム音を合成できるものである場合には、ホスト装置1300からは、ゲーム画像、ゲーム音を合成するためのゲームプログラム等が端末1304-1〜1304-nに配送される。一方、スタンドアロンで合成できない場合には、ホスト装置1300がゲーム画像、ゲーム音を合成し、これを端末1304-1〜1304-nに伝送し端末において出力することになる。
なお本発明は、上記実施の形態で説明したものに限らず、種々の変形実施が可能である。
例えば本発明は、業務用のゲーム装置のみならず、例えば家庭用のゲーム装置、シミュレータ、多数のプレーヤが参加する大型アトラクション装置等、種々のものに適用できる。
また本実施例で説明した処理部、画像合成部等で行われる処理も、本実施例では単にその一例を示したものであり、本発明における画像合成処理はこれらに限定されるものではない。