ビデオゲーム機
【課題】視線交差判定などの複雑な処理を回避し、処理量を軽減することができるビデオゲーム機を提供する。
【解決手段】ビデオゲーム機10は、遊技者の操作情報が入力されるIO20と、複数のポリゴンが配置された仮想3次元空間内のコース上で、操作情報に基づいて車(移動体)を移動させ、その車をカメラ(仮想視点)で追尾させ、そのカメラから見た車の映像を映像情報として出力するCPU50と、映像情報に基づいて映像を表示する表示装置70と、コース上の所定の位置を示す位相座標を記憶しているメモリ40と、車の位置を判定するヒット判定部51と、判定した車の位置を位相座標上の位置に変換し、その車の位置から位相座標上のカメラの位置を設定する位置座標加工部52と、そのカメラの位置を仮想3次元空間内の位置に変換する座標変換部53と、仮想3次元空間内の実際のカメラの位置を計算する視点位置計算部54とを備える。
【解決手段】ビデオゲーム機10は、遊技者の操作情報が入力されるIO20と、複数のポリゴンが配置された仮想3次元空間内のコース上で、操作情報に基づいて車(移動体)を移動させ、その車をカメラ(仮想視点)で追尾させ、そのカメラから見た車の映像を映像情報として出力するCPU50と、映像情報に基づいて映像を表示する表示装置70と、コース上の所定の位置を示す位相座標を記憶しているメモリ40と、車の位置を判定するヒット判定部51と、判定した車の位置を位相座標上の位置に変換し、その車の位置から位相座標上のカメラの位置を設定する位置座標加工部52と、そのカメラの位置を仮想3次元空間内の位置に変換する座標変換部53と、仮想3次元空間内の実際のカメラの位置を計算する視点位置計算部54とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のポリゴンが配置された仮想3次元空間内のコース上で移動体が移動してゲームが進行するビデオゲーム機に関するものである。
【背景技術】
【0002】
従来、この種のビデオゲーム機には、例えば、車のレースゲームがあり、この車のレースゲームでは、遊技者がコースと車との関係を把握しやすいように、車の後方に仮想視点を設定することがある(3人称視点)。
しかし、この3人称視点では、車がコースの端を走行する場合に、トンネルの側壁(障害物)に仮想視点が潜り込んでしまい、車が見えなくなることが多かった。
そこで、このような場合には、仮想視点の位置を変更する必要があるが、そのときに行う視線交差判定は、計算量が増加してしまう欠点があった(例えば、特許文献1)。
【0003】
図13は、従来のビデオゲーム機を示すブロック図であり、図14は、ビデオゲームの進行イメージを示す図である。
従来のビデオゲーム機10Aは、ヒット判定部51,車挙動制御部55,照明制御部56,視点調整部57及び視線交差判定部58を有するCPU50と、表示用ポリゴンデータ41,コースヒット判定用データ42,路面情報データリスト43及び視線交差判定用データ44を有するメモリ40と、描画装置60などとを備え、CPU50がメモリ40から各種データを読み出し、描画装置60を介してディスプレイ(不図示)に映像を表示して、ゲームが進行する。
【0004】
そして、図14(A)に示すように、上述した3人称視点でゲームを進行していると、カーブなどで車100の進行方向を変えたときに、仮想視点となるカメラCが、トンネルTの側壁に潜り込んでしまうことがある。
そこで、図14(B)に示すように、カメラCの位置を変更する処理が必要となるが、この処理は、非常に複雑な処理となってしまう。
【0005】
この理由は、メモリ40の視線交差判定用データ44(図13参照)に、視線交差判定用のトンネルTのポリゴンを予め記憶させておかなければならず、また、CPU50の視線交差判定部58は、そのトンネルTのポリゴンとカメラCの視線とが交差しているか否かの判定を常に行わなければならないからである。
【0006】
また、視線交差判定部58は、視線が交差していると判定したときには、視点調整部57に判定結果を送信し、視点調整部57は、どの方向やどの位置にカメラCを移動させればよいかの演算を行う必要があるので、処理がさらに複雑になってしまっていた。
【特許文献1】特開2003−135844号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明の課題は、視線交差判定などの複雑な処理を回避し、処理量を軽減することができるビデオゲーム機を提供することである。
【課題を解決するための手段】
【0008】
前記課題を解決するために、請求項1の発明は、遊技者の操作情報が入力される入力部と、複数のポリゴンが配置された仮想3次元空間内のコース上で、前記操作情報に基づいて移動体を移動させ、その移動体を仮想視点で追尾させ、その仮想視点から見た前記移動体の映像を映像情報として出力する制御部と、前記映像情報に基づいて映像を表示する表示部とを備えるビデオゲーム機であって、前記コース上の所定の位置を示す位相座標を記憶している記憶部と、前記移動体が前記仮想3次元空間内のどの位置にいるかを判定する判定部と、前記判定部が判定した移動体の位置を、前記位相座標上の位置に変換する第1の変換部と、前記第1の変換部が変換した位相座標上の移動体の位置を基準として、その位置から所定間隔離れた位置に、前記位相座標上の仮想視点の位置を設定する設定部と、前記設定部が設定した位相座標上の仮想視点の位置を、前記仮想3次元空間内の位置に変換する第2の変換部と、前記第2の変換部が変換した仮想3次元空間内の仮想視点の位置に基づいて、前記仮想視点の位置を計算する計算部と、を備えるビデオゲーム機である。
請求項2の発明は、請求項1に記載のビデオゲーム機において、前記位相座標は、前記コースを直線と想定した場合に、そのコースの長手方向の軸と、そのコースの幅方向の軸とを備えるものであること、を特徴とするビデオゲーム機である。
請求項3の発明は、請求項2に記載のビデオゲーム機において、前記所定間隔離れた位置は、前記長手方向の軸方向の前方又は後方の位置であること、を特徴とするビデオゲーム機である。
請求項4の発明は、請求項2又は請求項3に記載のビデオゲーム機において、前記所定間隔離れた位置は、前記幅方向の軸方向に対して、固定された位置又は前記位相座標上の移動体の位置から所定の計算式で定まる位置であること、を特徴とするビデオゲーム機である。
請求項5の発明は、請求項2に記載のビデオゲーム機において、前記位相座標は、前記コースを直線と想定した場合に、そのコースの高さ方向の軸を備えるものであること、を特徴とするビデオゲーム機である。
請求項6の発明は、請求項5に記載のビデオゲーム機において、前記所定間隔離れた位置は、前記高さ方向の軸方向に対して、固定された位置又は前記位相座標上の移動体の位置から所定の計算式で定まる位置であること、を特徴とするビデオゲーム機である。
【発明の効果】
【0009】
本発明によれば、コース上の所定の位置を示す位相座標を用いて仮想視点の位置を計算することにより、常に、仮想視点がコース上に配置されるので、仮想視点と障害物との視線交差判定を行う必要がなくなり、処理量が軽減される。
また、もともと位相座標を使用しているゲーム機であれば、その位相座標を利用することによって、簡単に処理量を軽減させることができる。
【発明を実施するための最良の形態】
【0010】
本発明は、視線交差判定などの複雑な処理を回避し、処理量を軽減することができるビデオゲーム機を提供するという目的を、コース上の所定の位置を示す位相座標を用いてカメラの位置を制御することにより実現する。
【実施例】
【0011】
以下、図面等を参照して、本発明の実施例について、さらに詳しく説明する。
図1は、本発明によるビデオゲーム機の実施例を示す図であって、図1(A)は、ビデオゲーム機のハードウェアの概略構成を示すブロック図であり、図1(B)は、ビデオゲーム機の各機能部及び処理の流れを示すブロック図である。
本実施例によるビデオゲーム機10は、車のレースゲームを例にした3DCG(3次元コンピュータグラフィックス)ゲーム機であって、図1(A)に示すように、IO(入力部)20と、ストレージ30と、メモリ(記憶部)40と、CPU(制御部)50と、描画装置60と、表示装置(表示部)70などとを備える。
【0012】
IO20は、遊技者の操作情報が入力される部分であり、遊技者が実際に操作するハンドルなどに接続されている。
【0013】
ストレージ30は、ゲーム内容や処理プログラムを記憶している部分であり、例えば、HDDやCDなどである。
【0014】
メモリ40は、ポリゴンデータやヒットデータ、位相座標などを記憶している部分であり、図1(B)に示すように、コース,マップ及び車を表示するための表示用ポリゴンデータ41と、コースヒット用のコースヒット判定用データ42とを備える。
【0015】
ここで、位相座標とは、コース上の所定の位置を示す座標であり、コース上を移動するゲームではよく使用される。この座標は、コースを位相幾何学的に単純な2次元平面としたものであり、処理を簡略化するのに役立ち、特に、順位やCOMカー(コンピュータカー)の挙動決定に対して有効である。
例えば、コース沿いの距離をLとすると、L=0.0〜コース全長であり、コースの幅方向の位置をWとすると、W=−1.0〜+1.0となり、簡単な2次元座標で表現できる。また、座標値がこの数値範囲内にあれば、その位置は必ずコース上にある。
そこで、本発明では、これらの特徴を利用して、「位相座標」をカメラの設定に使用している(設定方法の詳細は後述)。
【0016】
CPU50は、ビデオゲーム機10やゲームの内容を制御している部分であり、複数のポリゴンが配置された仮想3次元空間内のコース上で、IO20からの操作情報に基づいて車(移動体)を移動させ、その車をカメラ(仮想視点)で追尾させ、そのカメラから見た車の映像を映像情報として出力する部分であり、図1(B)に示すように、ヒット判定部(判定部、第1の変換部)51と、位相座標加工部(設定部)52と、座標変換部(第2の変換部)53と、視点位置計算部(計算部)54とを備える。
【0017】
ヒット判定部51は、コースヒット判定用データ42からの情報に基づいて、車がいずれのポリゴンを通過しているのか(車が仮想3次元空間内のどの位置にいるか)を判定し、その判定した車の位置を、位相座標上の位置に変換する部分であり、変換結果を位相座標加工部52に送信する。
【0018】
位相座標加工部52は、ヒット判定部51が変換した位相座標上の車の位置を基準として、その位置から所定間隔離れた位置に、位相座標上のカメラの位置を設定する部分であり、設定結果を座標変換部53に送信する。
【0019】
座標変換部53は、位相座標加工部52が設定した位相座標上のカメラの位置を、コースヒット判定用データ42を参照しながら、仮想3次元空間内の位置に変換する部分であり、変換結果を視点位置計算部54に送信する。
【0020】
視点位置計算部54は、座標変換部53が変換した仮想3次元空間内のカメラの位置に基づいて、実際のカメラの位置を計算する部分であり、計算結果などを描画装置60に送信する。
【0021】
また、CPU50は、上述した従来のビデオゲーム機10Aと同様に、車の向きや傾きなどの車姿勢情報や、車のライティングの有無を決定するための車照明情報、カメラの高さを調整するための視点情報なども、適宜生成する。
【0022】
描画装置60は、ポリゴンなどの描画を行う部分であり、メモリ40の表示用ポリゴンデータ41、及び、CPU50で生成された各情報(カメラ位置の計算結果、車姿勢情報、車照明情報、視点情報など)に基づいて、ゲームの映像を描画し、表示装置70に映像情報を送信する。
【0023】
表示装置70は、描画装置60からの映像情報に基づいて、ゲームの映像を表示する部分であり、例えば、ディスプレイなどである。
【0024】
次に、車のレースゲームに使用する仮想3次元空間の作製手順について説明する。
図2〜図6は、各ポリゴンを模式的に示す図である。
まず、図2に示すように、表示用のマップポリゴンを用意する。
ついで、図3に示すように、コースヒット用の走行範囲設定ラインLを作製する。本実施例では、コースの中央と両端の3本のラインであるが、状況に応じてライン数を増減させてもよい。
さらに、図4に示すように、コースを格子状に区切り、路面情報用のポリゴンを作製する。
【0025】
そして、図5に示すように、ダートD、草地G、トンネルT、日陰になる部分Sなどのポリゴンを作製する。
最後に、上述した各ポリゴンをまとめて表示すると、図6に示すようなものになり、車の位置から路面方向に垂直に伸ばした線にぶつかるポリゴンの情報を読み取ることでヒット判定が行え、その場所の路面情報(路面の種類、路面の高さなど)や、車のコース上の位置(コース内か否か、スタート地点からの位置など)がわかる。なお、表示用のポリゴンをヒット判定に使用してもよい。
【0026】
次に、実際にゲームが進行する仮想3次元空間内のワールド座標(3次元座標、実座標)と位相座標との変換方法について説明する。なお、以下の座標変換は、CPU50の各機能部が行っている。
図7〜図11は、座標の変換方法を模式的に示す図である。
まず、図7に示すように、ワールド座標で見たコースのヒット用ポリゴンの各点の座標(ワールド座標位置ベクトル)を、
A(Xa,Ya,Za)
B(Xb,Yb,Zb)
・・・
F(Xf,Yf,Zf)
P(Xp,Yp,Zp)
と設定する。
ここで、点Pは、車の中心位置(ヒット判定位置)であり、三角形ABDのポリゴンにヒットしている。
【0027】
また、コースヒット判定用データ42(図1参照)は、以下のような2次元の頂点座標リストになっている。
・・・
A(Xa,Ya,Za)、B(Xb,Yb,Zb)、C(Xc,Yc,Zc)
D(Xd,Yd,Zd)、E(Xe,Ye,Ze)、F(Xf,Yf,Zf)
・・・
【0028】
ここで、図7のコースをまっすぐ伸ばしたコースの位相座標を考える。図8に示すように、位相座標は、コースを直線と想定した場合に、そのコースの進行方向(長手方向)及び幅方向の2軸を備える座標である。
例えば、コースの幅を−1.0〜+1.0、進行方向の1ステップ分を1.0とすると、各点の座標は以下のように表現できる。
A’(Ua,Va)=(−1.0,Va)
B’(Ub,Vb)=( 0.0,Va)
C’(Uc,Vc)=(+1.0,Va)
D’(Ud,Vd)=(−1.0,Va−1.0)
E’(Ue,Ve)=( 0.0,Va−1.0)
F’(Uf,Vf)=(+1.0,Va−1.0)
・・・
P’(Up,Vp)
なお、上記設定から、各点の座標値は整数であり、Vaも整数である。
【0029】
そして、最終的には、P’(Up,Vp)の値が算出できればよい。
ここで、Up,Vpは、点P’の座標を表す値でもあるが、Upは、点P’がコースの幅方向に対して、どの辺りに位置しているかの割合を示す値でもあり、Vpは、点P’が進行方向の1ステップに対して、どの辺りに位置しているかの割合を示す値でもある。
したがって、このUp,Vpの値は、割合という側面も備えているので、図7に示すワールド座標でも、そのまま利用することができ、ワールド座標の点Pは、
P=(B−A)|Up−Ua|+(D−A)|Vp−Va|+A・・・(1)
と表すことができる。
また、式(1)は、絶対値記号を用いずに表現すると、
P=(B−A)((Up−Ua)/(Ub−Ua))+(D−A)((Vp−Va)/(Vd−Va))+A・・・(2)
と表すことができる。
【0030】
そして、式(2)のA、B、D、Pに、ワールド座標の値を代入すると(本実施例では、Z座標は無視して、X座標、Y座標のみ計算)、
Xp=(Xb−Xa)((Up−Ua)/(Ub−Ua))+(Xd−Xa)((Vp−Va)/(Vd−Va))+Xa・・・(3)
Yp=(Yb−Ya)((Up−Ua)/(Ub−Ua))+(Yd−Ya)((Vp−Va)/(Vd−Va))+Ya・・・(4)
となる。
ここで、((Up−Ua)/(Ub−Ua))=αとし、((Vp−Va)/(Vd−Va))=βとして、α及びβについて連立方程式を解くと、
α=((Xd−Xa)(Ya−Yp)+(Yd−Ya)(Xp−Xa))/((Xb−Xa)(Yd−Ya)−(Xd−Xa)(Yb−Ya))・・・(5)
β=((Xb−Xa)(Yp−Ya)+(Yb−Ya)(Xa−Xp))/((Xb−Xa)(Yd−Ya)−(Yb−Ya)(Xd−Xa))・・・(6)
となる。
そして、式(5)(6)を用いて、Up及びVpについて整理すると、
Up=((Ub−Ua)((Xd−Xa)(Ya−Yp)+(Yd−Ya)(Xp−Xa))/((Xb−Xa)(Yd−Ya)−(Xd−Xa)(Yb−Ya)))+Ua・・・(7)
Vp=((Vd−Va)((Xb−Xa)(Yp−Ya)+(Yb−Ya)(Xa−Xp))/((Xb−Xa)(Yd−Ya)−(Yb−Ya)(Xd−Xa)))+Va・・・(8)
となる。
【0031】
次に、カメラ位置を計算する。
図9に示すように、位相座標上のカメラ位置Q’は、位相座標上の車の位置(点P’)を基準として、その位置から、進行方向に対して後方の所定間隔離れた位置に設定する。本実施例では、進行方向の位置は、点P’から−3.0の位置であり、幅方向の位置は、点P’と同じ位置であり、点Q’は、三角形I’J’L’のポリゴンにヒットしている。なお、マイナス値は、見え方をよくするために、実際にゲームが進行する仮想3次元空間内で、3〜6m程度となるように設定することが好ましい。
これを式で表すと、
Q’(Uq,Vq)=(Up,Vp−3.0)・・・(9)
となる。
【0032】
そして、この位置Q’をワールド座標上の位置(実際にカメラを設定する位置=点Q)に戻すためには、以下の計算をする。
まず、上述した車の位置Pと同様に、ワールド座標上でのカメラ位置を式で表すと、
Q(カメラ位置)=(J−I)|Uq−Ui|+(L−I)|Vq−Vi|+I・・・(10)
となる。
また、式(10)は、絶対値記号を用いずに表現すると、
Q=(J−I)((Uq−Ui)/(Uj−Ui))+(L−I)((Vq−Vi)/(Vl−Vi))+I・・・(11)
と表すことができる。
ついで、式(11)のI、J、Lに、ワールド座標の値を代入すると、
Xq=(Xj−Xi)((Uq−Ui)/(Uj−Ui))+(Xl−Xi)((Vq−Vi)/(Vl−Vi))+Xi・・・(12)
Yq=(Yj−Yi)((Uq−Ui)/(Uj−Ui))+(Yl−Yi)((Vq−Vi)/(Vl−Vi))+Yi・・・(13)
となる。
さらに、式(7)〜(9)のUp、Vp、Uq、Vqの各値を、式(12)(13)に代入すると、
Xq=(Xj−Xi)(((((Ub−Ua)((Xd−Xa)(Ya−Yp)+(Yd−Ya)(Xp−Xa))/((Xb−Xa)(Yd−Ya)−(Xd−Xa)(Yb−Ya)))+Ua)−Ui)/(Uj−Ui))+(Xl−Xi)(((((Vd−Va)((Xb−Xa)(Yp−Ya)+(Yb−Ya)(Xa−Xp))/((Xb−Xa)(Yd−Ya)−(Yb−Ya)(Xd−Xa)))+Va)−3.0−Vi)/(Vl−Vi))+Xi・・・(14)
Yq=(Yj−Yi)(((((Ub−Ua)((Xd−Xa)(Ya−Yp)+(Yd−Ya)(Xp−Xa))/((Xb−Xa)(Yd−Ya)−(Xd−Xa)(Yb−Ya)))+Ua)−Ui)/(Uj−Ui))+(Yl−Yi)(((((Vd−Va)((Xb−Xa)(Yp−Ya)+(Yb−Ya)(Xa−Xp))/((Xb−Xa)(Yd−Ya)−(Yb−Ya)(Xd−Xa)))+Va)−3.0−Vi)/(Vl−Vi))+Yi・・・(15)
となる。
そして、式(14)(15)を用いて、図10に示すように、実際にカメラを設定する位置(点Q)を計算することができる。
【0033】
また、点Qを求める別の方法として、図11に示すような方法がある。
この方法では、点Qが、点Iと点Lの間のどの辺りに位置しているかを示す点Rと、点Qが、点Jと点Mの間のどの辺りに位置しているかを示す点Sとした場合に、点R、点Sは、
R=L|Vq−Vi|+I(1.0−|Vq−Vi|)・・・(16)
S=M|Vq−Vj|+J(1.0−|Vq−Vj|)・・・(17)
と表すことができ、点R及び点Sから、点Qは、
Q=R|Uq−Uj|+S(1.0−|Uq−Uj|)・・・(18)
と表すことができる。
また、式(16)〜(18)は、絶対値記号を用いずに表現すると、
R=L((Vq−Vi)/(Vl−Vi))+I(1.0−((Vq−Vi)/(Vl−Vi)))・・・(19)
S=M((Vq−Vj)/(Vm−Vj))+J(1.0−((Vq−Vj)/(Vm−Vj)))・・・(20)
Q=R((Uq−Uj)/(Ui−Uj))+S(1.0−((Uq−Uj)/(Ui−Uj)))・・・(21)
と表すことができる。
さらに、位相座標の設定より、Vi=Vj、Uj=0.0なので、
R=L|Vq−Vj|+I(1.0−|Vq−Vj|)・・・(22)
S=M|Vq−Vj|+J(1.0−|Vq−Vj|)・・・(23)
Q=R|Uq|+S(1.0−|Uq|)・・・(24)
と表すことができる。
そして、式(21)又は式(24)を用いて点Qを求めてもよい。なお、この例では、この点R、点Sを求めるのに、線形補完を使用したが、前後のステップの座標も用いてスプライン補完などの曲線補完方法で求めてもよい。ここで、スプライン補完とは、各点のデータを用いて最小曲率面を当てはめる補完方法であり、CGやCADでよく使用されている。
【0034】
次に、図1及び図12を参照しながら、本実施例によるビデオゲーム機10の動作について説明する。
図12は、ビデオゲームの進行イメージを示す図である。
ゲームを開始し、遊技者がハンドルなどを操作すると、CPU50(図1参照)は、IO20からの操作情報に応じて、車100を走行させる。
そして、図12(A)に示すように、車100がトンネルT内のカーブにさしかかり、遊技者がハンドルを左にきると、図12(B)に示すように、車100が左に曲がる。
このとき、カメラCは、上述した計算によって必ずコース上に配置されるので、トンネルTの側壁に潜り込まずに車100を追尾することができる。
【0035】
このように、本実施例によれば、コース上の所定の位置を示す位相座標を用いてカメラCの位置を計算することにより、常に、カメラCがコース上に配置されるので、カメラCとトンネルTの側壁との視線交差判定を行う必要がなくなり、処理量が軽減される。
また、ワールド座標で、車の何メートル後方という計算は、非常に複雑な計算となり、しかも、カーブでは対応することができないが、2次元の位相座標を用いて後方の位置を計算すれば、簡単にコース内の後方の位置を計算することができる。
【0036】
さらに、順位計算をするためや、路面とのヒットを取るために、もともと位相座標を使用しているゲーム機であれば、その位相座標を利用してカメラ位置を計算することによって、簡単に処理量を軽減させることができ、また、座標変換に特別な処理を追加しなくてもよいので、制御プログラムの大幅な変更も必要ない。
さらにまた、コース上のカーブのみならず、直線でも上述したようにカメラを制御することによって、横に向いて車が走行した場合や、車が蛇行しながら走行した場合であっても、側壁に潜り込まないカメラとすることができる。
【0037】
(変形例)
以上説明した実施例に限定されることなく、種々の変形や変更が可能であって、それらも本発明の均等の範囲内である。
(1)ゲームの種類は、車のレースゲームに限られず、決まったコース上を移動するようなゲーム、例えば、競馬ゲーム、スキーゲーム、電車ゲームなどであってもよい。
(2)本実施例では、初めから3人称視点で車を見ているゲームの例で説明したが、複数の視点の中から3人称視点を選択できるようなゲームであってもよい。
(3)障害物は、トンネルの側壁の例で説明したが、例えば、建物や陸橋などであってもよい。
【0038】
(4)カメラの位置は、例えば、車に対して20〜30m程度後方に配置するようにしてもよい。このようにすれば、中継車のような視点を提供することができ、このようにカメラを遠く離しても、カメラはコース上に配置されるので、トンネルの側壁の裏側が見えてしまうような状態にはならない。
(5)カメラの位置は、位相座標上の車の位置から、進行方向に対して後方の位置に設定する例で説明したが、進行方向に対して前方の位置に設定してもよい。このようにすれば、リプレイ演出時に、前方から車を見た映像を表示したい場合に、カメラが側壁に潜ることがない。
【0039】
(6)位相座標上では、カメラの幅方向の位置は、車と同じ位置に設定する例で説明したが、車の位置とは無関係の固定された位置、例えば、センターライン上や、側壁に近い位置に設定してもよく、また、車の位置から所定の計算式で定まる位置、例えば、車の移動量の半分の値や、車の幅方向の値と正負が逆の値となるような位置に設定してもよい。
このようにすれば、側壁への潜り込みを防止しつつ、より見やすい仮想視点とすることができる。特に、固定値であれば、コース幅が狭くなっても、幅方向の割合が固定されているので、カメラが滑らかに移動し、さらに見やすい映像を提供できる。
【0040】
(7)位相座標は、2次元座標の例で説明したが、コースの高さ方向の軸を加えて3次元座標としてもよい。このようにすれば、立体的なチューブ状のコースを飛行体が進んでいくようなゲームに有効である。
また、カメラ位置は、その高さ方向の軸方向に対して、固定された位置や移動体の位置から所定の計算式で定まる位置に設定してもよい。このようにすれば、高さ方向に対しても、上述した幅方向と同様の制御を行うことができる。
【図面の簡単な説明】
【0041】
【図1】本発明によるビデオゲーム機の実施例を示す図である。
【図2】各ポリゴンを模式的に示す図である。
【図3】各ポリゴンを模式的に示す図である。
【図4】各ポリゴンを模式的に示す図である。
【図5】各ポリゴンを模式的に示す図である。
【図6】各ポリゴンを模式的に示す図である。
【図7】座標の変換方法を模式的に示す図である。
【図8】座標の変換方法を模式的に示す図である。
【図9】座標の変換方法を模式的に示す図である。
【図10】座標の変換方法を模式的に示す図である。
【図11】座標の変換方法を模式的に示す図である。
【図12】ビデオゲームの進行イメージを示す図である。
【図13】従来のビデオゲーム機を示すブロック図である。
【図14】ビデオゲームの進行イメージを示す図である。
【符号の説明】
【0042】
10 ビデオゲーム機
20 IO(入力部)
30 ストレージ
40 メモリ(記憶部)
41 表示用ポリゴンデータ
42 コースヒット判定用データ
50 CPU(制御部)
51 ヒット判定部(判定部、第1の変換部)
52 位相座標加工部(設定部)
53 座標変換部(第2の変換部)
54 視点位置計算部(計算部)
60 描画装置
70 表示装置(表示部)
100 車(移動体)
C カメラ(仮想視点)
D ダート
G 草地
S 日陰になる部分
T トンネル
【技術分野】
【0001】
本発明は、複数のポリゴンが配置された仮想3次元空間内のコース上で移動体が移動してゲームが進行するビデオゲーム機に関するものである。
【背景技術】
【0002】
従来、この種のビデオゲーム機には、例えば、車のレースゲームがあり、この車のレースゲームでは、遊技者がコースと車との関係を把握しやすいように、車の後方に仮想視点を設定することがある(3人称視点)。
しかし、この3人称視点では、車がコースの端を走行する場合に、トンネルの側壁(障害物)に仮想視点が潜り込んでしまい、車が見えなくなることが多かった。
そこで、このような場合には、仮想視点の位置を変更する必要があるが、そのときに行う視線交差判定は、計算量が増加してしまう欠点があった(例えば、特許文献1)。
【0003】
図13は、従来のビデオゲーム機を示すブロック図であり、図14は、ビデオゲームの進行イメージを示す図である。
従来のビデオゲーム機10Aは、ヒット判定部51,車挙動制御部55,照明制御部56,視点調整部57及び視線交差判定部58を有するCPU50と、表示用ポリゴンデータ41,コースヒット判定用データ42,路面情報データリスト43及び視線交差判定用データ44を有するメモリ40と、描画装置60などとを備え、CPU50がメモリ40から各種データを読み出し、描画装置60を介してディスプレイ(不図示)に映像を表示して、ゲームが進行する。
【0004】
そして、図14(A)に示すように、上述した3人称視点でゲームを進行していると、カーブなどで車100の進行方向を変えたときに、仮想視点となるカメラCが、トンネルTの側壁に潜り込んでしまうことがある。
そこで、図14(B)に示すように、カメラCの位置を変更する処理が必要となるが、この処理は、非常に複雑な処理となってしまう。
【0005】
この理由は、メモリ40の視線交差判定用データ44(図13参照)に、視線交差判定用のトンネルTのポリゴンを予め記憶させておかなければならず、また、CPU50の視線交差判定部58は、そのトンネルTのポリゴンとカメラCの視線とが交差しているか否かの判定を常に行わなければならないからである。
【0006】
また、視線交差判定部58は、視線が交差していると判定したときには、視点調整部57に判定結果を送信し、視点調整部57は、どの方向やどの位置にカメラCを移動させればよいかの演算を行う必要があるので、処理がさらに複雑になってしまっていた。
【特許文献1】特開2003−135844号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明の課題は、視線交差判定などの複雑な処理を回避し、処理量を軽減することができるビデオゲーム機を提供することである。
【課題を解決するための手段】
【0008】
前記課題を解決するために、請求項1の発明は、遊技者の操作情報が入力される入力部と、複数のポリゴンが配置された仮想3次元空間内のコース上で、前記操作情報に基づいて移動体を移動させ、その移動体を仮想視点で追尾させ、その仮想視点から見た前記移動体の映像を映像情報として出力する制御部と、前記映像情報に基づいて映像を表示する表示部とを備えるビデオゲーム機であって、前記コース上の所定の位置を示す位相座標を記憶している記憶部と、前記移動体が前記仮想3次元空間内のどの位置にいるかを判定する判定部と、前記判定部が判定した移動体の位置を、前記位相座標上の位置に変換する第1の変換部と、前記第1の変換部が変換した位相座標上の移動体の位置を基準として、その位置から所定間隔離れた位置に、前記位相座標上の仮想視点の位置を設定する設定部と、前記設定部が設定した位相座標上の仮想視点の位置を、前記仮想3次元空間内の位置に変換する第2の変換部と、前記第2の変換部が変換した仮想3次元空間内の仮想視点の位置に基づいて、前記仮想視点の位置を計算する計算部と、を備えるビデオゲーム機である。
請求項2の発明は、請求項1に記載のビデオゲーム機において、前記位相座標は、前記コースを直線と想定した場合に、そのコースの長手方向の軸と、そのコースの幅方向の軸とを備えるものであること、を特徴とするビデオゲーム機である。
請求項3の発明は、請求項2に記載のビデオゲーム機において、前記所定間隔離れた位置は、前記長手方向の軸方向の前方又は後方の位置であること、を特徴とするビデオゲーム機である。
請求項4の発明は、請求項2又は請求項3に記載のビデオゲーム機において、前記所定間隔離れた位置は、前記幅方向の軸方向に対して、固定された位置又は前記位相座標上の移動体の位置から所定の計算式で定まる位置であること、を特徴とするビデオゲーム機である。
請求項5の発明は、請求項2に記載のビデオゲーム機において、前記位相座標は、前記コースを直線と想定した場合に、そのコースの高さ方向の軸を備えるものであること、を特徴とするビデオゲーム機である。
請求項6の発明は、請求項5に記載のビデオゲーム機において、前記所定間隔離れた位置は、前記高さ方向の軸方向に対して、固定された位置又は前記位相座標上の移動体の位置から所定の計算式で定まる位置であること、を特徴とするビデオゲーム機である。
【発明の効果】
【0009】
本発明によれば、コース上の所定の位置を示す位相座標を用いて仮想視点の位置を計算することにより、常に、仮想視点がコース上に配置されるので、仮想視点と障害物との視線交差判定を行う必要がなくなり、処理量が軽減される。
また、もともと位相座標を使用しているゲーム機であれば、その位相座標を利用することによって、簡単に処理量を軽減させることができる。
【発明を実施するための最良の形態】
【0010】
本発明は、視線交差判定などの複雑な処理を回避し、処理量を軽減することができるビデオゲーム機を提供するという目的を、コース上の所定の位置を示す位相座標を用いてカメラの位置を制御することにより実現する。
【実施例】
【0011】
以下、図面等を参照して、本発明の実施例について、さらに詳しく説明する。
図1は、本発明によるビデオゲーム機の実施例を示す図であって、図1(A)は、ビデオゲーム機のハードウェアの概略構成を示すブロック図であり、図1(B)は、ビデオゲーム機の各機能部及び処理の流れを示すブロック図である。
本実施例によるビデオゲーム機10は、車のレースゲームを例にした3DCG(3次元コンピュータグラフィックス)ゲーム機であって、図1(A)に示すように、IO(入力部)20と、ストレージ30と、メモリ(記憶部)40と、CPU(制御部)50と、描画装置60と、表示装置(表示部)70などとを備える。
【0012】
IO20は、遊技者の操作情報が入力される部分であり、遊技者が実際に操作するハンドルなどに接続されている。
【0013】
ストレージ30は、ゲーム内容や処理プログラムを記憶している部分であり、例えば、HDDやCDなどである。
【0014】
メモリ40は、ポリゴンデータやヒットデータ、位相座標などを記憶している部分であり、図1(B)に示すように、コース,マップ及び車を表示するための表示用ポリゴンデータ41と、コースヒット用のコースヒット判定用データ42とを備える。
【0015】
ここで、位相座標とは、コース上の所定の位置を示す座標であり、コース上を移動するゲームではよく使用される。この座標は、コースを位相幾何学的に単純な2次元平面としたものであり、処理を簡略化するのに役立ち、特に、順位やCOMカー(コンピュータカー)の挙動決定に対して有効である。
例えば、コース沿いの距離をLとすると、L=0.0〜コース全長であり、コースの幅方向の位置をWとすると、W=−1.0〜+1.0となり、簡単な2次元座標で表現できる。また、座標値がこの数値範囲内にあれば、その位置は必ずコース上にある。
そこで、本発明では、これらの特徴を利用して、「位相座標」をカメラの設定に使用している(設定方法の詳細は後述)。
【0016】
CPU50は、ビデオゲーム機10やゲームの内容を制御している部分であり、複数のポリゴンが配置された仮想3次元空間内のコース上で、IO20からの操作情報に基づいて車(移動体)を移動させ、その車をカメラ(仮想視点)で追尾させ、そのカメラから見た車の映像を映像情報として出力する部分であり、図1(B)に示すように、ヒット判定部(判定部、第1の変換部)51と、位相座標加工部(設定部)52と、座標変換部(第2の変換部)53と、視点位置計算部(計算部)54とを備える。
【0017】
ヒット判定部51は、コースヒット判定用データ42からの情報に基づいて、車がいずれのポリゴンを通過しているのか(車が仮想3次元空間内のどの位置にいるか)を判定し、その判定した車の位置を、位相座標上の位置に変換する部分であり、変換結果を位相座標加工部52に送信する。
【0018】
位相座標加工部52は、ヒット判定部51が変換した位相座標上の車の位置を基準として、その位置から所定間隔離れた位置に、位相座標上のカメラの位置を設定する部分であり、設定結果を座標変換部53に送信する。
【0019】
座標変換部53は、位相座標加工部52が設定した位相座標上のカメラの位置を、コースヒット判定用データ42を参照しながら、仮想3次元空間内の位置に変換する部分であり、変換結果を視点位置計算部54に送信する。
【0020】
視点位置計算部54は、座標変換部53が変換した仮想3次元空間内のカメラの位置に基づいて、実際のカメラの位置を計算する部分であり、計算結果などを描画装置60に送信する。
【0021】
また、CPU50は、上述した従来のビデオゲーム機10Aと同様に、車の向きや傾きなどの車姿勢情報や、車のライティングの有無を決定するための車照明情報、カメラの高さを調整するための視点情報なども、適宜生成する。
【0022】
描画装置60は、ポリゴンなどの描画を行う部分であり、メモリ40の表示用ポリゴンデータ41、及び、CPU50で生成された各情報(カメラ位置の計算結果、車姿勢情報、車照明情報、視点情報など)に基づいて、ゲームの映像を描画し、表示装置70に映像情報を送信する。
【0023】
表示装置70は、描画装置60からの映像情報に基づいて、ゲームの映像を表示する部分であり、例えば、ディスプレイなどである。
【0024】
次に、車のレースゲームに使用する仮想3次元空間の作製手順について説明する。
図2〜図6は、各ポリゴンを模式的に示す図である。
まず、図2に示すように、表示用のマップポリゴンを用意する。
ついで、図3に示すように、コースヒット用の走行範囲設定ラインLを作製する。本実施例では、コースの中央と両端の3本のラインであるが、状況に応じてライン数を増減させてもよい。
さらに、図4に示すように、コースを格子状に区切り、路面情報用のポリゴンを作製する。
【0025】
そして、図5に示すように、ダートD、草地G、トンネルT、日陰になる部分Sなどのポリゴンを作製する。
最後に、上述した各ポリゴンをまとめて表示すると、図6に示すようなものになり、車の位置から路面方向に垂直に伸ばした線にぶつかるポリゴンの情報を読み取ることでヒット判定が行え、その場所の路面情報(路面の種類、路面の高さなど)や、車のコース上の位置(コース内か否か、スタート地点からの位置など)がわかる。なお、表示用のポリゴンをヒット判定に使用してもよい。
【0026】
次に、実際にゲームが進行する仮想3次元空間内のワールド座標(3次元座標、実座標)と位相座標との変換方法について説明する。なお、以下の座標変換は、CPU50の各機能部が行っている。
図7〜図11は、座標の変換方法を模式的に示す図である。
まず、図7に示すように、ワールド座標で見たコースのヒット用ポリゴンの各点の座標(ワールド座標位置ベクトル)を、
A(Xa,Ya,Za)
B(Xb,Yb,Zb)
・・・
F(Xf,Yf,Zf)
P(Xp,Yp,Zp)
と設定する。
ここで、点Pは、車の中心位置(ヒット判定位置)であり、三角形ABDのポリゴンにヒットしている。
【0027】
また、コースヒット判定用データ42(図1参照)は、以下のような2次元の頂点座標リストになっている。
・・・
A(Xa,Ya,Za)、B(Xb,Yb,Zb)、C(Xc,Yc,Zc)
D(Xd,Yd,Zd)、E(Xe,Ye,Ze)、F(Xf,Yf,Zf)
・・・
【0028】
ここで、図7のコースをまっすぐ伸ばしたコースの位相座標を考える。図8に示すように、位相座標は、コースを直線と想定した場合に、そのコースの進行方向(長手方向)及び幅方向の2軸を備える座標である。
例えば、コースの幅を−1.0〜+1.0、進行方向の1ステップ分を1.0とすると、各点の座標は以下のように表現できる。
A’(Ua,Va)=(−1.0,Va)
B’(Ub,Vb)=( 0.0,Va)
C’(Uc,Vc)=(+1.0,Va)
D’(Ud,Vd)=(−1.0,Va−1.0)
E’(Ue,Ve)=( 0.0,Va−1.0)
F’(Uf,Vf)=(+1.0,Va−1.0)
・・・
P’(Up,Vp)
なお、上記設定から、各点の座標値は整数であり、Vaも整数である。
【0029】
そして、最終的には、P’(Up,Vp)の値が算出できればよい。
ここで、Up,Vpは、点P’の座標を表す値でもあるが、Upは、点P’がコースの幅方向に対して、どの辺りに位置しているかの割合を示す値でもあり、Vpは、点P’が進行方向の1ステップに対して、どの辺りに位置しているかの割合を示す値でもある。
したがって、このUp,Vpの値は、割合という側面も備えているので、図7に示すワールド座標でも、そのまま利用することができ、ワールド座標の点Pは、
P=(B−A)|Up−Ua|+(D−A)|Vp−Va|+A・・・(1)
と表すことができる。
また、式(1)は、絶対値記号を用いずに表現すると、
P=(B−A)((Up−Ua)/(Ub−Ua))+(D−A)((Vp−Va)/(Vd−Va))+A・・・(2)
と表すことができる。
【0030】
そして、式(2)のA、B、D、Pに、ワールド座標の値を代入すると(本実施例では、Z座標は無視して、X座標、Y座標のみ計算)、
Xp=(Xb−Xa)((Up−Ua)/(Ub−Ua))+(Xd−Xa)((Vp−Va)/(Vd−Va))+Xa・・・(3)
Yp=(Yb−Ya)((Up−Ua)/(Ub−Ua))+(Yd−Ya)((Vp−Va)/(Vd−Va))+Ya・・・(4)
となる。
ここで、((Up−Ua)/(Ub−Ua))=αとし、((Vp−Va)/(Vd−Va))=βとして、α及びβについて連立方程式を解くと、
α=((Xd−Xa)(Ya−Yp)+(Yd−Ya)(Xp−Xa))/((Xb−Xa)(Yd−Ya)−(Xd−Xa)(Yb−Ya))・・・(5)
β=((Xb−Xa)(Yp−Ya)+(Yb−Ya)(Xa−Xp))/((Xb−Xa)(Yd−Ya)−(Yb−Ya)(Xd−Xa))・・・(6)
となる。
そして、式(5)(6)を用いて、Up及びVpについて整理すると、
Up=((Ub−Ua)((Xd−Xa)(Ya−Yp)+(Yd−Ya)(Xp−Xa))/((Xb−Xa)(Yd−Ya)−(Xd−Xa)(Yb−Ya)))+Ua・・・(7)
Vp=((Vd−Va)((Xb−Xa)(Yp−Ya)+(Yb−Ya)(Xa−Xp))/((Xb−Xa)(Yd−Ya)−(Yb−Ya)(Xd−Xa)))+Va・・・(8)
となる。
【0031】
次に、カメラ位置を計算する。
図9に示すように、位相座標上のカメラ位置Q’は、位相座標上の車の位置(点P’)を基準として、その位置から、進行方向に対して後方の所定間隔離れた位置に設定する。本実施例では、進行方向の位置は、点P’から−3.0の位置であり、幅方向の位置は、点P’と同じ位置であり、点Q’は、三角形I’J’L’のポリゴンにヒットしている。なお、マイナス値は、見え方をよくするために、実際にゲームが進行する仮想3次元空間内で、3〜6m程度となるように設定することが好ましい。
これを式で表すと、
Q’(Uq,Vq)=(Up,Vp−3.0)・・・(9)
となる。
【0032】
そして、この位置Q’をワールド座標上の位置(実際にカメラを設定する位置=点Q)に戻すためには、以下の計算をする。
まず、上述した車の位置Pと同様に、ワールド座標上でのカメラ位置を式で表すと、
Q(カメラ位置)=(J−I)|Uq−Ui|+(L−I)|Vq−Vi|+I・・・(10)
となる。
また、式(10)は、絶対値記号を用いずに表現すると、
Q=(J−I)((Uq−Ui)/(Uj−Ui))+(L−I)((Vq−Vi)/(Vl−Vi))+I・・・(11)
と表すことができる。
ついで、式(11)のI、J、Lに、ワールド座標の値を代入すると、
Xq=(Xj−Xi)((Uq−Ui)/(Uj−Ui))+(Xl−Xi)((Vq−Vi)/(Vl−Vi))+Xi・・・(12)
Yq=(Yj−Yi)((Uq−Ui)/(Uj−Ui))+(Yl−Yi)((Vq−Vi)/(Vl−Vi))+Yi・・・(13)
となる。
さらに、式(7)〜(9)のUp、Vp、Uq、Vqの各値を、式(12)(13)に代入すると、
Xq=(Xj−Xi)(((((Ub−Ua)((Xd−Xa)(Ya−Yp)+(Yd−Ya)(Xp−Xa))/((Xb−Xa)(Yd−Ya)−(Xd−Xa)(Yb−Ya)))+Ua)−Ui)/(Uj−Ui))+(Xl−Xi)(((((Vd−Va)((Xb−Xa)(Yp−Ya)+(Yb−Ya)(Xa−Xp))/((Xb−Xa)(Yd−Ya)−(Yb−Ya)(Xd−Xa)))+Va)−3.0−Vi)/(Vl−Vi))+Xi・・・(14)
Yq=(Yj−Yi)(((((Ub−Ua)((Xd−Xa)(Ya−Yp)+(Yd−Ya)(Xp−Xa))/((Xb−Xa)(Yd−Ya)−(Xd−Xa)(Yb−Ya)))+Ua)−Ui)/(Uj−Ui))+(Yl−Yi)(((((Vd−Va)((Xb−Xa)(Yp−Ya)+(Yb−Ya)(Xa−Xp))/((Xb−Xa)(Yd−Ya)−(Yb−Ya)(Xd−Xa)))+Va)−3.0−Vi)/(Vl−Vi))+Yi・・・(15)
となる。
そして、式(14)(15)を用いて、図10に示すように、実際にカメラを設定する位置(点Q)を計算することができる。
【0033】
また、点Qを求める別の方法として、図11に示すような方法がある。
この方法では、点Qが、点Iと点Lの間のどの辺りに位置しているかを示す点Rと、点Qが、点Jと点Mの間のどの辺りに位置しているかを示す点Sとした場合に、点R、点Sは、
R=L|Vq−Vi|+I(1.0−|Vq−Vi|)・・・(16)
S=M|Vq−Vj|+J(1.0−|Vq−Vj|)・・・(17)
と表すことができ、点R及び点Sから、点Qは、
Q=R|Uq−Uj|+S(1.0−|Uq−Uj|)・・・(18)
と表すことができる。
また、式(16)〜(18)は、絶対値記号を用いずに表現すると、
R=L((Vq−Vi)/(Vl−Vi))+I(1.0−((Vq−Vi)/(Vl−Vi)))・・・(19)
S=M((Vq−Vj)/(Vm−Vj))+J(1.0−((Vq−Vj)/(Vm−Vj)))・・・(20)
Q=R((Uq−Uj)/(Ui−Uj))+S(1.0−((Uq−Uj)/(Ui−Uj)))・・・(21)
と表すことができる。
さらに、位相座標の設定より、Vi=Vj、Uj=0.0なので、
R=L|Vq−Vj|+I(1.0−|Vq−Vj|)・・・(22)
S=M|Vq−Vj|+J(1.0−|Vq−Vj|)・・・(23)
Q=R|Uq|+S(1.0−|Uq|)・・・(24)
と表すことができる。
そして、式(21)又は式(24)を用いて点Qを求めてもよい。なお、この例では、この点R、点Sを求めるのに、線形補完を使用したが、前後のステップの座標も用いてスプライン補完などの曲線補完方法で求めてもよい。ここで、スプライン補完とは、各点のデータを用いて最小曲率面を当てはめる補完方法であり、CGやCADでよく使用されている。
【0034】
次に、図1及び図12を参照しながら、本実施例によるビデオゲーム機10の動作について説明する。
図12は、ビデオゲームの進行イメージを示す図である。
ゲームを開始し、遊技者がハンドルなどを操作すると、CPU50(図1参照)は、IO20からの操作情報に応じて、車100を走行させる。
そして、図12(A)に示すように、車100がトンネルT内のカーブにさしかかり、遊技者がハンドルを左にきると、図12(B)に示すように、車100が左に曲がる。
このとき、カメラCは、上述した計算によって必ずコース上に配置されるので、トンネルTの側壁に潜り込まずに車100を追尾することができる。
【0035】
このように、本実施例によれば、コース上の所定の位置を示す位相座標を用いてカメラCの位置を計算することにより、常に、カメラCがコース上に配置されるので、カメラCとトンネルTの側壁との視線交差判定を行う必要がなくなり、処理量が軽減される。
また、ワールド座標で、車の何メートル後方という計算は、非常に複雑な計算となり、しかも、カーブでは対応することができないが、2次元の位相座標を用いて後方の位置を計算すれば、簡単にコース内の後方の位置を計算することができる。
【0036】
さらに、順位計算をするためや、路面とのヒットを取るために、もともと位相座標を使用しているゲーム機であれば、その位相座標を利用してカメラ位置を計算することによって、簡単に処理量を軽減させることができ、また、座標変換に特別な処理を追加しなくてもよいので、制御プログラムの大幅な変更も必要ない。
さらにまた、コース上のカーブのみならず、直線でも上述したようにカメラを制御することによって、横に向いて車が走行した場合や、車が蛇行しながら走行した場合であっても、側壁に潜り込まないカメラとすることができる。
【0037】
(変形例)
以上説明した実施例に限定されることなく、種々の変形や変更が可能であって、それらも本発明の均等の範囲内である。
(1)ゲームの種類は、車のレースゲームに限られず、決まったコース上を移動するようなゲーム、例えば、競馬ゲーム、スキーゲーム、電車ゲームなどであってもよい。
(2)本実施例では、初めから3人称視点で車を見ているゲームの例で説明したが、複数の視点の中から3人称視点を選択できるようなゲームであってもよい。
(3)障害物は、トンネルの側壁の例で説明したが、例えば、建物や陸橋などであってもよい。
【0038】
(4)カメラの位置は、例えば、車に対して20〜30m程度後方に配置するようにしてもよい。このようにすれば、中継車のような視点を提供することができ、このようにカメラを遠く離しても、カメラはコース上に配置されるので、トンネルの側壁の裏側が見えてしまうような状態にはならない。
(5)カメラの位置は、位相座標上の車の位置から、進行方向に対して後方の位置に設定する例で説明したが、進行方向に対して前方の位置に設定してもよい。このようにすれば、リプレイ演出時に、前方から車を見た映像を表示したい場合に、カメラが側壁に潜ることがない。
【0039】
(6)位相座標上では、カメラの幅方向の位置は、車と同じ位置に設定する例で説明したが、車の位置とは無関係の固定された位置、例えば、センターライン上や、側壁に近い位置に設定してもよく、また、車の位置から所定の計算式で定まる位置、例えば、車の移動量の半分の値や、車の幅方向の値と正負が逆の値となるような位置に設定してもよい。
このようにすれば、側壁への潜り込みを防止しつつ、より見やすい仮想視点とすることができる。特に、固定値であれば、コース幅が狭くなっても、幅方向の割合が固定されているので、カメラが滑らかに移動し、さらに見やすい映像を提供できる。
【0040】
(7)位相座標は、2次元座標の例で説明したが、コースの高さ方向の軸を加えて3次元座標としてもよい。このようにすれば、立体的なチューブ状のコースを飛行体が進んでいくようなゲームに有効である。
また、カメラ位置は、その高さ方向の軸方向に対して、固定された位置や移動体の位置から所定の計算式で定まる位置に設定してもよい。このようにすれば、高さ方向に対しても、上述した幅方向と同様の制御を行うことができる。
【図面の簡単な説明】
【0041】
【図1】本発明によるビデオゲーム機の実施例を示す図である。
【図2】各ポリゴンを模式的に示す図である。
【図3】各ポリゴンを模式的に示す図である。
【図4】各ポリゴンを模式的に示す図である。
【図5】各ポリゴンを模式的に示す図である。
【図6】各ポリゴンを模式的に示す図である。
【図7】座標の変換方法を模式的に示す図である。
【図8】座標の変換方法を模式的に示す図である。
【図9】座標の変換方法を模式的に示す図である。
【図10】座標の変換方法を模式的に示す図である。
【図11】座標の変換方法を模式的に示す図である。
【図12】ビデオゲームの進行イメージを示す図である。
【図13】従来のビデオゲーム機を示すブロック図である。
【図14】ビデオゲームの進行イメージを示す図である。
【符号の説明】
【0042】
10 ビデオゲーム機
20 IO(入力部)
30 ストレージ
40 メモリ(記憶部)
41 表示用ポリゴンデータ
42 コースヒット判定用データ
50 CPU(制御部)
51 ヒット判定部(判定部、第1の変換部)
52 位相座標加工部(設定部)
53 座標変換部(第2の変換部)
54 視点位置計算部(計算部)
60 描画装置
70 表示装置(表示部)
100 車(移動体)
C カメラ(仮想視点)
D ダート
G 草地
S 日陰になる部分
T トンネル
【特許請求の範囲】
【請求項1】
遊技者の操作情報が入力される入力部と、
複数のポリゴンが配置された仮想3次元空間内のコース上で、前記操作情報に基づいて移動体を移動させ、その移動体を仮想視点で追尾させ、その仮想視点から見た前記移動体の映像を映像情報として出力する制御部と、
前記映像情報に基づいて映像を表示する表示部とを備えるビデオゲーム機であって、
前記コース上の所定の位置を示す位相座標を記憶している記憶部と、
前記移動体が前記仮想3次元空間内のどの位置にいるかを判定する判定部と、
前記判定部が判定した移動体の位置を、前記位相座標上の位置に変換する第1の変換部と、
前記第1の変換部が変換した位相座標上の移動体の位置を基準として、その位置から所定間隔離れた位置に、前記位相座標上の仮想視点の位置を設定する設定部と、
前記設定部が設定した位相座標上の仮想視点の位置を、前記仮想3次元空間内の位置に変換する第2の変換部と、
前記第2の変換部が変換した仮想3次元空間内の仮想視点の位置に基づいて、前記仮想視点の位置を計算する計算部と、
を備えるビデオゲーム機。
【請求項2】
請求項1に記載のビデオゲーム機において、
前記位相座標は、前記コースを直線と想定した場合に、そのコースの長手方向の軸と、そのコースの幅方向の軸とを備えるものであること、
を特徴とするビデオゲーム機。
【請求項3】
請求項2に記載のビデオゲーム機において、
前記所定間隔離れた位置は、前記長手方向の軸方向の前方又は後方の位置であること、
を特徴とするビデオゲーム機。
【請求項4】
請求項2又は請求項3に記載のビデオゲーム機において、
前記所定間隔離れた位置は、前記幅方向の軸方向に対して、固定された位置又は前記位相座標上の移動体の位置から所定の計算式で定まる位置であること、
を特徴とするビデオゲーム機。
【請求項5】
請求項2に記載のビデオゲーム機において、
前記位相座標は、前記コースを直線と想定した場合に、そのコースの高さ方向の軸を備えるものであること、
を特徴とするビデオゲーム機。
【請求項6】
請求項5に記載のビデオゲーム機において、
前記所定間隔離れた位置は、前記高さ方向の軸方向に対して、固定された位置又は前記位相座標上の移動体の位置から所定の計算式で定まる位置であること、
を特徴とするビデオゲーム機。
【請求項1】
遊技者の操作情報が入力される入力部と、
複数のポリゴンが配置された仮想3次元空間内のコース上で、前記操作情報に基づいて移動体を移動させ、その移動体を仮想視点で追尾させ、その仮想視点から見た前記移動体の映像を映像情報として出力する制御部と、
前記映像情報に基づいて映像を表示する表示部とを備えるビデオゲーム機であって、
前記コース上の所定の位置を示す位相座標を記憶している記憶部と、
前記移動体が前記仮想3次元空間内のどの位置にいるかを判定する判定部と、
前記判定部が判定した移動体の位置を、前記位相座標上の位置に変換する第1の変換部と、
前記第1の変換部が変換した位相座標上の移動体の位置を基準として、その位置から所定間隔離れた位置に、前記位相座標上の仮想視点の位置を設定する設定部と、
前記設定部が設定した位相座標上の仮想視点の位置を、前記仮想3次元空間内の位置に変換する第2の変換部と、
前記第2の変換部が変換した仮想3次元空間内の仮想視点の位置に基づいて、前記仮想視点の位置を計算する計算部と、
を備えるビデオゲーム機。
【請求項2】
請求項1に記載のビデオゲーム機において、
前記位相座標は、前記コースを直線と想定した場合に、そのコースの長手方向の軸と、そのコースの幅方向の軸とを備えるものであること、
を特徴とするビデオゲーム機。
【請求項3】
請求項2に記載のビデオゲーム機において、
前記所定間隔離れた位置は、前記長手方向の軸方向の前方又は後方の位置であること、
を特徴とするビデオゲーム機。
【請求項4】
請求項2又は請求項3に記載のビデオゲーム機において、
前記所定間隔離れた位置は、前記幅方向の軸方向に対して、固定された位置又は前記位相座標上の移動体の位置から所定の計算式で定まる位置であること、
を特徴とするビデオゲーム機。
【請求項5】
請求項2に記載のビデオゲーム機において、
前記位相座標は、前記コースを直線と想定した場合に、そのコースの高さ方向の軸を備えるものであること、
を特徴とするビデオゲーム機。
【請求項6】
請求項5に記載のビデオゲーム機において、
前記所定間隔離れた位置は、前記高さ方向の軸方向に対して、固定された位置又は前記位相座標上の移動体の位置から所定の計算式で定まる位置であること、
を特徴とするビデオゲーム機。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2007−44320(P2007−44320A)
【公開日】平成19年2月22日(2007.2.22)
【国際特許分類】
【出願番号】特願2005−232820(P2005−232820)
【出願日】平成17年8月11日(2005.8.11)
【出願人】(306019111)株式会社タイトー (475)
【Fターム(参考)】
【公開日】平成19年2月22日(2007.2.22)
【国際特許分類】
【出願日】平成17年8月11日(2005.8.11)
【出願人】(306019111)株式会社タイトー (475)
【Fターム(参考)】
[ Back to top ]