説明

プログラム、情報記憶媒体及びゲーム装置

【課題】 粒子状物体が積もってできている設定や、流体によってできている設定の移動面に沿って移動する移動体の航跡を立体感豊かに実現すること。
【解決手段】 雪面6を移動する移動体に相当するスキー22の移動にともなって、その左右側方に、移動面上の隆起面を表現する隆起部オブジェクト32を、移動体の進行方向端に連結・追加配置する処理を繰り返し実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータを、移動面を配置して形成したゲーム空間内で、キャラクタオブジェクトを移動面に沿って移動制御して所定のゲームを実行するように機能させるためのプログラム等に関する。
【背景技術】
【0002】
人型キャラクタは勿論、自動車やモータボートなどの移動体をプレーヤが操作するビデオゲームでは、移動体が移動面を移動した痕跡を表現することが行われている。
【0003】
例えば、移動体オブジェクトの現在位置を読み取り、その現在位置から所定範囲内の長さに痕跡マークを描画するとともに、この痕跡マークの後端側を時間経過とともに徐々に薄くして消滅させることで痕跡ポリゴンを減少させて、痕跡を描きつつも痕跡の描画に要する画像処理の演算処理負荷を低減する技術が知られている(例えば、特許文献1を参照)。
【0004】
また、雪面を滑るスキーの側方及び後方に、スキーの滑った跡として2次元のテクスチャをライン状に張り込むことでその航跡を表現したゲームも知られるところである(任天堂株式会社製家庭用ゲーム装置「Wii」用のゲームソフト「ファミリースキー」に関する非特許文献1を参照)。
【特許文献1】特開2007−298733号公報
【非特許文献1】株式会社バンダイナムコゲームス、「ファミリースキー 取扱説明書」、2008年
【発明の開示】
【発明が解決しようとする課題】
【0005】
上述のような従来技術によれば、効果的に移動体が移動した痕跡を表現することができる。しかし、例えば新雪の斜面を滑走するスキー等の周囲に生まれる航跡のように、かき分けられた雪が積み上がって形成される痕跡を表現するには、2次元の痕跡マークや2次元のテクスチャの張り込みだけでは立体感に乏しく感じる場面があった。例えば、アップダウンのある斜面を滑走したのち、様々な角度から撮影したリプレイ画面を表示する際に、斜面の丘状部に残った航跡を側方から撮影したシーンの立体感は、2次元の痕跡マークや2次元のテクスチャの張り込みといった従来技術では実現できない。
【0006】
本発明は、こうした事情を鑑みてなされたものであり、その目的とするところは、粒子状物体が積もってできている設定や、流体によってできている設定の移動面に沿って移動する移動体の航跡を立体感豊かに実現することである。
【課題を解決するための手段】
【0007】
上記の課題を解決する第1の発明は、コンピュータを、移動面を配置して形成したゲーム空間内で、キャラクタオブジェクトを前記移動面(例えば、図2や図3の雪面6)に沿って移動制御して所定のゲームを実行するように機能させるためのプログラムであって、
前記キャラクタオブジェクトの移動に伴って、当該キャラクタオブジェクトの側方及び/又は後方に前記移動面より隆起した隆起面を形成する隆起部オブジェクトを配置することで航跡オブジェクトを形成・配置する航跡オブジェクト配置手段(例えば、図12の処理部200、ゲーム演算部210、航跡配置制御部218、図17のステップS16)、
前記航跡オブジェクト配置手段により航跡オブジェクトが配置された前記ゲーム空間の画像を所定の仮想カメラに基づいて生成する画像生成手段(例えば、図12の処理部200、画像生成部260、図17のステップS34)、として前記コンピュータを機能させるためのプログラムである。
【0008】
また、別形態として、移動面を配置して形成したゲーム空間内で、キャラクタオブジェクトを前記移動面に沿って移動制御させるキャラクタオブジェクト移動制御手段(例えば、図1の制御ユニット1210、図12の処理部200、ゲーム演算部210、PC動作制御部212、NPC動作制御部214、図17のステップS10〜S12)と、
前記キャラクタオブジェクトの移動に伴って、当該キャラクタオブジェクトの側方及び/又は後方に前記移動面より隆起した隆起面を形成する隆起部オブジェクトを配置することで航跡オブジェクトを形成・配置する航跡オブジェクト配置手段(例えば、図1の制御ユニット1210、図12の処理部200、ゲーム演算部210、航跡配置制御部218、図17のステップS16)と、
前記航跡オブジェクト配置手段により航跡オブジェクトが配置された前記ゲーム空間の画像を所定の仮想カメラに基づいて生成する画像生成手段(例えば、図1の制御ユニット1210、図12の処理部200、画像生成部260、図17のステップS34)と、を備えるゲーム装置として実現することもできる。
【0009】
第1の発明によれば、キャラクタオブジェクトが移動する移動面上に、隆起面を形成する隆起部オブジェクトをキャラクタオブジェクトの移動制御に伴って、その側方や後方に配置することで、あたかも移動面を形成していた粒子状物質や流体の盛り上がり(例えば、船の曳波)がそこに有るかのように立体的に表現することができる。
【0010】
第2の発明は、第1の発明のプログラムであって、前記航跡オブジェクト配置手段が、新たな隆起部オブジェクトを既存の隆起部オブジェクトと連結させるように配置していく処理を繰り返すことで前記航跡オブジェクトを形成・配置するように前記コンピュータを機能させるためのプログラムである。
【0011】
第2の発明によれば、第1の発明と同様の効果を奏するとともに、キャラクタオブジェクトの移動制御に伴って、その側方や後方に次々に隆起部オブジェクトを連結配置させてゆくことができる。よって、移動体の移動にともなって隆起部が次々にできて行く様をリアルに表現することができる。
【0012】
第3の発明は、第2の発明のプログラムであって、前記航跡オブジェクト配置手段が、前記キャラクタオブジェクトの移動に伴って、2以上の所定数の前記隆起部オブジェクトを組として既存の対応する隆起部オブジェクトと連結させて配置していくとともに、当該新たに配置した所定数の隆起部オブジェクト間を連結する板状の連結部オブジェクトを更に配置するように前記コンピュータを機能させるためのプログラムである。
【0013】
第3の発明によれば、第2の発明と同様の効果を奏するとともに,キャラクタオブジェクトの移動によってかき分けられて隆起する部分と、それら隆起部分の間にあってキャラクタオブジェクトによって均された部分とを表現できる。
後者は、例えば雪面を滑ったスキーやスノーボートなどで圧し固め均された部分を表現するのに好適であり、よりリアルな航跡の表現を実現する。
【0014】
第4の発明は、第1〜第3の何れかの発明のプログラムであって、前記航跡オブジェクト配置手段が、前記航跡オブジェクトを構成する隆起部オブジェクトの端部に、先端に向かうほど隆起高さが低くなる端部オブジェクト(例えば、図3の前端オブジェクト38、後端オブジェクト40)を更に配置するように前記コンピュータを機能させるためのプログラムである。
【0015】
第4の発明によれば、第1〜第3の発明の何れかと同様の効果を奏するとともに、隆起部の先端部分をなだらかに移動面に続く形状とすることで、移動面と隆起面との見かけ上のなじみを良くできる。
【0016】
第5の発明は、第1〜第4の何れかの発明のプログラムであって、前記移動面の状態として、前記隆起部オブジェクトの隆起高さを可変する基準となる状態を設定する移動面状態設定手段(例えば、図12の記憶部500、ゲーム空間設定データ510、ステージ設定データ512、雪質設定516)、
前記移動面の状態に基づいて前記隆起部オブジェクトの隆起高さを決定する隆起高さ決定手段(例えば、図12の処理部200、ゲーム演算部210、航跡配置制御部218、図18のステップS66〜S68)、として前記コンピュータを機能させ、
前記航跡オブジェクト配置手段が、配置する隆起部オブジェクトの高さを前記隆起高さ決定手段によって決定された隆起高さで配置するように前記コンピュータを機能させるためのプログラムである。
【0017】
ここでいう「移動面の状態」とは、ゲーム設定上の移動面の状態であり、例えば雪面や砂漠のように移動面が粒子状物質の堆積で形成されている設定ならば、その積もった深さ、粒子状物質の重さ、粒子状物質の大きさなど、隆起部の形成に影響するパラメータを示す。また、移動面が水面のような液体によって形成されている設定ならば、流体の粘性、深さ、水草の密生度合いなど、波の形成に影響するパラメータが該当する。
【0018】
第5の発明によれば、第1〜第4の何れかの発明と同様の効果を奏するとともに、移動面の状態に応じて航跡オブジェクトの隆起部の高さを調整することができるので、よりリアリティの高い立体感を実現することができる。
【0019】
第6の発明は、第1〜第5の発明の何れかのプログラムであって、前記航跡オブジェクト配置手段が、前記キャラクタオブジェクトの左右の側方それぞれに、前記キャラクタオブジェクトの向きと移動方向とがなす相対角度に応じた距離分離隔して前記隆起部オブジェクトを配置するように前記コンピュータを機能させるためのプログラムである。
【0020】
第6の発明によれば、第1〜第5の何れかの発明と同様の効果を奏するとともに、ターン中のスキー(移動体)のように、現在の進行方向と移動体の相対姿勢とが変化する場合でも、移動面を形成するものが移動体によって左右に押し分けられて隆起面を形成しているかのように見せることができる。
【0021】
第7の発明は、第6の発明のプログラムであって、前記航跡オブジェクト配置手段が、前記キャラクタオブジェクトの左右の側方それぞれに配置する前記隆起部オブジェクトの離隔距離に基づいて当該隆起部オブジェクトの隆起高さを変更するように前記コンピュータを機能させるためのプログラムである。
【0022】
第7の発明によれば、第6の発明と同様の効果を奏するとともに、例えば、隔離距離が大きいほど隆起高さを高くするならば、スキーのターンのように相対角度が大きいほど、大きな航跡が形成される様子を表現できる。勿論、隔離距離が大きいほど隆起高さを低くすることもできる。
【0023】
第8の発明は、第1〜第7の何れかの発明のプログラムであって、前記航跡オブジェクトと他の航跡オブジェクトとが交差して配置されたことを検知する交差配置検知手段(例えば、図12の処理部200、航跡配置制御部218、記憶部500、キャラクタステータスデータ530、航跡オブジェクトデータ550、図16のラインオブジェクトデータ552、図18のステップS80)、
前記交差配置検知手段によって交差して配置されたと検知された航跡オブジェクト同士の描画順を配置順に設定する描画順設定手段(例えば、図12の処理部200、航跡配置制御部218、記憶部500、キャラクタステータスデータ530、航跡オブジェクトデータ550、図16のラインオブジェクトデータ552、図18のステップS82〜S84)、として前記コンピュータを機能させるとともに、
前記画像生成手段が、前記航跡オブジェクトを前記ゲーム空間の地形の1つとして描画するとともに、前記描画順設定手段によって設定された描画順に従った順に前記航跡オブジェクトを描画する描画制御手段を有するように、前記コンピュータを機能させるためのプログラムである。
【0024】
第8の発明によれば、第1〜第7の発明の何れかと同様の効果を奏するとともに、航跡オブジェクトを地形の一部とみなして描画することができる。その一方で、既に航跡オブジェクトが配置されているところに交差して新たに航跡オブジェクトを配置する際には、新たに配置する航跡オブジェクトの描画順番を配置順に設定できる。従って、航跡が重なる部分では後からできた航跡オブジェクトが上書き描画されるようにして、交差部分の隆起面の立体感を正しく表現することができる。
【0025】
第9の発明は、第8の発明のプログラムであって、前記航跡オブジェクトのZ値を、当該航跡オブジェクトが配置されている移動面のZ値と同じに設定する航跡Z値設定手段(例えば、図12の処理部200、航跡配置制御部218、図18のステップS72〜S76)として前記コンピュータを機能させるとともに、
前記画像生成手段が、各オブジェクトのZ値に基づくZバッファ法でゲーム空間の画像を生成するように前記コンピュータを機能させるためのプログラムである。
【0026】
第9の発明によれば、第8の発明と同様の効果を奏するとともに、ゲーム空間の画像を、基本的にはZバッファ法で生成しつつも、航跡が重なる部分では後からできた航跡オブジェクトが上書き描画されるようにして、交差部分の隆起面の立体感を正しく表現することができる。
【0027】
第10の発明は、第1〜第9の何れかの発明のプログラムであって、前記隆起部オブジェクトの配置後経過時間に基づいて当該隆起部オブジェクトの寸法を補正する隆起寸法補正手段(例えば、図12の処理部200、航跡配置制御部218、図25のステップS164)として前記コンピュータを機能させるためのプログラムである。
【0028】
第10の発明によれば、第1〜第9の発明の何れかと同様の効果を奏するとともに、隆起面が発生してからの時間経過にともなって高くなったり、或いは低くなるように表現することができる。例えば、船の曳波によって生じる水面の隆起高さを徐々に低くしていくといった表現に効果的である。
【0029】
第11の発明は、第1〜第10の何れかの発明のプログラムであって、前記ゲーム空間における光源を設定する光源設定手段(例えば、図12の処理部200、ゲーム演算部210、記憶部500、ゲーム空間設定データ510、光源位置データ518、図17のステップS2)、
前記光源の光線方向と前記キャラクタオブジェクトの位置とに基づく相対光源方向別に用意されたテクスチャを前記航跡オブジェクトにマッピングするテクスチャマッピング手段(例えば、図12の処理部200、画像生成部260、図20のステップS126)、
として前記コンピュータを機能させるためのプログラムである。
【0030】
第11の発明によれば、第1〜第10の何れかの発明と同様の効果を奏するとともに、光源方向とキャラクタオブジェクトとの相対光源方向に応じた航跡のテクスチャを適用することで、環境条件に合致した陰影を持った優れた立体感を実現することができる。
【0031】
第12発明は、第1〜第11の発明の何れかのプログラムを記憶したコンピュータ読取可能な情報記憶媒体である。ここで言う「情報記憶媒体」とは、例えば磁気ディスクや光学ディスク、ICメモリなどを含む。第12の発明によれば、第1〜第11の発明の何れかのプログラムをコンピュータに読み取らせて実行させることによって、コンピュータに第1〜第11の発明の何れかと同様の効果を発揮させることができる。
【発明を実施するための最良の形態】
【0032】
〔第1実施形態〕
次に、第1実施形態として、本発明を適用したゲーム装置として家庭用ゲーム装置を挙げ、スキーゲームを実行する例を説明する。
【0033】
[ゲーム装置の構成]
図1は、本実施形態における家庭用ゲーム装置の構成例を説明するシステム構成図である。同図に示すように、家庭用ゲーム装置1200は、ゲーム装置本体1210と、ゲームコントローラ1230と、ビデオモニタ1220とを備える。
【0034】
ゲーム装置本体1201は、例えばCPUや画像処理用LSI、ICメモリ等が実装された制御ユニット1210と、光学ディスク1202やメモリカード1204といった情報記憶媒体の読み取り装置1206,1208とを備える。そして、家庭用ゲーム装置1200は、光学ディスク1202やメモリカード1204からゲームプログラム及び各種設定データを読み出し、ゲームコントローラ1230に為される操作入力に基づいて制御ユニット1210が各種のゲーム演算を実行してビデオゲームを実行する。
【0035】
制御ユニット1210は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)及びDSP(Digital Signal Processor)などの各種マイクロプロセッサ、ASIC(Application Specific Integrated Circuit)、ICメモリなどの電気電子機器を備え家庭用ゲーム装置1200の各部を制御する。また、制御ユニット1210は、インターネットやLAN(Local Area Network)、WAN(Wide Area Network)と言った通信回線1と接続して外部装置との間でデータ通信を実現する通信装置1212を備える。
【0036】
ゲームコントローラ1230は、選択の決定やキャンセル、タイミングの入力などに用いられるコントローラ上面に設けられたプッシュボタン1232と、左右の前側面に設けられたプッシュボタン1233R,1233Lと、図で言うところの上下左右の各方向を単独入力するための方向入力キー1234と、右アナログレバー1236Rと、左アナログレバー1236Lとを備える。
【0037】
右アナログレバー1236R及び左アナログレバー1236Lは、図で言うところの上下方向と左右方向の2軸方向を同時入力可能な方向入力デバイスである。通常はゲームコントローラ1230を左右の手で把持し、レバーにそれぞれ親指を添えて操作する。レバーを倒すことによって2軸成分を含む任意の方向入力と、レバーの傾倒量に応じた任意操作量を入力することができる。また、何れのアナログレバーも、操作入力していない中立状態からレバーの軸方向に押し込むことでプッシュスイッチとして使用することもできる。
【0038】
本実施形態では、プッシュボタン1232でプレーヤキャラクタであるスキーヤの加速や減速操作を入力し、方向入力キー1234或いは左アナログレバー1236Lの傾倒入力で左右のターン操作を入力する。
【0039】
ゲーム装置本体1201の制御ユニット1210は、ゲームコントローラ1230から受信した検出信号や操作入力信号に基づいてゲーム画像やゲーム音を生成してビデオゲームを実行する。生成されたゲーム画像やゲーム音は、信号ケーブル1209で接続されたビデオモニタ1220(ディスプレイモニタ)に出力される。ビデオモニタ1220には、画像を表示するフラットパネルディスプレイ1222と音声を放音するスピーカ1224とが備えられており、プレーヤはフラットパネルディスプレイ1222に映し出されるゲーム画像を見ながら、スピーカ1224から放音されるゲーム音を聞きつつゲームをプレイする。
【0040】
尚、本実施形態では、必要なプログラムや各種設定データを光学ディスク1202やメモリカード1204から読み出す構成としているが、制御ユニット1210の通信装置11212でインターネットやLAN(Local Area Network)、WAN(Wide Area Network)などの有線/無線の通信回線1に接続して外部の装置からダウンロードする構成としても良い。
【0041】
[ゲームの概要の説明]
次に、図2は本実施形態におけるスキーゲームのゲーム画面例を示す図である。本実施形態におけるスキーゲームは、プレーヤキャラクタ2とNPC(ノンプレイアブルキャラクタ)4とが、どちらが先にゴールまで滑り降りる事ができるかを競うスキーレースゲームである。
【0042】
プレーヤキャラクタ2及びNPC4は、雪面6や樹木8などの背景オブジェクトが配置されたゲーム空間内に配置される。そして、プレーヤキャラクタ2にはゲームコントローラ1230に為された操作入力に応じて加速や減速、左右のターンの動作制御が行われ、NPC4は所謂AI制御によって自律的に動作制御される。ゲーム画面W2は、プレーヤキャラクタ2の背後に自動追尾される仮想カメラで撮影したゲーム空間画像に、タイム表示12や順位表示14などの情報表示を合成して生成される。
【0043】
プレーヤキャラクタ2及びNPC4は雪面6を滑走するので、それぞれの滑った場所には雪面6の雪がスキーによってかき分けられたり、スキーの板で均されてできた、滑った後の痕跡の航跡20が表示される。公知のスキーゲームでは、プレーヤキャラクタ2及びNPC4の滑った後に航跡20を表す2次元のテクスチャが張り込まれるに過ぎなかった。しかし、それでは新雪の雪面6のように深々とした航跡20の立体感に乏しいため、本実施形態では航跡20を雪面6の上に隆起面を設けて立体感を高めた表現を実現する。
【0044】
[航跡の配置の原理]
図3は、本実施形態における航跡形成の原理を説明するための概念図である。尚、同図では、プレーヤキャラクタ2やNPC4の代理表現として、スキー(スキー板)22を移動体として示している。
同図に示すように、本実施形態では雪面6(移動面)を移動するスキー22(移動体)の左右側方に、雪面6よりも隆起した隆起面を形成する航跡オブジェクト30を配置する。
【0045】
航跡オブジェクト30は、スキー22の左方と右方にそれぞれ一体ずつ配置される上向きに凸形状を成した隆起部オブジェクト32と、それら隆起部オブジェクト32の対向面側の雪面(移動面)寄り端部を連結した板状の連結部オブジェクト34とを備える。前者が、スキー22によって掻き分けられて積み上がった雪を表し、後者がスキー22のソールによって均された雪面を表す。
【0046】
また、隆起部オブジェクト32は、更に直線状のラインオブジェクト36と、このラインオブジェクト36の末端に連結される前端オブジェクト38及び後端オブジェクト40とを有する。
【0047】
ラインオブジェクト36は、プレーヤキャラクタ2の進行方向に長尺の矩形ポリゴンが凸面を成すように連結されたオブジェクトである。勿論、矩形ポリゴンは複数の三角形ポリゴンで構成するとしても良い。
【0048】
本実施形態のラインオブジェクト36の縦断面形状は、上面ポリゴン36aと、その左端・右端からそれぞれ斜め下向きの左側面ポリゴン36bと右側面ポリゴン36cとで形成される。つまり、断面は上向きに凸の台形をなしている。尚、縦断面形状はこれに限るものではなく、左側面ポリゴン36bと右側面ポリゴン36cの2枚からなる山形(三角形状)でも良いし、4枚以上のポリゴンで構成しても良い。
【0049】
前端オブジェクト38及び後端オブジェクト40は、それぞれ端に向かうほど高さが低くなる斜面を形成し、移動面との見かけ上の馴染みを良くする。言わば、ラインオブジェクト36の先端に取り付けるキャップとも言える。
【0050】
図4は、航跡オブジェクト30の諸元決定のために用いられるスキー22の姿勢に基づくパラメータを示す概念図である。同図に示すように、速度ベクトルVで移動するスキー22の代表点G(例えば、キャタクタの代表点の雪面6への投影点)を基準にして、各スキー板それぞれについて代表点Gから速度ベクトルVの進行方向に直交する左右方向に沿った先端までの距離Lrf,Llfと、後端までの距離Lrr,Llrとを算出する。そして、算出した先端までの距離Lrf,Llfのうちの最大値と、後端までの距離Lrr,Llrのうちの最大値とを合計して、速度ベクトルVへの直交方向の正面投影幅Lsを算出する。
【0051】
図5は、スキー22のパラメータと航跡オブジェクト30の縦断面形状(より厳密にはラインオブジェクト36の縦断面形状)の諸元との関係を示す図である。
同図に示すように、先ず正面投影幅Lsを引数とする所定の関数f1で連結部オブジェクト34の連結部左右幅Lcを算出する。具体的な関数f1は、スキー22の側面からどれだけ離して隆起部オブジェクト32を配置すると好適かに応じて適宜設定される関数であり、例えば正面投影幅Lsを1.2倍する関数として定められる。
【0052】
次いで、連結部左右幅Lcに係数k1を乗じて隆起部オブジェクト32の隆起高Hを算出し、連結部左右幅Lcに係数k2を乗じて隆起部オブジェクト32の隆起幅Wを算出する。ここでの係数k1、k2は、移動面の状態、つまり現在滑走中の雪面6の雪質の設定に応じて予め用意されている定数である。例えば、圧接やザラメ雪では小さく、新雪では大きく設定する。新雪でも積雪が大きいほど係数k1,k2の値が大きくなるように設定されている。
【0053】
図6は、本実施形態における航跡オブジェクト30に適用されるテクスチャの例を示す図である。これらのテクスチャ44(44a,44b,44c)は、移動面(本実施形態では雪面6)の設定素材の特定態様を表現するテクスチャである。具体的には、本実施形態では、隆起部オブジェクト32の部分には押しのけられた雪が積み上がっている感じの陰影がラインオブジェクト36の長辺方向に合わせて施され、連結部オブジェクト34の部分にはスキー22のソールで均された雪面を感じさせる陰影が施されている。
【0054】
陰影のできる方向をプレーヤキャラクタ2に対する光源46の相対光源方向に応じて、(a)プレーヤキャラクタ2の進行方向に向かって左側に光源46があるパターンの第1テクスチャ44a、(b)上方に光源46があるダウンライトパターンの第2テクスチャ44b、(c)進行方向に向かって右側に光源があるパターンの第3テクスチャ44cの合計3種類が用意されている。そして、プレーヤキャラクタ2が滑り始める前の停止状態における光源46の相対方向に応じて、どのテクスチャを適用するかが決定される。なお、図6(b)では、光源46と、第2テクスチャ44bとが重なって図示されている。(第2テクスチャ44bには、図6(b)に示された太陽のマークは含まれない。)
勿論、テクスチャ44の種類は、これらに限るものではなく、プレーヤキャラクタ2に対する光源の相対方向を細かく区分してより多くの種類を設定することができる。雪面の雪質設定などに応じて設けても良い。
【0055】
図7は、スキー22と航跡オブジェクト30との相対位置関係を示す俯瞰図である。同図に示すような配置は、プレーヤキャラクタ2がレース開始前にゲーム空間に配置された時点や、ジャンプして着地した時点に相当する。以降、この状態を航跡オブジェクト30の初期配置と呼ぶ。
【0056】
航跡オブジェクト30の初期配置でのラインオブジェクト36は、スキー22の左右各側方に前端頂点50と後端頂点52が設定され、それらを結ぶ辺でポリゴンが形成される。具体的には、スキー22の代表点Gを基準にして、連結左右幅Lcの1/2の距離だけ左又は右に離れ、代表点Gから前側に距離L5だけ離れた位置の左右それぞれに前端頂点50が決定され、代表点Gから後方に距離L4だけ離れた位置に後方頂点52が決定される。そして、それらを結ぶ辺で上面ポリゴン36a、左側面ポリゴン36b及び右側面ポリゴン36cが決定される。本実施形態では、前端頂点50はスキー22のトップよりやや後方位置に設定され、後端頂点52はテール端のほぼ真横に設定される。
【0057】
そして、ラインオブジェクト36の前端及び後端には、前端頂点50及び後端頂点52より外側の所定相対位置に先端頂点54が設けられる。この先端頂点54と前端頂点50又は後端頂点52とを結ぶ辺でポリゴンが設定されて、進行方向前側に先窄まりな隆起面を形成する前端オブジェクト38と、進行方向後方に先窄まりな隆起面を形成する後端オブジェクト40を成す。
尚、前端頂点50の設置位置は、同図の例に限らず適宜設定することができる。例えば、スキー22の代表点Gの左右真横位置に設けるとしても良い。
【0058】
図8は、スキー22の移動に伴う隆起部オブジェクトの更新方法について説明する俯瞰図である。本実施形態では、一度配置されたラインオブジェクト36及び後端オブジェクト40は基本的には雪面(移動面)上に配置されたままとなる。
一方、スキー22が1描画フレーム分だけ前進すると、新たな配置位置の代表点G1に基づいて、新たなラインオブジェクト36−1が、既存のラインオブジェクト36−0の前端に、隆起面が繋がるようにして連結・配置される(図8(a)→図8(b))。そして、前端オブジェクト38は、新たなラインオブジェクト36−1の前端に連結するように配置位置が更新される(図8(c))。このように、本実施形態では、スキー22が止まるかジャンプするまで、こうした新たな隆起部オブジェクト32を既存の隆起部オブジェクト32と連結させて配置することを繰り返して航跡オブジェクト30を移動面上に形成・配置する。
【0059】
また、新たに左右のラインオブジェクト36−1が追加されるのに伴って、それらを連結する新たな連結部オブジェクト34−1も配置される。
【0060】
同図の例では、スキー22は直滑降姿勢なので、連結部オブジェクト34の左右幅Lcがそのままになるように新たなラインオブジェクト36−1が配置されているが、新たに配置されるラインオブジェクト36−1の諸元は、前進したスキー22の姿勢に基づくパラメータから求められる。
【0061】
図9は、ターン中のスキー22と航跡オブジェクト30との相対位置関係を示す俯瞰図である。同図に示すように、プレーヤキャラクタ2が左ターンする場合には、進行方向に対してスキー22が斜め姿勢をとるので、スキー22の方向は速度ベクトルVに対して相対角度θを成す。
【0062】
同図においてスキー22の移動に伴って新たに配置されるラインオブジェクト36−4では、新たに設定される前端頂点50は、代表点Gから左右にそれぞれ連結左右幅Lcの1/2だけ離れ、進行方向前側に距離L6=L0・cosθ(但し、L0はスキー22の全長。最小値はスキー22の現在の横幅L1。)だけ離れた位置に設定される。
【0063】
よって、ターン部分では連結部オブジェクト34の連結左右幅Lcが徐々に広くなるように新たなラインオブジェクト36が配置されてゆく。結果、スキー22のテールで均された部分がターンの曲り始めから徐々に広がり、曲り終わりに掛けて徐々に狭くなるリアルな形状の航跡オブジェクト30が形成されることになる。
【0064】
尚、前端頂点50の左右の配置については、代表点Gからの離間距離を左右均等にする構成に限らず、例えば、進行方向に対するスキー22の長手方向側の比率を小さく設定するとともに(例えば、0.3Lc)、反対側を大きく設定して(例えば、0.7Lc)、ターンの外側ほど離間距離が大きくなるように設定することもできる。
【0065】
図10は、本実施形態における航跡オブジェクトの重なり部分の描画処理について説明するための図である。先ず、図10(a)に示すように、雪面6に第1の航跡オブジェクト30−1が配置されたとする。この時、同オブジェクトの各ポリゴンのZ値は配置される雪面6のZ値と同じ値に設定されて、Zバッファに書き込まれる。また、同オブジェクトにおける各部の描画順番は、雪面6の描画順を「1(図中では丸付き数字で表記)」にして、連結部オブジェクト34−1が描画順番「2」、左右の隆起部オブジェクト32を描画番号「3」(又は左右で分けると「3」と「4」)とされる。
【0066】
次に、図10(b)に示すように、第1の航跡オブジェクト30−1と交差するように第2の航跡オブジェクト30−2が配置されたとする。この時、第2の航跡オブジェクト30−2の各ポリゴンのZ値も、先程と同様に配置される雪面6のZ値と同じ値に設定されてZバッファに書き込まれる。そして、第2の航跡オブジェクト30−2が有する複数の連結部オブジェクト34−2及び隆起部オブジェクト32の内、第1の航跡オブジェクト30−1と重なるオブジェクトについては、第1の航跡オブジェクト30−1の連結部オブジェクト34−1や隆起部オブジェクト32−1よりも描画順が後順に設定される。つまり、航跡オブジェクト30の配置順となる。
そして、第1の航跡オブジェクト30−1に重なる連結部オブジェクト34−2と隆起部オブジェクト32−2との描画順番は、後者の方が後順となるように設定される。よって、図10(b)の場合では、第1の航跡オブジェクト30−1に重なる連結部オブジェクト34−2が描画順番「4」、第1の航跡オブジェクト30−1に重なる隆起部オブジェクト32−2の描画順番が「5」に設定される。
【0067】
そして、本実施形態では、仮想カメラでゲーム空間内を撮影した画像を生成する際、基本的には公知のレンダリング手法と同様にしてZバッファ法を用いる。つまり、描画するポリゴンのZ値に基づいて仮想カメラに対する遠近関係を判断し、描画画素において最も仮想カメラに近いポリゴンが描画される。しかし、描画画素の位置に航跡オブジェクト30が配置されている場合には、例外として当該描画画素位置の雪面6及び配置済の航跡オブジェクト30の各部分オブジェクトに設定されている描画順番に従って各ポリゴンを上書き描画する。
【0068】
例えば、図10(b)において、破線で示した第1の航跡オブジェクト30−1の隆起部オブジェクトの部分は、雪面6のポリゴンが描画された後、第1の航跡オブジェクト30−1の連結部オブジェクト34−1のポリゴンが上書きされた後に隆起部オブジェクト32−1のポリゴンが上書きされ、更に第2の航跡オブジェクト30−2の連結部オブジェクト34−2のポリゴンが上書きされ、更に第2の航跡オブジェクト30−2の隆起部オブジェクト32−2のポリゴンが上書き描画される。この結果、破線で示した第1の航跡オブジェクト30−1の隆起部オブジェクトの部分はゲーム空間画像上では見えなくなり、航跡が交差した場所として正しい立体感が表現される。
【0069】
また、本実施形態では隆起部オブジェクト32の配置位置をゲームの進行に応じて補正することができる。
図11は、隆起部オブジェクト32を側面から見た図である。本実施形態では、前述のように新たに配置されるラインオブジェクト36−6の前端頂点50のうち、上面ポリゴン36aの頂点に該当する隆起部上面頂点50f(同図中の白点)の隆起高H(=H0)は、スキー22の正面投影幅Ls及び連結部左右幅Lcに対して関数で決定される。しかし、今回配置された新たな前端頂点50を除く既存の前端頂点50を、代表点Gからの直線距離Lgに応じて隆起高を増すように隆起高H1(>H0)に補正する。具体的には直線距離Lgが所定の基準値に達すると隆起部上面頂点50fの位置を隆起高がH0からH1になるように補正する。これによって、前端オブジェクト38の先窄まりの形状と相まって、スキー22のトップによって勢い良く左右に掻き分けられる雪の様子をよりリアルな立体感で表現することができる。
【0070】
[機能ブロックの説明]
次に、上述のようなゲームを実現するための具体的な構成について説明する。
図12は、本実施形態における家庭用ゲーム装置1200の機能構成の一例を示す機能ブロック図である。同図に示すように本実施形態では、操作入力部100と、処理部200と、音出力部350と、画像表示部360と、通信部370と、記憶部500とを備える。
【0071】
操作入力部100は、プッシュボタンや、レバー、タッチパッド、ダイヤル、キーボード、マウス、各種ポインタ、加速度センサ、傾斜センサなどの入力デバイスやセンサ類によって実現され、プレーヤによって為された各種の操作入力に応じて操作入力信号を処理部200に出力する。図1のゲームコントローラ1230が操作入力部100に該当する。
【0072】
処理部200は、例えばマイクロプロセッサやASIC(特定用途向け集積回路)、ICメモリなどの電子部品によって実現され、各機能部との間でデータの入出力を行うとともに所定のプログラムやデータ及び操作入力部100からの操作入力信号に基づいて各種の演算処理を実行して、家庭用ゲーム装置1200の動作を制御する。図1では、ゲーム装置本体1201に内蔵された制御ユニット1210が処理部200に該当する。
【0073】
そして、本実施形態における処理部200は、ゲーム演算部210と、音生成部250と、画像生成部260と、通信制御部270とを備える。
【0074】
ゲーム演算部210は、ゲームの進行に係る処理を実行する。例えば、3次元仮想空間中にゲーム空間を形成する処理や、ゲーム空間中に配置されたオブジェクトの動作制御処理、ヒット判定処理、物理演算処理、ゲーム結果の判定処理、ゲーム開始からの経過時間の算出などが実行対象に含まれる。
【0075】
より具体的には、本実施形態のゲーム演算部210は、PC(プレーヤキャラクタ)動作制御部212と、NPC動作制御部214と、仮想カメラ自動制御部216と、航跡配置制御部218とを含んでいる。
【0076】
PC動作制御部212は、操作入力部100に為された操作入力に基づいてプレーヤキャラクタ2の加速・減速・ターンといった動作制御を行う。
NPC動作制御部214は、所定の思考ルーチンに従ってNPC4を自律的にゴール目指して滑走するように自動動作制御する。同制御は、公知のレースゲームにおけるAI制御と同様にして実現できる。
仮想カメラ自動制御部216は、プレーヤキャラクタ2が画面のほぼ中央に写るように仮想カメラの位置や姿勢を自動制御する。
【0077】
航跡配置制御部218は、プレーヤキャラクタ2(つまりは、プレーヤキャラクタ2に付属するスキー22)の配置に伴って新たに航跡オブジェクト30を配置し、移動に伴って航跡オブジェクト30のプレーヤキャラクタ2の進行方向へ延長させるべく、新たな隆起部オブジェクト32をプレーヤキャラクタ2の進行方向に連結して追加配置していく。
より具体的には、ラインオブジェクト36を新たに追加配置するとともに、前端オブジェクト38を新たに配置されたラインオブジェクト36の前端に再配置する。この際、新たに配置されるラインオブジェクト36及び再配置される前端オブジェクト38については、配置/再配置される位置の雪面6のポリゴンと同じZ値とし、同配置位置に既存の他の航跡オブジェクトが存在する場合には、当該他の航跡オブジェクトよりも描画順番を後順に設定する。また、配置されたラインオブジェクト36の上面ポリゴン36aの頂点の雪面6からの高さを、スキー22の代表点Gからの直線距離Lgに応じて補正する。
【0078】
音生成部250は、例えばデジタルシグナルプロセッサ(DSP)などのプロセッサやその制御プログラムなどの公知技術によって実現され、ゲーム演算部210による処理結果に基づいてゲームに係る効果音やBGM、各種操作音の音信号を生成し、音出力部350に出力する。
【0079】
音出力部350は、音生成部250から入力される音信号に基づいて効果音やBGM等を音出力する装置によって実現される。図1ではビデオモニタ1220のスピーカ1224がこれに該当する。
【0080】
画像生成部260は、例えば、デジタルシグナルプロセッサ(DSP)などのプロセッサ、その制御プログラム、フレームバッファ等の描画フレーム用ICメモリ等の公知技術によって実現される。例えば画像生成部260は、ゲーム演算部210による処理結果に基づいて1フレーム時間(1/60秒)で1枚のゲーム空間画像をレンダリングして生成する。そして、生成したゲーム空間画像に各種情報表示を合成して一枚のゲーム画像W2を生成し、その画像信号を画像表示部360に出力する。
【0081】
画像表示部360は、画像生成部260から出力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管(CRT)、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図1ではビデオモニタ1220のフラットパネルディスプレイ1222が該当する。
【0082】
通信制御部270は、データ通信に係るデータ処理を実行し、通信部370を介して外部装置とのデータのやりとりを実現する。
【0083】
通信部370は、通信回線1と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現され、図1では通信装置1212がこれに該当する。
【0084】
記憶部500は、予め定義されたプログラムやデータを記憶するとともに、処理部200の作業領域として用いられて処理部200が各種プログラムに従って実行した演算結果や操作入力部100から入力される入力データ等を一時的に記憶する。この機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD−ROMやDVDなどの光学ディスクなどによって実現される。
【0085】
本実施形態における記憶部500は、処理部200にゲーム装置1200を統合的に制御させるための諸機能を実現するためのシステムプログラム502や、ゲームを実行させるために必要なゲームプログラム504、並びに各種データ等を記憶する。処理部200がゲームプログラム504を読み出して実行することによって、処理部200にゲーム演算部210としての機能を実現させることができる。
【0086】
ゲームプログラム504は、NPCの動作を自動制御するための機能を実現させるためのNPC制御プログラム506を含む。俗にNPCのAIとも呼ばれる公知の技術を用いて実現される。
【0087】
また記憶部500には、予め用意されるデータとしてゲーム空間設定データ510と、キャラクタ初期設定データ522と、係数設定TBL(テーブル)524と、航跡テクスチャデータライブラリ526を記憶する。
【0088】
更にゲームの進行に伴って生成され、随時書き換えられるデータとして、キャラクタステータスデータ530が記憶される。また、ゲームの進行に係る処理を実行するに当たり必要となる情報として、例えば仮想カメラを制御するための画角・視線方向・姿勢情報などのデータ、各種制限時間のカウントデータなどが適宜記憶される。
【0089】
ゲーム空間設定データ510には、3次元仮想空間にゲーム空間を形成するための背景オブジェクトに係る各種データが格納されている。例えば、雪面6や樹木8、遠景の森林、コースの立札などの配置物に関するモデルデータやテクスチャデータ及びモーションデータが格納されている。
そして、ゲーム空間設定データ510には、ゲームステージ毎にステージ設定データ512が用意されおり、一つのステージ設定データ512には雪面6のポリゴンを定義する移動面設定データ514と、雪質設定516と、光源位置を定義する光源位置データ518とを含む。
【0090】
キャラクタ初期設定データ522には、プレーヤキャラクタ2やNPC4との初期設定データが格納されている。具体的には、表示用モデル、テクスチャ、初期配置位置座標、最高速度や最高加速度、最大操舵角、ブレーキ性能などの能力パラメータ値の初期値が格納されている。
【0091】
係数設定TBL524は、例えば図13に示すように、雪質設定524aと対応づけて航跡オブジェクト30の諸元を算出するための係数k1(524b)と、係数k2(524c)の値を定義する(図5参照)。
【0092】
航跡テクスチャデータライブラリ526は、例えば図14に示すように、相対光源位置526aと対応づけて、航跡オブジェクト30に適用することのできるテクスチャ44a,44b,44c(図6参照)が格納されている。
【0093】
キャラクタステータスデータ530は、プレーヤキャラクタ2とNPC4それぞれに一つずつ用意されており、それぞれキャラクタID530aと、現在位置530bと、速度ベクトル530cと、航跡オブジェクトデータ550とを含む。
【0094】
航跡オブジェクトデータ550は、例えば図15に示すように、航跡ID551と対応づけて、隆起部オブジェクト32を形成する部分オブジェクトに係るデータとしてラインオブジェクトデータ552、前端オブジェクトデータ553、後端オブジェクトデータ554、連結部オブジェクトデータ555を格納する。また、航跡オブジェクトデータ550は、当該航跡オブジェクトに適用されるテクスチャ44の識別情報を格納する適用テクスチャID556を含む。その他、適宜航跡オブジェクトの定義、制御に必要な情報を含む。
【0095】
ラインオブジェクトデータ552は、例えば図16に示すように、ポリゴンID552aと対応づけて当該ポリゴンの頂点データ552bと、航跡オブジェクトが重なって配置された部分の描画時に適用される描画順552c(図10参照)とが格納されている。
ポリゴンID552aと対応づけられる頂点データ552bは、例えばストリップデータとしても良い。また、ラインオブジェクトデータ552は、隆起面上面にあたる頂点の識別情報を格納する隆起部上面頂点ID552dを格納する。隆起部オブジェクト32の隆起高を変更する場合には、当該データに格納されている頂点の雪面6からの距離を変更する。
【0096】
尚、前端オブジェクトデータ553、後端オブジェクトデータ554、及び連結部オブジェクトデータ555も基本的には同様のデータ構成を有している。
【0097】
[処理の流れの説明]
次に、本実施形態における処理の流れについて説明する。ここで説明される処理は、処理部200がシステムプログラム502及びゲームプログラム504を実行することによって実現される。尚、NPC4の自動制御(AI制御)については適宜公知の技術を適用することができるので、ここでの詳細な説明は省略する。また、ゲーム音に関する制御は公知のビデオゲームと同様に実現することができるので、ここでは説明を省略する。
【0098】
図17は、本実施形態における主たる処理の流れについて説明するためのフローチャートである。
先ず処理部200は、ゲーム空間設定データ510を参照して3次元仮想空間内に背景オブジェクトを配置してゲーム空間を形成する(ステップS2)。この際、光源の配置位置は現在プレイするステージ設定データ512の光源位置データ518に基づく。
【0099】
次に、処理部200はキャラクタ初期設定データ522を参照し、プレーヤキャラクタ2とNPC4を所定のスタート位置に配置し、プレーヤキャラクタ2を撮影する仮想カメラを初期位置に配置する(ステップS4)。そして、プレーヤキャラクタ2及びNPC4それぞれについて、航跡オブジェクト30を初期配置する(ステップS6:図7参照)。この時、初期配置される航跡オブジェクト30の各ポリゴンのZ値は、それぞれが配置される位置の雪面6のポリゴンのZ値と同じ値に設定され、ポリゴンの描画順552cは連結部オブジェクト34ならば初期値「2」、隆起部オブジェクト32ならば初期値「3」に設定される。
【0100】
ゲームがスタートされたならば(ステップS8のYES)、処理部200はステップS10〜S40を画像表示部360のリフレッシュレートよりも十分短い制御サイクルで、ゲーム終了条件を満たすまで繰り返し実行する。
【0101】
具体的には、処理部200は先ずNPC4の動作を自動制御する(ステップS10)。これによってNPC4は、自律的に加速・減速・ターン動作をして所定のゴールを目指すように制御される。尚、NPCとして観客などレースに参加しないNPCが登場する場合には、ここでその動作を制御すると良い。
【0102】
次いで、処理部200は操作入力部100に為された操作入力に応じてプレーヤキャラクタ2の加速・減速・ターン動作を制御する(ステップS12)。
そして、処理部200はレースに参加する全てのキャラクタについて航跡オブジェクト配置処理と隆起高補正処理を実行する(ループA:ステップS14〜S20)。
【0103】
図18は、本実施形態における航跡オブジェクト配置処理の流れを説明するためのフローチャートである。同処理では先ず、処理部200は処理対象のキャラクタがジャンプ後の着地をしたか否かを判定する(ステップS60)。
【0104】
ジャンプ後着地をしていない場合(ステップS60のNO)、処理部200は処理対象キャラクタのキャラクタステータスデータ530を参照して、処理対象キャラクタのスキー22の速度ベクトルV(530c)に対する相対姿勢から正面投影幅Lsを算出する(ステップS62)。具体的には、各スキー板それぞれについて代表点Gから速度ベクトルVの進行方向に直交する左右方向に沿った先端までの距離Lrf,Llfと、後端までの距離Lrr,Llrを算出する。そして、算出した先端までの距離Lrf,Llfの内の最大値と、後端までの距離Lrr,Llrの内の最大値とを合計して正面投影幅Lsを算出する(図4参照)。
【0105】
次いで、処理部200は、算出した正面投影幅Lsに基づいて所定の関数で連結部オブジェクト34の連結左右幅Lc、換言すると左右のラインオブジェクト36の離間距離を算出する(ステップS64)。続いて、現在プレイ中のゲームステージのステージ設定データ512の雪質設定516と、係数設定TBL524とを参照して、適用する係数k1と係数k2の値を選択する(ステップS66)。そして、選択した係数k1,k2を用いてラインオブジェクト36の隆起高Hと、隆起幅Wを算出する(ステップS68)。
【0106】
次に、処理部200は対応キャラクタの今回の制御サイクルの移動先の代表点Gの位置と、算出した連結左右幅Lc・隆起高H・隆起幅Wとに基づいて、新たに配置するラインオブジェクト36の前端頂点50を決定する(ステップS70:図9参照)。
そして、前回設定した前端頂点50と今回新たに新規追加する前端頂点50とを結ぶ新たな連結部オブジェクト34とラインオブジェクト36のポリゴンを追加設定する(ステップS72、S74)。この際、新たに追加設定されるポリゴンのZ値は、配置される雪面6のZ値と同じ値を設定する。
【0107】
更に処理部200は、新たに追加されたラインオブジェクト36の前端部に連結するように、前端オブジェクト38を再配置する(ステップS76)。この時、再配置される前端オブジェクト38のポリゴンのZ値は、再配置される雪面6のZ値と同じ値を設定する。
【0108】
次に、処理部200は追加又は再配置される各部分オブジェクト(ラインオブジェクト36,連結部オブジェクト34,前端オブジェクト38)についてループCの処理を実行する(ステップS78〜S86)。ループCでは、処理対象以外のキャラクタのキャラクタステータス530の航跡オブジェクトデータ550を参照して、処理対象の部分オブジェクトの追加配置位置又は再配置位置に既存の航跡オブジェクト30が存在するか否かを判定する(ステップS80)。
【0109】
既存の航跡オブジェクト30が存在せず、その位置の雪面6に初めて曳かれる航跡20であれば(ステップS80のNO)、処理部200は処理対象の部分オブジェクトの描画順552cをオブジェクトの種類の初期値に設定し(ステップS82)、ループCを終了する。具体的には、連結部オブジェクト34ならば初期値「2」、隆起部オブジェクト32ならば初期値「3」とする。左右の隆起部オブジェクト32で分けてそれぞれ初期値「3」「4」としても良い。
【0110】
一方、既存の航跡オブジェクト30が存在する場合には(ステップS80のYES)、処理部200は処理対象の部分オブジェクトの描画順を、既存の航跡オブジェクトの描画順よりも後順に設定し(ステップS84)、ループCを終了する。具体的には、例えば、その位置の雪面6に曳かれる2本目の航跡20に相当するならば、連結部オブジェクト34は描画順「4」、隆起部オブジェクト32は描画順「5」とされる(図10参照)。
もし、ステップS82で左右の隆起部オブジェクト32で分けてそれぞれ初期値「3」「4」とする構成ならば、ステップS84での連結部オブジェクト34は描画順「5」、隆起部オブジェクト32は描画順「6」「7」となる。
そして、ループCの処理を対象とする部分オブジェクトについて実行したならば、航跡オブジェクト配置処理を終了する。
【0111】
図19は、本実施形態における隆起高補正処理の流れを説明するためのフローチャートである。同処理では先ず、処理部200は処理対象の航跡オブジェクトに対応するキャラクタが移動中であるか否か、つまりは移動体であるスキー22が移動中であるか否かを判定する(ステップS110)。
【0112】
移動中の場合(ステップS110のYES)、処理部200は処理対象キャラクタに対応する航跡オブジェクトデータ550のラインオブジェクトデータ552に含まれる隆起部上面頂点ID552dを参照する。そして、処理対象キャラクタの航跡オブジェクト30に含まれる隆起部上面頂点54(図11参照)の内、現在のスキー22の代表点Gからの進行方向の後方の距離Lgが基準値以上に達した頂点を抽出する(ステップS112)。そして、抽出した頂点の雪面6(移動面)からの高さを所定値に増加補正し(ステップS114)、隆起高補正処理を終了する。尚、ステップS114における補正後の値には所定の上限が設定されており、隆起部オブジェクト32の隆起高Hが一定以上高くならないように考慮されている。
【0113】
図17のフローチャートに戻って、レースに参加する全てのキャラクタについてループAを実行したならば、処理部200は次にゲーム空間画像描画処理を実行して、仮想カメラでゲーム空間内の様子を撮影したゲーム空間画像をレンダリングする(ステップS32)。
【0114】
図20は、本実施形態におけるゲーム空間画像描画処理の流れを説明するためのフローチャートである。同処理では先ず、処理部200はZバッファ法に従ってレンダリングを開始する(ステップS120)。そして、描画する箇所が航跡オブジェクトの配置されている位置に該当する場合(ステップS124のYES)、処理部200は例外的に雪面6(背景オブジェクト)のポリゴンを最初に描画した後、同描画箇所に配置されている航跡オブジェクトの各部分オブジェクトを、それぞれに設定されている描画順552c(図16参照)に従って、適用テクスチャID556(図15参照)に指定されているテクスチャを適用したポリゴンを順次上書き描画する(ステップS126)。
そして、全ての画素について描画し、ゲーム空間画像の描画が完了したならば本処理を終了して図17のフローチャートに戻る。
【0115】
処理部200は次に、生成されたゲーム空間画像にタイム表示12や順位表示14(図2参照)などの情報表示を合成してゲーム画面W2を生成し、画像表示部360に表示させる(ステップS34)。そして、ゲーム結果の算出を行う(ステップS36)。ゲーム結果の算出では、プレーヤキャラクタ2又はNPC4が所定のゴール位置に到達したか否かの判定、ゴール順の判定などを行う。
【0116】
ゲーム結果が所定のゲーム終了条件を満たしていなければ(ステップS38のNO)、つまりプレーヤキャラクタ2もNPC4も何れもゴールに到達していなければ、処理部200は次に航跡オブジェクトデータ削減処理を実行し(ステップS40)、ステップS8に戻る。
【0117】
航跡オブジェクトデータ削減処理では、例えば図21に示すように、全ての航跡オブジェクトについてループBを実行する(ステップS140〜S148)。具体的には、処理対象の航跡オブジェクト30の航跡オブジェクトデータ550のデータ量を算出し所定の上限値に達したか否かを判定する(ステップS142)。そして、上限値に達していれば(ステップS142のYES)、処理部200は処理対象の航跡オブジェクト30の後端オブジェクト40に相当する部分のデータを削除するとともに(ステップS144)、ラインオブジェクト36の後端側のデータ、つまりは配置順の古いポリゴンを削除する(ステップS146)。
つまり、航跡オブジェクトを構成する部分オブジェクトを配置順の古いものから順次削除することで航跡オブジェクトデータ550が占める記憶容量を削減して、処理負荷を低減させる。
【0118】
一方、ゲーム結果がゲーム終了条件を満たしていれば(ステップS38のYES)、処理部200は所定のゲーム終了の演出処理などを実行して(ステップS42)、一連の処理を終了する。
【0119】
以上、本実施形態によれば、雪面6を移動するスキー22のように、粒子状物体が堆積して形成された移動面に沿って移動する移動体に付属させて航跡の立体的なオブジェクトを配置することで立体感豊かに表現することができる。
【0120】
そして、本実施形態における航跡オブジェクトは隆起面を形成する複数本の隆起部オブジェクト32とそれを連結する板状の連結部オブジェクト34の単純な構造で構成されている。そして、移動体の移動に伴って航跡オブジェクトを伸ばす場合には、隆起部オブジェクト32を構成するラインオブジェクト36を新たに移動体の進行方向端に増設するだけで済むので、航跡の表現に当たっての必要記憶容量を少なく、処理負荷を軽くすることができる。
【0121】
また、隆起部オブジェクト32の端部には、先細りの立体形状をした前端オブジェクト38及び後端オブジェクト40を連結させるので、粒子状物体が移動体で押し分けられて側方又は後方に積もった感じを立体的に表現できる。特に前端オブジェクト38を、移動体がスキー22であればそのトップの側方やや後方に配置することでスキー22によって掻き分けられた雪の感じをリアルに表現する事ができる。
【0122】
そして、隆起部オブジェクト32の隆起高Hを最初に設定された値H0からスキー22の先端から離れるとより大きい値H1に変更することで、隆起部オブジェクト32の形状を、前端から徐々に高くなってある高さに達した状態のまま残るといったスキーの航跡らしい立体形状とすることができる。これは、スキー22の移動と相俟ってスピード感ある航跡表現を可能にする。
【0123】
また、航跡オブジェクトが重なる部分のZ値を、同オブジェクトを配置する背景オブジェクトと同じZ値としつつ、描画順番を配置順に基づいて設定し、ゲーム空間画像の生成に際して航跡オブジェクトの存在する描画箇所を処理する場合には、この描画順番に従ってポリゴンを順次上書き描画するようにして画素を塗ることができる。これによって、航跡20が交差する位置でも、下になる航跡オブジェクト30の隆起部オブジェクト32で、後から配置された他の航跡オブジェクト30の下になる部分が描画されないようにすることで、正しく交差部を立体的に表現することができる。
【0124】
〔第2実施形態〕
次に、本発明を適用した第2実施形態について説明する。本実施形態は、基本的には第1実施形態と同様に実現されるが、移動体や移動面の設定、航跡オブジェクトの構造、航跡オブジェクトの補正の仕方の3点に於いて異なる。
尚、ここでは第1実施形態と同様の構成要素については第1実施形態と同じ符号を付与して重複する説明を省略し、第1実施形態と異なる点についてのみ述べることとする。
【0125】
図22は、本実施形態における移動体と移動面と航跡との関係を示す図である。本実施形態におけるゲームは、水上レースをテーマとしている。レースをする移動体としてモータボート60を設定し、水面62を移動面とする。そして、航跡オブジェクト30Bは、3本の隆起部オブジェクト32R,32M,32Lと、隣接する2本の隆起部オブジェクトを連結する2つの連結部オブジェクト34R,34Lで構成され、移動体の後方に配置される。尚、隆起部オブジェクト32R,32M,32Lの前端及び後端には第1実施形態と同様に、前端オブジェクトと後端オブジェクトが連結されているものとする。
【0126】
図23は、本実施形態における隆起部オブジェクト32R,32M,32Lの縦断面図であって、図23(a)が図22のA−A断面、図23(b)が図22のB−B断面における縦断面図に相当する。図23に示すように、本実施形態の隆起部オブジェクト32R,32M,32Lの縦断面形状は、第1実施形態の上向きの台形ではなく、上向き三角形を成している。
【0127】
前端頂点50が配置された直後のA−A断面における隆起部オブジェクト32R,32M,32L及び連結部オブジェクト34R,34Lの諸元は、所定の初期値が適用される。同図の例では、左右の隆起部オブジェクト32R,32Lでは初期隆起高H0と初期隆起幅W0が適用され、中央の隆起部オブジェクト32Mでは初期隆起高H00と初期隆起幅W00が適用される。
【0128】
そして、隆起部オブジェクト32R,32M,32Lについては、それぞれの隆起高Hr,Hm,Hlは配置からの経過時間tの増加とともに減少するように補正・変更され、それぞれの隆起幅Wr,Wm,Wlは経過時間tの増加とともに増加するように補正・変更される。また、連結部オブジェクト34R,34Lの連結部左右幅Lcr,Lclは経過時間tとともに増加するように補正・変更される。
【0129】
結果、航跡オブジェクト30Bは、新たに配置された前部分の左右幅がモータボート60の船尾幅に近い最小値を成すとともに隆起高が最大値を成し、後に向かうほど左右の幅が広がり隆起高さも低くなるような形状となる。そして、水の特定態様として白く泡立った様子のテクスチャを適用することでリアルな曳波を表現することができる。尚、図中の例では、各諸元は所定の係数k3〜k7に比例・反比例して増加/減少するようになっているが、それらの係数に代えて適宜経過時間tの関数を定義することができる。
【0130】
航跡オブジェクト30Bの諸元を経過時間tとともに変更するために、本実施形態のラインオブジェクトデータ552(552B)は、隆起部オブジェクト32R,32M,32Lそれぞれについて、例えば図23に示す各関数から算出されて、図24に示すデータ構成で設けられる。そして、各オブジェクトのポリゴンの頂点のうち、隆起部上面頂点ID552dと左右端頂点ID552eに対応づけて配置時刻552fを格納する。
【0131】
図25は、本実施形態における隆起高補正処理(隆起高補正処理B)の流れを説明するためのフローチャートである。同処理では、処理部200は全ての航跡オブジェクト30BについてループEを実行する(ステップS160〜S168)。
ループEでは、処理対象とされる航跡オブジェクト30Bを構成する全ての隆起部オブジェクト32R,32M,32L及び連結部オブジェクト34R,34LについてループFを実行する(ステップS162〜S166)。そして、ループEでは、処理部200は処理対象の隆起部オブジェクトのラインオブジェクトデータ552Bを参照して、隆起部上面頂点と左右端頂点の位置を、配置時刻からの現在までの経過時間tが増すにつれて隆起高Hr,Hm,Hlが低くなるように、且つ隆起左右幅Wr,Wm,Wlとが広くなるように補正する(ステップS164)。
【0132】
〔変形例〕
以上、本発明を適用した第1〜第2実施形態について説明したが、本発明の適用可能な実施形態がこれらに限定されるものではない。
【0133】
例えば、家庭用ゲーム装置1200でビデオゲームを実行する構成を例に挙げたが、業務用のゲーム装置(例えば、株式会社セガ製「SEGA SKI SUPER G」と同様のゲーム装置)やパソコン、携帯型ゲーム装置などでゲームを実行することもできる。また、ゲームはスタンドアローンのゲーム装置で実行される場合に限らず、ネットワークゲーム(オンラインゲーム)であっても良い。
【0134】
また、ゲーム内容は、スキーレースや水上レースを題材としたゲームに限らず、移動面を航跡を曳きながら移動する移動体が登場する場面が含まれれば、レースゲーム、RPG、アクションゲームなどに同様に適用できる。その際、移動面は雪面や水面に限らず、砂漠、雲海などとする事ができる。移動体としては、人型キャラクタは勿論のこと、スキーやスノーボード、モータボートやジェットスキーの他、砂漠を走る自動車や、移動面ぎりぎりを飛ぶ飛行機やミサイル、などを適宜設定することができる。
【0135】
また、上記実施形態では、プレーヤキャラクタ2をゲームスタート時に最初に配置した時と、ジャンプ後の着地の時それぞれの時点で航跡オブジェクト30を初期配置する構成としているが、初期配置の代わりに前端頂点50のみを配置する構成とすることができる。具体的には、図17のステップS6では初期配置の代わりに前端頂点50のみを配置する構成とする。また、図18のステップS92では新たな航跡オブジェクト30の初期配置を行う代わりに新たな前端頂点50を配置する構成とする。そして、図18のステップS70とステップS72の間に、既存の前端頂点50が存在するか否かを判定するステップを設け、当該ステップにおいて肯定判定の場合に、処理部200が新たなポリゴンを形成することができる条件が整ったと判断して、ステップS72へ移行する構成とすると良い。
【0136】
また、航跡オブジェクト30は、プレーヤキャラクタ2の移動に伴って次々にラインオブジェクト36を増結する構成に限らず、初期配置された航跡オブジェクト30の前端頂点50を単に移動後のスキー22に対する所定位置に移動させるように制御して、実質的にラインオブジェクト36を変形させる構成にもできる。
【0137】
また、前端オブジェクト38及び後端オブジェクト40の形状を、先すぼまりの形状としたがこれに限らず適宜設定することができる。例えば、先端頂点54を前端頂点50と同数だけ所定距離前方に配置して、前方方向のみに傾斜する形状としても構わない。この場合、スキー22によって大量に雪がかき分けられている印象を与える航跡オブジェクト30とすることができる。プレーヤキャラクタ2のキャラクタ種類がプレーヤによって選択可能な構成とし、大柄なキャラクタが選択された場合に、前端オブジェクト38及び後端オブジェクト40をここで述べたような前方向或いは後方向のみに傾斜する形状とし、それ以外のキャラクタが選択された場合には、上記実施形態のような先すぼまりな形状とすると好適である。
【0138】
また、上記実施形態では、航跡オブジェクト30にかかるZ値を、その航跡オブジェクト30を配置する移動面(地形オブジェクト)と同じZ値とする構成としたがこれに限らない。例えば、航跡オブジェクト30も地形オブジェクトの一種とみなし、航跡オブジェクト30についてはZ値を設定しない。そして、地形オブジェクトを描画する際に、移動面などの背景オブジェクトを描画した後に、航跡オブジェクト30をそれぞれの配置順に従って背景オブジェクトの上に描画する。次いで、Zバッファ法に基づきプレーヤキャラクタ2やNPC4を更にその上に描画する構成とすることもできる。この場合、航跡オブジェクト30に係わるZバッファ法の判定処理を省略できるので、処理負荷の低減の観点からするとより好適である。勿論、地形オブジェクトには無限遠のZ値を設定することとして航跡オブジェクト30にも無限遠のZ値を設定しておいてもよい。その場合も、無限遠のオブジェクトを描画する際には、背景を描画した後に、配置した順に航跡20を描画し、最後にプレーヤキャラクタ2やNPC4を描画する構成とすることもできる。
【0139】
また、上記実施形態では、航跡オブジェクト30の情報は航跡を曳くキャラクタ毎に付属管理される構成としているが、これに限らない(図12参照)。
例えば、航跡オブジェクトデータ550を個別に記憶部500に記憶し、キャラクタステータスデータ530では対応する航跡の航跡IDのみを含む構成としても良い。そして、航跡オブジェクトデータ削減処理では、所定の削減対象条件を満たす航跡オブジェクトデータごと削除すると良い。削減対象条件としては、仮想カメラから撮影できない範囲のNPCに対応する航跡であることや、所定時間以上ゲレンデで停止しているNPCに対応する航跡であること、ゲレンデの下流所定位置まで滑りきってしまったNPCに対応する航跡であること、などを条件に設定すると好適である。
【0140】
或いは、一回の配置タイミングで配置されたラインオブジェクト36と連結部オブジェクト34とを一つの航跡要素単位として航跡要素IDを付与し、描画順とともにキャラクタと対応づける構成とする。つまり、航跡オブジェクトデータ550には雪面6に配置されている全てのラインオブジェクト36と連結部オブジェクト34との航跡要素組が配置順に登録されている構成とする。この場合、航跡オブジェクトデータ削減処理では、仮想カメラに写らない航跡要素組や、所定時間以上ゲレンデで停止しているNPCに対応する航跡要素組、ゲレンデの下流所定位置まで滑りきってしまったNPCに対応する使用済みの航跡要素組を抽出して削除すると好適である。
【0141】
また、航跡オブジェクト30に適用するテクスチャ44を光源の相対配置方向別に複数種類用意する構成としたが、例えば右或いは左に光源がある場合の一種類のテクスチャ44のみを用意して、航跡オブジェクト30が初めて配置される時の光源の左/右の相対方向に応じて、そのまま適用或いは反転させて適用する構成とすることもできる。
【図面の簡単な説明】
【0142】
【図1】家庭用ゲーム装置の構成例を示すシステム構成図。
【図2】スキーゲームのゲーム画面例を示す図。
【図3】第1実施形態における航跡形成の原理を説明するための概念図。
【図4】航跡オブジェクトの諸元決定のために用いられるスキーの姿勢に基づくパラメータを示す概念図。
【図5】スキーのパラメータと航跡オブジェクトの縦断面形状の諸元との関係を示す図。
【図6】第1実施形態における航跡オブジェクト30に適用されるテクスチャの例を示す図。
【図7】スキーと航跡オブジェクトとの相対位置関係を示す俯瞰図。
【図8】スキーの移動に伴う隆起部オブジェクトの更新方法について説明する俯瞰図。
【図9】ターン中のスキーと航跡オブジェクトとの相対位置関係を示す俯瞰図。
【図10】航跡オブジェクトの重なり部分の描画処理について説明するための図。
【図11】隆起部オブジェクトの配置位置をゲームの進行に応じた補正処理の原理を説明するための概念図。
【図12】第1実施形態における機能構成例を示す機能ブロック図。
【図13】係数設定TBL(テーブル)のデータ構成例を示す図。
【図14】航跡テクスチャデータライブラリのデータ構成例を示す図。
【図15】航跡オブジェクトデータのデータ構成例を示す図。
【図16】第1実施形態におけるラインオブジェクトデータのデータ構成例を示す図。
【図17】主たる処理の流れを説明するためのフローチャート。
【図18】航跡オブジェクト配置処理の流れを説明するためのフローチャート。
【図19】隆起高補正処理の流れを説明するためのフローチャート。
【図20】ゲーム空間画像描画処理の流れを説明するためのフローチャート。
【図21】航跡オブジェクトデータ削減処理の流れを説明するためのフローチャート。
【図22】第2実施形態における移動体と移動面と航跡との関係を示す図。
【図23】第2実施形態における隆起部オブジェクトの縦断面図であって、図22の(a)A−A断面、(b)B−B断面における縦断面図。
【図24】第2実施形態におけるラインオブジェクトデータのデータ構成例を示す図。
【図25】第2実施形態における隆起高補正処理の流れを説明するためのフローチャート。
【符号の説明】
【0143】
2 プレーヤキャラクタ(PC)
4 NPC
6 雪面
22 スキー
30 航跡オブジェクト
32 隆起部オブジェクト
34 連結部オブジェクト
36 ラインオブジェクト
38 前端オブジェクト
40 後端オブジェクト
50 前端頂点
100 操作入力部
200 処理部
210 ゲーム演算部
212 PC(プレーヤキャラクタ)動作制御部
214 NPC(ノンプレイアブルキャラクタ)動作制御部
218 航跡配置制御部
260 画像生成部
360 画像表示部
500 記憶部
504 ゲームプログラム
506 NPC制御プログラム
510 ゲーム空間設定データ
512 ステージ設定データ
514 移動面設定データ
516 雪質設定
518 光源位置データ
522 キャラクタ初期設定データ
524 係数設定TBL(テーブル)
526 航跡テクスチャデータライブラリ
530 キャラクタステータスデータ
530c 速度ベクトル
550 航跡オブジェクトデータ

【特許請求の範囲】
【請求項1】
コンピュータを、移動面を配置して形成したゲーム空間内で、キャラクタオブジェクトを前記移動面に沿って移動制御して所定のゲームを実行するように機能させるためのプログラムであって、
前記キャラクタオブジェクトの移動に伴って、当該キャラクタオブジェクトの側方及び/又は後方に前記移動面より隆起した隆起面を形成する隆起部オブジェクトを配置することで航跡オブジェクトを形成・配置する航跡オブジェクト配置手段、
前記航跡オブジェクト配置手段により航跡オブジェクトが配置された前記ゲーム空間の画像を所定の仮想カメラに基づいて生成する画像生成手段、
として前記コンピュータを機能させるためのプログラム。
【請求項2】
前記航跡オブジェクト配置手段が、新たな隆起部オブジェクトを既存の隆起部オブジェクトと連結させるように配置していく処理を繰り返すことで前記航跡オブジェクトを形成・配置するように前記コンピュータを機能させるための請求項1に記載のプログラム。
【請求項3】
前記航跡オブジェクト配置手段が、前記キャラクタオブジェクトの移動に伴って、2以上の所定数の前記隆起部オブジェクトを組として、既存の対応する隆起部オブジェクトと連結させて配置していくとともに、当該新たに配置した所定数の隆起部オブジェクト間を連結する板状の連結部オブジェクトを更に配置するように前記コンピュータを機能させるための請求項2に記載のプログラム。
【請求項4】
前記航跡オブジェクト配置手段が、前記航跡オブジェクトを構成する隆起部オブジェクトの端部に、先端に向かうほど隆起高さが低くなる端部オブジェクトを更に配置するように前記コンピュータを機能させるための請求項1〜3の何れか一項に記載のプログラム。
【請求項5】
前記移動面の状態として、前記隆起部オブジェクトの隆起高さを可変する基準となる状態を設定する移動面状態設定手段、
前記移動面の状態に基づいて前記隆起部オブジェクトの隆起高さを決定する隆起高さ決定手段、
として前記コンピュータを機能させ、
前記航跡オブジェクト配置手段が、配置する隆起部オブジェクトの高さを前記隆起高さ決定手段によって決定された隆起高さで配置する、
ように前記コンピュータを機能させるための請求項1〜4の何れか一項に記載のプログラム。
【請求項6】
前記航跡オブジェクト配置手段が、前記キャラクタオブジェクトの左右の側方それぞれに、前記キャラクタオブジェクトの向きと移動方向とがなす相対角度に応じた距離分離隔して前記隆起部オブジェクトを配置するように前記コンピュータを機能させるための請求項1〜5の何れか一項に記載のプログラム。
【請求項7】
前記航跡オブジェクト配置手段が、前記キャラクタオブジェクトの左右の側方それぞれに配置する前記隆起部オブジェクトの離隔距離に基づいて当該隆起部オブジェクトの隆起高さを変更するように前記コンピュータを機能させるための請求項6に記載のプログラム。
【請求項8】
前記航跡オブジェクトと他の航跡オブジェクトとが交差して配置されたことを検知する交差配置検知手段、
前記交差配置検知手段によって交差して配置されたと検知された航跡オブジェクト同士の描画順を配置順に設定する描画順設定手段、
として前記コンピュータを機能させるとともに、
前記画像生成手段が、前記航跡オブジェクトを前記ゲーム空間の地形の1つとして描画するとともに、前記描画順設定手段によって設定された描画順に従った順に前記航跡オブジェクトを描画する描画制御手段を有するように、
前記コンピュータを機能させるための請求項1〜7の何れか一項に記載のプログラム。
【請求項9】
前記航跡オブジェクトのZ値を、当該航跡オブジェクトが配置されている移動面のZ値と同じに設定する航跡Z値設定手段として前記コンピュータを機能させるとともに、
前記画像生成手段が、各オブジェクトのZ値に基づくZバッファ法でゲーム空間の画像を生成するように前記コンピュータを機能させる、
ための請求項8に記載のプログラム。
【請求項10】
前記隆起部オブジェクトの配置後経過時間に基づいて当該隆起部オブジェクトの寸法を補正する隆起寸法補正手段として前記コンピュータを機能させるための請求項1〜9の何れか一項に記載のプログラム。
【請求項11】
前記ゲーム空間における光源を設定する光源設定手段、
前記光源の光線方向と前記キャラクタオブジェクトの位置とに基づく相対光源方向別に用意されたテクスチャを前記航跡オブジェクトにマッピングするテクスチャマッピング手段、
として前記コンピュータを機能させるための請求項1〜10の何れか一項にプログラム。
【請求項12】
請求項1〜11の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項13】
移動面を配置して形成したゲーム空間内で、キャラクタオブジェクトを前記移動面に沿って移動制御させるキャラクタオブジェクト移動制御手段と、
前記キャラクタオブジェクトの移動に伴って、当該キャラクタオブジェクトの側方及び/又は後方に前記移動面より隆起した隆起面を形成する隆起部オブジェクトを配置することで航跡オブジェクトを形成・配置する航跡オブジェクト配置手段と、
前記航跡オブジェクト配置手段により航跡オブジェクトが配置された前記ゲーム空間の画像を所定の仮想カメラに基づいて生成する画像生成手段と、
を備えるゲーム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate


【公開番号】特開2010−79564(P2010−79564A)
【公開日】平成22年4月8日(2010.4.8)
【国際特許分類】
【出願番号】特願2008−246536(P2008−246536)
【出願日】平成20年9月25日(2008.9.25)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】