説明

プログラム、情報記憶媒体、及び、ゲームシステム

【課題】オブジェクト空間において、移動体を多様に移動させ、プレーヤに面白みを与えることができるプログラム、情報記憶媒体、ゲームシステムを提供すること。
【解決手段】プレーヤの移動入力情報に基づいて、移動体を移動させる処理を行い、移動体の属性を設定し、判定領域の属性を設定し、プレーヤの切替入力情報に基づいて、移動体の属性を切り替える処理を行い、移動体の属性と判定領域の属性との組み合わせによって決定される、移動体の移動パラメータに基づいて、移動体を移動させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、及び、ゲームシステムに関する。
【背景技術】
【0002】
従来から、仮想的なオブジェクト空間(ゲーム空間)のゲームシステム(画像生成システム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【0003】
このようなゲームシステムでは、移動入力情報に基づいてプレーヤキャラクタを移動させるだけでなく、プレーヤキャラクタと他のオブジェクトとの所与の関係に基づいて、プレーヤキャラクタを移動させる処理を行うものがある(例えば、特許文献1)。
【0004】
しかし、従来のゲームシステムのプレーヤキャラクタの移動処理は、プレーヤが関与できるのは移動入力情報に関する入力であり、プレーヤにとって単純すぎて面白みに欠けるという問題があった。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−211332号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、従来の課題に鑑みたものであり、その目的は、オブジェクト空間において、オブジェクトを移動させるゲームにおいて、オブジェクトの移動が単純すぎず、多様な移動が可能なプログラム、情報記憶媒体、ゲームシステムを提供することにある。
【課題を解決するための手段】
【0007】
(1)本発明は、オブジェクト空間において判定領域を設定し移動体を移動させるゲームのためのプログラムであって、プレーヤの移動入力情報に基づいて、前記移動体を移動させる処理を行う移動処理部と、前記移動体の属性を設定する第1の属性設定部と、前記判定領域の属性を設定する第2の属性設定部として、コンピュータを機能させ、前記第1の属性設定部が、プレーヤの切替入力情報に基づいて、前記移動体の属性を切り替える処理を行い、前記移動処理部が、前記移動体の属性と前記判定領域の属性との組み合わせによって決定される、前記移動体の移動パラメータに基づいて、前記移動体を移動させるプログラムに関する。本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部として、コンピュータを機能させるプログラムを記憶した情報記憶媒体、上記各部を含むゲームシステムに関係する。
【0008】
本発明によれば、移動体の属性と判定領域の属性との組み合わせで決定される、移動体の移動パラメータに基づいて移動体を移動させることができる。つまり、本発明によれば、プレーヤは、移動入力情報を入力して移動体を直接的に移動させるだけでなく、切替入力情報の入力を行うことにより移動体の移動パラメータを変化させて、間接的に移動体を移動させることができる。したがって、本発明によれば、単純すぎずかつ多様に移動体を移動させることができる。
【0009】
(2)本発明は、オブジェクト空間において判定領域を設定し移動体を移動させるゲームのためのプログラムであって、前記移動体を移動させる処理を行う移動処理部と、前記移動体の属性を設定する第1の属性設定部と、前記判定領域の属性を設定する第2の属性設定部として、コンピュータを機能させ、前記第2の属性設定部が、プレーヤの切替入力情報に基づいて、前記判定領域の属性を切り替える処理を行い、前記移動処理部が、前記移動体の属性と前記判定領域の属性との組み合わせによって決定される、前記移動体の移動パラメータに基づいて、前記移動体を移動させるプログラムに関する。本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部として、コンピュータを機能させるプログラムを記憶した情報記憶媒体、上記各部を含むゲームシステムに関係する。
【0010】
本発明によれば、移動体の属性と判定領域の属性との組み合わせで決定される移動パラメータに基づいて移動体を移動させることができる。つまり、本発明によれば、プレーヤは、切替入力情報の入力を行うことにより移動体の移動パラメータを変化させて、間接的に移動体を移動させることができる。したがって、本発明によれば、単純すぎずかつ多様に移動体を移動させることができる。
【0011】
(3)また、本発明のプログラム、情報記憶媒体、ゲームシステムは、前記移動処理部が、前記移動体と前記判定領域との位置関係が所定条件を満たした場合に、前記移動体の移動パラメータを変化させてもよい。本発明によれば、移動体と判定領域との位置関係が、移動体の移動パラメータに反映されるので、プレーヤは、移動体と判定領域との位置関係を考慮したゲームプレイを楽しむことができる。
【0012】
(4)また、本発明のプログラム、情報記憶媒体、ゲームシステムは、前記移動処理部が、前記移動体と前記判定領域の基準点との距離に応じて、前記移動体の移動パラメータを変化させてもよい。本発明によれば、移動体と判定領域の基準点との距離が、移動体の移動パラメータに反映されるので、プレーヤは、移動体と判定領域の基準点との距離を考慮したゲームプレイを楽しむことができる。
【0013】
(5)また、本発明のプログラム、情報記憶媒体、ゲームシステムは、前記移動処理部が、前記移動体の属性と前記判定領域の属性との組み合わせによって決定される、前記判定領域の移動パラメータに基づいて、前記判定領域を移動させてもよい。本発明によれば、プレーヤは、移動パラメータが判定領域の移動に影響を与えるように、属性を切り替える入力を行うことができる。
【0014】
(6)また、本発明のプログラム、情報記憶媒体、ゲームシステムは、前記移動処理部が、前記移動体と前記判定領域との位置関係が所定条件を満たした場合に、前記判定領域の移動パラメータを変化させるようにしてもよい。本発明によれば、移動体と判定領域との位置関係が、判定領域の移動パラメータに反映されるので、プレーヤは、移動体と判定領域との位置関係を考慮したゲームプレイを楽しむことができる。
【0015】
(7)また、本発明のプログラム、情報記憶媒体、ゲームシステムは、前記移動処理部が、前記移動体と前記判定領域の基準点との距離に応じて、前記判定領域の移動パラメータを変化させるようにしてもよい。本発明によれば、移動体と判定領域の基準点との距離が、判定領域の移動パラメータに反映されるので、プレーヤは、移動体と判定領域の基準点との距離を考慮したゲームプレイを楽しむことができる。
【0016】
(8)また、本発明のプログラム、情報記憶媒体、ゲームシステムは、前記オブジェクト空間において、前記判定領域に対応させて所与のオブジェクトを設定する処理を行うオブジェクト空間設定部として、コンピュータを更に機能させるようにしてもよい。本発明によれば、プレーヤは、判定領域を認識し易くなる。
【0017】
(9)また、本発明のプログラム、情報記憶媒体、ゲームシステムは、前記判定領域の大きさ及び形状の少なくとも一方を変化させる判定領域処理部として、コンピュータを更に機能させるようにしてもよい。本発明によれば、判定領域の大きさ及び形状が変化するので、移動パラメータに基づく移動の影響を多様に変化させることができる。
【0018】
(10)また、本発明のプログラム、情報記憶媒体、ゲームシステムは、前記第1の属性設定部が、前記移動体の複数の部位それぞれに属性を設定する処理を行い、前記切替入力情報に基づいて、複数の部位それぞれの属性を切り替え、前記移動処理部が、複数の部位それぞれの属性と前記判定領域の属性との組み合わせによって決定される、移動体の移動パラメータに基づいて、前記移動体を移動させるようにしてもよい。本発明によれば、プレーヤが、オブジェクトの部位毎に切り替える入力を行うことによって、更に、移動体に多様な移動を行わせることができる。
【図面の簡単な説明】
【0019】
【図1】本実施形態のゲームシステムの機能ブロック図の例。
【図2】本実施形態の処理の概要図。
【図3】図3(A)(B)は、本実施形態の引力に基づく移動処理の説明図。
【図4】図4(A)(B)は、本実施形態の斥力に基づく移動処理の説明図。
【図5】図5は、本実施形態の斥力の大きさを説明するための図。
【図6】図6(A)〜(C)は、本実施形態の磁極切り替えによる移動処理の説明図。
【図7】図7(A)〜(C)は、本実施形態の磁極切り替えによる移動処理の説明図。
【図8】図8(A)〜(C)は、本実施形態の磁極切り替えによる移動処理の説明図。
【図9】図9(A)〜(C)は、本実施形態の磁極切り替えによる移動処理の説明図。
【図10】図10(A)〜(C)は、本実施形態の磁極切り替えによる移動処理の説明図。
【図11】本実施形態の処理のフローチャート。
【図12】本実施形態の磁力範囲の説明図。
【図13】図13(A)(B)は、本実施形態の磁力に基づく移動処理の説明図。
【図14】図14は、本実施形態の磁力に基づく移動処理の説明図。
【図15】図15(A)〜(D)は、本実施形態の属性の説明図。
【発明を実施するための形態】
【0020】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0021】
1.構成
図1に本実施形態のゲームシステム(画像生成システム)の機能ブロック図の例を示す。なお本実施形態のゲームシステムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0022】
入力部160は、プレーヤからの入力情報を入力するための機器であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部160は、プレーヤの入力情報(入力信号)を検出する検出部162を備える。入力部160は、例えば、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。
【0023】
また、入力部160は、3軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部を備えた入力機器でもよい。例えば、入力機器は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力機器には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力機器には、入力機器と一体化されているゲーム装置、携帯型ゲーム装置、携帯電話なども含まれる。
【0024】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。なお、オブジェクトデータ記憶部176には、オブジェクトのオブジェクトデータが記憶される。
【0025】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0026】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0027】
通信部196は外部(例えば他のゲームシステム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0028】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信してゲームシステムを機能させる場合も本発明の範囲内に含む。
【0029】
処理部100(プロセッサ)は、入力部160からの入力データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【0030】
この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0031】
処理部100は、受け付け部110、オブジェクト空間設定部111、移動・動作処理部112、第1の属性設定部113、第2の属性設定部114、判定領域処理部115、ゲーム演算部116、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0032】
受け付け部110は、プレーヤからの入力情報を受け付ける処理を行う。例えば、受け付け部110は、入力部160(十字キー、Aボタン)から出力された移動入力情報を受け付ける。移動入力情報とは、オブジェクト空間において移動体を移動させるための情報であり、例えば、横方向(X軸方向)への入力情報、上下方向(Y軸方向)へ移動(ジャンプ)させるための入力情報である。
【0033】
また、受け付け部110は、入力部160(Bボタン)から出力された切替入力情報を受け付ける。切替入力情報とは移動体の属性を切り替えるための情報である。
【0034】
また、受け付け部110は、入力部160(Cボタン)から出力された判定領域設定情報を受け付ける。判定領域設定情報とは、判定領域B(磁力範囲)を設定するための情報である。
【0035】
オブジェクト空間設定部111は、プレーヤキャラクタ(移動体の一例)、磁石オブジェクトの他に、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。
【0036】
ここでオブジェクト空間とは、仮想空間であり、2次元空間、3次元空間の両方を含む。2次元空間とは、例えば2次元座標(X,Y)においてオブジェクトが配置される空間であり、3次元空間とは、例えば3次元座標(X,Y,Z)においてオブジェクトが配置される空間である。例えば、オブジェクト空間設定部111は、オブジェクト空間を3次元空間とした場合には、ワールド座標系にオブジェクトを配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義であり、例えば、ワールド座標系でのX、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0037】
特に、本実施形態のオブジェクト空間設定部111は、オブジェクト空間において、所与のオブジェクト(磁石オブジェクト)を設定する処理を行う。
【0038】
移動・動作処理部112は、オブジェクト空間において、オブジェクトを移動させる処理を行う。すなわち入力部160によりプレーヤが入力した入力データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、移動速度、加速度、移動量、移動方向などの移動パラメータ)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(例えば、1/60秒)毎に順次求める処理を行う。なおフレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【0039】
特に、本実施形態の移動処理部112aは、オブジェクト空間において、移動体を移動させる処理を行う。具体的には、プレーヤの移動入力情報に基づいて、移動体を移動させる処理を行う。なお、本実施形態の移動処理部112aは、プレーヤの移動入力情報に基づいて移動体を移動させる場合には、予め定められた所定速度Vを超えないように移動体を移動させる。
【0040】
また、移動処理部112aは、コンピュータプログラムに基づいて、判定領域B(磁力範囲)を移動させる処理を行う。
【0041】
また、移動処理部112aは、移動体の属性と判定領域の属性との組み合わせによって決定される、移動体の移動パラメータに基づいて、移動体を移動させる処理を行う。
【0042】
また、移動処理部112aは、属性の種類が複数ある場合は、移動体の属性と判定領域の属性との組み合わせの種類に応じて、移動体の移動処理を異ならせる。例えば、属性K1、K2、K3がある場合において、移動体の属性と、判定領域の属性との組み合わせを(移動体の属性,判定領域の属性)で表記すると、(K1,K1)の組み合わせは、(K2,K2)の組み合わせよりも、移動体の移動パラメータの変化量が大きくなるようにしてもよい。また、例えば、(K1,K2)の組み合わせは、移動体に引力を働かせて移動させ、(K1,K3)の組み合わせは、移動体に斥力を働かせて移動させ、(K2,K3)の組み合わせは、移動体の動きを強制的に止めるようにしてもよい。
【0043】
また、移動処理部112aは、属性K1、K2、K3がある場合において、三竦みの関係に従って移動体を移動させるようにしてもよい。例えば、(K1,K2)の組み合わせ、(K2,K3)の組み合わせ及び(K3,K1)の組み合わせは、(K2,K1)の組み合わせ、(K3,K2)の組み合わせ及び(K1,K3)の組み合わせよりも移動体の移動パラメータの変化量が大きくなるようにしてもよい。
【0044】
また、移動処理部112aは、移動体と判定領域との位置関係が所定条件を満たした場合に、移動体の移動パラメータを変化させる処理を行う。より具体的には、移動処理部112aは、移動体と判定領域の基準点との距離に応じて、移動体の移動パラメータを変化させる処理を行う。
【0045】
また、移動処理部112aは、移動体の属性と判定領域の属性との組み合わせによって決定される、判定領域の移動パラメータに基づいて、判定領域を移動させる処理を行う。
【0046】
例えば、移動処理部112aは、属性の種類が複数ある場合は、移動体の移動処理と同様な手法で、移動体の属性と判定領域の属性との組み合わせの種類に応じて、判定領域の移動処理を異ならせるようにしてもよい。
【0047】
また、移動処理部112aは、移動体と判定領域との位置関係が所定条件を満たした場合に、判定領域の移動パラメータを変化させる処理を行う。より具体的には、移動処理部112aは、移動体と判定領域の基準点との距離に応じて、判定領域の移動パラメータを変化させる処理を行う。
【0048】
特に本実施形態の移動処理部112aは、移動体の属性と判定領域の属性とが同じである場合に、移動体に斥力(反発力)を働かせて移動させる処理を行う。また、移動処理部112aは、移動体の属性と判定領域の属性とが異なる場合に、移動体に引力を働かせて移動させる処理を行う。
【0049】
ここで、判定領域とは、磁石オブジェクト(磁石オブジェクトの基準点MO)の位置に対応付けて設定された基準点BOに基づいて設定される領域を示す。例えば、判定領域は基準点BOを中心とする半径R以内の領域を示す。また、属性とは、互いに対応関係のある複数の要素のうちの各要素を示す。すなわち、互いに対応関係のある2つの要素(例えば、N極、S極)のうち、一方の要素(N極)或いは、他方の要素(S極)を属性とすることができる。また、互いに対応関係(例えば、三竦みの関係)のある3つの要素(例えば、K1、K2、K3)の各要素を属性とすることができる。
【0050】
例えば、移動処理部112aは、プレーヤキャラクタがN極で磁石オブジェクトがS極である場合、或いは、プレーヤキャラクタがS極で磁石オブジェクトがN極である場合に、プレーヤキャラクタと磁石オブジェクトとの間に引力を発生させると決定し、プレーヤキャラクタに働かせる引力F1を求める。そして、引力F1に基づく移動ベクトルVaに基づき、プレーヤキャラクタの移動ベクトルVP(プレーヤキャラクタの移動パラメータの一例)を求める。また、磁石オブジェクトに働かせる引力F1´(F1と逆方向を向くF1´)を求める。そして、引力F1´に基づく移動ベクトルVcに基き、磁石オブジェクトの移動ベクトルVM(磁石オブジェクトの移動パラメータの一例)を求める。
【0051】
また、移動処理部112aは、プレーヤキャラクタがN極であり磁石オブジェクトがN極である場合、又は、プレーヤキャラクタがS極であり磁石オブジェクトがS極である場合には、プレーヤキャラクタと磁石オブジェクトとの間に斥力を発生させると決定し、プレーヤキャラクタに働かせる斥力F2を求める。そして、斥力F2に基づく移動ベクトルVaに基づき、プレーヤキャラクタの移動ベクトルVPを求める。また、磁石オブジェクトに働かせる斥力F2´(F2と逆方向を向くF2´)を求める。そして、斥力F2´に基づく移動ベクトルVcに基き、磁石オブジェクトの移動ベクトルVMを求める。
【0052】
また、本実施形態の移動処理部112aは、移動入力情報を受け付けた場合には、移動入力情報に応じたプレーヤキャラクタの移動ベクトルVbと、磁力F(斥力或いは引力)に伴う移動ベクトルVaとを合成したベクトルVPに基づき、プレーヤキャラクタを移動させる。
【0053】
また、移動処理部112aは、移動体と判定領域の基準点との距離に応じて、移動パラメータを変化させる。例えば、プレーヤキャラクタと磁石オブジェクトとの距離が長いほど、磁力F(斥力或いは引力)に基づく移動ベクトルVaの大きさを減少させるようにする。一方、プレーヤキャラクタと磁石オブジェクトとの距離が近いほど、磁力F(斥力或いは引力)に基づく移動ベクトルVaの大きさを増大させるようにする。
【0054】
なお、移動処理部112aは、複数の部位それぞれの属性と判定領域の属性との組み合わせによって決定される、移動体の移動パラメータに基づいて、移動体を移動させるようにしてもよい。
【0055】
なお、本実施形態の移動処理部112aは、ゲーム空間における重力、摩擦力、空気抵抗などの他の力を加味して、移動体や磁石オブジェクトを移動させる。
【0056】
また、第1の属性設定部113は、移動体の属性を設定する処理を行う。例えば、第1の属性設定部113は、互いに対応関係のある複数の要素のうちの一方の要素(N極)或いは、他方の要素(S極)を、移動体の属性として設定する処理を行う。
【0057】
第1の属性設定部113は、プレーヤの切替入力情報に基づいて、移動体の属性を切り替える(変更する)処理を行う。例えば、第1の属性設定部113は、プレーヤの切替入力情報を受け付けた場合に、プレーヤキャラクタの磁極をS極からN極(或いは、N極からS極)に切り替える処理を行う。
【0058】
なお、第1の属性設定部113は、移動体の複数の部位それぞれに属性を設定する処理を行い、切替入力情報に基づいて、複数の部位それぞれの属性を切り替える処理を行う。かかる場合には、第1の属性設定部113は、切替入力情報に基づいて、複数の部位それぞれの属性を同時に切り替えてもよいし、各部位を個別に切り替えてもよい。
【0059】
なお、第1の属性設定部113は、プレーヤの切替入力情報によらずに、コンピュータプログラムに基づいて、属性を切り替えるようにしてもよい。
【0060】
また、第2の属性設定部114は、判定領域の属性を設定する処理を行う。例えば、第2の属性設定部114は、互いに対応関係のある複数の要素のうちの一方の要素(N極)或いは、他方の要素(S極)を、判定領域の属性として設定する処理を行う。第2の属性設定部114は、プレーヤの切替入力情報に基づいて、判定領域の属性を切り替える(変更する)処理を行う。
【0061】
なお、第2の属性設定部113は、プレーヤの切替入力情報によらずに、コンピュータプログラムに基づいて、判定領域の属性を切り替えるようにしてもよい。
【0062】
判定領域処理部115は、判定領域の大きさ及び形状の少なくとも一方を変化させる処理を行う。
【0063】
ゲーム演算部116は、種々のゲーム演算処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲームステージ毎のクリア条件を満たすか否かを判定する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。
【0064】
本実施形態のゲーム演算部116は、プレーヤキャラクタがゴール地点までたどり着いたか否かを判定したり、プレーヤキャラクタの高さが所定値(例えばY=0)以上か否かに基づきゲーム判定を行うようにしている。例えば、プレーヤキャラクタが制限時間以内にゴール地点まで到達していない場合には、ゲームオーバーと判定したり、プレーヤキャラクタの高さが所定値以上でない場合には、ゲームオーバーと判定している。
【0065】
また、ゲーム演算部116は、プレーヤキャラクタのヒット領域と敵キャラクタのヒット領域とがヒットしたか否かを判定するヒット判定を行い、プレーヤキャラクタのパラメータ(体力値など)を減算させる処理を行う。
【0066】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。描画部120が生成する画像は、いわゆる2次元画像であってもよいし、いわゆる3次元画像であってもよい。
【0067】
2次元画像を生成する場合には、横から見たときの画像を生成する。例えば、オブジェクト(スプライト)毎に優先度を設定し、設定された優先度が低いオブジェクトから順に描画する。オブジェクト同士が重なる場合には、優先度が低いオブジェクトの上に、優先度の高いオブジェクトを描画する。
【0068】
いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値
等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0069】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
【0070】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0071】
なお、描画部120は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、3次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。また、描画部120は、仮想カメラを、予め決められた回転角度で回転させてもよい。この場合には、仮想カメラの位置又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0072】
例えば仮想カメラによりオブジェクト(例えば、プレーヤキャラクタ)を後方から撮影する場合には、オブジェクトの位置、向きの変化に仮想カメラが追従するように、仮想カメラの位置、仮想カメラの向きを制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、向き又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた向きに設定したり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は向きを特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0073】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0074】
そして描画部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0075】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
【0076】
テクスチャマッピングは、記憶部170のテクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部178からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0077】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ179(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ179に格納されるZ値を参照する。そして参照されたZバッファ179のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ179のZ値を新たなZ値に更新する。
【0078】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0079】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0080】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0081】
なお、本実施形態のゲームシステムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲームシステム、携帯電話)を用いて分散処理を行ってもよい。
【0082】
2.本実施形態の手法
(1)概要
本実施形態のゲームシステムは、図2に示すように、オブジェクト空間(仮想2次元空間)において、プレーヤキャラクタP(移動体の一例)をスタート地点(始点)からゴール地点(終点)まで移動させる処理を行う。例えば、本実施形態では、プレーヤの移動入力情報に基づいて、プレーヤキャラクタPを移動させる処理を行っている。
【0083】
本実施形態では、オブジェクト空間に予め磁極(N極或いはS極)が設定された磁石オブジェクトMを複数配置する。例えば、図2に示すように、N極が設定された磁石オブジェクトM、S極が設定された磁石オブジェクトMなどがある。なお、オブジェクト空間には、弾磁石オブジェクトM´のように、所与の移動ベクトルに基づいて移動する磁石オブジェクトも存在する。
【0084】
本実施形態では、プレーヤキャラクタPにも、N極又はS極の磁極が設定されている。図2の例では、プレーヤキャラクタPはN極が設定されている。
【0085】
そして、本実施形態では、プレーヤキャラクタPの磁極と、磁石オブジェクトMとの磁極とに基づいて磁力Fを求め、磁力Fに基づいてプレーヤキャラクタPの移動ベクトルVP(移動パラメータの一例)を求める。そして、求めた移動ベクトルVPに基づいてプレーヤキャラクタPを移動させる処理を行う。
【0086】
例えば、プレーヤキャラクタPの磁極と磁石オブジェクトMとの磁極とが異なる場合には、プレーヤキャラクタPと磁石オブジェクトとが引き寄せ合う引力F1を求め、プレーヤキャラクタPの磁極と磁石オブジェクトMとの磁極とが同じ場合には、プレーヤキャラクタPと磁石オブジェクトとが斥け合う斥力F2を求める。そして、求めた引力F1或いは斥力F2に基づくプレーヤキャラクタの移動ベクトルVaを求める。そして、移動ベクトルVaをプレーヤキャラクタPの移動処理に反映させる。
【0087】
更に、本実施形態では、プレーヤの磁極切替入力情報(切替入力情報)に基づいて、プレーヤキャラクタPの磁極をN極からS極、或いは、S極からN極に切り替える処理を行っている。したがって、プレーヤキャラクタPと磁石オブジェクトとが引力F1で引き寄せられている場合に、磁力切替入力情報に基づきプレーヤキャラクタPの磁極を切り替えると、途端にプレーヤキャラクタPが磁石オブジェクトMを斥けるように移動させることができる。このように、本実施形態では、プレーヤキャラクタPに対して磁力を利用した移動を行うことができ、面白味のあるゲームを実現することができる。
【0088】
なお、本実施形態では、プレーヤキャラクタPに重力(Y軸マイナス方向の力)を働かせている。そして、プレーヤキャラクタPの位置(X,Y)が所定値(Y=0)以下になると、ゲームオーバーの判定処理を行いゲームを終了させる処理を行っている。したがって、例えば、床オブジェクトが存在しないところでは、プレーヤキャラクタPの落下を防止させるために、プレーヤは、プレーヤキャラクタPを天井に磁石オブジェクトMの磁力を利用して移動させるように操作を行うことになる。
【0089】
なお、本実施形態では、磁力F(引力F1、斥力F2)の大きさを、重力Gよりも大きな値になるように設定しプレーヤキャラクタの落下を防止させるように処理を行っている。例えば、壁や天井に配置されている磁石オブジェクトMとプレーヤキャラクタPとが引力F1で接している場合では、プレーヤキャラクタPに、重力Gを相殺する力(重力Gと大きさが同じであって、Y軸プラス方向の力)を働きかけて、重力を無効にする処理を行う。
【0090】
また、本実施形態では、S極とN極とを異なる色で表示させている。例えば、S極を青色、N極を赤色で表示させて、プレーヤがプレーヤキャラクタPや磁石オブジェクトMの磁極を容易に認識できるように表示処理を行っている。
【0091】
(2)磁力に基づく移動処理の説明
本実施形態では、プレーヤの移動入力情報によって決定される移動ベクトルVbに基づき、プレーヤキャラクタPを移動させる処理を行っているが、磁力Fが及ぶ判定領域B(磁力範囲)では、磁力Fに伴う移動ベクトルVaをプレーヤキャラクタPに反映させて、プレーヤキャラクタを移動させる処理を行っている。
【0092】
例えば、本実施形態では、図3(A)(B)に示すように、磁石オブジェクトそれぞれの位置に対応付けて設定された基準点BOを中心とする半径Rの判定領域Bを設定し、判定領域BにプレーヤキャラクタPが位置している場合に、プレーヤキャラクタPに対して磁力Fを与える処理を行っている。
【0093】
より具体的に説明すると、図3(A)に示すように、プレーヤキャラクタPが判定領域B内に位置していない場合には、プレーヤキャラクタPは、磁石オブジェクトMによる磁力Fの影響を受けず、プレーヤの移動入力情報に基づく移動ベクトルVbに基づいて移動処理が行われる。
【0094】
一方、図3(B)に示すように、プレーヤキャラクタPが判定領域B内に位置している場合には、プレーヤキャラクタPは、磁石オブジェクトMによる磁力Fの影響を受ける。図3(B)の例によれば、プレーヤキャラクタPと磁石オブジェクトMとの磁極が異なる関係にあるので、プレーヤキャラクタPを引力F1に基づく移動ベクトルVaによって移動させる処理を行う。つまり、引力F1の向きをプレーヤキャラクタPの基準点POから判定領域Bの基準点BOの方向に設定し、基準点POから基準点BOに近づける引力F1の大きさを求め、引力F1に基づいて移動ベクトルVaを求める。例えば、移動ベクトルVaの向きを引力F1の向きに設定し、移動ベクトルVaの移動量を引力F1の大きさに基づいて求める。そして、移動ベクトルVaに基づき、プレーヤキャラクタPを移動させる処理を行う。
【0095】
本実施形態では、プレーヤキャラクタPが判定領域B内に位置している場合に、移動入力情報を受け付けた場合には、引力F1に伴う移動ベクトルVaと、移動入力情報に基づく移動ベクトルVbとを合成したベクトルVPに基づいてプレーヤキャラクタPを移動させる。なお、基準点POと基準点BOとが同じ位置にある場合は、移動入力情報に基づくプレーヤキャラクタPの移動ができなくなる。
【0096】
また、図4(A)(B)を用いて、プレーヤキャラクタPと磁石オブジェクトMとの磁極が同じ関係にある場合について説明すると、図4(A)に示すように、プレーヤキャラクタPが磁石オブジェクトMに設定された判定領域B内に位置していない場合には、プレーヤキャラクタPは、磁石オブジェクトMの磁力Fの影響を受けない。
【0097】
一方、図4(B)に示すように、プレーヤキャラクタPが、判定領域B内に位置している場合であって、プレーヤキャラクタPと磁石オブジェクトMとの磁極が同じ関係にある場合には、斥力F2に基づく移動ベクトルVaを求め、移動ベクトルVaに基づきプレーヤキャラクタPを移動させる処理を行う。すなわち、斥力F2の向きを基準点BOから基準点POの方向に設定し、斥力F2の大きさを求める。そして、斥力F2に基づいて移動ベクトルVaを求める。移動ベクトルVaの向きを斥力F2の向きに設定し、移動ベクトルVaの移動量を斥力F2の大きさに基づいて求める。そして、移動ベクトルVaに基づき、プレーヤキャラクタPを移動させる処理を行う。
【0098】
なお、本実施形態では、プレーヤキャラクタPに斥力F2を加える場合には、プレーヤキャラクタPの基準点POと判定領域Bの基準点BOとの距離xの二乗に反比例させた値を、斥力F2の大きさとして求める。また、この斥力F2の大きさは、パラメータaによって決定するようにしてもよい。例えば、判定領域毎にパラメータaを異ならせるようにすれば、斥力F2の大きさが異なる複数の判定領域を設定することができる。つまり、図5に示すように、斥力F2の大きさyとするとy=a/xの関係になる。なお、本実施形態では、プレーヤキャラクタPの基準点POと判定領域Bの基準点BOとの距離x≦x1の場合には、斥力F2の大きさyを所定量y1に設定する。プレーヤキャラクタPの移動量が極端に大きくならないようにするためである。
【0099】
また、本実施形態では、プレーヤキャラクタPが判定領域B内に位置している場合に、移動入力情報を受け付けた場合には、斥力F2に伴う移動ベクトルVaと、移動入力情報に基づく移動ベクトルVb(移動方向・移動量)とを合成したベクトルVPに基づいてプレーヤキャラクタPを移動させる。
【0100】
なお、本実施形態では、判定領域BにプレーヤキャラクタPが位置しているか否かの判断は、プレーヤキャラクタPに予め定めたヒット領域と、判定領域Bとがヒットしたか否か(交差したか否か)に基づいて判断する。例えば、プレーヤキャラクタPに設定されたヒット領域と、判定領域Bとがヒットしたと判定された場合に、プレーヤキャラクタPが判定領域Bに位置すると判断する。
【0101】
(3)磁極の切り替えに伴う移動処理
本実施形態において、プレーヤキャラクタPの磁極を切り替える処理について説明する。例えば、図6(A)に示すように、プレーヤキャラクタPの磁極がN極であり、磁石オブジェクトMの磁極がS極であるとすると、プレーヤキャラクタPが磁石オブジェクトMに引き寄せられて、プレーヤキャラクタPの基準点POと判定領域Bの基準点BOとが接近した状態となる。本実施形態では、このような状態において、プレーヤの磁極切替入力情報を受け付けると、図6(B)に示すように、プレーヤキャラクタPの磁極をN極からS極に切り替える処理を行う。そして、本実施形態では、プレーヤキャラクタPの磁極と磁石オブジェクトMとの磁極とが同じであると判断すると、プレーヤキャラクタPに斥力F2を働かせて移動させる処理を行う。
【0102】
例えば、図6(C)に示すように、プレーヤキャラクタPの基準点POと判定領域Bの基準点BOとの距離xが短い(x<x2<R)場合には、プレーヤキャラクタPに強力な斥力F2が働き、例えば、プレーヤキャラクタPを、判定領域Bを超えて大きくジャンプするように移動させる処理を行う。より具体的に説明すると、プレーヤキャラクタPの磁極と磁石オブジェクトMの磁極とが異極の組み合わせであって基準点POと基準点BOとが近い状態にあり(x<x2<R)、移動入力情報を受け付けずに磁極切替入力情報を受け付けた場合には、予め定めた移動ベクトルVa(上方向であって磁力Fに伴う最大移動量が設定された移動ベクトル)に基づいて、プレーヤキャラクタをジャンプさせる。
【0103】
さらに、本実施形態において、磁極切り替えを利用した高さ方向(Y軸方向)の移動処理例を図7(A)〜(C)を用いて説明する。まず、図7(A)に示すように、プレーヤキャラクタPが判定領域Bに位置していない場合にプレーヤのジャンプに関する移動入力情報を受け付けると、本実施形態では、プレーヤキャラクタPを、移動ベクトルVbに基づき高さH0でジャンプさせる移動処理を行う。
【0104】
一方、図7(B)に示すように、プレーヤキャラクタPの磁極と磁石オブジェクトMの磁極が異極同士の組み合わせでプレーヤキャラクタPの基準点POと判定領域Bの基準点BOとが近い状態にあり(x<x2<R)、かつ、ジャンプに関する移動入力情報を受け付けている際に磁極切り替え入力情報を受け付けると、プレーヤキャラクタPの磁極と磁石オブジェクトMの磁極が同極同士の組み合わせになり、プレーヤキャラクタPを、H0よりも高いH1(H0<H1、R<H1)でジャンプさせる移動処理を行う。
【0105】
すなわち、プレーヤキャラクタPの磁極と磁石オブジェクトMの磁極とが異極の組み合わせであって基準点POと基準点BOとが近い状態にあり(x<x2<R)、かつ、ジャンプに関する移動入力情報を受け付けている際に磁極切り替え入力情報を受け付けた場合には、移動入力情報に基づく移動ベクトルVbの向きを移動ベクトルVPの向きとして設定し、移動ベクトルVbと磁力による移動ベクトルVaとを合成したベクトルの大きさを移動ベクトルVPの大きさ(移動量)として設定することによって、移動ベクトルVPを求める。このようにすれば、移動ベクトルVbよりも大きな移動ベクトルVPに基づいてプレーヤキャラクタPを移動させることができる。
【0106】
なお、図7(C)に示すように、プレーヤキャラクタPの磁極と磁石オブジェクトMの磁極が異極同士で、プレーヤキャラクタPの基準点POと判定領域Bの基準点BOとが接近している(x<x1<x2)である場合に、プレーヤからのジャンプに関する移動入力情報を受け付けた場合に、ジャンプできないように移動制限処理を行う。
【0107】
次に、図8(A)〜(C)を用いて、磁極切り替えを利用して、プレーヤキャラクタPを右方向(X軸プラス方向)に高速に移動させる処理(ダッシュ処理)を説明する。
【0108】
例えば、図8(A)に示すように、判定領域B外にプレーヤキャラクタPが位置している場合に、プレーヤの移動入力情報に基づきプレーヤキャラクタPを移動させる際の移動ベクトルVbであったとする。
【0109】
そして、本実施形態では、図8(B)に示すように、プレーヤキャラクタPの磁極と磁石オブジェクトMの磁極が異極同士の組み合わせでプレーヤキャラクタPの基準点POと判定領域Bの基準点BOとが近い状態にあり(x<x2<R)、かつ、プレーヤの右方向(X軸プラス方向)の移動入力情報を受け付けている際に、磁極切替入力情報を受け付けると、プレーヤキャラクタPの磁極と磁石オブジェクトMの磁極が同極同士の組み合わせになり、プレーヤキャラクタPを、移動ベクトルVbの大きさよりも大きい移動ベクトルVP(Va<VP)に基づいてプレーヤキャラクタを移動させる。
【0110】
すなわち、プレーヤキャラクタPの磁極と磁石オブジェクトMの磁極とが異極の組み合わせであって基準点POと基準点BOとが近い状態にあり(x<x2<R)、かつ、右方向への移動入力情報を受け付けている際に磁極切り替え入力情報を受け付けた場合には、移動入力情報に基づく移動ベクトルVbの向きを移動ベクトルVPの向きとして設定し、移動ベクトルVbと磁力による移動ベクトルVaとを合成したベクトルの大きさを、移動ベクトルVPの大きさ(移動量)として設定することによって、移動ベクトルVPを求める。このようにすれば、移動ベクトルVbよりも大きな移動ベクトルVPに基づいてプレーヤキャラクタPを移動させることができる。
【0111】
このように、本実施形態では、プレーヤは、右方向の移動入力情報を入力するとともに磁極を切り替えることによって、大きな移動量でプレーヤキャラクタPを移動させることができる。このようにすれば、プレーヤキャラクタPが磁石オブジェクトMを斥けて高速に移動する様子を表現できる。
【0112】
なお、本実施形態では、プレーヤキャラクタPの磁極と磁石オブジェクトMの磁極とが異極の組み合わせであって基準点POと基準点BOとが近い状態にあり(x<x2<R)、かつ、右方向への移動入力情報を受け付けている際に磁極切り替え入力情報を受け付けた場合には、移動入力情報に基づく移動ベクトルVbの向きを移動ベクトルVPの向きとして設定し、移動ベクトルVaの大きさを、移動ベクトルVPの大きさ(移動量)として設定するようにしてもよい。
【0113】
また、本実施形態では、移動ベクトルVPに基づいてプレーヤキャラクタPを移動させている最中は所定速度Vを超えて移動させている。かかる場合において、新たにプレーヤキャラクタPの進行方向への移動入力情報を受け付けた場合には、新たに受け付けた移動入力情報に基づいてプレーヤキャラクタを移動させようとすると、プレーヤキャラクタの移動速度が速くなりすぎてしまう。
【0114】
したがって、本実施形態では、移動ベクトルVPに基づいてプレーヤキャラクタPを移動させている最中には、プレーヤキャラクタPの移動速度が所定速度Vを超えている限り、新たにプレーヤキャラクタPの進行方向への移動入力情報を受け付けないように制御する。ただし、プレーヤキャラクタの進行方向と逆方向への移動入力情報を受け付けた場合には、移動入力情報に基づいて、プレーヤキャラクタの移動速度を減速させるようにする。
【0115】
また、本実施形態では、プレーヤキャラクタPの磁極と、磁石オブジェクトMの磁極とが異なり基準点POと基準点BOとの位置が同じ場合において、プレーヤの移動入力情報に基づいてプレーヤキャラクタの基準点POを仮想的に移動させ、基準点POを仮想的に移動させた点(以下、「基準点PO´」という。)と基準点BOとを離間させた状態で磁極切替入力情報を受け付けた場合には、基準点BOから基準点PO´の向きを、移動ベクトルVPの向きとして設定してもよい。かかる場合には、基準点PO´と基準点BOとの距離x´に基づいて移動ベクトルVPの移動量を算出する。
【0116】
なお、図8(C)に示すように、プレーヤキャラクタPの磁極と磁石オブジェクトMの磁極が異極同士で、プレーヤキャラクタPの基準点POと判定領域Bの基準点BOとが接近している(x<x1<x2)場合には、プレーヤの移動入力情報に関係なく、POからBOを向く方向に、移動ベクトルVPの移動方向を設定し、プレーヤキャラクタPが磁石オブジェクトMに接するように移動ベクトルVPの移動量を設定して、プレーヤキャラクタPを移動させる処理(移動制限処理)を行う。なお、引力F1に基づく移動ベクトルVaの大きさが、プレーヤの移動入力情報に基づく移動ベクトルVbの大きさよりも大きい場合(Va>Vb)には、プレーヤキャラクタPを移動させる移動入力情報を受け付けた場合には、引力F1の向き(移動ベクトルVa)と逆方向へのプレーヤキャラクタPの移動が制限される。
【0117】
なお、本実施形態では、ゲーム空間における重力、摩擦力、空気抵抗などの他の力を加味して、移動体を移動させるようにしてもよい。例えば、移動ベクトルVPに、ゲーム空間における重力、摩擦力、空気抵抗などの力を加味させるようにしてもよい。
【0118】
(4)磁力無効時間の設定
本実施形態では、図9に示すように、オブジェクト空間にS極の磁石オブジェクトMと、N極の磁石オブジェクトとを交互に配置している場合には、プレーヤが磁極切替入力を連続的に行うことにより、プレーヤキャラクタPを連続して高速に移動させることができる。
【0119】
ここで、本実施形態では、プレーヤキャラクタPの磁力F(引力F1・斥力F2)を、一定時間無効化することによって、プレーヤキャラクタPを滑らかに移動させている。例えば、磁極切替直後の所定期間(例えば、10フレーム)については、プレーヤキャラクタPが磁石オブジェクトMの磁力F(引力F1・斥力F2)を無効にし、磁力Fに基づく移動処理を行わないようにしている。このようにすれば、プレーヤの磁極切替入力がタイミングよく行われている場合には、プレーヤキャラクタPの移動が滑らかになる。
【0120】
具体的に説明すると、図9に示すように、T1時点で、操作入力が右方向かつプレーヤキャラクタPの磁極が磁石オブジェクトM1と同一の磁極に切り替えられて、右方向に高速に移動する場合には、所定期間Tの間、プレーヤキャラクタPを、磁石オブジェクトM1の斥力F2に伴う移動ベクトルVaを加算して移動させないようにする。つまり、T1時点で決められた斥力F2に伴う移動ベクトルVaでプレーヤキャラクタPを移動させるようにし、例えば、Q1に位置するプレーヤキャラクタPが判定領域B内において更に斥力F2の影響を受けないように移動処理を行う。そして、所定期間Tを経過するとプレーヤキャラクタPの磁力Fが有効化され、プレーヤキャラクタPが磁石オブジェクトM2の判定領域B内に入ると、磁石オブジェクトM2の引力F1に伴う移動ベクトルVaを加算して、プレーヤキャラクタPを移動させる。
【0121】
同様に、プレーヤキャラクタが磁石オブジェクトM2、M3の斥力F2を利用して移動させる場合にも、プレーヤキャラクタPの磁極を切り替えたタイミングT2、T3時点から所定期間Tの間、プレーヤキャラクタPを、磁石オブジェクトM2、M3の斥力F2に伴う移動ベクトルVaを加算させずに移動させる。つまり、T2、T3時点で決められた斥力F2に伴う移動ベクトルVaに基づいて、プレーヤキャラクタPを移動させる。このようにすれば、累積的に加算されて移動量が過大となることを防止しつつ、プレーヤがタイミングよく磁極切替の入力を行った場合にプレーヤキャラクタPを滑らかに移動させる様子を表現することができる。
【0122】
(5)磁力に基づいて磁石オブジェクトを移動させる手法
本実施形態では、弾磁石オブジェクトM´も、磁力Fに基づいて移動させる処理を行っている。
【0123】
例えば、図10(A)に示すように、弾磁石オブジェクトM´の判定領域BにプレーヤキャラクタPが位置していない場合には、弾磁石オブジェクトM´は予め決められた所定の移動ベクトルVM1で移動させる処理を行っている。
【0124】
そして、図10(B)に示すように、弾磁石オブジェクトM´の判定領域BにプレーヤキャラクタPが位置した場合であって、プレーヤキャラクタPと弾磁石オブジェクトM´とが異極同士の場合には、プレーヤキャラクタPだけでなく、弾磁石オブジェクトM´も引力F1´によって、移動させる処理を行う。例えば、弾磁石オブジェクトM´の位置に対応付けて設定された基準点BOから、プレーヤキャラクタPの基準点POへ向く移動ベクトルVM2に基づいて、弾磁石オブジェクトM´を移動させる処理を行う。
【0125】
そして、プレーヤの磁極切替入力情報に基づき、図10(C)に示すように、弾磁石オブジェクトM´の判定領域BにプレーヤキャラクタPが位置した場合であって、プレーヤキャラクタPと弾磁石オブジェクトM´とが同極同士になると、プレーヤキャラクタPだけでなく、弾磁石オブジェクトM´も斥力F2´によって移動させる処理を行う。例えば、BOからPOを向きとは反対方向を向く移動ベクトルVM3によって、弾磁石オブジェクトM´を移動させる処理を行う。
【0126】
なお、本実施形態では、移動ベクトルVM2、VM3の大きさはVM1の大きさと同じに設定し、移動ベクトルVM2、VM3の向きを制御しているが、移動ベクトルVM1とVM2とを合成した移動ベクトルに基づいて、或いは、移動ベクトルVM1とVM3とを合成した移動ベクトルに基づいて、弾磁石オブジェクトM´を移動させてもよい。また、プレーヤキャラクタPと弾磁石オブジェクトM´とが異極同士でヒットした場合に、プレーヤキャラクタPがダメージを受けるようにゲーム演算を行ってもよい。
【0127】
3.フローチャート
本実施形態の磁力Fに基づく移動処理の流れについて、図11を用いて説明する。なお、図11のステップで示す、x1、x2、Rは、図12に示すように、0≦x1<x2<Rの関係を有するものである。また、xは、プレーヤキャラクタPの基準点POと判定領域Bの基準点BOとの距離を示す。
【0128】
まず、フレーム更新が到来したか否かを判断する(ステップS1)。フレーム更新であると判断すると(ステップS1のY)、プレーヤキャラクタPの磁力Fに基づく移動処理が有効に設定されているか否かを判断する(ステップS2)。プレーヤキャラクタPの磁力Fに基づく移動処理が有効に設定されている場合には(ステップS2のY)、x<Rであるか否かを判断する。そして、x<Rであると判断される場合には、さらにx<x2であるか否かを判断する(ステップS4)。
【0129】
一方、プレーヤキャラクタPの磁力Fに基づく移動処理が無効に設定されている場合(ステップS2のN)、x<Rでない場合(ステップS3のN)には、処理を終了する。
【0130】
そして、x<x2であると判断されると(ステップS4のY)、プレーヤキャラクタPと磁石オブジェクトMが同極か否かを判断する(ステップS5)。
【0131】
プレーヤキャラクタPと磁石オブジェクトMとが同極であると判断されると(ステップS5のY)、直前に(直前のフレームにおいて)プレーヤキャラクタPの磁極が切り替えられたか否かを判断する(ステップS6)、
そして、直前にプレーヤキャラクタの磁極が切り替えられた場合には(ステップS6のY)、磁極切替に伴う移動処理(ステップS7)を行う。例えば、斥力F2に伴う移動ベクトルVaと移動入力情報に対応する移動ベクトルVbとを合成した移動ベクトルVPに基づいて、プレーヤキャラクタを移動させる処理を行う。
【0132】
そして、所定期間(例えば30フレーム)プレーヤキャラクタPの磁力Fに基づく移動処理を無効に設定する(ステップS8)。一方、直前にプレーヤキャラクタの磁極が切り替えられていない場合には(ステップS6のN)、斥力F2を働かせてプレーヤキャラクタを移動させる処理を行う(ステップS9)。
【0133】
プレーヤキャラクタPと磁石オブジェクトMとが同極でないと判断されると(ステップS5のN)、x<x1か否かを判断する処理を行う(ステップS10)。x<x1であると判断されると(ステップS10のY)、プレーヤキャラクタPの移動制限処理を行う(ステップS11)。例えば、プレーヤの移動入力情報に関係なく、プレーヤキャラクタの基準点POから判定領域Bの基準点BOを向く磁力Fの方向に応じて移動ベクトルVaと求め、移動ベクトルVaに基づきプレーヤキャラクタPの移動ベクトルVPの移動方向を設定し、プレーヤキャラクタPが磁石オブジェクトMに接するように移動ベクトルVPの移動量を設定して、プレーヤキャラクタPを移動させる処理を行う。一方、x<x1でない場合には(ステップS10のN)、引力F1を働かせて、プレーヤキャラクタを移動させる処理を行う。
【0134】
そして、x<x2でないと判定された場合(ステップS4のN)には、プレーヤキャラクタPと磁石オブジェクトとが同極であるか否かを判断する(ステップS13)。プレーヤキャラクタPと磁石オブジェクトとが同極であると判断されると(ステップS13のY)、斥力F2を働かせて、プレーヤキャラクタを移動させる処理を行う(ステップS14)。一方、プレーヤキャラクタPと磁石オブジェクトとが異極であると判断されると(ステップS13のN)、引力F1を働かせて、プレーヤキャラクタを移動させる処理を行う(ステップS14)。以上で処理が終了する。
【0135】
4.応用例
(1)磁力に基づいて、磁石オブジェクトMを移動させる処理の応用例
本実施形態では、プレーヤキャラクタPを磁力Fに基づいて移動させずに、磁石オブジェクトMを磁力Fに基づいて移動させるようにしてもよい。例えば、図13(A)に示すように、プレーヤキャラクタPの磁極がN極であり、磁石オブジェクトMの磁極がS極である場合には、プレーヤキャラクタPを移動させずに、磁石オブジェクトMを磁力F(引力F1)に伴う移動ベクトルVaに基づき移動させる処理を行う。そして、プレーヤの磁極切替入力情報を受け付けた場合には、プレーヤキャラクタPの磁極をN極からS極に切り替え、図13(B)に示すように、プレーヤキャラクタPを移動させずに、磁石オブジェクトMを斥力F2に伴う移動ベクトルVaに基づき移動させる処理を行う。
【0136】
例えば、図13(B)に示すように、プレーヤキャラクタPが、磁石オブジェクトMを引き寄せて、プレーヤキャラクタPの磁極を切り替えることによって、磁石オブジェクトMを反発させる。かかる場合には、磁石オブジェクトMが敵キャラクタEにヒットすると、敵キャラクタEにダメージを与えるようにゲーム演算を行うようにしてもよい。
【0137】
(2)磁石オブジェクトMの磁極を切り替える手法
本実施形態では、プレーヤキャラクタPではなく、オブジェクト空間において設定された磁石オブジェクトMの磁極を切り替えるゲームに応用してもよい。例えば、図14に示すように、予めN極が設定されたプレーヤキャラクタPと、予めS極が設定された敵キャラクタEとが存在するオブジェクト空間において、プレーヤキャラクタPを敵キャラクタEに接触しないようにしながら、プレーヤキャラクタPをプレーヤの移動入力情報によらずに磁石オブジェクトMの磁力Fに伴う移動ベクトルVaに基づいてスタート地点からゴール地点に移動させる処理を行う。
【0138】
かかる場合には、複数の磁石オブジェクトMそれぞれに対して、プレーヤからの磁極切替入力情報を受け付けて、磁石オブジェクトMの磁極を切り替える処理を行う。このようにすれば、プレーヤは、磁石オブジェクトMの磁力Fを利用してプレーヤキャラクタPを間接的に移動させることができるので、より面白味をもってゲームをプレイすることができる。
【0139】
(3)判定領域の変化
本実施形態では、判定領域Bを基準点BOを中心とする半径Rの円として設定しているが、判定領域Bの大きさ、形状を、変化させるようにしてもよい。例えば、3秒周期で、判定領域Bの半径をx1、x2、R(0≦x1<x2<R)の大きさに変化させるようにしてもよい。また、判定領域Bは円形ではなく、多角形、矩形とするようにしてもよい。また、判定領域Bは、プレーヤの入力情報に基づいて設定してもよい。
【0140】
(4)同時に複数の磁極を持つオブジェクト
本実施形態では、プレーヤキャラクタPが同時に複数の磁極を有するようにしてもよい。
【0141】
例えば、図15(A)(B)に示すように、プレーヤキャラクタPの上半身をS極(或いはN極)、プレーヤキャラクタPの下半身をN極(或いはS極)に設定したオブジェクトのように、2種類の磁極を有するオブジェクトにする。そして、例えば、プレーヤの磁極切替入力情報に基づいて、図15(A)に示すように、プレーヤキャラクタPの上半身をS極、下半身をN極から、図15(B)に示すように、プレーヤキャラクタPの上半身をN極、下半身をS極に、に切り替える処理を行う。
【0142】
このようにすれば、例えば、天井のS極の磁石オブジェクトに向けてプレーヤキャラクタPを移動させたい場合には、プレーヤキャラクタPの上半身がN極になるように磁極を切り替える操作を行い、逆に、床に設置されているS極の磁石オブジェクトに向けてプレーヤキャラクタPを移動させたい場合には、プレーヤキャラクタPの下半身がN極になるように磁極を切り替える入力を行うことができ、磁力Fに基づく移動ベクトルVaに基づき細かな移動制御が可能になる。
【0143】
また、図15(C)、(D)に示すように、プレーヤキャラクタPの右手部位、左手部位に異なる磁極を設定し、プレーヤの磁極切替入力情報に基づいて、各部位の磁極を切り替える処理を行ってもよい。例えば、プレーヤの磁極切替入力情報に基づいて、図15(C)に示す、プレーヤキャラクタPの右手部位RHをN極、左手部位LHをS極から、図15(D)に示す、プレーヤキャラクタPの右手部位RHをS極、左手部位LHをN極に切り替える処理を行う。
【0144】
(5)マルチプレーヤゲーム
本実施形態では、複数のプレーヤそれぞれの操作対象のプレーヤキャラクタを共通のオブジェクト空間に配置させるようにしてもよい。例えば、各プレーヤキャラクタ間において発生する磁極との組み合わせによって、各プレーヤキャラクタの磁力Fに伴う移動ベクトルVaを求めて、プレーヤキャラクタそれぞれを、移動ベクトルVaを反映させたプレーヤの移動ベクトルVPを求め、移動ベクトルVPに基づき移動処理を行うようにしてもよい。
【0145】
(6)磁極の切り替え
本実施形態の磁石オブジェクトMの磁極は予め決められた磁極で設定されているが、コンピュータプログラムに基づき、磁極を自動的に切り替えるようにしてもよい。例えば、所定間隔(例えば、10秒間隔)で、磁極を、S極、N極、S極、N極・・・と交互に切り替えるようにしてもよい。また、所与のイベントが発生したときに、磁極を切り替えるようにしてもよい。
【0146】
また、本実施形態では、プレーヤキャラクタの磁極についても、自動的に磁極を切り替えるようにしてもよい。例えば、所定間隔(例えば、10秒間隔)で、磁極を、S極、N極、S極、N極・・・と交互に切り替えるようにしてもよい。また、所与のイベントが発生したときに、磁極を切り替えるようにしてもよい。
【0147】
また、本実施形態では、プレーヤキャラクタが敵キャラクタにヒットされた場合など、所与のイベントが発生した場合に、一定期間(例えば、5秒間)プレーヤの磁極切替入力情報を受け付けないように設定してもよい。
【符号の説明】
【0148】
P プレーヤキャラクタ、M 磁石オブジェクト、M´ 弾磁石オブジェクト、
100 処理部、110 受け付け部、111 オブジェクト空間設定部、
112 移動・動作処理部、112a 移動処理部、113 第1の属性設定部、
114 第2の属性設定部、115 判定領域処理部、116 ゲーム演算部、
120 描画部、130 音生成部、
160 入力部、170 記憶部、172 主記憶部、174 描画バッファ、
176 オブジェクトデータ記憶部、178 テクスチャ記憶部、
179 zバッファ、180 情報記憶媒体、
190 表示部、192 音出力部、196 通信部

【特許請求の範囲】
【請求項1】
オブジェクト空間において判定領域を設定し移動体を移動させるゲームのためのプログラムであって、
プレーヤの移動入力情報に基づいて、前記移動体を移動させる処理を行う移動処理部と、
前記移動体の属性を設定する第1の属性設定部と、
前記判定領域の属性を設定する第2の属性設定部として、コンピュータを機能させ、
前記第1の属性設定部が、
プレーヤの切替入力情報に基づいて、前記移動体の属性を切り替える処理を行い、
前記移動処理部が、
前記移動体の属性と前記判定領域の属性との組み合わせによって決定される、前記移動体の移動パラメータに基づいて、前記移動体を移動させることを特徴とするプログラム。
【請求項2】
オブジェクト空間において判定領域を設定し移動体を移動させるゲームのためのプログラムであって、
前記移動体を移動させる処理を行う移動処理部と、
前記移動体の属性を設定する第1の属性設定部と、
前記判定領域の属性を設定する第2の属性設定部として、コンピュータを機能させ、
前記第2の属性設定部が、
プレーヤの切替入力情報に基づいて、前記判定領域の属性を切り替える処理を行い、
前記移動処理部が、
前記移動体の属性と前記判定領域の属性との組み合わせによって決定される、前記移動体の移動パラメータに基づいて、前記移動体を移動させることを特徴とするプログラム。
【請求項3】
請求項1又は2において、
前記移動処理部が、
前記移動体と前記判定領域との位置関係が所定条件を満たした場合に、前記移動体の移動パラメータを変化させることを特徴とするプログラム。
【請求項4】
請求項1〜3のいずれかにおいて、
前記移動処理部が、
前記移動体と前記判定領域の基準点との距離に応じて、前記移動体の移動パラメータを変化させることを特徴とするプログラム。
【請求項5】
請求項1〜4のいずれかにおいて、
前記移動処理部が、
前記移動体の属性と前記判定領域の属性との組み合わせによって決定される、前記判定領域の移動パラメータに基づいて、前記判定領域を移動させることを特徴とするプログラム。
【請求項6】
請求項1〜5のいずれかにおいて、
前記移動処理部が、
前記移動体と前記判定領域との位置関係が所定条件を満たした場合に、前記判定領域の移動パラメータを変化させることを特徴とするプログラム。
【請求項7】
請求項1〜6のいずれかにおいて、
前記移動処理部が、
前記移動体と前記判定領域の基準点との距離に応じて、前記判定領域の移動パラメータを変化させることを特徴とするプログラム。
【請求項8】
請求項1〜7のいずれかにおいて、
前記オブジェクト空間において、前記判定領域に対応させて所与のオブジェクトを設定する処理を行うオブジェクト空間設定部として、コンピュータを更に機能させることを特徴とするプログラム。
【請求項9】
請求項1〜8のいずれかにおいて、
前記判定領域の大きさ及び形状の少なくとも一方を変化させる判定領域処理部として、コンピュータを更に機能させることを特徴とするプログラム。
【請求項10】
請求項1〜9のいずれかにおいて、
前記第1の属性設定部が、
前記移動体の複数の部位それぞれに属性を設定する処理を行い、前記切替入力情報に基づいて、複数の部位それぞれの属性を切り替え、
前記移動処理部が、
複数の部位それぞれの属性と前記判定領域の属性との組み合わせによって決定される、移動体の移動パラメータに基づいて、前記移動体を移動させることを特徴とするプログラム。
【請求項11】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1〜10のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項12】
オブジェクト空間において判定領域を設定し移動体を移動させるゲームのためのゲームシステムであって、
プレーヤの移動入力情報に基づいて、前記移動体を移動させる処理を行う移動処理部と、
前記移動体の属性を設定する第1の属性設定部と、
前記判定領域の属性を設定する第2の属性設定部とを含み、
前記第1の属性設定部が、
プレーヤの切替入力情報に基づいて、前記移動体の属性を切り替える処理を行い、
前記移動処理部が、
前記移動体の属性と前記判定領域の属性との組み合わせによって決定される、前記移動体の移動パラメータに基づいて、前記移動体を移動させることを特徴とするゲームシステム。
【請求項13】
オブジェクト空間において判定領域を設定し移動体を移動させるゲームのためのゲームシステムであって、
前記移動体を移動させる処理を行う移動処理部と、
前記移動体の属性を設定する第1の属性設定部と、
前記判定領域の属性を設定する第2の属性設定部とを含み、
前記第2の属性設定部が、
プレーヤの切替入力情報に基づいて、前記判定領域の属性を切り替える処理を行い、
前記移動処理部が、
前記移動体の属性と前記判定領域の属性との組み合わせによって決定される、前記移動体の移動パラメータに基づいて、前記移動体を移動させることを特徴とするゲームシステム。

【図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