JP4099434B2 - 画像生成プログラム及びゲーム装置 - Google Patents

画像生成プログラム及びゲーム装置 Download PDF

Info

Publication number
JP4099434B2
JP4099434B2 JP2003272026A JP2003272026A JP4099434B2 JP 4099434 B2 JP4099434 B2 JP 4099434B2 JP 2003272026 A JP2003272026 A JP 2003272026A JP 2003272026 A JP2003272026 A JP 2003272026A JP 4099434 B2 JP4099434 B2 JP 4099434B2
Authority
JP
Japan
Prior art keywords
center
gravity
weight
character
display image
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 - Fee Related
Application number
JP2003272026A
Other languages
English (en)
Other versions
JP2005027948A (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.)
Nintendo Co Ltd
Original Assignee
Nintendo 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 Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2003272026A priority Critical patent/JP4099434B2/ja
Priority to US10/820,057 priority patent/US7697015B2/en
Publication of JP2005027948A publication Critical patent/JP2005027948A/ja
Application granted granted Critical
Publication of JP4099434B2 publication Critical patent/JP4099434B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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/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
    • 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/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

Description

本発明は画像生成プログラム及びゲーム装置に関し、より特定的には、二次元または三次元の仮想空間に配置された複数の物体を表示するための表示画像を生成させるための画像生成プログラム及びゲーム装置に関する。
従来、プレイヤが操作するキャラクタ(プレイヤキャラクタ)の後方に仮想カメラを配置してこの仮想カメラで捕えた画像(以下、三人称視点から見た画像と称す)を表示するゲーム機や、プレイヤキャラクタの位置に仮想カメラを配置してこの仮想カメラで捕えた画像(以下、一人称視点から見た画像と称す)をプレイヤキャラクタから見た景色として表示するゲーム機がある。
仮想カメラの注視点は通常、プレイヤキャラクタの位置や、プレイヤキャラクタからその前方に一定距離だけ離れた位置に固定的に設定される。
また、一人称視点から見た画像を生成するゲーム機の中に、仮想カメラに最も近いキャラクタに対して注視点を設定し、特に仮想カメラから等しい距離に複数のキャラクタがいた場合にこれらキャラクタの中間位置に注視点を設定するものがある(例えば、特許文献1参照。)。
特開平10−165647号公報
しかしながら、仮想カメラの注視点をプレイヤキャラクタに対して固定的に設定すると、例えばプレイヤキャラクタが味方キャラクタの隊列を後ろに従えて移動するときに、表示画面においてキャラクタの配置のバランスが悪くなり、さらに、プレイヤキャラクタの後方にいる味方キャラクタの隊列が十分に表示されないという問題がある。
また、仮想カメラに最も近いキャラクタに対して注視点を設定する場合には、仮想カメラに最も近いキャラクタが常に中央に表示されるため、仮に表示画面のすぐ外側に強力な敵キャラクタがいたとしてもプレイヤはその存在に気付かないという問題がある。
また、三人称視点から見た画像を生成する場合には、仮想カメラに最も近いキャラクタに対して注視点を設定することは好ましくない。なぜなら、仮想カメラに最も近いキャラクタがプレイヤキャラクタとは別のキャラクタである場合に、この仮想カメラに最も近いキャラクタだけが表示されて、プレイヤキャラクタが表示されない可能性があるからである。
また、複数のキャラクタの中間位置に注視点を設定する場合には、例えばプレイヤキャラクタが味方キャラクタの隊列を後ろに従えて移動する様子を三人称視点から見た画像を生成するときに、味方キャラクタの隊列の中心付近に注視点が設定されてしまい、プレイヤキャラクタが表示されない可能性がある。
それゆえに本発明の目的は、各キャラクタがバランスよく表示されるような表示画像を生成することができる画像生成プログラム及びゲーム装置を提供することである。
特に、プレイヤキャラクタが存在する場合には、このプレイヤキャラクタを他のキャラクタよりも優先的に表示しつつも各キャラクタがバランスよく表示されるような表示画像を生成することができる画像生成プログラム及びゲーム装置を提供することである。
上記課題を解決するために、本発明は以下の構成を採用した。なお括弧内の参照符号や図番号等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
本発明の画像生成プログラムは、二次元ないし三次元の仮想空間に配置された複数の物体を表示するための表示画像をコンピュータに生成させるためのプログラムであって、コンピュータを、重み記憶手段(214、図6)、位置記憶手段(214、図6)、割り当て手段、重心決定手段(202、S306)、および表示画像生成手段(202、S116)として機能させる。重み記憶手段は、各物体の重みを記憶する。位置記憶手段は、仮想空間における各物体の位置を記憶する。割り当て手段は、プレイヤが操作手段によって操作可能なプレイヤキャラクタに対して、当該プレイヤキャラクタを除く他の物体の重みの総和以上の重みを動的に割り当てる。重心決定手段は、各物体の重みと位置に基づいてこれら物体間の重心を決定する。表示画像生成手段は、重心がほぼ中央に位置するような表示画像を生成する。ここで「物体」とは仮想空間内の任意の物体をさし、プレイヤキャラクタや味方キャラクタや敵キャラクタのような移動物体だけではなく、宝箱や樹木のような静止物体も含み得る。また、重み記憶手段が記憶する各キャラクタの重みは、予め用意された値で一定に固定されていてもよいし、必要に応じて更新されてもよい。

なお、優先的に表示されるべき物体ほど大きな重みが割り当てられているのが好ましい。「優先的に表示されるべき物体」とは、例えばプレイヤが操作するプレイヤキャラクタであったり、強力な武器を持った敵キャラクタであったり、ボスキャラクタであったり、球技ゲームにおけるボールであったり、仮想的な水槽に入っている複数の熱帯魚の中からユーザによって選択された特定の熱帯魚であったりする。つまり「優先的に表示されるべき物体」は、画像生成プログラムの用途によって異なる。
また、プレイヤが操作手段(50)によって操作可能なプレイヤキャラクタに対して最も大きな重みが割り当てられていてもよい。
また、各物体に対して重要度が予め設定されており(図7)、各物体に対して重要度が高いほどより大きな重みを割り当てる重み関連付け手段(214、図8)としてコンピュータをさらに機能させてもよい。
また、プレイヤキャラクタに対して、この特定物体を除く他の物体の重みの総和以上の重みが動的に割り当てられてもよい(図19、図20)。
また、重心決定手段として、コンピュータに、仮想空間の一部分である所定領域に位置する物体だけを対象としてこれら物体間の重心を決定させてもよい(図23)。所定領域の形状は任意であって、例えば、プレイヤキャラクタから一定距離以内の領域でもよいし、プレイヤキャラクタからその前方に一定距離だけ離れた地点を中心とした矩形領域であってもよい。
また、表示画像生成手段として、コンピュータに、重心決定手段によって決定された重心が複数の物体のうちのある特定物体の位置から所定距離以上離れていた場合に、重心と特定物体を結ぶ線分上であってかつ特定物体から所定距離だけ離れた点がほぼ中央に位置するような表示画像を生成させてもよい(図24)。
以上のバリエーションは、仮想空間が二次元の場合にも三次元の場合にも当てはまる。
なお、仮想空間が三次元の仮想空間である場合には、表示画像生成手段として、コンピュータに、重心を注視点とした仮想カメラを用いて表示画像を生成させてもよい。この場合、複数の物体のうちのある特定物体の重みが仮想カメラの位置に応じて変化するようにしてもよい。例えば、仮想カメラから注視点までの距離が近いほど特定物体の重みが大きくなるようにしてもよい(図25、図26)。
また、仮想空間が三次元の仮想空間である場合には、表示画像生成手段として、コンピュータに、重心決定手段によって決定された重心に対して、一定の割合で仮想カメラの注視点を近づけることによって、重心点に徐々に近づく表示画像を生成させてもよい。
本発明のゲーム装置は、上記画像生成プログラムによって機能するコンピュータを備える。
本発明によれば、各物体の重みによって決まる重心が表示画像のほぼ中央にくるようにしているので、表示画面において各物体をバランスよく表示させることができる。また、重みがより大きな物体側に重心が寄るので、重みの大きな物体ほど中央に表示されるような表示画像を容易に生成することができるという効果が得られる。よって、重みを任意に設定することにより、所望の物体を他の物体よりも優先的に表示しつつも各物体がバランスよく表示されるような表示画像が得られる。
特に、プレイヤキャラクタに対して最も大きな重みが割り当てる場合には、プレイヤキャラクタが最も優先的に表示されるため、プレイヤキャラクタが表示範囲外に移動して表示されなくなるのを防止できるという付加的な効果が得られる。
また、各物体に予め設定されている重要度に基づいて、重要度が高い物体ほどより大きな重みを割り当てれば、重要度の高い物体が優先的に表示されるという付加的な効果が得られる。
また、プレイヤキャラクタに対して他の物体の重みの総和以上の重みを動的に割り当てれば、他の物体の数や重みが増加したとしてもそれに応じて特定物体の重みが増加するため、プレイヤキャラクタが常に表示され易くなるという付加的な効果が得られる。
また、所定範囲内の物体だけを対象として重心を決定すれば、重心が思いもよらない位置にくるのを防止でき、かつ重心を決定する際の演算量を低減することができるという付加的な効果が得られる。
また、重心が特定物体を中心とした所定の許容範囲の外に位置していた場合に、重心と特定物体を結ぶ線分上であってかつ許容範囲の境界に該当する点をほぼ中心とした表示画像を生成するようにすれば、重心が特定物体から離れてしまっても特定物体を表示することができるという付加的な効果が得られる。
また、重心を仮想カメラの注視点として設定すれば、三次元の仮想空間における重心を中心とした表示画像を容易に生成できるという付加的な効果が得られる。
また、仮想カメラの位置に応じて特定物体の重みを変化させれば、例えば仮想カメラから注視点までの距離が近いほど特定物体の重みを大きくするといったことも可能となり、この場合には、仮想カメラが注視点に近づいたときに特定物体が表示されなくなるのを防止することができるという付加的な効果が得られる。
また、重心決定手段によって決定された重心に対して、一定の割合で仮想カメラの注視点を徐々に近づけるようにすれば重心の位置が急に変化した場合にも表示内容が急に変化してしまうことがなくなるため、より見やすい画像を表示できるという付加的な効果が得られる。
以下、本発明の実施の形態を図面を参照しながら説明する。本実施形態は、本発明をゲームシステムへ適用した場合の例であるが、本発明の適用範囲はゲームシステムに限らない。
図1は、ゲームシステムの構成を示す外観図であり、図2はそのブロック図である。図1および図2に示すように、ゲームシステムは、TVモニタ10、ゲーム機本体20、DVD−ROM30、外部メモリカード40、コントローラ50およびスピーカ60を備える。DVD−ROM30および外部メモリカード40は、ゲーム機本体20に着脱自在に装着される。コントローラ50は、通信ケーブルを介して、ゲーム機本体20に設けられた複数(図1では4つ)のコントローラポート用コネクタのいずれかに接続される。TVモニタ10およびスピーカ60は、AVケーブル等によってゲーム機本体20と接続される。なお、ゲーム機本体20とコントローラ50との通信は無線通信であってもよい。以下、図2を参照しながら、ゲームシステムの各部についてより詳細に説明する。
DVD−ROM30は、ゲームプログラム(画像生成プログラムを含む)やゲームデータ等を固定的に記憶している。プレイヤがゲームをプレイするとき、DVD−ROM30はゲーム機本体20に装着される。なお、ゲームプログラム等を記憶する手段として、DVD−ROM30の代わりに例えばCD−ROM、MO、メモリカード、ROMカートリッジ等の外部記憶媒体を用いてもよい。
外部メモリカード40は、例えばフラッシュメモリ等の書き換え可能な記憶媒体によって構成され、例えばゲームのセーブデータ等のデータを記録する。
ゲーム機本体20は、DVD−ROM30に記録されているプログラムを読み出し、読み出したプログラムに応じた処理を行う。
コントローラ50は、プレイヤがゲーム操作に関する入力を行うための入力装置であり、複数の操作スイッチを有する。コントローラ50は、プレイヤによる操作スイッチの押圧等に応じて操作データをゲーム機本体20に出力する。
TVモニタ10は、ゲーム機本体20から出力された画像データを画面に表示する。スピーカ60は、典型的にはTVモニタ500に内蔵されており、ゲーム機本体20から出力されたゲーム中の音声を出力する。
次に、ゲーム機本体20の構成について説明する。図2において、ゲーム機本体20には、CPU202およびそれに接続されるメモリコントローラ220が設けられる。さらにゲーム機本体20において、メモリコントローラ220は、GPU(グラフィックスプロセッシングユニット)204と、メインメモリ214と、DSP216と、各種インターフェース(I/F)222、224、226、228、232とに接続される。メモリコントローラ220は、これら各構成要素間のデータ転送を制御する。
ゲーム開始の際、まず、ディスクドライブ230は、ゲーム機本体20に装着されたDVD−ROM30を駆動する。DVD−ROM30に記憶されているゲームプログラムは、ディスクI/F232およびメモリコントローラ220を介して、メインメモリ214に読み込まれる。このメインメモリ214上のプログラムをCPU202が実行することによってゲームが開始される。ゲーム開始後、プレイヤは、操作スイッチを用いてコントローラ50に対してゲーム操作等の入力を行う。プレイヤによる入力に従い、コントローラ50は、操作データをゲーム機本体20に出力する。コントローラ50から出力される操作データは、コントローラI/F222およびメモリコントローラ220を介してCPU202に供給される。CPU202は、入力された操作データに応じてゲーム処理を行う。ゲーム処理における画像データ生成等に際して、GPU204やDSP216が用いられる。また、サブメモリ218は、DSP216が処理を行う際に用いられる。
GPU204は、ジオメトリユニット206およびレンダリングユニット208を含み、画像処理専用のメモリに接続されている。この画像処理専用メモリは、例えばカラーバッファ210やZバッファ212として利用される。ジオメトリユニット206は、仮想三次元空間であるゲーム空間に置かれた物体や図形に関する立体モデル(例えばポリゴンで構成されるオブジェクト)の座標についての演算処理を行うものであり、例えば立体モデルの回転・拡大縮小・変形や、ワールド座標系の座標から視点座標系やスクリーン座標系の座標への変換を行うものである。レンダリングユニット208は、所定のテクスチャに基づいて、スクリーン座標に投影された立体モデルについて各ピクセルごとのカラーデータ(RGBデータ)をカラーバッファ210に書き込むことによって、ゲーム画像を生成するためのものである。また、カラーバッファ210は、レンダリングユニット208によって生成されたゲーム画像データ(RGBデータ)を保持するために確保されたメモリ領域である。Zバッファ212は、3次元の視点座標から2次元のスクリーン座標に変換する際に失われる視点からの奥行情報を保持するために確保されたメモリ領域である。GPU204は、これらバッファを用いてTVモニタ10に表示すべき画像データを生成し、メモリコントローラ220およびビデオI/F224を介して、この画像データをTVモニタ10に適宜出力する。なお、ゲームプログラム実行時にCPU202において生成される音声データは、メモリコントローラ220からオーディオI/F228を介してスピーカ60に出力される。なお本実施形態では、画像処理専用のメモリを別途設けたハードウェア構成としたが、これに限らず例えばメインメモリ214の一部を画像処理用のメモリとして利用する方式(UMA:Unified Memory Architecture)を使うようにしてもよい。
次に、図3のフローチャートを参照して本ゲームシステムの動作について説明する。
ゲームが開始すると、まずCPU202は、地形オブジェクトを三次元のゲーム空間を規定するワールド座標系の初期座標に配置し(S102)、つづいてプレイヤキャラクタと仮想カメラおよびその注視点をワールド座標系の初期座標に配置する(S104)。
次にCPU202は、コントローラ50からの入力があったかどうかを判断し(S106)、入力があった場合にはプレイヤキャラクタ位置の更新処理(S108)及び仮想カメラ位置の更新処理(S110)を実行後、ステップS112に進む。一方、コントローラ50からの入力がなかった場合にはそのままステップS112に進む。なお、プレイヤキャラクタ位置の更新処理と仮想カメラ位置の更新処理の詳細については後述する。
その後、プレイヤキャラクタ等の座標をワールド座標系から仮想カメラを基準としたカメラ座標系に変換し(S112)、さらにカメラ座標系から投影平面座標系に変換する(S114)。さらにテクスチャマッピングやシェーディング等の画像処理を適宜行って、仮想カメラから見たシーンを表すゲーム画像を生成する(S116)。こうして生成されたゲーム画像に基づいてTVモニタ10にゲーム画面が表示される(S118)。
ステップS120ではゲームが終了したかどうか判断し、ゲームが終了した場合にはゲーム処理を終了し、ゲームが続行している場合にはステップS106に戻る。
次に、図4のフローチャートを参照して、図3のステップS108のプレイヤキャラクタ位置の更新処理について説明する。
プレイヤキャラクタ位置の更新処理が開始すると、まずCPU202は、コントローラ50に設けられたスティックの傾き方向を示すデータを取得し、このデータに基づいてプレイヤキャラクタの向きを算出する(S202)。さらに、スティックの傾き量を示すデータを取得し、このデータに基づいてプレイヤキャラクタの移動量を算出する(S204)。そして、こうして得られたプレイヤキャラクタの向きと移動量に基づいて、メインメモリ214に記憶されているプレイヤキャラクタの位置を更新し(S206)、プレイヤキャラクタ位置の更新処理が終了する。
次に、図5のフローチャートを参照して、図3のステップS110の仮想カメラ位置の更新処理について説明する。
仮想カメラ位置の更新処理が開始すると、まずCPU202は、ゲーム空間に配置された各キャラクタ(プレイヤキャラクタ、味方キャラクタ等)の位置を取得する(S302)。なお、ゲーム空間における各キャラクタの位置は、メインメモリ214に例えば図6のように保持されている。よって、CPU202はステップS302でメインメモリ214からこれらのデータを読み出せばよい。メインメモリ214に記憶されている各キャラクタの位置は、ゲームの進行に応じて適宜に更新される。
つづいてCPU202は、ゲーム空間に配置された各キャラクタの重みを取得する(S304)。各キャラクタの重みは予め決定されてDVD−ROM30に記録されているが、このDVD−ROM30に記録された各キャラクタの重みがDVD−ROM30から読み出されてメインメモリ214に例えば図6のように保持されている。よって、CPU202はステップS304でメインメモリ214からこれらのデータを読み出せばよい。図6の例では、プレイヤキャラクタの重みは10に設定されており、味方キャラクタfa、fb、fc、・・・の重みは1に設定されており、敵キャラクタea、eb、ec、・・・の重みは3に設定されている。
なお、DVD−ROM30に必ずしも各キャラクタの重みが記録されている必要はない。例えば、DVD−ROM30に図7に示すように各キャラクタの重要度(A、B、C)を示すデータが記録されている場合には、ステップS304で各キャラクタの重みを取得する際に、まず各キャラクタの重要度を取得した後、例えば図8に示すような変換テーブルを利用して各キャラクタの重要度を重みに変換してもよい。
次にCPU202は、ステップS302で取得した各キャラクタの位置とステップS304で取得した各キャラクタの重みに基づいて、これらのキャラクタ間の重心を算出する(S306)。この演算は、例えば以下のようにして行う。
ゲーム空間に、プレイヤキャラクタと味方キャラクタfa、fbと敵キャラクタeaの4体のキャラクタが配置されている場合を例として説明すると、重心の座標(Xb、Yb、Zb)は、以下のように計算される。
「重心のX座標」={(「プレイヤキャラクタのX座標」×「プレイヤキャラクタの重み」)+(「味方キャラクタfaのX座標」×「味方キャラクタfaの重み」)+(「味方キャラクタfbのX座標」×「味方キャラクタfbの重み」)+(「敵キャラクタeaのX座標」×「敵キャラクタeaの重み」)}/(「プレイヤキャラクタの重み」+「味方キャラクタfaの重み」+「味方キャラクタfbの重み」+「敵キャラクタeaの重み」)
つまり、
Xb={(Xp×10)+(Xfa×1)+(Xfb×1)+(Xea×3)}/(10+1+1+3)
となる。
Y座標およびZ座標についても同様である。
Yb={(Yp×10)+(Yfa×1)+(Yfb×1)+(Yea×3)}/(10+1+1+3)
Yb={(Zp×10)+(Zfa×1)+(Zfb×1)+(Zea×3)}/(10+1+1+3)
このように、ステップS306では、各キャラクタの座標値を各キャラクタの重みで加重平均することによって重心を算出する。
つづくステップS308で、CPU202は、仮想カメラの注視点をステップS306で算出した重心の位置に設定して、仮想カメラ位置の更新処理が終了する。ところで、図9に示すように、仮想カメラの向きは注視点によって決定される。つまり、図10に示すように、注視点は仮想カメラを用いて生成された画像の中央に位置することになる。したがって、ステップS308において仮想カメラの注視点を重心の位置に設定したことにより、ステップS306で算出した重心は図3のステップS116で生成される画像の中心に位置することになる。
以下、より具体的な例を挙げて説明する。
例えば、ゲーム空間において、図11のようにプレイヤキャラクタが3体の味方キャラクタfa〜fcからなる隊列を後ろに従えている場合には、プレイヤキャラクタの近傍に重心が位置し、この重心を中心とした図12に示す画像が生成される。
また例えば、図13のように、味方キャラクタfd〜fjが図11の隊列にさらに追加された場合には、図11に比べて重心が隊列の中心に近づく(図中の矢印を参照)。その結果、図14に示すようにプレイヤキャラクタと味方キャラクタがバランス良く表示される。ここで、もし仮に重心が図11に示す位置のままであったとすれば、味方キャラクタfe、fi、fjは画面に表示されないことになる。
なお、重心が図11に示した位置から図13に示した位置に変化した場合、これに応じて仮想カメラの注視点を変化させる必要がある。このとき、図15に示すように仮想カメラを重心の移動方向に対して平行に移動させてもよいし、図16に示すように仮想カメラの向きだけを変化させてもよいし、その他の任意の方法を用いてもよい。このとき、重心に対して注視点を即座に一致させるのではなく、注視点を重心に向かって一定の割合(例えば注視点と重心間の距離の30%ずつ)もしくは一定の速度で徐々に近づけるようにするのが好ましい。これにより、例えば重みの重いキャラクタが急に出現して重心位置が大きく変化したとしても、表示領域が急激に変化することなく、画面の中心がそのキャラクタに徐々に近づくので、常に見やすい画面を表示することができる。
さらなる例として、ゲーム空間において、図17のようにプレイヤキャラクタの後方に4体の味方キャラクタが存在し、前方に2体の敵キャラクタが存在する場合、個数では味方キャラクタの方が多いにも関わらず、重みの影響によって重心はプレイヤキャラクタの前方に位置することになる。この結果、図18に示すように2体の敵キャラクタが両方とも表示されることとなり、プレイヤは敵キャラクタea、ebの動きを目視して敵キャラクタea、ebに対処することができる。このように、優先的に表示させたいキャラクタほど重みが大きくなるように設定しておくことにより、表示の優先度を自由に制御することができる。
ところで、プレイヤが操作するプレイヤキャラクタが表示領域の外に移動してしまうと操作に支障をきたすため、プレイヤキャラクタが常に表示されるように、プレイヤキャラクタに対しては最も大きな重みを割り当てておくのが好ましい。ただし、プレイヤキャラクタに対して最も大きな重みを割り当てていたとしても、他のキャラクタが多数集まれば重心は他のキャラクタの方へ近づいて、プレイヤキャラクタから離れてしまうことになる。そこで、このような状況を避けるために、プレイヤキャラクタの重みを動的に決定するようにしても構わない。一例として、プレイヤキャラクタ以外のキャラクタの重みの総和をプレイヤキャラクタの重みとして動的に割り当てた場合、図19の例ではプレイヤの重みが10となるが、図20の例ではプレイヤの重みが27となる。よって、他のキャラクタの数が大きく増えたとしても重心はプレイヤキャラクタからそれほど離れない。このような処理を実現するには、例えば、図5のステップS304で各キャラクタの重みを取得する際に、プレイヤキャラクタ以外のキャラクタの重みを取得して、それらの総和をプレイヤキャラクタの重みとしてステップS306の重心の算出処理で利用すればよい。
なお、本実施形態は、プレイヤキャラクタの視点から見たシーンを表示する場合にも容易に適用することができる。この場合には、図21に示すように、プレイヤキャラクタ以外のキャラクタを対象として重心を求めればよい。その結果、図22に示すように、重心が中央に位置するような一人称視点から見た画像が生成される。
なお、図23に示すように、ある所定範囲外のキャラクタについては、その重みを考慮しない(つまり重心算出の際の処理対象としない、さらに言い換えれば重みが0であるとみなす)ようにしてもよい。例えばゲーム空間においてプレイヤキャラクタからはるか遠くに他のキャラクタが存在していた場合には、このキャラクタの影響を受けて思いもよらない位置が重心になってしまう。そこで、図23のように、重みを考慮するキャラクタをある程度妥当な範囲内に限定すれば、このような不具合を解消することができる。このような処理を実現するには、例えば、図5のステップS302の前段に所定範囲内に存在するキャラクタだけを抽出する処理を追加し、こうして抽出されたキャラクタを対象としてステップS302〜ステップS306の処理を実行すればよい。これにより、所定範囲外のキャラクタに関する演算処理を省略できるという効果も得られる。
なお、図23ではプレイヤキャラクタを中心とした一定距離以内の範囲を所定範囲としているが、これに限らず所定範囲を任意に設定してもよい。例えば、プレイヤキャラクタからその前方に一定距離だけ離れた地点を中心とした矩形領域であってもよいし、注視点を中心とした一定距離以内の範囲であってもよい。
なお、プレイヤキャラクタが常に表示されることをより確実に保証するために、注視点として設定できる位置を、図24に示すようにプレイヤキャラクタを中心とした所定の許容範囲内に制限してもよい。例えば図24に示すように重心の位置が許容範囲外であった場合には、重心とプレイヤキャラクタとを結ぶ線分上であって、許容範囲の境界に該当する位置を注視点として設定する。このような処理を実現するためには、例えば、図5のステップS308の処理の替わりに、重心が許容範囲内かどうかを判断し、この判断の結果、許容範囲内であればこの重心の位置に注視点を設定し、許容範囲外であれば、上記のように、重心とプレイヤキャラクタとを結ぶ線分上であって許容範囲の境界に該当する位置を注視点として設定する処理を実行すればよい。
なお、仮想カメラと注視点の距離が変化する場合には、この距離に応じてプレイヤキャラクタの重みを変化させるのが好ましい。以下、このことを図25〜図28を参照して説明する。
ここでは、図25に示すように、注視点に対する仮想カメラの相対位置が3通り(第1〜第3ポジション)に変化する場合を例として説明する。この場合には、仮想カメラの位置別にプレイヤキャラクタの重みが設定される。特に、図26に示すように、注視点と仮想カメラの距離が近いほど、プレイヤキャラクタの重みが大きくなるように設定される。なお、図26に示すようなテーブルを用意する替わりに、注視点と仮想カメラの距離を引数とした演算によって重みを算出するようにしてもよい。
図27は、仮想カメラの位置が第1のポジションとなっている場合の重心の位置と、その重心を中心とした表示範囲とを示している。ここで、仮に、プレイヤキャラクタの重みを10のまま変化させずに仮想カメラの位置だけを第3のポジションに変化させた場合には、図27に示す重心を中心として画像がズームアップされるため、プレイヤキャラクタが表示範囲から外れてしまうことになる。しかしながら、仮想カメラの位置が第3のポジションに変化したときに、同時にプレイヤキャラクタの重みを50に変化させれば、図28に示すように重心がプレイヤキャラクタに近づくため、プレイヤキャラクタは確実に表示される。
このような処理を実現するためには、例えば、DVD−ROM30から読み出す等によって図26に示すテーブルをメインメモリ214に保持しておき、図5のステップS304において各キャラクタの重みを取得する際に、仮想カメラの位置が第1ポジション〜第3のポジションのいずれであるかを判断して、この判断結果に基づいてプレイヤキャラクタの重みを図26のテーブルを参照して取得するようにすればよい。
なお、本実施形態では三次元のゲーム空間に配置されたキャラクタを表示する場合について説明したが、二次元のゲーム空間に配置されたキャラクタを表示する場合にも本実施形態を容易に適用することができる。この場合、各キャラクタの位置と重みに基づいて重心を算出し、算出された重心がほぼ中央に位置するような画像を生成すればよい。
また、本実施形態ではゲーム空間に配置されたプレイヤキャラクタ、味方キャラクタおよび敵キャラクタを表示する場合について説明したが、これ以外の物体を同様に表示することも可能である。例えば、樹木などの静止物体に対して重みを割り当てることも可能である。
本発明の一実施形態にかかるゲームシステムの外観図 ゲーム機本体の構成を示すブロック図 CPUの処理の流れを示すフローチャート プレイヤキャラクタ位置の更新処理の流れを示すフローチャート 仮想カメラ位置の更新処理の流れを示すフローチャート メインメモリに記憶されるデータの一部を示す図 メインメモリに記憶されるデータの一部を示す図 メインメモリに記憶されるデータの一部を示す図 仮想カメラの向きと注視点との関係を示す図 注視点と表示画面との関係を示す図 仮想空間における複数のキャラクタとその重心を示す図 図11に対応する表示画面を示す図 仮想空間における複数のキャラクタとその重心を示す図 図13に対応する表示画面を示す図 重心の変化に伴う仮想カメラの設定例を示す図 重心の変化に伴う仮想カメラの設定例を示す図 仮想空間における複数のキャラクタとその重心を示す図 図17に対応する表示画面を示す図 仮想空間における複数のキャラクタとその重心を示す図 仮想空間における複数のキャラクタとその重心を示す図 仮想空間における複数のキャラクタとその重心を示す図 図21に対応する表示画面を示す図 仮想空間における複数のキャラクタとその重心を示す図 仮想空間における複数のキャラクタとその重心と注視点とを示す図 仮想カメラの3つのポジションを示す図 メインメモリに記憶されるデータの一部を示す図 仮想カメラが第1ポジションにある場合の仮想空間における複数のキャラクタとその重心を示す図 仮想カメラが第3ポジションにある場合の仮想空間における複数のキャラクタとその重心を示す図
符号の説明
10 TVモニタ
20 ゲーム機本体
30 DVD−ROM
40 外部メモリカード
50 コントローラ
60 スピーカ
202 CPU
204 GPU
206 ジオメトリユニット
208 レンダリングユニット
210 カラーバッファ
212 Zバッファ
214 メインメモリ
216 DSP
218 サブメモリ
220 メモリコントローラ
222 コントローラI/F
224 ビデオI/F
226 外部メモリI/F
228 オーディオI/F
230 ディスクドライブ
232 ディスクI/F

Claims (7)

  1. 二次元ないし三次元の仮想空間に配置された複数の物体を表示するための表示画像をコンピュータに生成させる画像生成プログラムであって、
    前記コンピュータを、
    各前記物体の重みを記憶する重み記憶手段、
    前記仮想空間における各前記物体の位置を記憶する位置記憶手段、
    プレイヤが操作手段によって操作可能なプレイヤキャラクタに対して、当該プレイヤキャラクタを除く他の物体の重みの総和以上の重みを動的に割り当てる割り当て手段、
    各前記物体の重みと位置に基づいて当該物体間の重心を決定する重心決定手段、および
    前記重心がほぼ中央に位置するような表示画像を生成する表示画像生成手段として機能させることを特徴とする画像生成プログラム。
  2. 二次元ないし三次元の仮想空間に配置された複数の物体を表示するための表示画像をコンピュータに生成させる画像生成プログラムであって、
    前記コンピュータを、
    各前記物体の重みを記憶する重み記憶手段、
    前記仮想空間における各前記物体の位置を記憶する位置記憶手段、
    各前記物体の重みと位置に基づいて当該物体間の重心を決定する重心決定手段、および
    前記重心がほぼ中央に位置するような表示画像を生成し、前記重心決定手段によって決定された重心が前記複数の物体のうちのある特定物体を中心とした所定の許容範囲の外に位置していた場合に、当該重心と当該特定物体を結ぶ線分上であってかつ当該許容範囲の境界に該当する点がほぼ中央に位置するような表示画像を生成させる表示画像生成手段として機能させることを特徴とする画像生成プログラム。
  3. 前記仮想空間が三次元の仮想空間であり、前記表示画像生成手段として、前記コンピュータに、前記重心を注視点とした仮想カメラを用いて表示画像を生成させることを特徴とする、請求項1または2に記載の画像生成プログラム。
  4. 前記複数の物体のうちのある特定物体の重みが前記仮想カメラの位置に応じて変化することを特徴とする、請求項に記載の画像生成プログラム。
  5. 前記仮想カメラから前記注視点までの距離が近いほど前記特定物体の重みが大きくなることを特徴とする、請求項に記載の画像生成プログラム。
  6. 前記仮想空間が三次元の仮想空間であり、前記表示画像生成手段として、前記コンピュータに、前記重心決定手段によって決定された重心に対して、一定の割合で仮想カメラの注視点を近づけることによって、前記重心点に徐々に近づく表示画像を生成させることを特徴とする、請求項1または2に記載の画像生成プログラム。
  7. 請求項1ないしのいずれかに記載の画像生成プログラムによって機能するコンピュータを備えるゲーム装置。
JP2003272026A 2003-07-08 2003-07-08 画像生成プログラム及びゲーム装置 Expired - Fee Related JP4099434B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003272026A JP4099434B2 (ja) 2003-07-08 2003-07-08 画像生成プログラム及びゲーム装置
US10/820,057 US7697015B2 (en) 2003-07-08 2004-04-08 Storage medium and game device storing image generating program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003272026A JP4099434B2 (ja) 2003-07-08 2003-07-08 画像生成プログラム及びゲーム装置

Publications (2)

Publication Number Publication Date
JP2005027948A JP2005027948A (ja) 2005-02-03
JP4099434B2 true JP4099434B2 (ja) 2008-06-11

Family

ID=33562692

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003272026A Expired - Fee Related JP4099434B2 (ja) 2003-07-08 2003-07-08 画像生成プログラム及びゲーム装置

Country Status (2)

Country Link
US (1) US7697015B2 (ja)
JP (1) JP4099434B2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3880008B2 (ja) * 2004-12-21 2007-02-14 株式会社光栄 キャラクタ集団移動制御プログラム、記憶媒体及びゲーム装置
JP3911511B2 (ja) * 2004-12-21 2007-05-09 株式会社光栄 キャラクタ集団移動制御プログラム、記憶媒体及びゲーム装置
JP4312737B2 (ja) * 2005-05-13 2009-08-12 任天堂株式会社 ゲームプログラムおよびゲーム装置
JP4662271B2 (ja) * 2006-01-20 2011-03-30 株式会社バンダイナムコゲームス プログラム、情報記憶媒体、及び画像生成システム
JP5183878B2 (ja) * 2006-03-06 2013-04-17 任天堂株式会社 ゲームプログラム、ゲームシステム
US9327191B2 (en) * 2006-05-08 2016-05-03 Nintendo Co., Ltd. Method and apparatus for enhanced virtual camera control within 3D video games or other computer graphics presentations providing intelligent automatic 3D-assist for third person viewpoints
JP5386070B2 (ja) * 2007-06-07 2014-01-15 株式会社タイトー ゲーム装置、ゲーム画面表示プログラム、表示制御方法
JP2009080513A (ja) * 2007-09-25 2009-04-16 Mitsubishi Electric Corp センサ配置設計支援システム
US8167724B2 (en) * 2007-12-10 2012-05-01 Gary Stephen Shuster Guest management in an online multi-player virtual reality game
JP5411473B2 (ja) * 2008-09-16 2014-02-12 株式会社バンダイナムコゲームス プログラム及びゲーム装置
JP5421655B2 (ja) * 2009-05-28 2014-02-19 任天堂株式会社 ゲームプログラム及びゲーム装置
JP5293582B2 (ja) 2009-12-10 2013-09-18 株式会社セガ 画像処理プログラムおよびコンピュータ読み取り可能な記録媒体
US8814678B2 (en) * 2011-06-03 2014-08-26 Nintendo Co., Ltd. Apparatus and method for gyro-controlled gaming viewpoint with auto-centering
US8790178B1 (en) * 2012-11-15 2014-07-29 Kabam, Inc. Metric based conformance by character units to specified formations
JP5516800B2 (ja) * 2013-06-13 2014-06-11 株式会社セガ 画像処理プログラムおよびコンピュータ読み取り可能な記録媒体
JP2015026172A (ja) * 2013-07-25 2015-02-05 株式会社スクウェア・エニックス 画像処理プログラムおよび画像処理装置
JP5617021B1 (ja) * 2013-10-24 2014-10-29 株式会社 ディー・エヌ・エー 仮想空間の表示画像を生成するためのシステム、プログラム及び方法
JP5617022B1 (ja) * 2013-10-24 2014-10-29 株式会社 ディー・エヌ・エー 仮想空間の表示画像を生成するためのシステム、プログラム及び方法
JP6598522B2 (ja) * 2015-06-12 2019-10-30 任天堂株式会社 情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラム
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
CN109675311A (zh) * 2019-01-10 2019-04-26 网易(杭州)网络有限公司 游戏中的显示控制方法、装置、存储介质、处理器及终端
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
JP7233399B2 (ja) * 2020-06-23 2023-03-06 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
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
JP2023050529A (ja) * 2021-09-30 2023-04-11 株式会社Cygames プログラム、情報処理装置および情報処理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0782104B1 (en) * 1995-05-19 2004-03-24 Sega Enterprises, Ltd. Image processing device, image processing method, storage medium and computer program
JP3745475B2 (ja) 1996-12-06 2006-02-15 株式会社セガ ゲーム装置及び画像処理装置
JPH10336505A (ja) * 1997-04-01 1998-12-18 Sony Corp 画像表示装置及び画像表示方法
US6501468B1 (en) * 1997-07-02 2002-12-31 Sega Enterprises, Ltd. Stereoscopic display device and recording media recorded program for image processing of the display device
JP4022847B2 (ja) * 1999-01-12 2007-12-19 株式会社セガ ゲーム装置

Also Published As

Publication number Publication date
JP2005027948A (ja) 2005-02-03
US7697015B2 (en) 2010-04-13
US20050009602A1 (en) 2005-01-13

Similar Documents

Publication Publication Date Title
JP4099434B2 (ja) 画像生成プログラム及びゲーム装置
JP3372832B2 (ja) ゲーム装置、ゲーム画像処理方法およびゲーム画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP4115809B2 (ja) ゲームシステム及びゲームプログラム
US6413163B1 (en) Video game machine, method for switching viewpoint on game screen of video game, and computer-readable recording medium containing game-screen-viewpoint switching program
JP3068205B2 (ja) 画像処理装置、この処理装置を用いたゲーム機及び画像処理方法並びに媒体
JP4791852B2 (ja) ゲーム装置、ゲームプログラムおよびゲーム制御方法
US8353748B2 (en) Game device, method of controlling game device, and information recording medium
JP5025950B2 (ja) 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法
US8072458B2 (en) Storage medium having game program stored thereon and game apparatus
JP2006068138A (ja) ゲーム装置および画像処理プログラム
JP2005310020A (ja) 3次元画像生成装置および3次元画像生成プログラム
JP3747050B1 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4343207B2 (ja) ゲーム装置および画像処理プログラム
JP3617839B2 (ja) ゲームサウンド制御プログラム、ゲームサウンド制御方法およびゲーム装置
JP5789991B2 (ja) ビデオゲーム装置、ビデオゲーム処理方法、ビデオゲーム処理プログラムおよびコンピュータ読み取り可能な記録媒体
JP2009082188A (ja) ゲームプログラム、ゲーム装置、およびゲーム制御方法
EP0948979A2 (en) Image creating apparatus, image creating method, and computer-readable recording medium containing image creating program
EP0992945B1 (en) Video game apparatus, model display and readable recording medium therefor
JP2006268511A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP2004318558A (ja) 画像処理装置および画像処理プログラム
US20120252575A1 (en) Game device, game device control method, and information storage medium
JP4714763B2 (ja) 画像処理プログラム、画像処理装置、および画像制御方法
JP4054708B2 (ja) ゲーム装置およびゲームプログラム
JP2006268818A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP7307362B2 (ja) ゲームプログラム及びゲーム装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071114

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080107

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080214

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080317

R150 Certificate of patent or registration of utility model

Ref document number: 4099434

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120321

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130321

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

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140321

Year of fee payment: 6

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

LAPS Cancellation because of no payment of annual fees