JP3968356B2 - 表示装置、表示方法、ならびに、プログラム - Google Patents

表示装置、表示方法、ならびに、プログラム Download PDF

Info

Publication number
JP3968356B2
JP3968356B2 JP2004163825A JP2004163825A JP3968356B2 JP 3968356 B2 JP3968356 B2 JP 3968356B2 JP 2004163825 A JP2004163825 A JP 2004163825A JP 2004163825 A JP2004163825 A JP 2004163825A JP 3968356 B2 JP3968356 B2 JP 3968356B2
Authority
JP
Japan
Prior art keywords
virtual
viewpoint
time
dimensional space
unit
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
JP2004163825A
Other languages
English (en)
Other versions
JP2005316927A (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.)
Konami Digital Entertainment Co Ltd
Original Assignee
Konami Digital Entertainment 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
Priority to JP2004163825A priority Critical patent/JP3968356B2/ja
Application filed by Konami Digital Entertainment Co Ltd filed Critical Konami Digital Entertainment Co Ltd
Priority to EP05737186A priority patent/EP1744284B1/en
Priority to DE602005016914T priority patent/DE602005016914D1/de
Priority to PCT/JP2005/008022 priority patent/WO2005106802A1/ja
Priority to US11/587,483 priority patent/US7737978B2/en
Priority to KR1020067022492A priority patent/KR100794074B1/ko
Priority to CN2005800219817A priority patent/CN1977290B/zh
Priority to TW094113664A priority patent/TWI275974B/zh
Publication of JP2005316927A publication Critical patent/JP2005316927A/ja
Application granted granted Critical
Publication of JP3968356B2 publication Critical patent/JP3968356B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • 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/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/577Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • 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/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
    • 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/5258Changing parameters of virtual cameras by dynamically adapting the position of the virtual camera to keep a game object or game character in its viewing frustum, e.g. for tracking a character or a ball
    • 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/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/95Storage media specially adapted for storing game information, e.g. video game cartridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/537Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
    • 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/803Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
    • 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/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/206Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards
    • 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/63Methods for processing data by generating or executing the game program for controlling the execution of the game in time
    • 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/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
    • A63F2300/643Methods 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 by determining the impact between objects, e.g. collision detection
    • 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
    • A63F2300/6684Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera by dynamically adapting its position to keep a game object in its viewing frustrum, e.g. for tracking a character or a ball
    • 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/6692Methods for processing data by generating or executing the game program for rendering three dimensional images using special effects, generally involving post-processing, e.g. blooming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S345/00Computer graphics processing and selective visual display systems
    • Y10S345/949Animation processing method
    • Y10S345/958Collision avoidance

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Architecture (AREA)
  • Processing Or Creating Images (AREA)

Description

本発明は、三次元グラフィックス表示において、視点がオブジェクトに衝突することが予想される場合の表示を適切に行うのに好適な表示装置、表示方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
従来から、仮想三次元空間内にオブジェクトを複数配置し、仮想三次元空間内における時間経過を考えて、当該時間経過によって当該オブジェクトを適宜移動させて種々の模擬実験を行うとともに、これらのオブジェクトを所定の視点から所定の向きで見た様子を三次元グラフィックス表示する技術が提案されている。また、視点の位置や三次元空間を見る向きを当該時間経過によって変化させる技術も提案され、典型的には、視点をいずれかのオブジェクト上に設定し、三次元空間を見る向きを当該設定されたオブジェクトの移動方向に設定するものや、当該設定されたオブジェクトそのものの向きによって定めるものもある。
このような模擬実験においては、オブジェクト同士の衝突を考慮する必要がある。以下の文献には、三次元ゲームにおけるキャラクタ同士の衝突をリアルタイムに検出する技術が開示されている。
特開平11−197357号公報
従来、このような衝突の際の画面表示においては、仮想三次元空間内における時間経過と、現実の時間経過とを一致させることとしてリアルタイムに処理を行うことが必要と考えられていた。
しかしながら、特にオブジェクトの形状が種々多様であったり、オブジェクトの数が多い場合には、正確に衝突を判定して衝突の際のオブジェクトの移動を正確に計算するのでは、演算処理が複雑で膨大となり、事実上不可能な場合もあった。
一方で、衝突の判定や衝突の際のオブジェクトの移動を近似的に計算するのでは、いわゆるポリゴン落ちや、本来ありえない状況(たとえば、空洞のないオブジェクトの内部に視点が入り込んでしまう等。)が生じ、表示される画面が不自然になることもあった。
したがって、このような衝突の際における表示を適切に行って、衝突する旨をユーザにわかりやすいように提示する技術が求められている。
本発明は、上記のような課題を解決するためになされたもので、三次元グラフィックス表示において、視点がオブジェクトに衝突することが予想される場合の表示を適切に行うのに好適な表示装置、表示方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
本発明の第1の観点に係る表示装置は、記憶部、対応部、移動部、表示部、判定部を備え、以下のように構成する。
すなわち、記憶部には、仮想三次元空間内に配置されるオブジェクトおよび視点の座標と、当該視点から当該仮想三次元空間内を見る向きを表す向きベクトルと、当該オブジェクトおよび当該視点が当該仮想三次元空間内を移動する速度を表す速度ベクトルと、が記憶される。
典型的には、これらの値の初期値はDVD−ROM(Digital Versatile Disk Read Only Memory)などの記録媒体に記録されているものであるが、これらの値がRAM(Random Access Memory)や書換え可能な記録媒体にコピーされる。そして、これらの値は後述するように適宜更新される。
一方、対応部は、所定の更新時間おきに、現実の時間(以下「現実時間」という。)に、当該仮想三次元空間における時間(以下「仮想時間」という。)を対応付ける。
更新時間を定数値Aとすると、更新は、
t←t+A
のように行われ(「←」は代入や値の更新を意味する。)、現実時間tと仮想時間uとの対応付けは、もっとも単純には、定数値Cを用いて、
u=t+C
とすることとなる。この場合は、リアルタイムに仮想三次元空間の様子が表示されることとなる。本発明では、後述するように、この対応付けを変化させる。
さらに、移動部は、対応付けられた仮想時間に対する当該仮想三次元空間内の当該オブジェクトおよび当該視点の位置および当該視点から当該仮想三次元空間を見る向きを求め、記憶部に記憶される当該オブジェクトおよび当該視点の座標および向きベクトルを更新する。
なお、視点やオブジェクトは、一方が静止しており、他方が静止しているのであっても良い。たとえば、本表示装置をレーシングゲームに適用する場合には、視点とともに移動する自動車のオブジェクトは、仮想時間の経過とともに仮想三次元空間内を移動するが、自動車が走る路面やその路面上に配置される建物や壁などのオブジェクトは仮想三次元空間内で静止しているようにすることができる。
典型的には、オブジェクトや視点の速度ベクトル等の情報や、オブジェクトや視点の各種の拘束条件(たとえば、重力がかかっている、外力がかかっている、互いに結合されており分離できない、等。)の情報も記憶部に記憶しておき、オブジェクトにかかる各種の拘束条件から加速度を求め、加速度から速度を求め、速度から位置を求めることとなる。
この場合の、仮想三次元空間における経過時間は、現在対応付けられている仮想時間uと、その直前に対応付けられていた仮想時間との差によって得られる。上記のように、現実時間と仮想時間とが同じ経過をとる場合には、この差は定数値Aとなる。
このようにして、現実時間tに対応付けられる仮想時間uにおける仮想三次元空間内でのオブジェクトの位置r(u)、視点の位置c(u)、向きベクトルd(u)を求めて、これらを記憶部の所定の領域に書き込むのである。
そして、表示部は、当該更新時間おきに、対応付けられた仮想時間に対する当該仮想三次元空間内のオブジェクトを当該視点から当該向きベクトルの向きに見た様子を表す画像を表示する。
典型的には、更新時間Aは、画面の垂直同期時間(たとえば、一般的なテレビジョン装置の場合約1/60秒。)となっている。そこで、この更新時間おきに画像を表示すると、画面にはオブジェクトの様子がアニメーション表示されることになる。
一方、判定部は、当該視点の座標と当該オブジェクトの座標と当該仮想三次元空間における当該視点と当該オブジェクトのとの相対速度を表す速度ベクトルとから、当該仮想三次元空間における現在から当該仮想三次元空間における閾時間が経過するまでの間(以下「仮想閾時間内」という。)に当該視点と当該オブジェクトとが衝突するか否かを判定する。
ここで行う判定は、正確にオブジェクト同士の衝突を調べても良いし、[特許文献1]に開示されるような近似手法を用いても良い。
このほかの近似手法としては、オブジェクトが壁や建物のように静止している場合には、相対速度を表す速度ベクトルv(u)を求めた後、仮想閾時間の長さPを用いて、
ベクトルP v(u)と、
現在の両者の相対的な位置関係を示すベクトルr(u)−c(u)と、
の差が所定の範囲内である、などの技術を適用することもできる。
さらに、対応部は、当該仮想閾時間内に当該視点と当該オブジェクトとが衝突すると判定されるまでは、当該仮想時間の経過と当該現実時間の経過とが一致するように対応付け、当該衝突すると判定された後は、当該仮想時間の経過が当該現実時間の経過よりも遅くなるように対応付ける。
すなわち、将来視点とオブジェクトとが仮想閾時間内に衝突することが判明した場合には、対応部における対応付けを変更するのである。たとえば、衝突することが判明する前は、
t ← t + A;
u ← u + A
のように更新して、
u = t + C
なる関係を満たす対応付けを行うが、将来衝突することが判明した後は、定数値B (B < A)を用いて、
t ← t + A;
u ← u + B
のように更新する。この更新によって、現実時間tと仮想時間uの対応付けを行うのである。
これによって、衝突することが判明した後は、実際に衝突が起きるまで、画面のアニメーション表示があたかもスローモーションで再生されているかのように見えるようになる。
本発明により、仮想三次元空間内での時間経過を遅くして、画面表示をスローモーション表示することによって、将来視点がオブジェクトに衝突すると判断された旨を、ユーザに提示することができる。
また、本発明の表示装置において、記憶部には、当該オブジェクトの外面に直交する法線ベクトルがさらに記憶され、判定部は、当該オブジェクトが当該仮想三次元空間内で静止している場合は、当該仮想閾時間内に当該視点が通過する経路が、当該オブジェクトと交わり、以下の条件
(a)当該法線ベクトルと当該向きベクトルとのなす角が所定の第1の範囲に含まれる、
(b)当該向きベクトルと当該速度ベクトルとのなす角が所定の第2の範囲に含まれる、
(c)当該速度ベクトルと当該法線ベクトルとのなす角が所定の第3の範囲に含まれる、
のいずれか少なくとも1つが満たされる場合、当該仮想閾時間内に当該視点と当該オブジェクトとが衝突すると判定するように構成することができる。
実施形態によって、条件(a)(b)(c)の組合せの中から、いずれか所望のものを採用することができる。たとえば、向きベクトルと法線ベクトルとのなす角が180度の近くにある場合であって、向きベクトルと速度ベクトルとがほぼ同じ向き(なす角が0度の近く)となっている場合は、視点(が配置されている他のオブジェクト)とオブジェクトとが正面衝突する状況に対応する。
本発明では、上記のような条件付けを行うことによって、衝突の仕方をあらがじめ予測し、その予測に応じてスローモーション再生とするか、通常再生のままぶつかる様子を見せるか、を適切に選択することができる。
また、本発明の表示装置において、表示部は、当該衝突すると判定された後は、当該生成された画像と所定の動画像もしくは所定の静止画像とをクロスフェードさせて表示するように構成することができる。
たとえば、全面黒の静止画とのクロスフェードは、スローモーションとブラックアウトを組み合わせたようなアニメーション表示となり、全面白の静止画とのクロスフェードは、スローモーションとホワイトアウトを組み合わせたようなアニメーション表示となる。このほか、衝突に際してオブジェクトが壊れたり、オブジェクトから気体や液体が噴出したり、オブジェクトが爆発したりする場合には、それらの様子を表わすアニメーション画像とのクロスフェードを用いることもできる。
一般に、衝突を近似的に判断する場合に、ポリゴン落ち等の異常が表示がされてしまうのは、視点とオブジェクトとが近接した場合に起きる。
本発明によれば、このような異常な表示が起きる可能性が高い状況であっても、ブラックアウト、ホワイトアウト、爆発のアニメーション等に画面表示を滑らかに移行することによって、演算処理をさほど複雑にせずに、ユーザにそれを気付かせないようにすることができるようになる。
また、本発明の表示装置において、表示部は、当該衝突すると判定された後は、当該衝突すると判定される前よりも、当該表示すべき画像を生成する間隔を長くして表示するように構成することができる。
本発明によれば、更新時間Aが長くなるため、衝突に至るまでのアニメーション表示にストップモーション的な効果を与えることができ、これによって、ユーザに衝突が起きる旨を簡易に提示することができるようになる。
本発明のその他の観点に係る表示方法は、記憶部、対応部、移動部、表示部、判定部を備える表示装置を制御し、当該記憶部には、仮想三次元空間内に配置されるオブジェクトおよび視点の座標と、当該視点から当該仮想三次元空間内を見る向きを表す向きベクトルと、当該オブジェクトおよび当該視点が当該仮想三次元空間内を移動する速度を表す速度ベクトルと、が記憶され、対応工程、移動工程、表示工程、判定工程を備え、以下のように構成する。
すなわち、対応工程では、対応部が、所定の更新時間おきに、現実の時間(以下「現実時間」という。)に、当該仮想三次元空間における時間(以下「仮想時間」という。)を対応付ける。
一方、移動工程では、移動部が、対応付けられた仮想時間に対する当該仮想三次元空間内の当該オブジェクトおよび当該視点の位置および当該視点から当該仮想三次元空間内を見る向きを求め、記憶部に記憶される当該オブジェクトおよび当該視点の座標および向きベクトルを更新する。
さらに、表示工程では、表示部が、当該更新時間おきに、対応付けられた仮想時間に対する当該仮想三次元空間内のオブジェクトを当該視点から当該向きベクトルの向きに見た様子を表す画像を表示する。
一方、判定工程では、判定部が、当該視点の座標と当該オブジェクトの座標と当該仮想三次元空間における当該視点と当該オブジェクトのとの相対速度を表す速度ベクトルとから、当該仮想三次元空間における現在から当該仮想三次元空間における閾時間が経過するまでの間(以下「仮想閾時間内」という。)に当該視点と当該オブジェクトとが衝突するか否かを判定する。
さらに、対応工程では、当該仮想閾時間内に当該視点と当該オブジェクトとが衝突すると判定されるまでは、当該仮想時間の経過と当該現実時間の経過とが一致するように対応付け、当該衝突すると判定された後は、当該仮想時間の経過が当該現実時間の経過よりも遅くなるように対応付ける。
本発明のその他の観点に係るプログラムは、コンピュータを上記表示装置として機能させ、または、コンピュータに上記表示方法を実行させるように構成する。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
本発明によれば、三次元グラフィックス表示において、視点がオブジェクトに衝突することが予想される場合の表示を適切に行うのに好適な表示装置、表示方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、三次元グラフィックス表示がされるゲーム装置に本発明が適用される実施形態を説明するが、各種のコンピュータ、PDA(Personal Data Assistants)、携帯電話などの情報処理装置においても同様に本発明を適用することができる。すなわち、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
図1は、本発明の表示装置が実現される典型的なゲーム装置の概要構成を示す説明図である。以下、本図を参照して説明する。
ゲーム装置100は、CPU(Central Processing Unit)101と、ROM 102と、RAM 103と、インターフェイス104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROMドライブ108と、NIC(Network Interface Card)109と、を備える。
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、ゲーム装置100の電源を投入することにより、当該プログラムが実行され、本実施形態の表示装置が実現される。
CPU 101は、ゲーム装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、ゲーム装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
インターフェイス104を介して接続されたコントローラ105は、ユーザがレーシングゲームなどのゲーム実行の際に行う操作入力を受け付ける。
インターフェイス104を介して着脱自在に接続された外部メモリ106には、レーシングゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、チャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
NIC 109は、ゲーム装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
このほか、ゲーム装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
図2は、本発明の実施形態の一つに係る表示装置の概要構成を示す模式図である。以下、本図を参照して説明する。
本実施形態の表示装置201は、記憶部202、対応部203、移動部204、表示部205、判定部206を備える。
ここで、記憶部202には、以下のような情報が記憶される。
(1)仮想三次元空間内に配置されるオブジェクトの座標(位置ベクトル)
(2)当該オブジェクトが移動する速度を表すベクトル
(3)当該オブジェクトの法線ベクトル
(4)仮想三次元空間内に配置される視点の座標(位置ベクトル)
(5)当該視点が移動する速度を表すベクトル
(6)当該視点から当該仮想三次元空間内を見る向きを表す向きベクトル
(7)オブジェクトの拘束条件
ここで、オブジェクトの拘束条件としては、オブジェクトの質量や慣性モーメント、オブジェクト同士が連結されていること、オブジェクトに付与される重力や摩擦力等の外力を採用することができる。
また、視点がいずれかのオブジェクトに配置され、当該オブジェクトとともに移動し、向きベクトルが当該オブジェクトの向き(法線ベクトル)と一定の角度を持つような形態を採用することもできる。
したがって、ゲーム装置100のRAM 103は、記憶部202として機能する。なお、上述のように、これらの値の初期値は、DVD−ROMからロードされたり、各種の模擬実験によってあらかじめ求められた値である。
このほか、RAM 103には、以下のような変数領域が用意されている。
(1)現実の経過時間(現実時間)を記録する変数領域t
(2)仮想三次元空間内での経過時間(仮想時間)を記録する変数領域u
(3)現実時間の刻み幅を記憶する変数領域A
(4)仮想時間の刻み幅を記憶する変数領域B
(5)バッファ領域
(6)VRAM(Video RAM)領域
(7)視点といずれかのオブジェクトが将来衝突するか否かを示すフラグ領域
本実施形態では、いわゆるリアルタイムで動作する場合には、t=uが成立し、仮想時間と現実時間とは、一致する。
図3は、仮想三次元空間において、仮想時間uにおける視点とオブジェクトの関係を示す説明図である。以下、本図を参照して説明する。
視点301は、座標302c(u)に配置されており、オブジェクト311は、座標312r(u)に配置されている。視点301は、ベクトル303h(u)の速度で移動しており、オブジェクト311は、ベクトル313k(u)の速度で移動している。
視点301からは向きベクトル304d(u)の方向に当該オブジェクト311を含む仮想三次元空間に配置されたオブジェクト群の様子を俯瞰した様子が三次元グラフィックス処理される。本処理の詳細については、後述する。
また、オブジェクト311は、ポリゴン(多角形)によって表現されており、当該ポリゴンには、外向きの法線ベクトル314n(u)が設定されている。これらの情報は、上記のように、いずれもRAM 103内に記憶され、適宜更新される。
一方、オブジェクト311と視点301との相対速度を表す速度ベクトル322v(u)は、v(u)=h(u)−k(u)のように計算することができる。
また、オブジェクト311と視点301との相対的な位置関係を表す変位ベクトル321m(u)は、座標302c(u)と座標312r(u)とをベクトルとして考えれば、m(u)=r(u)−c(u)のように計算することができる。
図4は、当該表示装置にて実行される表示方法の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
本実施形態の表示装置201における表示処理が開始されると、まず、変数t、変数uをクリアし(ステップS401)、変数A、変数Bを垂直同期割り込みが発生する間隔に設定する(ステップS402)。垂直同期割り込みが発生するまで待機する(ステップS403)。
垂直同期割り込みは、ゲーム装置100において、画面表示の更新を行うための割り込みであり、この割り込みに同期して、画像処理部107はVRAM領域に格納された画像情報を読み出して、これをモニタに表示する。VRAM領域からモニタへの転送は、本処理とは並行してコルーチン的に行われるので、理解を容易にするため、本図では図示を省略している。
垂直同期割り込みが発生した後、対応部203は、変数t、変数uを以下のように更新する(ステップS404)。
t←t+A;
u←u+B
したがって、CPU 101は、RAM 103と共働して、対応部203として機能することとなる。なお、本表示処理を始めた当初は、上記のようにA=Bであるから、tとuの値の変化は一致することになる。
次に、移動部204は、更新された仮想時間uにおけるRAM 103内に記憶される以下の値等を参照して、以下の値を計算し、RAM 103内に記憶される値を更新する(ステップS405)。
(1)視点301の座標302c(u)
(2)視点301の移動速度を表すベクトル303h(u)
(3)向きベクトル304d(u)
(4)オブジェクト311の座標312r(u)
(5)オブジェクト311の移動速度を表すベクトル313k(u)
(6)オブジェクト311の法線ベクトル314n(u)
これらの値の計算は、種々の三次元グラフィックスで用いられるオブジェクトの物理モデルを適用して行うことができる。
たとえば、仮想時間uの刻み幅(直前の仮想時間との差)は、上記のように、Bであるから、現在のオブジェクトに付加されている外力を現在のオブジェクトの質量で除算し、Bを乗じれば、移動速度を表すベクトルの増分が得られる。これによって、移動速度を表すベクトルを更新することができる。また、移動速度を表すベクトルの更新前と更新後との平均にBを乗じれば、オブジェクトの変位が得られる。これによって、オブジェクトの座標を更新することができる。同様にオブジェクトの慣性モーメントと外力が加えられる場所との関係から、法線ベクトルを更新することができる。
視点301があるオブジェクト上に設定されている場合は、当該オブジェクトの移動や姿勢の変化が、視点301の座標や移動速度を表すベクトル、向きベクトルに反映されることになる。
このような計算を行うため、CPU 101が、RAM 103と共働して、移動部204として機能する。
ついで、表示部205は、RAM 103に記憶された上記の情報や、別途用意されたオブジェクト用のテクスチャ情報を利用して、仮想三次元空間内の座標302c(u)に配置された視点301から、仮想三次元空間内を向きベクトル304d(u)の向きに俯瞰した様子を表す画像情報を生成して、これをRAM 103内のバッファ部に記憶させる(ステップS406)。
したがって、CPU 101に制御される画像処理部107は、RAM 103と共働して、表示部205として機能する。
ついで、CPU 101は、RAM 103に記憶された情報から、オブジェクト311と視点301との相対的な位置関係を表す変位ベクトル321m(u)を、
m(u)=r(u)−c(u);
により計算する(ステップS407)。
さらに、判定部206は、RAM 103のフラグ領域に「将来衝突する旨が既に判定されている」旨の値が記憶されているか否かを調べる(ステップS408)。
まだ、記憶されていない場合(ステップS408;No)、すなわち、視点301とオブジェクト311とが将来衝突するか否か不明である場合は、オブジェクト311と視点301との相対速度を表す速度ベクトル322v(u)を、
v(u)=h(u)−(u)
により、計算する(ステップS409)。
そして、これらの値と、あらかじめ定めた仮想閾時間Pとから、視点301とオブジェクト311とが将来衝突するか否かを判定する(ステップS410)。
判定の手法としては、以下のようなものが考えられる。
(1)現在から仮想閾時間Pだけ経過した後に、視点301がオブジェクト311の近傍に位置しているか否かにより判定する手法である。具体的には、近傍であるか否かを判定する定数εを用いて、
|m(u)−Pv(u)|≦ε
であるか否か、もしくは、
|m(u)−Pv(u)|≦ε
であるか否かにより判定する手法である。なお||は、ベクトルの大きさを求める演算を意味する。
(2)上記の条件に加えて、さらに、ベクトルm(u)とベクトルv(u)とのなす角が、0度の近傍の所定の範囲に含まれるか否かにより判定する手法である。両者のなす角は、
arccos〔m(u)・v(u)/(|m(u)||v(u)|)〕
により求めることができる。ここで・はベクトルの内積を意味する。
(3)オブジェクト311や視点301に想定される最大の加速度を求め、この場合に両者が移動しうる範囲を求めて、当該範囲に共通部分があるか否かにより判定する手法である。本手法は、計算量が多いが、高い精度で衝突するか否かを推定することができる。
このように、CPU 101は、RAM 103と共働して、判定部206として機能する。
そして、将来衝突する旨が判定された場合(ステップS410;Yes)、RAM 103内のフラグ領域に、その旨を記録し(ステップS411)、変数領域Bに記憶されている値を小さくする(ステップS412)。典型的には、変数領域Bに、あらかじめ定めた定数D(D<A)を格納する。
これによって、仮想三次元空間内で視点301とオブジェクト311とが将来(現在から仮想閾時間Pだけ経過するまでに)衝突することが判定された場合には、uの刻み幅が小さくなり、現実時間tに比べて仮想時間uが遅く経過することになるのである。この後は、ステップS413に進む。
一方、すでに将来衝突する旨がフラグ領域に記録されている場合(ステップS408;Yes)や、将来衝突しないと判定された場合(ステップS410;No)は、ステップS413に進む。
そして、この後、垂直同期割り込みが発生するまで待機する(ステップS413)。当該待機の際には別途用意された他の処理を実行することも可能である。
垂直同期割り込みが発生した後、バッファ領域に記憶されている画像情報を、VRAM領域に転送する(ステップS414)。これはいわゆるダブルバッファリングという技術である。
上述したように、VRAM領域に格納された画像情報は、垂直同期割り込みと同期してモニターに出力されるため、VRAM領域への転送を垂直同期割り込みと同期させることにより、ちらつきのないアニメーション表示が可能となるのである。
そして、視点301とオブジェクト311との距離が所定の定数より小さいか、すなわち、視点301とオブジェクト311が衝突したか否かを調べる(ステップS415)。具体的には、定数δを用いて、
|m(u)|<δ
であるか否か、もしくは、
|m(u)|<δ
であるか否かによって、衝突しているか否かを判定することができる。この定数δは、上述の定数εよりは小さく調整することが望ましい。
このほか、視点301があるオブジェクト(たとえば自動車オブジェクト)とともに移動する場合、視点301とともに移動するオブジェクトが、他のオブジェクト(たとえば壁オブジェクト)に衝突することをもって、ステップS415における[視点301とオブジェクト311が衝突した」こととしても良い。
このようにして調べた結果、視点301とオブジェクト311が衝突している場合(ステップS415;Yes)、本処理を終了する。一方、衝突していない場合(ステップS415;No)は、ステップS404に戻る。
衝突することが判明した後は、実際に衝突が起きるまで、画面のアニメーション表示があたかもスローモーションで再生されているかのように見えるようになり、仮想三次元空間内での時間経過を遅くして、画面表示をスローモーション表示することによって、将来視点がオブジェクトに衝突すると判断された旨を、ユーザに提示することができる。
なお、上記の処理の説明では、理解を容易にするため、視点301に対してオブジェクト311を1つだけ考慮して説明したが、実際にはオブジェクト311は複数あるため、そのそれぞれについて適宜判断を行う必要がある。ただし、いずれかのオブジェクト311に衝突する旨が判明したら、その時点からスローモーション表示を開始することとなる。
また、オブジェクト311の属性として、衝突判定を行うか否かを識別するための値を付与し、これを各オブジェクト311についてRAM 103に格納して、衝突判定を行うオブジェクト311を選択しても良い。たとえばレーシングゲームに本表示装置201を適用する場合、視点が配置される自動車のオブジェクトは、一般には路面や遠方に配置される建物とは衝突するとは考えられない。そこで、このような衝突がありえないオブジェクトと、コースの壁を構成するようなオブジェクトを区別して、衝突の可能性のあるものだけについて、上記のような判定処理を行うのである。
上記実施形態では、将来衝突する旨が判定されると、それ以降はスローモーション表示がされていたが、本実施形態は、これに合わせてクロスフェードを行うものである。
たとえば、全面黒の静止画とのクロスフェードは、スローモーションとブラックアウトを組み合わせたようなアニメーション表示となり、全面白の静止画とのクロスフェードは、スローモーションとホワイトアウトを組み合わせたようなアニメーション表示となる。
このほか、衝突に際してオブジェクトが壊れたり、オブジェクトから気体や液体が噴出したり、オブジェクトが爆発したりする場合には、それらの様子を表わすアニメーション画像とのクロスフェードを用いることもできる。
クロスフェードを行う場合には、2つの画像の混合比(「α値」とも呼ばれる)を求めて、バッファ領域に得られた画像と所定の静止画像や動画像ととをαブレンディングすれば良い。
α値は、以下のような手順で得ることができる。まず、RAM 103内にα値を格納する変数領域αを用意する。
まず、ステップS411の直後、すなわち、衝突する旨が初めて判別された直後に、変数領域αを0にクリアする。
一方、ステップS413における「他の処理」において、RAM 103内の変数領域αを、
α←α+B/P
のように更新する。
このようにすると、衝突が生じると判断されたときから、実際に衝突が生じるまで、変数領域αに格納される値は、0から1へ向かって次第に増加していくこととなる。
あとは、ステップS414において、バッファ領域に得られた画像と、所定の静止画や動画像と、を混合比(1−α):αでブレンディングした結果をVRAM領域へ転送すれば良い。
一般に、衝突を近似的に判断する場合に、ポリゴン落ち等の異常が表示がされてしまうのは、視点とオブジェクトとが近接した場合に起きる。
本実施形態によれば、このような異常な表示が起きる可能性が高い状況であっても、ブラックアウト、ホワイトアウト、爆発のアニメーション等に画面表示を滑らかに移行することによって、演算処理をさほど複雑にせずに、ユーザにそれを気付かせないようにすることができるようになる。
本実施形態では、視点に対して衝突すると考えられるオブジェクトが静止している場合を考える。たとえば、視点が自動車のオブジェクトに配置され、壁をあらわすオブジェクトに視点が衝突するか否かを考える場合である。
この場合、当該仮想閾時間内に当該視点が通過する経路が、当該オブジェクトと交わり、以下の条件
(a)当該法線ベクトルと当該向きベクトルとのなす角が所定の第1の範囲に含まれる、
(b)当該向きベクトルと当該速度ベクトルとのなす角が所定の第2の範囲に含まれる、
(c)当該速度ベクトルと当該法線ベクトルとのなす角が所定の第3の範囲に含まれる、
のいずれか少なくとも1つが満たされる場合に、当該仮想閾時間内に当該視点と当該オブジェクトとが衝突すると判定するのである。
具体的には、実施形態が適用される模擬実験の種類特質に応じて、
(1)これら3条件がすべて満たされる。
(2)条件(a)(b)のみが満たされる。
(3)条件(b)(c)のみが満たされる。
(4)条件(c)(a)のみが満たされる。
(5)条件(a)のみが満たされる。
(6)条件(b)のみが満たされる。
(7)条件(c)のみが満たされる。
の7通りの中から、いずれか所望のものを採用するのである。
たとえば、向きベクトルと法線ベクトルとのなす角が180度の近くにある場合であって、向きベクトルと速度ベクトルとがほぼ同じ向き(なす角が0度の近く)となっている場合は、視点(が配置されている他のオブジェクト)とオブジェクトとが正面衝突する状況に対応する。この場合にのみ「衝突」と判定するがごときである。
本実施形態では、上記のような条件付けを行うことによって、衝突の仕方をあらかじめ予測し、その予測に応じてスローモーション再生とするか、通常再生のままぶつかる様子を見せるか、を適切に選択することができる。
本実施形態では、当該衝突すると判定された後は、当該衝突すると判定される前よりも、当該画像を生成する間隔を長くして表示することにより、衝突に至るまでのアニメーション表示にストップモーション的な効果を与えて、ユーザに衝突が起きる旨を簡易に提示しようとするものである。
具体的には、衝突が生じると判定された後は、バッファ領域に対する画像情報の生成ならびにバッファ領域からVRAM領域への転送を、間引くのである。
新たな変数領域sをRAM 103に用意することによって間引く手法が適用できる。
間引く頻度をあらわす定数パラメータをE(E>A)とする。Eが大きければ大きいほど、間引く度合が大きくなる。
まず、ステップS411の直後、すなわち、衝突する旨が初めて判別された直後に、変数領域sを0にクリアする。
また、ステップS404においては、
s←s+A
のように、変数領域sを更新する。
さらに、ステップS406におけるバッファ領域への画像生成処理とステップS414におけるバッファ領域からVRAM領域への転送処理は、s≧Eが成立する場合にのみ実行し、これらを実行した場合には、ステップS414とステップS415との間で、
s←s−E
のように変数領域sを更新するのである。
このほか、同じように変数領域sを使う手法として、ステップS411の直後、すなわち、衝突する旨が初めて判別された直後に
s←t
とし、ステップS404では更新は行わず、バッファ領域への画像生成とVRAM領域への転送は、t−s≧Eが成立する場合にのみ実行し、これらを実行した場合には、ステップS414とステップS415との間で、
s←s+E
のように変数領域sを更新する、というものを採用しても良い。
このように、ストップモーションを用いることによって、衝突が近付いた際に画面表示に必要な各種演算の量を大幅に減らすことができ、CPU 102の計算時間をほかの処理にまわすことができるようになる。
以上説明したように、本発明によれば、三次元グラフィックス表示において、視点がオブジェクトに衝突することが予想される場合の表示を適切に行うのに好適な表示装置、表示方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができ、ゲーム装置においてレーシングゲームやアクションゲームなどを実現する場合のほか、各種の仮想体験を提供するバーチャルリアリティ技術に適用することができる。
本発明の実施形態の1つに係る表示装置が実現される典型的な情報処理装置の概要構成を示す説明図である。 本発明の実施形態の1つの表示装置の概要構成を示す模式図である。 仮想三次元空間における視点とオブジェクトの関係を示す説明図である。 当該表示装置にて実行される表示方法の制御の流れを示すフローチャートである。
符号の説明
100 ゲーム装置
101 CPU
102 ROM
103 RAM
104 インターフェイス
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
201 表示装置
202 記憶部
203 対応部
204 移動部
205 表示部
206 判定部
301 視点
302 視点の位置ベクトル
303 視点の速度ベクトル
304 視線の向きベクトル
311 オブジェクト
312 オブジェクトの位置ベクトル
313 オブジェクトの速度ベクトル
314 オブジェクトの法線ベクトル
321 視点からオブジェクトへの相対位置を表す変位ベクトル
322 視点からオブジェクトへの相対速度を表す速度ベクトル

Claims (6)

  1. 仮想三次元空間内に配置されるオブジェクトおよび視点の座標と、当該視点から当該仮想三次元空間内を見る向きを表す向きベクトルと、が記憶される記憶部、
    所定の更新時間おきに、現実の時間(以下「現実時間」という。)に、当該仮想三次元空間における時間(以下「仮想時間」という。)を対応付ける対応部、
    前記対応付けられた仮想時間に対する当該仮想三次元空間内の当該オブジェクト、当該視点の位置および当該視点から当該仮想三次元空間内を見る向きを求め、前記記憶部に記憶される当該オブジェクトおよび当該視点の座標および向きベクトルを更新する移動部、
    当該更新時間おきに、前記対応付けられた仮想時間に対する当該仮想三次元空間内のオブジェクトを当該視点から当該向きベクトルの向きに見た様子を表す画像を表示する表示部、
    当該視点の座標と当該オブジェクトの座標と当該仮想三次元空間における当該視点と当該オブジェクトとの相対速度を表す速度ベクトルとから、当該仮想三次元空間における現在から当該仮想三次元空間における閾時間が経過するまでの間(以下「仮想閾時間内」という。)に当該視点と当該オブジェクトとが衝突するか否かを判定する判定部
    を備える表示装置であって、
    前記対応部は、当該仮想閾時間内に当該視点と当該オブジェクトとが衝突すると判定されるまでは、当該仮想時間の経過と当該現実時間の経過とが一致するように対応付け、当該衝突すると判定された後は、当該仮想時間の経過が当該現実時間の経過よりも遅くなるように対応付ける
    ことを特徴とする表示装置。
  2. 請求項1に記載の表示装置であって、
    前記記憶部には、当該オブジェクトの外面に直交する法線ベクトルがさらに記憶され、
    前記判定部は、当該オブジェクトが当該仮想三次元空間内で静止している場合は、当該仮想閾時間内に当該視点が通過する経路が、当該オブジェクトと交わり、以下の条件
    (a)当該法線ベクトルと当該向きベクトルとのなす角が所定の第1の範囲に含まれる、
    (b)当該向きベクトルと当該速度ベクトルとのなす角が所定の第2の範囲に含まれる、
    (c)当該速度ベクトルと当該法線ベクトルとのなす角が所定の第3の範囲に含まれる、
    のいずれか少なくとも1つが満たされる場合、当該仮想閾時間内に当該視点と当該オブジェクトとが衝突すると判定する
    ことを特徴とするもの。
  3. 請求項1または2に記載の表示装置であって、
    前記表示部は、当該衝突すると判定された後は、当該生成された画像と所定の動画像もしくは所定の静止画像とをクロスフェードさせて表示する
    ことを特徴とする装置。
  4. 請求項1から3のいずれか1項に記載の表示装置であって、
    前記表示部は、当該衝突すると判定された後は、当該衝突すると判定される前よりも、当該表示すべき画像を生成する間隔を長くして表示する
    ことを特徴とする装置。
  5. 記憶部、対応部、移動部、表示部、判定部を備える表示装置を制御する表示方法であって、
    前記記憶部には、仮想三次元空間内に配置されるオブジェクトおよび視点の座標と、当該視点から当該仮想三次元空間内を見る向きを表す向きベクトルと、当該オブジェクトおよび当該視点が当該仮想三次元空間内を移動する速度を表す速度ベクトルと、が記憶され、
    当該表示方法は、
    前記対応部が、所定の更新時間おきに、現実の時間(以下「現実時間」という。)に、当該仮想三次元空間における時間(以下「仮想時間」という。)を対応付ける対応工程、
    前記移動部が、前記対応付けられた仮想時間に対する当該仮想三次元空間内の当該オブジェクト、当該視点の位置および当該視点から当該仮想三次元空間内を見る向きを求め、前記記憶部に記憶される当該オブジェクトおよび当該視点の座標および向きベクトルを更新する移動工程、
    前記表示部が、当該更新時間おきに、前記対応付けられた仮想時間に対する当該仮想三次元空間内のオブジェクトを当該視点から当該向きベクトルの向きに見た様子を表す画像を表示する表示工程、
    前記判定部が、当該視点の座標と当該オブジェクトの座標と当該仮想三次元空間における当該視点と当該オブジェクトとの相対速度を表す速度ベクトルとから、当該仮想三次元空間における現在から当該仮想三次元空間における閾時間が経過するまでの間(以下「仮想閾時間内」という。)に当該視点と当該オブジェクトとが衝突するか否かを判定する判定工程
    を備え、
    前記対応工程では、当該仮想閾時間内に当該視点と当該オブジェクトとが衝突すると判定されるまでは、当該仮想時間の経過と当該現実時間の経過とが一致するように対応付け、当該衝突すると判定された後は、当該仮想時間の経過が当該現実時間の経過よりも遅くなるように対応付ける
    ことを特徴とする表示方法。
  6. コンピュータを、
    仮想三次元空間内に配置されるオブジェクトおよび視点の座標と、当該視点から当該仮想三次元空間内を見る向きを表す向きベクトルと、当該オブジェクトおよび当該視点が当該仮想三次元空間内を移動する速度を表す速度ベクトルと、が記憶される記憶部、
    所定の更新時間おきに、現実の時間(以下「現実時間」という。)に、当該仮想三次元空間における時間(以下「仮想時間」という。)を対応付ける対応部、
    前記対応付けられた仮想時間に対する当該仮想三次元空間内の当該オブジェクト、当該視点の位置および当該視点から当該仮想三次元空間内を見る向きを求め、前記記憶部に記憶される当該オブジェクトおよび当該視点の座標および向きベクトルを更新する移動部、
    当該更新時間おきに、前記対応付けられた仮想時間に対する当該仮想三次元空間内のオブジェクトを当該視点から当該向きベクトルの向きに見た様子を表す画像を表示する表示部、
    当該視点の座標と当該オブジェクトの座標と当該仮想三次元空間における当該視点と当該オブジェクトとの相対速度を表す速度ベクトルとから、当該仮想三次元空間における現在から当該仮想三次元空間における閾時間が経過するまでの間(以下「仮想閾時間内」という。)に当該視点と当該オブジェクトとが衝突するか否かを判定する判定部
    として機能させるプログラムであって、当該コンピュータにおいて、
    前記対応部が、当該仮想閾時間内に当該視点と当該オブジェクトとが衝突すると判定されるまでは、当該仮想時間の経過と当該現実時間の経過とが一致するように対応付け、当該衝突すると判定された後は、当該仮想時間の経過が当該現実時間の経過よりも遅くなるように対応付ける
    ように機能させることを特徴とするプログラム。
JP2004163825A 2004-04-29 2004-04-29 表示装置、表示方法、ならびに、プログラム Expired - Lifetime JP3968356B2 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2004163825A JP3968356B2 (ja) 2004-04-29 2004-04-29 表示装置、表示方法、ならびに、プログラム
DE602005016914T DE602005016914D1 (de) 2004-04-29 2005-04-27 Anzeige, anzeigeverfahren, informationsaufzeichnungsmedium und programm
PCT/JP2005/008022 WO2005106802A1 (ja) 2004-04-29 2005-04-27 表示装置、表示方法、情報記録媒体、ならびに、プログラム
US11/587,483 US7737978B2 (en) 2004-04-29 2005-04-27 Display, displaying method, information recording medium, and program
EP05737186A EP1744284B1 (en) 2004-04-29 2005-04-27 Display, displaying method, information recording medium, and program
KR1020067022492A KR100794074B1 (ko) 2004-04-29 2005-04-27 표시장치, 표시방법, 및, 프로그램을 기록한 컴퓨터 판독 가능한 정보기록매체
CN2005800219817A CN1977290B (zh) 2004-04-29 2005-04-27 显示装置和显示方法
TW094113664A TWI275974B (en) 2004-04-29 2005-04-28 Display apparatus, display method, and information recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004163825A JP3968356B2 (ja) 2004-04-29 2004-04-29 表示装置、表示方法、ならびに、プログラム

Publications (2)

Publication Number Publication Date
JP2005316927A JP2005316927A (ja) 2005-11-10
JP3968356B2 true JP3968356B2 (ja) 2007-08-29

Family

ID=35241884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004163825A Expired - Lifetime JP3968356B2 (ja) 2004-04-29 2004-04-29 表示装置、表示方法、ならびに、プログラム

Country Status (8)

Country Link
US (1) US7737978B2 (ja)
EP (1) EP1744284B1 (ja)
JP (1) JP3968356B2 (ja)
KR (1) KR100794074B1 (ja)
CN (1) CN1977290B (ja)
DE (1) DE602005016914D1 (ja)
TW (1) TWI275974B (ja)
WO (1) WO2005106802A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3765422B2 (ja) * 2004-04-28 2006-04-12 コナミ株式会社 画像生成装置、加速度表示方法、および、プログラム
US7773098B2 (en) * 2005-05-11 2010-08-10 Canon Kabushiki Kaisha Virtual reality presentation apparatus and method
JP4302143B2 (ja) * 2007-01-11 2009-07-22 株式会社ソニー・コンピュータエンタテインメント 物体衝突処理方法および物体衝突処理プログラム、物体衝突処理装置
JP4852012B2 (ja) * 2007-07-09 2012-01-11 株式会社東芝 画像を処理する装置、画像の更新を検出する方法およびプログラム
JP5421655B2 (ja) 2009-05-28 2014-02-19 任天堂株式会社 ゲームプログラム及びゲーム装置
KR101013784B1 (ko) * 2009-08-31 2011-02-14 이화여자대학교 산학협력단 Cpu와 gpu를 이용한 하이브리드 병렬 연속 충돌 검출 방법
US20110149042A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Method and apparatus for generating a stereoscopic image
JP5202584B2 (ja) * 2010-06-24 2013-06-05 株式会社ソニー・コンピュータエンタテインメント 画像処理装置、コンテンツ作成支援装置、画像処理方法、コンテンツ作成支援方法、および画像ファイルのデータ構造
JP5552469B2 (ja) * 2011-09-27 2014-07-16 株式会社コナミデジタルエンタテインメント ゲーム装置、及びプログラム
JP6143469B2 (ja) * 2013-01-17 2017-06-07 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
TW201445440A (zh) * 2013-05-30 2014-12-01 Hon Hai Prec Ind Co Ltd 集裝箱資料中心移動系統
CA2968589C (en) 2016-06-10 2023-08-01 Square Enix Ltd. System and method for placing a character animation at a location in a game environment
EP3254742A1 (en) * 2016-06-10 2017-12-13 Square Enix, Ltd. System and method for placing a character animation at a location in a game environment
JP6373920B2 (ja) * 2016-09-14 2018-08-15 株式会社バンダイナムコエンターテインメント シミュレーションシステム及びプログラム
JP6976080B2 (ja) * 2017-05-22 2021-12-01 三菱パワー株式会社 状態分析装置、状態分析方法、およびプログラム
GB201806015D0 (en) 2018-04-11 2018-05-23 Electronic Arts Inc Cloth self collision with predictive contacts

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4342454A (en) * 1979-01-08 1982-08-03 Sanders Associates, Inc. Method and apparatus for instant replay and other capabilities for microprocessor-controlled video games
JP3442181B2 (ja) * 1995-02-17 2003-09-02 株式会社ナムコ 3次元ゲーム装置及び画像合成方法
JP2975336B2 (ja) 1998-01-09 1999-11-10 コナミ株式会社 3次元ビデオゲームにおける衝突検出方法及びこれを用いたビデオゲーム装置並びに3次元ビデオゲームにおける衝突検出プログラムを記録したコンピュータ読み取り可能な媒体
JP2000200361A (ja) * 1998-08-07 2000-07-18 Sega Enterp Ltd 画像処理装置及び情報記録媒体
US6573896B1 (en) * 1999-07-08 2003-06-03 Dassault Systemes Three-dimensional arrow
JP4114029B2 (ja) * 1999-07-16 2008-07-09 株式会社セガ 画像処理装置、画像処理方法及び記録媒体
JP4775989B2 (ja) * 2001-08-23 2011-09-21 株式会社バンダイナムコゲームス 画像生成システム、プログラム及び情報記憶媒体
JP3559024B2 (ja) * 2002-04-04 2004-08-25 マイクロソフト コーポレイション ゲームプログラムおよびゲーム装置
JP4221211B2 (ja) 2002-11-15 2009-02-12 住友ゴム工業株式会社 導電性ローラ及び、該導電性ローラを備えた画像形成装置

Also Published As

Publication number Publication date
EP1744284B1 (en) 2009-09-30
EP1744284A1 (en) 2007-01-17
JP2005316927A (ja) 2005-11-10
KR100794074B1 (ko) 2008-01-10
CN1977290A (zh) 2007-06-06
CN1977290B (zh) 2010-09-29
DE602005016914D1 (de) 2009-11-12
WO2005106802A1 (ja) 2005-11-10
KR20070026487A (ko) 2007-03-08
US7737978B2 (en) 2010-06-15
TW200606688A (en) 2006-02-16
US20070216679A1 (en) 2007-09-20
EP1744284A4 (en) 2008-08-13
TWI275974B (en) 2007-03-11

Similar Documents

Publication Publication Date Title
KR100794074B1 (ko) 표시장치, 표시방법, 및, 프로그램을 기록한 컴퓨터 판독 가능한 정보기록매체
JP2007259888A (ja) 音声処理装置、音声処理方法、ならびに、プログラム
JP3949674B2 (ja) 表示装置、表示方法、ならびに、プログラム
JP4019095B2 (ja) 音声処理装置、音声処理方法、ならびに、プログラム
KR100898671B1 (ko) 화상처리장치, 화상처리방법, 및, 프로그램을 기록한 컴퓨터 판독 가능한 정보기록매체
KR100950835B1 (ko) 화상생성장치, 화상생성방법 및 프로그램을 기록한 컴퓨터 판독 가능한 정보기록매체
JP3363137B2 (ja) 当たり判定方法、その装置、当たり判定処理プログラムを記録したコンピュータ読み取り可能な記録媒体及びビデオゲーム装置
JP4193979B2 (ja) シャドウボリューム生成プログラム及びゲーム装置
JP2004220273A (ja) 模擬実験装置、模擬実験方法、ならびに、プログラム
US6448970B1 (en) Image generation apparatus for causing movement of moving body based on flow data for a fluid set on a course, and information storage medium
EP1744283A1 (en) Image producing device, speed expressing method, and program
JP2000279642A (ja) ゲーム装置、ゲーム方法、コンピュータ読取可能な記録媒体
JP4457099B2 (ja) 画像処理装置、画像処理方法、ならびに、プログラム
JP5143805B2 (ja) 画像処理装置、処理方法、ならびに、プログラム
JP5043903B2 (ja) 画像処理装置、画像処理方法、ならびに、プログラム
EP1249791A2 (en) 3-D game image processing method and device for drawing border lines
JP3183636B2 (ja) 3次元ゲーム装置及び情報記憶媒体
JP4088169B2 (ja) 画像生成装置及び情報記憶媒体
JP2002083315A (ja) 画像描画システム
JP2009244941A (ja) 画像処理装置、プログラム、コンピュータ読み取り可能な記録媒体
JP2006068376A (ja) ゲーム装置、その制御方法、ならびに、プログラム
JP2001357416A (ja) 画像生成装置及び情報記憶媒体

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20060427

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20060525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070221

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: 20070529

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070604

R150 Certificate of patent or registration of utility model

Ref document number: 3968356

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: 20110608

Year of fee payment: 4

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: 20110608

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120608

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: 20130608

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: 20130608

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140608

Year of fee payment: 7

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term