JP2009207624A - プログラム、情報記憶媒体、及び画像生成システム - Google Patents
プログラム、情報記憶媒体、及び画像生成システム Download PDFInfo
- Publication number
- JP2009207624A JP2009207624A JP2008052462A JP2008052462A JP2009207624A JP 2009207624 A JP2009207624 A JP 2009207624A JP 2008052462 A JP2008052462 A JP 2008052462A JP 2008052462 A JP2008052462 A JP 2008052462A JP 2009207624 A JP2009207624 A JP 2009207624A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- movement
- group
- movement control
- information
- 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
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
【課題】群のスムーズな動きを実現可能なプログラム、情報記憶媒体及び画像生成システムを提供すること。
【解決手段】本プログラムは、複数のユニットの集合であるグループの移動制御情報を演算するグループ移動制御部122と、グループ移動制御情報及び各ユニットのポジション情報に基づき各ユニットの移動制御情報を演算するユニット移動制御部124と、画像生成部としてコンピュータを機能させ、ユニット移動制御部124は、所定の移動イベントが発生した場合、グループ内の複数のユニットについて移動後のポジションの入れ替え処理を行うユニットポジションの入れ替え処理部を含み、入れ替え後のポジションに対応した移動位置に移動させるためのユニット移動制御情報を演算する。
【選択図】図23
【解決手段】本プログラムは、複数のユニットの集合であるグループの移動制御情報を演算するグループ移動制御部122と、グループ移動制御情報及び各ユニットのポジション情報に基づき各ユニットの移動制御情報を演算するユニット移動制御部124と、画像生成部としてコンピュータを機能させ、ユニット移動制御部124は、所定の移動イベントが発生した場合、グループ内の複数のユニットについて移動後のポジションの入れ替え処理を行うユニットポジションの入れ替え処理部を含み、入れ替え後のポジションに対応した移動位置に移動させるためのユニット移動制御情報を演算する。
【選択図】図23
Description
本発明は、プログラム、情報記憶媒体、及び画像生成システムに関する。
近年、仮想的な3次元空間(以下、「オブジェクト空間」という。)に配置設定されたキャラクタなどのオブジェクトを、仮想カメラ(所与の視点)に基づく所定の画像として生成する画像生成システムが実用化されている。このような画像生成システムは、仮想現実を体験させることができるものとして様々なシステムにて用いられるようになっており、特に、ゲームシステムにおいては、娯楽性および興趣性を向上させるためものとして重要視されている。
このようなゲームシステムにおいては、複数の移動体オブジェクトから構成される群(グループ)、すなわち、オブジェクトのグループを用い、当該オブジェクトのグループに対して種々の移動制御を行うようになっている。
特開2000−172868号公報
しかしながら、上述のような画像生成システムにあっては、群が方向転換をともなう移動を行う際の動きが、不必要に大回りになったり、個々の移動体オブジェクト動きが複雑になったりしてスムーズな動きが表現できない場合がある。
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、群のスムーズな動きを実現可能なプログラム、情報記憶媒体及び画像生成システムを提供することにある。
(1)本発明は、
オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
複数のユニットの集合であるグループの移動を制御するためのグループ移動制御情報を演算するグループ移動制御部と、
前記グループ移動制御情報及び当該グループ内における各ユニットの配置位置を示すポジション情報に基づき各ユニットの移動を制御するためのユニット移動制御情報を演算するユニット移動制御部と、
前記ユニット移動制御情報に基づき複数のユニットをオブジェクト空間に配置して、仮想カメラから見た前記オブジェクト空間の画像を生成する画像生成部と、してコンピュータを機能させ、
前記ユニット移動制御部は、
所定の移動イベントが発生した場合、グループ内の複数のユニットについて移動後のポジションの入れ替え処理を行うユニットポジションの入れ替え処理部を含み、
入れ替え後のポジションに対応した移動位置に移動させるためのユニット移動制御情報を演算するプログラムに関係する。
オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
複数のユニットの集合であるグループの移動を制御するためのグループ移動制御情報を演算するグループ移動制御部と、
前記グループ移動制御情報及び当該グループ内における各ユニットの配置位置を示すポジション情報に基づき各ユニットの移動を制御するためのユニット移動制御情報を演算するユニット移動制御部と、
前記ユニット移動制御情報に基づき複数のユニットをオブジェクト空間に配置して、仮想カメラから見た前記オブジェクト空間の画像を生成する画像生成部と、してコンピュータを機能させ、
前記ユニット移動制御部は、
所定の移動イベントが発生した場合、グループ内の複数のユニットについて移動後のポジションの入れ替え処理を行うユニットポジションの入れ替え処理部を含み、
入れ替え後のポジションに対応した移動位置に移動させるためのユニット移動制御情報を演算するプログラムに関係する。
また本発明は、上記各部を含む画像生成システムに関係する。
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
移動イベントは、例えばユーザーの移動位置指定の入力により発生するようにしてもよい。
ここにおいてユニットとはオブジェクトまたはオブジェクト群によって構成されてもよい。
グループとは群れをなして移動する複数のユニットの集合であって、例えば隊列を組んで移動する戦闘機群や飛行機群や宇宙船群や潜水艦群や自動車群でもよいし、群れをなして移動する群衆や動物群や鳥群や魚群等でもよい。
各オブジェクトは、ユニット内において所定のポジションを与えられており、所定のポジションを維持するように移動してもよい。移動時には常に所定のポジションに対応した位置をキープして移動する場合に限られず、各オブジェクトの移動特性に従って所定のポジションを目標位置に対応した位置を目標位置として移動する場合でもよい。
本発明によれば、群のスムーズな動きを実現可能なプログラム、情報記憶媒体及び画像生成システムを提供することができる。
(2)このプログラム、情報記憶媒体、画像生成システムは、
前記ユニットポジションの入れ替え処理部は、
ポジションの入れ替えが可能に設定されたユニット群について移動後のポジションの入れ替え処理を行ってもよい。
前記ユニットポジションの入れ替え処理部は、
ポジションの入れ替えが可能に設定されたユニット群について移動後のポジションの入れ替え処理を行ってもよい。
(3)このプログラム、情報記憶媒体、画像生成システムは、
前記ユニットポジションの入れ替え処理部は、
所与のユニットが複数のポジションを取り得る場合には、前記ポジションに基づき所与のユニットのとり得る複数のポジションに対応した移動後の位置を求め、移動前の所与のユニットの位置と所与のユニットのとり得る複数のポジションに対応した移動後の位置との距離に基づき、所与のユニットの移動後のポジションを決定してもよい。
前記ユニットポジションの入れ替え処理部は、
所与のユニットが複数のポジションを取り得る場合には、前記ポジションに基づき所与のユニットのとり得る複数のポジションに対応した移動後の位置を求め、移動前の所与のユニットの位置と所与のユニットのとり得る複数のポジションに対応した移動後の位置との距離に基づき、所与のユニットの移動後のポジションを決定してもよい。
移動後の入れ替え可能位置が複数ある場合に、移動距離に基づき移動後のポジションを決定してもよい。ここにおいて移動距離が短いポジションを優先して選択してもよいし、移動距離が最も短いポジションを選択してもよい。
このようにするとポジション入れ替えのための移動距離が短くなるので、スムーズなポジション入れ替えを実現することができる。
(4)このプログラム、情報記憶媒体、画像生成システムは、
前記ユニットポジションの入れ替え処理部は、
グループ内にポジションの入れ替え可能な複数のユニットが存在する場合には、前記複数のユニットに対して設定された優先順位に従って、優先順位の高いユニットから順に移動後のポジションを決定してもよい。
前記ユニットポジションの入れ替え処理部は、
グループ内にポジションの入れ替え可能な複数のユニットが存在する場合には、前記複数のユニットに対して設定された優先順位に従って、優先順位の高いユニットから順に移動後のポジションを決定してもよい。
(5)このプログラム、情報記憶媒体、画像生成システムは、
前記ユニットポジションの入れ替え処理部は、
グループ内に配置するユニットの入れ替えが可能な複数のポジションが存在する場合には、入れ替えが可能な複数のポジションに対して設定された優先順位に従って、優先順位の高いポジションから順に移動後に配置されるユニットを決定してもよい。
前記ユニットポジションの入れ替え処理部は、
グループ内に配置するユニットの入れ替えが可能な複数のポジションが存在する場合には、入れ替えが可能な複数のポジションに対して設定された優先順位に従って、優先順位の高いポジションから順に移動後に配置されるユニットを決定してもよい。
(6)このプログラム、情報記憶媒体、画像生成システムは、
前記ユニットポジションの入れ替え処理部は、
移動後のポジションとユニットの対応関係が複数存在する場合には、各対応関係における入れ替え可能な各ユニットの予想移動距離の合計に基づき移動後のポジションとユニットの対応関係を決定し、決定した対応関係に従って、移動後に各ポジションに配置されるユニットを決定してもよい。
前記ユニットポジションの入れ替え処理部は、
移動後のポジションとユニットの対応関係が複数存在する場合には、各対応関係における入れ替え可能な各ユニットの予想移動距離の合計に基づき移動後のポジションとユニットの対応関係を決定し、決定した対応関係に従って、移動後に各ポジションに配置されるユニットを決定してもよい。
移動後のポジションとユニットの対応関係が複数存在する場合とは、入れ替え可能なポジションとユニットの対応関係が複数存在する場合である。かかる場合には、移動後のポジションとユニットの対応関係が前記複数の対応関係のいずれかをとることになるので、それぞれをとる場合について、入れ替え可能な各ユニットの予想移動距離の合計を求め、この合計に基づき移動後のポジションとユニットの対応関係を決定してもよい。
例えばグループ内に、配置するユニットの入れ替えが可能な複数のポジションP1、P2、P3があり、これらの複数のポジションP1、P2、P3を取り得る複数のユニットU1、U2、U3がある場合には、入れ替え可能なポジションとユニットの対応関係としてA(P1−U1、P2−U2、P3−U3)、B(P1−U1、P2−U3、P3−U2)、C(P1−U2、P2−U3、P3−U1)、D(P1−U2、P2−U1、P3−U3)、E(P1−U3、P2−U1、P3−U3)、F(P1−U3、P2−U2、P3−U1)の6通りの対応関係(順列)が考えられる。例えば移動前のポジションとユニットの対応関係がAであった場合、移動後のポジションとユニットの対応関係はA〜Fの6通りのいずれかのを取り得る。従って移動後のポジションとユニットの対応関係がA〜Fである場合の、各ユニットU1〜U3の移動後の位置を求め、移動前の位置と移動後の位置の距離に基づき各ユニットの予想移動距離を求め、これらを合計して各ユニットの予想移動距離の合計を求めても良い。
(7)このプログラム、情報記憶媒体、画像生成システムは、
前記ユニット移動制御部は、
各グループに対して設定可能な複数の陣形について、各陣形におけるポジションの配置パターンに関する情報である陣形情報を記憶し、各グループに対して設定されている陣形に対応付けて記憶されている陣形情報に基づきグループ内における各ユニットの配置位置を決定してもよい。
前記ユニット移動制御部は、
各グループに対して設定可能な複数の陣形について、各陣形におけるポジションの配置パターンに関する情報である陣形情報を記憶し、各グループに対して設定されている陣形に対応付けて記憶されている陣形情報に基づきグループ内における各ユニットの配置位置を決定してもよい。
ポジションの配置パターンが異なるとは、陣形を構成するポジションの数や各ポジションの配置位置等が異なる場合を意味する。
(8)このプログラム、情報記憶媒体、画像生成システムは、
前記ユニット移動制御部は、
各グループに対応付け可能な所定のパラメータの値が所定の条件を満たす場合には各グループに対して設定された陣形に従ってグループ内の各ユニットの配置位置を決定してもよい。
前記ユニット移動制御部は、
各グループに対応付け可能な所定のパラメータの値が所定の条件を満たす場合には各グループに対して設定された陣形に従ってグループ内の各ユニットの配置位置を決定してもよい。
所定の条件を満たさない場合には、各グループに対して設定された陣形に従わずにグループ内の各ユニットの配置位置を決定してもよい。
各グループに対応付け可能な所定のパラメータとは、各グループ単位で設定されているパラメータでもよいし、各グループに属するユニット単位または各グループに属するオブジェクト単位で設定されているパラメータでもよい。
所定のパラメータとは例えば士気パラメータであり、各ユニットや各ユニットに属するオブジェクト等のダメージや、各ユニットやグループや移動体オブジェクト等と敵との配置状況等に応じて設定されるようにしてもよい。
(9)このプログラム、情報記憶媒体、画像生成システムは、
各グループに対応付け設定されている司令官情報に基づき、各グループに対する陣形の設定を行う陣形設定部をさらに含んでもよい。
各グループに対応付け設定されている司令官情報に基づき、各グループに対する陣形の設定を行う陣形設定部をさらに含んでもよい。
例えば司令官情報として各司令官が取り得る陣形種別が設定されている構成でもよい。また司令官情報として各司令官の属性が設定され、属性に応じて取り得る陣形種別が定義されている構成でもよい。
前記陣形設定部は、
各グループに取らせたい陣形の種別を選択する陣形選択情報を受け付け、受け付けた陣形選択情報の可否(選択された陣形種別を採用の可否)を、各グループに対応付け設定されている司令官情報に基づき判断してもよい。
各グループに取らせたい陣形の種別を選択する陣形選択情報を受け付け、受け付けた陣形選択情報の可否(選択された陣形種別を採用の可否)を、各グループに対応付け設定されている司令官情報に基づき判断してもよい。
(10)このプログラム、情報記憶媒体、画像生成システムは、
前記グループ移動制御部が、
操作入力情報に基づいて、前記グループの目標移動位置を決定し、当該目標移動位置に前記グループを移動させるためのグループ移動制御情報を演算し、
前記ユニット移動制御部が、
各ユニットが属するグループの目標移動位置及び当該グループ内における各ユニットのポジション情報に基づいて各ユニットの目標移動位置を決定し、当該目標移動位置に各ユニットを移動させるためのユニット移動制御情報を演算してもよい。
前記グループ移動制御部が、
操作入力情報に基づいて、前記グループの目標移動位置を決定し、当該目標移動位置に前記グループを移動させるためのグループ移動制御情報を演算し、
前記ユニット移動制御部が、
各ユニットが属するグループの目標移動位置及び当該グループ内における各ユニットのポジション情報に基づいて各ユニットの目標移動位置を決定し、当該目標移動位置に各ユニットを移動させるためのユニット移動制御情報を演算してもよい。
操作入力情報に基づいて、前記グループの移動先の目標位置を決定するようにしてもよい。
(11)このプログラム、情報記憶媒体、画像生成システムは、
前記ユニット移動制御情報及び当該ユニット内における各オブジェクトの配置位置を示すポジション情報に基づき各オブジェクトの移動を制御するためのオブジェクト移動制御情報を演算するオブジェクト移動制御部をさらに含み、
前記ユニット制御部は、
複数のオブジェクトの集合であるユニットの移動を制御するためのユニット移動制御情報を演算し、
前記画像生成部は、
前記オブジェクト移動制御情報に基づき複数のオブジェクトをオブジェクト空間に配置して、仮想カメラから見た前記オブジェクト空間の画像を生成してもよい。
前記ユニット移動制御情報及び当該ユニット内における各オブジェクトの配置位置を示すポジション情報に基づき各オブジェクトの移動を制御するためのオブジェクト移動制御情報を演算するオブジェクト移動制御部をさらに含み、
前記ユニット制御部は、
複数のオブジェクトの集合であるユニットの移動を制御するためのユニット移動制御情報を演算し、
前記画像生成部は、
前記オブジェクト移動制御情報に基づき複数のオブジェクトをオブジェクト空間に配置して、仮想カメラから見た前記オブジェクト空間の画像を生成してもよい。
(12)このプログラム、情報記憶媒体、画像生成システムは、
前記オブジェクト移動制御部が、
各オブジェクトが属するユニットの目標移動位置及び当該ユニット内における各オブジェクトのポジション情報に基づいて各オブジェクトの目標移動位置を決定し、当該目標移動位置に各オブジェクトを移動させるためのオブジェクト移動制御情報を演算してもよい。
前記オブジェクト移動制御部が、
各オブジェクトが属するユニットの目標移動位置及び当該ユニット内における各オブジェクトのポジション情報に基づいて各オブジェクトの目標移動位置を決定し、当該目標移動位置に各オブジェクトを移動させるためのオブジェクト移動制御情報を演算してもよい。
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.構成
図1に本実施形態のゲームシステムの機能ブロック図の例を示す。なお本実施形態のゲームシステムは図1の構成要素(各部)の一部を省略した構成としてもよい。
図1に本実施形態のゲームシステムの機能ブロック図の例を示す。なお本実施形態のゲームシステムは図1の構成要素(各部)の一部を省略した構成としてもよい。
操作部160は、プレーヤがオブジェクト(移動体、プレーヤキャラクタ)の操作データを入力するためのものであり、その機能は、キーボート、マウス、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。なお、オブジェクトデータ記憶部176は、オブジェクトのオブジェクトデータが記憶される。例えば、エフェクトオブジェクトのデータ(ポリゴン)を記憶する。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
通信部196は外部(例えば他のゲームシステム、サーバ)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信してゲームシステムを機能させる場合も本発明の範囲内である。
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、オブジェクト空間設定部112、移動・動作処理部120、仮想カメラ制御部114、ゲーム処理部140、描画部113、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
オブジェクト空間設定部112は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義であり、例えば、ワールド座標系でのX、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
移動・動作処理部120は、オブジェクト(キャラクタ、移動体オブジェクト等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)、物理法則などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
本実施形態の移動・動作処理部120は、グループ移動制御情報を演算するグループ移動制御部122、ユニット移動制御部124、オブジェクト移動制御部126を含んで構成してもよい。
前記ユニット移動制御部124は、所定の移動イベントが発生した場合、グループ内の複数のユニットについて移動後のポジションの入れ替え処理を行うユニットポジションの入れ替え処理部を含み、入れ替え後のポジションに対応した移動位置に移動させるためのユニット移動制御情報を演算してもよい。
前記ユニットポジションの入れ替え処理部は、ポジションの入れ替えが可能に設定されたユニット群について移動後のポジションの入れ替え処理を行ってもよい。また所与のユニットが複数のポジションを取り得る場合には、前記ポジションに基づき所与のユニットのとり得る複数のポジションに対応した移動後の位置を求め、移動前の所与のユニットの位置と所与のユニットのとり得る複数のポジションに対応した移動後の位置との距離に基づき、所与のユニットの移動後のポジションを決定してもよい。またグループ内にポジションの入れ替え可能な複数のユニットが存在する場合には、前記複数のユニットに対して設定された優先順位に従って、優先順位の高いユニットから順に移動後のポジションを決定してもよい。またグループ内に配置するユニットの入れ替えが可能な複数のポジションが存在する場合には、入れ替えが可能な複数のポジションに対して設定された優先順位に従って、優先順位の高いポジションから順に移動後に配置されるユニットを決定してもよい。また移動後のポジションとユニットの対応関係が複数存在する場合には、各対応関係における入れ替え可能な各ユニットの予想移動距離の合計に基づき移動後のポジションとユニットの対応関係を決定し、決定した対応関係に従って、移動後に各ポジションに配置されるユニットを決定してもよい。
ユニット移動制御部124は、各グループに対して設定可能な複数の陣形について、各陣形におけるポジションの配置パターンに関する情報である陣形情報を記憶し、各グループに対して設定されている陣形に対応付けて記憶されている陣形情報に基づきグループ内における各ユニットの配置位置を決定してもよい。
またユニット移動制御部124は、各グループに対応付け可能な所定のパラメータの値が所定の条件を満たす場合には各グループに対して設定された陣形に従ってグループ内の各ユニットの配置位置を決定してもよい。
することを特徴とするプログラム。
することを特徴とするプログラム。
またグループ移動制御部122が、操作入力情報に基づいて、前記グループの目標移動位置を決定し、当該目標移動位置に前記グループを移動させるためのグループ移動制御情報を演算し、ユニット移動制御部124が、各ユニットが属するグループの目標移動位置及び当該グループ内における各ユニットのポジション情報に基づいて各ユニットの目標移動位置を決定し、当該目標移動位置に各ユニットを移動させるためのユニット移動制御情報を演算してもよい。
本実施形態の移動・動作処理部120は、オブジェクト移動制御部126を含んで構成してもよい。オブジェクト移動制御部126は、ユニット移動制御情報及び当該ユニット内における各オブジェクトの配置位置を示すポジション情報に基づき各オブジェクトの移動を制御するためのオブジェクト移動制御情報を演算してもよい。
またユニット移動制御部124は、複数のオブジェクトの集合であるユニットの移動を制御するためのユニット移動制御情報を演算し、オブジェクト移動制御部126は前記ユニット移動制御情報及び当該ユニット内における各オブジェクトの配置位置を示すポジション情報に基づき各オブジェクトの移動を制御するためのオブジェクト移動制御情報を演算してもよい。
オブジェクト移動制御部126は、各オブジェクトに対して設定されている所定のパラメータに基づき各オブジェクトが位置移動条件を満たすか否かを判断し、位置移動条件を満たすと判断した場合には、各オブジェクトの位置を移動させる制御を行ってもよい。
オブジェクト移動制御部126は、各オブジェクトが受けたダメージ量に基づき各オブジェクトが位置移動条件を満たすか否かを判断し、位置移動条件を満たすと判断した場合には、各オブジェクトの位置を移動させる制御を行ってもよい。
オブジェクト移動制御部126は、各オブジェクトが位置移動条件を満たすと判断した場合には、各オブジェクトを含む同じユニットに属する複数のオブジェクト間で、ポジションの入れ替え処理を行うオブジェクトポジション入れ替え処理部をおこなってもい。そして前記ポジションの入れ替え処理の対象となる複数のオブジェクトについて、入れ替え後のポジションに対応した位置に移動させるためのオブジェクト移動制御情報を演算してもよい。
オブジェクトポジション入れ替え処理部は、所与のオブジェクトが位置移動条件を満たすと判断した場合には、所与のオブジェクトが位置するポジションに対して退避エリアとなるポジションに位置するオブジェクトを入れ替え対象となる他のオブジェクトとしてオブジェクトポジション入れ替え処理を行ってもよい。またユニットを構成する各ポジションに対応付けられた安全度を示す値に基づき、所与のポジションより安全度の高いポジションを所与のポジションの退避エリアとしてポジションの入れ替え処理を行ってもよい。また所与のポジションからの移動距離が最も短いまたは所定の基準より短いポジションを退避エリアとしてポジションの入れ替え処理を行ってもよい。またオブジェクトに対応付けられている司令官のキャラクタに応じてポジションの入れ替え基準の異なる条件を用いて、ポジションの入れ替えの有無を判断してもよい。また各オブジェクトがダメージを受けると、ポジションの入れ替えの有無を判断してもよい。
またユニット移動制御部124が、与えられた情報に基づいて、前記ユニットの目標移動位置を決定し、当該目標移動位置に前記ユニットを移動させるためのユニット移動制御情報を演算し、オブジェクト移動制御部126が、各オブジェクトが属するユニットの目標移動位置及び当該ユニット内における各オブジェクトのポジション情報に基づいて各オブジェクトの目標移動位置を決定し、当該目標移動位置に各オブジェクトを移動させるためのオブジェクト移動制御情報を演算してもよい。
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)等に基づいて、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。
ゲーム処理部140は、陣形設定部142、パラメータ演算部144、パラメータ表示オブジェクト制御部146、ボリュームイメージオブジェクト表示制御部148を含んで構成してもよい。
陣形設定部142は、各グループに対応付け設定されている司令官情報に基づき、各グループに対する陣形の設定を行ってもよい。
パラメータ演算部144は、各オブジェクトが受けたダメージに応じて、各オブジェクトに対応付けられた前記所定のパラメータの値を変化させる制御を行ってもよい。また各オブジェクトが受けたダメージに応じて、各オブジェクトに対応付けられた所定のパラメータの値を減少または増加させ、各オブジェクトに対して設定された前記所定のパラメータが所定の消滅基準値になると各オブジェクトを消滅状態とし、消滅状態でないオブジェクトについては、ダメージに応じて減少または増加させた分の少なくとも一部についてダメージ前の状態に回復させる制御を行ってもよい。
パラメータ表示オブジェクト表示制御部146は、各オブジェクトに対して設定された前記所定のパラメータまたはダメージ量に基づき、各オブジェクトが属するユニットに対応した回復可能なダメージ量を示す回復可能ダメージパラメータを演算して、当該回復可能ダメージパラメータに基づき回復可能なダメージ量を告知するためのパラメータ表示オブジェクトをゲーム画像の一部に表示する制御を行ってもよい。
ボリュームイメージオブジェクト表示制御部148は、前記ユニットを構成するオブジェクトの位置情報に基づき、ユニットの外縁またはボリュームをイメージさせるボリュームイメージオブジェクトの表示制御を行ってもよい。
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
そして描画部113は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
テクスチャマッピングは、記憶部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値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
なお、本実施形態のゲームシステムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
2.本実施形態の戦闘処理
図2は、本実施形態のゲームシステムの概要について説明するための図である。
図2は、本実施形態のゲームシステムの概要について説明するための図である。
本実施の形態のゲームシステムは、例えばPC(パーソナルコンピュータ)等で本実施の形態のプログラムを実行することにより実現することができる。例えばPC上でRTS(リアル・タイム・ストラテジー)として実現してもよい。ここにおいてRTSとは、シミュレーション・ゲームに多いターン制(将棋のように自分の番、相手の番を順次繰り返して、各自が自分の番の時に入力を行う)ではなく一度ゲームが始まると時間が止まることなく刻刻と状況が変化していくゲームである。
本実施形態のゲームシステムは、操作部からの操作入力により複数の艦船M1(移動体オブジェクト)を含む艦隊GR3を移動させて、複数の敵艦船M2(移動体オブジェクト)を含む敵艦隊GR4と戦闘を行うもので、複数の艦船オブジェクトを含むオブジェクト空間を仮想カメラからみた画像が生成され、ゲーム画像GIとして表示される。
ここで艦隊GR3(グループ)は、複数の部隊GR1(ユニット)を含んで構成され、各部隊GR1は、複数の艦船M1を含んで構成される。同様に敵艦隊GR4(グループ)は複数の敵部隊GR2(ユニット)を含んで構成され、各敵部隊GR2は複数の敵艦船M2を含んで構成される。なお艦隊GR3と敵艦隊GR4はオブジェクト空間にそれぞれ複数配置されている。
プレーヤは操作対象とする艦隊GR3を操作部を用いて選択して、移動先の目標位置と向きを指定することにより艦隊GR3をオブジェクト空間内で移動させることができる。
本実施形態では、各部隊GR1に属する複数の艦船M1に射撃を行わせることができる。射撃は部隊GR1単位で開始され、攻撃対象として決定された敵部隊GR2に対して行われる。すなわち、まず複数の敵艦隊GR4からゲーム画面に表示されている敵艦隊GR4が選択され、選択された敵艦隊GR4に属する複数の敵部隊GR2の内、艦船M1から所定距離範囲内にある敵部隊GR2が選択される。そして当該艦船M1の攻撃可能範囲と、選択された敵部隊GR2に属する敵艦船M2とがヒットするか否かを判断し、ヒットすると判断した場合には、選択された敵部隊GR2を当該艦船M1が属する部隊GR1の攻撃対象として決定し、当該部隊GR1に属する全ての艦船M1による射撃(攻撃)を自動的に開始する。
図2に示す例では、艦船M1−1を含む部隊GR1が、敵艦船M2−1を含む敵部隊GR2に対して射撃を開始しており、また、艦船M1−3を含む部隊GR1が、敵艦船M2−2を含む敵部隊GR2に対して射撃を開始している。
このように本実施形態によれば、表示されていない敵艦隊GR4や離れた場所に位置する敵部隊GR2についてはヒットチェックを省略することができ、演算負荷を軽減することができる。また部隊GR1に属するいずれかの艦船M1が攻撃可能となった場合に、当該部隊GR1に属する全ての艦船M1が攻撃を開始する演出を行うことができる。
そして本実施形態では、射撃の開始後、射撃を開始した部隊GR1に属する各艦船M1の攻撃可能範囲と、攻撃対象となる敵部隊GR2に属する各敵艦船M2とのヒットチェックを行い、その結果に基づいて攻撃演出及び各種パラメータや成績の演算を行う。
例えばヒットチェックにおける命中判定は、射程内に敵がいるか、射撃可能範囲かで判断してもよい。そして命中の場合、目標ユニットに命中する射撃エフェクトを表示し、外れの場合、外れのエフェクトを表示してもよい。また例えばヒットチェックにおける貫通判定として、命中の場合、攻撃艦との距離等に基づいてシールドを突破できるかを判定してもよい。そして貫通した場合、その艦船M1(移動体オブジェクト)の耐久力にダメージを与え、耐久力が0になった場合は撃沈する(ゲーム空間から削除する)ようにしてもよい。
図2に示す例では、艦船M1−1を含む部隊GR1については、艦船M1−2の攻撃可能範囲と敵艦船M2−1とがヒットすると判断されたために、艦船M1−2からの射撃が敵艦船M2−1に命中したことを表す射撃エフェクトHEが表示されている。また艦船M1−1の攻撃可能範囲と敵艦船M2とがヒットしないと判断されたために、当該艦船M1−1からの射撃が外れたことを表す外れエフェクトUEが表示されている。また艦船M1−3を含む部隊GR1についても、艦船M1−3からの射撃が敵艦船M2−2に命中したことを表す射撃エフェクトHEと、当該艦船M1−4からの射撃が外れたことを表す外れエフェクトUEが表示されている。
3.本実施形態のパラメータ管理
図28(A)(C)は、本実施の形態の艦隊(グループの一例)、部隊(ユニットの一例)、艦船(移動体オブジェクトの一例)の関係を定義する定義テーブルの一例である。例えば図28(A)に示すように、艦隊と艦隊に属する部隊を定義する艦隊編成テーブル700を設け、各艦隊(GR3やGR4)の艦隊ID(艦隊を特定するための情報)710に対応付けて、当該艦隊に属する部隊(GR1やGR2)の部隊ID(部隊を特定するための情報)を記憶させてもよい。また例えば図28(B)に示すように、部隊と部隊に属する艦船を定義する部隊編成テーブル730を設け、各部隊(GR1やGR2)の部隊ID(部隊を特定するための情報)740に対応付けて、当該部隊に属する艦船(M1やM2)の艦船ID(艦船を特定するための情報)750や、各部隊の属性(例えば旗艦部隊であるとか、通常に戦艦部隊であるとか、巡航艦部隊であるとかの部隊の特徴を表す部隊固有で不変に設定されている属性)762や、当該部隊が属する艦隊の艦隊ID760等を記憶させてもよい。また例えば図28(C)に示すように、艦船の属する部隊を定義する艦船部隊対応テーブル770を設け、各艦船の艦船ID(艦船を特定するための情報)780に対応付けて、各艦船(M1やM2)の属する部隊の部隊ID790等を記憶させてもよい。
図28(A)(C)は、本実施の形態の艦隊(グループの一例)、部隊(ユニットの一例)、艦船(移動体オブジェクトの一例)の関係を定義する定義テーブルの一例である。例えば図28(A)に示すように、艦隊と艦隊に属する部隊を定義する艦隊編成テーブル700を設け、各艦隊(GR3やGR4)の艦隊ID(艦隊を特定するための情報)710に対応付けて、当該艦隊に属する部隊(GR1やGR2)の部隊ID(部隊を特定するための情報)を記憶させてもよい。また例えば図28(B)に示すように、部隊と部隊に属する艦船を定義する部隊編成テーブル730を設け、各部隊(GR1やGR2)の部隊ID(部隊を特定するための情報)740に対応付けて、当該部隊に属する艦船(M1やM2)の艦船ID(艦船を特定するための情報)750や、各部隊の属性(例えば旗艦部隊であるとか、通常に戦艦部隊であるとか、巡航艦部隊であるとかの部隊の特徴を表す部隊固有で不変に設定されている属性)762や、当該部隊が属する艦隊の艦隊ID760等を記憶させてもよい。また例えば図28(C)に示すように、艦船の属する部隊を定義する艦船部隊対応テーブル770を設け、各艦船の艦船ID(艦船を特定するための情報)780に対応付けて、各艦船(M1やM2)の属する部隊の部隊ID790等を記憶させてもよい。
そしてこれらの定義情報に基づき、艦船の集合である部隊や部隊の集合である艦隊を構成して、艦船や艦隊や部隊に関する各種パラメータの管理をおこなうようにしてもよい。
図29(A)〜(C)は、本実施の形態の各艦隊、各部隊、各艦船のそれぞれに対応付けて設定されているパラメータの一例について説明するための図である。例えば図29(A)に示すように、艦隊が有するパラメータを管理する艦隊パラメータ管理テーブル810を設け、各艦隊(GR3やGR4)の艦隊ID(艦隊を特定するための情報)812に対応付けて、当該艦隊の艦隊パラメータを管理し、ゲーム状況に応じて各パラメータの値を更新してもよい。
艦隊パラメータとして、例えば各艦隊の現在位置座標814を設けてもよい。現在位置座標814は、艦隊の代表点の位置座標(ワールド座標系におけるx、y、z座標値)であり、各フレーム毎に現在の座標値を演算して更新するようにしても良い。
また艦隊パラメータとして、例えば各艦隊の艦隊目標位置座標816を設けてもよい。艦隊目標位置座標816は、移動イベントが発生した場合(例えば艦隊の移動先の目標位置と向きが指定された場合)の艦隊の代表点の移動先の位置座標であり、移動イベント発生時に設定され、移動イベントに伴う移動が終了するとクリアされるようにしてもよい。
また艦隊パラメータとして、例えば各艦隊の陣形種別818を設けてもよい。後述するように本実施の形態では艦隊の取り得る陣形として、複数の陣形が用意されており、操作入力により所望の陣形を選択できるように構成されている。従って陣形の選択入力情報に基づき陣形種別をセット又は更新するようにしても良い。
また艦隊パラメータとして、例えば各艦隊の司令官情報(例えば司令官となるキャラクタID)820を設けてもよい。本実施の形態では艦隊の司令官として、複数のキャラクタが用意されており、操作入力により所望のキャラクタを司令官として選択できるように構成されている。従って司令官となるキャラクタの選択入力情報に基づき司令官情報陣形種別をセット又は更新するようにしても良い。
なお例えば司令官がR1である場合には、陣形種別A、B、Cが選択可能で、司令官がR5である場合には陣形種別C,Dが選択可能であるというように、各艦隊の司令官となるキャラクタに応じて各艦隊が取り得る陣形種別の種類が異なるようにしてもよい。
また例えば図29(B)に示すように、部隊が有するパラメータを管理する部隊パラメータ管理テーブル830を設け、各部隊(GR1やGR2)の部隊ID(部隊を特定するための情報)832に対応付けて、当該部隊の部隊パラメータを管理し、ゲーム状況に応じて各パラメータの値を更新してもよい。
部隊パラメータとして、例えば各部隊の現在位置座標834を設けてもよい。現在位置座標834は、部隊の代表点の位置座標(ワールド座標系におけるx、y、z座標値)であり、各フレーム毎に現在の座標値を演算して更新するようにしても良い。
また部隊パラメータとして、例えば各部隊の部隊目標位置座標836を設けてもよい。部隊目標位置座標836は、移動イベントが発生した場合(例えば艦隊の移動先の目標位置と向きが指定された場合)の各部隊の代表点の移動先の位置座標であり、移動イベント発生時に設定され、移動イベントに伴う移動が終了するとクリアされるようにしてもよい。部隊目標位置座標836は、後述するように艦隊目標位置座標と、当該部隊の艦隊内のポジション情報に基づき求めても良い。
また部隊パラメータとして、例えば各部隊の艦隊内ポジションID838を設けてもよい。後述するように本実施の形態では、移動イベント等の発生により部隊間でポジションの入れ替えが起こるので、かかる場合に各部隊の艦隊内ポジションID838は更新される。
また部隊パラメータとして、例えば各部隊の部隊耐久力840を設けてもよい。例えば各部隊に属する全艦船の耐久力(図29(C)の860)の合計に基づき設定するようにしてもよい。後述するように各艦船の耐久力は各艦船がダメージを受ける(ここでは弾が命中して貫通した場合)と減少するように構成されているため、毎フレーム毎に各艦船の耐久力の合計値を求め更新してもよい。
また部隊パラメータとして、例えば各部隊の士気(士気の高さ)842を設けてもよい。各部隊の士気(士気の高さ)842は、例えば各部隊の置かれているゲーム状況(回りにいる敵の数や受けたダメージの大きさや撃沈した艦船の数)に応じて設定、更新してもよい。
また例えば図29(C)に示すように、艦船が有するパラメータを管理する艦船パラメータ管理テーブル850を設け、各艦船(M1やM2)の艦船ID(艦船を特定するための情報)852に対応付けて、当該艦船の艦船パラメータを管理し、ゲーム状況に応じて各パラメータの値を更新してもよい。
艦船パラメータとして、例えば各艦船の現在位置座標854を設けてもよい。現在位置座標854は、艦船の位置座標(ワールド座標系におけるx、y、z座標値)であり、各フレーム毎に現在の座標値を演算して更新するようにしても良い。
また艦船パラメータとして、例えば各艦船の艦船目標位置座標856を設けてもよい。艦船目標位置座標856は、移動イベントが発生した場合(例えば艦隊の移動先の目標位置と向きが指定された場合)の各艦船の移動先の位置座標であり、移動イベント発生時に設定され、移動イベントに伴う移動が終了するとクリアされるようにしてもよい。艦船目標位置座標856は、後述するように部隊目標位置座標と、当該艦船の部隊のポジション情報に基づき求めても良い。
また部隊パラメータとして、例えば各部隊の部隊内ポジションID858を設けてもよい。後述するように本実施の形態では、ダメージ状況により艦船間でポジションの入れ替えが起こるので、かかる場合に各艦船の艦隊内ポジションID858は更新される。
また艦船パラメータとして、例えば各艦船の耐久力860を設けてもよい。後述するように各艦船の耐久力は各艦船がダメージを受ける(ここでは弾が命中して貫通した場合)と減少するように構成されているため、毎フレーム毎に命中判定や貫通判定を行い、各艦船の耐久力の合計値を求め更新してもよい。
また艦船パラメータとして、例えば各艦船の消滅フラグ862を設けてもよい。各艦船の消滅フラグ862がOFF(例えば’0’)の間は、所定の条件下で耐久力パラメータの回復が可能であるが消滅フラグがオンになると耐久力パラメータの回復ができないように制御してもよい。
4.本実施形態の移動制御処理
図3は、本実施の形態のゲーム画像の一例(艦隊)である。
図3は、本実施の形態のゲーム画像の一例(艦隊)である。
本実施の形態では、複数の部隊GR1(ユニット)で構成された艦隊GR3(グループ)に対して、操作部を介して艦隊の移動先の目標位置と向きに関する情報が入力できるよう構成されている。そして本システムは、入力情報や各種パラメータに従って複数の部隊GR1(ユニット)の集合である艦隊GR3(グループ)の移動を制御するためのグループ移動制御情報を演算する。
また本システムは、艦隊GR3(グループ)に属する複数の部隊GR1(ユニット)に、艦隊内における相対位置であるポジションを与え(各部隊GR1(ユニット)のポジションを示すポジション情報が与えられている)、グループ移動制御情報及び当該グループ内における各部隊GR1(ユニット)のポジション情報や各種パラメータに基づき各部隊GR1(ユニット)の移動を制御するためのユニット移動制御情報を演算する。
グループ移動制御情報は、例えば各艦隊GR3(グループ)の移動後の位置座標である艦隊目標位置や各艦隊GR3(グループ)の移動時の位置座標等である。艦隊目標位置は、操作部から入力された移動先の目標位置により演算してもよい。また各艦隊GR3(グループ)の移動時の位置座標は、移動前の位置と前記艦隊目標位置(移動後の位置)と各艦隊に与えられたパラメータ(例えば移動属性に関するパラメータやダメージパラメータ等)に従って設定された移動関数Fg(t)により演算してもよい。
本実施の形態では、艦隊(グループ)は最大10個の部隊GR1−1〜GR1−10(ユニット)で構成される。図3では艦隊GR3(グループ)を構成する10個の部隊GR1−1〜GR1−10(ユニット)が、艦隊内の所定のポジションに位置している様子が示されている。
本実施の形態では各部隊GR1(ユニット)毎に取り得るポジションが決まるように構成されている。そして艦隊GR3(グループ)が移動する場合には、各部隊GR1(ユニット)の属性によって取り得る所定のポジションに対応した移動先の位置を目標位置として移動する。ここで取り得るポジションが1つしかない部隊もあるし、取り得るポジションが複数の部隊もある。取りえるポジションが複数のある部隊は、所定の条件下(例えば移動イベント発生時)でポジションの変更(他の取り得るポジションに変更)を行うようにしてもよい。
例えば各部隊GR1(ユニット)に与えれた属性(例えば図28(B)の762)によって取り得るポジションが決まるように構成し、艦隊GR3(グループ)が移動する場合に、各部隊GR1(ユニット)の属性によって取り得る所定のポジションに対応した移動先の位置を目標位置として移動するようにしてもよい。そして各部隊GR1(ユニット)が所定の属性であれば、グループ内において所定の属性の部隊GR1(ユニット)間でポジションの入れ替えが可能な設定としてもよい。
所定の移動イベントが発生した場合(例えば回転を伴う移動イベント)、グループ内の所定の属性のユニット(ポジションの入れ替えが可能な複数のユニット)間で移動前後でポジションの入れ替えがおこなわれ、各ユニットを入れ替え後のポジションに対応した目標位置に移動させるためのユニット移動制御情報が演算されるようにしてもよい。
ユニット移動制御情報は、例えば各部隊GR1(ユニット)の移動先の位置座標である部隊目標位置や各部隊GR1(ユニット)の移動時の位置座標等である。
部隊目標位置は、例えば艦隊目標位置(グループ移動制御情報)と艦隊(グループ)内の各部隊GR1(ユニット)のポジション情報(艦隊内における相対的な位置)に基づき演算してもよい。また各部隊GR1(ユニット)の移動時の位置座標は、各部隊GR1の移動前の位置と前記部隊目標位置(移動後の位置)と個々の部隊に与えられたパラメータ(例えば移動属性に関するパラメータやダメージパラメータ等)に従って設定された移動関数Fy(t)により演算してもよい。
部隊目標位置は、例えば艦隊目標位置(グループ移動制御情報)と艦隊(グループ)内の各部隊GR1(ユニット)のポジション情報(艦隊内における相対的な位置)に基づき演算してもよい。また各部隊GR1(ユニット)の移動時の位置座標は、各部隊GR1の移動前の位置と前記部隊目標位置(移動後の位置)と個々の部隊に与えられたパラメータ(例えば移動属性に関するパラメータやダメージパラメータ等)に従って設定された移動関数Fy(t)により演算してもよい。
このようにすると、艦隊移動時は艦隊に属する各部隊は移動後の対応するポジションを目標位置として、目標位置を目指してその特性に従って移動する移動表現を行うことができる。すなわち各部隊は移動前後(例えば移動前後の停止状態にあるとき)は艦隊内の所定のポジションに対応した位置にいるが、移動中は所定ポジションを維持しているわけではない(移動中は陣形をなしていなくてもよい)。このようにすると、艦隊移動時にも艦隊に属する部隊が常に所定のポジション位置しているような移動表現に比べてより自然でリアリティに富んだ移動表現を行うことができる。
なお本実施の形態では、艦隊GR3(グループ)に司令官210が設定されており、設定されている司令官210に応じて艦隊の移動や動作、ダメージの受け方や回復力、艦隊がくめる陣形等の条件が設定され、条件に従って移動制御、成績評価、各種パラメータの制御等が行われる。図29(A)で説明したように司令官はプレーヤからの選択により設定されるようにしてもよい。
図4は、本実施の形態のゲーム画像の一例(部隊)である。
本実施の形態では部隊GR1(ユニット)は、複数の艦船M1(移動体オブジェクト)を含んで構成されている。図29(C)で説明したように、艦船M1(移動体オブジェクト)単位で、位置座標や耐久力のパラメータを有し、パラメータ管理をおこなってもよい。
部隊GR1(ユニット)に属する各艦船M1(移動体オブジェクト)は、部隊GR1(ユニット)内における相対位置であるポジションが与えれており(各艦船M1(移動体オブジェクト)のポジションを示すポジション情報が与えられている)、ユニット移動制御情報及び当該ユニット内における各艦船M1(移動体オブジェクト)のポジション情報や各艦船M1(移動体オブジェクト)に与えれた各種パラメータに基づき各艦船M1(移動体オブジェクト)の移動を制御するためのオブジェクト移動制御情報を演算してもよい。
オブジェクト移動制御情報は、各艦船M1(移動体オブジェクト)の移動先の位置座標である艦船目標位置や各艦船M1(移動体オブジェクト)の移動時の位置座標等である。艦船目標位置は、例えば部隊目標位置(ユニット移動制御情報)と部隊(ユニット)内の各艦船M1(移動体オブジェクト)のポジション情報(部隊内における相対的な位置)に基づき演算してもよい。また各艦船M1(移動体オブジェクト)の移動時の位置座標は、艦船M1の移動前の位置と前記艦船目標位置(移動後の位置)と個々の艦船に与えられたパラメータ(例えば移動属性に関するパラメータやダメージパラメータ等)に従って設定された移動関数Fo(t)により演算してもよい。
このようにすると、艦隊移動時は艦隊の各部隊に属する移動体オブジェクトは移動後の対応するポジションを目標位置として、目標位置を目指してその特性に従って移動する移動表現を行うことができる。すなわち各移動体オブジェクトは移動前後(例えば移動前後の停止状態にあるとき)は艦隊の部隊内の所定のポジションに対応した位置にいるが、移動中は所定ポジションを維持しているわけではない。このようにすると、艦隊移動時にも艦隊(グループ)の各部隊(ユニット)に属する艦船(移動体オブジェクト)が常に所定のポジション位置しているような移動表現に比べてより自然でリアリティに富んだ移動表現を行うことができる。
5.本実施形態のパラメータ表示オブジェクト表示制御処理
士気パラメータや耐久力パラメータ等の所定のパラメータに対応したパラメータ表示オブジェクトを生成してゲーム画面の一部に表示してもよい。
士気パラメータや耐久力パラメータ等の所定のパラメータに対応したパラメータ表示オブジェクトを生成してゲーム画面の一部に表示してもよい。
図4の220は各部隊の士気の程度を示す士気表示であり、士気バー222の示す割合(全体にしめるパーセンテージ)や、士気バー222長さで各部隊の士気の高さの程度を示している。例えば図29(B)で説明したように部隊単位で士気パラメータを設定し、士気パラメータの値に基づき士気表示220を行うようにしてもよい。
また230は各部隊の耐久力を示す耐久力表示であり、例えば図29(B)(C)で説明したように艦船単位で耐久力パラメータを設定し、部隊に属する全艦船の耐久力パラメータの値に基づき各部隊の耐久力表示230を行うようにしてもよい。
耐久力を現在の耐久力232、回復可能な耐久力234、回復不可能な耐久力236の3種類に分類して表示してもよい。例えば、バー230をそれぞれに対応した領域232、234、236に分割して各領域毎に異なる態様(例えば各領域毎に異なる色)で表示し、各領域の長さで現在の耐久力232、回復可能な耐久力234、回復不可能な耐久力236の割合を示すようにしてもよい。
現在の耐久力232は、部隊内の艦船の耐久力の総和に応じて設定してもよい。また回復可能な耐久力234は、一旦失われたが回復可能な部隊内の艦船の耐久力の総和に応じて設定してもよい。一旦失われたが回復可能な部隊内の艦船の耐久力とは例えば、ダメージをうけて耐久力が減少しているが消滅(撃沈)していない艦船の減少した耐久力に基づき設定してもよい。また回復不可能な耐久力236は、ダメージを耐久力が失われてすでに撃沈した艦船の失われた耐久力に基づき設定してもよい。
例えば、簡単な例をあげて説明すると、艦船k1、k2、k3からなる部隊で最初は艦船k1、k2、k3はそれぞれ100ポイントの耐久力を有しており、艦船k1の耐久力は受けたダメージにより20ポイント減少して現在は80ポイントであり、艦船k2の耐久力は受けたダメージにより50ポイント減少して現在は50ポイントであり、艦船k3の耐久力は受けたダメージにより100ポイント減少して0ポイントとなって既に撃沈している場合、現在の耐久力232は艦船k1の80ポイントと艦船k2の50ポイントの合計である130ポイントであり、回復可能な耐久力234は艦船k1の減少した20ポイントと艦船k2の減少した50ポイントの合計である70ポイントであり、回復不可能な耐久力236は、既に撃沈した艦船k2から失われた耐久力100ポイントであるとしてもとめてもよい。このようにすると、現在の耐久力:回復可能な耐久力:回復不可能な耐久力=130:70:100となるので、この比に基づきバー230をそれぞれに対応した領域232、234、236の長さを設定してもよい。このようにすると、プレーヤはゲーム画面において表示されるバー230により、部隊の現在の耐久力、回復可能な耐久力、回復不可能な耐久力を視覚的に瞬時に把握することができる。
このようにすることにより各オブジェクト(ここでは艦船)に対して設定された前記所定のパラメータ(ここでは)耐久力パラメータ)と各オブジェクトの状態(撃沈したか否か等、または各オブジェクトのポジション)に基づき、各オブジェクトが属するユニット(ここでは部隊)に対応した回復可能なダメージ量を示す回復可能ダメージパラメータを演算して、当該回復可能ダメージパラメータに基づき回復可能なダメージ量を告知するためのパラメータ告知オブジェクト(ここでは耐久力表示230)をゲーム画像の一部に表示する制御を行うことができる。
240は司令官表示オブジェクトである。艦隊に設定された司令官が視覚的に把握できるように、パラメータ表示オブジェクトの近傍に司令官表示オブジェクトで240として、司令官のキャラクタの顔画像等を表示してもよい。本実施の形態では司令官のキャラクタによって戦い方や必殺技や耐久力等が異なるように設定されているので、司令官表示オブジェクトによって司令官のキャラクタを常に意識しながらゲームを行うことで、よりゲーム世界を楽しむことができる。
なお司令官のキャラクタ毎に戦い方がことなるとは、例えば司令官となるキャラクタに応じて取り得る陣形が異なる設定にすることで実現してもよい。また司令官によって耐久力がことなるとは、例えば後述するようにダメージを受けた艦船のポジションの入れ替え基準を司令官のキャラクタに応じて変更する事等により実現してもよい。
6.本実施形態の陣形処理
図5〜図10は本実施の形態で艦隊が取り得る陣形を示す図である。ここで陣形とは各艦隊に所属する部隊の配置パターンを示すもので、陣形毎に部隊の取り得るポジションが決まっている。図5は横陣形の艦隊のゲーム画像であり、図6は縦陣形の艦隊のゲーム画像であり、図7は方陣形の艦隊のゲーム画像であり、図8は鶴翼陣形の艦隊のゲーム画像であり、図9紡錘陣形の艦隊のゲーム画像であり、図10は円陣形の艦隊のゲーム画像である。艦隊がどの陣形を取るかは入力により指定選択できるようにしてもよい。この場合、艦隊に設定されている司令官に応じて取り得る(選択可能な)陣形が異なる構成としても良い。
図5〜図10は本実施の形態で艦隊が取り得る陣形を示す図である。ここで陣形とは各艦隊に所属する部隊の配置パターンを示すもので、陣形毎に部隊の取り得るポジションが決まっている。図5は横陣形の艦隊のゲーム画像であり、図6は縦陣形の艦隊のゲーム画像であり、図7は方陣形の艦隊のゲーム画像であり、図8は鶴翼陣形の艦隊のゲーム画像であり、図9紡錘陣形の艦隊のゲーム画像であり、図10は円陣形の艦隊のゲーム画像である。艦隊がどの陣形を取るかは入力により指定選択できるようにしてもよい。この場合、艦隊に設定されている司令官に応じて取り得る(選択可能な)陣形が異なる構成としても良い。
また各艦隊(グループ)または部隊(ユニット)または艦船(移動体オブジェクト)と対応付けられている所定のパラメータの値(例えば士気パラメータや耐久力パラメータ)が所定の条件を満たす場合には各グループに対して設定された陣形に従ってグループ内の各ユニットの配置位置を決定し、所定の条件を満たさない場合には、各グループに対して設定された陣形に従わずにグループ内の各ユニットの配置位置を決定してもよい。例えば各艦隊に対応付けられた士気パラメータや耐久力パラメータが所定の基準以下である場合には、設定された陣形を構成できない演出を行うようにしてもよい。
図11(A)〜(E)は陣形の設定手法について説明するための図である。本実施の形態では部隊が所定個数(例えば6個)以上ある場合には陣形がくめるように構成されている。図11(A)〜(E)は、横陣形における部隊が6個から10個の場合の配置形態を示している。陣形種別と陣形を構成する部隊の数に応じて部隊の配置パターン(各ポジション)はきまっており、部隊の属性に応じて取り得るポジションが決定される。P1は艦隊司令官がいる部隊(属性1)の指定ポジションであり、P2左翼戦隊指揮官がいる部隊(属性2)の指定ポジションであり、P3は右翼戦隊指揮官がいる部隊(属性3)の指定ポジションである。P4〜P10はその他(属性4)の部隊の取り得るポジションである。その他(属性4)の部隊はP4〜P10のいずれかのポジションがあたえられるが、所定の条件下で入れ替え可能である。例えば、部隊A、Bがその他(属性4)に属しておりポジションとしてそれぞれP5、P6が与えられていた場合、所定の場合に部隊A、Bのポジションの入れ替え行われる。
各陣形ごとの部隊の配置パターンの情報は、例えばローカル座標系における配置位置の座標等として定義し、陣形を構成する各ポジションと配置位置の座標等の艦隊内ポジション定義テーブルを設けてもよい。図18は、艦隊内ポジション定義テーブル350の一例を示す図である。ここでポジションID352とは、各艦隊内におけるポジションを識別するための識別情報であり、陣形種別とポジションIDによって艦隊内の相対位置を特定できる。
X(354)、Y(356)、Z(358)は、各ポジションの艦隊ローカル座標系におけるx座標、y座標、z座標である。なお陣形が平面上で定義可能な場合には、いずれかの座標を省略してもよい。
またかかる艦隊内ポジション定義テーブル350は陣形種別と陣形を構成する部隊の数毎に設けておくとよい。そして陣形種別と部隊数に応じたテーブルIDを設定する。例えば陣形種別が横陣形、縦陣形、方陣形、鶴翼陣形、紡錘陣形、円陣形のそれぞれの陣形IDをA、B、C、D、E、Fとして、その後に陣形を構成する部隊の数をつけると、6部隊で構成される横陣形の定義テーブルIDはA6となり、10部隊で構成される横陣形の艦隊内ポジション定義テーブルIDはA10となる。
図19(A)(B)は横陣形の配置パターンを艦隊のローカル座標系のxz平面上で定義した場合について説明するための図である。図19(A)は艦隊ローカル座標系における10個の部隊で構成される艦隊の横陣形の配置パターンを示す図であり、図19(B)は図19(A)に対応した陣形内の各ポジションと配置位置の座標等の対応関係を定義した所与の陣形の艦隊内ポジション定義テーブルの一例を示している。図19(A)に示すように艦隊ローカル座標系の原点Oを、艦隊の基準位置(艦隊司令官がいる部隊P1の位置とする)に設定してもよい。このようにすると艦隊内の部隊の位置座標を艦隊の基準位置に対する相対座標として定義することができる。ここでは各ポジションのy座標は同じなので省略可能である。
図26は部隊の位置情報の一例を示す図である。
各部隊の位置情報として、各部隊のポジション情報610を保持する構成でもよい。各部隊のポジション情報610は、各部隊の部隊ID620に対応させて、各部隊が配置されているポジションID630を記憶するようにしてもよい。移動時にポジションの入れ替えが起こった場合には、入れ替え対象となった部隊の部隊ID620に対応したポジションID630は、入れ替え後の内容に更新される。
このようにすると、ポジション情報として図26に示すような各部隊のポジションID630と、図18、図19に示すような艦隊内ポジション定義テーブルのテーブルID310を与えることにより、ポジション情報から部隊のポジションを特定し、艦隊内ポジション定義テーブルから特定したポジション対応する艦隊内の相対位置座標を取得することができる。そして取得した艦隊内の相対位置座標とワールド座標系における艦隊の位置座標に基づき、ワールド座標系における各部隊の位置座標を求めることができる。
7.移動に伴うユニットのポジション入れ替え処理
図12(A)(B)、図13、図20は、本実施の形態の移動時のポジションの入れ替えについて説明するための図である。ここでは説明を簡単にするために4つの部隊からなる艦隊の移動を例にとり説明する。例えば図20に示すように所与の時刻tにおいてゲーム空間に4個の部隊からなる艦隊GR3が配置されていたとする。410は時刻tにおける艦隊GR3の位置を示しており、412は時刻tにおける艦隊GR3の向きを示している。この状態において操作入力により艦隊の移動位置420と、移動後の向き422が指定された場合、移動前後において艦隊の向きは180度回転することになる。
図12(A)(B)、図13、図20は、本実施の形態の移動時のポジションの入れ替えについて説明するための図である。ここでは説明を簡単にするために4つの部隊からなる艦隊の移動を例にとり説明する。例えば図20に示すように所与の時刻tにおいてゲーム空間に4個の部隊からなる艦隊GR3が配置されていたとする。410は時刻tにおける艦隊GR3の位置を示しており、412は時刻tにおける艦隊GR3の向きを示している。この状態において操作入力により艦隊の移動位置420と、移動後の向き422が指定された場合、移動前後において艦隊の向きは180度回転することになる。
このような場合、艦隊内の部隊間でポジションの入れ替えがなければ移動前後における艦隊内の部隊の配置パターンは、図12(A)に示すようにGR3→GR3’になる。ここでb1〜b4は部隊を表し、P1〜P5は艦隊内における部隊が取りえるポジションを示している。図12(A)では移動前後において各部隊b1〜b4の艦隊内でのポジションは変更されていない。しかし例えば図12(A)に示すように艦隊の向きが180度回転するような場合にはポジションP3にいた部隊b3とポジションP4にいた部隊b4とを移動後の同じポジションに最短経路で移動させようとすると各部隊の移動経路が交わってしまうので移動経路が複雑になりスムーズな移動表現ができなかった。
ここでポジションP3とP4は入れ替え可能なポジションであるとする。すなわち部隊b3と部隊b4は、いずれもポジションP3とP4を取り得る属性を有しているとする。本実施の形態では、所定の移動イベントが発生した場合(例えば回転を伴う移動イベント)、グループ内にポジションの入れ替えが可能な複数のユニット(例えば位置属性が同じユニット)が存在する場合には、入れ替え可能なポジションについて、所定の規則に従って移動前後でポジションの入れ替えを行う。すなわち図12(B)に示すように、移動前後で部隊b3と部隊b4のポジションP3、P4が入れ替えられる。
方向転換を伴うような移動の場合、移動後の位置に最短距離で移動させようとすると各部隊の移動経路が交差したりしてスムーズな移動表現が困難であったが、ポジションが入れ替え可能な部隊については入れ替え後のポジションに移動させることにより、図13に示すように、移動距離が短くて各部隊の移動経路が交差しないスムーズな移動を実現することがきる。
入れ替えは移動前後での向きの変化(方向変換)が所定角度以上である場合におこなうようにしてもよい。
またグループ内にポジションの入れ替え可能な複数のユニットが存在する場合には移動前の各ユニットの位置と各ユニットのとり得る複数のポジションに対応した移動後の位置との距離に基づき、ポジションの入れ替えを行ってもよい。
例えば、図21(A)に示すように移動前の部隊b3はポジションP3(450参照)に位置しているが、移動後の位置としてポジションP3(460参照)またはポジションP4(470参照)をとることが可能である。このような場合、移動前のポジションP3(450参照)から移動後のポジションP3(460参照)までの距離L1と、移動前のポジションP3(450参照)から移動後のポジションP4(470参照)までの距離L2とを比較して、比較結果に基づき移動ポジションを決定するようにしてもよい。ここではL1>L2なので、距離が短いL2に対応した移動後のポジションP4を、部隊b3の移動後のポジションとして決定してもよい。
また例えば、図21(B)に示すように移動前の部隊b4はポジションP4(440参照)に位置しているが、移動後の位置としてポジションP3(460参照)またはポジションP4(470参照)をとることが可能である。このような場合、移動前のポジションP4(440参照)から移動後のポジションP3(460参照)までの距離L3と、移動前のポジションP4(440参照)から移動後のポジションP4(470参照)までの距離L4とを比較して、比較結果に基づき移動ポジションを決定するようにしてもよい。ここではL4>L3なので、距離が短いL3に対応した移動後のポジションP3を、部隊b4の移動後のポジションとして決定してもよい。
図24(A)〜(C)は、本実施の形態の入れ替え対象特定情報について説明するための図である。
入れ替え対象特定情報とは、入れ替えが可能なユニット及び入れ替えが可能なポジションの少なくとも一方に関する情報である。かかる入れ替え対象特定情報をテーブル情報として、またプログラムの一部としてシステムの記憶部に記憶させ、記憶部に記憶された入れ替え対象特定情報に基づき、ポジションの入れ替えが可能に設定された複数のユニット群について移動後のポジションの入れ替え処理を行ってもよい。
4つのユニット(ユニットIDがb1、b2,b3,b4)で構成されるグループに対して、例えば図24(A)に示すように4つのポジション510−1〜510−4が設定されており、各ポジションのポジションIDがP1、P2、P3、P4であるとする。ここでユニットb1(ユニットIDがb1)はポジション510−1のみ取りえ、ユニットb2(ユニットIDがb2)はポジション510−2のみ取りえるとし、ユニットb3(ユニットIDがb3)、ユニットb4(ユニットIDがb4)は、ポジション510−3、ポジション510−4のいずれもとりえ、ポジションの入れ替えが可能になっている(すなわちユニットb3とユニットb4はポジションの入れ替えが可能なユニット群である)とする。
このような場合、例えば図24(B)に示すように、各ポジションに対応させて(例えば各ポジションのポジションID520に対応させて)、配置可能なユニットを特定するユニット特定情報(例えばユニットID530)を記憶させても良い。なおポジションの入れ替えが可能に設定されたポジションP3、P4については、優先順位540を設定してもよい(542参照)。
また例えば図24(C)に示すように、各ユニットに対応させて(例えば各ユニットのユニットID550に対応させて)、取り得るポジションを特定するポジション特定情報(例えばポジションID560)を記憶させても良い。なおポジションの入れ替えが可能に設定されたユニットb3、b4については、優先順位560を設定してもよい(562参照)。
また艦隊(グループ)内にポジションの入れ替え可能な複数の部隊(ユニット)が存在する場合には、所定の優先順位に従って、優先順位の高い部隊(ユニット)から順に入れ替え後のポジションを決定するようにしてもよい。ここで優先順位は、例えば部隊に対して予め設定されていてもよい。またポジションに対して予め設定されていてもよい。また優先順位はオブジェクトに設定されている所定のパラメータに応じて決定されてもよい。
部隊にたいして優先順位が設定されている場合、例えば複数の部隊b1、b2、b3、・・・bnがこの順番で優先順位が高い場合には、まず部隊b1について移動後に取り得るすべてのポジションまでの距離を演算して、もっとも距離の短いポジションを移動後のポジションとして決定してもよい。そして次に優先順位の高い部隊b2について、部隊b2が移動後に取り得るすべてのポジションから既に他の部隊のポジションとして決定されているポジションをのぞいたすべてのポジションまでの距離を演算して、もっとも距離の短いポジションを移動後のポジションとして決定してもよい。
ポジションにたいして優先順位が設定されている場合には、例えば優先順位の高いポジションについて、移動後にこのポジションを取り得るすべての部隊について移動前との距離を演算して、検算結果に基づき、例えば移動距離が最も短い部隊を選択して当該ポジションを割り当てるようにしてもよい。
またグループ内にポジションの入れ替え可能な複数の部隊(ユニット)が存在する場合には、入れ替え可能な複数の部隊についての移動前後の組み合わせの各パターンについての各ユニットの移動前後の合計距離を算出し、合成距離基づき、ポジションの入れ替えを行うようにしてもよい。
図22(A)(B)は、移動前後においてポジション変更の組み合わせについて説明するための図である。図22(A)に示すような6個の部隊からなる艦隊において、ポジションP5、P2、P6が入れ替え可能なポジションであり、ポジションP5、P2、P6を取り得る部隊はb5、b2、b6であるとする。移動前には図22(A)に示すようにポジションP5には部隊b5、ポジションP2には部隊b2、ポジションP6には部隊b6が位置している。この場合移動後の各ポジションにくる可能性のある部隊の組み合わせは、図21(B)に示すように6通りである。従ってこの6通りの場合についての各部隊b5,b2、b6の直線移動距離を求め、その総計に基づき移動後の部隊のポジションを決定してもよい(総計が最も小さい組み合わせにしたがって部隊が移動するように制御してもよい)。
図23は、本実施の形態のグループ移動前後におけるユニットのポジション入れ替え処理について説明するためのフローチャートである。
艦隊(グループ)の移動先の目標位置と向きが指定されると以下のステップS20〜S50の処理をおこなう(ステップS10)。
まず艦隊(グループ)の移動先の目標位置と向き及び艦隊(グループ)の陣形情報に基づき移動後の陣形を構成する各ポジションの位置座標(ワールド座標系における位置座標)を演算する(ステップS20)
次に艦隊(グループ)内にポジションの入れ替え可能な複数の部隊(ユニット)が存在する場合には移動前の各部隊(ユニット)の位置と各部隊(ユニット)のとり得る複数のポジションに対応した移動後の位置との距離に基づき、移動後の各部隊(ユニット)のポジションを決定する(ステップS30)。
次に艦隊(グループ)内にポジションの入れ替え可能な複数の部隊(ユニット)が存在する場合には移動前の各部隊(ユニット)の位置と各部隊(ユニット)のとり得る複数のポジションに対応した移動後の位置との距離に基づき、移動後の各部隊(ユニット)のポジションを決定する(ステップS30)。
例えば移動後の陣形の配置パターンとして取り得る陣形内の各ポジションに配置可能な部隊の複数の配置パターンについて、それぞれ各ユニットの直線移動距離の合計を算出し、直線移動距離の合計が最も小さくなる配置パターンを選択し、当該配置パターン従って、各部隊の移動後のポジションを決定してもよい。陣形内にポジションの入れ替えが可能な複数の部隊が存在する場合には移動後の配置パターンは、移動前の配置パターンを含む複数の配置パターンをとることが可能である。移動前の配置パターンに対応した各部隊の位置を演算し、移動後の各配置パターンに対応した各部隊の位置を演算する。そして各部隊の移動前後位置の距離を求め、これを各ユニットの直線移動距離としてもよい。
次に決定された各部隊のポジションに従って、各部隊の移動先の部隊目標位置を決定する(ステップS40)。
次に各部隊毎に決定された部隊目標位置を目指して各部隊の移動特性に従って移動させる制御を行う(ステップS50)。
ステップS30においてに、各部隊の直線移動距離の合計の最も小さい場合が移動前の配置パターンと異なる場合には、移動の前後において各ユニット(部隊)のポジションの入れ替えがおこる。
8.ダメージを受けた移動体オブジェクトのポジション入れ替え処理
図14、図15は本実施形態の移動体オブジェクトのポジション入れ替え処理について説明するための図である。
図14、図15は本実施形態の移動体オブジェクトのポジション入れ替え処理について説明するための図である。
本実施の形態では部隊(ユニット)に属する艦船(移動体オブジェクト)は、所定の配置パターンを構成する各ポジションに配置され部隊の隊列を構成する。
艦船(移動体オブジェクト)の集合である部隊(ユニット)が静止状態にあるときは、艦船は与えられたポジションに位置し、艦船(移動体オブジェクト)の集合である部隊(ユニット)が移動する場合には、与えられポジションに対応した移動後の位置を艦船目標位置として移動する。
艦船(移動体オブジェクト)の集合である部隊(ユニット)が静止状態にあるときは、艦船は与えられたポジションに位置し、艦船(移動体オブジェクト)の集合である部隊(ユニット)が移動する場合には、与えられポジションに対応した移動後の位置を艦船目標位置として移動する。
所定の配置パターンを構成する各ポジション情報は、例えば先に図18、図19で説明した部隊のポジション情報と同様に、部隊ローカル座標系における配置位置の座標等として定義し、各ポジションの部隊ローカル座標系における位置の座標等の定義テーブルを設けておいてもよい。
図27は艦船(移動体オブジェクト)の位置情報の一例を示す図である。
各艦船の位置情報として、各艦船のポジション情報640を保持する構成でもよい。各艦船のポジション情報640は、各艦船の艦船ID650に対応させて、各艦船が配置されているユニット内のポジションID660を記憶するようにしてもよい。所与の艦船がうけたダメージによりポジションの入れ替えが起こった場合には、入れ替え対象となった艦船の艦船ID6650に対応したユニット内のポジションID660は、入れ替え後の内容に更新される。
このようにすると、ポジション情報として図27に示すような各艦船のポジション情報640と、所定の配置パターンを構成するユニットの各ポジション情報を定義する部隊内ポジション定義テーブルのテーブルIDを与えることにより、ポジション情報から艦船のポジションを特定し、部隊内ポジション定義テーブルから特定したポジション対応する部隊内の相対位置座標を取得することができる。そして取得した部隊内の相対位置座標とワールド座標系における部隊の位置座標に基づき、ワールド座標系における各移動体オブジェクトの位置座標を求めることができる。
本実施形態では、各移動体オブジェクトに対して設定されている所定のパラメータに基づき各移動体オブジェクトが位置移動条件を満たすか否かを判断し、位置移動条件を満たすと判断した場合には、同じユニットに属し入れ替え対象となる他の移動体オブジェクトと当該移動体オブジェクトについて、ポジションの入れ替え処理を行う。例えば同じユニット570に属する移動体オブジェクト(艦船)580と移動体オブジェクト(艦船)590のポジションの入れ替え処理が行われると、図15に示すように、移動体オブジェクト(艦船)580は、現在移動体オブジェクト(艦船)590が位置しているポジションに移動し、現在移動体オブジェクト(艦船)590は現在移動体オブジェクト(艦船)580が位置しているポジションに移動する。
所定のパラメータとして各オブジェクトの耐久力の大きさをしめす耐久力パラメータや、各オブジェクトの体力の大きさをしめす体力パラメータや、各オブジェクトのライフの数をしめすライフ値パラメータをもちいてもでもよい。
また各オブジェクトが受けたダメージに応じて、各オブジェクトに対応付けられた所定のパラメータの値を変化させる制御を行ってもよい。例えば、各オブジェクトがダメージを受けると、受けたダメージの回数やダメージの大きさに応じて所定のパラメータの値が減少または増加し、最終的に所定の消滅基準値(例えば0)に達したら、当該オブジェクトを消滅扱いにしてもよい。
例えば艦船(移動体オブジェクト)毎に耐久力パラメータ(所定のパラメータ)を設定し、最初は100ポイントの耐久力値を与え、艦船にたいして弾が貫通した場合(艦船に弾が命中してかつ艦船に設定されたシールドを突破した場合)には、当該艦船の耐久力パラメータを10ポイント減少させる制御を行い、耐久力パラメータが所定の消滅基準値(例えば0)以下になった場合に、当該耐久力パラメータに対応した移動体オブジェクトを撃沈(消滅)させてもよい。
また所与の移動体オブジェクトが位置移動条件を満たすと判断した場合には、所与のオブジェクトが位置するポジションに対して退避エリアとなるポジションに位置する移動体オブジェクトを入れ替え対象となる他のオブジェクトとしてオブジェクトポジション入れ替え処理を行ってもよい。
図14(A)(B)は、部隊(ユニット)内の艦船(移動体オブジェクト)の配置ポジションP1〜P16と各配置ポジションに配置された艦船K1〜K15との関係を示す図である。図25(A)(B)は各ポジションと対応する退避エリアについて説明するための図である。
ユニットを構成する艦船K1〜K15が、図14(A)に示すようなポジションに位置している場合、隊列の最も外側のポジション(P16、P15、P12、P8、P10、P14、P11、P9、P13)に位置する艦船(K16、K15、K12、K8、K10、K14、K11、K9、K13)が被弾によるダメージを受けやすく、内側のポジション(P6、P2、P4、P5、P3、P7、P1)に位置する艦船(K6、K2、K4、K5、K3、K7、K1)は被弾によるダメージを受けにくい。従って内側に位置するポジションの方が外側に位置するポジションのより安全度が高いといえる。
ここで外側のポジションP16に位置し、耐久力パラメータが現在60ポイントである艦船K16が攻撃を受けて弾が貫通した場合、艦船K16の耐久力パラメータは10ポイント減少して50ポイントとなる。位置移動条件が耐久力パラメータが50ポイント以下である場合、艦船K16と他の艦船(ポジションP16の退避エリアに位置する艦船とでポジションの入れ替えがおこる。
ここでポジションP16の退避エリアがポジションP7であるとすると、ポジションP7に位置する艦船K7と艦船K16とでポジション入れ替えが行われ、図14(B)に示すように、ポジションP7に艦船K15が位置し、ポジションP15には艦船K6が位置するように艦が移動する。
ここでポジションP16の退避エリアがポジションP7であるとすると、ポジションP7に位置する艦船K7と艦船K16とでポジション入れ替えが行われ、図14(B)に示すように、ポジションP7に艦船K15が位置し、ポジションP15には艦船K6が位置するように艦が移動する。
所与のポジションの退避エリアとして所与のポジションより安全度の高いポジションを設定することで、ダメージを受けた艦船をより安全度の高いポジション(例えば被弾しにくいポジション)に移動させることができる。代わりに安全度のより高い退避エリアに位置していた艦船(あまり被弾していないので耐久力パラメータの値が減少していない艦船)が外側にくることになるが、耐久力があるので、仮に被弾して弾が貫通してもすぐには撃沈しない。耐久力パラメータの値は所定の条件下で回復するような設定にしてもよい。例えば所定時間が経過するまたは所定時間被弾、貫通しないと耐久力パラメータの値が回復するようにしてもよい。このようにすると、退避エリアに退避している艦船の耐久力が回復しやすくなる。
例えばユニットを構成する各ポジションには図25(A)に示すように安全度を示す値が対応付けられており、安全度を示す値に基づき、所与のポジションより安全度の高いポジションを選択し、所与のポジションの退避エリアとしてポジションの入れ替え処理を行ってもよい。
また各ポジションと退避エリアの対応付けを図25(B)に示すように退避エリアテーブル510として予め設定しておいても良い。退避エリアテーブル510には各ポジション(ここではポジションP16からP8)に対して設定される退避エリアのポジション530が対応付けて記憶させてもよい。
このようにすると、退避エリアテーブルを参照して入れ替え対象となる移動体オブジェクトを決定することができる。
所与のポジションに対する退避エリアは、よりユニットの中心に近いポジションやより後方のポジションとしてもよい。
また所与のポジションに対する退避エリアは、所与のポジションからの移動距離が最も短いまたは所定の基準より短いポジションをとしてもよい。
入れ替え移動を行うタイミングは、艦船(移動体オブジェクト)がダメージを受けて、艦船(移動体オブジェクト)の耐久力パラメータが所定の基準値以下になった場合でもよい。ここで所定の基準値とは例えば艦船(移動体オブジェクト)毎に設定されていてもよいし、艦船(移動体オブジェクト)が属する部隊(ユニット)や艦隊(グループ)毎に設定されていてもよいし艦船(移動体オブジェクト)や艦船(移動体オブジェクト)が属する部隊(ユニット)や艦隊(グループ)毎に設定されているパラメータの値を用いて動的に(リアルタイムに)算出した値でもよい。また例えば艦隊(グループ)の司令官の属性パラメータ(本実施の形態は艦隊毎に設定されているパラメータである)等用いて動的に(リアルタイムに)算出した値でもよい。
また、各移動体オブジェクト(ここでは艦船)に対応付けられている司令官のキャラクタに応じてポジションの入れ替え基準の異なる条件を用いて、ポジションの入れ替えの有無を判断してもよい。各司令官キャラクタに応じて、ポジションの入れ替え条件となる耐久力パラメータの値(入れ替え基準値)を異なるようにしてもよい。
例えば司令官のキャラクタの能力が高い(戦隊能力・統率が高い)場合、入れ替え基準値を高めに設定して耐久力パラメータが大きい場合でも入れ替えを行うようにしてもよい。
本実施の形態では戦闘中は部隊の前にいる艦船に弾が当たりやすいため、部隊の前にいる艦船からダメージを受けていくが、司令官キャラクターの能力パラメータが高い(戦隊能力・統率が高い)場合、耐久力パラメータが大きい場合でも入れ替えを行うため、部隊内でのダメージが各艦船に分散し、全滅しにくくなる。
例えば司令官キャラクタがS1の場合には入れ替え基準値が50ポイント、司令官キャラクタがS2の場合には入れ替え基準値が70ポイントというように、替え基準値の割合が異なるように設定すると、司令官のキャラクタに応じて、司令官がS1の艦隊より司令官がS2の艦隊のほうが艦船の入れ替えが頻度が高くなる。
消滅状態でないオブジェクトについては、ダメージに応じて減少または増加させた分の少なくとも一部について(所定の条件下で)ダメージ前の状態に回復させてもよい。
例えば所定時間経過したら耐久力が回復する設定や所定期間被弾しなかったら耐久力が回復する設定にしてもよい。このようにすると、艦船の入れ替えが頻度が高いほうが、艦船の撃沈率が低くなるので、司令官がS1の艦隊より司令官がS2の艦隊のほうが、防御力が高くなる。このように司令官のキャラクタに応じてポジションの入れ替え基準の異なる条件を用いることで、ゲームの幅がひろがり飽きられにくうゲームシステムを提供することができる。
図30は本実施の形態のダメージを受けた移動体オブジェクトのポジション入れ替え処理について説明するためのフローチャート図である。
例えば毎フレーム毎にオブジェクト空間に存在する各艦船(オブジェクト)について以下のような処理を行う。
まず各艦船(オブジェクト)がダメージを受けたか(ステップS110)いなか判断し、ダメージを受けた場合には、ダメージに応じて各オブジェクトの耐久力パラメータを変化させる(ステップS120)。ここで例えば各艦船のヒットチェック結果が命中であり、なおかつ各艦船のシールドが突破された場合(被弾した弾が貫通した場合)にダメージを受けたと判定してもよい。そしてダメージをうけた場合には耐久力パラメータを減少させる制御を行う。
各艦船がダメージを受けた場合には、ダメージによる耐久力の変化によって各オブジェクトの耐久力パラメータは消滅基準値以下になったか否か判断し(ステップS130)、消滅基準値以下になった場合には各オブジェクトの消滅処理を行う(ステップS140)。各オブジェクトの消滅処理を行う。消滅処理としては、各オブジェクトに対応付けられた消滅フラグ(図29(C)の862参照)を消滅を示す値(例えば’1’オン)にする処理を行っても良い。消滅フラグがOFF(例えば’0’)の間は、所定の条件下で耐久力パラメータの回復が可能であるが消滅フラグがオンになると耐久力パラメータの回復ができないように制御してもよい。
消滅基準値以下になっていない場合には、各オブジェクトの耐久力パラメータは入れ替え基準値以下か否か判断する(ステップS150)。各艦船の入れ替え基準値は各艦船に対応した司令官(各艦船の属する部隊の属する艦隊の司令官)のキャラクタに応じて異なる値に設定されていてもよい。
入れ替え基準値以下である場合には、同じ部隊(ユニット)に属する入れ替え対象となる艦船(オブジェクト)を決定し(ステップS160)、当該艦船と入れ替え対象なる艦船のポジション情報の入れ替えを行い、それぞれを入れ替えたポジション情報に応じた位置に移動させる制御を行う(ステップS170)。同じ部隊(ユニット)に属する入れ替え対象となる艦船(オブジェクト)は例えば図25(A)(B)で説明したように各艦隊の退避エリアを調べて、退避エリアに位置している艦船としてもよい。
9.ボリュームイメージオブジェクトの表示制御処理
図16(A)(B)は、本実施の形態のボリュームイメージオブジェクトの表示制御処理について説明するための図である。
図16(A)(B)は、本実施の形態のボリュームイメージオブジェクトの表示制御処理について説明するための図である。
ユニット(ここでは部隊)を構成するオブジェクト(ここでは艦船)の位置情報に基づき、ユニット(ここでは部隊)の外縁またはボリュームをイメージさせるボリュームイメージオブジェクト900−1、900−2の表示してもよい。
ボリュームイメージオブジェクト900−1、900−2は部隊を構成する艦船のアウトラインを可視化するい仮想的なオブジェクトであり例えば部隊を構成する艦船が見えるように半透明の立体オブジェクトとしてもよい。
例えば部隊を構成する艦船のなかで最も外側に位置する艦船の位置座標に基づきボリュームイメージオブジェクト900−1、900−2の外縁の頂点を複数決定し、決定した頂点を通る立体の画像を生成してボリュームイメージオブジェクト900−1、900−2として表示してもよい。
図16(A)(B)に示すように艦船の配置状態(艦船の配置パターンや配置数)が変化するとボリュームイメージオブジェクト900−1、900−2の形状も変化する。
かかる多数のオブジェクト集合で戦闘を行うようなゲームシステムにおいては多数のオブジェクト(ここでは艦船)で砲撃や被弾が繰り返され、全オブジェクト(ここでは艦船)の状態変化を把握するのは困難である。ところが本実施の形態では個々の艦船の位置や状態の変化の結果をボリュームイメージオブジェクトの形状の変化として把握できるので、刻々と変化する艦隊の状態を視覚的に瞬時に把握することができる。
図17に示すように味方艦隊GR3のボリュームイメージオブジェクト900−Aと敵艦隊GR4のボリュームイメージオブジェクト900−BはAとの表示態様(例えば色)を異ならせるようにしてもよい。このようにすると、敵味方の艦隊の状態を把握しやすくなる。
10.ハードウェア構成
図30に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
図30に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリーカード944からのデータはシリアルインターフェース940を介して入力される。
ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
なお、本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
そして、本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
なお、本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語(描画領域、ピクセル値、変換テーブル等)として引用された用語(フレームバッファ・ワークバッファ、α値、ルックアップテーブル等)は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
また、グループ、ユニット、オブジェクトの構成及び移動制御手法も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
また、上記実施の形態の移動時のポジションの入れ替え処理では、ユニットが複数の移動体オブジェクトの集合として構成されている場合を例に取り説明したが是に限られない。ユニットが例えば1つの移動体オブジェクトで構成される場合でもよい。
また、上記実施の形態では宇宙空間における複数の宇宙艦隊の戦闘ゲームを例にとり説明したがこれに限られず、種々のゲームに適用できる。
また、本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
100 処理部、110 画像生成部、112 オブジェクト空間設定部、113 描画部、114 仮想カメラ制御部、120 移動・動作制御部、122 グループ移動制御部、124 ユニット移動制御部、126 オブジェクト移動制御部、140 ゲーム処理部、142 陣形設定部、144 パラメータ演算部、146 パラメータ表示オブジェクト表示制御部、148 ボリュームイメージオブジェクト表示制御部、160 操作部、170 記憶部、180 情報記憶媒体、190 表示部、192 音出力部、196 通信部
Claims (14)
- オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
複数のユニットの集合であるグループの移動を制御するためのグループ移動制御情報を演算するグループ移動制御部と、
前記グループ移動制御情報及び当該グループ内における各ユニットの配置位置を示すポジション情報に基づき各ユニットの移動を制御するためのユニット移動制御情報を演算するユニット移動制御部と、
前記ユニット移動制御情報に基づき複数のユニットをオブジェクト空間に配置して、仮想カメラから見た前記オブジェクト空間の画像を生成する画像生成部と、してコンピュータを機能させ、
前記ユニット移動制御部は、
所定の移動イベントが発生した場合、グループ内の複数のユニットについて移動後のポジションの入れ替え処理を行うユニットポジションの入れ替え処理部を含み、
入れ替え後のポジションに対応した移動位置に移動させるためのユニット移動制御情報を演算することを特徴とするプログラム。 - 請求項1において、
前記ユニットポジションの入れ替え処理部は、
ポジションの入れ替えが可能に設定されたユニット群について移動後のポジションの入れ替え処理を行うことを特徴とするプログラム。 - 請求項1乃至2のいずれかにおいて、
前記ユニットポジションの入れ替え処理部は、
所与のユニットが複数のポジションを取り得る場合には、前記ポジションに基づき所与のユニットのとり得る複数のポジションに対応した移動後の位置を求め、移動前の所与のユニットの位置と所与のユニットのとり得る複数のポジションに対応した移動後の位置との距離に基づき、所与のユニットの移動後のポジションを決定することを特徴とするプログラム。 - 請求項1乃至3のいずれかにおいて、
前記ユニットポジションの入れ替え処理部は、
グループ内にポジションの入れ替え可能な複数のユニットが存在する場合には、前記複数のユニットに対して設定された優先順位に従って、優先順位の高いユニットから順に移動後のポジションを決定することを特徴とするプログラム。 - 請求項1乃至4のいずれかにおいて、
前記ユニットポジションの入れ替え処理部は、
グループ内に配置するユニットの入れ替えが可能な複数のポジションが存在する場合には、入れ替えが可能な複数のポジションに対して設定された優先順位に従って、優先順位の高いポジションから順に移動後に配置されるユニットを決定することを特徴とするプログラム。 - 請求項1乃至5のいずれかにおいて、
前記ユニットポジションの入れ替え処理部は、
移動後のポジションとユニットの対応関係が複数存在する場合には、各対応関係における入れ替え可能な各ユニットの予想移動距離の合計に基づき移動後のポジションとユニットの対応関係を決定し、決定した対応関係に従って、移動後に各ポジションに配置されるユニットを決定することを特徴とするプログラム。 - 請求項1乃至6のいずれかにおいて、
前記ユニット移動制御部は、
各グループに対して設定可能な複数の陣形について、各陣形におけるポジションの配置パターンに関する情報である陣形情報を記憶し、各グループに対して設定されている陣形に対応付けて記憶されている陣形情報に基づきグループ内における各ユニットの配置位置を決定することを特徴とするプログラム。 - 請求項7において、
前記ユニット移動制御部は、
各グループに対応付け可能な所定のパラメータの値が所定の条件を満たす場合には各グループに対して設定された陣形に従ってグループ内の各ユニットの配置位置を決定することを特徴とするプログラム。 - 請求項7乃至8のいずれかにおいて、
各グループに対応付け設定されている司令官情報に基づき、各グループに対する陣形の設定を行う陣形設定部をさらに含むことを特徴とするプログラム。 - 請求項1乃至9のいずれかにおいて、
前記グループ移動制御部が、
操作入力情報に基づいて、前記グループの目標移動位置を決定し、当該目標移動位置に前記グループを移動させるためのグループ移動制御情報を演算し、
前記ユニット移動制御部が、
各ユニットが属するグループの目標移動位置及び当該グループ内における各ユニットのポジション情報に基づいて各ユニットの目標移動位置を決定し、当該目標移動位置に各ユニットを移動させるためのユニット移動制御情報を演算することを特徴とするプログラム。 - 請求項1乃至10のいずれかにおいて、
前記ユニット移動制御情報及び当該ユニット内における各オブジェクトの配置位置を示すポジション情報に基づき各オブジェクトの移動を制御するためのオブジェクト移動制御情報を演算するオブジェクト移動制御部をさらに含み、
前記ユニット制御部は、
複数のオブジェクトの集合であるユニットの移動を制御するためのユニット移動制御情報を演算し、
前記画像生成部は、
前記オブジェクト移動制御情報に基づき複数のオブジェクトをオブジェクト空間に配置して、仮想カメラから見た前記オブジェクト空間の画像を生成することを特徴とするプログラム。 - 請求項11において、
前記オブジェクト移動制御部が、
各オブジェクトが属するユニットの目標移動位置及び当該ユニット内における各オブジェクトのポジション情報に基づいて各オブジェクトの目標移動位置を決定し、当該目標移動位置に各オブジェクトを移動させるためのオブジェクト移動制御情報を演算することを特徴とするプログラム。 - コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至12のいずれかのプログラムが記憶されていることを特徴とする情報記憶媒体。
- オブジェクト空間において仮想カメラから見える画像を生成するための画像生成システムであって、
複数のユニットの集合であるグループの移動を制御するためのグループ移動制御情報を演算するグループ移動制御部と、
前記グループ移動制御情報及び当該グループ内における各ユニットの配置位置を示すポジション情報に基づき各ユニットの移動を制御するためのユニット移動制御情報を演算するユニット移動制御部と、
前記ユニット移動制御情報に基づき複数のユニットをオブジェクト空間に配置して、仮想カメラから見た前記オブジェクト空間の画像を生成する画像生成部と、を含み、
前記ユニット移動制御部は、
所定の移動イベントが発生した場合、グループ内の複数のユニットについて移動後のポジションの入れ替え処理を行うユニットポジションの入れ替え処理部を含み、
入れ替え後のポジションに対応した移動位置に移動させるためのユニット移動制御情報を演算することを特徴とする画像生成システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008052462A JP2009207624A (ja) | 2008-03-03 | 2008-03-03 | プログラム、情報記憶媒体、及び画像生成システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008052462A JP2009207624A (ja) | 2008-03-03 | 2008-03-03 | プログラム、情報記憶媒体、及び画像生成システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009207624A true JP2009207624A (ja) | 2009-09-17 |
Family
ID=41181377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008052462A Withdrawn JP2009207624A (ja) | 2008-03-03 | 2008-03-03 | プログラム、情報記憶媒体、及び画像生成システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009207624A (ja) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5525096B1 (ja) * | 2013-09-27 | 2014-06-18 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
WO2015046447A1 (ja) * | 2013-09-27 | 2015-04-02 | グリー株式会社 | コンピュータの制御方法、制御プログラム及びコンピュータ |
JP2015205196A (ja) * | 2015-06-18 | 2015-11-19 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2016019741A (ja) * | 2015-08-14 | 2016-02-04 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2016019743A (ja) * | 2015-08-14 | 2016-02-04 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2016019744A (ja) * | 2015-08-14 | 2016-02-04 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2016019742A (ja) * | 2015-08-14 | 2016-02-04 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2016026569A (ja) * | 2015-08-14 | 2016-02-18 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2016104172A (ja) * | 2015-12-21 | 2016-06-09 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP5953448B1 (ja) * | 2016-03-30 | 2016-07-20 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2016190104A (ja) * | 2016-08-16 | 2016-11-10 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2016195865A (ja) * | 2016-08-16 | 2016-11-24 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2017056293A (ja) * | 2016-12-28 | 2017-03-23 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2017094133A (ja) * | 2016-12-28 | 2017-06-01 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2020006214A (ja) * | 2019-09-13 | 2020-01-16 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
CN111447979A (zh) * | 2018-02-27 | 2020-07-24 | 多玩国株式会社 | 游戏运行装置及游戏程序 |
JP2022017478A (ja) * | 2018-12-25 | 2022-01-25 | グリー株式会社 | プログラム、ゲームの制御方法、及び情報処理装置 |
-
2008
- 2008-03-03 JP JP2008052462A patent/JP2009207624A/ja not_active Withdrawn
Cited By (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10307678B2 (en) | 2013-09-27 | 2019-06-04 | Gree, Inc. | Computer control method, control program and computer |
US10398978B2 (en) | 2013-09-27 | 2019-09-03 | Gree, Inc. | Computer control method, control program and computer |
US11628361B2 (en) | 2013-09-27 | 2023-04-18 | Gree, Inc. | Computer control method, control program and computer |
US10328347B2 (en) | 2013-09-27 | 2019-06-25 | Gree, Inc. | Computer control method, control program and computer |
GB2535656A (en) * | 2013-09-27 | 2016-08-24 | Gree Inc | Computer control method, control program and computer |
US10307677B2 (en) | 2013-09-27 | 2019-06-04 | Gree, Inc. | Computer control method, control program and computer |
US10307675B2 (en) | 2013-09-27 | 2019-06-04 | Gree, Inc. | Computer control method, control program and computer |
US10335683B2 (en) | 2013-09-27 | 2019-07-02 | Gree, Inc. | Computer control method, control program and computer |
CN105579106A (zh) * | 2013-09-27 | 2016-05-11 | 日本聚逸株式会社 | 计算机的控制方法、控制程序以及计算机 |
JP5525096B1 (ja) * | 2013-09-27 | 2014-06-18 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
US10335682B2 (en) | 2013-09-27 | 2019-07-02 | Gree, Inc. | Computer control method, control program and computer |
US10307676B2 (en) | 2013-09-27 | 2019-06-04 | Gree, Inc. | Computer control method, control program and computer |
US9597594B2 (en) | 2013-09-27 | 2017-03-21 | Gree, Inc. | Computer control method, control program and computer |
GB2593560A (en) * | 2013-09-27 | 2021-09-29 | Gree Inc | Method for controlling computer, control program and computer |
EP3932503A1 (en) * | 2013-09-27 | 2022-01-05 | Gree, Inc. | Method for controlling computer, control program and computer |
GB2585805A (en) * | 2013-09-27 | 2021-01-20 | Gree Inc | Computer control method, control program and computer |
WO2015046447A1 (ja) * | 2013-09-27 | 2015-04-02 | グリー株式会社 | コンピュータの制御方法、制御プログラム及びコンピュータ |
US10300385B2 (en) | 2013-09-27 | 2019-05-28 | Gree, Inc. | Computer control method, control program and computer |
JP2015205196A (ja) * | 2015-06-18 | 2015-11-19 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2016026569A (ja) * | 2015-08-14 | 2016-02-18 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2016019742A (ja) * | 2015-08-14 | 2016-02-04 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2016019744A (ja) * | 2015-08-14 | 2016-02-04 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2016019743A (ja) * | 2015-08-14 | 2016-02-04 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2016019741A (ja) * | 2015-08-14 | 2016-02-04 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2016104172A (ja) * | 2015-12-21 | 2016-06-09 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP5953448B1 (ja) * | 2016-03-30 | 2016-07-20 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2016195865A (ja) * | 2016-08-16 | 2016-11-24 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2016190104A (ja) * | 2016-08-16 | 2016-11-10 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2017094133A (ja) * | 2016-12-28 | 2017-06-01 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2017056293A (ja) * | 2016-12-28 | 2017-03-23 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
CN111447979A (zh) * | 2018-02-27 | 2020-07-24 | 多玩国株式会社 | 游戏运行装置及游戏程序 |
CN111447979B (zh) * | 2018-02-27 | 2023-04-04 | 多玩国株式会社 | 游戏运行装置及终端服务器 |
JP2022017478A (ja) * | 2018-12-25 | 2022-01-25 | グリー株式会社 | プログラム、ゲームの制御方法、及び情報処理装置 |
JP7383305B2 (ja) | 2018-12-25 | 2023-11-20 | グリー株式会社 | プログラム、ゲームの制御方法、及び情報処理装置 |
JP2020006214A (ja) * | 2019-09-13 | 2020-01-16 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP2021118865A (ja) * | 2019-09-13 | 2021-08-12 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
JP7273091B2 (ja) | 2019-09-13 | 2023-05-12 | グリー株式会社 | コンピュータ、その制御方法、及びその制御プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009207624A (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP5283150B2 (ja) | プログラム、ゲーム機、及びゲームシステム | |
JP4771821B2 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2010029398A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP3747050B1 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2013063296A (ja) | プログラム及びゲームシステム | |
JP5912340B2 (ja) | プログラム、端末及びサーバ | |
JP5628488B2 (ja) | プログラム、情報記憶媒体、及び、ゲーム装置 | |
JP2009207625A (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2023018098A (ja) | プログラム、ゲーム装置、サーバ装置及びゲーム提供方法 | |
JP2017118979A (ja) | ゲーム装置及びプログラム | |
JP5182836B2 (ja) | プログラム、情報記憶媒体及びゲームシステム | |
JP5036199B2 (ja) | プログラム、情報記憶媒体、及びゲームシステム | |
JP4776017B2 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2013013450A (ja) | プログラム、情報記憶媒体、端末及びサーバ | |
JP4371283B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP2009129167A (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2010055131A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2009178479A (ja) | プログラム、情報記憶媒体、及びゲームシステム | |
JP4528008B2 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP4632855B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2011255114A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP5558008B2 (ja) | プログラム、情報記憶媒体及びゲームシステム | |
JP2006263321A (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2007164651A (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: 20110510 |