JP2012034779A - ゲーム装置の制御プログラム、記憶媒体、ゲーム装置の制御方法、及びゲーム装置 - Google Patents
ゲーム装置の制御プログラム、記憶媒体、ゲーム装置の制御方法、及びゲーム装置 Download PDFInfo
- Publication number
- JP2012034779A JP2012034779A JP2010176557A JP2010176557A JP2012034779A JP 2012034779 A JP2012034779 A JP 2012034779A JP 2010176557 A JP2010176557 A JP 2010176557A JP 2010176557 A JP2010176557 A JP 2010176557A JP 2012034779 A JP2012034779 A JP 2012034779A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- clone
- data
- body part
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 77
- 238000003860 storage Methods 0.000 title claims description 54
- 230000033001 locomotion Effects 0.000 claims abstract description 65
- 238000004364 calculation method Methods 0.000 claims abstract description 52
- 230000014509 gene expression Effects 0.000 claims abstract description 46
- 230000006870 function Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 description 54
- 230000000694 effects Effects 0.000 description 45
- 210000000988 bone and bone Anatomy 0.000 description 35
- 238000012545 processing Methods 0.000 description 28
- 230000002093 peripheral effect Effects 0.000 description 14
- 238000009877 rendering Methods 0.000 description 14
- 230000009471 action Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 9
- 210000003128 head Anatomy 0.000 description 7
- 230000007123 defense Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 4
- 239000000463 material Substances 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 210000005252 bulbus oculi Anatomy 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 210000004209 hair Anatomy 0.000 description 2
- 230000003760 hair shine Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 210000001124 body fluid Anatomy 0.000 description 1
- 239000010839 body fluid Substances 0.000 description 1
- 210000000481 breast Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 210000005069 ears Anatomy 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 210000001508 eye Anatomy 0.000 description 1
- 210000003811 finger Anatomy 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
【解決手段】キャラクタオブジェクトの部位毎にダメージ表現を行うゲーム装置を用いる。クローン作成部310は、プレーヤオブジェクト410又は敵オブジェクト430のコピーを含むクローンであるプレーヤクローンオブジェクト420又は敵クローンオブジェクト440を作成する。また、ヒット判定部325は、プレーヤオブジェクト410又は敵オブジェクト430に攻撃が当たった際の身体部位を算出する。更に、座標算出部を320は、算出された身体部位を、攻撃が当たった時間の経過に従って、プレーヤオブジェクト410又は敵オブジェクト430からローカル座標系において離れるように移動値調整を行う。これにより、プレーヤオブジェクト410又は敵オブジェクト430のいずれの攻撃かが分かりやすいダメージ表現を行うことができる。
【選択図】図1
Description
従来の対戦格闘ゲームにおいては、ヒットポイントは、敵キャラクタからの攻撃を身体のどの部位に受けたかなどを一切考慮せず、そのダメージの大きさのみに応じて減らすようになっている。
この従来技術1のゲーム装置によると、プレーヤは、ゲーム中に画面上の他の部分に気を散らされることなく、キャラクタの動きのみに集中して、ゲームを楽しむことができる。また、ダメージを受けた部位の状態をダメージの回数や大きさによって段階的に変化させることができる。したがって、たとえば対戦格闘ゲームにおいて、攻撃や防御などの動作に現実味を持たせることが可能となり、プレーヤは、より戦略的かつ緊迫したゲームを楽しむことができる。
このため、プレーヤが攻撃をした際にその攻撃が敵キャラクタに当たったのか、逆に敵キャラクタから攻撃を受けた際にその攻撃がプレーヤキャラクタに当たったのかについての判別が難しかった。
本発明の記憶媒体は、請求項1記載の制御プログラムを記憶したコンピュータ読み取り可能な記憶媒体であることを特徴とする。
本発明のゲーム装置の制御方法は、仮想三次元空間に配置されるキャラクタオブジェクトの部位毎にダメージ表現を行うゲーム装置において、前記ゲーム装置の制御部が、前記キャラクタオブジェクトのデータを含むクローンオブジェクトを作成するクローン作成部、前記キャラクタオブジェクトに攻撃が当たったとき、前記キャラクタオブジェクトを構成する身体部位の攻撃があった身体部位を判定するヒット判定部、算出された前記クローンオブジェクトの前記身体部位を、前記攻撃が当たってからの時間の経過に従って、前記キャラクタオブジェクトからローカル座標系において離れるように移動値調整を行う座標算出部として機能するように制御することを特徴とする。
本発明のゲーム装置は、仮想三次元空間に配置されるキャラクタオブジェクトの部位毎にダメージ表現を行うゲーム装置において、前記キャラクタオブジェクトのデータを含むクローンオブジェクトを作成するクローン作成部と、前記キャラクタオブジェクトに攻撃が当たったとき、前記キャラクタオブジェクトを構成する身体部位の攻撃があった身体部位を判定するヒット判定部と、算出された前記クローンオブジェクトの前記身体部位を、前記攻撃が当たってからの時間の経過に従って、前記キャラクタオブジェクトからローカル座標系において離れるように移動値調整を行う座標算出部とを備えることを特徴とする。
本発明のゲーム装置は、前記座標算出部は、更に前記クローンオブジェクトの前記身体部位を、前記時間の経過に従って拡大するよう移動値調整を行うことを特徴とする。
本発明のゲーム装置は、前記座標算出部は、前記移動値調整を、ヒエラルキーにて前記身体部位をまとめた身体単位毎に行うことを特徴とする。
本発明のゲーム装置は、前記キャラクタオブジェクトの身体部位毎のダメージ値を算出するダメージ算出部と、前記ダメージ値に従って、前記身体部位のカラーを変化させるカラー変更部とを更に備えることを特徴とする。
本発明のゲーム装置は、前記クローンの前記身体部位を、前記時間の経過に従って透明になるように描画する描画部を更に備えることを特徴とする。
〔ゲーム装置10の制御構成〕
まず、図1を参照して、ゲーム装置10の制御構成について説明する。
ゲーム装置10は、携帯型や据え置き型のコンシューマ用ビデオゲーム装置、専用の店舗に設置される業務用ビデオゲーム装置、PC(Personal Computer)、携帯電話、携帯端末、PDA(Personal Data Assistant)等である。 また、ゲーム装置10は、本実施形態に係る格闘対戦ゲームを実行するためのハードウェア資源である。
ゲーム装置10は、CPU100(制御部、ゲーム実行部)と、主記憶部110と、補助記憶部120と、BIOS130と、ペリフェラルI/F140(周辺機器接続インタフェイス手段)と、バスアービタ150と、グラフィックプロセッサ160(描画手段)と、グラフィックメモリ170と、ビデオBIOS175と、オーディオプロセッサ180と、オーディオメモリ190と、通信I/F200とを含んで構成される。
また、CPU100に、後述する主記憶部110やバスアービタ150やグラフィックプロセッサ160やオーディオプロセッサ180等の機能を備えることも可能である。
主記憶部110には、ゲーム装置10をコンピュータとして機能させるためのOSが備えられている。
また、主記憶部110には、CPU100が実行する、各種プログラムやオブジェクト等であるプロセスが補助記憶部120からロードされて記憶されている。また、このプロセスに関わるデータについても記憶している。各プロセスはOSのAPI(Application Programming Interface)を介して、ゲーム装置10の各機能にアクセス可能である。
主記憶部110に記憶されたデータとして、主記憶部110には、プレーヤキャラクタデータ210と、敵キャラクタデータ220が記憶されている。プレーヤキャラクタデータ210は、プレーヤのキャラクタに関連する値を記憶する構成部位である。また、敵キャラクタデータ220は、敵キャラクタに関連する値を記憶する構成部位である。
補助記憶部120は、後述するように、アプリやOSのプログラムやデータが記憶されている。これらのプログラムやデータは、CPU100や、DMA(Direct Memory Access)等により、主記憶部110に記憶して実行可能である。
また、補助記憶部120には、本実施形態に係る対戦格闘ゲームの対戦に係るプログラムである対戦格闘部300と、これに付随するデータとを記憶している。この対戦格闘部300については、対戦格闘のゲームプレイ時には、適宜主記憶部110等に読み出されてCPU100が実行する。
このBIOS130は、ファームウェア用のプログラムと、ゲーム装置10の各種機能を実現するためのプログラムと、これらのプログラムの設定を記憶するSRAM等の構成部位から構成されている。
具体的には、BIOS130は、ゲーム装置10が起動する際に、CPU100のマイクロコードの設定を行ったり、各部の初期化を行ったり、補助記憶部120の例えば最初のアドレスのパーティションから、OSが実行されるような指示を行う。
なお、BIOS130のプログラムをNOR型フラッシュメモリ等に記憶し、BIOS130の設定を記憶するフラッシュメモリやバッテリバックアップSRAM(Static Random Access Memory)や、EEPROM等の書き換え可能な不揮発性のメモリ等を別に備えていてもよい。
ペリフェラルI/F140は、主に、携帯型や据え置き型のコンシューマ用ビデオゲーム装置、PC等の場合は、ボタン、ジョイスティック、ジョイパッド、タッチパネル等の入力部、振動モーター等のフォースフィードバック部等を接続するためのインタフェイスとなる構成部位である。
また、ペリフェラルI/F140は、専用の店舗に設置される業務用ビデオゲーム装置の場合、照明、ICカードリーダ/ライタ、スイッチ、コイン投入部等のような周辺機器と接続することができる。
他にも、スティック型コントローラー、加速度検出器、振動装置等のフォースフィードバック装置、足踏み/手押し式のスイッチ、ディスプレイモニタの画面上の位置を検出する位置検出器、タッチパッド、タッチパネル、キーボード、マウスやトラックボール等のポインティングデバイス等を、ペリフェラルI/F140に接続して用いることができる。
また、ペリフェラルI/F140は、電子スイッチ等を制御することもでき、各種周辺機器の電源をオン/オフにして消費電力を抑えたりすることもできる。
また、例えば、CPU100と、主記憶部110と、バスアービタ150の間はFSBやHTといった高速なバスで接続され、グラフィックプロセッサ160とバスアービタ150の間も広帯域なバスで接続されるのが好適である。
なお、CPU100にDDR2/3 SDRAMやXDR DRAM等のバスインタフェイスが内蔵されて、主記憶部110を直接読み書きするように構成されていてもよい。
また、グラフィックプロセッサ160は、描画された画像をディスプレイモニタやプロジェクタ等の表示装置に出力するため、RAMDAC(RAM D/Aコンバーター)やHDMIインタフェイス等を備えている。
なお、ディスプレイモニタを、ゲーム装置10に備えるような構成も可能である。携帯型ゲーム装置や携帯端末や携帯電話等を用いる場合、このディスプレイモニタには液晶、有機EL、LED、LEDアレイ、MEMSプロジェクタ等を用いることができる。
レンダリング部164は、座標計算されたポリゴンについて、テクスチャと呼ばれる画像データを貼り付け、各種効果を加えてグラフィックメモリ170に描画する構成部位である。この各種効果としては、プログラマブル・シェーダ等を用いて、光点・影(シェーディング)計算、明暗の表現、半透明、ぶれ、霧、ぼかし、HDR(ハイダイナミックレンジ合成)等の計算を行うことができる。また、レンダリング部164が描画するポリゴンの種類としては、点ポリゴン(ポイント)、線ポリゴン(ラインリスト)、三角形や四角形といった面ポリゴン、面ポリゴンの集合体等がある。加えて、レンダリング部164がレイトレーシング(Ray Tracing)等を用いて描画を行う際には、円、楕円、球、メタボール等の領域で定義される物体を描画することも可能である。
なお、ジオメトリ部162を、CPU100にて処理するように構成することも可能である。この場合は主記憶部110に記憶するプログラムをCPU100が実行して作成したポリゴンの座標を、グラフィックメモリ170に転送等を行う。レンダリング部164は、このポリゴンの座標に従って、ポリゴンを描画する。
さらに、グラフィックプロセッサ160には、図示しない物理エンジン部を備えてもよい。物理エンジン部は、ポリゴン同士の衝突演算や、服や波の動きといった物理現象のシミュレートをCPU100より高速に実行することができる。
たとえば、このグラフィックメモリとして、GDDR(Graphics Double Data Rate(グラフィックス・ダブル・データレート))等の広帯域なメモリを高レベルのメモリインターリーブ等を用いて接続することができる。
また、システムLSIのようにグラフィックメモリをグラフィックプロセッサ160に内蔵する構成も可能である。
また、グラフィックプロセッサ160が描画している間に、ディスプレイモニタに表示するためのデュアルポート構成をとることも可能である。
さらに、グラフィックメモリ170には、本実施形態の対戦格闘ゲームに係る3次元物体の描画用データ等(オブジェクト)であるプレーヤオブジェクト410、プレーヤクローンオブジェクト420、敵オブジェクト430、敵クローンオブジェクト440、ヒットエフェクトオブジェクト450、背景オブジェクト460等を備えている。
プレーヤオブジェクト410の各データの詳細については、後述する。
このプレーヤオブジェクト410の詳細についても、後述する。
敵オブジェクト430は、具体的な描画用オブジェクトとしてのデータについては、プレーヤオブジェクト410と同様の属性のデータを記憶する。
ヒットエフェクトオブジェクト450は、ギザギザや球状の爆発パターン等の視覚効果を与えるポリゴンの座標、テクスチャ、アニメーションデータ等を備えている。このテクスチャに関しては、描画時にアニメーションするように設定することができる。
なお、ヒットエフェクトオブジェクト450は、複数の種類のヒット時に用いるオブジェクトを含ませることができる。この際、ヒットエフェクトオブジェクト450は、各キャラクタが「技」を使って攻撃した際に、各キャラクタオブジェクトに重ねて表示する効果、例えば炎や雷のような表示をするためのオブジェクトも備えることもできる。
さらに、背景オブジェクト460には、各キャラクタが移動する地面や地形の3次元座標データ等である地面メッシュデータ、及び地面として設定されるワールド座標系における座標について記憶する。なお、地面メッシュデータの各頂点の高さは、地面として設定されるワールド座標系における座標と同じか高く設定することが好適である。すなわち、地面として設定されるワールド座標系における座標は、キャラクタオブジェクトが移動する最低点や基準点となる高さを示す。
加えて、背景オブジェクト460には、各キャラクタの移動範囲を限定するための領域データ等を含ませることができる。
CPU100が、パッチによりこのビデオBIOS175を更新することで、グラフィックプロセッサ160の機能や表示品質を向上させたり、表示上の不都合(バグ)を直したりすることができる。
オーディオプロセッサ180の出力は、D/A(デジタル・アナログ)変換され、デジタルアンプ等に接続されて、スピーカーで音楽や音声や効果音として再生される。また、オーディオプロセッサ180は、マイクから入力した音声の音声認識等にも対応することができる。
オーディオメモリ190は、音楽や音声や効果音のためのデジタル変換されたデータを記憶している記憶媒体である。オーディオプロセッサ180とオーディオメモリ190とを一体的に構成することも当然可能である。
通信I/F200からネットワークを介して、ゲーム装置10は、アプリやOSやパッチ等をマスターサーバからダウンロードすることができる。また、逆に、通信I/F200を用いて、ゲーム装置10同士、又は他のゲーム装置10で、複数のプレーヤによる対戦ゲーム(対戦などの競争を行うゲーム。以下、同じ。)又は共同ゲーム(協力して課題を解決するゲーム。以下、同じ。)をすることができる。また、複数のゲーム装置10が通信可能に接続されることで、サーバ等を介して、ゲームスコア(点数、得点等、以下スコアという。)の集計や、他の遊戯施設に配置されたゲーム装置との間で対戦ゲームを行ったり、ランキングを集計したりすることが可能である。
次に、補助記憶部120に記憶された対戦格闘部300の詳細について説明する。
対戦格闘部300は、主にクローン作成部310、座標算出部320、ヒット判定部325、ダメージ算出部330、カラー変更部340、描画部350を含んで構成される。
このように、本実施形態に係るゲーム装置10は、プレーヤや敵キャラクタの分身であるクローンのデータを常に備える必要がないため、記憶容量を抑えることができる。特にゲーム装置10が携帯型のゲーム装置等のように、いわゆる据え置き型のゲーム装置と比べ、主記憶部110やグラフィックメモリ170や補助記憶部120の記憶容量に制限がある場合であっても、これにより、主記憶部110やグラフィックメモリ170や補助記憶部120への負担を軽減でき、他の処理に資源を振り向けることができる。
すなわち、座標算出部320は、プレーヤキャラクタと敵キャラクタの、各キャラクタを基準点(中心)とした座標系であるローカル座標系にて、プレーヤクローンオブジェクト420の描画に関する座標を算出する。
また、座標算出部320は、プレーヤキャラクタと敵キャラクタとが配置される仮想三次元空間のワールド座標系において、各キャラクタオブジェクトや、背景オブジェクト460の描画に関する座標を算出することもできる。
また、当たり判定の際、ヒット判定部325はヒットしたキャラクタオブジェクトについて、どの身体部位にヒットしたかを検出することができる。後述するように、このヒットした身体部位より大きな身体単位にて、ダメージ表現を行うことができる。
なお、この当たり判定については、グラフィックプロセッサ160において、物理エンジン部によりモデルのポリゴン同士の交差を検知する構成としてもよい。
後述するように、このダメージ値の累積した値が所定値以上になる、すなわちダメージへの耐久値を示す体力値、「ヒットポイント(HP)」が所定値以下になることで、対戦格闘における勝ち負けを決定することができる。
この色の算出として、カラー変更部340は、例えば、各身体単位において、ダメージ値が大きくなるほど、赤みの強い色に設定する、つまり、白から赤になるような色に算出することができる。
また、カラー変更部340は、プレーヤクローンオブジェクト420の各身体単位について、この算出した色に変更して描画するよう指示することもできる。
その他に、描画部350は、ビューポイント(仮想空間における仮想視点、仮想カメラの位置)の座標を指示したり、各種メッセージや得点等の描画の指示も行う。
ここで、図2を参照して、主記憶部110に記憶されるプレーヤキャラクタデータ210の詳細な構成について説明する。プレーヤキャラクタデータ210は、キャラクタ属性データ211、技データ212、身体部位ダメージデータ213−1〜213−nを含んで構成される。
技データ212は、プレーヤキャラクタの対戦格闘において使用できる「技」を記憶する部位である。この技は、CPU100がペリフェラルI/F140に接続されたボタン等の押下やスライド等による入力情報(入力信号)を検知して、攻撃時にプレーヤの指示に従った技のアニメーションを描画する。
身体部位ダメージデータ213−1〜213−nは、各身体部位のダメージについて記憶しているデータである。CPU100は、このダメージ値が所定値以上になった場合、すなわち、その身体部位を用いて攻撃できなくなり、その身体部位の移動範囲等を制限する。そして、当該キャラクタのすべての身体部位のダメージ値が所定値以上になった場合、負けとなる。つまり、ヒットポイントが0等の所定値以下になると、負けとなる。
なお、主記憶部110に記憶された敵キャラクタデータ220も、キャラクタ属性データ211と同様のデータを備えている。
ここで、図3と図4とを参照して、グラフィックメモリ170に記憶されるプレーヤオブジェクト410とプレーヤクローンオブジェクト420の詳細な構成について説明する。
プレーヤオブジェクト410は、全体座標データ510、ヒエラルキーデータ512、身体部位モデルデータ513−1〜513−n、ボーンデータ514、アニメーションデータ515−1〜515−n、及びテクスチャデータ517を備えている。
プレーヤクローンオブジェクト420は、全体座標データ520、ヒエラルキーデータ522、身体部位モデルデータ523−1〜523−n、ボーンデータ524、アニメーションデータ525−1〜525−nを備えている。
この全体座標データ510は、身体部位のうち、例えば、ヒップのモデルである身体部位モデルデータ513−4の中心と定めた位置を基準として設定することができる。
なお、身体部位モデルデータ513−4の中心と定めた座標(ヒップの座標)は、プレーヤオブジェクト410のローカル座標系での中心点としても用いる。
また、本実施形態においては、特に言及しない限り、X軸を幅方向、Y軸を高さ方向、Z軸を奥行き方向として扱う。
図4を参照して説明すると、ヒエラルキーデータ512は、それぞれ、頭部、胴部、左腕部、右腕部、左脚部、右脚部のような身体単位のリストを記述する。たとえば、頭部は身体部位モデルデータ513−1、513−2を含む部位である。また、胴部は、身体部位モデルデータ513−3、513−4を含む部位である。また、左腕部は、身体部位モデルデータ513−5〜513−7を含む部位である。また、右腕部は、身体部位モデルデータ513−8〜513−10を含む部位である。また、左脚部は、身体部位モデルデータ513−11〜513−13を含む部位である。また、右脚部は、身体部位モデルデータ513−14〜513−16を含む部位である。
また、ヒエラルキーデータ512は、各身体単位の間の接続の関係についても、リストのような構造として記憶する。たとえば、頭部は胴部と接続し、胴部は頭部・左腕部・右腕部・左脚部・右脚部と接続し、左腕部は胴部と接続し、右腕部は胴部と接続し、左脚部は胴部と接続し、右脚部は胴部と接続するといった身体単位の接続関係のリストを記憶する。
この上で、ヒエラルキーデータ512は、各身体単位内での接続の方向を含む関係についてもリストのような構造で記述する。たとえば、左腕部は、左上腕部である身体部位モデルデータ513−5の次に身体部位モデルデータ513−6が接続され、その先に手である身体部位モデルデータ513−7が接続されているといったリストを記憶する。なお、ヒエラルキーデータ512は、さらに細かな身体部位についてのモデルのデータを含む場合は、その接続についても記述できる。たとえば、左碗部の場合、身体部位モデルデータ513−7の先に手の指がある場合には、そのモデルとの接続関係のリストを記述することもできる。また、頭部の場合、眼球のデータを記述することもできる。
身体部位モデルデータ513−1〜513−nは、各ポリゴン又は各メッシュの頂点単位で、例えば、ポリゴンの各頂点の法線ベクトル、色、描画するテクスチャの種類と描画座標、反射光の光度、透明度(アルファブレンド値)、材質(マテリアル)、適用するシェーダー(影)、ボーンの影響度等のレンダリング(描画)に用いる各種データを記憶する。また、身体部位モデルデータ513−1〜513−nは、ローカル座標での座標や線分の接続リスト等も記憶する。
身体部位モデルデータ513−1〜513−nについては、グラフィックプロセッサ160が、それぞれ、ヒエラルキーデータ512の接続関係に従って、ボーンデータ514とアニメーションデータ515−1〜515−nを基に描画する。この際、ヒエラルキーデータ512の身体単位のリストや身体単位の接続関係を示すリストを用いて、身体単位毎に描画することができる。
なお、身体部位モデルデータ513−1〜513−nについて、ポリゴンではないメタボール等の領域指定のデータを記憶することも可能である。
図4を参照すると、ボーンデータ514は、身体部位モデルデータ513−1〜513−nの接続点(関節)を記述し、ヒエラルキーデータ512の接続の記述に従ってつなげるように直線又は曲線の集合にて記憶する。この際、ボーンデータ514は、各身体部位に対する関節の移動の方向と自由度を記述してもよい。
また、各身体部位の座標と向きに関しては、クォータニオン(Quaternion)のような形式で記憶しておいてもよい。
なお、ボーンデータ514は、髪の毛、指、眼球、耳、胸、筋肉等の更に細かい身体部位等についてのボーンや、衣服、アクセサリー、道具、身体の付属物についてのボーンを用意することもできる。
また、ボーンデータ514の中心を表す座標として、上述のヒップの座標を用いる。
具体的に、アニメーションデータ515−1〜515−nは、プレーヤキャラクタの歩行、ジャンプ、攻撃時の技といった各動作におけるボーンデータ514の変形と各関節の方向等の変化について記憶している。
たとえば、アニメーションデータ515−1〜515−nとして、各関節の座標の変化をアニメーションの動きの単位であるモーション単位で記憶しておくことができる。
また、テクスチャデータ517には、法線マップ、ミップマップ、微少な凹凸をディスプレースメント・マッピング等の手法で表現するための高さマップ等のテクスチャのデータも記憶できる。
さらに、テクスチャデータ517には、透明度を記述するアルファブレンディングの値として用いるテクスチャ、その他のシェーダー等で用いる特殊なテクスチャについても記憶することもできる。
さらに、当たり判定に用いる方向付きの長方体等、所定の座標範囲の当たり判定用ボックスのデータ等を、当たり判定用のオブジェクトとして用意することもできる。
また、図4は人物の直立形式で描いているものの、各身体部位の初期位置は任意である。たとえば、両手を左右に広げた状態のプレーヤオブジェクト410を作成することもできる。
このため、全体座標データ520は全体座標データ510と、全体座標データ520は全体座標データ510と、身体部位モデルデータ523−1〜523−nは身体部位モデルデータ513−1〜513−nと、ボーンデータ524はボーンデータ514と、アニメーションデータ525−1〜525−nはアニメーションデータ515−1〜515−nと、それぞれ同様のデータを備えている。
ここで、ヒエラルキーデータ522については、身体単位毎に直接描画するためポインタを、例えば身体単位のリストに加えて記憶すること等が好適である。
加えて、プレーヤクローンオブジェクト420は、テクスチャデータ517を備えない構成とすることができる。この場合、コピーして作成したプレーヤクローンオブジェクト420に、所定色のテクスチャを設定することができる。この所定色のテクスチャは、例えば、例えば白や赤といった所定色のテクスチャをコピー作成前又はコピー作成後に、データフィル等にて作成することができる。また、コピー作成前又はコピー作成後に、単色のテクスチャを補助記憶部120から読み込んで、プレーヤクローンオブジェクト420に設定することもできる。
なお、プレーヤクローンオブジェクト420に、ヒットエフェクトオブジェクト450のテクスチャを設定することも可能である。この場合は、プレーヤオブジェクト410から必要なデータをコピーした後に、ヒットエフェクトオブジェクト450からテクスチャのみをコピーして設定することが好適である。
また、プレーヤクローンオブジェクト420についても、テクスチャデータ517、又はプレーヤクローンオブジェクト420専用のテクスチャデータを備えるように構成することも可能である。この際は、コピー作成前又はコピー作成後に、テクスチャデータを補助記憶部120から読み込んで、プレーヤクローンオブジェクト420に設定することができる。
また、プレーヤクローンオブジェクト420は、プレーヤオブジェクト410のデータをメモリ空間上に直接コピーして記憶する必要はなく、ポインタ等の形式でプレーヤオブジェクト410のデータを指し示すようにコピーするような構成も可能である。
ここで、ゲーム装置10の対戦格闘処理について詳しく説明する。
本発明の実施の形態に係る対戦格闘処理においては、プレーヤが入力部によりプレーヤキャラクタの動作や技等を指示し、CPU100や他の対戦相手が敵キャラクタの動作や技等を指示する。
CPU100は、このプレーヤからの指示(入力情報・入力信号)を検知すると、対戦格闘部300を用いて、プレーヤキャラクタと敵キャラクタとを戦わせるように各種の処理を行う。これにより、対戦格闘(バトル)を行う。
この対戦格闘中、CPU100は、各キャラクタがダメージを受けた際、頭部・胴部・左腕部・右腕部・左脚部・右脚部等の各身体単位について、実時間(リアルタイム)に、衝撃をグラフィカルに表現するダメージ表現を行う。
以下で、この対戦格闘処理の全体的な処理の各ステップについて、図5のフローチャートを参照して、詳細に説明する。
まず、CPU100は、対戦格闘部300を用いて、バトル初期化処理を行う。
具体的には、CPU100は、初期化処理として、まず、CPU100は、各構成部位の初期化を行う。
また、CPU100は、敵キャラクタと遭遇する演出画面を表示したり、対戦を選択する等の画面を表示してプレーヤにプレーヤキャラクタや敵キャラクタを選択させる。これにより、プレーヤは、プレーヤキャラクタ及び対戦相手の敵キャラクタを選択する。
その後、CPU100は、プレーヤキャラクタデータ210と、敵キャラクタデータ220とを初期化し、その他のデータについても必要なデータを初期化する。
そして、CPU100は、必要なデータを補助記憶部120から読み出して、解凍処理等を行い、各記憶部に配置する。たとえば、CPU100は、背景オブジェクト460を補助記憶部120から読み出してグラフィックメモリ170に記憶し、音声ファイルをオーディオメモリ190に記憶する。この際、CPU100は、読み込み中である「Now Loading..」等の画面を表示し、プレーヤを飽きさせないようにすることができる。
次に、CPU100は、対戦格闘部300を用いて、モデル読み込み処理を行う。
具体的に、CPU100は、プレーヤオブジェクト410と敵オブジェクト430とを、補助記憶部120から読み出し、グラフィックメモリ170に記憶する。
この際に、CPU100は、プレーヤオブジェクト410と敵オブジェクト430、それぞれのデータについて、プレーヤオブジェクト410と敵オブジェクト430を、グラフィックプロセッサ160が描画できる形式に変換して記憶することができる。
このため、CPU100は、描画に最適な順番に並べ替えたり、必要なデータを演算して作成する。たとえば、各身体部位モデルのポリゴンの法線ベクトルをポリゴンの頂点の座標から計算して記憶することができる。
次に、CPU100は、対戦格闘部300の特にクローン作成部310をクローン作成処理を行う。
この処理において、CPU100は、プレーヤオブジェクト410のヒエラルキーデータ522(図3)を作成し、各データに係る記憶領域を確保する。この際に、CPU100は、身体単位毎に描画できるよう、ヒエラルキーデータ522にポインタを加えることができる。
この上で、CPU100は、プレーヤオブジェクト410の必要なデータをコピーして、プレーヤクローンオブジェクト420を作成する。
そして、身体部位モデルデータ523−1〜523−nの各ポリゴンについて、所定色の色を設定する。この色としては、初期値として白(Red:100%、Green:100%、Blue:100%)を設定することができる。
敵オブジェクト430についても、同様に敵オブジェクト430から敵クローンオブジェクト440を作成する。
なお、身体部位モデルデータ523−1〜523−nについて、初期値としての色設定の代わりに、ヒットエフェクトオブジェクト450のヒットエフェクトモデルを表示するモデルの色、テクスチャ、マテリアルを設定すること等ができる。これにより、ヒットエフェクトとダメージ表現の統一性を持たせることができ、プレーヤに演出を分かりやすく表現することができる。
次に、CPU100は、対戦格闘部300の各部を用いて対戦/描画処理を行う。
具体的に、CPU100は、プレーヤによるプレーヤキャラクタの動作の指示をペリフェラルI/F140から取得し、プレーヤオブジェクト410の全体座標データ510におけるワールド座標系の座標を移動させる。この際、CPU100は、攻撃の指示があった場合は攻撃し、さらに指示があった場合には「技」を出し、防御の指示の場合には防御を行う等の動作をさせる。また、CPU100は、これらの動作に付随したアニメーションを適用する。
この際、CPU100は、まず、グラフィックプロセッサ160に、背景オブジェクト460を描画するよう指示する。この描画においては、空や遠くにある背景等を描画し、ビューポイント(仮想空間における仮想視点、仮想カメラの位置)における背景オブジェクト460を、アニメーション等を行った上で、それぞれ描画する。このビューポイントは、座標算出部320を用いて、プレーヤオブジェクト410の全体座標データ510を基に算出する。
描画時には、ZバッファやZソート等を用いた上でオブジェクト同士の配置を適切な位置関係になるように描画する。
なお、レイトレーシング(光線追跡法)やラジオシティの計算等により描画を行うこともできる。さらに、複数の視差にて閲覧可能な三次元ディスプレイやホログラムディスプレイの表示用の描画を行うことも可能である。
この上で、ジオメトリ部162は、変形したボーンデータ514を、ヒエラルキーデータ512を用いて身体部位モデルデータ513−1〜513−nにより適用して変形する。
さらに、ジオメトリ部162は、スプライン関数等を用いて、ポリゴンがなめらかになるよう変形したり、より自然に見えるようにポリゴンを分割するテッセレーション等を行い、ディスプレースドマッピング等を用いて、ポリゴンのディテールを上げて表示することもできる。
なお、このビューポイントの位置や視界範囲は、プレーヤの指示により切り換えることができる。
その後、CPU100は、グラフィックプロセッサ160を用いて、プレーヤオブジェクト410と同様に敵オブジェクト430を描画する。
次に、CPU100は、プレーヤキャラクタ又は敵キャラクタが攻撃を行っていた場合、対戦格闘部300のヒット判定部325を用いてヒット判定処理(ヒット検出処理)を行う。
まず、CPU100は、攻撃を行った側(攻撃側)のプレーヤキャラクタである場合、プレーヤオブジェクト410の全体座標データ510が、敵オブジェクト430と所定距離内、具体的には、身体部位が接触する可能性がある範囲内にあるか否かを算出する。
敵オブジェクト430が所定範囲内にあった場合、CPU100は、攻撃を行った身体部位に対応する身体部位モデルデータ513−1〜513−n及び剣やナイフ等の付随するオブジェクトと、敵オブジェクト430の身体部位のポリゴンの座標がワールド座標系にて交差しているか所定の攻撃範囲内に近接している場合、ヒットしたと検出する。CPU100は、この演算を高速に行うため、当たり判定用のオブジェクトを用いてもよい。
また、ヒットの検出時に、敵オブジェクト430のどの身体部位にヒットしたかを検出する。
攻撃を行ったのが敵キャラクタである場合にも、CPU100は、プレーヤオブジェクト410に対して、同様のヒットの検出を行う。
次に、CPU100は、上述のヒット判定処理において、攻撃がヒットしたか否かを判定する。つまり、いずれかの攻撃を行った側のオブジェクトと、攻撃を受けた側の身体部位とが接触していた場合、Yesと判定し、それ以外の場合にはNoと判定する。
Yesの場合、CPU100は、処理をステップS107に進める。
Noの場合、CPU100は、処理をステップS108に進める。
攻撃がヒットした場合、CPU100は、対戦格闘部300を用いて、ダメージ表現処理を行う。
このダメージ表現処理において、CPU100は、攻撃がヒットした側のクローンオブジェクトを、身体単位にて、身体から攻撃方向に離れて拡大して消えるような表現を行う。この際、各身体部位のダメージから身体単位でのダメージを求め、色を変更する等の表現を行って表示する。
このようなダメージ表現を行うことで、本実施形態においては、ヒットポイントそのものをメーター表示するといった従来のダメージ表現を行わなくても、適切にプレーヤがプレーヤキャラクタや敵キャラクタのダメージを推測することができる。よって、ゲームの臨場感やゲーム性を高めることができる。
このダメージ表現処理の詳細については後述する。
次に、CPU100は、対戦格闘部300のダメージ算出部330を用いて、ヒットポイントが0以下になったか否かを判定する。このヒットポイントは、プレーヤキャラクタの場合、プレーヤキャラクタデータ210の身体部位ダメージデータ213−1〜313−nのダメージ値により判定することができる。すなわち:
ヒットポイント = 所定値 − 身体部位ダメージデータ213−1〜313−nのダメージ値の合計 …… 式(1)
この式(1)の所定値としては、ダメージ値の合計の最大値等を用いることができる。
CPU100は、このヒットポイントの値が0以下になった場合、Yesと判定する。これとは別に、例えば、頭部のような所定の身体単位のダメージ値が所定値以上になった場合には、Yesと判定するように設定することもできる。それ以外の場合にはNoと判定する。
Yesの場合、CPU100は、処理をステップS109に進める。
Noの場合、CPU100は、処理をステップS104に戻して、対戦格闘の各処理を続ける。
ヒットポイントが0以下になった場合、CPU100は、対戦格闘部300を用いてバトル終了処理を行う。
具体的に、CPU100は、負けた方のキャラクタが倒れたり目を回したりするようなアニメーションを行い、勝った方のキャラクタがガッツポーズをする等のアニメーションを行い、「YOU WIN」(勝ち)の文字を表示する等、対戦格闘が終了した旨の画面を表示する。
ここで、プレーヤキャラクタが負けてゲームオーバーの場合には、ゲームオーバー画面を表示する。逆に、プレーヤキャラクタが勝った場合には、対戦格闘処理以外のゲーム処理や別の対戦格闘処理を行う。
その後、敵オブジェクト430や敵クローンオブジェクト440、背景オブジェクト460等、次のバトルにおいて使用しないデータをグラフィックメモリ170から解放、消去する。
以上により対戦格闘処理を終了する。
ここで、図6〜図9Bを参照して、ダメージ表現処理の詳細について説明する。
本発明の実施の形態に係るダメージ表現処理においては、上述したように、プレーヤクローンオブジェクト420や敵クローンオブジェクト440の身体単位が、攻撃の向きに押し出されて身体から離れてゆくような表現を行う。この処理は、CPU100が、対戦格闘部300の各部を用いて行う。
以下、このダメージ表現処理の具体的な処理内容の詳細について、図6のフローチャートを参照して説明する。
まず、CPU100は、対戦格闘部300のヒット判定部325を用いて、ダメージ方向算出処理を行う。
図7の平面図を参照して、敵オブジェクト430の攻撃がプレーヤオブジェクト410にヒットした例について説明する。
ここでは、敵オブジェクト430は、「パンチ」の技を選んでおり、左腕部がプレーヤオブジェクト410の身体部位モデルデータ513−3にヒットしている。
ここで、CPU100は、敵オブジェクト430の左腕部の移動方向と、プレーヤオブジェクト410の身体部位モデルデータ513−3とのワールド座標系でのX、Y、Z軸における角度を算出する。この上で、CPU100は、算出したワールド座標系の角度から、プレーヤオブジェクト410のローカル座標系の中心点を基準としたX、Y、Z軸における角度として、ダメージを受けた方向(ダメージ方向)を算出することができる。
また、同様に、背景オブジェクト460の壁や固定物等のオブジェクトにプレーヤオブジェクト410が打ち付けられた際には、地面の場合と同様に、打ち付けられた身体部位の移動方向と、当該壁や固定物等のオブジェクトとのワールド座標系でのX、Y、Z軸における角度を算出する。これによりローカル座標系のX、Y、Z軸における角度となるダメージ方向を算出することができる。
また、上述の説明では、身体部位単位でのダメージ方向の算出について説明したが、身体単位でダメージ方向を算出しても、キャラクタオブジェクト全体についてのダメージ方向を算出してもよい。
さらに、より単純には、ヒットしたキャラクタオブジェクトのローカル座標系にて後方の角度をダメージ方向として算出することもできる。
次に、CPU100は、ヒット判定部325を用いて、ダメージ身体単位算出処理を行う。
この処理は、身体部位から、クローンによりダメージ表現を行う身体単位を決定するために行う。このため、CPU100は、ヒエラルキーデータ512の身体部位のリストを用いて、ヒットした身体部位が、どの身体単位に属するのかを検索する。
図7の例では、CPU100は、ヒットされたプレーヤオブジェクト410の身体部位モデルデータ513−3は「ボディ」に係る身体部位であり、身体単位としては胴部にあたることを検索する。
次に、CPU100は、対戦格闘部300のダメージ算出部330を用いて、ダメージ値算出処理を行う。
具体的に、CPU100は、上述のダメージ方向算出処理により得られたダメージの方向と速度、技の強さ、防御のタイミング、ヒットされた身体部位のダメージへの耐久度、衣服等の防御力等から、ヒットされた身体部位のダメージ値を算出する。
プレーヤオブジェクト410がヒットされた場合、CPU100は、このダメージ値を、プレーヤキャラクタデータ210の、対応する身体部位ダメージデータ213−1〜213−nに加える。敵オブジェクト430がヒットされた場合にも、同様にダメージ値を算出して、敵キャラクタデータ220の身体部位ダメージデータに加える。
その後、CPU100は、算出された身体部位のダメージ値を合計や最大値を求める等して、ヒットされた身体単位のダメージ値をさらに算出する。
なお、CPU100は、この処理にて算出した身体単位でのダメージ値から、ヒットポイントを計算することもできる。
次に、CPU100は、対戦格闘部300の座標算出部320を用いて、移動量・拡大率算出処理を行う。
以下において、本実施形態に係るプレーヤオブジェクト410は、ローカル座標系のX、Y、Z軸を基準とし、ヒットを表現するアニメーションにおいて、ボーンデータ514の中心を表す部位であるヒップの身体部位モデルデータ513−4の中心と定めた座標(ヒップの座標)を中心として説明する。
ここでは、まず、ダメージ方向算出処理において、ローカル座標系において算出されたダメージ方向から、ローカル座標系におけるボーンの移動量となるX軸上の移動量x、Z軸上の移動量zを用いて、時間tに係る移動量であるx',z'を算出する。
この上で、時間tに従って線形的に値を増幅する関数:
[x' z'] = f(x,z,t) …… 式(2)
により、移動後の座標であるx',z'を求める。このx',z'は、後述するように、プレーヤクローンオブジェクト420のボーンデータ524のヒップの座標に適用する。
a = f(t) …… 式(3)
により求める。
なお、拡大率、透明度は別々の係数を、別々の関数にて求めることもできる。
たとえば、1モーションが1/15秒で表示される場合には、この1/15秒を時間間隔の単位として求めることができる。
また、図5の対戦/描画処理(ステップS104)を1回行う1フレームの時間間隔を単位として求めることもできる。たとえば、1フレームが1/60秒であった場合、時間tを1/60秒にすることができる。
次に、CPU100は、座標算出部320を用いて、ダメージアニメーション処理を行う。
具体的に、CPU100は、ヒットされたプレーヤクローンオブジェクト420又は敵クローンオブジェクト440のボーンデータ524等に時間tに係るアニメーションのモーションを適用する。
この際、CPU100は、ダメージ値算出処理(ステップS203)において算出されたダメージ値により異なるアニメーションを適用する。たとえば、ダメージ値が大きい、すなわち強くダメージを受けた場合には大きくよろめくアニメーションを行う。逆に、ダメージ値が小さい場合には、少し身体が傾くようなアニメーションを行う。つまり、大きいダメージ値の方が、ボーンに適用する座標変化が大きなアニメーションを用いる。
言い換えれば、このアニメーションの適用として、CPU100は、例えば、プレーヤオブジェクト410がヒットされたと判断した場合、ダメージ値算出処理(ステップS203)において算出されたダメージ値により、異なるアニメーションデータ515−1〜515−nを選択する。すなわち、ボーンデータ514の行列に、選択されたアニメーションデータ515−1〜515−nのいずれかのうち、時間tに係るモーションの行列を設定することで行う。
また、このダメージ値によるアニメーションは、プレーヤオブジェクト410又は敵オブジェクト430の全身について、ステップS104の対戦/描画処理(図5)を行う際にも適用する。
この際に、プレーヤオブジェクト410又は敵オブジェクト430と、プレーヤクローンオブジェクト420又は敵クローンオブジェクト440との間で、異なるアニメーションを適用してもよい。
また、アニメーションのモーションの時間tをずらして表現することもできる。たとえば、プレーヤオブジェクト410のボーンデータ514には、時間tのアニメーションのモーションを適用し、プレーヤクローンオブジェクト420のボーンデータ524には、時間(t+所定時間)のアニメーションのモーションを適用することができる。
これにより、キャラクタオブジェクトとクローンオブジェクトとで時間的に異なる動きを表現させることができ、モーションブラー(motion blur)のような動きを2つのオブジェクトの描画という軽い処理でプレーヤに感じさせることができ、ゲームの演出性を高めることができる。
次に、CPU100は、座標算出部320を用いて、クローンオブジェクトに対するワールド座標算出処理を行う。
CPU100は、上述の移動量・拡大率算出処理にて求めたx',z'を、プレーヤクローンオブジェクト420又は敵クローンオブジェクト440のダメージ表現を行う身体単位について、アニメーションのモーションの適用後のローカル座標に加算するよう、グラフィックプロセッサ160が当該身体単位を描画する際の座標変換用の行列に設定する。
このローカル座標への加算については、プレーヤクローンオブジェクト420の場合、上述のヒップの座標を求めた身体単位のボーンデータ524とアニメーションデータ525−1〜525−nのアニメーションのモーションを適用した座標について行う。
その後、加算されたローカル座標によりワールド座標系に変換する演算を行うようにワールド変換行列を設定する。
これにより、クローンオブジェクトの身体単位のワールド座標系の値を求めることができる。
なお、敵クローンオブジェクト440においても同様の処理を行う。
次に、CPU100は、ワールド変換行列により計算される、クローンオブジェクトの移動後のワールド座標系の座標が背景オブジェクト460における地面の下になっているか否か判定する。主に投げ技のヒットを受けた場合、移動後の座標が地面の下になることがあるためである。この判定は、クローンオブジェクトのワールド座標系の座標について、地面の座標とヒップの座標の位置関係を算出し、背景オブジェクト460において地面として設定されるワールド座標系での座標とを比較し、所定値よりも下になっている場合、Yesと判定する。また、CPU100は、背景オブジェクト460の地面メッシュデータの地面や地形の座標と比較し、所定値よりも下になっている場合、Yesと判定することもできる。それ以外の場合、Noと判定する。
Yes、すなわち移動後の座標が地面の下である場合、CPU100は、処理をステップS208に進める。
Noの、すなわち移動後の座標が地面の下ではない場合、CPU100は、処理をステップS209に進める。
CPU100は、移動後の座標が地面の下である場合、対戦格闘部300の座標算出部320を用いて移動値調整処理を行う。
具体的には、CPU100は、x',z'を適用したワールド座標系の座標が、背景オブジェクト460において地面として設定されるワールド座標系における座標に対して、所定値より下にならないように設定する。また、CPU100は、背景オブジェクト460の地面メッシュデータの地面や地形のワールド座標系における座標に対して、所定値より下にならないように設定することもできる。
この上で、拡大率を大きくするよう、座標変換用の行列に設定する。この際、上述の係数aについては、変更せず、レンダリング時の行列のみ変更して設定する。
これにより、ヒットされたキャラクタに係るクローンオブジェクトの身体単位が地面よりあまり下に描画されることがなく、深さバッファ(Zバッファ)により描画されないといった描画のトラブルを防ぐことができる。
次に、CPU100は、対戦格闘部300のカラー変更部340を用いて、カラー変更処理を行う。
具体的に、CPU100は、算出された身体単位のダメージ値を用いて、ヒットされたキャラクタに係るクローンオブジェクトの身体単位の各ポリゴンのカラーを変更する。
この処理としては、例えば、プレーヤキャラクタがヒットされた側である場合、身体単位のダメージ値を用いて、プレーヤキャラクタデータ210の身体部位ダメージデータ213−1〜213−nに対応して身体単位のカラーを変化させる。
たとえば、CPU100は、身体単位のダメージ値の値に対応して白(Red:100%、Green:100%、Blue:100%)から赤(Red:100%、Green:0%、Blue:0%)になるよう段階的又は無段階的に変化させることができる。
なお、この身体単位の各ポリゴンのカラーについては、時間tの経過に従って、設定した色から別の所定色になるように変化させるといった演出を行うことも可能である。
次に、CPU100は、描画部350を用いて、ヒットエフェクト描画処理を行う。
具体的に、CPU100は、ヒットエフェクトオブジェクト450をレンダリングするよう、グラフィックプロセッサ160のレンダリング部164に指示する。
この際、CPU100は、ヒット箇所から所定距離離れた箇所等にヒットエフェクトを描画させる。CPU100は、この場合、ヒットエフェクトオブジェクト450が半透明で光るように描画させて、見た目が派手やかな演出をしてもよい。さらに、ヒット箇所から衣服の破片や体液等が飛び散るような描写をしてもよい。
加えて、CPU100は、プレーヤオブジェクト410又は敵オブジェクト430が光ったり、炎を出すような闘う気力を表現するヒットエフェクトを描写するようレンダリング部164に指示することもできる。
次に、CPU100は、描画部350を用いて、透明度設定処理を行う。
具体的に、CPU100は、この透明度(アルファブレンド値)について、上述の時間tに係る係数aの値を用いて、ヒットされたキャラクタに係るクローンオブジェクトの身体単位の透明度が時間tに比例して高まるような値を算出する。すなわち、ヒットされたキャラクタに係るクローンオブジェクトの身体単位は、時間tに従って透明になるように設定する。
これにより、所定時間が経過すると、クローンオブジェクトの身体単位が画面上で見えなくなるため、身体単位の描画に不自然さが少なくなるという効果が得られる。また、完全に透明になった時間tで身体単位の描画を終了できるため、描画の処理を処理を軽くできる。
なお、この透明度は、時刻tが少ない値の時に完全に透明にして、それから不透明度が高くなり、その後透明になるといった処理を行うこともできる。また、点滅させるように透明度を変更することもできる。
次に、CPU100は、描画部350を用いて、クローン描画処理を行う。
具体的には、CPU100は、ヒットされたキャラクタに係るクローンオブジェクトの表示すべき身体単位を描画するよう、グラフィックプロセッサ160のレンダリング部164に指示する。
この際、描画するクローンオブジェクトの身体部位について、上述のカラーと透明度を設定して描画する。
描画の際には、単に半透明に描画するのではなく、例えば、レンダリングする身体単位を光らせるような明度の加算処理を行うこともできる。これにより、クローンオブジェクトを他のオブジェクトに埋没させることなく目立たせて表示できる。
図8Aは、敵オブジェクト430の「パンチ」の技による攻撃が、プレーヤオブジェクト410のヒップの身体部位モデルデータ513−4にヒットした画面例を示している。この結果として、プレーヤクローンオブジェクト420の身体単位として胴部の身体部位モデルデータ523−3、523−4が、ヒットされた方向に、ダメージ表現として描画されている。
図8Bは、図8Aのヒットより時間tが経過した例について示している。時間tの経過後に、胴部の身体部位モデルデータ523−3、523−4が、より後方に少し拡大されて、ダメージ表現として描画されている。また、プレーヤオブジェクト410は、アニメーションのモーションが進んでいることも分かる。
図9Aは、敵オブジェクト430の「キック」の技による攻撃が、プレーヤオブジェクト410のボディの身体部位モデルデータ513−3にヒットした画面例を示している。この場合でも、身体単位として胴部の身体部位モデルデータ523−3、523−4が、ヒットされた方向に、ダメージ表現として描画されている。また、キックの技の方が与えるダメージが大きいため、より明るいヒットエフェクトオブジェクト450が描画されている。
図9Bは、図9Aのヒットより時間tが経過した例である。ここでも、胴部の身体部位モデルデータ523−3、523−4が、より後方に少し拡大されて、ダメージ表現として描画され、アニメーションのモーションが進んでいる。
また、このダメージ表現に対応して、オーディオプロセッサ180は、効果音やBGMを送出する。これに加えて、例えば、ヒットされた側のキャラクタが持ち物を落としたり、背景オブジェクト460が壊れたりといった付随的な処理を行うことができる。
以上により、ダメージ表現処理を終了する。
上述したように、従来技術1のゲーム装置においては、単にダメージを受けた/与えた回数に応じて、次のターン等でキャラクタ描画時の画像の表現を変化させることができるだけであった。
このため、プレーヤが攻撃自体を敵キャラクタに与えた/敵キャラクタから受けた衝撃であるかを知ることが難いという問題があった。
これに対して、本発明の実施の形態に係るゲーム装置10においては、ヒットされたクローンオブジェクトの身体単位が描画されることにより、ダメージを視覚的、グラフィカルに表現できる。よって、プレーヤが攻撃自体を敵キャラクタに与えたのか、敵キャラクタから攻撃を受けたのかについて、容易に知ることができる。
さらに、本発明の実施の形態に係るゲーム装置10においては、プレーヤキャラクタと敵キャラクタとについて、別々に身体単位毎に描画することができる。このため、プレーヤオブジェクト410と敵オブジェクト430それぞれについて、別々のモーションのダメージ表現処理を行うことができる。よって、プレーヤが攻撃自体を敵キャラクタに与えたのか、敵キャラクタから攻撃を受けたのかについて、分かりやすいという効果が得られる。
これに対して、本発明の実施の形態に係るゲーム装置10においては、ヒットされたクローンオブジェクトの身体単位毎に描画する。これにより、1つのクローンオブジェクトの身体単位のみの描画にて、モーションブラーのようにヒットの際の動きを感じさせるような演出を行うことができる。よって、従来のモーションブラーの表現のような重い処理を行う必要がない。また、クローンオブジェクトのバッファのみを用意すれば良いため、複数画面描画用のバッファも必要ない。よって、グラフィックプロセッサ160の回路規模が限られている携帯用ゲーム装置についても適用でき、コストを低減できる。
また、プレーヤキャラクタと敵キャラクタだけにダメージ表現を行い、他の背景オブジェクト460等はモーションブラーのような効果をさせないことができる。これにより、ダメージ表現として分かりやすい。
また、本発明の実施の形態に係るゲーム装置10においては、ダメージ値が大きい場合、身体のアニメーションのモーション動き(座標変化)が大きくなるため、より遠くにオブジェクトの身体単位を描画することができ、ダメージが分かりやすい。
また、本発明の実施の形態に係るゲーム装置10においては、ヒットされたクローンオブジェクトの身体単位について、蓄積したダメージ値により色を変化させて表現する。これにより、各身体単位のダメージについて分かりやすく表現できる。よって、ヒットポイントをメーター等にて描画しなくても、勝ち負けに係るダメージについて推測、理解しやすいという効果が得られる。
また、本発明の実施の形態に係るゲーム装置10においては、単一の身体部位ではなく、攻撃する動作に関わるいくつかの身体単位をヒエラルキーから選択して表示することで、より分かりやすくダメージを表現することができる。
また、本発明の実施の形態に係るゲーム装置10においては、ヒットされたクローンにはテクスチャを貼らないか単色のテクスチャかヒットエフェクト用のテクスチャを用いることができる。これにより、身体単位のテクスチャや衣服の色合い等に関わらず、ダメージを分かりやすく表現できる。また、身体がダメージを受けているという感覚を、より視覚的に表現することができる。
さらに、上述の実施の形態のダメージ表現方法においては、クローンオブジェクトについて、身体単位で描画を行うように説明した。しかしながら、身体部位モデルデータ単位で描画したり、クローンオブジェクトの全体の単位で描画するように構成してもよい。全体の単位で描画する場合は、ダメージを受けた身体単位のみ色を変化させるといった演出も可能である。さらに、ヒットされた側のクローンオブジェクトの身体単位に加えて、ヒットした側の身体単位がヒットされた側を突き抜けて表示されるように構成してもよい。
また、ダメージ表現において、x',z'を単純に移動するのでなく、クローンオブジェクトを変形して浮き出すように構成することもできる。さらに、x',z'だけでなく、y’(Y軸方向)についても、浮き出すように構成することもできる。また、ヒットの方向そのものではなく、ヒットされたことにより変化した身体の方向に付随して浮き出すように描画してもよい。これにより、ヒットされて身体が回転するような演出にも対応できる。
また、ダメージ表現の際、クローンオブジェクトの身体単位について、色を変化させるのではなく、点滅や明度/彩度の変化等で演出することもできる。たとえば、身体単位のダメージ値の大きさにより、身体単位の明るさがどんどん暗くなっていくように表現できる。また、式(2)や式(3)の関数にダメージ値を与えるようにして、例えば、ダメージ値により、x',z'をより大きくしたり、拡大率を大きくしたりといった演出を行うようにして表現することもできる。
また、プレーヤキャラクタの身体部位ダメージデータ213−1〜213−nの合計が所定値以上に大きくなってきたとき、すなわち全体のダメージ値であるヒットポイントが少なくなってきたときは、画面全体の色を赤くする等の表現にて、負けが近いことを知らせるように表現することもできる。
また、1つのクローンオブジェクトの身体単位が表示されている際に、別の攻撃がヒットした場合には、クローンオブジェクトの身体単位の表示を当該別の攻撃に合わせて表示し直すことができる。また、前の攻撃の時間tが所定時間経過するまで、クローンオブジェクトの身体単位を表示しつづけるように描画することもできる。これにより、攻撃のスピードに沿ったダメージ表現の演出が可能になる。
100 CPU
110 主記憶部
120 補助記憶部
130 BIOS
140 ペリフェラルI/F
150 バスアービタ
160 グラフィックプロセッサ
162 ジオメトリ部
164 レンダリング部
170 グラフィックメモリ
175 ビデオBIOS
180 オーディオプロセッサ
190 オーディオメモリ
200 通信I/F
210 プレーヤキャラクタデータ
211 キャラクタ属性データ
212 技データ
213−1〜213−n 身体部位ダメージデータ
220 敵キャラクタデータ
300 対戦格闘部
310 クローン作成部
320 座標算出部
325 ヒット判定部
330 ダメージ算出部
340 カラー変更部
350 描画部
410 プレーヤオブジェクト
420 プレーヤクローンオブジェクト
430 敵オブジェクト
440 敵クローンオブジェクト
450 ヒットエフェクトオブジェクト
460 背景オブジェクト
510、520 全体座標データ
512、522 ヒエラルキーデータ
513−1〜513−n、523−1〜523−n 身体部位モデルデータ
514、524 ボーンデータ
515−1〜515−n、525−1〜525−n アニメーションデータ
517 テクスチャデータ
Claims (8)
- 仮想三次元空間に配置されるキャラクタオブジェクトの部位毎にダメージ表現を行うゲーム装置の制御プログラムにおいて、
前記ゲーム装置の制御部を、
前記キャラクタオブジェクトのデータを含むクローンオブジェクトを作成するクローン作成部、
前記キャラクタオブジェクトに攻撃が当たったとき、前記キャラクタオブジェクトを構成する身体部位について攻撃があった身体部位を判定するヒット判定部、
算出された前記クローンオブジェクトの前記身体部位を、前記攻撃が当たってからの時間の経過に従って、前記キャラクタオブジェクトからローカル座標系において離れるように移動値調整を行う座標算出部
として機能させることを特徴とするゲーム装置の制御プログラム。 - 請求項1記載の制御プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
- 仮想三次元空間に配置されるキャラクタオブジェクトの部位毎にダメージ表現を行うゲーム装置において、
前記ゲーム装置の制御部が、
前記キャラクタオブジェクトのデータを含むクローンオブジェクトを作成するクローン作成部、
前記キャラクタオブジェクトに攻撃が当たったとき、前記キャラクタオブジェクトを構成する身体部位の攻撃があった身体部位を判定するヒット判定部、
算出された前記クローンオブジェクトの前記身体部位を、前記攻撃が当たってからの時間の経過に従って、前記キャラクタオブジェクトからローカル座標系において離れるように移動値調整を行う座標算出部
として機能するように制御することを特徴とするゲーム装置の制御方法。 - 仮想三次元空間に配置されるキャラクタオブジェクトの部位毎にダメージ表現を行うゲーム装置において、
前記キャラクタオブジェクトのデータを含むクローンオブジェクトを作成するクローン作成部と、
前記キャラクタオブジェクトに攻撃が当たったとき、前記キャラクタオブジェクトを構成する身体部位の攻撃があった身体部位を判定するヒット判定部と、
算出された前記クローンオブジェクトの前記身体部位を、前記攻撃が当たってからの時間の経過に従って、前記キャラクタオブジェクトからローカル座標系において離れるように移動値調整を行う座標算出部と
を備えることを特徴とするゲーム装置。 - 前記座標算出部は、更に前記クローンオブジェクトの前記身体部位を、前記時間の経過に従って拡大するよう移動値調整を行う
ことを特徴とする請求項4に記載のゲーム装置。 - 前記座標算出部は、前記移動値調整を、ヒエラルキーにて前記身体部位をまとめた身体単位毎に行う
ことを特徴とする請求項4又は5に記載のゲーム装置。 - 前記キャラクタオブジェクトの身体部位毎のダメージ値を算出するダメージ算出部と、
前記ダメージ値に従って、前記身体部位のカラーを変化させるカラー変更部とを更に備える
ことを特徴とする請求項4から6のいずれか1項に記載のゲーム装置。 - 前記クローンの前記身体部位を、前記時間の経過に従って透明になるように描画する描画部を更に備える
ことを特徴とする請求項4から7のいずれか1項に記載のゲーム装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010176557A JP5527089B2 (ja) | 2010-08-05 | 2010-08-05 | ゲーム装置の制御プログラム、記憶媒体、ゲーム装置の制御方法、及びゲーム装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010176557A JP5527089B2 (ja) | 2010-08-05 | 2010-08-05 | ゲーム装置の制御プログラム、記憶媒体、ゲーム装置の制御方法、及びゲーム装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012034779A true JP2012034779A (ja) | 2012-02-23 |
JP5527089B2 JP5527089B2 (ja) | 2014-06-18 |
Family
ID=45847472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010176557A Active JP5527089B2 (ja) | 2010-08-05 | 2010-08-05 | ゲーム装置の制御プログラム、記憶媒体、ゲーム装置の制御方法、及びゲーム装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5527089B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012213521A (ja) * | 2011-03-31 | 2012-11-08 | Konami Digital Entertainment Co Ltd | ゲーム装置、ゲーム装置の制御方法、及びプログラム |
KR101400536B1 (ko) | 2012-12-21 | 2014-05-30 | (주)스마일게이트엔터테인먼트 | 온라인 게임 서비스에서의 캐릭터간 충격 반응 표시 방법 및 서버, 및 충격 반응 표시 기능을 가지는 온라인 게임 시스템 |
CN111589139A (zh) * | 2020-05-11 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 虚拟对象展示方法、装置、计算机设备及存储介质 |
CN112569598A (zh) * | 2020-12-22 | 2021-03-30 | 上海幻电信息科技有限公司 | 目标对象控制方法及装置 |
CN112957735A (zh) * | 2021-03-01 | 2021-06-15 | 网易(杭州)网络有限公司 | 游戏控制方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000107454A (ja) * | 1998-10-06 | 2000-04-18 | Square Co Ltd | ゲーム装置、ゲームキャラクタの表示制御方法および 情報記録媒体 |
JP2001204957A (ja) * | 2000-01-28 | 2001-07-31 | Namco Ltd | ゲームシステム及び情報記憶媒体 |
JP2004283419A (ja) * | 2003-03-24 | 2004-10-14 | Namco Ltd | ゲーム情報、情報記憶媒体及びゲーム装置 |
JP2004298305A (ja) * | 2003-03-31 | 2004-10-28 | Namco Ltd | 画像生成情報、情報記憶媒体及び画像生成装置 |
JP2007105523A (ja) * | 2007-01-29 | 2007-04-26 | Namco Bandai Games Inc | ゲーム装置及び情報記憶媒体 |
JP2008119224A (ja) * | 2006-11-10 | 2008-05-29 | Namco Bandai Games Inc | プログラム、情報記憶媒体及びゲーム装置 |
-
2010
- 2010-08-05 JP JP2010176557A patent/JP5527089B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000107454A (ja) * | 1998-10-06 | 2000-04-18 | Square Co Ltd | ゲーム装置、ゲームキャラクタの表示制御方法および 情報記録媒体 |
JP2001204957A (ja) * | 2000-01-28 | 2001-07-31 | Namco Ltd | ゲームシステム及び情報記憶媒体 |
JP2004283419A (ja) * | 2003-03-24 | 2004-10-14 | Namco Ltd | ゲーム情報、情報記憶媒体及びゲーム装置 |
JP2004298305A (ja) * | 2003-03-31 | 2004-10-28 | Namco Ltd | 画像生成情報、情報記憶媒体及び画像生成装置 |
JP2008119224A (ja) * | 2006-11-10 | 2008-05-29 | Namco Bandai Games Inc | プログラム、情報記憶媒体及びゲーム装置 |
JP2007105523A (ja) * | 2007-01-29 | 2007-04-26 | Namco Bandai Games Inc | ゲーム装置及び情報記憶媒体 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012213521A (ja) * | 2011-03-31 | 2012-11-08 | Konami Digital Entertainment Co Ltd | ゲーム装置、ゲーム装置の制御方法、及びプログラム |
KR101400536B1 (ko) | 2012-12-21 | 2014-05-30 | (주)스마일게이트엔터테인먼트 | 온라인 게임 서비스에서의 캐릭터간 충격 반응 표시 방법 및 서버, 및 충격 반응 표시 기능을 가지는 온라인 게임 시스템 |
CN111589139A (zh) * | 2020-05-11 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 虚拟对象展示方法、装置、计算机设备及存储介质 |
CN111589139B (zh) * | 2020-05-11 | 2023-03-28 | 深圳市腾讯网域计算机网络有限公司 | 虚拟对象展示方法、装置、计算机设备及存储介质 |
CN112569598A (zh) * | 2020-12-22 | 2021-03-30 | 上海幻电信息科技有限公司 | 目标对象控制方法及装置 |
CN112957735A (zh) * | 2021-03-01 | 2021-06-15 | 网易(杭州)网络有限公司 | 游戏控制方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP5527089B2 (ja) | 2014-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5813948B2 (ja) | プログラム及び端末装置 | |
JP5085059B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4668655B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
EP2158948A2 (en) | Image generation system, image generation method, and information storage medium | |
JP2010029398A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP5527089B2 (ja) | ゲーム装置の制御プログラム、記憶媒体、ゲーム装置の制御方法、及びゲーム装置 | |
JP2008225985A (ja) | 画像認識システム | |
JP2011053838A (ja) | プログラム、情報記憶媒体、及び、画像生成装置 | |
JP6637662B2 (ja) | ゲーム装置及びプログラム | |
JP4776017B2 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP4267646B2 (ja) | 画像生成装置、画像生成方法、ならびに、プログラム | |
JP4734137B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP6993585B2 (ja) | ゲームプログラム及びゲーム装置 | |
JP2017055999A (ja) | ゲーム装置及びプログラム | |
JP2009129167A (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2008071069A (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2006323512A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2010055131A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP6900208B2 (ja) | ゲームシステム及びプログラム | |
JP5253118B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4412692B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP2011215724A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP3254195B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP2010033288A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2017056000A (ja) | ゲーム装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20130318 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130325 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20130612 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20130611 |
|
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: 20140318 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140320 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140331 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5527089 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |