JP3696216B2 - 3次元ビデオゲーム装置、3次元ビデオゲームにおける仮想カメラの制御方法、並びにプログラム及び記録媒体 - Google Patents

3次元ビデオゲーム装置、3次元ビデオゲームにおける仮想カメラの制御方法、並びにプログラム及び記録媒体 Download PDF

Info

Publication number
JP3696216B2
JP3696216B2 JP2003058136A JP2003058136A JP3696216B2 JP 3696216 B2 JP3696216 B2 JP 3696216B2 JP 2003058136 A JP2003058136 A JP 2003058136A JP 2003058136 A JP2003058136 A JP 2003058136A JP 3696216 B2 JP3696216 B2 JP 3696216B2
Authority
JP
Japan
Prior art keywords
viewpoint
virtual
virtual camera
characters
temporary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003058136A
Other languages
English (en)
Other versions
JP2004267247A (ja
Inventor
一美 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Square Enix Co Ltd
Original Assignee
Square Enix Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Square Enix Co Ltd filed Critical Square Enix Co Ltd
Priority to JP2003058136A priority Critical patent/JP3696216B2/ja
Priority to US10/759,133 priority patent/US7824265B2/en
Priority to DE602004003979T priority patent/DE602004003979T2/de
Priority to EP04002571A priority patent/EP1454663B1/en
Publication of JP2004267247A publication Critical patent/JP2004267247A/ja
Application granted granted Critical
Publication of JP3696216B2 publication Critical patent/JP3696216B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • A63F13/10
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5255Changing parameters of virtual cameras according to dedicated instructions from a player, e.g. using a secondary joystick to rotate the camera around a player's character
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/822Strategy games; Role-playing games
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6661Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8029Fighting without shooting
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/807Role playing or strategy games

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、3次元ビデオゲームにおいて、仮想3次元空間内に複数のキャラクタが存在するときに仮想カメラの視点の位置を決定するための技術に関する。
【0002】
【従来の技術】
RPG(Role Playing Game)においては、通常、ゲームを進行する過程でプレイヤキャラクタと敵キャラクタとのバトルが行われる。3次元ビデオゲームとした場合には、このバトルの様子は、バトルフィールド(バトル用のマップ)に設置された仮想カメラにより透視変換されて、表示画面上に表示される。ここでプレイヤが体感することのできるゲームの様子は、この表示画面上の映像だけとなっている。
【0003】
従来のRPGでは、予め定められた位置にある仮想カメラによりバトルが行われている仮想3次元空間を透視変換して表示画面に表示される画像を生成していた。仮想カメラの位置が移動されるものもあったが、予め定められた位置で順次切り替えを行っているに過ぎなかった。このため、表示画面上には、同じ位置から撮影された映像が繰り返して表示されるだけで、画面の変化が単調なものとなってしまっていた。
【0004】
ところで、特にRPGのバトルへの適用を考えたものではないが、3次元ビデオゲームにおける仮想カメラの視点の位置を移動する技術も提案されている。例えば、プレイヤがカメラアングルを割り付けたマークに対応した操作ボタンを押下することで、仮想カメラの視点の位置を切り替えるものがある(例えば、特許文献1参照)。また、競技者の視点と外部観戦者の視点とで仮想カメラの位置を切り替えるものがある(例えば、特許文献2参照)。
【0005】
【特許文献1】
特開2001−162040号公報
【特許文献2】
特開平10−113467号公報
【0006】
【発明が解決しようとする課題】
しかしながら、特許文献1の技術では、仮想カメラの視点の位置は、予め定められた位置にしか移動せず、画面の変化が単調であるという課題を何ら解決できるものではない。一方、特許文献2の技術では、仮想カメラの視点の位置も自由に移動できるものであるが、仮想カメラの視点の位置は、1つのオブジェクト(ここでは競技者(車))だけに追随して移動させればよいものである。
【0007】
これに対して、RPGにおけるバトルは、プレイヤキャラクタと敵キャラクタとで少なくとも2体のキャラクタが存在しなければ成立しない。一般的には、それ以上に多くのキャラクタが存在するものとなっている。仮に特許文献2を適用して1つのキャラクタの動きに追随させて仮想カメラの視点の位置も移動させると、全体としてキャラクタの位置が偏ってしまったり、或いは一部のキャラクタが表示画面に映し出されないことも生じてくる。
【0008】
仮想カメラの視点の位置を1または複数の位置で固定させた場合には、キャラクタの移動範囲全体が映し出されるように仮想カメラの視点の位置を設定すれば、一部のキャラクタが表示画面に映し出されなくなるという問題はなくなる。しかしながら、キャラクタが移動した位置によっては、個々のキャラクタが表示される大きさが小さくなってしまったり、キャラクタの位置が偏ってしまったりという問題が生じることがあった。
【0009】
本発明は、複数のキャラクタが存在するゲームにおいて、キャラクタの位置の移動に伴って仮想カメラの視点の位置を適切な位置に移動することができる3次元ビデオゲーム装置等を提供することを目的とする。
【0010】
【課題を解決するための手段】
上記目的を達成するため、本発明の第1の観点にかかる3次元ビデオゲーム装置は、複数のキャラクタが存在する仮想3次元空間を、前記複数のキャラクタの位置に基づいて仮想カメラの視点の位置を移動し、該仮想カメラの視点から仮想スクリーン上に透視変換するビデオゲーム装置であって、前記複数のキャラクタのうちの少なくとも1つを前記仮想3次元空間において移動させるキャラクタ移動手段と、前記複数のキャラクタの前記仮想3次元空間における中心位置を算出する中心位置算出手段と、前記中心位置算出手段が算出した中心位置を基準として、前記仮想3次元空間に複数の仮ポイントを設定する仮ポイント設定手段と、前記複数の仮ポイントのそれぞれと前記中心位置とを結ぶ複数の直線上にそれぞれ前記仮想カメラの視点を設定して所定の視角で透視変換を行った場合に、前記複数のキャラクタの全てを前記仮想スクリーン上に投影することができる位置をそれぞれ仮視点位置として設定する仮視点位置設定手段と、前記複数の直線上のそれぞれに設定された仮視点位置と前記中心位置算出手段が算出した中心位置との間の距離を算出する距離算出手段と、前記距離算出手段が算出した距離に基づいて、前記複数の直線上にそれぞれ設定された仮視点位置を評価する視点位置評価手段と、前記視点位置評価手段の評価結果に従って、前記仮視点位置のうちで前記仮想カメラの視点を移動させるべき位置を選択する視点位置選択手段と、前記視点位置選択手段が選択した位置に、前記仮想カメラの視点の位置を移動させる視点位置移動手段と、前記視点位置移動手段により位置が移動された前記仮想カメラの視点から前記仮想3次元空間を仮想スクリーン上に透視変換する透視変換手段とを備えることを特徴とする。
【0011】
上記3次元ビデオゲーム装置では、キャラクタ移動手段によりキャラクタの位置が変化することとなるが、キャラクタの位置に応じて仮想カメラの視点の位置が選択されることとなる。仮想カメラの視点の位置は、全てのキャラクタを仮想スクリーン上に投影できる位置として設定された仮視点位置の中から選ばれる。このため、視点の位置を常に適切な位置に保って、仮想カメラによる透視変換が行えるようになると共に、透視変換により生成される画面上において全てのキャラクタが表示されるようになる。
【0012】
視点位置評価手段は、距離算出手段が算出した仮視点位置と中心位置との間の距離に基づいて、仮視点位置の評価を行うものとなっており、この評価結果に基づいて、仮想カメラの視点の位置が選択される。このため、透視変換により生成される画面上におけるキャラクタの大きさを適切なものとすることができるようになる。
【0013】
上記3次元ビデオゲーム装置は、現在の仮想カメラの視点の位置と前記中心位置算出手段が算出した中心位置とを結ぶ直線と、前記複数の直線がそれぞれなす角度(角度に応じて特定される数値(正弦値、余弦値、正接値など)も含む)を算出する角度算出手段をさらに備えていてもよい。この場合において、前記視点位置評価手段は、さらに前記角度算出手段が算出した角度に基づいて、前記複数の直線上にそれぞれ設定される仮視点位置を評価することができる。
【0014】
上記3次元ビデオゲーム装置は、前記仮視点位置のそれぞれから透視変換を行った場合に前記複数のキャラクタがそれぞれ該仮視点位置に対応した仮想スクリーンに投影される部分で他のキャラクタが投影される部分と重なり合う重なり面積を順次加算し、全てのキャラクタについての重なり面積を加算した結果を、それぞれの仮視点位置における前記複数のキャラクタの重なり度合いとして算出する重なり度算出手段をさらに備えていてもよい。この場合において、前記視点位置評価手段は、さらに前記重なり度算出手段が算出した重なり度合いに基づいて、前記複数の直線上にそれぞれ設定される仮視点位置を評価することができる。
【0015】
上記3次元ビデオゲーム装置は、前記複数のキャラクタの高さの差が所定値以上であるかどうかを判定するキャラクタ判定手段とをさらに備えていてもよい。この場合において、前記視点位置評価手段は、さらに前記キャラクタ判定手段の判定結果に応じて前記複数の直線上にそれぞれ設定される仮視点位置を評価することができる。
【0016】
上記のように視点位置評価手段が、各仮視点位置と中心位置とを結ぶ直線が現在の仮想カメラの視点の位置と中心位置とを結ぶ直線とがなす角度に基づいて仮視点位置を評価することによって、視点の移動量を小さくして透視変換により生成される画面の変化に違和感が生じないようにすることができる。視点位置評価手段が、キャラクタの重なり度合いに基づいて仮視点位置を評価することによって、画面上にキャラクタを見易く表示させることができる。視点位置評価手段が、キャラクタの高さの差に応じて仮視点位置を評価することによって、画面上におけるキャラクタの大きさをプレイヤが認識し易くすることができる。
【0017】
上記3次元ビデオゲーム装置において、前記視点位置選択手段は、前記視点位置評価手段の評価結果に従って、前記仮想カメラの視点を移動させるべき位置として複数の位置を選択することができる。この場合、前記視点位置移動手段は、前記視点位置選択手段が選択した複数の位置に順次前記仮想カメラの視点の位置を切り替えて移動させることができる。
【0018】
ここで、前記視点位置移動手段は、所定の時間が経過する度に、前記仮想カメラの視点の位置の切り替えを制御する手段を含むものであってもよい。
【0019】
また、前記視点位置移動手段は、前記視点位置評価手段の評価結果に従って、前記仮想カメラの視点の位置の切り替えを制御する手段を含むものであってもよい。
【0020】
このような構成とした場合において、上記ビデオゲーム装置は、プレイヤの操作により前記仮想カメラの視点の位置の切り替えを指示する視点切替指示手段をさらに備えていてもよい。この場合、前記指定位置移動手段は、前記視点切替指示手段から切り替えが指示される度に、前記仮想カメラの視点の位置の切り替えを制御する手段を含むものとすることができる。
【0021】
仮想カメラの視点を移動すべき位置として複数の仮視点位置が選択され、それぞれに切り替えて仮想カメラの視点の位置が移動されることで、透視変換により生成される画面の変化を大きくすることができる。特にプレイヤの操作により視点の位置を切り替えられるようにすることで、プレイヤは、自分の好みに合わせた画面でゲームを進行し易くすることができる。
【0022】
上記3次元ビデオゲーム装置において、前記仮想3次元空間には、前記仮想カメラの視点の位置を移動できる範囲限界が定められていてもよい。この場合、上記3次元ビデオゲーム装置は、前記視点位置選択手段が選択した仮想カメラの視点の位置が、前記範囲限界内にあるかどうかを判定する範囲限界判定手段をさらに備えるものとすることができる。この場合において、前記視点位置移動手段は、前記範囲限界判定手段が前記範囲限界内にないと判定したときに、前記仮想カメラの視点の位置が前記範囲限界内に含まれるように前記中心位置に向けて移動することができる。そして、上記3次元ビデオゲーム装置は、前記仮想カメラの視点を前記中心位置に向けて移動した場合に、前記複数のキャラクタが全て前記仮想スクリーン上に投影されるように前記仮想カメラの視角を変化させる視角変化手段をさらに備えるものとすることができる。
【0023】
この場合には、範囲限界の外であっても仮視点位置として設定して、視点位置評価手段による評価を行うことができる。範囲限界の外にある仮視点位置の評価結果によりこれが仮想カメラの視点を移動すべき位置として選択されても、仮想カメラの視点位置の移動と視角の変化とによって、実質的に範囲限界の外の仮視点位置に仮想カメラの視点を置いたのとあまり変わらない画面を生成することができる。
【0024】
上記3次元ビデオゲーム装置は、プレイヤの操作により前記仮想カメラの視点の位置を移動することを指示する視点移動指示手段をさらに備えていてもよい。この場合において、前記視点位置移動手段は、前記視点位置移動指示手段からの移動の指示に応じて、前記仮想カメラの視点の位置を移動することができる。
【0025】
ここでさらに、前記視点位置移動手段は、前記視点位置移動指示手段からの移動の指示があったときには、前記視点位置選択手段が選択した位置であるか否かに関わらず、該移動の指示に応じて該視点の位置を移動可能な範囲にある任意の位置に前記仮想カメラの視点の位置を移動するものとすることもできる。
【0026】
このように仮視点位置の評価結果に限られず、仮想カメラの視点の位置を任意の位置に移動できるものとすることで、プレイヤは、自分の好みに合わせた画面を表示させてゲームを進行させることができるようになる。
【0027】
上記3次元ビデオゲーム装置は、一定の時間間隔の経過を計時する計時手段と、前記計時手段が前記一定の時間間隔の経過を計時する度に、前記中心位置算出手段、前記仮ポイント設定手段、前記仮視点位置選択手段、前記距離算出手段及び前記視点位置評価手段による処理を行わせる処理制御手段とをさらに備えていてもよい。
【0028】
なお、上記3次元ビデオゲーム装置が前記角度算出手段、重なり度算出手段および/またはキャラクタ判定手段を備える場合には、これらの手段による処理も、前記計時手段が前記一定の時間間隔の経過を計時する度に行われるものとすることができる。
【0029】
このように一定の時間間隔の経過を計時する度に中心位置の算出から仮視点位置の評価までを行って、仮想カメラの視点の位置を決定するものとすることで、ゲームの進行に伴ってキャラクタの位置が大きく変化することとなっても、仮想カメラの視点の位置を適切な位置に更新していくことができる。
【0030】
上記3次元ビデオゲーム装置は、前記複数のキャラクタが、プレイヤの指示により前記仮想3次元空間を移動する複数のプレイヤキャラクタを含む場合には、前記複数のプレイヤキャラクタのうちで前記キャラクタ移動手段による移動を行わせるための指示の入力が不能な状態から可能な状態となるプレイヤキャラクタを順次切り替えるプレイヤキャラクタ切替手段と、前記プレイヤキャラクタ切替手段により指示の入力が可能となるプレイヤキャラクタが切り替えられる度に、前記中心位置算出手段、前記仮ポイント設定手段、前記仮視点位置選択手段、前記距離算出手段及び前記視点位置評価手段による処理を行わせる処理制御手段とをさらに備えていてもよい。
【0031】
なお、上記3次元ビデオゲーム装置が前記角度算出手段、重なり度算出手段および/またはキャラクタ判定手段を備える場合には、これらの手段による処理も、前記プレイヤキャラクタ切替手段により指示の入力が可能となるプレイヤキャラクタが切り替えらる度に行われるものとすることができる。
【0032】
このように指示の入力が可能となるプレイヤキャラクタが切り替えられる度に中心位置の算出から仮視点位置の評価までを行って、仮想カメラの視点の位置を決定するものとすることで、プレイヤは、プレイヤキャラクタに対する指示を入力しやすくなる。
【0033】
上記3次元ビデオゲーム装置において、前記中心位置算出手段は、前記仮想3次元空間に存在する複数のキャラクタの位置にそれぞれ重みを付けて、該複数のキャラクタの中心位置を算出するものとすることができる。
【0034】
上記3次元ビデオゲーム装置は、ゲームの進行状況に応じて、前記仮想3次元空間に存在する複数のキャラクタのうちから、前記仮想カメラの視点の位置の決定対象として用いられるキャラクタを選択するキャラクタ選択手段をさらに備えるものとしてもよい。
【0035】
なお、上記3次元ビデオゲーム装置がプレイヤキャラクタ切替手段を備える場合には、前記キャラクタ選択手段は、少なくとも指示の入力が可能となったプレイヤキャラクタを前記仮想カメラの視点の位置の決定対象として用いられるキャラクタとして選択することができる。
【0036】
上記のように中心位置を算出する際に各キャラクタの位置に重み付けを行ったり、仮想カメラの視点の位置の決定対象として用いられるキャラクタを選択できるようにすることで、各キャラクタのゲームの進行における重要度に応じて、仮想カメラの視点の位置としてより適切な位置を選択できるようになる。
【0038】
上記目的を達成するため、本発明の第2の観点にかかるプログラムは、コンピュータ装置において実行され、複数のキャラクタが存在する仮想3次元空間を、前記複数のキャラクタの位置に基づいて仮想カメラの視点の位置を移動し、該仮想カメラの視点から仮想スクリーン上に透視変換するビデオゲームを実行するためのプログラムであって前記複数のキャラクタのうちの少なくとも1つを前記仮想3次元空間において移動させるキャラクタ移動手段と、前記複数のキャラクタの前記仮想3次元空間における中心位置を算出する中心位置算出手段と、前記中心位置算出手段が算出した中心位置を基準として、前記仮想3次元空間に複数の仮ポイントを設定する仮ポイント設定手段と、前記複数の仮ポイントのそれぞれと前記中心位置とを結ぶ複数の直線上にそれぞれ前記仮想カメラの視点を設定して所定の視角で透視変換を行った場合に、前記複数のキャラクタの全てを前記仮想スクリーン上に投影することができる位置をそれぞれ仮視点位置として設定する仮視点位置設定手段と、前記複数の直線上のそれぞれに設定された仮視点位置と前記中心位置算出手段が算出した中心位置との間の距離を算出する距離算出手段と、前記距離算出手段が算出した距離に基づいて、前記複数の直線上にそれぞれ設定された仮視点位置を評価する視点位置評価手段と、前記視点位置評価手段の評価結果に従って、前記仮視点位置のうちで前記仮想カメラの視点を移動させるべき位置を選択する視点位置選択手段と、前記視点位置選択手段が選択した位置に、前記仮想カメラの視点の位置を移動させる視点位置移動手段と、前記視点位置移動手段により位置が移動された前記仮想カメラの視点から前記仮想3次元空間を仮想スクリーン上に透視変換する透視変換手段として前記コンピュータ装置を機能させることを特徴とするプログラム。
【0039】
上記目的を達成するため、本発明の第3の観点にかかるコンピュータ読み取り可能な記録媒体は、コンピュータ装置において実行され、複数のキャラクタが存在する仮想3次元空間を、前記複数のキャラクタの位置に基づいて仮想カメラの視点の位置を移動し、該仮想カメラの視点から仮想スクリーン上に透視変換するビデオゲームを実行するためのプログラムを記録した記録媒体であって、前記プログラムは前記複数のキャラクタのうちの少なくとも1つを前記仮想3次元空間において移動させるキャラクタ移動手段と、前記複数のキャラクタの前記仮想3次元空間における中心位置を算出する中心位置算出手段と、前記中心位置算出手段が算出した中心位置を基準として、前記仮想3次元空間に複数の仮ポイントを設定する仮ポイント設定手段と、前記複数の仮ポイントのそれぞれと前記中心位置とを結ぶ複数の直線上にそれぞれ前記仮想カメラの視点を設定して所定の視角で透視変換を行った場合に、前記複数のキャラクタの全てを前記仮想スクリーン上に投影することができる位置をそれぞれ仮視点位置として設定する仮視点位置設定手段と、前記複数の直線上のそれぞれに設定された仮視点位置と前記中心位置算出手段が算出した中心位置との間の距離を算出する距離算出手段と、前記距離算出手段が算出した距離に基づいて、前記複数の直線上にそれぞれ設定された仮視点位置を評価する視点位置評価手段と、前記視点位置評価手段の評価結果に従って、前記仮視点位置のうちで前記仮想カメラの視点を移動させるべき位置を選択する視点位置選択手段と、前記視点位置選択手段が選択した位置に、前記仮想カメラの視点の位置を移動させる視点位置移動手段と、前記視点位置移動手段により位置が移動された前記仮想カメラの視点から前記仮想3次元空間を仮想スクリーン上に透視変換する透視変換手段として前記コンピュータ装置を機能させることを特徴とするコンピュータ読み取り可能な記録媒体。
【0040】
【発明の実施の形態】
以下、添付図面を参照して、本発明の実施の形態について説明する。
【0041】
図1は、この実施の形態にかかる3次元ビデオゲームを実行するためのビデオゲーム装置100の構成を示すブロック図である。図示するように、ビデオゲーム装置100は、ビデオゲーム本体101を中心として構築される。このビデオゲーム本体101は、その内部バス119に接続された制御部103、RAM(Random Access Memory)105、ハードディスク・ドライブ(HDD)107、サウンド処理部109、グラフィック処理部111、DVD/CD−ROMドライブ113、通信インターフェイス115、及びインターフェイス部117を含む。
【0042】
このビデオゲーム本体101のサウンド処理部109は、スピーカーであるサウンド出力装置125に、グラフィック処理部111は、表示画面122を有する表示装置121に接続されている。DVD/CD−ROMドライブ113には、記録媒体(DVD−ROMまたはCD−ROM)131を装着し得る。通信インターフェイス115は、ネットワーク151に接続される。インターフェイス部117には、入力部(コントローラ)161とメモリカード162とが接続されている。
【0043】
制御部103は、CPU(Central Processing Unit)やROM(Read Only Memory)などを含み、HDD107や記録媒体131上に格納されたプログラムを実行し、ビデオゲーム装置100の制御を行う。制御部103は、内部タイマを備えている。RAM105は、制御部103のワークエリアである。HDD107は、プログラムやデータを保存するための記憶領域である。サウンド処理部109は、制御部103により実行されているプログラムがサウンド出力を行うよう指示している場合に、その指示を解釈して、サウンド出力装置125にサウンド信号を出力する。
【0044】
グラフィック処理部111は、制御部103から出力される描画命令に従って、フレームメモリ112に画像を展開し、表示装置121の表示画面122上に画像を表示するビデオ信号を出力する。出力されるビデオ信号に含まれる画像の1フレーム時間は、例えば30分の1秒とする。DVD/CD−ROMドライブ113は、記録媒体131に対しプログラム及びデータの読み書きを行う。通信インターフェイス115は、ネットワーク151に接続され、他のコンピュータとの通信を行う。
【0045】
インターフェイス部117は、入力部161からの入力データをRAM105に出力し、制御部103がそれを解釈して演算処理を実施する。入力部161は、方向キー及び複数の操作ボタンを備え、方向キーの操作により後述するキャラクタを移動させ、操作ボタンの操作により所定の処理を行わせるものである。方向キーは、カーソルの移動やメッセージなどのためにも用いられ、操作ボタンは、所定の指示を入力するために用いられる。インターフェイス部117は、また、制御部103からの指示に基づいて、RAM105に記憶されているゲームの進行状況を示すデータをメモリーカード162に保存させ、メモリーカード162に保存されている中断時のゲームのデータを読み出して、RAM105に転送する。
【0046】
ビデオゲーム装置100でゲームを行うためのプログラム及びデータは、最初例えば記録媒体131に記憶されている。このプログラム及びデータは、実行時にDVD/CD−ROMドライブ113により読み出されて、RAM105にロードされる。制御部103は、RAM105にロードされたプログラム及びデータを処理し、描画命令をグラフィック処理部111に出力し、サウンド出力の指示をサウンド処理部109に出力する。制御部103が処理を行っている間の中間的なデータは、RAM105に記憶される。
【0047】
次に、上記のビデオゲーム装置100で実行される、この実施の形態にかかる3次元ビデオゲームについて説明する。この3次元ビデオゲームは、RPG(Role Playing Game)であり、プレイヤは、入力部161を操作することでプレイヤキャラクタをマップ上で移動させながら、ゲームを進行させていく。プレイヤキャラクタがマップ上の所定のポイントに移動すると、敵キャラクタとのバトルに移行する。プレイヤキャラクタがバトルに勝利すると、通常のゲームの進行状態に戻る。
【0048】
図2は、プレイヤキャラクタと敵キャラクタとのバトルが行われている場合における表示画面122の例を示す図である。プレイヤキャラクタと敵キャラクタとのバトルは、通常とは異なるバトル用のマップ上で行われる。バトル用のマップには、予め定められた大きさ(少なくともキャラクタが移動できる範囲よりも大きい)が設定されており、この大きさの範囲が後述する仮想カメラの視点の位置を移動できる限界となる。
【0049】
図2の例では、3体のプレイヤキャラクタ201〜203が3体の敵キャラクタ204〜206とバトルを行っている場合を示している。このバトルの間において、プレイヤキャラクタ及び敵キャラクタ(以下、両者をまとめて単にキャラクタという)201〜206は、バトル用のマップ上の任意の位置に移動して動作し、動作後に元の場所に戻らなくてもよい。
【0050】
バトル時の表示画面122においては、キャラクタ201〜206が存在するバトル用のマップが後述する透視変換の処理によって表示される。バトル時の表示画面122においては、また、キャラクタ201〜206が存在するバトル用のマップの画像の前面側に、プレイヤキャラクタ201〜203に指示する行動を選択する行動選択部211と、プレイヤキャラクタ201〜203の現在のステータスを示すステータス表示部212とが表示される。
【0051】
図2に示したバトル用のマップ上における各位置(キャラクタ201〜206の位置を含む)は、後述するワールド座標系の座標(X,Y,Z)で示されるものとなる。キャラクタ201〜206は、ポリゴンによって構成され、ローカル座標系によって示される。また、透視変換を行う場合には、後述する視点座標系の座標(X’,Y’,Z’)が用いられる。
【0052】
図3は、バトル時において登場するキャラクタ201〜206を示す図である。キャラクタ201〜206には、9つの参照点300〜308が設定されており、後述する仮想カメラの視点の位置を決定する際には、これらの参照点300〜308だけを用いて処理がなされる。また、キャラクタ201〜206特徴点(各ポリゴンの頂点)は、例えば重心の参照点300を原点とするローカル座標系の座標(x,y,z)で表され、方向は、ローカル座標系の各軸がワールド座標系の各軸に対してなす角で表される。透視変換を行う際において、キャラクタ201〜206の特徴点の座標は、ワールド座標系の座標に変換される。
【0053】
プレイヤキャラクタ201〜203と敵キャラクタ204〜206とがバトルを行っている様子は、仮想カメラによりバトル用のマップが形成された仮想3次元空間を透視変換することで表示画面122上に映し出され、プレイヤに認識されるものとなる。図4は、透視変換の様子を模式的に示す図である。仮想3次元空間内に仮想カメラ401が置かれ、仮想スクリーン402上に投影された画像が表示画面122に表示される画像となる。この仮想カメラ401の位置が視点403、仮想カメラ401の向きが視軸404、視点403と仮想スクリーン402の対角頂点を結んだ2本の直線がなすが視角405となる。
【0054】
このようにスクリーン402上に画像を投影するために用いられる座標系が視点座標系(X’,Y’,Z’)であり、視軸404の方向が視点座標系のZ’軸となる。ワールド座標系の座標(ローカル座標系の座標から変換された座標を含む)は、視点座標系の座標に変換されて、次に示す隠面消去の処理を含む透視変換の処理が行われる。透視変換により仮想スクリーン402上に投影した画像を生成する場合には、前面に他の物体があって隠されてしまう面を消去する隠面消去を行う必要がある。隠面消去の方法としては、例えばZバッファ法を用いることができるが、特に本発明に関わるものではないので、詳細な説明は省略する。
【0055】
この透視変換を行う前提として、仮想カメラ401の視点403の位置、視軸404の方向、及び視角405の大きさが決まっている必要がある(仮想スクリーン402の位置は、これらが決まると必然的に決まる)。視軸404の方向は、後述するようにキャラクタ201〜206の中心位置として求められる注視点500を必ず向くように設定される。視角405の大きさは、後述するように調整される場合を除いて、基本的には同じ大きさに設定される。
【0056】
これに対して、視点403の位置は、バトルの進行状況に応じて決定されて移動させられる。視点403の位置を決定する場合、まず注視点500を基準として複数の仮ポイントを設定し、各仮ポイントと注視点500とを結ぶ直線上に仮視点位置を設定する。各仮視点位置について、後述する距離評価、角度評価、重なり評価及び高さ評価を行った結果で得られたポイントに基づいて、視点403の位置を実際に移動する位置が決められることとなる。
【0057】
以下、この実施の形態にかかる3次元ビデオゲームにおける処理について説明する。この実施の形態にかかる3次元ビデオゲームは、上記したように通常のマップ上でのプレイヤキャラクタの移動からバトル処理に移行し、再び通常のマップにおける処理に戻ることを繰り返して行くことにより進行する。もっとも、通常のマップ上をプレイヤキャラクタが移動している場合は、本発明と関係がないので、以下ではバトル処理についてのみを説明していく。プレイヤキャラクタと敵キャラクタとのバトル処理に移行すると、バトル時に特有の仮想カメラ401の制御処理と、透視変換処理(バトル時に特有のものではない)とが並行して行われる。
【0058】
図5は、プレイヤキャラクタと敵キャラクタとのバトル処理を示すフローチャートである。バトル処理においては、制御部103は、バトル用のマップ上に3体のプレイヤキャラクタ201〜203を配置する(ステップS101)。次に、制御部103は、バトルの発生した場所に応じて敵キャラクタの種類と数とを選び、選んだ敵キャラクタをバトル用のマップ上に配置する(ステップS102)。マップ上に配置したプレイヤキャラクタ201〜203及び敵キャラクタは、それぞれに定められる一定時間毎に行動可能となる。ここで、プレイヤキャラクタ201〜203は、先に行動可能となったものが動作を行うまでは行動可能とならないようにしてもよい。
【0059】
プレイヤキャラクタ201〜203及び敵キャラクタが配置されると、制御部103は、いずれかの敵キャラクタが行動可能となったかどうかを判定する(ステップS103)。行動可能となった敵キャラクタがある場合には、制御部103は、当該キャラクタにさせるべき行動を選択し、選択した行動に応じた動作を行わせる。この動作の結果により必要な場合には、プレイヤキャラクタ201〜203及び他の敵キャラクタにも所定の動作を行わせる(ステップS104)。キャラクタの動作には、マップ上における位置の移動も含み、動作前後においてキャラクタの位置が異なるものとなってもよい(後述するステップS107におい同じ)。そして、ステップS108の処理に進む。
【0060】
行動可能となった敵キャラクタがない場合には、制御部103は、プレイヤキャラクタ201〜203のいずれかが行動可能となったかどうかを判定する(ステップS105)。プレイヤキャラクタ201〜203に行動可能となったものがなければ、ステップS103の処理に戻る。行動可能となったものがあれば、制御部103は、行動選択部211の表示に基づく入力部161の操作により、当該行動可能となったプレイヤキャラクタ201〜203に行動が指示されたかどうかを判定する(ステップS106)。行動が指示されていなければ、ステップS103の処理に戻る。
【0061】
行動が指示された場合には、制御部103は、指示された行動に応じた動作を当該プレイヤキャラクタ201〜203に行わせる。ここでも動作の結果により必要な場合には、敵キャラクタ及びプレイヤキャラクタ201〜203のうちの他のものにも所定の動作を行わせる(ステップS107)。そして、ステップS108の処理に進む。なお、ステップS104またはS107において所定のパラメータ(例えばHP)が0となったキャラクタは戦闘不能となり、特に敵キャラクタの場合には、バトル用のマップ上から除外させる。
【0062】
ステップS108では、制御部103は、全ての敵キャラクタが戦闘不能となり、バトルの結果としてプレイヤキャラクタ201〜203が敵キャラクタを全滅させたかどうかを判定する。プレイヤキャラクタ201〜203が敵キャラクタを全滅させていない場合には、制御部103は、プレイヤキャラクタ201〜203の全てが戦闘不能となり、バトルの結果としてプレイヤキャラクタ201〜203が敵キャラクタに全滅させられたかどうかを判定する(ステップS109)。プレイヤキャラクタ201〜203が敵キャラクタに全滅させられていない場合には、ステップS103の処理に戻る。
【0063】
ステップS108においてプレイヤキャラクタ201〜203が敵キャラクタを全滅させていた場合には、制御部103は、所定のバトル勝利処理を行う(ステップS110)。そして、バトル処理を終了し、通常のマップにおける処理に戻ることとなる。一方、ステップS109においてプレイヤキャラクタ201〜203が敵キャラクタに全滅させられていた場合には、ゲームオーバーとなって処理を終了する。
【0064】
図6は、バトル時における仮想カメラ401の制御処理を示すフローチャートである。通常のマップ上をプレイヤキャラクタが移動している場合などバトル時以外においては、このフローチャートとは異なる仮想カメラ401の制御処理が行われるものとなる。
【0065】
バトル時における仮想カメラ401の制御処理において、制御部103は、バトルに登場している全てのキャラクタ(プレイヤキャラクタ及び敵キャラクタを含む)の中心位置を注視点500として求める(ステップS201)。この注視点の座標(X,Y,Z)は、次の数式1に従って求められる。なお、(X,Y,Z)は、バトルに登場しているキャラクタのうちのk番目のキャラクタの足下の参照点301のワールド座標系における座標を示し、バトルに登場するキャラクタがn体であるものとする。
【0066】
【数1】
Figure 0003696216
【0067】
次に、制御部103は、ステップS101で求めた注視点500を中心として仮想3次元空間内に仮想的な半球を設け、この半球上で、例えば注視点500を中心とした極座標上で所定の間隔となるように複数の仮ポイントを設定する(ステップS202)。制御部103は、注視点500と各仮ポイントとを結ぶ各直線上で、仮想カメラ401の視角を所定の大きさに設定した場合に、仮想カメラ401の視点403から仮想3次元空間を透視変換した場合に、仮想スクリーン402に全てのキャラクタを投影することができ、注視点500との間の距離が最短となる位置を求め、これを仮視点位置として決定する。また、注視点500と仮視点位置との間の距離も求める(ステップS203)。
【0068】
ここで、ステップS201の注視点500の決定からステップS203の仮視点位置の決定までを、図7を参照して分かり易く説明する。図7(a)に示すように、バトル用のマップ上に6体のキャラクタが存在したとすると、それぞれの位置の中心位置が注視点500として求められる。次に、図7(b)に示すように、注視点500を中心とした仮想的な半球501が描かれる。半球501には、複数の仮ポイント502が設定されているが、注視点500から各仮ポイント502までの方向は、予め定められたものとなっている。
【0069】
次に、図7(c)に示すように、注視点500と仮ポイント502とを結ぶ直線が描かれ、この直線上に仮想カメラ401の視点403の位置を置いた場合に、全てのキャラクタを仮想スクリーン402に投影できる位置であって、注視点500から最も近い位置が仮視点位置として求められる。ここで、各キャラクタを仮想スクリーン402に投影できるかどうかは、キャラクタの全ての特徴点で判断するのではなく、足下の参照点301と頭上の参照点302との2箇所だけによっている。
【0070】
上記のようにして仮視点位置が決定されると、制御部103は、各仮視点位置について、注視点500までの距離を評価し、評価結果に応じたポイントを与える距離評価処理を行う(ステップS204)。この距離評価処理について、図8のフローチャートを参照して詳細に説明する。
【0071】
距離評価処理では、制御部103は、各仮視点位置について注視点500までの距離が短いものから昇順でソートする(ステップS301)。次に、制御部103は、仮視点位置から注視点500までの距離が最も長いものと最も短いものとの差を求め、これで距離評価の最高点として与えるポイントα(αは定数)を除算した変化率を算出する(ステップS302)。
【0072】
制御部103は、注視点500までの距離が最も短い仮視点位置にポイントとして最高点のαを加算する(ステップS303)。その後、制御部103は、処理対象とする仮視点位置を注視点500までの距離が2番目に短いものから2番目に長いものまで順次変更していきながら、ループ処理を行う(ステップS304−S304’)。
【0073】
このループ処理においては、制御部103は、処理対象となっている仮視点位置と注視点500との間の距離と、仮視点位置の中で注視点500まで最も短い距離との差を求める。制御部103は、この差にステップS302で求めた変化率を乗じたポイントを処理対象の仮視点位置のポイントとして加算する(ステップS305)。処理対象となった全ての仮視点位置についてループ処理が終了すると、距離評価処理を終了する。なお、注視点500までの距離が最も長い仮視点位置は、ループ処理において処理対象とされていないため、距離評価処理において加算されるポイントが0ということになる。
【0074】
距離評価処理が終了すると、制御部103は、図6のフローチャートに戻り、各仮視点位置について、注視点500と結ぶ直線が現在の仮想カメラ401の視点403の位置と注視点500とを結ぶ直線となす角度を評価し、評価結果に応じたポイントを与える角度評価処理を行う(ステップS205)。この角度評価処理について、図9のフローチャートを参照して詳細に説明する。
【0075】
角度評価処理では、制御部103は、処理対象とする仮視点位置を順次変更していきながら、ループ処理を行う(ステップS401−S401’)。このループ処理においては、制御部103は、注視点500の位置を中心として、現在の仮想カメラ401の視点403の位置と処理対象とする仮視点位置とがなす角度θ1を求める(ステップS402)。制御部103は、βcosθ1(βは定数)を求め、これを処理対象の仮視点位置のポイントとして加算する(ステップS403)。全ての仮視点位置を処理対象としてループ処理が終了すると、角度評価処理を終了する。
【0076】
角度評価処理が終了すると、制御部103は、図6のフローチャートに戻り、各仮視点位置について、透視変換を行った場合に仮想スクリーン402上でキャラクタがどの程度重なって表示されるかを評価し、評価結果に応じたポイントを与える重なり評価処理を行う(ステップS206)。この重なり評価処理について、図10のフローチャートを参照して詳細に説明する。
【0077】
重なり評価処理では、制御部103は、まず処理対象とする仮視点位置を順次変更していきながら、ループ1処理を行う(ステップS501−S501’)。ループ1処理においては、制御部103は、処理対象の仮視点位置から透視変換を行った場合に最も奥に存在するキャラクタから手前に存在するキャラクタに処理対象を変更していきながら、ループ2処理を行う(ステップS502−S502’)。ここで、キャラクタが奥にあるかどうかの判断は、各キャラクタの重心の参照点300だけを視点座標系の座標に変換し、Z’の値の大小のみによって判断することとなる。
【0078】
ループ2処理では、制御部103は、仮視点位置から透視変換を行ったものとした場合に、処理対象のキャラクタの重心以外の参照点301〜308を仮想スクリーンに投影して多角形を描画する(ステップS503)。制御部103は、描画した多角形が、奥側のキャラクタについて先に描画した多角形に重なる部分の面積(2つ以上の多角形と重なる場合は、それぞれの面積)を求め、当該仮視点位置の重なり面積として加算する(ステップS504)。全てのキャラクタを処理対象としてループ2処理が終了すると、ループ1処理で処理対象とする仮視点位置が次の仮視点位置となり、全ての仮視点位置を処理対象としてループ1処理が終了すると、重なり面積の評価が行われる。
【0079】
制御部103は、各仮視点位置について求めた重なり面積が小さいものから昇順でソートする(ステップS505)。次に、制御部103は、重なり面積が最も大きいものと最も小さいものとの差を求め、これで重なり評価の最高点として与えるポイントγ(γは定数)を除算した変化率を算出する(ステップS506)。制御部103は、重なり面積が最も小さい仮視点位置にポイントとして最高点のγを加算する(ステップS507)。その後、制御部103は、処理対象とする仮視点位置を重なり面積が2番目に小さいものから2番目に大きいものまで順次変更していきながら、ループ3処理を行う(ステップS508−S508’)。
【0080】
このループ3処理においては、制御部103は、処理対象となっている仮視点位置についての重なり面積と、仮視点位置の中で最も小さな重なり面積との差を求める。制御部103は、この差にステップS302で求めた変化率を乗じたポイントを処理対象の仮視点位置のポイントとして加算する(ステップS509)。処理対象となった全ての仮視点位置についてループ3処理が終了すると、重なり評価処理を終了する。なお、重なり面積が最も大きい仮視点位置は、ループ処理において処理対象とされていないため、重なり評価処理において加算されるポイントが0ということになる。
【0081】
重なり評価処理が終了すると、制御部103は、図6のフローチャートに戻り、各仮視点位置について、キャラクタの高さの差に応じて各仮視点位置の高さを評価し、評価結果に応じたポイントを与える高さ評価処理を行う(ステップS207)。この高さ評価処理について、図11のフローチャートを参照して詳細に説明する。
【0082】
高さ評価処理では、制御部103は、バトルに登場しているキャラクタの高さの差(最高と最低との差)が所定値以上あるかどうかを判定する(ステップS601)。高さの差が所定値以上あれば、制御部103は、処理対象とする仮視点位置を順次変更していきながら、ループ1処理を行う(ステップS602−S602’)。高さの差が所定値以上なければ、制御部103は、処理対象とする仮視点位置を順次変更していきながら、ループ2処理を行う(ステップS605−S605’)。
【0083】
ループ1処理においては、制御部103は、処理対象とする仮視点位置と注視点500とを結ぶ直線が水平面(ワールド座標系のY座標が0の面)となす角度θ2を求める(ステップS603)。制御部103は、δcosθ2(δは定数)を求め、これを処理対象の仮視点位置のポイントとして加算する(ステップS604)。全ての仮視点位置を処理対象としてループ1処理が終了すると、高さ評価処理を終了する。
【0084】
ループ2処理においては、制御部103は、処理対象とする仮視点位置と注視点500とを結ぶ直線が水平面(ワールド座標系のY座標が0の面)となす角度θ2を求める(ステップS606)。制御部103は、δsinθ2(δは定数)を求め、これを処理対象の仮視点位置のポイントとして加算する(ステップS607)。全ての仮視点位置を処理対象としてループ2処理が終了すると、高さ評価処理を終了する。
【0085】
高さ評価処理も終了すると、各仮視点位置についてのトータルポイントが求められている。制御部103は、トータルポイントが上位4位までとなった仮視点位置を抽出する(ステップS208)。制御部103は、抽出した4つの仮視点位置を仮想カメラ401の視点403の位置として、1位→2位→3位→4位→1位→…の順番で、順番に選択する。ここで視点403の位置として最初に選択されるのは、トータルポイントが1位となった仮視点位置である(ステップS209)。
【0086】
仮想カメラ401の視点403の位置が選択されると、制御部103は、バトル用のマップに用意された大きさの範囲内であって、選択された視点403の位置が注視点500及び各キャラクタとの間に障害物が存在しない有効範囲にあるかどうかを判定する(ステップS210)。選択された視点403の位置が有効範囲にあれば、そのままステップS213の処理に進む。
【0087】
選択された視点403の位置が有効範囲になければ、制御部103は、視点403の位置を有効範囲に入るまで注視点500に向けて移動する(ステップS211)。制御部103は、移動後の視点403の位置で透視変換を行った場合に、全てのキャラクタが仮想スクリーン402上に投影されるように、仮想カメラ401の視角405を調整する(ステップS212)。そして、ステップS213の処理に進む。
【0088】
ステップS213では、制御部103は、図5のバトル処理が終了したかどうかを判定する。バトル処理が終了していなければ、制御部103は、仮想カメラ401の視点403の位置を決定し直す時間として予め定められた一定時間を経過したかどうかを判定する(ステップS214)。この一定時間を経過していなければ、制御部103は、視点403の位置を切り替える時間として予め定められた所定時間を経過したかどうかを判定する(ステップS215)。この所定時間も経過していなければ、ステップS213の処理に戻る。
【0089】
ステップS215で所定時間を経過していた場合には、ステップS209の処理に戻り、制御部103は、次の仮視点位置を仮想カメラ401の視点403の位置として選択し直す。ステップS214で一定時間を経過していた場合には、ステップS201の処理に戻り、制御部103は、注視点500の位置の決定から処理をやり直す。また、ステップS213でバトル処理が終了していた場合には、このフローチャートの処理を終了する。この場合には、このフローチャートとは異なる仮想カメラ401の制御処理に移行されるものとなる。
【0090】
また、上記したバトル処理及び仮想カメラ401の制御処理と並行して、1フレーム期間毎に発生するタイマ割り込みにより、透視変換処理が行われる。図12は、この透視変換処理を示すフローチャートである。この透視変換処理は、ゲームの進行状態がバトル中であるかどうかに関わらず同じ処理が行われる。なお、透視変換処理に要する処理量によっては、透視変換処理は2フレーム期間毎に行うものとし、2フレームの期間だけ同じ画像を表示画面122に表示させるものとしてもよい。
【0091】
図12(a)に示すように、制御部103は、まず、各キャラクタの特徴点のローカル座標系での座標を、全てワールド座標系での座標に変換する(ステップS701)。次に、制御部103は、視点403のワールド座標系での座標と、視軸404の向きとに従って、透視変換される範囲に含まれるキャラクタ及びマップを構成する各面を構成する点の座標を、視点座標系の座標に変換する(ステップS702)。
【0092】
制御部103は、視点座標系に変換した各面を構成する点の座標をグラフィック処理部111に送り、グラフィック処理部111に描画命令を出力する(ステップS703)。この描画命令の出力により、透視変換のために制御部103が行う処理は終了となる。仮想スクリーン402に投影される画像を描画し、ビデオ信号として表示装置122に出力するための処理は、グラフィック処理部111によって行われる。
【0093】
図12(b)に示すように、グラフィック処理部111は、描画命令と共に受け取った視点座標系の座標に基づいて、後面側から前面側に処理対象となるポリゴンを変更していきながらループ処理を行う(ステップS751−S751’)。ループ処理においては、グラフィック処理部111は、前側にある点(Z’座標の小さな点)のデータ(Z’の値)が残るようにZバッファの内容を更新する(ステップS752)。Zバッファの内容を更新した場合には、グラフィック処理部111は、当該点についての画像データをフレームメモリ112に展開する。グラフィック処理部111は、展開される画像データに対してシェーディングやテクスチャマッピングなどの処理も行っている(ステップS753)。
【0094】
全てのポリゴンについての処理が終了すると、ループ処理を抜け、グラフィック処理部111は、フレームメモリ112に展開された画像データを順次読み出し、同期信号を付加してビデオ信号を生成し、表示装置121に出力する(ステップS754)。これでグラフィック処理部111による処理も終了となる。表示装置121は、グラフィック処理部111から出力されたビデオ信号に対応した画像を表示画面122の表示画面に表示する。1フレーム時間毎に表示画面122が切り替えられていくことで、プレイヤは、プレイヤキャラクタ201〜203と敵キャラクタとのバトルが行われている画像を見ることができるようになる。
【0095】
以下、この実施の形態にかかる3次元ビデオゲームにおいて、バトル時におけるキャラクタの位置及び種類に応じて、仮想カメラ401の視点403の位置を移動することによって生じる表示画面122の変化について、具体的な例に基づいて説明する。図13(a)〜(c)は、キャラクタの位置及び種類に応じた表示画面122の例を示す図である。
【0096】
図13(a)及び(b)は、同じ回のバトルにおける表示画面122を示すものであるが、バトルの進行に伴ってプレイヤキャラクタ201〜203及び敵キャラクタ204〜206の位置が変化している。これに伴って、仮想カメラ401の視点403の位置も変更されるので、図に示すような表示画面122の変化が現れる。
【0097】
また、図13(a)及び(b)では、敵キャラクタ204〜206の高さは、プレイヤキャラクタ201〜203の高さとあまり変わらず、高い位置にある仮視点位置に高いポイントが与えられるので、比較的高い位置に仮想カメラ401の視点403の位置を設定した画像が表示されていることが分かる。これに対して、別の回のバトルを示した図13(c)では、敵キャラクタ207、208の高さがプレイヤキャラクタ201〜203の高さと大きく異なり、低い位置にある仮視点位置に高いポイントが与えられるので、比較的低い位置に仮想カメラ401の視点403の位置を設定した画像が表示されていることが分かる。
【0098】
以上説明したように、この実施の形態にかかる3次元ビデオゲームでは、バトルの進行と共にキャラクタの位置が変化していくが、このキャラクタの位置の変化に応じて仮想カメラ401の視点403の位置が求められる。このため、常に適した位置にある仮想カメラ401により透視変換を行った画像が、表示画面122に表示されるようになる。
【0099】
仮想カメラ401の視点403は、全てのキャラクタを仮想スクリーン402に投影できる位置として決定された仮視点位置の中から選ばれるので、表示画面122に全てのキャラクタを配置することができるようになる。しかも、仮想カメラ401の視軸404は、常に仮視点位置を決定する基準となる注視点500を向くようになっている。このため、表示画面122上において、バトルに登場している全てのキャラクタをバランスよく配置することができるようになる。
【0100】
仮想カメラ401の視点403の位置を選択するための各仮視点位置の評価は、距離評価処理、角度評価処理、重なり評価処理及び高さ評価処理の4つで行われている。距離評価処理では、注視点500までの距離が短い仮視点位置ほど高いポイントが加算されることとなるので、表示画面122に表示されるキャラクタのサイズを大きくすることができる。角度評価処理では、現在の仮想カメラ401の視点403の位置から注視点500を中心とした角度が小さい仮視点位置ほど高いポイントが加算されることとなるので、視点403の移動量を小さくすることができ、表示画面122の変化に違和感が生じないようにすることができる。
【0101】
重なり評価処理では、キャラクタの重なり面積が小さい仮視点位置ほど高いポイントが与えられるので、表示画面122上においてプレイヤが個々のキャラクタを見易くすることができる。重なり評価処理でキャラクタの重なり面積を求めるための処理は、簡易な方法の適用で処理量を抑えることができるようになっている。もっとも、ここで求める重なり面積は、単に仮想カメラ401の視点403の位置を決定するだけのために用いられるので、簡易な方法で正確な値が求められなくても、実用上の問題が生じることがない。
【0102】
高さ評価処理では、バトルに登場しているキャラクタの高さの差に応じて、角度的に高い位置にある仮視点位置ほど高いポイントが加算されたり、角度的に低い位置にある仮視点位置ほど低いポイントが加算されたりする。このため、表示画面122上において、プレイヤがキャラクタの大きさを認識しやすくする画像を表示させるようにすることができる。
【0103】
バトル用のマップには、仮想カメラ401の視点403の位置を移動できる有効範囲が設定されており、これを越えると正確に透視変換を行うことができなくなる。もっとも、このような場合には、仮想カメラ401の視点403の位置を注視点500の方向に移動すると共に、全てのキャラクタを仮想スクリーン403に投影できるように視角405も調整しているので、有効範囲外の位置でも仮視点位置として設定して、評価を行うことができる。有効範囲外の仮視点位置のトータルポイントが高くなっても、実質的に有効範囲外の仮視点位置に仮想カメラ401の視点403を置いたのと変わらない画面を生成することができる。
【0104】
距離評価処理、角度評価処理、重なり評価処理及び高さ評価処理により仮視点位置のトータルポイントが算出されるが、仮想カメラ401の視点403を移動すべき位置としては、トータルポイントが上位4位までの仮視点位置が選択される。仮想カメラ401の視点403の位置は、選択された4つの仮視点位置で所定時間毎に切り替えて移動される。このため、表示画面122に表示される画像を変化に富んだものとすることができる。
【0105】
この実施の形態にかかる3次元ビデオゲームでは、バトルにおいてキャラクタの位置が次々に変化していく。バトルの時間が長くなれば、キャラクタの位置がバトルの開始時とは大きく異なる場合が生じてくる。もっとも、バトルの時間が長くなってキャラクタの位置が大きく変化することになっても、仮想カメラ401の視点403の位置は一定時間毎に新たに決定されることとなるので、仮想カメラ401の視点403の位置を適切な位置とすることができる。
【0106】
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
【0107】
上記の実施の形態では、角度評価処理において、各仮視点位置のポイントを求める際に、各仮視点位置と注視点500と結ぶ直線が現在の仮想カメラ401の視点403の位置と注視点500とを結ぶ直線となす角度θ1が求められていた。また、高さ評価処理において、各仮視点位置と注視点500とを結ぶ直線が水平面となす角度θ2が求められていた。
【0108】
しかしながら、各仮視点位置を評価したポイントを求めるまでに使用する演算式によっては、角度そのものの値を示すθ1、θ2が求められることがなくてもよい。これらの正弦値、余弦値または正接値などの角度に応じて一義的に特定される数値が演算途中で求められ、最終的なポイントが求められる場合には、正弦値、余弦値または正接値などの角度に応じて一義的に特定される数値を求めることが、実質的に角度を求めていることと変わりがないからである。
【0109】
上記の実施の形態では、仮想カメラ401の視点403の位置としてトータルポイントが4位までとなった仮視点位置が選択されていたが、これらは所定時間毎に自動的に切り替えられるものとなっていた。これに対して、トータルポイントが高い仮視点位置ほど視点403の位置が置かれている時間が長くなるように、仮想カメラ401の視点403の位置を切り替えてもよい。
【0110】
また、プレイヤが入力部161から所定の操作入力を行う度に、制御部103は、トータルポイントが4位までとなった仮視点位置に順次切り替えて、順次仮想カメラ401の視点403の位置を移動していくものとしてもよい。これにより、プレイヤは、ゲームの進行状態を示す画像として自分の好みに応じた画像を表示装置121に表示させることができるので、ゲームを進行し易くすることができる。
【0111】
さらに、プレイヤが入力部161から所定の操作入力を行うことによって、制御部103は、トータルポイントに関わらず仮想カメラ401の視点403の位置を移動させることができるようにしてもよい。この場合において、仮想カメラ401の視点403は、注視点500を基準として選ばれる仮視点位置(トータルポイントの大小を問わない)だけに移動できるものとしてもよい。仮想カメラ401の視点403は、仮視点位置に関わらず、有効範囲内の全ての位置に移動できるものとしてもよい。このように仮想カメラ401の視点403の位置を自由に移動できるようにすることで、プレイヤは、自分の好みに合わせた表示画面122に従ってゲームを進行させることができる。
【0112】
上記の実施の形態では、バトル処理において一定時間が経過する度に注視点500を基準として選ばれる各仮視点位置についてのトータルポイントが求められ、仮想カメラ401の視点403の位置が決定されるものとしていた。これに対して、プレイヤキャラクタ201〜203のうちで新たに行動可能となったものが生じる都度、バトル処理において一定時間が経過する度に注視点500を基準として選ばれる各仮視点位置についてのトータルポイントが求められ、仮想カメラ401の視点403の位置が決定されるものとしてもよい。この場合、プレイヤは、現在の状況に最も適した位置にある視点403から透視変換を行った表示画面122を見て、行動可能となったプレイヤキャラクタ201〜203に行動を指示することができるようになる。
【0113】
上記の実施の形態では、注視点500は、バトルに登場している全てのキャラクタ(プレイヤキャラクタ及び敵キャラクタを含む)の位置の単純な中心位置に設定されるものとしていた。これに対して、キャラクタの大きさはバトルにおける重要度にバラツキがある場合には、そのバラツキに応じて各キャラクタの位置に重み付けを行い、注視点500の位置を求めるものとしてもよい。また、バトルにおいて一定時間戦闘不能になっているキャラクタなど、表示画面122上に映し出されなくてもゲームの進行に特に影響がないキャラクタもあり得る。そこで、このようなキャラクタは、注視点500を求めるための対象から除外してもよい。
【0114】
さらに、このようなキャラクタは、注視点500と仮ポイントとを結ぶ直線上で仮視点位置を選ぶ場合においても、仮想スクリーン402に映し出されなければならない対象としてのキャラクタから除外してもよい。これにより、仮想カメラ401の視点403の位置として、バトルの状況に応じてより適切な位置を選ぶことができるようになる。
【0115】
上記の実施の形態では、注視点500を基準として選ばれた各仮視点位置について、距離評価処理、角度評価処理、重なり評価処理及び高さ評価処理のそれぞれでポイントが加算され、トータルポイントが求められるものとしていた。しかしながら、各仮視点位置のトータルポイントの算出のために少なくとも距離評価処理を適用するのであれば、角度評価処理、重なり評価処理及び高さ評価処理を適用するかどうかは任意に選ぶことができる。また、これら以外の方法で各仮視点位置を評価したポイントをさらに加算して、各仮視点位置のトータルポイントを求めるものとしてもよい。
【0116】
上記の実施の形態では、通常のゲームの進行の過程から移行したプレイヤキャラクタと敵キャラクタとのバトルにおいて、その映像を映し出すために本発明を適用した場合について説明した。しかしながら、本発明は、仮想3次元空間内において複数のキャラクタが存在し、そのうち少なくとも1つが移動することとなる3次元ビデオゲーム全般に適用することができる。なお、キャラクタとは、上記したような人間や動物、ロボットなどの形象をしたものに限られず、ゲームの進行に関わり、仮想3次元空間内で移動可能としたオブジェクト全般(例えば、自動車や飛行機等)を含むことができる。
【0117】
上記の実施の形態では、3次元ビデオゲームを実行するためのプラットフォームとして専用機であるビデオゲーム装置100を適用していた。これに対して、ビデオゲーム本体101と同様の構成要素を備えるのであれば、汎用のパーソナルコンピュータなどを適用してもよい。また、表示装置121及びサウンド出力装置125をビデオゲーム本体101と同一の筐体内に納めた構成を有する携帯ゲーム機を適用するものとしてもよい。
【0118】
携帯ゲーム機の場合は、記録媒体131として、DVD−ROMやCD−ROMの代わりに半導体メモリカードを適用することができる。携帯ゲーム機には、このメモリカードを挿入するためのカードスロットをDVD/CD−ROMドライブ113の代わりに設けることができる。汎用のパーソナルコンピュータの場合には、本発明に係るプログラム及びデータを記録媒体131に格納して提供するのではなく、HDD107に予め格納して提供してもよい。本発明にかかるプログラム及びデータを格納して提供するための記録媒体は、ハードウェアの物理的形態及び流通形態に応じて任意のものを適用することができる。
【0119】
上記の実施の形態では、ビデオゲーム装置100のプログラム及びデータは、記録媒体131に格納されて配布されるものとしていた。これに対して、これらのプログラム及びデータをネットワーク151上に存在するサーバ装置が有する固定ディスク装置に格納しておき、ビデオゲーム本体101にネットワーク151を介して配信するものとしてもよい。ビデオゲーム装置100において、通信インターフェイス115がサーバ装置から受信したプログラム及びデータは、HDD107に保存し、実行時にRAM105にロードすることができる。
【0120】
【発明の効果】
以上説明したように、本発明によれば、少なくとも1のキャラクタの移動に伴って仮想カメラの視点の位置を適切な位置に移動し、仮想3次元空間を透視変換することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に適用されるビデオゲーム装置の構成を示すブロック図である。
【図2】本発明の実施の形態にかかるビデオゲームにおいて、バトル時における表示画面の例を示す図である。
【図3】バトル時において登場するキャラクタに設定される参照点を示す図である。
【図4】仮想3次元空間を透視変換して表示するための処理を模式的に示す図である。
【図5】プレイヤキャラクタと敵キャラクタとのバトル処理を示すフローチャートである。
【図6】バトル時における仮想カメラの制御処理を示すフローチャートである。
【図7】図6のフローチャートにおいて、注視点の決定から仮視点位置の決定までを説明する図である。
【図8】図6の距離評価処理を詳細に示すフローチャートである。
【図9】図6の角度評価処理を詳細に示すフローチャートである。
【図10】図6の重なり評価処理を詳細に示すフローチャートである。
【図11】図6の高さ評価処理を詳細に示すフローチャートである。
【図12】仮想3次元空間を透視変換して表示画面を生成するための処理を示すフローチャートである。
【図13】バトル時におけるキャラクタの位置及び種類に応じて仮想カメラの視点の位置を移動することによる表示画面の変化を説明する図である。
【符号の説明】
100 ビデオゲーム装置
101 ビデオゲーム本体
103 制御部
105 RAM
107 HDD
109 サウンド処理部
111 グラフィック処理部
113 DVD/CD−ROMドライブ
115 通信インターフェイス
117 インターフェイス部
119 内部バス
121 表示装置
122 表示画面
125 サウンド出力装置
131 記録媒体
151 ネットワーク
161 入力部
162 メモリーカード
201〜208 キャラクタ
300〜308 参照点
401 仮想カメラ
402 仮想スクリーン
403 視点
404 視軸
405 視角
500 注視点

Claims (17)

  1. 複数のキャラクタが存在する仮想3次元空間を、前記複数のキャラクタの位置に基づいて仮想カメラの視点の位置を移動し、該仮想カメラの視点から仮想スクリーン上に透視変換するビデオゲーム装置であって、
    前記複数のキャラクタのうちの少なくとも1つを前記仮想3次元空間において移動させるキャラクタ移動手段と、
    前記複数のキャラクタの前記仮想3次元空間における中心位置を算出する中心位置算出手段と、
    前記中心位置算出手段が算出した中心位置を基準として、前記仮想3次元空間に複数の仮ポイントを設定する仮ポイント設定手段と、
    前記複数の仮ポイントのそれぞれと前記中心位置とを結ぶ複数の直線上にそれぞれ前記仮想カメラの視点を設定して所定の視角で透視変換を行った場合に、前記複数のキャラクタの全てを前記仮想スクリーン上に投影することができる位置をそれぞれ仮視点位置として設定する仮視点位置設定手段と、
    前記複数の直線上のそれぞれに設定された仮視点位置と前記中心位置算出手段が算出した中心位置との間の距離を算出する距離算出手段と、
    前記距離算出手段が算出した距離に基づいて、前記複数の直線上にそれぞれ設定された仮視点位置を評価する視点位置評価手段と、
    前記視点位置評価手段の評価結果に従って、前記仮視点位置のうちで前記仮想カメラの視点を移動させるべき位置を選択する視点位置選択手段と、
    前記視点位置選択手段が選択した位置に、前記仮想カメラの視点の位置を移動させる視点位置移動手段と、
    前記視点位置移動手段により位置が移動された前記仮想カメラの視点から前記仮想3次元空間を仮想スクリーン上に透視変換する透視変換手段と
    を備えることを特徴とする3次元ビデオゲーム装置。
  2. 現在の仮想カメラの視点の位置と前記中心位置算出手段が算出した中心位置とを結ぶ直線と、前記複数の直線がそれぞれなす角度を算出する角度算出手段をさらに備え、
    前記視点位置評価手段は、さらに前記角度算出手段が算出した角度に基づいて、前記複数の直線上にそれぞれ設定される仮視点位置を評価する
    ことを特徴とする請求項1に記載の3次元ビデオゲーム装置。
  3. 前記仮視点位置のそれぞれから透視変換を行った場合に前記複数のキャラクタがそれぞれ該仮視点位置に対応した仮想スクリーンに投影される部分で他のキャラクタが投影される部分と重なり合う重なり面積を順次加算し、全てのキャラクタについての重なり面積を加算した結果を、それぞれの仮視点位置における前記複数のキャラクタの重なり度合いとして算出する重なり度算出手段をさらに備え、
    前記視点位置評価手段は、さらに前記重なり度算出手段が算出した重なり度合いに基づいて、前記複数の直線上にそれぞれ設定される仮視点位置を評価する
    ことを特徴とする請求項1または2に記載の3次元ビデオゲーム装置。
  4. 前記複数のキャラクタの高さの差が所定値以上であるかどうかを判定するキャラクタ判定手段とをさらに備え、
    前記視点位置評価手段は、さらに前記キャラクタ判定手段の判定結果に応じて前記複数の直線上にそれぞれ設定される仮視点位置を評価する
    ことを特徴とする請求項1乃至3のいずれか1項に記載の3次元ビデオゲーム装置。
  5. 一定の時間間隔の経過を計時する計時手段と、
    前記計時手段が前記一定の時間間隔の経過を計時する度に、前記中心位置算出手段、前記仮ポイント設定手段、前記仮視点位置選択手段、前記距離算出手段及び前記視点位置評価手段による請求項1、2、3または4に記載の処理を行わせる処理制御手段とをさらに備える
    ことを特徴とする請求項1、2、3または4に記載の次元ビデオゲーム装置。
  6. 前記複数のキャラクタは、プレイヤの指示により前記仮想3次元空間を移動する複数のプレイヤキャラクタを含み、
    前記複数のプレイヤキャラクタのうちで前記キャラクタ移動手段による移動を行わせるための指示の入力が不能な状態から可能な状態となるプレイヤキャラクタを順次切り替えるプレイヤキャラクタ切替手段と、
    前記プレイヤキャラクタ切替手段により指示の入力が可能となるプレイヤキャラクタが切り替えられる度に、前記中心位置算出手段、前記仮ポイント設定手段、前記仮視点位置選択手段、前記距離算出手段及び前記視点位置評価手段による請求項1、2、3または4に記載の処理を行わせる処理制御手段とをさらに備える
    ことを特徴とする請求項1、2、3または4に記載の3次元ビデオゲーム装置。
  7. 前記視点位置選択手段は、前記視点位置評価手段の評価結果に従って、前記仮想カメラの視点を移動させるべき位置として複数の位置を選択し、
    前記視点位置移動手段は、前記視点位置選択手段が選択した複数の位置に順次前記仮想カメラの視点の位置を切り替えて移動させる
    ことを特徴とする請求項1乃至のいずれか1項に記載の3次元ビデオゲーム装置。
  8. 前記視点位置移動手段は、所定の時間が経過する度に、前記仮想カメラの視点の位置の切り替えを制御する手段を含む
    ことを特徴とする請求項に記載の3次元ビデオゲーム装置。
  9. 前記視点位置移動手段は、前記視点位置評価手段の評価結果に従って、前記仮想カメラの視点の位置の切り替えを制御する手段を含む
    ことを特徴とする請求項またはに記載の3次元ビデオゲーム装置。
  10. プレイヤの操作により前記仮想カメラの視点の位置の切り替えを指示する視点切替指示手段をさらに備え、
    前記指定位置移動手段は、前記視点切替指示手段から切り替えが指示される度に、前記仮想カメラの視点の位置の切り替えを制御する手段を含む
    ことを特徴とする請求項乃至のいずれか1項に記載の3次元ビデオゲーム装置。
  11. 前記仮想3次元空間には、前記仮想カメラの視点の位置を移動できる範囲限界が定められており、
    前記視点位置選択手段が選択した仮想カメラの視点の位置が、前記範囲限界内にあるかどうかを判定する範囲限界判定手段をさらに備え、
    前記視点位置移動手段は、前記範囲限界判定手段が前記範囲限界内にないと判定したときに、前記視点位置選択手段が選択した仮想カメラの視点の位置を前記範囲限界内に含まれるまで前記中心位置に向けてさらに移動し、
    前記仮想カメラの視点を前記中心位置に向けて移動した場合に、前記複数のキャラクタが全て前記仮想スクリーン上に投影されるように前記仮想カメラの視角を変化させる視角変化手段をさらに備える
    ことを特徴とする請求項1乃至10のいずれか1項に記載の3次元ビデオゲーム装置。
  12. プレイヤの操作により前記仮想カメラの視点の位置を移動することを指示する視点移動指示手段をさらに備え、
    前記視点位置移動手段は、前記視点位置移動指示手段からの移動の指示に応じて、前記仮想カメラの視点の位置を移動する
    ことを特徴とする請求項1乃至11のいずれか1項に記載の3次元ビデオゲーム装置。
  13. 前記視点位置移動手段は、前記視点位置移動指示手段からの移動の指示があったときには、前記視点位置選択手段が選択した位置であるか否かに関わらず、該移動の指示に応じて該視点の位置を移動可能な範囲にある任意の位置に前記仮想カメラの視点の位置を移動する
    ことを特徴とする請求項12に記載の3次元ビデオゲーム装置。
  14. 前記中心位置算出手段は、前記仮想3次元空間に存在する複数のキャラクタの位置にそれぞれ重みを付けて、該複数のキャラクタの中心位置を算出する
    ことを特徴とする請求項1乃至13のいずれか1項に記載の3次元ビデオゲーム装置。
  15. ゲームの進行状況に応じて、前記仮想3次元空間に存在する複数のキャラクタのうちから、前記仮想カメラの視点の位置の決定対象として用いられるキャラクタを選択するキャラクタ選択手段をさらに備える
    ことを特徴とする請求項1乃至14のいずれか1項に記載の3次元ビデオゲーム装置。
  16. コンピュータ装置において実行され、複数のキャラクタが存在する仮想3次元空間を、前記複数のキャラクタの位置に基づいて仮想カメラの視点の位置を移動し、該仮想カメラの視点から仮想スクリーン上に透視変換するビデオゲームを実行するためのプログラムであって
    前記複数のキャラクタのうちの少なくとも1つを前記仮想3次元空間において移動させるキャラクタ移動手段と、
    前記複数のキャラクタの前記仮想3次元空間における中心位置を算出する中心位置算出手段と、
    前記中心位置算出手段が算出した中心位置を基準として、前記仮想3次元空間に複数の仮ポイントを設定する仮ポイント設定手段と、
    前記複数の仮ポイントのそれぞれと前記中心位置とを結ぶ複数の直線上にそれぞれ前記仮想カメラの視点を設定して所定の視角で透視変換を行った場合に、前記複数のキャラクタの全てを前記仮想スクリーン上に投影することができる位置をそれぞれ仮視点位置として設定する仮視点位置設定手段と、
    前記複数の直線上のそれぞれに設定された仮視点位置と前記中心位置算出手段が算出した中心位置との間の距離を算出する距離算出手段と、
    前記距離算出手段が算出した距離に基づいて、前記複数の直線上にそれぞれ設定された仮視点位置を評価する視点位置評価手段と、
    前記視点位置評価手段の評価結果に従って、前記仮視点位置のうちで前記仮想カメラの視点を移動させるべき位置を選択する視点位置選択手段と、
    前記視点位置選択手段が選択した位置に、前記仮想カメラの視点の位置を移動させる視点位置移動手段と、
    前記視点位置移動手段により位置が移動された前記仮想カメラの視点から前記仮想3次元空間を仮想スクリーン上に透視変換する透視変換手段
    として前記コンピュータ装置を機能させることを特徴とするプログラム。
  17. コンピュータ装置において実行され、複数のキャラクタが存在する仮想3次元空間を、前記複数のキャラクタの位置に基づいて仮想カメラの視点の位置を移動し、該仮想カメラの視点から仮想スクリーン上に透視変換するビデオゲームを実行するためのプログラムを記録した記録媒体であって、
    前記プログラムは
    前記複数のキャラクタのうちの少なくとも1つを前記仮想3次元空間において移動させるキャラクタ移動手段と、
    前記複数のキャラクタの前記仮想3次元空間における中心位置を算出する中心位置算出手段と、
    前記中心位置算出手段が算出した中心位置を基準として、前記仮想3次元空間に複数の仮ポイントを設定する仮ポイント設定手段と、
    前記複数の仮ポイントのそれぞれと前記中心位置とを結ぶ複数の直線上にそれぞれ前記仮想カメラの視点を設定して所定の視角で透視変換を行った場合に、前記複数のキャラクタの全てを前記仮想スクリーン上に投影することができる位置をそれぞれ仮視点位置として設定する仮視点位置設定手段と、
    前記複数の直線上のそれぞれに設定された仮視点位置と前記中心位置算出手段が算出した中心位置との間の距離を算出する距離算出手段と、
    前記距離算出手段が算出した距離に基づいて、前記複数の直線上にそれぞれ設定された仮視点位置を評価する視点位置評価手段と、
    前記視点位置評価手段の評価結果に従って、前記仮視点位置のうちで前記仮想カメラの視点を移動させるべき位置を選択する視点位置選択手段と、
    前記視点位置選択手段が選択した位置に、前記仮想カメラの視点の位置を移動させる視点位置移動手段と、
    前記視点位置移動手段により位置が移動された前記仮想カメラの視点から前記仮想3次元空間を仮想スクリーン上に透視変換する透視変換手段
    として前記コンピュータ装置を機能させることを特徴とするコンピュータ読み取り可能な記録媒体。
JP2003058136A 2003-03-05 2003-03-05 3次元ビデオゲーム装置、3次元ビデオゲームにおける仮想カメラの制御方法、並びにプログラム及び記録媒体 Expired - Lifetime JP3696216B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2003058136A JP3696216B2 (ja) 2003-03-05 2003-03-05 3次元ビデオゲーム装置、3次元ビデオゲームにおける仮想カメラの制御方法、並びにプログラム及び記録媒体
US10/759,133 US7824265B2 (en) 2003-03-05 2004-01-20 Virtual camera control method in three-dimensional video game
DE602004003979T DE602004003979T2 (de) 2003-03-05 2004-02-05 Verfahren zur Steuerung einer virtuellen Kamera in einem dreidimensionalen Videospiel
EP04002571A EP1454663B1 (en) 2003-03-05 2004-02-05 Virtual camera control method in three-dimensional video game

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003058136A JP3696216B2 (ja) 2003-03-05 2003-03-05 3次元ビデオゲーム装置、3次元ビデオゲームにおける仮想カメラの制御方法、並びにプログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2004267247A JP2004267247A (ja) 2004-09-30
JP3696216B2 true JP3696216B2 (ja) 2005-09-14

Family

ID=32821198

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003058136A Expired - Lifetime JP3696216B2 (ja) 2003-03-05 2003-03-05 3次元ビデオゲーム装置、3次元ビデオゲームにおける仮想カメラの制御方法、並びにプログラム及び記録媒体

Country Status (4)

Country Link
US (1) US7824265B2 (ja)
EP (1) EP1454663B1 (ja)
JP (1) JP3696216B2 (ja)
DE (1) DE602004003979T2 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2005292133B2 (en) * 2004-10-01 2009-06-04 Wms Gaming Inc. System and method for 3D reel effects
WO2006039257A1 (en) * 2004-10-01 2006-04-13 Wms Gaming Inc. System and method for 3d image manipulation in gaming machines
WO2006039371A2 (en) * 2004-10-01 2006-04-13 Wms Gaming Inc. Displaying 3d characters in gaming machines
JP2006305176A (ja) * 2005-04-28 2006-11-09 Nintendo Co Ltd ゲームプログラムおよびゲーム装置
JP4312737B2 (ja) * 2005-05-13 2009-08-12 任天堂株式会社 ゲームプログラムおよびゲーム装置
JP4739091B2 (ja) * 2006-01-24 2011-08-03 株式会社ユニバーサルエンターテインメント 遊技機及びシミュレーションプログラム
WO2007146264A2 (en) * 2006-06-12 2007-12-21 Wms Gaming Inc. Wagering machines having three dimensional game segments
US9630104B2 (en) * 2006-10-23 2017-04-25 Konrad V. Sherinian Systems, methods, and apparatus for transmitting virtual world content from a server system to a client
US8628415B2 (en) * 2006-11-09 2014-01-14 Wms Gaming Inc. Wagering game with 3D gaming environment using dynamic camera
JP4128595B2 (ja) * 2006-11-29 2008-07-30 株式会社スクウェア・エニックス ゲーム装置及びゲームの進行方法、並びにプログラム及び記録媒体
JP5226960B2 (ja) * 2007-02-28 2013-07-03 株式会社スクウェア・エニックス ゲーム装置及び仮想カメラの制御方法、並びにプログラム及び記録媒体
US8882594B2 (en) * 2007-04-05 2014-11-11 Microsoft Corporation Control scheme for real time strategy game
JP4489800B2 (ja) * 2007-08-30 2010-06-23 株式会社スクウェア・エニックス 画像生成装置及び方法、並びにプログラム及び記録媒体
JP4662495B2 (ja) * 2007-11-30 2011-03-30 株式会社スクウェア・エニックス 画像生成装置、画像生成プログラム、画像生成プログラム記録媒体及び画像生成方法
WO2009101663A1 (ja) * 2008-02-15 2009-08-20 Sony Computer Entertainment Inc. ゲーム装置、ゲーム制御方法、及びゲーム制御プログラム
JP4425963B2 (ja) * 2008-03-14 2010-03-03 株式会社コナミデジタルエンタテインメント 画像生成装置、画像生成方法、および、プログラム
JP4545809B2 (ja) * 2008-06-05 2010-09-15 株式会社スクウェア・エニックス ゲーム装置及びプログラム
KR20100064533A (ko) * 2008-12-05 2010-06-15 삼성전자주식회사 카메라를 이용한 문자 크기 자동 조절 장치 및 방법
JP5199053B2 (ja) 2008-12-16 2013-05-15 株式会社スクウェア・エニックス ゲーム装置、ゲームのリプレイ表示方法、ゲームプログラム及び記録媒体
US8649554B2 (en) * 2009-05-01 2014-02-11 Microsoft Corporation Method to control perspective for a camera-controlled computer
US8685911B2 (en) * 2009-11-30 2014-04-01 The Procter & Gamble Company Rinse aid compositions
JP5844962B2 (ja) * 2010-03-10 2016-01-20 任天堂株式会社 画像処理プログラム、画像処理装置、画像処理方法および画像処理システム
JP5572473B2 (ja) * 2010-07-30 2014-08-13 京楽産業.株式会社 遊技機
JP5775323B2 (ja) * 2011-02-23 2015-09-09 株式会社カプコン プログラム、および、当該プログラムを実行するコンピュータを備えた画像処理装置
WO2012144837A2 (ko) * 2011-04-21 2012-10-26 (주)티플렉스게임즈 대규모 멀티 플레이어 온라인 롤플레잉 게임방법 및 시스템
JP5617022B1 (ja) 2013-10-24 2014-10-29 株式会社 ディー・エヌ・エー 仮想空間の表示画像を生成するためのシステム、プログラム及び方法
JP5617021B1 (ja) * 2013-10-24 2014-10-29 株式会社 ディー・エヌ・エー 仮想空間の表示画像を生成するためのシステム、プログラム及び方法
JP6643775B2 (ja) * 2015-01-29 2020-02-12 株式会社バンダイナムコエンターテインメント ゲーム機、ゲームシステム及びプログラム
JP2017208688A (ja) * 2016-05-18 2017-11-24 株式会社スクウェア・エニックス プログラム、コンピュータ装置、プログラム実行方法、及び、コンピュータシステム
WO2018095366A1 (zh) * 2016-11-24 2018-05-31 腾讯科技(深圳)有限公司 视频推荐确定、信息显示、基于帧同步的数据处理方法
JP2018196841A (ja) * 2018-09-25 2018-12-13 株式会社スクウェア・エニックス ビデオゲーム処理プログラム及びビデオゲーム処理システム
US11305191B2 (en) * 2018-12-20 2022-04-19 Activision Publishing, Inc. Systems and methods for controlling camera perspectives, movements, and displays of video game gameplay
US11420122B2 (en) 2019-12-23 2022-08-23 Activision Publishing, Inc. Systems and methods for controlling camera perspectives, movements, and displays of video game gameplay
CN111246095B (zh) * 2020-01-17 2021-04-27 腾讯科技(深圳)有限公司 控制镜头运动的方法、装置、设备及存储介质
CN113473156B (zh) * 2020-04-24 2023-02-03 海信集团有限公司 一种自由视点视频传输方法以及相关设备
CN112076470B (zh) * 2020-08-26 2021-05-28 北京完美赤金科技有限公司 虚拟对象的展示方法、装置、设备
CN112121423B (zh) * 2020-09-24 2021-08-24 苏州幻塔网络科技有限公司 一种虚拟摄像机的控制方法及装置、设备
US11439904B2 (en) 2020-11-11 2022-09-13 Activision Publishing, Inc. Systems and methods for imparting dynamic and realistic movement to player-controlled avatars in video games

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US96648A (en) * 1869-11-09 Improvement in crank-axles for velocipedes
JP2719056B2 (ja) 1991-08-20 1998-02-25 富士通株式会社 三次元物体描画装置
JPH06274598A (ja) * 1993-03-19 1994-09-30 N T T Data Tsushin Kk 三次元視点パラメータ指定装置
JP3311830B2 (ja) * 1993-09-20 2002-08-05 株式会社東芝 3次元動画作成装置
JPH0869274A (ja) * 1994-08-30 1996-03-12 Sega Enterp Ltd 画像処理装置およびその方法
EP0842682B9 (en) * 1996-06-05 2005-06-08 Sega Corporation Image processor for games
JP3745475B2 (ja) * 1996-12-06 2006-02-15 株式会社セガ ゲーム装置及び画像処理装置
JPH10113467A (ja) 1997-09-30 1998-05-06 Sega Enterp Ltd 三次元画像表示を用いた電子遊戯装置
JP2001162040A (ja) 1999-12-13 2001-06-19 Enix Corp ビデオゲーム装置およびプログラムを格納した記録媒体
JP2001269482A (ja) * 2000-03-24 2001-10-02 Konami Computer Entertainment Japan Inc ゲームシステム、ゲーム用プログラムを記録したコンピュータ読み取り可能な記録媒体及び画像表示方法
JP3699660B2 (ja) * 2001-03-30 2005-09-28 コナミ株式会社 ゲーム装置及びネットワークゲームシステム
JP4707080B2 (ja) * 2001-07-30 2011-06-22 株式会社バンダイナムコゲームス 画像生成システム、プログラム及び情報記憶媒体
JP3816375B2 (ja) * 2001-11-15 2006-08-30 株式会社スクウェア・エニックス ビデオゲーム装置、ビデオゲームにおけるキャラクタの表示方法、プログラム及び記録媒体
US7198568B2 (en) * 2002-05-01 2007-04-03 Nintendo Co., Ltd. Game machine and game program for changing the movement of one character based on the movement of another character

Also Published As

Publication number Publication date
DE602004003979D1 (de) 2007-02-15
US20040176164A1 (en) 2004-09-09
DE602004003979T2 (de) 2007-08-30
EP1454663B1 (en) 2007-01-03
JP2004267247A (ja) 2004-09-30
EP1454663A1 (en) 2004-09-08
US7824265B2 (en) 2010-11-02

Similar Documents

Publication Publication Date Title
JP3696216B2 (ja) 3次元ビデオゲーム装置、3次元ビデオゲームにおける仮想カメラの制御方法、並びにプログラム及び記録媒体
US8197339B2 (en) Video game processing apparatus, a method and a computer program product for processing a video game
JP4297915B2 (ja) ビデオゲーム処理装置、ビデオゲーム処理方法、およびビデオゲーム処理プログラム
JP4177381B2 (ja) 画像生成方法、画像生成装置、および画像生成プログラム
JP4346625B2 (ja) ビデオゲーム処理装置、およびビデオゲーム処理プログラム
EP2016983A1 (en) Program, information storing medium and image generating system
JP5044550B2 (ja) ゲーム装置、ゲーム装置の入力方法及び入力プログラム
JP2001009156A (ja) コンピュータ読み取り可能な記録媒体、ゲームの表示制御方法およびゲーム装置
JP4734165B2 (ja) ビデオゲーム処理装置、ビデオゲーム処理方法、およびビデオゲーム処理プログラム
JP5044549B2 (ja) 三次元ゲームの表示システム、表示方法及び表示プログラム
US6614435B1 (en) Method of control of playback of motion and program product and game system for same
JP3926307B2 (ja) 3次元画像描画装置及び方法、プログラム、並びに記録媒体
JP5210547B2 (ja) 移動制御プログラムおよび移動制御装置
JPWO2008016064A1 (ja) ゲーム装置、ゲーム装置におけるオブジェクトの表示方法及び表示プログラム
JP2008165584A (ja) 画像処理装置、画像処理装置の制御方法及びプログラム
JP5378425B2 (ja) ビデオゲーム処理装置およびビデオゲーム処理プログラム
JP4327868B2 (ja) ゲーム装置、ゲーム制御方法、ゲーム制御プログラム、及び該プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP3542795B1 (ja) 模擬実験装置、模擬実験方法、ならびに、プログラム
JP2005246071A (ja) 画像生成システム及び情報記憶媒体
US9675887B2 (en) Object display device
JP4754229B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4868568B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP2007075191A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2009223903A (ja) 画像生成装置及び方法、プログラム、並びに記録媒体
JP2008276808A (ja) 画像処理装置、画像処理装置の制御方法及びプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20041027

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050614

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050628

R150 Certificate of patent or registration of utility model

Ref document number: 3696216

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080708

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090708

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090708

Year of fee payment: 4

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090708

Year of fee payment: 4

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090708

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090708

Year of fee payment: 4

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090708

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090708

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090708

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100708

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110708

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110708

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120708

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120708

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130708

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130708

Year of fee payment: 8

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130708

Year of fee payment: 8

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term