(57)【要約】【課題】視線交差判定などの複雑な処理を回避し、処理量を軽減することができるビデオゲーム機を提供する。【解決手段】ビデオゲーム機１０は、遊技者の操作情報が入力されるＩＯ２０と、複数のポリゴンが配置された仮想３次元空間内のコース上で、操作情報に基づいて車（移動体）を移動させ、その車をカメラ（仮想視点）で追尾させ、そのカメラから見た車の映像を映像情報として出力するＣＰＵ５０と、映像情報に基づいて映像を表示する表示装置７０と、コース上の所定の位置を示す位相座標を記憶しているメモリ４０と、車の位置を判定するヒット判定部５１と、判定した車の位置を位相座標上の位置に変換し、その車の位置から位相座標上のカメラの位置を設定する位置座標加工部５２と、そのカメラの位置を仮想３次元空間内の位置に変換する座標変換部５３と、仮想３次元空間内の実際のカメラの位置を計算する視点位置計算部５４とを備える。【選択図】図１
2007044320.tif 000002
【特許請求の範囲】
【請求項１】
遊技者の操作情報が入力される入力部と、
複数のポリゴンが配置された仮想３次元空間内のコース上で、前記操作情報に基づいて移動体を移動させ、その移動体を仮想視点で追尾させ、その仮想視点から見た前記移動体の映像を映像情報として出力する制御部と、
前記映像情報に基づいて映像を表示する表示部とを備えるビデオゲーム機であって、
前記コース上の所定の位置を示す位相座標を記憶している記憶部と、
前記移動体が前記仮想３次元空間内のどの位置にいるかを判定する判定部と、
前記判定部が判定した移動体の位置を、前記位相座標上の位置に変換する第１の変換部と、
前記第１の変換部が変換した位相座標上の移動体の位置を基準として、その位置から所定間隔離れた位置に、前記位相座標上の仮想視点の位置を設定する設定部と、
前記設定部が設定した位相座標上の仮想視点の位置を、前記仮想３次元空間内の位置に変換する第２の変換部と、
前記第２の変換部が変換した仮想３次元空間内の仮想視点の位置に基づいて、前記仮想視点の位置を計算する計算部と、
を備えるビデオゲーム機。
【請求項２】
請求項１に記載のビデオゲーム機において、
前記位相座標は、前記コースを直線と想定した場合に、そのコースの長手方向の軸と、そのコースの幅方向の軸とを備えるものであること、
を特徴とするビデオゲーム機。
【請求項３】
請求項２に記載のビデオゲーム機において、
前記所定間隔離れた位置は、前記長手方向の軸方向の前方又は後方の位置であること、
を特徴とするビデオゲーム機。
【請求項４】
請求項２又は請求項３に記載のビデオゲーム機において、
前記所定間隔離れた位置は、前記幅方向の軸方向に対して、固定された位置又は前記位相座標上の移動体の位置から所定の計算式で定まる位置であること、
を特徴とするビデオゲーム機。
【請求項５】
請求項２に記載のビデオゲーム機において、
前記位相座標は、前記コースを直線と想定した場合に、そのコースの高さ方向の軸を備えるものであること、
を特徴とするビデオゲーム機。
【請求項６】
請求項５に記載のビデオゲーム機において、
前記所定間隔離れた位置は、前記高さ方向の軸方向に対して、固定された位置又は前記位相座標上の移動体の位置から所定の計算式で定まる位置であること、
を特徴とするビデオゲーム機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のポリゴンが配置された仮想３次元空間内のコース上で移動体が移動してゲームが進行するビデオゲーム機に関するものである。
【背景技術】
【０００２】
従来、この種のビデオゲーム機には、例えば、車のレースゲームがあり、この車のレースゲームでは、遊技者がコースと車との関係を把握しやすいように、車の後方に仮想視点を設定することがある（３人称視点）。
しかし、この３人称視点では、車がコースの端を走行する場合に、トンネルの側壁（障害物）に仮想視点が潜り込んでしまい、車が見えなくなることが多かった。
そこで、このような場合には、仮想視点の位置を変更する必要があるが、そのときに行う視線交差判定は、計算量が増加してしまう欠点があった（例えば、特許文献１）。
【０００３】
図１３は、従来のビデオゲーム機を示すブロック図であり、図１４は、ビデオゲームの進行イメージを示す図である。
従来のビデオゲーム機１０Ａは、ヒット判定部５１，車挙動制御部５５，照明制御部５６，視点調整部５７及び視線交差判定部５８を有するＣＰＵ５０と、表示用ポリゴンデータ４１，コースヒット判定用データ４２，路面情報データリスト４３及び視線交差判定用データ４４を有するメモリ４０と、描画装置６０などとを備え、ＣＰＵ５０がメモリ４０から各種データを読み出し、描画装置６０を介してディスプレイ（不図示）に映像を表示して、ゲームが進行する。
【０００４】
そして、図１４（Ａ）に示すように、上述した３人称視点でゲームを進行していると、カーブなどで車１００の進行方向を変えたときに、仮想視点となるカメラＣが、トンネルＴの側壁に潜り込んでしまうことがある。
そこで、図１４（Ｂ）に示すように、カメラＣの位置を変更する処理が必要となるが、この処理は、非常に複雑な処理となってしまう。
【０００５】
この理由は、メモリ４０の視線交差判定用データ４４（図１３参照）に、視線交差判定用のトンネルＴのポリゴンを予め記憶させておかなければならず、また、ＣＰＵ５０の視線交差判定部５８は、そのトンネルＴのポリゴンとカメラＣの視線とが交差しているか否かの判定を常に行わなければならないからである。
【０００６】
また、視線交差判定部５８は、視線が交差していると判定したときには、視点調整部５７に判定結果を送信し、視点調整部５７は、どの方向やどの位置にカメラＣを移動させればよいかの演算を行う必要があるので、処理がさらに複雑になってしまっていた。
【特許文献１】特開２００３−１３５８４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の課題は、視線交差判定などの複雑な処理を回避し、処理量を軽減することができるビデオゲーム機を提供することである。
【課題を解決するための手段】
【０００８】
前記課題を解決するために、請求項１の発明は、遊技者の操作情報が入力される入力部と、複数のポリゴンが配置された仮想３次元空間内のコース上で、前記操作情報に基づいて移動体を移動させ、その移動体を仮想視点で追尾させ、その仮想視点から見た前記移動体の映像を映像情報として出力する制御部と、前記映像情報に基づいて映像を表示する表示部とを備えるビデオゲーム機であって、前記コース上の所定の位置を示す位相座標を記憶している記憶部と、前記移動体が前記仮想３次元空間内のどの位置にいるかを判定する判定部と、前記判定部が判定した移動体の位置を、前記位相座標上の位置に変換する第１の変換部と、前記第１の変換部が変換した位相座標上の移動体の位置を基準として、その位置から所定間隔離れた位置に、前記位相座標上の仮想視点の位置を設定する設定部と、前記設定部が設定した位相座標上の仮想視点の位置を、前記仮想３次元空間内の位置に変換する第２の変換部と、前記第２の変換部が変換した仮想３次元空間内の仮想視点の位置に基づいて、前記仮想視点の位置を計算する計算部と、を備えるビデオゲーム機である。
請求項２の発明は、請求項１に記載のビデオゲーム機において、前記位相座標は、前記コースを直線と想定した場合に、そのコースの長手方向の軸と、そのコースの幅方向の軸とを備えるものであること、を特徴とするビデオゲーム機である。
請求項３の発明は、請求項２に記載のビデオゲーム機において、前記所定間隔離れた位置は、前記長手方向の軸方向の前方又は後方の位置であること、を特徴とするビデオゲーム機である。
請求項４の発明は、請求項２又は請求項３に記載のビデオゲーム機において、前記所定間隔離れた位置は、前記幅方向の軸方向に対して、固定された位置又は前記位相座標上の移動体の位置から所定の計算式で定まる位置であること、を特徴とするビデオゲーム機である。
請求項５の発明は、請求項２に記載のビデオゲーム機において、前記位相座標は、前記コースを直線と想定した場合に、そのコースの高さ方向の軸を備えるものであること、を特徴とするビデオゲーム機である。
請求項６の発明は、請求項５に記載のビデオゲーム機において、前記所定間隔離れた位置は、前記高さ方向の軸方向に対して、固定された位置又は前記位相座標上の移動体の位置から所定の計算式で定まる位置であること、を特徴とするビデオゲーム機である。
【発明の効果】
【０００９】
本発明によれば、コース上の所定の位置を示す位相座標を用いて仮想視点の位置を計算することにより、常に、仮想視点がコース上に配置されるので、仮想視点と障害物との視線交差判定を行う必要がなくなり、処理量が軽減される。
また、もともと位相座標を使用しているゲーム機であれば、その位相座標を利用することによって、簡単に処理量を軽減させることができる。
【発明を実施するための最良の形態】
【００１０】
本発明は、視線交差判定などの複雑な処理を回避し、処理量を軽減することができるビデオゲーム機を提供するという目的を、コース上の所定の位置を示す位相座標を用いてカメラの位置を制御することにより実現する。
【実施例】
【００１１】
以下、図面等を参照して、本発明の実施例について、さらに詳しく説明する。
図１は、本発明によるビデオゲーム機の実施例を示す図であって、図１（Ａ）は、ビデオゲーム機のハードウェアの概略構成を示すブロック図であり、図１（Ｂ）は、ビデオゲーム機の各機能部及び処理の流れを示すブロック図である。
本実施例によるビデオゲーム機１０は、車のレースゲームを例にした３ＤＣＧ（３次元コンピュータグラフィックス）ゲーム機であって、図１（Ａ）に示すように、ＩＯ（入力部）２０と、ストレージ３０と、メモリ（記憶部）４０と、ＣＰＵ（制御部）５０と、描画装置６０と、表示装置（表示部）７０などとを備える。
【００１２】
ＩＯ２０は、遊技者の操作情報が入力される部分であり、遊技者が実際に操作するハンドルなどに接続されている。
【００１３】
ストレージ３０は、ゲーム内容や処理プログラムを記憶している部分であり、例えば、ＨＤＤやＣＤなどである。
【００１４】
メモリ４０は、ポリゴンデータやヒットデータ、位相座標などを記憶している部分であり、図１（Ｂ）に示すように、コース，マップ及び車を表示するための表示用ポリゴンデータ４１と、コースヒット用のコースヒット判定用データ４２とを備える。
【００１５】
ここで、位相座標とは、コース上の所定の位置を示す座標であり、コース上を移動するゲームではよく使用される。この座標は、コースを位相幾何学的に単純な２次元平面としたものであり、処理を簡略化するのに役立ち、特に、順位やＣＯＭカー（コンピュータカー）の挙動決定に対して有効である。
例えば、コース沿いの距離をＬとすると、Ｌ＝０．０〜コース全長であり、コースの幅方向の位置をＷとすると、Ｗ＝−１．０〜＋１．０となり、簡単な２次元座標で表現できる。また、座標値がこの数値範囲内にあれば、その位置は必ずコース上にある。
そこで、本発明では、これらの特徴を利用して、「位相座標」をカメラの設定に使用している（設定方法の詳細は後述）。
【００１６】
ＣＰＵ５０は、ビデオゲーム機１０やゲームの内容を制御している部分であり、複数のポリゴンが配置された仮想３次元空間内のコース上で、ＩＯ２０からの操作情報に基づいて車（移動体）を移動させ、その車をカメラ（仮想視点）で追尾させ、そのカメラから見た車の映像を映像情報として出力する部分であり、図１（Ｂ）に示すように、ヒット判定部（判定部、第１の変換部）５１と、位相座標加工部（設定部）５２と、座標変換部（第２の変換部）５３と、視点位置計算部（計算部）５４とを備える。
【００１７】
ヒット判定部５１は、コースヒット判定用データ４２からの情報に基づいて、車がいずれのポリゴンを通過しているのか（車が仮想３次元空間内のどの位置にいるか）を判定し、その判定した車の位置を、位相座標上の位置に変換する部分であり、変換結果を位相座標加工部５２に送信する。
【００１８】
位相座標加工部５２は、ヒット判定部５１が変換した位相座標上の車の位置を基準として、その位置から所定間隔離れた位置に、位相座標上のカメラの位置を設定する部分であり、設定結果を座標変換部５３に送信する。
【００１９】
座標変換部５３は、位相座標加工部５２が設定した位相座標上のカメラの位置を、コースヒット判定用データ４２を参照しながら、仮想３次元空間内の位置に変換する部分であり、変換結果を視点位置計算部５４に送信する。
【００２０】
視点位置計算部５４は、座標変換部５３が変換した仮想３次元空間内のカメラの位置に基づいて、実際のカメラの位置を計算する部分であり、計算結果などを描画装置６０に送信する。
【００２１】
また、ＣＰＵ５０は、上述した従来のビデオゲーム機１０Ａと同様に、車の向きや傾きなどの車姿勢情報や、車のライティングの有無を決定するための車照明情報、カメラの高さを調整するための視点情報なども、適宜生成する。
【００２２】
描画装置６０は、ポリゴンなどの描画を行う部分であり、メモリ４０の表示用ポリゴンデータ４１、及び、ＣＰＵ５０で生成された各情報（カメラ位置の計算結果、車姿勢情報、車照明情報、視点情報など）に基づいて、ゲームの映像を描画し、表示装置７０に映像情報を送信する。
【００２３】
表示装置７０は、描画装置６０からの映像情報に基づいて、ゲームの映像を表示する部分であり、例えば、ディスプレイなどである。
【００２４】
次に、車のレースゲームに使用する仮想３次元空間の作製手順について説明する。
図２〜図６は、各ポリゴンを模式的に示す図である。
まず、図２に示すように、表示用のマップポリゴンを用意する。
ついで、図３に示すように、コースヒット用の走行範囲設定ラインＬを作製する。本実施例では、コースの中央と両端の３本のラインであるが、状況に応じてライン数を増減させてもよい。
さらに、図４に示すように、コースを格子状に区切り、路面情報用のポリゴンを作製する。
【００２５】
そして、図５に示すように、ダートＤ、草地Ｇ、トンネルＴ、日陰になる部分Ｓなどのポリゴンを作製する。
最後に、上述した各ポリゴンをまとめて表示すると、図６に示すようなものになり、車の位置から路面方向に垂直に伸ばした線にぶつかるポリゴンの情報を読み取ることでヒット判定が行え、その場所の路面情報（路面の種類、路面の高さなど）や、車のコース上の位置（コース内か否か、スタート地点からの位置など）がわかる。なお、表示用のポリゴンをヒット判定に使用してもよい。
【００２６】
次に、実際にゲームが進行する仮想３次元空間内のワールド座標（３次元座標、実座標）と位相座標との変換方法について説明する。なお、以下の座標変換は、ＣＰＵ５０の各機能部が行っている。
図７〜図１１は、座標の変換方法を模式的に示す図である。
まず、図７に示すように、ワールド座標で見たコースのヒット用ポリゴンの各点の座標（ワールド座標位置ベクトル）を、
Ａ（Ｘａ，Ｙａ，Ｚａ）
Ｂ（Ｘｂ，Ｙｂ，Ｚｂ）
・・・
Ｆ（Ｘｆ，Ｙｆ，Ｚｆ）
Ｐ（Ｘｐ，Ｙｐ，Ｚｐ）
と設定する。
ここで、点Ｐは、車の中心位置（ヒット判定位置）であり、三角形ＡＢＤのポリゴンにヒットしている。
【００２７】
また、コースヒット判定用データ４２（図１参照）は、以下のような２次元の頂点座標リストになっている。
・・・
Ａ（Ｘａ，Ｙａ，Ｚａ）、Ｂ（Ｘｂ，Ｙｂ，Ｚｂ）、Ｃ（Ｘｃ，Ｙｃ，Ｚｃ）
Ｄ（Ｘｄ，Ｙｄ，Ｚｄ）、Ｅ（Ｘｅ，Ｙｅ，Ｚｅ）、Ｆ（Ｘｆ，Ｙｆ，Ｚｆ）
・・・
【００２８】
ここで、図７のコースをまっすぐ伸ばしたコースの位相座標を考える。図８に示すように、位相座標は、コースを直線と想定した場合に、そのコースの進行方向（長手方向）及び幅方向の２軸を備える座標である。
例えば、コースの幅を−１．０〜＋１．０、進行方向の１ステップ分を１．０とすると、各点の座標は以下のように表現できる。
Ａ’（Ｕａ，Ｖａ）＝（−１．０，Ｖａ）
Ｂ’（Ｕｂ，Ｖｂ）＝（  ０．０，Ｖａ）
Ｃ’（Ｕｃ，Ｖｃ）＝（＋１．０，Ｖａ）
Ｄ’（Ｕｄ，Ｖｄ）＝（−１．０，Ｖａ−１．０）
Ｅ’（Ｕｅ，Ｖｅ）＝（  ０．０，Ｖａ−１．０）
Ｆ’（Ｕｆ，Ｖｆ）＝（＋１．０，Ｖａ−１．０）
・・・
Ｐ’（Ｕｐ，Ｖｐ）
なお、上記設定から、各点の座標値は整数であり、Ｖａも整数である。
【００２９】
そして、最終的には、Ｐ’（Ｕｐ，Ｖｐ）の値が算出できればよい。
ここで、Ｕｐ，Ｖｐは、点Ｐ’の座標を表す値でもあるが、Ｕｐは、点Ｐ’がコースの幅方向に対して、どの辺りに位置しているかの割合を示す値でもあり、Ｖｐは、点Ｐ’が進行方向の１ステップに対して、どの辺りに位置しているかの割合を示す値でもある。
したがって、このＵｐ，Ｖｐの値は、割合という側面も備えているので、図７に示すワールド座標でも、そのまま利用することができ、ワールド座標の点Ｐは、
Ｐ＝（Ｂ−Ａ）｜Ｕｐ−Ｕａ｜＋（Ｄ−Ａ）｜Ｖｐ−Ｖａ｜＋Ａ・・・（１）
と表すことができる。
また、式（１）は、絶対値記号を用いずに表現すると、
Ｐ＝（Ｂ−Ａ）（（Ｕｐ−Ｕａ）／（Ｕｂ−Ｕａ））＋（Ｄ−Ａ）（（Ｖｐ−Ｖａ）／（Ｖｄ−Ｖａ））＋Ａ・・・（２）
と表すことができる。
【００３０】
そして、式（２）のＡ、Ｂ、Ｄ、Ｐに、ワールド座標の値を代入すると（本実施例では、Ｚ座標は無視して、Ｘ座標、Ｙ座標のみ計算）、
Ｘｐ＝（Ｘｂ−Ｘａ）（（Ｕｐ−Ｕａ）／（Ｕｂ−Ｕａ））＋（Ｘｄ−Ｘａ）（（Ｖｐ−Ｖａ）／（Ｖｄ−Ｖａ））＋Ｘａ・・・（３）
Ｙｐ＝（Ｙｂ−Ｙａ）（（Ｕｐ−Ｕａ）／（Ｕｂ−Ｕａ））＋（Ｙｄ−Ｙａ）（（Ｖｐ−Ｖａ）／（Ｖｄ−Ｖａ））＋Ｙａ・・・（４）
となる。
ここで、（（Ｕｐ−Ｕａ）／（Ｕｂ−Ｕａ））＝αとし、（（Ｖｐ−Ｖａ）／（Ｖｄ−Ｖａ））＝βとして、α及びβについて連立方程式を解くと、
α＝（（Ｘｄ−Ｘａ）（Ｙａ−Ｙｐ）＋（Ｙｄ−Ｙａ）（Ｘｐ−Ｘａ））／（（Ｘｂ−Ｘａ）（Ｙｄ−Ｙａ）−（Ｘｄ−Ｘａ）（Ｙｂ−Ｙａ））・・・（５）
β＝（（Ｘｂ−Ｘａ）（Ｙｐ−Ｙａ）＋（Ｙｂ−Ｙａ）（Ｘａ−Ｘｐ））／（（Ｘｂ−Ｘａ）（Ｙｄ−Ｙａ）−（Ｙｂ−Ｙａ）（Ｘｄ−Ｘａ））・・・（６）
となる。
そして、式（５）（６）を用いて、Ｕｐ及びＶｐについて整理すると、
Ｕｐ＝（（Ｕｂ−Ｕａ）（（Ｘｄ−Ｘａ）（Ｙａ−Ｙｐ）＋（Ｙｄ−Ｙａ）（Ｘｐ−Ｘａ））／（（Ｘｂ−Ｘａ）（Ｙｄ−Ｙａ）−（Ｘｄ−Ｘａ）（Ｙｂ−Ｙａ）））＋Ｕａ・・・（７）
Ｖｐ＝（（Ｖｄ−Ｖａ）（（Ｘｂ−Ｘａ）（Ｙｐ−Ｙａ）＋（Ｙｂ−Ｙａ）（Ｘａ−Ｘｐ））／（（Ｘｂ−Ｘａ）（Ｙｄ−Ｙａ）−（Ｙｂ−Ｙａ）（Ｘｄ−Ｘａ）））＋Ｖａ・・・（８）
となる。
【００３１】
次に、カメラ位置を計算する。
図９に示すように、位相座標上のカメラ位置Ｑ’は、位相座標上の車の位置（点Ｐ’）を基準として、その位置から、進行方向に対して後方の所定間隔離れた位置に設定する。本実施例では、進行方向の位置は、点Ｐ’から−３．０の位置であり、幅方向の位置は、点Ｐ’と同じ位置であり、点Ｑ’は、三角形Ｉ’Ｊ’Ｌ’のポリゴンにヒットしている。なお、マイナス値は、見え方をよくするために、実際にゲームが進行する仮想３次元空間内で、３〜６ｍ程度となるように設定することが好ましい。
これを式で表すと、
Ｑ’（Ｕｑ，Ｖｑ）＝（Ｕｐ，Ｖｐ−３．０）・・・（９）
となる。
【００３２】
そして、この位置Ｑ’をワールド座標上の位置（実際にカメラを設定する位置＝点Ｑ）に戻すためには、以下の計算をする。
まず、上述した車の位置Ｐと同様に、ワールド座標上でのカメラ位置を式で表すと、
Ｑ（カメラ位置）＝（Ｊ−Ｉ）｜Ｕｑ−Ｕｉ｜＋（Ｌ−Ｉ）｜Ｖｑ−Ｖｉ｜＋Ｉ・・・（１０）
となる。
また、式（１０）は、絶対値記号を用いずに表現すると、
Ｑ＝（Ｊ−Ｉ）（（Ｕｑ−Ｕｉ）／（Ｕｊ−Ｕｉ））＋（Ｌ−Ｉ）（（Ｖｑ−Ｖｉ）／（Ｖｌ−Ｖｉ））＋Ｉ・・・（１１）
と表すことができる。
ついで、式（１１）のＩ、Ｊ、Ｌに、ワールド座標の値を代入すると、
Ｘｑ＝（Ｘｊ−Ｘｉ）（（Ｕｑ−Ｕｉ）／（Ｕｊ−Ｕｉ））＋（Ｘｌ−Ｘｉ）（（Ｖｑ−Ｖｉ）／（Ｖｌ−Ｖｉ））＋Ｘｉ・・・（１２）
Ｙｑ＝（Ｙｊ−Ｙｉ）（（Ｕｑ−Ｕｉ）／（Ｕｊ−Ｕｉ））＋（Ｙｌ−Ｙｉ）（（Ｖｑ−Ｖｉ）／（Ｖｌ−Ｖｉ））＋Ｙｉ・・・（１３）
となる。
さらに、式（７）〜（９）のＵｐ、Ｖｐ、Ｕｑ、Ｖｑの各値を、式（１２）（１３）に代入すると、
Ｘｑ＝（Ｘｊ−Ｘｉ）（（（（（Ｕｂ−Ｕａ）（（Ｘｄ−Ｘａ）（Ｙａ−Ｙｐ）＋（Ｙｄ−Ｙａ）（Ｘｐ−Ｘａ））／（（Ｘｂ−Ｘａ）（Ｙｄ−Ｙａ）−（Ｘｄ−Ｘａ）（Ｙｂ−Ｙａ）））＋Ｕａ）−Ｕｉ）／（Ｕｊ−Ｕｉ））＋（Ｘｌ−Ｘｉ）（（（（（Ｖｄ−Ｖａ）（（Ｘｂ−Ｘａ）（Ｙｐ−Ｙａ）＋（Ｙｂ−Ｙａ）（Ｘａ−Ｘｐ））／（（Ｘｂ−Ｘａ）（Ｙｄ−Ｙａ）−（Ｙｂ−Ｙａ）（Ｘｄ−Ｘａ）））＋Ｖａ）−３．０−Ｖｉ）／（Ｖｌ−Ｖｉ））＋Ｘｉ・・・（１４）
Ｙｑ＝（Ｙｊ−Ｙｉ）（（（（（Ｕｂ−Ｕａ）（（Ｘｄ−Ｘａ）（Ｙａ−Ｙｐ）＋（Ｙｄ−Ｙａ）（Ｘｐ−Ｘａ））／（（Ｘｂ−Ｘａ）（Ｙｄ−Ｙａ）−（Ｘｄ−Ｘａ）（Ｙｂ−Ｙａ）））＋Ｕａ）−Ｕｉ）／（Ｕｊ−Ｕｉ））＋（Ｙｌ−Ｙｉ）（（（（（Ｖｄ−Ｖａ）（（Ｘｂ−Ｘａ）（Ｙｐ−Ｙａ）＋（Ｙｂ−Ｙａ）（Ｘａ−Ｘｐ））／（（Ｘｂ−Ｘａ）（Ｙｄ−Ｙａ）−（Ｙｂ−Ｙａ）（Ｘｄ−Ｘａ）））＋Ｖａ）−３．０−Ｖｉ）／（Ｖｌ−Ｖｉ））＋Ｙｉ・・・（１５）
となる。
そして、式（１４）（１５）を用いて、図１０に示すように、実際にカメラを設定する位置（点Ｑ）を計算することができる。
【００３３】
また、点Ｑを求める別の方法として、図１１に示すような方法がある。
この方法では、点Ｑが、点Ｉと点Ｌの間のどの辺りに位置しているかを示す点Ｒと、点Ｑが、点Ｊと点Ｍの間のどの辺りに位置しているかを示す点Ｓとした場合に、点Ｒ、点Ｓは、
Ｒ＝Ｌ｜Ｖｑ−Ｖｉ｜＋Ｉ（１．０−｜Ｖｑ−Ｖｉ｜）・・・（１６）
Ｓ＝Ｍ｜Ｖｑ−Ｖｊ｜＋Ｊ（１．０−｜Ｖｑ−Ｖｊ｜）・・・（１７）
と表すことができ、点Ｒ及び点Ｓから、点Ｑは、
Ｑ＝Ｒ｜Ｕｑ−Ｕｊ｜＋Ｓ（１．０−｜Ｕｑ−Ｕｊ｜）・・・（１８）
と表すことができる。
また、式（１６）〜（１８）は、絶対値記号を用いずに表現すると、
Ｒ＝Ｌ（（Ｖｑ−Ｖｉ）／（Ｖｌ−Ｖｉ））＋Ｉ（１．０−（（Ｖｑ−Ｖｉ）／（Ｖｌ−Ｖｉ）））・・・（１９）
Ｓ＝Ｍ（（Ｖｑ−Ｖｊ）／（Ｖｍ−Ｖｊ））＋Ｊ（１．０−（（Ｖｑ−Ｖｊ）／（Ｖｍ−Ｖｊ）））・・・（２０）
Ｑ＝Ｒ（（Ｕｑ−Ｕｊ）／（Ｕｉ−Ｕｊ））＋Ｓ（１．０−（（Ｕｑ−Ｕｊ）／（Ｕｉ−Ｕｊ）））・・・（２１）
と表すことができる。
さらに、位相座標の設定より、Ｖｉ＝Ｖｊ、Ｕｊ＝０．０なので、
Ｒ＝Ｌ｜Ｖｑ−Ｖｊ｜＋Ｉ（１．０−｜Ｖｑ−Ｖｊ｜）・・・（２２）
Ｓ＝Ｍ｜Ｖｑ−Ｖｊ｜＋Ｊ（１．０−｜Ｖｑ−Ｖｊ｜）・・・（２３）
Ｑ＝Ｒ｜Ｕｑ｜＋Ｓ（１．０−｜Ｕｑ｜）・・・（２４）
と表すことができる。
そして、式（２１）又は式（２４）を用いて点Ｑを求めてもよい。なお、この例では、この点Ｒ、点Ｓを求めるのに、線形補完を使用したが、前後のステップの座標も用いてスプライン補完などの曲線補完方法で求めてもよい。ここで、スプライン補完とは、各点のデータを用いて最小曲率面を当てはめる補完方法であり、ＣＧやＣＡＤでよく使用されている。
【００３４】
次に、図１及び図１２を参照しながら、本実施例によるビデオゲーム機１０の動作について説明する。
図１２は、ビデオゲームの進行イメージを示す図である。
ゲームを開始し、遊技者がハンドルなどを操作すると、ＣＰＵ５０（図１参照）は、ＩＯ２０からの操作情報に応じて、車１００を走行させる。
そして、図１２（Ａ）に示すように、車１００がトンネルＴ内のカーブにさしかかり、遊技者がハンドルを左にきると、図１２（Ｂ）に示すように、車１００が左に曲がる。
このとき、カメラＣは、上述した計算によって必ずコース上に配置されるので、トンネルＴの側壁に潜り込まずに車１００を追尾することができる。
【００３５】
このように、本実施例によれば、コース上の所定の位置を示す位相座標を用いてカメラＣの位置を計算することにより、常に、カメラＣがコース上に配置されるので、カメラＣとトンネルＴの側壁との視線交差判定を行う必要がなくなり、処理量が軽減される。
また、ワールド座標で、車の何メートル後方という計算は、非常に複雑な計算となり、しかも、カーブでは対応することができないが、２次元の位相座標を用いて後方の位置を計算すれば、簡単にコース内の後方の位置を計算することができる。
【００３６】
さらに、順位計算をするためや、路面とのヒットを取るために、もともと位相座標を使用しているゲーム機であれば、その位相座標を利用してカメラ位置を計算することによって、簡単に処理量を軽減させることができ、また、座標変換に特別な処理を追加しなくてもよいので、制御プログラムの大幅な変更も必要ない。
さらにまた、コース上のカーブのみならず、直線でも上述したようにカメラを制御することによって、横に向いて車が走行した場合や、車が蛇行しながら走行した場合であっても、側壁に潜り込まないカメラとすることができる。
【００３７】
（変形例）
以上説明した実施例に限定されることなく、種々の変形や変更が可能であって、それらも本発明の均等の範囲内である。
（１）ゲームの種類は、車のレースゲームに限られず、決まったコース上を移動するようなゲーム、例えば、競馬ゲーム、スキーゲーム、電車ゲームなどであってもよい。
（２）本実施例では、初めから３人称視点で車を見ているゲームの例で説明したが、複数の視点の中から３人称視点を選択できるようなゲームであってもよい。
（３）障害物は、トンネルの側壁の例で説明したが、例えば、建物や陸橋などであってもよい。
【００３８】
（４）カメラの位置は、例えば、車に対して２０〜３０ｍ程度後方に配置するようにしてもよい。このようにすれば、中継車のような視点を提供することができ、このようにカメラを遠く離しても、カメラはコース上に配置されるので、トンネルの側壁の裏側が見えてしまうような状態にはならない。
（５）カメラの位置は、位相座標上の車の位置から、進行方向に対して後方の位置に設定する例で説明したが、進行方向に対して前方の位置に設定してもよい。このようにすれば、リプレイ演出時に、前方から車を見た映像を表示したい場合に、カメラが側壁に潜ることがない。
【００３９】
（６）位相座標上では、カメラの幅方向の位置は、車と同じ位置に設定する例で説明したが、車の位置とは無関係の固定された位置、例えば、センターライン上や、側壁に近い位置に設定してもよく、また、車の位置から所定の計算式で定まる位置、例えば、車の移動量の半分の値や、車の幅方向の値と正負が逆の値となるような位置に設定してもよい。
このようにすれば、側壁への潜り込みを防止しつつ、より見やすい仮想視点とすることができる。特に、固定値であれば、コース幅が狭くなっても、幅方向の割合が固定されているので、カメラが滑らかに移動し、さらに見やすい映像を提供できる。
【００４０】
（７）位相座標は、２次元座標の例で説明したが、コースの高さ方向の軸を加えて３次元座標としてもよい。このようにすれば、立体的なチューブ状のコースを飛行体が進んでいくようなゲームに有効である。
また、カメラ位置は、その高さ方向の軸方向に対して、固定された位置や移動体の位置から所定の計算式で定まる位置に設定してもよい。このようにすれば、高さ方向に対しても、上述した幅方向と同様の制御を行うことができる。
【図面の簡単な説明】
【００４１】
【図１】本発明によるビデオゲーム機の実施例を示す図である。
【図２】各ポリゴンを模式的に示す図である。
【図３】各ポリゴンを模式的に示す図である。
【図４】各ポリゴンを模式的に示す図である。
【図５】各ポリゴンを模式的に示す図である。
【図６】各ポリゴンを模式的に示す図である。
【図７】座標の変換方法を模式的に示す図である。
【図８】座標の変換方法を模式的に示す図である。
【図９】座標の変換方法を模式的に示す図である。
【図１０】座標の変換方法を模式的に示す図である。
【図１１】座標の変換方法を模式的に示す図である。
【図１２】ビデオゲームの進行イメージを示す図である。
【図１３】従来のビデオゲーム機を示すブロック図である。
【図１４】ビデオゲームの進行イメージを示す図である。
【符号の説明】
【００４２】
１０  ビデオゲーム機
２０  ＩＯ（入力部）
３０  ストレージ
４０  メモリ（記憶部）
４１  表示用ポリゴンデータ
４２  コースヒット判定用データ
５０  ＣＰＵ（制御部）
５１  ヒット判定部（判定部、第１の変換部）
５２  位相座標加工部（設定部）
５３  座標変換部（第２の変換部）
５４  視点位置計算部（計算部）
６０  描画装置
７０  表示装置（表示部）
１００  車（移動体）
Ｃ  カメラ（仮想視点）
Ｄ  ダート
Ｇ  草地
Ｓ  日陰になる部分
Ｔ  トンネル
【図１】
2007044320.tif 000003
【図２】
2007044320.tif 000004
【図３】
2007044320.tif 000005
【図４】
2007044320.tif 000006
【図５】
2007044320.tif 000007
【図６】
2007044320.tif 000008
【図７】
2007044320.tif 000009
【図８】
2007044320.tif 000010
【図９】
2007044320.tif 000011
【図１０】
2007044320.tif 000012
【図１１】
2007044320.tif 000013
【図１２】
2007044320.tif 000014
【図１３】
2007044320.tif 000015
【図１４】
2007044320.tif 000016