JP2011255114A - プログラム、情報記憶媒体及び画像生成システム - Google Patents

プログラム、情報記憶媒体及び画像生成システム Download PDF

Info

Publication number
JP2011255114A
JP2011255114A JP2010134498A JP2010134498A JP2011255114A JP 2011255114 A JP2011255114 A JP 2011255114A JP 2010134498 A JP2010134498 A JP 2010134498A JP 2010134498 A JP2010134498 A JP 2010134498A JP 2011255114 A JP2011255114 A JP 2011255114A
Authority
JP
Japan
Prior art keywords
marker
program
control unit
predicted position
player
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.)
Withdrawn
Application number
JP2010134498A
Other languages
English (en)
Inventor
Natsuki Izaki
夏樹 井崎
Kazunori Imoto
一史 井本
Yoshitaka Inoue
佳高 井上
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.)
Bandai Namco Entertainment Inc
Original Assignee
Namco Bandai Games Inc
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 Namco Bandai Games Inc filed Critical Namco Bandai Games Inc
Priority to JP2010134498A priority Critical patent/JP2011255114A/ja
Publication of JP2011255114A publication Critical patent/JP2011255114A/ja
Withdrawn legal-status Critical Current

Links

Abstract

【課題】オブジェクトの挙動に応じてオブジェクトに対するマーカーの挙動を変化させることが可能なプログラム、情報記憶媒体及び画像生成システムを提供すること。
【解決手段】ノンプレーヤキャラクタである敵機NPCが自機PCを追尾する場合に、自機PCの移動履歴に基づき所与の時間経過後の自機PCの予測位置を求め、前記予測位置と敵機NPCの位置とに基づいて、自機PCに対するマーカーMKを表示する制御を行い、マーカーMKと自機PCの位置関係に基づいて、ゲーム演算を行う。自機PCと敵機NPCの距離に基づいてマーカーMKの大きさを変化させる。
【選択図】図2

Description

本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
従来から、プレーヤが入力操作を行いオブジェクト空間における機体(自機)を移動させて、敵の機体(敵機)を射撃するフライトシューティングゲームが知られている。このようなフライトシューティングゲームでは、プレーヤが操作レバーによりゲーム画面に表示される照準カーソルを移動させて敵機に目標を定め、操作ボタンによりミサイル等を発射して敵機を攻撃するものが知られている(例えば、特許文献1)。
特開2007−44396号公報
しかしながら、従来のゲームは、プレーヤ自身がカーソルを移動させるものであり、敵機の挙動に応じてカーソルの動きが変化するものではなかった。
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、オブジェクトの挙動に応じてオブジェクトに対するマーカーの挙動を変化させることが可能なプログラム、情報記憶媒体及び画像生成システムを提供することにある。
(1)本発明に係るプログラムは、
画像を生成するためのプログラムであって、
第1及び第2のオブジェクトをオブジェクト空間内で移動させる移動制御を行う移動制御部と、
前記第1のオブジェクトの移動履歴に基づき所与の時間経過後の前記第1のオブジェクトの予測位置を求め、前記予測位置と前記第2のオブジェクトの位置とに基づいて、前記第1のオブジェクトに対するマーカーを表示する制御を行うマーカー表示制御部と、
前記マーカーと前記第1のオブジェクトの位置関係に基づいて、ゲーム演算を行うゲーム演算部と、
オブジェクト空間を所与の視点からみた画像を生成する画像生成部としてコンピュータを機能させることを特徴とする。
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体に関する。また本発明は、上記各部を含む画像生成システムに関する。
本発明によれば、第1のオブジェクトの挙動に応じて第1のオブジェクトに対するマーカーの挙動を変化させることができ、例えば、第1のオブジェクトが予測位置に近い位置を通過するように移動した場合と、予測位置から離れた位置を通過するように移動した場合とで、第1のオブジェクトとマーカーの位置関係を変化させることができ、それによってゲームの進行や結果を変化させることができる。
(2)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記第1のオブジェクトは、プレーヤキャラクタであり、前記第2のオブジェクトは、ノンプレーヤキャラクタであってもよい。
本発明によれば、例えば、プレーヤに、マーカーを避けながら第1のオブジェクトを移動させるといったゲームプレイを行わせることができる。
(3)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記マーカー表示制御部が、
前記第1のオブジェクトと前記第2のオブジェクト間の距離に基づいて、前記マーカーの大きさ、形状及び色の少なくとも1つを変化させるようにしてもよい。
(4)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記マーカー表示制御部が、
所与の時間間隔毎に前記予測位置を求め、時刻tにおける前記第1のオブジェクトの位置と、時刻tについて求めた前記予測位置とに基づいて、前記予測位置を求める時間間隔を変化させるようにしてもよい。
本発明によれば、位置予測の当否によって、以降の位置予測をより当たり易くしたり、当たり難くしたりすることができる。
(5)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記マーカー表示制御部が、
前記第2のオブジェクトの座標を通る仮想線分であって前記予測位置に基づきその向きが決定される仮想線分と、前記視点の向きと前記第1のオブジェクトの位置とに基づき決定される仮想平面との交点の座標に基づいて、前記マーカーの表示位置を決定するようにしてもよい。
(6)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記マーカー表示制御部が、
前記仮想線分と前記仮想平面の交点の3次元座標を2次元座標に変換し、得られた前記交点の2次元座標に基づいて、前記マーカーの表示位置を決定するようにしてもよい。
(7)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記マーカー表示制御部が、
前記仮想線分と前記仮想平面の交点の3次元座標に基づいて、前記マーカーを示すオブジェクトをオブジェクト空間に配置するようにしてもよい。
(8)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記マーカー表示制御部が、
前記マーカーを示すオブジェクトを、前記第1のオブジェクトと前記第2のオブジェクトの間に配置するようにしてもよい。
本発明によれば、見た目に違和感のないマーカーの表現を行うことができる。
(9)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記ゲーム演算部が、
前記仮想線分と前記仮想平面の交点の座標と、前記第1のオブジェクトの座標とに基づいて、前記マーカーと前記第1のオブジェクトの位置関係が所定の条件を満たすか否かを判定し、判定結果に基づきゲーム演算を行うようにしてもよい。
(10)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記マーカー表示制御部が、
前記第1のオブジェクトと前記第2のオブジェクトの位置関係が所定の条件を満たす場合に、前記マーカーを表示する制御を行うようにしてもよい。
本実施形態のゲーム装置(画像生成システム)の機能ブロック図の一例を示す図。 図2(A)〜図2(C)は、逃げ側近接戦闘モード時に生成されるゲーム画面の一例を示す図。 図3(A)、図3(B)は、距離に基づくマーカーの大きさの変化について説明するための図。 図4(A)、図4(B)は、距離に基づくマーカーの形状の変化について説明するための図。 自機の位置予測の当否判定について説明するための図。 図6(A)、図6(B)は、位置予測の時間間隔について説明するための図。 図7(A)、図7(B)は、自機の予測位置の算出について説明するための図。 仮想線分の向きの算出について説明するための図。 マーカーの表示位置の算出について説明するための図。 2次元座標系におけるマーカーの描画と、自機とマーカーの位置関係の判定について説明するための図。 追う側近接戦闘モードにおける、マーカーの表示制御について説明するための図。 自機と敵機の位置関係の判定について説明するための図。 本実施形態の処理の流れを示すフローチャート図。 本実施形態の処理の流れを示すフローチャート図。 図15(A)〜図15(C)は、変形例について説明するための図。 変形例について説明するための図。 変形例について説明するための図。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.機能ブロック図
図1に本実施形態のゲーム装置(画像生成システム、ゲームシステム、携帯端末)の機能ブロック図の一例を示す。なお本実施形態のゲーム装置は図1の構成要素(各部)の一部を省略した構成としてもよい。
操作部160は、プレーヤが操作情報(操作データ)を入力するためのものであり、ユーザの操作情報を処理部100に出力する。操作部160の機能は、ボタン(Aボタン、Bボタンなど)、方向キー(十字キー)、方向入力可能なコントロールスティック(アナログキー)、レバー、キーボード、マウス、タッチパネル型ディスプレイ、加速度センサや傾きセンサ等を内蔵するコントローラなどのハードウェアにより実現することができる。
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。そして、本実施形態の記憶部170は、ワーク領域として使用される主記憶部172と、最終的な表示画像等が記憶されるフレームバッファ174と、オブジェクトのモデルデータが記憶されるオブジェクトデータ記憶部176と、各オブジェクトデータ用のテクスチャが記憶されるテクスチャ記憶部178と、オブジェクトの画像の生成処理時にZ値が記憶されるZバッファ179とを含む。なお、これらの一部を省略する構成としてもよい。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、或いはタッチパネル型ディスプレイなどにより実現できる。
通信部196は他のゲーム装置やサーバとの間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
処理部100(プロセッサ)は、操作部160からの操作データ、他のゲーム装置から通信部196を介して受信したデータやプログラムなどに基づいて、ゲーム処理、描画処理などの処理を行う。この処理部100は主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、オブジェクト空間設定部110、移動・動作処理部112、マーカー表示制御部114、ゲーム演算部116、仮想カメラ制御部118、描画部120、音生成部130を含む。
オブジェクト空間設定部110は、キャラクタ(プレーヤキャラクタ、ノンプレーヤキャラクタ)、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義であり、例えば、ワールド座標系でのX、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
特に本実施形態のオブジェクト空間設定部は、プレーヤキャラクタである第1のオブジェクトと、ノンプレーヤキャラクタ(NPC)である第2のオブジェクトとをオブジェクト空間に設定する。ここで、第1及び第2のオブジェクトは、例えば飛行機や車等でもよい。
移動・動作処理部112(移動制御部)は、オブジェクト(キャラクタ等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)、物理法則などに基づいて、オブジェクトをオブジェクト空間(ゲーム空間)内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒又は1/30秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。また移動・動作処理部112は、ネットワークを介して接続された他のゲーム装置から通信部196を介して受信したオブジェクト(他のプレーヤに対応するオブジェクト)の移動情報や動作情報に基づき当該オブジェクトの移動情報や動作情報を更新する処理を行うようにしてもよい。また移動・動作処理部112は、他のゲーム装置から通信部196を介して受信した操作データ等に基づき、当該オブジェクトの移動・動作演算を行うようにしてもよい。
特に本実施形態の移動・動作処理部112は、プレーヤによって操作入力された操作データ等に基づき第1のオブジェクト(プレーヤキャラクタ)をオブジェクト空間内で移動させる移動制御を行い、プログラム等に基づいて第2のオブジェクト(NPC)をオブジェクト空間内で移動させる移動制御を行う。
また移動・動作処理部112は、第1のオブジェクトの過去の移動情報(移動履歴)に基づいて、第2のオブジェクトに第1のオブジェクトを追従させる追従制御を行うようにしてもよい。第1のオブジェクトの移動情報とは、例えば第1のオブジェクトの位置、姿勢、移動ベクトル(速度ベクトル)等である。過去の移動情報として第1のオブジェクトのリプレイデータを使用してもよい。例えば、第2のオブジェクトの移動方向に対して前方を移動する第1のオブジェクトが所定時間前(フレーム単位でゲーム時間を管理している場合には所定フレーム前)に通過した位置(座標)又はその近傍位置を第2のオブジェクトが通過するように第2のオブジェクトの位置を制御してもよい。
また移動・動作処理部112は、第1のオブジェクトの移動情報に基づき、第1のオブジェクトの直近の移動軌跡に対応した移動可能範囲をリアルタイムに設定し、第2のオブジェクトに移動可能範囲を移動させる制御を行ってもよい。移動可能範囲は、平面的な領域でもよいし、空間的な領域でもよく、第1のオブジェクトの直近の移動軌跡に対してある程度の幅を持った領域でもよい。例えば移動可能範囲は、第1のオブジェクトの移動軌跡を通るチューブ状の空間でもよい。第2のオブジェクトは、移動可能範囲内において第1のオブジェクトの移動軌跡に対してランダムに上下左右にずれた位置を移動するようにしてもよい。
マーカー表示制御部114は、前記第1のオブジェクトの移動履歴(過去の移動情報)に基づき所与の時間経過後の前記第1のオブジェクトの予測位置を求め、前記予測位置と前記第2のオブジェクトの位置とに基づいて、前記第1のオブジェクトに対するマーカー(第1のオブジェクトの第2のオブジェクトに対する状況(例えば、攻撃状況)を示すマーカー、第2のオブジェクトによる第1のオブジェクトに対する攻撃の目安となるマーカー)を表示する制御を行う。
またマーカー表示制御部114は、第1のオブジェクトの所定時間前の位置(第1のオブジェクトが所定時間前に通過した位置)と、第1のオブジェクトの現在の位置とに基づき前記予測位置を求めるようにしてもよい。
またマーカー表示制御部114は、前記第1のオブジェクトと前記第2のオブジェクト間の距離(オブジェクト空間における距離)に基づいて、前記マーカーの大きさ、形状及び色の少なくとも1つを変化させるようにしてもよい。例えば、前記第1のオブジェクトと前記第2のオブジェクト間の距離が長いほど、前記マーカーのサイズを大きくし(又は、前記マーカーの面積が大きくなるように前記マーカーの形状を変更し)、前記第1のオブジェクトと前記第2のオブジェクト間の距離が短いほど、前記マーカーのサイズを小さくする(又は、前記マーカーの面積が小さくなるように前記マーカーの形状を変更する)ようにしてもよい。
またマーカー表示制御部114は、所与の時間間隔毎に前記予測位置を求め、時刻tにおける前記第1のオブジェクトの位置と、時刻tについて求めた前記予測位置とに基づいて、前記予測位置を求める時間間隔を変化させるようにしてもよい。
またマーカー表示制御部114は、前記第2のオブジェクトの座標を通る線分であって前記予測位置に基づきその向きが決定される仮想線分と、前記視点の向きと前記第1のオブジェクトの位置とに基づき決定される仮想平面との交点の座標に基づいて、前記マーカーの表示位置を決定するようにしてもよい。例えば、前記仮想平面は、前記視点の向きと直交し、且つ前記第1のオブジェクトの座標が存在する平面でもよい。
またマーカー表示制御部114は、前記仮想線分と前記仮想平面の交点の3次元座標を2次元座標(例えば、スクリーン座標系における座標)に変換し、得られた前記交点の2次元座標に基づいて、前記マーカーの表示位置を決定するようにしてもよい。例えば、前記交点の2次元座標を前記マーカーの中心座標とするようにしてもよい。
またマーカー表示制御部114は、前記仮想線分と前記仮想平面の交点の3次元座標に基づいて、前記マーカーを示すオブジェクトをオブジェクト空間に配置するための処理を行うようにしてもよい。例えば、前記交点の3次元座標に前記マーカーを示すオブジェクトを配置するようにしてもよい。
またマーカー表示制御部114は、前記マーカーを示すオブジェクトを、前記第1のオブジェクトと前記第2のオブジェクトの間に配置するようにしてもよい。
またマーカー表示制御部114は、前記第1のオブジェクトと前記第2のオブジェクトの位置関係が所定の条件を満たすか否かを判定し、所定の条件を満たすと判定した場合に、前記マーカーを表示する制御を行うようにしてもよい。
ゲーム演算部116は、種々のゲーム演算処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲームステージ毎のクリア条件を満たすか否かを判定する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などを行う。
特に本実施形態のゲーム演算部116は、前記マーカーと前記第1のオブジェクトの位置関係に基づいて、ゲーム演算を行う。
またゲーム演算部116は、前記仮想線分と前記仮想平面の交点の座標と、前記第1のオブジェクトの座標(例えば、第1のオブジェクトの代表点の座標、中心点の座標)とに基づいて、前記マーカーと前記第1のオブジェクトの位置関係が所定の条件を満たすか否かを判定し、判定結果に基づきゲーム演算を行うようにしてもよい。例えば、前記マーカーの座標に対応する所定の範囲内(例えば、前記マーカーの表示範囲内)に前記第1のオブジェクトの座標が位置するか否かを判定するようにしてもよいし、前記第1のオブジェクトの座標に対応する所定の範囲内に前記マーカーが位置するか否かを判定するようにしてもよいし、前記マーカーと前記第1のオブジェクトが交差するか否かを判定するようにしてもよい。また、判定結果に基づいて、前記第2のオブジェクトが前記第1のオブジェクトに対して攻撃動作(例えば、ミサイル、機関砲等の発射)を行うゲーム演算を行うようにしてもよいし、第2のオブジェクトに所定のアイテム(例えば、特殊武器)を使用可能にさせるゲーム演算を行うようにしてもよい。
仮想カメラ制御部118は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、操作部160によりプレーヤが入力した操作データ或いはプログラム(移動・動作アルゴリズム)等に基づいて、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。
特に本実施形態の仮想カメラ制御部118は、第1のオブジェクトの移動経路に基づいて、仮想カメラの位置、向き、画角の少なくとも1つを制御する処理を行う。例えば、第1のオブジェクトの移動経路に基づいて、仮想カメラに第1のオブジェクトを追従させる制御を行うようにしてもよい。
描画部120(画像生成部)は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。
いわゆる3次元画像を生成する場合には、まずオブジェクトの各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、射影変換(透視変換、投影変換)、ビューポート変換(スクリーン座標変換)、光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。ジオメトリ処理後のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。
ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
そして描画部120は、オブジェクトを描画する際に、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
テクスチャマッピングは、記憶部170のテクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部178からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ179(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ179に格納されるZ値を参照する。そして参照されたZバッファ179のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ179のZ値を新たなZ値に更新する。
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより2つの色を合成した色を求める処理を行う。なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えばRGBの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
なお、本実施形態の端末は、1人のプレーヤのみがプレイできるシングルプレーヤモード、或いは、複数のプレーヤがプレイできるマルチプレーヤモードでゲームプレイできるように制御してもよい。例えば、マルチプレーヤモードで制御する場合には、ネットワークを介して他のゲーム装置とデータを送受信してゲーム処理を行うようにしてもよいし、1つのゲーム装置が、複数の操作部からの操作情報に基づいて処理を行うようにしてもよい。
2.本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
2−1.ゲームの概要
本実施形態は、シューティングゲームのための画像生成処理に関するものである。例えば、本実施形態は、プレーヤの操作対象の自機(第1のオブジェクト、プレーヤキャラクタ)と、コンピュータオブジェクトである敵機(第2のオブジェクト、NPC)、或いは他のプレーヤのオブジェクトである敵機とが、互いに誘導ミサイルや機関砲などで攻撃し合うフライトシューティングゲームに関するものである。
本実施形態では、自機と敵機が互いに相手をターゲットオブジェクト(標的)とし、互いにオブジェクト空間を移動しながら誘導ミサイルや機関砲を発射してターゲットオブジェクトを撃墜させるゲーム処理を行う。したがって、自機を操作するプレーヤは、自機から発射されるミサイルや機関砲を敵機にヒットさせるように攻撃操作を行い、敵機から発射される誘導ミサイル等の攻撃から回避するように自機を移動させる操作を行う。
また本実施形態では、自機と敵機のオブジェクト空間における位置関係が所定の条件を満たした場合に、自機と敵機とが近接して移動しながら戦闘を行う近接戦闘モードとなる。近接戦闘モードには、敵機がターゲットとなり自機が敵機を追尾する「追う側近接戦闘モード」と、自機がターゲットとなり敵機が自機を追尾する「逃げ側近接戦闘モード」がある。追う側近接戦闘モードでは、敵機の過去の移動軌跡に基づき自機を敵機に追従させる追従制御が行われ、逃げ側近接戦闘モードでは、自機の過去の移動軌跡に基づき敵機を自機に追従させる追従制御が行われる。
2−2.マーカーの概要
図2(A)〜図2(C)は、敵機NPCが自機PCを追尾する逃げ側近接戦闘モード時に生成されるゲーム画面の一例を示す図である。
図2(A)に示すように、逃げ側近接戦闘モード時には、自機PCに対するマーカーMKが表示される。本実施形態では、マーカーMKの形状を円形(輪状)としているが、マーカーMKの形状は任意であり、楕円形状、或いは三角形や矩形等の多角形形状としてもよいし、その他の形状としてもよい。
図2(B)に示すように、自機PCの位置(例えば、自機PCの中心点又は代表点の位置)がマーカーMKの表示範囲内に入ると、マーカーMKの内周側にゲージGAが表示される。ゲージGAは、自機PCがマーカーMK内に位置する時間の経過に従ってその値が増加するように表示され、自機PCがマーカーMK内に位置しなくなった場合にリセットされる(ゲージGAの値が0になる)。なお、自機PCがマーカーMK内に位置しなくなった場合にゲージGAの値を所定値だけ減少させるようにしてもよい。また、自機PCがマーカーMK内に位置しない時間の経過に従ってゲージGAの値を減少させるようにしてもよい。
図2(C)に示すように、自機PCがマーカーMK内に位置する時間が所定時間(例えば、0.5秒)に達してゲージGAの値が最大値となると、自機PCが敵機NPCにロックオンされるロックオン状態となる。このロックオン状態になると、敵機NPCから通常の誘導ミサイルよりも誘導性能の高い誘導ミサイル(特殊武器)が発射され、発射された誘導ミサイルは、高確率で自機PCに着弾することになる。
なお、ロックオン状態において、誘導ミサイルが発射された場合、及び、自機PCがマーカーMK内に位置しなくなった場合には、ゲージGAの値はリセット(又は減少)され、ロックオン状態は解除される。また、マーカーMKにゲージGAを表示させずに、自機PCがマーカーMKの表示範囲内に入ったときに、敵機NPCから自機PCに向けてミサイルや機関砲が発射されるようにしてもよい。
プレーヤは、自機PCに対するマーカーMKによって、自機PCが敵機NPCの誘導ミサイルに狙われている様子を視覚的に把握することができ、また、マーカーMKに表示されるゲージGAによって、ロックオン状態になるタイミングを視覚的に把握することができる。
またプレーヤは、自機PCがマーカーMK内に入らないように自機PCを移動させる操作を行うことで、或いは自機PCがマーカーMK内に入っている場合には、マーカーMKのゲージGAが最大値に達するまで(ロックオン状態になる前)に自機PCをマーカーMK外に移動させる操作を行うことで、敵機NPCから誘導性能の高い誘導ミサイルが発射される事態を回避することができる。
2−3.マーカーの大きさ制御
本実施形態のマーカーMKは、オブジェクト空間における自機PCと敵機NPCの距離に基づいてその大きさが変化する。
すなわち、図3(A)に示すように、自機PCと敵機NPCの距離が近いほどマーカーMKのサイズ(半径)が大きくなり、自機PCが敵機NPCから狙われ易くなる(マーカーMKを回避し難くなる)。一方、図3(B)に示すように、自機PCと敵機NPCの距離が遠いほどマーカーMKのサイズ(半径)が小さくなり、自機PCが敵機NPCから狙われ難くなる(マーカーMKを回避し易くなる)。
プレーヤは、例えば、自機PCを加速させる等の操作を行って自機PCと敵機NPCの距離を長くすることで、マーカーMKのサイズを小さくし、敵機NPCから誘導性能の高い誘導ミサイルが発射される事態を回避することができる。
なお、オブジェクト空間における自機PCと敵機NPCの距離に基づいてマーカーMKの形状、色、透明度を変化させるようにしてもよい。例えば、自機PCと敵機NPCの距離が近いほど、自機PCがマーカーMKを回避し難いような形状とし、自機PCと敵機NPCの距離が遠いほど、自機PCがマーカーMKを回避し易いような形状とするようにしてもよい。
図4(A)、図4(B)に示す例では、自機PCの敵機NPCの距離が遠いほど、矩形のマーカーMKの一辺が短くなるようにマーカーMKの形状を変化させている。また、自機PCの敵機NPCの距離が近いほど、マーカーMKの一部又は全部の色を、プレーヤに危険を感知させる色(例えば、青色から赤色)に変化させるようにしてもよい。また、自機PCと敵機NPCの距離が遠いほど、マーカーMKの透明度を上げ、自機PCと敵機NPCの距離が近いほど、マーカーMKの透明度を下げる(不透明にする)ようにしてもよい。
また、自機PCに設定された機体パラメータに基づき自機PCに対するマーカーMKの大きさを変化させるようにしてもよい。例えば、自機PCの機体の特性に応じて、予めマーカーMKのデフォルトサイズ(例えば半径)や、マーカーMKの変動率(自機PCと敵機NPCの距離の変化量に対するマーカーMKの大きさの変化量の比率)を機体パラメータとして自機PCに設定しておき、設定されたデフォルトサイズを自機PCに対するマーカーMKのデフォルトサイズとし、設定された変動率に従ってマーカーMKの大きさを変化させるようにしてもよい。例えば、自機PCがステルス性能の高い種類の機体である場合には、マーカーMKのデフォルトサイズや変動率を小さい値に設定しておき、自機PCと敵機NPCの距離が近くなっても自機PCに対するマーカーMKのサイズがあまり大きくならないようにして、自機PCがマーカーMKを回避し易くするようにしてもよい。
また、マーカーMKのゲージGAの値が最大値に達するまでの時間(チャージ時間)を機体パラメータとして自機PCに設定してもよい。例えば、自機PCがステルス性能の高い種類の機体である場合には、チャージ時間を長く設定しておき、自機PCがマーカーMK内に位置していてもロックオン状態になるまでに時間がかかるようにして、自機PCがマーカーMKを回避し易くするようにしてもよい。
また、プレーヤが所定の操作を行った場合、又は所定のゲームアイテムを使用した場合に、マーカーMKの大きさや、変動率、ゲージGAのチャージ時間を変化させるようにしてもよい。例えば、プレーヤが、誘導ミサイルの命中を回避するためのチャフを散布させる操作や、フレアを放出させる操作を行った場合には、所定時間だけ自機PCに対するマーカーMKのデフォルトサイズや変動率を小さくし(又は、ゲージGAのチャージ時間を長くし)、自機PCがマーカーMKを回避し易くするようにしてもよい。
また、プレーヤによって設定されたゲームの難易度や、プレーヤの経験値に基づいて、マーカーMKの大きさや、変動率、ゲージGAの変動率を制御するようにしてもよい。例えば、設定された難易度が高い場合には、マーカーMKのデフォルトサイズや変動率を大きくし(又は、ゲージGAのチャージ時間を短くし)て自機PCがマーカーMKを回避し難くし、設定された難易度が低い場合には、マーカーMKのサイズや変動率を小さく(又は、ゲージGAのチャージ時間を長く)して自機PCがマーカーMKを回避し易くするようにしてもよい。また、プレーヤの経験値が高い場合には、マーカーMKのデフォルトサイズや変動率を大きく(又は、ゲージGAのチャージ時間を短く)するようにしてもよい。
2−4.自機の予測位置の算出
また本実施形態では、逃げ側近接戦闘モード時の自機PCに対するマーカーMKは、敵機NPCを始点とする仮想線分の向きに表示される。仮想線分の向きは敵機NPCの向き(敵機NPCの機首方向)とは関係なく、所与の時間経過後の自機PCの予測位置に基づき求められる。
予測位置の算出は所与の時間間隔毎に行われ、時刻tにおける自機PCの位置と時刻tについて算出した予測位置とに基づき予測の当否を判定し、判定結果に基づき予測位置を算出する時間間隔を変化させる。
具体的には、図5に示すように、前回予測時の自機PCの位置P1を始点とし、現在の自機PCの位置P2(時刻tにおける自機PCの位置)を終点とするベクトルV1と、前回予測時の自機PCの位置P1を始点とし、前回予測した予測位置P3(時刻tについて算出した予測位置)を終点とするベクトルV2とを求め、ベクトルV1とベクトルV2のなす角度θに基づいて予測の当否を判定する。
すなわち、角度θが所定の第1の角度θ以下である場合には、予測が当たっていたと判定し、予測の時間間隔を所定時間だけ短くする。また、角度θが所定の第2の角度θ(θ<θ)以上である場合には、予測が外れていたと判定し、予測の時間間隔をデフォルト値(最大値)に設定する(リセットする)。また、角度θが第1の角度θより大きく第2の角度θより小さい場合には、予測の時間間隔を変更しない。なお、角度θが第2の角度θ以上である場合には、予測の時間間隔を所定時間だけ長くし、角度θが第1の角度θ以下である場合には、予測の時間間隔をデフォルト値(最小値)にリセットするようにしてもよい。
図6は、自機PCの実際の移動軌跡MLと自機PCの予測位置を示す図である。図6(A)は、予測の時間間隔が短い場合を示し、図6(B)は、予測の時間間隔が長い場合を示す。
図6(A)に示すように、予測の時間間隔が短くなると、予測位置FPと実際の位置(移動軌跡ML)との誤差は小さくなり予測は当たり易くなる。一方、図6(B)に示すように、予測の時間間隔が長くなると、予測位置FPと実際の位置(移動軌跡ML)との誤差は大きくなり予測は外れ易くなる。従って、位置予測が当たっていたと判定された場合には、予測の時間間隔が短くなるため以降の位置予測が当たり易くなり、予測が外れていたと判定された場合には、予測の時間間隔が長くなるため以降の位置予測が外れ易くなる。
また、位置予測の時間間隔のデフォルト値を、機体パラメータとして自機PCに設定してもよい。例えば、自機PCがステルス性能の高い種類の機体である場合には、予測の時間間隔のデフォルト値を大きい値に設定しておき、位置予測が外れ易くなる(予測位置と自機PCの実際の位置との誤差が大きくなる)ようにしてもよい。
また、プレーヤが所定の操作を行った場合、又は所定のゲームアイテムを使用した場合に、位置予測の時間間隔を変化させるようにしてもよい。例えば、プレーヤが、誘導ミサイルの命中を回避するためのチャフを散布させる操作や、フレアを放出させる操作を行った場合には、所定時間だけ予測の時間間隔を長くして、位置予測が外れ易くなるようにしてもよい。
また、設定されたゲームの難易度や、プレーヤの経験値に基づいて、位置予測の時間間隔を変化させるようにしてもよい。例えば、設定された難易度が高い場合には、予測の時間間隔のデフォルト値を小さく(短く)して位置予測が当たり易くなるようにし、設定された難易度が低い場合には、予測の時間間隔のデフォルト値を大きく(長く)して位置予測が外れ易くなるようにしてもよい。プレーヤの経験値が高い場合には、予測の時間間隔のデフォルト値を小さくするようにしてもよい。
本実施形態では、自機PCの予測位置は、自機PCが前回の動き(前回位置予測時から現在までの動き)と同じ動きをすると仮定して予測され、自機PCの移動履歴(過去の移動情報)に基づき算出される。
具体的には、図7(A)に示すように、前回予測時の自機PCのワールド座標における位置P1と現在の自機PCのワールド座標における位置P2とに基づき、自機PCのローカル座標における移動ベクトルV3を算出する(図7(B)参照)。図7に示す例では、自機PCが、前回予測時の姿勢(向き)を基準として、ローカル座標において、左方向(−X軸方向)に30、前方(+Z軸方向)に100だけ移動したとして移動ベクトルV3を算出している。
そして、算出した移動ベクトルV3を現在の自機PCの位置P2と姿勢に適用して移動ベクトルV4を算出し、次回予測時(所与の時間経過後)の自機PCのワールド座標における予測位置P4を算出する。図7に示す例では、自機PCが、現在の姿勢(向き)を基準として、ローカル座標において、左方向(−X軸方向)に30、前方(+Z軸方向)に100だけ移動すると予測して、予測位置P4を算出している。
このようにすると、自機PCが同一の速度(速さと向き)で移動し続けた場合(例えば、同一の速さで直進し続けた場合、同一方向に旋回、上昇、又は下降し続けた場合)には、時刻tについて予測した予想位置と、時刻tにおける自機PCの実際の位置との誤差が小さくなり、自機PCが速度を変更して移動した場合(例えば、旋回方向を変更した場合)には、予想位置と自機PCの実際の位置との誤差が大きくなる。
2−5.仮想線分の向きの決定
次に、自機PCの予測位置に基づき、敵機NPCを始点とする仮想線分の向きを決定する。具体的には、図8に示すように、前回予測した予測位置P3を始点とし、今回予測した予測位置P4を終点として、時間経過に応じて線形補間することで仮想線分の向きDSを算出する。
すなわち、今回の予測時(時刻T1)においては、仮想線分の向きDSは前回の予測位置P3(時刻T1から所与の時間過去の時刻T0において、時刻T1について予測した予測位置)を向く方向となり、所与の時間経過後の次回の予測時(時刻T1から所与の時間経過後の時刻T2)においては、仮想線分の向きDSは今回の予測位置P4(時刻T1において、時刻T2について予測した予測位置)を向く方向となり、今回と次回の間(時刻T1と時刻T2の間)は、位置P3と位置P4を結ぶ線上の点を向く方向となる。例えば、予測の時間間隔(時刻T1から時刻T2までの時間)が1秒である場合には、直近の予測時(時刻T1)から0.5秒後の仮想線分は、位置P3と位置P4の中間点(位置P3と位置P4を1:1の比率で補間した位置)を向くことになる。このようにすると、仮想線分の向きDSを時間経過とともになめらかに変化させることができる。
2−6.マーカーの表示位置の決定
次に、仮想線分の向きDSからマーカーMKの表示位置を決定する。具体的には、図9に示すように、自機PCの座標P3Dが存在し、且つ仮想カメラVCの視線ベクトルEVと直交する(視線ベクトルEVが法線となる)仮想平面VPを算出する。そして、始点を敵機NPCの座標とし、終点を仮想線分の向きDSに所定距離離れた座標とする仮想線分VSを算出する。
そして、仮想線分VSと仮想平面VPの交点ISの座標(ワールド座標系における3次元座標)を算出し、この交点ISの3次元座標を2次元座標に変換する。具体的には、交点ISの3次元座標を仮想平面VPを投影面とするスクリーン座標系(2次元座標系)における2次元座標に変換する。この交点ISの2次元座標がマーカーMKの中心座標となる。ここで、自機PCと敵機の距離が大きく離れているために、仮想線分VSと仮想平面VPが交差しない場合には、マーカーMKは表示されない。
図10に、仮想線分VSと仮想平面VPの交点ISの2次元座標を含むスクリーン座標系を示す。本実施形態では、自機PCと敵機NPCの距離に基づきマーカーの半径r(rは、スクリーン座標系における長さ)を算出し、交点ISの2次元座標を中心座標とする半径rの円形のマーカーMKの画像を描画する。ここで、マーカーの半径rに代えて直径を算出するようにしてもよい。すなわち、自機PCと敵機NPCの距離に基づきマーカーMKの大きさを特定するための情報を算出すればよい。
次に、オブジェクト空間を仮想カメラから見た画像(ジオメトリ処理後のオブジェクト(自機PC、敵機NPC等のオブジェクト)をフレームバッファに描画することで生成された画像)に、マーカーMKの画像を合成(例えば、α合成)することで、図2に示すようなゲーム画像を生成する。
2−7.自機とマーカーの位置関係の判定
また、自機PCの位置がマーカーMK内に入っているか否かの判定(自機PCとマーカーMKの位置関係が所定の条件を満たすか否かの判定)もスクリーン座標系において行う。すなわち、自機PCの3次元座標P3Dを、交点ISの座標と同様に、仮想平面VPを投影面とするスクリーン座標系における2次元座標P2D(図10参照)に変換し、この自機PCの2次元座標P2D交点ISの2次元座標(マーカーMKの中心座標)、半径rに基づいて、自機PCの2次元座標P2DがマーカーMKの表示範囲内にあるか否かを判定する。
そして、判定結果に基づいて、マーカーMKにゲージGAを表示する処理、ゲージGAの値を増加又は減少させる処理、ゲージGAの値をリセットする処理、ゲージGAの値に基づきロックオン状態となったか否かを判定する処理、ロックオン状態になった場合に敵機NPCから誘導ミサイルを発射する処理等のゲーム演算を行う。
このように、2次元座標系において自機PCとマーカーMKの位置関係の判定を行うことで、3次元座標系において位置関係の判定を行う場合に比べて処理負荷を抑えることができる。
また、マーカーMKの描画と、自機PCとマーカーMKの位置関係の判定とを同じ2次元座標系において行うことで、自機PCとマーカーのMKの視覚上の位置関係と位置関係の判定結果とを一致させることができ(ゲーム画面上で自機PCがマーカーMK内に位置する場合には、必ず、自機PCの位置がマーカーMK内に入っていると判定される)、見た目に違和感のないゲーム画像を生成することができる。
また、本実施形態では、自機PCが前回位置予測時から現在までの動きと同じ動きをすると仮定して自機PCの予測位置を算出し、算出された予測位置に基づき仮想線分VSの向きを算出し、算出された仮想線分VSの向きにマーカーMKが表示される。
従って、プレーヤが、自機PCを同一の速度(速さ、向き)で移動させる操作(例えば、自機PCを同一の速さで直進させ続ける操作、自機PCを同一方向に旋回、上昇、又は下降させ続ける操作)を行った場合には、予測位置と自機PCの位置の誤差が小さくなる(且つ、位置予測の時間間隔が短くなることで予測が更に当たり易くなる)ため、マーカーMKが自機PCに近づき、自機PCがマーカーMK内に捉えられることになる。
一方、プレーヤが、自機PCの速度(速さ、向き)を変更する操作(例えば、自機PCが直進している場合に自機PCを旋回、上昇、下降、加速させる操作、又は自機PCの旋回方向を変更する操作)を継続して行った場合には、予測位置と自機PCの位置の誤差が大きくなる(且つ、位置予測の時間間隔が長くなることで予測が更に外れやすくなる)ため、マーカーMKは自機PCから遠ざかり、自機PCはマーカーMKによる捕捉を回避することができる。
すなわち、本実施形態によれば、プレーヤの操作に基づき変化する自機PCの挙動に応じて、自機PCに対するマーカーMKの挙動を変化させることができ、プレーヤは、自機PCを急旋回させる等の操作を行うことで、自機PCがマーカーMK内に捉えられることを避けるといったゲームプレイを楽しむことができる。
なお本実施形態では、自機PCが敵機NPCを追尾する「追う側近接戦闘モード」時には、敵機NPCに対するマーカーが表示されるが、敵機NPCの位置予測は行われず、図11に示すように、仮想線分VSの向きは、自機PCの向き(機首方向)となり、この仮想線分VSの向きにマーカーMKが表示される。すなわち、自機PCの向きに延びる仮想線分VSと仮想平面VPの交点ISの座標(2次元座標)がマーカーMKの中心座標となる。
ここで、敵機NPCが自機PCを追尾する「逃げ側近接戦闘モード」時においても、「追う側近接戦闘モード」時と同様に、自機PCの位置予測を行わずに、ノンプレーヤキャラクタである敵機NPCの向き(機首方向)にマーカーMKを表示させようとすると、ゲーム画面内にマーカーMKが表示される可能性(自機PCがマーカーMK内に位置する可能性)が非常に低く、自機PCがマーカーMK内に捉えられることを避けるというゲームプレイを提供できないことがわかった。
そこで、本実施形態では、「逃げ側近接戦闘モード」時においては、敵機NPCの向きとは関係なく、自機PCの予測位置に基づき求められた仮想線分VSの向きにマーカーMKを表示するように制御している。これにより、自機PCがノンプレーヤキャラクタである敵機NPCに追尾される状況において、自機PCがマーカーMK内に捉えられることを避けるというゲームプレイを提供することができる。
2−8.近接戦闘モードの発動条件
本実施形態では、自機PCと敵機NPCの位置関係が所定のモード発動条件を満たしたか否かを判定し、所定のモード発動条件を満たしたと判定された場合に、近接戦闘モードが発動される。
図12に示すように、自機PCには、円錐形状の第1の判定領域JA1と、球形状の第2の判定領域JA2が設定されている。同様に、敵機NPCには、円錐形状の第1の判定領域JA1と、球形状の第2の判定領域JA2が設定されている。第1の判定領域JA1、JA1は、機体(自機PC、敵機NPC)の前方に広がるように設定され、第2の判定領域JA2、JA2は、球形状の領域の中心が機体の後方に位置するように設定されている。自機PCと敵機NPCに設定される各判定領域は、各機体の特性(属性)によって、機体に対する設定位置や形状が異なるようにしてもよい。
本実施形態では、自機PCの第2の判定領域JA2内に敵機NPCが位置し、且つ敵機NPCの第1の判定領域JA1内に自機PCが位置する場合(図12に示す場合)には、自機PCの後方に敵機NPCが接近していると判定され、「逃げ側近接戦闘モード」が発動される。一方、敵機NPCの第2の判定領域JA2内に自機PCが位置し、且つ自機PCの第1の判定領域JA1内に敵機NPCが位置する場合には、自機PCの前方に敵機NPCが接近していると判定され、「追う側近接戦闘モード」が発動される。
ここでは、自機PCに設定された判定領域と敵機NPCに設定された判定領域とを用いて位置関係の判定を行っているが、自機PCと敵機NPCのいずれか一方に設定された判定領域のみを用いて位置関係の判定を行うようにしてもよい。
また自機PCと敵機NPCの距離が所定の値以下になった場合に、モード発動条件を満たしたと判定するようにしてもよい。また、自機PCと敵機NPCとがオブジェクト空間に設定された所定の領域(特殊なエリア)に入った場合に、モード発動条件を満たしたと判定するようにしてもよい。また、プレーヤによって所定の操作入力が行われた場合又は所定のゲームアイテムが使用された場合に、モード発動条件を満たしたと判定するようにしてもよい。
3.処理
次に、本実施形態のゲーム装置の処理の一例について図13、図14のフローチャートを用いて説明する。ここでは、「逃げ側近接戦闘モード」における、自機PCに対するマーカーMKの表示制御について説明する。
まず、マーカー表示制御部114は、自機PCの位置予測用のタイマーを更新する(図13のステップS10)。次に、タイマーの値に基づき位置予測のタイミングになったか否か(タイマーの値tが、位置予測の時間間隔Tに達したか否か)を判断する(ステップS12)。
ステップS12の処理において、位置予測のタイミングになったと判断した場合には、
マーカー表示制御部114は、前回予測時の自機PCの位置を始点とし、現在の自機PCの位置を終点とするベクトルV1と、前回予測時の自機PCの位置P1を始点とし、前回の予測位置を終点とするベクトルV2とのなす角度θを算出する(ステップS14)。ここで、タイマーの値tがTに達した場合にはタイマーの値tはリセット(t=0)される。また、ステップS12の処理において、位置予測のタイミングになっていないと判断した場合には、ステップS24の処理に進む。
次に、マーカー表示制御部114は、ステップS14の処理において算出した角度θが所定の第1の角度θ以下であるか否かを判断し(ステップS16)、第1の角度θ以下であると判断した場合には、位置予測の時間間隔Tを所定時間ΔTだけ短くする(ステップS18)。ここで、時間間隔Tを短くした結果、時間間隔Tが所定の最小値TMIN以下となる場合には、時間間隔Tに最小値TMINをセットする。
ステップS16の処理において第1の角度θ以下でないと判断した場合には、角度θが所定の第2の角度θ(θ<θ)以上であるか否かを判断し(ステップS19)、第2の角度θ以上であると判断した場合には、位置予測の時間間隔Tに所定の最大値TMAX(デフォルト値)をセットすることで時間間隔Tをリセットする(ステップS20)。第2の角度θ以上でないと判断した場合には、時間間隔Tを変更せずにステップS22の処理に進む。
次に、マーカー表示制御部114は、前回予測時の自機PCの位置及び向きと現在の自機PCの位置とに基づき自機PCのローカル座標における移動ベクトルV3を算出し、算出した移動ベクトルV3と現在の自機PCの位置及び向きに基づいて自機PCの予測位置を算出する(ステップS22)。
次に、マーカー表示制御部114は、今回算出された予測位置と前回算出された予測位置とをタイマーの値tに応じて線形補間することで、敵機NPCの位置を始点とする仮想線分の向きDSを算出する(ステップS24)。
次に、マーカー表示制御部114は、自機PCの座標が存在し、仮想カメラVCの視線ベクトルEVが法線となる仮想平面VPを算出し(ステップS26)、敵機NPCの位置を始点とし仮想線分の向きDSに所定距離延びる仮想線分VSを算出する(ステップS28)。
次に、マーカー表示制御部114は、仮想平面VPと仮想線分VSの交点ISの3次元座標を算出し、(ステップS30)、交点ISの3次元座標と自機PCの3次元座標とを、それぞれ、仮想平面VPを投影面とするスクリーン座標系(2次元座標系)における2次元座標に変換する(ステップS32)。
次に、マーカー表示制御部114は、オブジェクト空間における自機PCと敵機NPC間の距離に基づいて、2次元座標系におけるマーカーMKの半径rを算出する(図14のステップS34)。ここで、自機PCに設定された機体パラメータや、プレーヤによる操作、或いはゲームの難易度、プレーヤの経験値に基づき半径rを算出してもよい。
次に、ゲーム演算部116は、ステップS32の処理で算出された交点IS及び自機PCの2次元座標と、ステップS34の処理で算出された半径rに基づいて、2次元座標系において、自機PCの2次元座標が、交点ISの2次元座標を中心座標とする半径rのマーカーMK内に入っているか否かを判定する(ステップS36)。
ステップS36の処理において、自機PCの座標がマーカーMK内に入っていると判定された場合には、ゲーム演算部116は、ゲージGAの値を所定の値だけ増加させる処理を行い(ステップS38)、ゲージGAの値が所定の値(最大値)に達したか否かを判断し(ステップS42)、所定の値に達したと判断した場合には、敵機NPCから特殊な誘導ミサイルを発射させる(特殊武器を発動する)ためのゲーム演算を行うステップS44。なお、ゲージGAの値が最大値に達した場合には、ゲージGAの値はリセットされる。ステップS36の処理において、自機PCの座標がマーカーMK内に入っていないと判断した場合には、ゲージGAの値をリセットし(又はゲージGAの値を所定値だけ減少させ)(ステップS40)、ステップS46の処理に進む。
次に、マーカー表示制御部114は、交点ISの2次元座標を中心座標とする半径rのマーカーMKを描画するための処理を行う(ステップS46)。また、ゲージの値がリセットされていない場合には、マーカーMKにゲージGAを表示するための処理を行う。
次に、処理を続けるか否かを判断し(ステップS48)、処理を続ける場合には、ステップS10の処理に進み、ステップS10以降の処理を繰り返す。
4.変形例
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
例えば、上記実施形態では、仮想線分と仮想平面の交点の3次元座標を2次元座標に変換して、この交点に2次元座標に基づきマーカーの表示位置を決定する場合について説明したが、仮想線分と仮想平面の交点の3次元座標に基づいて、マーカーを示すマーカーオブジェクトをオブジェクト空間に配置するようにしてもよい。
例えば、図15(A)に示すように、リング形状の複数のポリゴンからなるオブジェクトを、マーカーオブジェクトMOとしてオブジェクト空間に配置するようにしてもよい。また、図15(B)に示すように、板状のポリゴンからなるオブジェクトにリング状のマーカーを表すテクスチャTEXをマッピングしたオブジェクトを、マーカーオブジェクトMOとしてオブジェクト空間に配置するようにしてもよい。この場合には、自機PCと敵機NPCの距離等に基づきマーカーオブジェクトMOを拡縮処理することで、距離等に基づくマーカーの大きさ制御を行えばよい。
ここで、マーカーオブジェクトMOを、仮想線分と仮想平面の交点の3次元座標が、マーカーオブジェクトMOの中心座標となり、且つ仮想平面とマーカーオブジェクトMOとが平行になるように(マーカーオブジェクトMOが仮想カメラに対して正面を向くように)配置するようにしてもよい。この場合においても、自機PCとマーカーの位置関係の判定は、上記実施形態と同様に、2次元座標系における交点ISの2次元座標と自機PCの2次元座標とに基づき行うようにしてもよい。
また、図16に示すように、マーカーオブジェクトMOを、仮想平面VPから仮想カメラVCに向けて垂直に所与の距離dだけオフセットして配置するようにしてもよい。このように、マーカーオブジェクトMOを、ターゲットとなる自機PCと敵機NPCと間に配置することで、自機PCが背後から迫る敵機NPCの誘導ミサイルに狙われている様子を見た目に違和感なく表現することができる。
また、図15(C)に示すように、ゲージGAを示すゲージオブジェクトGOを、マーカーオブジェクトMOとともにオブジェクト空間に配置するようにしてもよい。マーカーオブジェクトMOとゲージオブジェクトGOとをオブジェクト空間に配置する際には、ゲージオブジェクトGOを、マーカーオブジェクトMOよりも仮想カメラVCから見て手前側に配置するようにしてもよい。このようにすると、特に立体視の手法(左目用のゲーム画像と右目用の画像を生成する手法)を用いてゲーム画像を生成する場合に、ゲージオブジェクトGOを視認し易くすることができる。
また、マーカーオブジェクトMOを、自機PCと敵機NPCとの間に配置した場合には、仮想カメラVCの位置によっては、マーカーオブジェクトMOの全部又は一部が敵機NPCに隠れてしまう。そこで、図17に示すように、マーカーオブジェクトMOが敵機NPCと重なった場合には、敵機NPCのマーカーオブジェクトMOと重なる部分PTについては半透明で描画し、敵機NPCの奥側にあるマーカーオブジェクトが透けて見えるようにしてもよい。また、マーカーオブジェクトMOの重なる部分PTについて、その他の部分とは異なる色で描画するようにしてもよい。また、マーカーオブジェクトMOについては、敵機NPCによって陰面消去されないように描画するようにしてもよい。このようにすると、マーカーオブジェクトMOが敵機NPCと重なる状況であっても、プレーヤは自機PCに対するマーカーMOを確実に視認することができる。
また、上記実施形態では、プレーヤキャラクタである自機を第1のオブジェクトとし、NPCである敵機を第2のオブジェクトとする場合について説明したが、NPC又は他のプレーヤキャラクタである敵機を第1のオブジェクトとし、プレーヤキャラクタである自機を第2のオブジェクトとするようにしてもよい。すなわち、敵機の予測位置を算出し、この予測位置に基づき仮想線分の向きを算出し、この仮想線分の向きに敵機に対するマーカーを表示するようにしてもよい。このようにすると、初心者等のプレーヤでも敵機をマーカー内に捉え易くすることができる。
100 処理部、110 オブジェクト空間設定部、112 移動・動作処理部(移動制御部)、114 マーカー表示制御部、116 ゲーム演算部、118 仮想カメラ制御部、120 描画部(画像生成部)、160 操作部、170 記憶部、180 情報記憶媒体、190 表示部、192 音出力部、196 通信部

Claims (12)

  1. 画像を生成するためのプログラムであって、
    第1及び第2のオブジェクトをオブジェクト空間内で移動させる移動制御を行う移動制御部と、
    前記第1のオブジェクトの移動履歴に基づき所与の時間経過後の前記第1のオブジェクトの予測位置を求め、前記予測位置と前記第2のオブジェクトの位置とに基づいて、前記第1のオブジェクトに対するマーカーを表示する制御を行うマーカー表示制御部と、
    前記マーカーと前記第1のオブジェクトの位置関係に基づいて、ゲーム演算を行うゲーム演算部と、
    オブジェクト空間を所与の視点からみた画像を生成する画像生成部としてコンピュータを機能させることを特徴とするプログラム。
  2. 請求項1において、
    前記第1のオブジェクトは、プレーヤキャラクタであり、前記第2のオブジェクトは、ノンプレーヤキャラクタであることを特徴とするプログラム。
  3. 請求項1又は2において、
    前記マーカー表示制御部が、
    前記第1のオブジェクトと前記第2のオブジェクト間の距離に基づいて、前記マーカーの大きさ、形状及び色の少なくとも1つを変化させることを特徴とするプログラム。
  4. 請求項1乃至3のいずれかにおいて、
    前記マーカー表示制御部が、
    所与の時間間隔毎に前記予測位置を求め、時刻tにおける前記第1のオブジェクトの位置と、時刻tについて求めた前記予測位置とに基づいて、前記予測位置を求める時間間隔を変化させることを特徴とするプログラム。
  5. 請求項1乃至4のいずれかにおいて、
    前記マーカー表示制御部が、
    前記第2のオブジェクトの座標を通る仮想線分であって前記予測位置に基づきその向きが決定される仮想線分と、前記視点の向きと前記第1のオブジェクトの位置とに基づき決定される仮想平面との交点の座標に基づいて、前記マーカーの表示位置を決定することを特徴とするプログラム。
  6. 請求項5において、
    前記マーカー表示制御部が、
    前記仮想線分と前記仮想平面の交点の3次元座標を2次元座標に変換し、得られた前記交点の2次元座標に基づいて、前記マーカーの表示位置を決定することを特徴とするプログラム。
  7. 請求項5において、
    前記マーカー表示制御部が、
    前記仮想線分と前記仮想平面の交点の3次元座標に基づいて、前記マーカーを示すオブジェクトをオブジェクト空間に配置することを特徴とするプログラム。
  8. 請求項7において、
    前記マーカー表示制御部が、
    前記マーカーを示すオブジェクトを、前記第1のオブジェクトと前記第2のオブジェクトの間に配置することを特徴とするプログラム。
  9. 請求項5乃至8のいずれかにおいて、
    前記ゲーム演算部が、
    前記仮想線分と前記仮想平面の交点の座標と、前記第1のオブジェクトの座標とに基づいて、前記マーカーと前記第1のオブジェクトの位置関係が所定の条件を満たすか否かを判定し、判定結果に基づきゲーム演算を行うことを特徴とするプログラム。
  10. 請求項1乃至9のいずれかにおいて、
    前記マーカー表示制御部が、
    前記第1のオブジェクトと前記第2のオブジェクトの位置関係が所定の条件を満たす場合に、前記マーカーを表示する制御を行うことを特徴とするプログラム。
  11. コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至10のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
  12. 第1及び第2のオブジェクトをオブジェクト空間内で移動させる移動制御を行う移動制御部と、
    前記第1のオブジェクトの移動履歴に基づき所与の時間経過後の前記第1のオブジェクトの予測位置を求め、前記予測位置と前記第2のオブジェクトの位置とに基づいて、前記第1のオブジェクトに対するマーカーを表示する制御を行うマーカー表示制御部と、
    前記マーカーと前記第1のオブジェクトの位置関係に基づいて、ゲーム演算を行うゲーム演算部と、
    オブジェクト空間を所与の視点からみた画像を生成する画像生成部とを含むことを特徴とする画像生成システム。
JP2010134498A 2010-06-11 2010-06-11 プログラム、情報記憶媒体及び画像生成システム Withdrawn JP2011255114A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010134498A JP2011255114A (ja) 2010-06-11 2010-06-11 プログラム、情報記憶媒体及び画像生成システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010134498A JP2011255114A (ja) 2010-06-11 2010-06-11 プログラム、情報記憶媒体及び画像生成システム

Publications (1)

Publication Number Publication Date
JP2011255114A true JP2011255114A (ja) 2011-12-22

Family

ID=45471956

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010134498A Withdrawn JP2011255114A (ja) 2010-06-11 2010-06-11 プログラム、情報記憶媒体及び画像生成システム

Country Status (1)

Country Link
JP (1) JP2011255114A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020018792A (ja) * 2018-08-03 2020-02-06 株式会社コーエーテクモゲームス 情報処理装置、位置予測方法及び位置予測プログラム
CN110960849A (zh) * 2019-11-28 2020-04-07 腾讯科技(深圳)有限公司 互动道具控制方法、装置、终端及存储介质
JP2023048792A (ja) * 2021-09-28 2023-04-07 株式会社Cygames 情報処理装置、プログラム及び描画方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020018792A (ja) * 2018-08-03 2020-02-06 株式会社コーエーテクモゲームス 情報処理装置、位置予測方法及び位置予測プログラム
JP7175124B2 (ja) 2018-08-03 2022-11-18 株式会社コーエーテクモゲームス 情報処理装置、位置予測方法及び位置予測プログラム
CN110960849A (zh) * 2019-11-28 2020-04-07 腾讯科技(深圳)有限公司 互动道具控制方法、装置、终端及存储介质
CN110960849B (zh) * 2019-11-28 2021-10-26 腾讯科技(深圳)有限公司 互动道具控制方法、装置、终端及存储介质
JP2023048792A (ja) * 2021-09-28 2023-04-07 株式会社Cygames 情報処理装置、プログラム及び描画方法
JP7352603B2 (ja) 2021-09-28 2023-09-28 株式会社Cygames 情報処理装置、プログラム及び描画方法

Similar Documents

Publication Publication Date Title
JP5614956B2 (ja) プログラム、画像生成システム
JP5390115B2 (ja) プログラム、ゲームシステム
JP5161256B2 (ja) プログラム、情報記憶媒体、及び、画像生成装置
JP5597837B2 (ja) プログラム、情報記憶媒体、及び、画像生成装置
JP5300777B2 (ja) プログラム及び画像生成システム
US9345972B2 (en) Information storage medium, image generation system, and image generation method
JP2012210243A (ja) プログラム、情報記憶媒体、端末、及びサーバ
JP3747050B1 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP2011053838A (ja) プログラム、情報記憶媒体、及び、画像生成装置
JP6725248B2 (ja) ゲーム装置及びプログラム
JP5443129B2 (ja) プログラム及びネットワークシステム
JP2023115237A (ja) ゲームシステム、プログラム及びゲーム提供方法
JP7223530B2 (ja) プログラム、サーバ装置、ゲーム装置及びゲーム提供方法
JP4363595B2 (ja) 画像生成装置及び情報記憶媒体
JP2012215934A (ja) プログラム、情報記憶媒体、端末、及びサーバ
JP2011255114A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2012252659A (ja) プログラム、情報記憶媒体、及びサーバ
JP4114825B2 (ja) 画像生成装置及び情報記憶媒体
JP5597869B2 (ja) プログラム、情報記憶媒体、及び、画像生成装置
JP2008067853A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4420729B2 (ja) プログラム、情報記憶媒体および画像生成システム
JP2011096017A (ja) プログラム、情報記憶媒体、及び端末
JP2006263321A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP2006288951A (ja) ゲーム装置及びゲーム制御方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130903