説明

ゲームプログラム、ゲームシステム、ゲーム装置、および、ゲーム制御方法

【課題】ゲーム展開の意外性を高め、ひいてはゲームの興趣性を高めることのできるゲームプログラム、ゲーム装置、ゲーム制御方法、ゲームシステムを提供すること。
【解決手段】仮想空間内に第1の領域と第2の領域を設定する。そして、ゲーム世界の第1の状態を構成する第1構成情報に基づき、第1の領域内に配置される第1オブジェクトを生成する。また、第1構成情報が適用される仮想空間内の所定の位置と同じ位置について第1の状態とは異なる第2の状態を構成する第2構成情報に基づいて、第2の領域内に配置される第2オブジェクトを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間内においてプレイヤオブジェクトを操作するゲームプログラムに関し、より特定的には、仮想空間内に構成されるゲーム世界を構成する処理の制御に関する。
【背景技術】
【0002】
従来より、仮想3次元空間内のキャラクタをプレイヤが操作することでゲームを進行させるゲーム装置が知られている(例えば、特許文献1)。このゲーム装置では、プレイヤは、画面に表示されている仮想3次元空間を見ながらキャラクタを操作する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−279038号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記ゲーム装置においては、画面に表示されている範囲内においては、キャラクタがどのような挙動をするか容易に予測できるものとなっている。例えば、表示範囲内において、どこがキャラクタが進入できる領域であり、どこが進入できない領域であるかは画面を見ただけで、プレイヤが容易に把握できるものとなっていた。この点について、発明者は、ゲームの興趣性を向上させる余地があることを発見した。
【0005】
それ故に、本発明の目的は、ゲーム展開の意外性を高め、ひいてはゲームの興趣性を高めることのできるゲームプログラム、ゲーム装置、ゲーム制御方法、ゲームシステムを提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は以下のような構成を採用した。
【0007】
第1の発明は、仮想空間内に構成されたゲーム世界においてプレイヤオブジェクトを操作するゲームを実行するゲーム装置のコンピュータに実行させるためのゲームプログラムであって、コンピュータを、第1領域設定手段、第2領域設定手段、第1オブジェクト生成手段、第2オブジェクト生成手段として機能させる。第1領域設定手段は、仮想空間内に第1の領域を設定する。第2領域設定手段は、仮想空間内に第2の領域を設定する。第1オブジェクト生成手段は、前記仮想空間内の少なくとも1部にかかるゲーム世界の第1の状態を構成する第1構成情報に基づいて、第1領域設定手段により設定された第1の領域内に配置される第1オブジェクトを生成する。第2オブジェクト生成手段は、仮想空間におけるゲーム世界の第1の状態とは異なる第2の状態を構成し、第1構成情報が存在する仮想空間内の所定の位置において存在する第2構成情報に基づいて、第2領域設定手段により設定された第2の領域内に配置される第2オブジェクトを生成する。
【0008】
第1の発明によれば、仮想空間内の所定の位置に設定される領域が第1の領域か第2の領域かによって異なる構成情報を用いてオブジェクトが生成されることにより、仮想空間内の同じ位置であっても状況に応じて異なるゲーム世界の状態が生成されることになるため、意外性のあるゲーム展開を提供することができる。
【0009】
第2の発明は、第1の発明において、プレイヤによる操作装置への操作に応じて、第1の領域を動的に変化させる第1領域変化手段としてコンピュータをさらに機能させる。
【0010】
第2の発明によれば、プレイヤの操作に応じて第1の領域の位置や大きさなどを変化させることができ、ゲームの興趣性を高めることができる。
【0011】
第3の発明は、第1または第2の発明において、プレイヤによる操作装置への操作に応じて、第1の領域の基準位置を決定する基準位置決定手段としてコンピュータをさらに機能させる。そして、第1領域設定手段は、基準位置を基準として第1の領域を設定する。
【0012】
第3の発明によれば、プレイヤが所望する位置に第1の領域を設定することが可能となり、ゲームの興趣性を高めることができる。
【0013】
第4の発明は、第1乃至第3の発明の何れかの発明において、前記第1オブジェクトおよび第2オブジェクトは前記ゲーム世界のフィールドおよび地形を構成するためのフィールド地形オブジェクトである。そして、第1オブジェクト生成手段により生成されたフィールド地形オブジェクトと第2オブジェクト生成手段により生成されたフィールド地形オブジェクトとに基づいて、地形オブジェクト以外のプレイヤオブジェクトまたはノンプレイヤオブジェクトが配置可能なゲーム世界のフィールドおよび地形を生成するゲーム世界生成手段としてコンピュータをさらに機能させる。
【0014】
第4の発明によれば、ゲーム世界の第1の状態における地形と第2の状態における地形が合成されたフィールドおよび地形を生成することができる。これにより、仮想空間内の同じ位置であってもプレイヤオブジェクトが動作するゲーム世界のフィールドや地形が領域の設定によって異なるため、意外性のあるゲーム展開を提供することができる。
【0015】
第5の発明は、第4の発明において、前記第1オブジェクトおよび前記第2オブジェクトにはそれぞれ識別情報が設定されている。そして、プレイヤオブジェクトまたはノンプレイヤオブジェクトが配置されている第1オブジェクトあるいは第2オブジェクトの識別情報を取得し、当該取得した識別情報に基づいて、プレイヤオブジェクトまたはノンプレイヤオブジェクトの挙動または状態を決定する決定手段としてコンピュータをさらに機能させる。
【0016】
第5の発明によれば、オブジェクトが位置するフィールドや地形にオブジェクトの挙動や状態を決定するための識別情報が設定されているため、オブジェクトの挙動や状態を簡易でかつ多様に変化させることができる。
【0017】
第6の発明は、第4の発明において、ゲーム世界のフィールドまたは地形上に配置されたプレイヤオブジェクトの動作をプレイヤの操作に応じて制御するプレイヤオブジェクト動作制御手段としてコンピュータを更に機能させる。
【0018】
第6の発明によれば、ゲーム世界の第1の状態における地形と第2の状態における地形が合成されたフィールドおよび地形上でプレイヤオブジェクトを操作することが可能となる。
【0019】
第7の発明は、第4の発明において、ノンプレイヤオブジェクトは、第1の領域内に配置されるときと第2の領域内に配置されるときとで異なる属性が設定される。
【0020】
第7の発明によれば、領域上におけるゲーム世界の状態(第1の状態あるいは第2の状態)に応じてオブジェクトの属性を変化させることができ、ゲームの興趣性を高めることができる。
【0021】
第8の発明は、第1乃至第8の発明のいずれかの発明において、第1構成情報に基づいてゲーム世界を表す2次元マップを生成する2次元マップ生成手段と、生成された2次元マップを表示する2次元マップ表示手段としてコンピュータを更に機能させる。
【0022】
第8の発明によれば、ゲーム世界の第1の状態が示された2次元マップをプレイヤに参照させながら第2の状態であるゲーム世界上でゲーム進行させることが可能となる。これにより、どの場所で第1の領域を設定すればよいか等につきプレイヤにヒントを与えることができ、ゲームの興趣性を高めることができる。
【0023】
第9の発明は、第1乃至第8の発明のいずれかの発明において、ゲームの実行開始時は、ゲーム世界は第2の領域として設定された状態でゲームが開始される。そして、第1領域設定手段は、第2の領域として設定されている領域のうち、少なくとも一部の領域についての第1の領域への設定をプレイヤの操作に応じて開始する。
【0024】
第9の発明によれば、プレイヤが所望するタイミングで第1の領域の設定を開始することが可能となり、ゲームの興趣性を高めることができる。
【0025】
第10の発明は、第1乃至第8の発明のいずれかの発明において、第1領域設定手段は、前記第1の領域の設定を開始するための設定開始オブジェクトが前記ゲーム世界の所定の場所に配置されたときに前記第1の領域の設定を開始する。
【0026】
第11の発明は、第10の発明において、第1領域設定手段は、設定開始オブジェクトの位置を基準として第1の領域の位置を設定する。
【0027】
第12の発明は、設定開始オブジェクトは、プレイヤの操作に応じて動作が制御されるプレイヤオブジェクトを介して移動可能なオブジェクトである。
【0028】
第13の発明は、第10の発明において、第1領域設定手段は、設定開始オブジェクトに対するプレイヤオブジェクトの所定の行動が行われたときに、第1の領域の設定を開始する。
【0029】
第10乃至第13の発明によれば、ゲームの興趣性を高めることができる。
【0030】
第14の発明は、第1乃至第13の発明のいずれかの発明において、第1領域手段によって第1の領域が設定されてから所定時間経過したときに当該第1の領域の設定を解除する領域解除手段としてコンピュータを更に機能させる。
【0031】
第14の発明によれば、第1の領域の出現時間に制限時間が設定でき、ゲームの興趣性を向上させることが可能となる。
【0032】
第15の発明は、第1乃至第14の発明のいずれかの発明において、第1領域手段によって第1の領域が設定されたとき、当該第1の領域と第2の領域の境界の少なくとも1部が含まれるようなゲーム画面を生成して表示するゲーム画面表示手段としてコンピュータを更に機能させる。
【0033】
第15の発明によれば、1ゲーム画面内に異なる2つの世界状態が表示されるため、プレイヤに2つの世界状態を見させながらゲームを進行させることができ、ゲーム展開の意外性を高めてゲームの興趣性を向上させることができる。
【0034】
第16の発明は、第1の発明において、位置取得手段と領域判別手段としてコンピュータを更に機能させる。位置取得手段は、第1の状態および第2の状態の少なくともいずれかに存在するオブジェクトの仮想空間内の位置を取得する。領域判別手段は、位置取得手段によって取得された位置が第1の領域内か第2の領域内にあるかを判別する。そして、第1オブジェクト生成手段は、領域判別手段によって取得された位置が第1の領域内にあると判別されたときに、第1構成情報に基づいて第1オブジェクトを生成する。更に、第2オブジェクト生成手段は、領域判別手段によって取得された位置が第2の領域内にあると判別されたときに、第2構成情報に基づいて第2オブジェクトを生成する。
【0035】
第16の発明によれば、仮想空間内の所定の位置に設定される領域が第1の領域か第2の領域かによって、異なる構成情報に基づいてオブジェクトが生成される。これにより、仮想空間内の同じ位置であっても、状況に応じて異なる制御が行われるオブジェクトが生成されることになるため、意外性のあるゲーム展開を提供することができる。
【0036】
第17の発明は、仮想空間内に構築されたゲーム世界においてプレイヤオブジェクトを操作するゲームを実行するゲームシステムであって、第1領域設定手段と第2領域設定手段と第1オブジェクト生成手段と第2オブジェクト生成手段とを備える。第1領域設定手段は、仮想空間内に第1の領域を設定する。第2領域設定手段は、仮想空間内に第2の領域を設定する。第1オブジェクト生成手段は、仮想空間におけるゲーム世界の第1の状態を構成する第1構成情報に基づいて、第1領域設定手段により設定された第1の領域内に配置される第1オブジェクトを生成する。第2オブジェクト生成手段は、仮想空間におけるゲーム世界の第1の状態とは異なる第2の状態を構成し、第1構成情報が存在する仮想空間内の所定の位置において存在する第2構成情報に基づいて、第2領域設定手段により設定された第2の領域内に配置される第2オブジェクトを生成する。
【0037】
第18の発明は、仮想空間内に構築されたゲーム世界においてプレイヤオブジェクトを操作するゲームを実行するゲーム装置であって、第1領域設定手段と第2領域設定手段と第1オブジェクト生成手段と第2オブジェクト生成手段とを備える。第1領域設定手段は、仮想空間内に第1の領域を設定する。第2領域設定手段は、仮想空間内に第2の領域を設定する。第1オブジェクト生成手段は、仮想空間におけるゲーム世界の第1の状態を構成する第1構成情報に基づいて、第1領域設定手段により設定された第1の領域内に配置される第1オブジェクトを生成する。第2オブジェクト生成手段は、仮想空間におけるゲーム世界の第1の状態とは異なる第2の状態を構成し、第1構成情報が存在する仮想空間内の所定の位置において存在する第2構成情報に基づいて、第2領域設定手段により設定された第2の領域内に配置される第2オブジェクトを生成する。
【0038】
第19の発明は、仮想空間内に構築されたゲーム世界においてプレイヤオブジェクトを操作するゲームを実行するゲーム装置の制御方法であって、第1領域設定ステップと第2領域設定ステップと第1オブジェクト生成ステップと第2オブジェクト生成ステップとを備える。第1領域設定ステップは、仮想空間内に第1の領域を設定する。第2領域設定ステップは、仮想空間内に第2の領域を設定する。第1オブジェクト生成ステップは、仮想空間におけるゲーム世界の第1の状態を構成する第1構成情報に基づいて、第1領域設定ステップにおいて設定された第1の領域内に配置される第1オブジェクトを生成する。第2オブジェクト生成ステップは、仮想空間におけるゲーム世界の第1の状態とは異なる第2の状態を構成し、第1構成情報が存在する仮想空間内の所定の位置において存在する第2構成情報に基づいて、第2領域設定ステップにおいて設定された第2の領域内に配置される第2オブジェクトを生成する。
【0039】
第17乃至第19の発明によれば、第1の発明と同様の効果を得ることができる。
【発明の効果】
【0040】
本発明によれば、ゲーム展開の意外性を高め、ひいてはゲームの興趣性を高めることができる。
【図面の簡単な説明】
【0041】
【図1】ゲームシステム1の外観図
【図2】ゲーム装置3の構成を示すブロック図
【図3】入力装置8の外観構成を示す斜視図
【図4】コントローラ5の外観構成を示す斜視図
【図5】コントローラ5の内部構造を示す図
【図6】コントローラ5の内部構造を示す図
【図7】入力装置8の構成を示すブロック図
【図8】本実施形態で想定するゲーム画面の一例
【図9】本実施形態で想定するゲーム画面の一例
【図10】図8の状態を鳥瞰した場合の模式図
【図11】図9の状態を鳥瞰した場合の模式図
【図12】転移領域を示す模式図
【図13】本実施形態で想定するゲーム画面の一例
【図14】本実施形態で想定するゲーム画面の一例
【図15】本実施形態で想定するゲーム画面の一例
【図16】本実施形態で想定するゲーム画面の一例
【図17】本実施形態で想定するゲーム画面の一例
【図18】本実施形態で想定するゲーム画面の一例
【図19】本実施形態で想定するゲーム画面の一例
【図20】ゲーム装置3のメインメモリ12のメモリマップを示す図
【図21】第1エリアデータ126aのデータ構造の一例を示す図
【図22】オブジェクト識別データ141のデータ構造の一例
【図23】現在オブジェクトマスタ143のデータ構造の一例
【図24】過去オブジェクトマスタ145のデータ構造の一例
【図25】本実施形態にかかるゲーム処理を示すフローチャート
【図26】図25のステップS9で示した転移中処理の詳細を示すフローチャート
【図27】図26のステップS29で示した非動作系オブジェクト処理の詳細を示すフローチャート
【図28】断面加工処理について説明するための図
【図29】断面加工処理について説明するための図
【図30】図26のステップS30で示した動作系オブジェクト処理の詳細を示すフローチャート
【図31】3つの世界状態を1つのゲーム画面に表示する場合を示す図
【図32】「地形コード」に基づいて処理する場合に用いるテーブルの例
【図33】「地形コード」に基づいて処理する場合に用いるテーブルの例
【発明を実施するための形態】
【0042】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【0043】
[ゲームシステムの全体構成]
図1を参照して、本発明の一実施形態に係るゲーム装置の一例であるゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置3、光ディスク4、入力装置8、およびマーカ部6を含む。本システムは、入力装置8を用いたゲーム操作に基づいてゲーム装置3でゲーム処理を実行するものである。
【0044】
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるためのゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されているゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【0045】
ゲーム装置3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ2の画面の周辺(図1では画面の上側)には、マーカ部6が設置される。マーカ部6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部6はゲーム装置3に接続されており、ゲーム装置3はマーカ部6が備える各赤外LEDの点灯を制御することが可能である。
【0046】
入力装置8は、自機に対して行われた操作の内容を示す操作データをゲーム装置3に与えるものである。本実施形態では、入力装置8はコントローラ5とジャイロセンサユニット7とを含む。詳細は後述するが、入力装置8は、コントローラ5に対してジャイロセンサユニット7が着脱可能に接続されている構成である。コントローラ5とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。
【0047】
[ゲーム装置3の内部構成]
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
【0048】
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムLSI11の内部構成については後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。
【0049】
また、システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
【0050】
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。
【0051】
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
【0052】
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。
【0053】
入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、およびメモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
【0054】
入出力プロセッサ11aは、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
【0055】
また、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23および無線コントローラモジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0056】
さらに、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
【0057】
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、ゲーム装置3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
【0058】
[入力装置8の構成]
次に、図3〜図6を参照して、入力装置8について説明する。図3は、入力装置8の外観構成を示す斜視図である。図4は、コントローラ5の外観構成を示す斜視図である。図3は、コントローラ5の上側後方から見た斜視図であり、図4は、コントローラ5を下側前方から見た斜視図である。
【0059】
図3および図4において、コントローラ5は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ5に設けられたボタンを押下すること、および、コントローラ5自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。
【0060】
ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字ボタン32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、および電源ボタン32hが設けられる。本明細書では、これらのボタン32a〜32hが設けられるハウジング31の上面を「ボタン面」と呼ぶことがある。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。ホームボタン32fおよび電源ボタン32hは、その上面がハウジング31の上面に埋没している。これによって、プレイヤがホームボタン32fまたは電源ボタン32hを誤って押下することを防止することができる。
【0061】
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、コントローラ5に他の機器(例えば、ジャイロセンサユニット7や他のコントローラ)を接続するために利用される。また、ハウジング31の後面におけるコネクタ33の両側には、上記他の機器が容易に離脱することを防止するために係止穴33aが設けられている。
【0062】
ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5には、他のメインコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ5の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
【0063】
また、コントローラ5は撮像情報演算部35(図6)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。
【0064】
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、コントローラ5に内蔵されるスピーカ49(図5)からの音を外部に放出するための音抜き孔31aが形成されている。
【0065】
次に、図5および図6を参照して、コントローラ5の内部構造について説明する。図5および図6は、コントローラ5の内部構造を示す図である。なお、図5は、コントローラ5の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6は、コントローラ5の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6に示す斜視図は、図5に示す基板30を裏面から見た斜視図となっている。
【0066】
図5において、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、およびスピーカ49等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。本実施形態では、加速度センサ37は、X軸方向に関してコントローラ5の中心からずれた位置に配置されている。これによって、コントローラ5をZ軸回りに回転させたときのコントローラ5の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z軸方向)に関してコントローラ5の中心よりも前方に配置されている。また、無線モジュール44(図6)およびアンテナ45によって、コントローラ5がワイヤレスコントローラとして機能する。
【0067】
一方、図6において、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ5の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を備えている。これらの部材38〜41はそれぞれ基板30の下主面に取り付けられる。
【0068】
さらに、基板30の下主面上には、上記マイコン42およびバイブレータ48が設けられている。バイブレータ48は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ48が作動することによってコントローラ5に振動が発生する。これによって、コントローラ5を把持しているプレイヤの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ48は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ48がコントローラ5の中心よりも端側に配置することによって、バイブレータ48の振動によりコントローラ5全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5および図6に示す他、コントローラ5は、マイコン42の基本クロックを生成する水晶振動子、スピーカ49に音声信号を出力するアンプ等を備えている。
【0069】
また、ジャイロセンサユニット7は、3軸回りの角速度を検知するジャイロセンサ(図7に示すジャイロセンサ55および56)を有する。ジャイロセンサユニット7は、コントローラ5のコネクタ33に着脱可能に装着される。ジャイロセンサユニット7の前端(図3に示すZ軸正方向側の端部)には、コネクタ33に接続可能なプラグ(図7に示すプラグ53)が設けられる。さらに、プラグ53の両側にはフック(図示せず)が設けられる。ジャイロセンサユニット7がコントローラ5に対して装着される状態では、プラグ53がコネクタ33に接続されるとともに、上記フックがコントローラ5の係止穴33aに係止する。これによって、コントローラ5とジャイロセンサユニット7とがしっかりと固定される。また、ジャイロセンサユニット7は側面(図3に示すX軸方向の面)にボタン51を有している。ボタン51は、それを押下すれば上記フックの係止穴33aに対する係止状態を解除することができるように構成されている。したがって、ボタン51を押下しながらプラグ53をコネクタ33から抜くことによって、ジャイロセンサユニット7をコントローラ5から離脱することができる。
【0070】
また、ジャイロセンサユニット7の後端には、上記コネクタ33と同形状のコネクタが設けられる。したがって、コントローラ5(のコネクタ33)に対して装着可能な他の機器は、ジャイロセンサユニット7のコネクタに対しても装着可能である。なお、図3においては、当該コネクタに対してカバー52が着脱可能に装着されている。
【0071】
なお、図3〜図6に示したコントローラ5およびジャイロセンサユニット7の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができる。また、本実施形態では、撮像手段による撮像方向はZ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【0072】
図7は、入力装置8(コントローラ5およびジャイロセンサユニット7)の構成を示すブロック図である。コントローラ5は、操作部32(各操作ボタン32a〜32i)、コネクタ33、撮像情報演算部35、通信部36、および加速度センサ37を備えている。コントローラ5は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置3へ送信するものである。
【0073】
操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を示す操作ボタンデータを通信部36のマイコン42へ出力する。
【0074】
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。
【0075】
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ5の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、テレビ2の表示画面近傍に配置されるマーカ部6のマーカ6Rおよび6Lは、テレビ2の前方に向かって赤外光を出力する赤外LEDで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、マーカ6Rおよび6Lの画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象(マーカ6Rおよび6L)の位置を算出する。画像処理回路41は、算出された位置を示す座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ5自体の向き(傾斜角度)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ5の向きや位置を算出することができる。
【0076】
なお、他の実施形態においては、コントローラ5は画像処理回路41を備えていない構成であってもよく、撮像画像自体がコントローラ5からゲーム装置3へ送信されてもよい。このとき、ゲーム装置3は、画像処理回路41と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。
【0077】
加速度センサ37は、コントローラ5の加速度(重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。例えば、3軸または2軸の加速度センサは、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能である種類のものでもよい。なお、加速度センサ37は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【0078】
本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、入力装置8(コントローラ5)を基準に設定されるXYZ座標系(コントローラ座標系)における3次元のベクトル(ax,ay,az)として表される。以下では、加速度センサ37によって検出される3軸に関する各加速度値を各成分とするベクトルを加速度ベクトルと呼ぶ。
【0079】
加速度センサ37が検出した加速度を示すデータ(加速度データ)は、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き(傾斜角度)や動きに対応して変化するので、ゲーム装置3は加速度データを用いてコントローラ5の向きや動きを算出することができる。本実施形態では、ゲーム装置3は、加速度データに基づいてコントローラ5の姿勢を判断する。
【0080】
加速度センサ37が検出した加速度(加速度ベクトル)を示すデータ(加速度データ)は、通信部36へ出力される。本実施形態において、加速度センサ37は、コントローラ5の傾斜角度を判断するためのデータを出力するセンサとして用いられる。
【0081】
なお、加速度センサ37から出力される加速度の信号に基づいて、ゲーム装置3のプロセッサ(例えばCPU10)またはコントローラ5のプロセッサ(例えばマイコン42)等のコンピュータが処理を行うことによって、コントローラ5に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ37を搭載するコントローラ5が静止状態であることを前提としてコンピュータ側の処理が実行される場合(すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合)、コントローラ5が現実に静止状態であれば、検出された加速度に基づいてコントローラ5の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ37の検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かによって、コントローラ5が基準に対して傾いているか否かを知ることができるし、その大きさによって基準に対してどの程度傾いているかも知ることができる。また、多軸の加速度センサ37の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してコントローラ5がどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ37からの出力に基づいてコントローラ5の傾斜角度を算出してもよいし、当該傾斜角度を算出せずに、コントローラ5の傾斜方向を算出するようにしてもよい。このように、加速度センサ37をプロセッサと組み合わせて用いることによって、コントローラ5の傾斜角度または姿勢を判定することができる。
【0082】
一方、コントローラ5が動的な状態(コントローラ5が動かされている状態)であることを前提とする場合には、加速度センサ37は重力加速度に加えてコントローラ5の動きに応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ5の動き方向を知ることができる。また、コントローラ5が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの動きに応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ5の傾きを知ることが可能である。なお、他の実施例では、加速度センサ37は、内蔵の加速度検出手段で検出された加速度信号をマイコン42に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式の処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ37が静的な加速度(例えば、重力加速度)を検出するために用いられる場合、加速度信号を傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
【0083】
通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。また、マイコン42はコネクタ33に接続されている。ジャイロセンサユニット7から送信されてくるデータは、コネクタ33を介してマイコン42に入力される。以下、ジャイロセンサユニット7の構成について説明する。
【0084】
ジャイロセンサユニット7は、プラグ53、マイコン54、2軸ジャイロセンサ55、および1軸ジャイロセンサ56を備えている。上述のように、ジャイロセンサユニット7は、3軸(本実施形態では、XYZ軸)周りの角速度を検出し、検出した角速度を示すデータ(角速度データ)をコントローラ5へ送信する。
【0085】
2軸ジャイロセンサ55は、X軸周りの角速度およびY軸周りの(単位時間あたりの)角速度を検出する。また、1軸ジャイロセンサ56は、Z軸周りの(単位時間あたりの)角速度を検出する。なお、本明細書では、コントローラ5の撮像方向(Z軸正方向)を基準として、XYZ軸周りの回転方向を、それぞれ、ロール方向、ピッチ方向、ヨー方向と呼ぶ。すなわち、2軸ジャイロセンサ55は、ロール方向(X軸周りの回転方向)およびピッチ方向(Y軸周りの回転方向)の角速度を検出し、1軸ジャイロセンサ56は、ヨー方向(Z軸周りの回転方向)の角速度を検出する。
【0086】
なお、本実施形態では、3軸回りの角速度を検出するために、2軸ジャイロセンサ55と1軸ジャイロセンサ56とを用いる構成としたが、他の実施形態においては、3軸回りの角速度を検出することができればよく、用いるジャイロセンサの数および組み合わせはどのようなものであってもよい。
【0087】
また、本実施形態では、後述する姿勢算出処理における計算を容易にする目的で、各ジャイロセンサ55および56が角速度を検出する3つの軸は、加速度センサ37が加速度を検出する3つの軸(XYZ軸)と一致するように設定される。ただし、他の実施形態においては、各ジャイロセンサ56および57が角速度を検出する3つの軸と、加速度センサ37が加速度を検出する3つの軸とは一致しなくてもよい。
【0088】
各ジャイロセンサ55および56で検出された角速度を示すデータは、マイコン54に出力される。したがって、マイコン54には、XYZ軸の3軸回りの角度速度を示すデータが入力されることになる。マイコン54は、上記3軸回りの角速度を示すデータを角速度データとしてプラグ53を介してコントローラ5へ送信する。なお、マイコン54からコントローラ5への送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。
【0089】
コントローラ5の説明に戻り、操作部32、撮像情報演算部35、および加速度センサ37からマイコン42へ出力されたデータ、ならびに、ジャイロセンサユニット7からマイコン42へ送信されてきたデータは、一時的にメモリ43に格納される。これらのデータは、上記操作データとしてゲーム装置3へ送信される。すなわち、マイコン42は、ゲーム装置3の無線コントローラモジュール19への送信タイミングが到来すると、メモリ43に格納されている操作データを無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ5から送信される。微弱電波信号はゲーム装置3側の無線コントローラモジュール19で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、取得した操作データとゲームプログラムとに基づいて、ゲーム処理を行う。なお、通信部36から無線コントローラモジュール19への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ5の通信部36は、例えば1/200秒に1回の割合で各操作データをゲーム装置3の無線コントローラモジュール19へ出力する。
【0090】
上記コントローラ5を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、コントローラ5を任意の傾斜角度に傾ける操作を行うことができる。その他、上記コントローラ5によれば、プレイヤは、コントローラ5によって画面上の任意の位置を指示する操作、および、コントローラ5自体を動かす操作を行うこともできる。
【0091】
次に、本実施形態におけるゲームおよび実行される処理の概要を説明する。本実施形態で想定する処理では、仮想3次元ゲーム空間(以下、単に仮想ゲーム空間と呼ぶ)内にゲームの舞台となる仮想ゲーム世界(以下、単にゲーム世界と呼ぶ)を構築するが、この仮想ゲーム世界に関して2つの「世界状態」を定義しておく。2つの「世界状態」とは、例えば、「現在の世界」と「過去の世界」のような、仮想空間内における場所としては同じ場所ではあるが、そこに構築される世界の内容が異なっているようなものを言う。構築される世界の内容とは、例えば、その場所における地形の状態や属性、仮想的な天候状態、その場所におけるオブジェクトの外観や挙動、属性等が挙げられる。本実施形態では、このような「2つの状態」を定義したデータを用意しておく。そして、通常は、仮想ゲーム空間内の全領域について「第1の状態」のデータに基づいた世界を構築し、ゲームを進行させる。しかし、ゲーム中において所定の条件が満たされたとき、上記仮想ゲーム空間内の一部の領域について、「第2の状態」を定義したデータに基づいた世界を構築する。つまり、1つの仮想ゲーム空間内に「第1の状態」と「第2の状態」が併存した状態となる。また、このような2つの世界状態が併存する時間には制限時間が設けられている。そして、本実施形態では、このような2つの世界状態が同じゲーム画面上に表示されるように処理を行う。つまり、上記2つの領域の境界部分がゲーム画面に含まれるようなゲーム画面を生成する。その結果、プレイヤに、2つの世界状態を見ながらゲームを進行させることができる。これにより、例えば、進入することができないとプレイヤが思っていた場所が、上記のように世界の状態が変化することで進入できるようになる等して、ゲーム展開の意外性を高め、ひいてはゲームの興趣性を高めることができる。
【0092】
以下、図面を用いて、上記の内容をより具体的に説明する。図8は、本実施形態で想定するゲーム画面の一例である。図8では、仮想3次元空間として構築されたゲーム世界が表示されており、プレイヤの操作対象となるプレイヤオブジェクト101も表示されている。また、プレイヤオブジェクト101の前方には、クリスタルオブジェクト102が表示されている。また、図示しない仮想カメラは、基本的には、プレイヤオブジェクトの後方に配置され、プレイヤオブジェクト101を追尾するようにその位置等が制御されている。
【0093】
ここで、本実施形態で想定するゲーム世界には、上述したような2つの「世界状態」が設定されている。具体的には、1つめは「現在の世界」であり、2つめは「過去の世界」である。また、本実施形態では、ゲームの設定上、「現在の世界」は、荒野の世界として設定・定義されており、「過去の世界」は、緑で覆われた世界として予め設定・定義されているものとする。本ゲームでは、基本的には、「現在の世界」を舞台としてゲームを進行させる。つまり、図8の状態では、ゲーム画面に表示されているゲーム世界の領域211はすべて「現在の世界」である。但し、以下のような所定の操作を行う(あるいは、所定の条件が満たされる)ことで、上記「現在の世界」の領域の一部が「過去の世界」に変化する。
【0094】
具体的には、上記クリスタルオブジェクト102が、上記領域の一部を変化させるスイッチとなっている。このスイッチ(以下ではクリスタルスイッチと呼ぶ)をオンにする操作が行われると(例えば、プレイヤオブジェクト101がクリスタルオブジェクト102を攻撃する、あるいは叩く等)、図9に示すように、現在の世界の一部分の領域221が「過去の世界」となる。ここで、本ゲームにおいては、「過去の世界」がこの領域内に「転移される」という設定である。そのため、以下の説明では、領域221を転移領域221と呼ぶ。図10および図11は、上記図8および図9の状態を鳥瞰した場合の模式図である。図10は、上記図8の状態に対応するものであり、ゲーム空間のすべての領域211が「現在の世界」である。一方、図11は、上記図9の状態に対応しており、円形の転移領域221の内側は「過去の世界」であり、円の外側の領域211は「現在の世界」となっている。つまり、上記クリスタルスイッチをオンにすると、クリスタルオブジェクト102の位置を中心(基準位置)とする円形の転移領域221が算出され、この転移領域221内は「過去の世界」として設定される。そして、転移領域221内には、「過去の世界」が構築される。この際、画面上では、クリスタルオブジェクト102を中心として領域221が円形に所定の大きさまで拡大していくような効果で表示される。その結果、ゲーム画面としては、上記図9で示したように、「現在の世界」と「過去の世界」とが同時に表示されている状態となる。
【0095】
ここで、本実施形態では仮想ゲーム空間が3次元空間として構築されているため、正確には、上記「過去の世界」は、図12に示すようなドーム状の空間となる。但し、説明の便宜上、以下の説明では、上記転移領域221(「過去の世界」)は、このような3次元空間の概念も含むものとして、一律に領域221あるいは「過去の世界」という表現を用いる。なお、当該「過去の世界」(転移領域221)は、上記のようなドーム状の空間に限らず、円筒状の空間として設定してもよい。
【0096】
上記のように、クリスタルスイッチがオンにされると、仮想ゲーム空間内の一部の領域(転移領域221)が「過去の世界」として設定されるが、この「過去の世界」として設定されている時間には制限時間が設けられている。例えば、上記クリスタルスイッチをオンにした後、10秒経過すれば、転移領域221として設定された一部の領域は、「現在の世界」に戻る。この際、ゲーム画面上では、上記円形の転移領域221がクリスタルオブジェクト102に向かって集束するように縮小していく様が表示される。その結果、本実施形態での転移領域221の発生から消滅までの表現は、例えば、次のようになる。まず、上記クリスタルスイッチがオンになると、そこから1秒ほどかけて所定の大きさとなるように、転移領域221が円状に広がっていく様子が表示される。その後、20秒間は転移領域221の大きさに変化はなく、20秒を越えると、そこから1秒ほどかけて転移領域221が集束して消滅する様子が表示される。
【0097】
そして、上記のように「現在の世界」と「過去の世界」が併存しているような状態においては、仮想ゲーム空間に登場する、プレイヤオブジェクト101以外の各種オブジェクトの状態や挙動が、「現在の世界」にいるか「過去の世界」にいるかで異なるように制御される。例えば、図9の例では、転移領域221内では、「現在の世界」にはなかった草木のオブジェクトが出現している。つまり、「現在の世界」と「過去の世界」とで、オブジェクトの表示状態(オン/オフ)が異なっていることになる。
【0098】
その他の例として、例えば、図13に示すように、「現在の世界」ではニワトリオブジェクト231が存在しているとする。これらニワトリオブジェクト231は、プレイヤオブジェクト101に対しては攻撃はしてこない。一方、図13の状態でクリスタルスイッチを入れ、ニワトリオブジェクト231の存在する場所が「過去の世界」として設定されると、図14に示すように、ニワトリオブジェクト231がモンスターオブジェクト232に変化する。更に、モンスターオブジェクト232は、プレイヤオブジェクト101に襲いかかってくる。つまり、オブジェクトの外観(状態)が変化し、その挙動(動作)も変化する。
【0099】
また、他の例としては、ある虫型のモンスターオブジェクトについて、「現在の世界」では成虫状態として描画されるが、「過去の世界」では幼虫状態で描画されるという例もある。また、この場合は、成虫時と幼虫時とで異なった挙動を行うようにしてもよい。
【0100】
また、別の例として、例えば、図15のような状態を例に挙げる。図15では、プレイヤオブジェクト101の前方に流砂オブジェクト233が配置されている(つまり、地面の一部が流砂となっている)。ここで、本ゲームでは、当該流砂オブジェクト233にプレイヤオブジェクト101が進入すると、プレイヤオブジェクト101が流砂に沈むように設定されている。そのため、図15の状態では、プレイヤオブジェクト101を流砂オブジェクト233の先に移動させることができない状態となっている。ここで、プレイヤオブジェクト101の側にあるクリスタルスイッチをオンにすると、図16に示すように、クリスタルオブジェクト102を中心とした一部の領域が転移領域221、すなわち、「過去の世界」として設定される。その結果、流砂オブジェクト233が在ったところが、通行可能な地面オブジェクトに変化している。そのため、プレイヤオブジェクト101を前方に移動させることが可能となっている。このように、「現在の世界」と「過去の世界」とで地形を変化させることも可能である。
【0101】
また、他の例として、図17に示すような状態を例に挙げる。図17では、プレイヤオブジェクト101の前方に建造物オブジェクト234が存在している。この建造物オブジェクト234には、扉235が設けられている。当該扉235は、プレイヤオブジェクト101のいる高さよりも高い位置にある。そのため、図17の状態では、扉235に入ることができない状態を示している。ここで、プレイヤオブジェクト101の近くにあるクリスタルスイッチをオンにすると、図18に示すように、一部の領域が転移領域221として設定される。すると、「現在の世界」にはなかった階段オブジェクト236が転移領域221内に出現する。その結果、プレイヤオブジェクト101に階段オブジェクト236を昇らせて、扉235に到達させることが可能となる。
【0102】
その他、上記階段オブジェクト236の場合と同様に、「現在の世界」では存在しない「橋オブジェクト」を「過去の世界」において出現させるようなことも考えられる。つまり、「現在の世界」では進めない場所について、その場所を含む領域を「過去の世界」とすることで、通行可能にするという例が挙げられる。また、その他、例えば、「現在の世界」と「過去の世界」とで、オブジェクトの外観は同じであるがそのサイズが異なる場合や、例えば、ロボットオブジェクトや、「動く床」のようなオブジェクトであって、「現在の世界」ではその動作を停止しているが「過去の世界」では起動している場合等も挙げられる。また、例えば、「過去の世界」では雪が降っているが、現在の世界では雪が降っていない等のような、天候状態が異なる場合も挙げられる、また、「現在の世界」では白骨のオブジェクト(つまり、死んている人間)として表示されているものが、「過去の世界」では生きている人間のオブジェクトとして表示され、動き回るような場合も挙げられる。
【0103】
また、本実施形態では、「過去の世界」となる領域を設定するためのスイッチとして、上記クリスタルオブジェクト102を例としているが、この他、例えば、このスイッチを移動可能な球型のオブジェクトとしてもよい。この場合、「過去の世界」として設定される転移領域221の中心は当該球型オブジェクトの位置となるが、この球型オブジェクトを転がせば、図19(A)(B)(C)に示すように、球型オブジェクト237の移動に伴って転移領域221の位置もリアルタイムに変化していくことになる。また、当該球型オブジェクト237をプレイヤオブジェクト101に持ち上げさせて、そのままプレイヤオブジェクト101を移動させれば、プレイヤオブジェクト101の移動に伴って転移領域221の位置もリアルタイムに移動する。また、この場合、「過去の世界」を出現させるタイミングとしては、例えば、当該球型オブジェクト237を所定の場所に配置したときに「過去の世界」を出現させるようにしてもよい。より具体的には、当該球型オブジェクト237を所定の場所に配置すると、当該球型オブジェクト237に「エネルギー」が充填される(このエネルギーの残量が上記制限時間に相当する)。そして、当該充填された「エネルギー」が切れるまでの間は、「過去の世界」が出現するというような処理を行っても良い。
【0104】
このように、本実施形態では、「現在の世界」の一部の領域を、制限時間付きで「過去の世界」として設定し、ここに「過去の世界」を構築する。そして、プレイヤオブジェクト101以外のオブジェクトについては、「現在の世界」に位置しているか、「過去の世界」に位置しているかに応じて、その状態や挙動を異なるものとする。また、これら2つの領域を1つのゲーム画面内に表示するようにしている。これにより、プレイヤに「現在の世界」と「過去の世界」の状況を見ながらゲームを進行させることができ、ゲームの興趣性を向上させている。
【0105】
次に、ゲーム装置3によって実行されるゲーム処理の詳細を説明する。まず、ゲーム処理の際に外部メインメモリ12に記憶されるデータについて説明する。図20は、ゲーム装置3の外部メインメモリ12のメモリマップを示す図である。図20において、外部メインメモリ12は、プログラム記憶領域121、データ記憶領域124、および、作業領域128を含む。プログラム記憶領域121およびデータ記憶領域124のデータは、光ディスク4に記憶され、ゲームプログラム実行時には外部メインメモリ12に転送されて記憶される。作業領域128のデータは、ゲーム処理の実行中において一時的に作成され、適宜利用される。
【0106】
プログラム記憶領域121は、CPU10によって実行されるゲームプログラムを記憶し、このゲームプログラムは、メイン処理プログラム122や転移中処理プログラム123などによって構成される。メイン処理プログラム122は、後述する図25のフローチャートの処理に対応するプログラムである。転移中処理プログラム123は、上述したような一部の領域を「過去の世界」として設定する処理や、「現在の世界」、「過去の世界」のそれぞれにおけるオブジェクトの制御を行うための処理をCPU10に実行させるためのプログラムである。
【0107】
データ記憶領域124には、ゲーム世界データ125やプレイヤオブジェクトデータ127等のデータが記憶される。ゲーム世界データ125は、本実施形態にかかる仮想ゲーム空間を構築するためのデータである。本実施形態では、仮想ゲーム空間全体が複数のエリアに分けて定義されている。例えば、荒野エリア、草原エリア、沼地エリア等である。そして、各エリアを構築するためのデータが、第1エリアデータ126a(荒野エリアに対応)、第2エリアデータ126b(草原エリアに対応)、第3エリアデータ126c(沼地エリアに対応)・・・、のように定義されている。
【0108】
ここで、各データの説明に先立って、本実施形態における、プレイヤオブジェクト101以外のオブジェクトの分類について説明する。本実施形態では、プレイヤオブジェクト101以外のオブジェクトについては、フィールドオブジェクト、地形オブジェクト、動作系オブジェクト、非動作系オブジェクトの4種類に分類している。そして、これら4種のオブジェクトが適宜仮想ゲーム空間内に配置されることによって、ゲームの舞台となる上記各エリアが構築される。
【0109】
次に、当該4種のオブジェクトについて説明する。まず、フィールドオブジェクトは、各エリアの地面や水面となる部分(以下ではフィールドと呼ぶ)を構成するオブジェクトである。いわば、ゲーム世界の土台となるような平面的な部分を構成するためのオブジェクトである。また、上記図15で示したような流砂オブジェクト233はこの分類に含まれる。次に、地形オブジェクトは、上記フィールドオブジェクトで構成されたフィールド上に配置される地形や建造物のオブジェクトである。例えば、建物や橋などの建造物や、崖、山等の地形を構成するオブジェクトである。そのため、当該地形オブジェクト上にも、動作系オブジェクトや非動作系オブジェクトを配置することは可能である。つまり、フィールドオブジェクトおよび地形オブジェクトによって、ゲーム世界の土台的・地形的な部分について構成され、この上に動作系オブジェクトや非動作系オブジェクト、プレイヤオブジェクトが配置されることになる。
【0110】
動作系オブジェクトは、例えば、敵オブジェクトや、ノンプレイヤオブジェクトのような、主にキャラクタ的なオブジェクトであって、自律的に行動することを前提としたオブジェクトである。非動作系オブジェクトは、例えば、草や木等の植物系のオブジェクトや、比較的小さな石や岩等の背景的なオブジェクトであって、基本的に動き回らないこと(自律的には動かないこと)を前提とするオブジェクトである。また、上記図8等で示したようなクリスタルオブジェクト102やその他スイッチ的な役割を有するオブジェクトも非動作系オブジェクトとして扱う。
【0111】
次に、上記各エリアデータ126の構造について説明する。図21は、上記各エリアデータの一例として、第1エリアデータ126aのデータ構造の一例を示す図である。第1エリアデータ126aは、オブジェクト識別データ141と、現在世界データ142と、過去世界データ144と、等から構成されている。
【0112】
オブジェクト識別データ141は、各エリアを構成するオブジェクトおよび各エリアに登場する全てのオブジェクトを一意に識別するためのデータである。図22は、オブジェクト識別データ141のデータ構造の一例である。オブジェクト識別データ141は、オブジェクトNo1411、現在位置1412、種別データ1413の集合で構成されている。オブジェクトNo1411は、各オブジェクトを識別するために割り当てられた番号である。現在位置1412は、仮想ゲーム空間内における各オブジェクトの現在位置を示す3次元座標データであり、各オブジェクトの動作制御に伴って適宜更新される。種別データ1413は、上述したようなオブジェクトの種類を示すためのデータである。
【0113】
図21に戻り、次に、現在世界データ142は、当該第1エリアの「現在の世界」の状態について定義したデータである。現在世界データ142には、現在オブジェクトマスタ143が含まれている。その他、「現在の世界」という状態を定義したデータ(例えば、天候を示すデータや各オブジェクトの初期配置位置を示すデータ)も現在世界データ142に含まれる。現在オブジェクトマスタ143は、「現在の世界」におけるオブジェクトの状態や挙動等について定義したデータである。図23は、現在オブジェクトマスタ143のデータ構造の一例である。図23では、現在オブジェクトマスタ143をテーブル構造で示している。現在オブジェクトマスタ143は、オブジェクトNo1431、外観データ1432、挙動データ1433、その他データ1444の集合で構成されている。
【0114】
オブジェクトNo1431は、各オブジェクトを識別するために割り当てられた番号であり、上記オブジェクト識別データ141のオブジェクトNo1411と対応している。
【0115】
外観データ1432は、各オブジェクトの外観を定義したデータである。具体的には、各オブジェクトのポリゴンデータやテクスチャデータであるが、図23では、説明を判りやすくするため、直接的にどのような外観であるかを示す言葉を用いている。
【0116】
挙動データ1433は、各オブジェクトの挙動(例えば行動パターン)について定義したデータである。基本的には、自律的に行動することを前提とする動作系オブジェクトに対して定義されるものである。但し、上記流砂オブジェクト233のように、フィールドの特性(プレイヤオブジェクト101が沈む、燃える、泳ぐことが可能である等)を定義するデータとしても利用される。また、非動作系オブジェクトについても挙動を適宜定義してもよい。
【0117】
その他データ1444は、上記各データ以外のデータであり、例えば、鳴き声等の音声データ等である。
【0118】
なお、現在オブジェクトマスタ143は、実際にテーブルデータの形式で記憶されている必要はなく、このテーブルに相当する内容の処理が記憶されていればよい。
【0119】
図21に戻り、次に、過去世界データ144は、当該第1エリアの「過去の世界」の状態について定義したデータである。過去世界データ144には、過去オブジェクトマスタ145が含まれている。その他、「過去の世界」という状態を定義したデータも含まれる。過去オブジェクトマスタ145は、「過去の世界」におけるオブジェクトの状態や挙動等について定義したデータである。
【0120】
図24は、過去オブジェクトマスタ145のデータ構造の一例である。基本的に、上記現在オブジェクトマスタ143と同様のデータ構造であり、オブジェクトNo1451、外観データ1452、挙動データ1453、その他データ1454の集合で構成されている。各データの意義は上記現在オブジェクトマスタ143と同様であるが、その定義内容は、上記現在オブジェクトマスタ143とは必ずしも一致していない。例えば、オブジェクトNo1411(1431,1451)が”001”であるオブジェクトについては、「現在の世界」ではその外観が「流砂」として定義されている(図15の流砂オブジェクト233に相当)。一方、「過去の世界」では、その外観は「草地」として定義されている。また、オブジェクトNo1411が”003”のオブジェクトの例では、その外観については、「現在の世界」では「にわとり」として定義されているが、「過去の世界」では「モンスター」として定義されている。また、その挙動も異なった内容が定義されている。つまり、同じオブジェクトNoが割り振られているオブジェクトではあるが、その状態や挙動については、「現在の世界」と「過去の世界」とで異なっていることが示されている。なお、上記の例では、オブジェクトNo1411に対応するオブジェクトのデータが現在オブジェクトマスタ143および過去オブジェクトマスタ145に記憶されるようになっているが、例えば、「現実の世界」には存在するが「過去の世界」には存在しないオブジェクトがある場合には、当該オブジェクトのデータは、現在オブジェクトマスタ143には記憶されていないが、過去オブジェクトマスタ145には記憶されないようにしてもよい。
【0121】
図20に戻り、次に、プレイヤオブジェクトデータ127は、上記プレイヤオブジェクト101を定義するデータである。
【0122】
次に、作業領域128に記憶されるデータについて説明する。作業領域128には、操作データ129、転移領域データ130、転移フラグ131、転移タイマー132等が記憶される。
【0123】
操作データ129は、入力装置8からゲーム装置3へ送信されてくる操作データである。本実施形態では、入力装置8からゲーム装置3へ1/200秒に1回の割合で操作データが送信されるので、外部メインメモリ12に記憶される操作データ129はこの割合で更新される。本実施形態においては、外部メインメモリ12には、最新の(最後に取得された)操作データのみが記憶されればよい。
【0124】
転移領域データ130は、上述したような「過去の世界」として設定する転移領域221の範囲を示すための座標データである。プレイヤオブジェクト101以外のオブジェクトの位置がこの範囲内に含まれていれば、上記過去オブジェクトマスタ145が参照されてオブジェクト制御が行われ、この範囲内に含まれていなければ、現在オブジェクトマスタ143が参照されてオブジェクトの制御が行われることになる。
【0125】
転移フラグ131は、「過去の世界」を設定する必要があるか否かを示すフラグである。上述のように、本実施形態では「過去の世界」は制限時間付きで出現させている。そのため、転移フラグ131は、換言すれば、この制限時間内であるか否かを示すフラグといえる。本フラグがオンに設定されているときは、一部の領域が「過去の世界」として設定(「過去の世界」が出現)されている状態であり、オフに設定されているときは、「過去の世界」は設定されていない状態であることを示す。
【0126】
転移タイマー132は、上述したような制限時間を計測するためのタイマーである。本実施形態では、初期値として”0”が設定されており、上記クリスタルスイッチがオンにされたときにカウントアップが開始される。そして、当該タイマーが”20”を越えるまで「過去の世界」を出現させるものとする。
【0127】
その他、作業領域128には、ゲーム処理において一時的に必要となる各種フラグやデータが生成され記憶される。
【0128】
次に、図25〜図30を参照して、ゲーム装置3によって実行されるゲーム処理について説明する。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、ROM/RTC13に記憶されている起動プログラムを実行し、これによって外部メインメモリ12等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムが外部メインメモリ12に読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。図25に示すフローチャートは、ゲームプログラムが開始され、ゲームの舞台となる所定のエリア、例えば、荒野エリアが選択された後に行われるゲーム処理を示すフローチャートである。なお、図25に示すフローチャートにおいては、ゲーム処理のうち、主に、上述したような一部の領域を「過去の世界」に設定する/設定を解除する処理、および、オブジェクトの制御処理について説明し、本願発明とは直接関連しない他の処理については詳細な説明を省略する。
【0129】
図25において、まず、ステップS1において、上記選択されたエリアに対応する仮想ゲーム空間を構築するための初期設定処理が実行される。具体的には、ゲーム世界データ125から上記選択されたエリアに対応するエリアデータ126が読み込まれる。ここでは、第1エリアが選択され、第1エリアデータ126aが読み込まれた場合を例として、以下説明する。次に、現在オブジェクトマスタ143が参照されて(ゲーム開始時は「現在の世界」から始まる)、当該ゲームの舞台となるエリアを構成する各種オブジェクトが生成され、適宜仮想ゲーム空間内に配置される。また、プレイヤオブジェクト101も生成され、適宜配置される。その他、各種フラグの初期化等も実行される。次に、上記のようにして構築されたゲーム空間を表すゲーム画像が生成され、生成されたゲーム画像がモニタ2に表示される。以降、ステップS2〜S9の処理ループが1フレーム毎に繰り返されることによって、ゲームが進行していく。
【0130】
次に、ステップS2において、操作データ129が取得される。続くステップS3において、上記操作データ129に基づいてプレイヤオブジェクト101の動作制御が行われる。
【0131】
次に、ステップS4において、転移フラグ131がオンであるか否かが判定される。つまり、「過去の世界」が出現中の状態か否かが判定される。当該判定の結果、オンではないと判定されたときは(ステップS4でNO)、続くステップS5において、現在オブジェクトマスタ143が参照され、プレイヤオブジェクト101以外の各オブジェクトの動作が制御される。例えば、敵オブジェクトがプレイヤオブジェクト101に対して攻撃する等の制御が行われる。
【0132】
次に、ステップS6において、コリジョン判定及び各種ゲーム処理が実行される。具体的には、上記動作制御後のプレイヤオブジェクト101、および敵オブジェクト等の各種オブジェクトとの衝突(コリジョン)判定が行われる。例えば、攻撃がヒットしたか否かの判定や、流砂の上にプレイヤオブジェクト101が乗っているか(接触しているか否か)の判定が行われる。また、上述したようなクリスタルスイッチがオンにされたか否かも、クリスタルオブジェクト102とプレイヤオブジェクト101のコリジョン判定によって判定される。そして、その判定の結果に応じた各種ゲーム処理が実行される。ここで、上記クリスタルオブジェクト102とプレイヤオブジェクト101が接触した(スイッチがオンにされた)と判定されたときは、上記転移フラグ131がオンに設定される(その結果、次のフレームにかかる処理ループにおいて、上記ステップS4の判定でYESと判定され、後述のステップS9の処理に進むことになる)。また、クリスタルスイッチがオンにされたと判定されたときは、併せて、転移タイマー132がリセットされ、カウントアップが開始される。
【0133】
コリジョン判定および各種ゲーム処理が終われば、次に、ステップS7において、上述した各種動作制御やゲーム処理を反映した仮想ゲーム空間を仮想カメラで撮影(レンダリング)することによって、ゲーム画面が生成される。そして、当該生成されたゲーム画面がモニタ2に表示される。したがって、転移フラグ131がオンである場合には、「現実の世界」と「過去の世界」の2つの世界の状態がモニタ2の画面上に表示されることになる。
【0134】
次に、ステップS8において、ゲーム終了のための条件が満たされたか否かが判定される。例えば、プレイヤがゲーム終了のための操作を行ったか否かや、当該第1エリアをクリアしたか否か等が判定される。その結果、ゲーム終了のための条件が満たされていなければ(ステップS8でNO)、上記ステップS2に戻り処理が繰り返される。一方、ゲーム終了のための条件が満たされていれば(ステップS8でYES)、当該ゲーム処理は終了する。
【0135】
次に、上記ステップS4において転移フラグ131がオンであると判定されたときの処理(ステップS4でYES)について説明する。この場合は、ステップS9において、転移中処理が実行される。この処理は、「現在の世界」と「過去の世界」が併存している状態(ゲーム上は「過去の世界」が転移している状態)における処理である。図26は、上記ステップS9で示した転移中処理の詳細を示すフローチャートである。図26において、まず、ステップS21において、上記転移領域221の中心となる仮想ゲーム空間内の位置が決定される。
【0136】
次に、ステップS22において転移タイマー132が参照され、当該転移タイマー132が所定値以下であるか否かが判定される。本実施形態では、所定値は”20”であるとする。当該判定の結果、所定値以下であると判定されたときは(ステップS22でYES)、次に、ステップS23において、転移領域221の拡大が終了したか否かが判定される。本実施形態では、クリスタルオブジェクト102を中心として転移領域221が60フレーム(1秒)かけて円状に拡大していくような画面表示を行う。当該処理は、この拡大が終わったか否かを判定するものである。当該判定の結果、転移領域221の拡大が終了したと判定されたときは(ステップS23でYES)、後述のステップS26に処理が進められる。
【0137】
一方、転移領域221の拡大がまだ終了していないと判定されたときは(ステップS23でNO)、ステップS24において、上述のように60フレームかけて転移領域221が拡大していく様子が表示されるように、転移領域の大きさ(例えば半径)が適宜設定される。その後、後述のステップS26に処理が進められる。
【0138】
一方、上記ステップS22の結果、転移タイマー132が所定値以下ではないと判定されたときは(ステップS22でNO)、「過去の世界」を出現させる制限時間を越えたことになるため、ステップS25において、数フレームかけて転移領域221が縮小していく様子が表示されるように、転移領域の大きさ(例えば半径)が適宜設定される。
【0139】
次に、ステップS26において、上記の処理で決定された転移領域221の中心位置、および、転移領域221の大きさに基づいて、現在の処理ループにおける転移領域221の位置が確定され、当該位置を示すデータが転移領域データ130として記憶される。
【0140】
次に、ステップS27において、過去オブジェクトマスタ145が参照され、転移領域221内のフィールドオブジェクトを設定する処理が実行される。具体的には、まず、オブジェクト識別データ141が参照されて、転移領域221内に位置するフィールドオブジェクトのオブジェクトNo1411が抽出される。次に、当該オブジェクトNo1411を基にして過去オブジェクトマスタ145が検索され、対応するフィールドオブジェクトのデータが取得される。そして、当該取得されたデータに基づいて、適宜フィールドオブジェクトが生成され、配置される(現在世界を構築していたフィールドオブジェクトを置き換えられる)。上記図9の例でいうと、緑に覆われた地面を表すフィールドオブジェクトが転移領域221内に配置される。なお、フィールドオブジェクトを生成せずに、テクスチャデータのみを過去オブジェクトマスタ145で示されるデータに変更(つまり、テクスチャの貼り替え)するようにしてもよい。
【0141】
次に、ステップS28において、現在オブジェクトマスタ143が参照され、転移領域221外のフィールドオブジェクトを設定する処理が実行される。
この処理も、上記ステップS27と同様に、オブジェクト識別データ141から抽出されたフィールドオブジェクトのオブジェクトNo1411に基づいて現在オブジェクトマスタ143が検索される。そして、対応するデータが適宜取得され、配置される(あるいは、テクスチャの貼り替えのみ行うようにしても良い)。
【0142】
なお、上記ステップS27およびS28の処理については、全てのフィールドオブジェクトを処理対象とせずに、直前のフレームにおける転移領域221と今回のフレームにおける転移領域221の位置の差分を算出して、当該差分にかかる部分に位置するフィールドオブジェクトのみを処理対象としても良い。
【0143】
次に、ステップS29において、非動作系オブジェクト処理が実行される。当該処理は、植物系オブジェクトのような非動作系オブジェクト、および、岩や建造物等の地形オブジェクトに関する制御を実行する処理である。図27は、上記ステップS29で示した非動作系オブジェクト処理の詳細を示すフローチャートである。図27において、まず、ステップS41で、オブジェクト識別データ141が参照され、非動作系オブジェクト、あるいは、地形オブジェクトの中からいずれか1つのオブジェクトが、以下に説明する処理の処理対象として選択される。
【0144】
次に、ステップS42において、上記ステップS41で選択されたオブジェクト(以下、処理対象オブジェクトと呼ぶ)が、転移領域221の範囲内に存在しているか否かが判定される。これは、例えば、当該処理対象オブジェクトの現在位置1412と上記転移領域データ130で示される座標範囲とを照合することで判定される。また、その他、処理対象オブジェクトの現在位置1412が、上述したようなクリスタルオブジェクト102から所定の距離以内に在るか否か等で判定するようにしても良い。その結果、転移領域221内に存在していると判定されたときは(ステップS42でYES)、ステップS43において、当該処理対象オブジェクトの外観を変更する必要があるか否かが判定される。つまり、直前のフレームにかかる処理ループでは、処理対象オブジェクトが「現在の世界」にいたのか「過去の世界」にいたのかが判定される。「現在の世界」にいれば、外観変更の必要が有り、「過去の世界」にいれば、外観変更の必要はないことになる。これは、例えば、直前のフレームにかかる処理において、当該処理対象オブジェクトの位置が転移領域221内であったか否かを示す情報を外部メインメモリ12に記憶しておき、これを参照する等して判定される。当該判定の結果、外観の変更の必要がないと判定されたときは(ステップS43でNO)、後述するステップS49に処理が進められる。一方、外観の変更の必要があると判定されたときは(ステップS43でYES)、ステップS44において、過去オブジェクトマスタ145が参照されて、当該処理対象オブジェクトに対応する外観データ1452が取得される。そして、当該外観データ1452に基づいて「過去の世界」でのオブジェクトが生成され、「現在の世界」のものと置き換えられる。このとき、本実施形態では、画面表示上、瞬間的に表示が変更されるのではなく、「現在の世界」のオブジェクトが「過去の世界」のオブジェクトに変化する様子を示すアニメーション表示を行う。例えば、「現在の世界」には無かった樹木オブジェクトを表示する場合は、最初は小さいサイズの樹木オブジェクトを表示し、数フレームかけて大きくなっていくようなアニメーション表示が行われる。このような「入れ替えアニメーション」を設定するための処理がステップS45において実行される。その後、後述するステップS49に処理が進められる。
【0145】
一方、上記ステップS42の判定の結果、処理対象オブジェクトが転移領域221内に存在しないと判定されたときは(ステップS42でNO)、ステップS46において、当該処理対象オブジェクトの外観を変更する必要があるか否かが判定される。この場合は、直前のフレームにかかる処理ループにおいて、処理対象オブジェクトが「過去の世界」にいれば、外観変更の必要が有り、「現在の世界」にいれば、外観変更の必要はないことになる。当該判定の結果、外観の変更の必要がないと判定されたときは(ステップS46でNO)、後述するステップS49に処理が進められる。一方、外観の変更の必要があると判定されたときは(ステップS46でYES)、ステップS47において、現在オブジェクトマスタ143が参照されて、当該処理対象オブジェクトに対応する外観データ1432が取得される。そして、当該外観データ1432に基づいて「現在の世界」でのオブジェクトが生成され、「過去の世界」のものと置き換えられる。また、このとき、上述したような「入れ替えアニメーション」を設定するための処理もステップS48において実行される。
【0146】
次に、ステップS49において、処理対象オブジェクトの種類が地形オブジェクトであって、転移領域221の境界を跨ぐような位置にあるか否かが判定される。例えば、図28で示すような状態であるか否かが判定される。当該判定の結果、地形オブジェクトが転移領域221の境界を跨ぐような位置にあると判定されたときは(ステップS49でYES)、ステップS50において、境界に係る部分の地形オブジェクトの断面を加工するための断面加工処理が実行される。例えば、「現在の世界」には存在するが、「過去の世界」には存在しないような地形オブジェクトの場合、図29(A)に示すように、その断面が露出する状態になることがある。このような場合に、図29(B)に示すように、その断面部分に所定のテクスチャを貼り付けて、地形オブジェクトの中身が見えないようにするための処理が実行される。一方、処理対象となっている地形オブジェクトが転移領域221の境界を跨ぐような位置にはないと判定されたときは(ステップS49でNO)、上記ステップS50の処理はスキップされる。
【0147】
次に、ステップS51において、オブジェクト識別データ141内の非動作系オブジェクトおよび地形オブジェクトの全てについて上述したような処理が実行されたか否かが判定される。その結果、まだ未処理のオブジェクトが残っていれば(ステップS51でNO)、上記ステップS41に戻り、未処理のオブジェクトのいずれかが選択されて上記のような処理が繰り返される。一方、非動作系オブジェクトおよび地形オブジェクトの全てを処理したと判定されたときは(ステップS51でYES)、当該非動作系オブジェクト処理は終了する。
【0148】
図26に戻り、ステップS29の処理が終われば、次に、ステップS30において、動作系オブジェクト処理が実行される。この処理は、上述したような動作系オブジェクトを制御するための処理である。図30は、上記ステップS30で示した動作系オブジェクト処理の詳細を示すフローチャートである。まず、ステップS61において、オブジェクト識別データ141が参照され、動作系オブジェクトの中からいずれか1つのオブジェクトが、以下に説明する処理の処理対象として選択される。
【0149】
次に、ステップS62において、処理対象オブジェクトが、転移領域221の範囲内に存在しているか否かが判定される。その結果、転移領域221内に存在していると判定されたときは(ステップS62でYES)、ステップS63において、当該処理対象オブジェクトの外観を変更する必要があるか否かが判定される。当該判定の結果、外観の変更の必要がないと判定されたときは(ステップS63でNO)、後述するステップS66に処理が進められる。一方、外観の変更の必要があると判定されたときは(ステップS63でYES)、ステップS64において、過去オブジェクトマスタ145が参照されて、当該処理対象オブジェクトに対応する外観データ1452が取得される。そして、当該外観データ1452に基づいて「過去の世界」でのオブジェクトが生成され、「現在の世界」のものと置き換えられる。更に、上述したような「入れ替えアニメーション」を設定するための処理がステップS65において実行される。
例えば、上記図13および図14で示したような、「ニワトリ」が「モンスター」に変化する場合は、ニワトリがその場で回転しながら小さくなっていき、モンスターが回転しながら大きくなっていくようなアニメーションが表示されるような設定が行われる。
【0150】
次に、ステップS66において、処理対象オブジェクトのオブジェクトNo1411を基にして過去オブジェクトマスタ145の挙動データ1453が参照される。そして、当該挙動データ1453に基づいて、当該処理対象オブジェクトの動作が制御される。その後、後述するステップS71に処理が進められる。
【0151】
一方、上記ステップS62の判定の結果、処理対象オブジェクトが転移領域221内に存在しないと判定されたときは(ステップS62でNO)、ステップS67において、当該処理対象オブジェクトの外観を変更する必要があるか否かが判定される。当該判定の結果、外観の変更の必要がないと判定されたときは(ステップS67でNO)、後述するステップS70に処理が進められる。一方、外観の変更の必要があると判定されたときは(ステップS67でYES)、ステップS68において、現在オブジェクトマスタ143が参照されて、当該処理対象オブジェクトに対応する外観データ1432が取得される。そして、当該外観データ1432に基づいて「現在の世界」でのオブジェクトが生成され、「過去の世界」のものと置き換えられる。また、このとき、上述したような「入れ替えアニメーション」を設定するための処理もステップS69において実行される。
【0152】
次に、ステップS70において、処理対象オブジェクトのオブジェクトNo1411を基にして現在オブジェクトマスタ143の挙動データ1433が参照される。そして、当該挙動データ1433に基づいて、当該処理対象オブジェクトの動作が制御される。
【0153】
次に、ステップS71において、オブジェクト識別データ141内の動作系オブジェクトの全てについて上述したような処理が実行されたか否かが判定される。その結果、まだ未処理の動作系オブジェクトが残っていれば(ステップS71でNO)、上記ステップS61に戻り、未処理の動作系オブジェクトのいずれかが選択されて上記のような処理が繰り返される。一方、全ての動作系オブジェクトを処理したと判定されたときは(ステップS71でYES)、当該動作系オブジェクト処理は終了する。
【0154】
図26に戻り、ステップS30の処理が終われば、次に、ステップS31において、コリジョン判定及び各種ゲーム処理が実行される。この処理は、上記ステップS6の処理内容と同様である。但し、プレイヤオブジェクト101とフィールドオブジェクトとのコリジョン判定およびゲーム処理に関しては、プレイヤオブジェクト101が転移領域221内に存在するか否かで、その処理内容は異なることになる。すなわち、プレイヤオブジェクト101が転移領域221内にいるときは、過去オブジェクトマスタ145が参照され、転移領域221内にいないときは、現在オブジェクトマスタ143が参照される。そして、プレイヤオブジェクト101と接触するフィールドオブジェクトに対応する挙動データ1433、あるいは挙動データ1453が適宜取得されて、「現在の世界」または「過去の世界」のフィールドの特性に応じたゲーム処理が実行される。以上で、転移中処理は終了する。転移中処理が終了すれば、上述したステップS7に処理が進められ、ゲーム画面が表示されることになる。以上で、本実施形態にかかるゲーム処理の詳細説明を終了する。
【0155】
このように、本実施形態では、1つのゲーム空間に対して2つの世界状態を定義したデータ(現在世界データ142、過去世界データ144)を用意し、2つの世界状態を併存させた状態をゲーム画面として表示している。これにより、プレイヤは2つの世界状態を見ながらゲームを進行させることができる。その結果、例えば、通行できないとプレイヤが考えていた場所が通行可能となったり、おとなしい動物とプレイヤが思っていたオブジェクトがプレイヤオブジェクトに襲いかかってくる等、ゲーム展開の意外性を高めて、ゲームの興趣性を高めることができる。
【0156】
また、上述の実施形態のように、1つのゲーム空間内に対して2つの世界状態を併存させ、このゲーム空間を仮想カメラで撮影したものをゲーム画面として表示している。そのため、例えば、上記のような2つの世界を別々のゲーム空間として構築して別々にレンダリング等を行い、最終的に画像を合成するような処理を行う場合に比べると、処理負荷を軽くすることができる点で有利である。
【0157】
なお、上述した実施形態では、「世界状態」の例として「現在の世界」と「過去の世界」の2つの状態を挙げたが、世界状態の数は2つに限るものではなく、3つ以上の世界状態(例えば、更に「未来の世界」や、「過去の更に過去の世界」等)を定義するようにしてもよい。また、ゲーム画面についても、例えば図31に示すように、3つの世界状態を1つのゲーム画面に表示するようにしても良い。
【0158】
また、仮想ゲーム空間内において上記のような2つの世界状態が定義されている場所については、仮想ゲーム空間の全体に対して定義するようにしても良いし、仮想ゲーム空間内の一部の場所のついてのみ2つの世界状態を定義するようにしてもよい。
【0159】
また、転移領域221の大きさに関し、上記実施形態では、その大きさは予め定められていたが、この転移領域221の大きさをプレイヤの操作に応じて変化可能に構成してもよい。
【0160】
その他、上記動作系オブジェクトの挙動や状態の制御に関しては、上述したような制御方法の他、例えば、以下のように制御しても良い。まず、上述したフィールドオブジェクトおよび地形オブジェクトに、個別に「地形コード」を割り当てておく(この「地形コード」は重複したコードが割り当てられてもよい)。そして、プレイヤオブジェクト101や動作系オブジェクトが位置している場所の「地形コード」に基づいて、その挙動や外観を変化させるようにしてもよい。例えば、上記フィールドオブジェクトおよび地形オブジェクトについては、図32に示すテーブルのような内容のデータを定義しておく。図32では、フィールドオブジェクトや地形オブジェクトを識別するためのオブジェクトNo501と、地形コード502とが対応づけられている。そして、プレイヤオブジェクトおよび動作系オブジェクト(必要であれば非動作系オブジェクトも)については、図32に示すテーブルのようなデータを定義しておく。図33では、1つのオブジェクト(オブジェクトNo511)について、地形コード512、外観データ513、および挙動データ514の組み合わせが複数対応付けられている。このようなデータを定義しておいたうえで、プレイヤオブジェクトおよび動作系オブジェクトの位置する場所の地形コード502を図32で示したテーブル相当のデータから取得する。次に、当該地形コード502に対応する挙動データ514等を、図33で示したテーブル相当のデータから取得する。そして、当該取得したデータに基づき、プレイヤオブジェクト101および動作系オブジェクト制御するようにすることが考えられる。
【0161】
また、その他、プレイヤの操作に応じて、上述した仮想3次元空間を鳥瞰した2次元画像を「マップ」画面として表示するようにしてもよい。そして、当該「マップ」の内容としては、上記過去オブジェクトマスタ145に基づいて生成される「過去の世界」のマップを表示するようにしても良い。そして、プレイヤを、当該「過去の世界」のマップを参照しながら「現在の世界」内でプレイヤオブジェクト101を移動させ、所望の場所で上述したような転移領域221を発生させることでゲームを進行させることを可能としても良い。この場合は、上述したクリスタルスイッチに相当するオブジェクトは、プレイヤオブジェクト101が持ち運び可能なオブジェクトとして設定することが好ましい。
【0162】
上記実施形態においては、「現実の世界」と「過去の世界」の2つの世界状態を表示するための一連の処理が単一の装置(ゲーム装置3)において実行される場合を説明したが、他の実施形態においては、一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。さらには、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。
【産業上の利用可能性】
【0163】
本発明にかかるゲームプログラム、ゲームシステム、ゲーム装置およびゲーム制御方法は、ゲーム展開の意外性を高めたゲームを提供することができ、各種ゲーム装置、ゲーム処理が実行される携帯型情報端末やパーソナルコンピュータ等に有用である。
【符号の説明】
【0164】
1…ゲームシステム
2…モニタ
2a…スピーカ
3…ゲーム装置
4…光ディスク
5…コントローラ
7…ジャイロセンサユニット
8…入力装置
10…CPU
11…システムLSI
11a…入出力プロセッサ
11b…GPU
11c…DSP
11d…VRAM
11e…内部メインメモリ
12…外部メインメモリ
13…ROM/RTC
14…ディスクドライブ
15…AV−IC
16…AVコネクタ
17…フラッシュメモリ
18…無線通信モジュール
19…無線コントローラモジュール
20…拡張コネクタ
21…外部メモリカード用コネクタ
22…アンテナ
23…アンテナ
24…電源ボタン
25…リセットボタン
26…イジェクトボタン
30…基板
31…ハウジング
32…操作部
33…コネクタ
34…LED
35…撮像情報演算部
36…通信部
37…加速度センサ
38…赤外線フィルタ
39…レンズ
40…撮像素子
41…画像処理回路
42…マイコン
43…メモリ
44…無線モジュール
45…アンテナ
48…バイブレータ
49…スピーカ
53…プラグ
54…マイコン
55…2軸ジャイロセンサ
56…1軸ジャイロセンサ

【特許請求の範囲】
【請求項1】
仮想空間内に構成されたゲーム世界においてプレイヤオブジェクトを操作するゲームを実行するゲーム装置のコンピュータに実行させるためのゲームプログラムであって、
前記仮想空間内に第1の領域を設定する第1領域設定手段と、
前記仮想空間内に第2の領域を設定する第2領域設定手段と、
前記仮想空間内の少なくとも1部にかかる前記ゲーム世界の第1の状態を構成する第1構成情報に基づいて、前記第1領域設定手段により設定された第1の領域内に配置される第1オブジェクトを生成する第1オブジェクト生成手段と、
前記第1構成情報が適用される前記仮想空間内の所定の位置と同じ位置について前記第1の状態とは異なる第2の状態を構成する第2構成情報に基づいて、前記第2領域設定手段により設定された第2の領域内に配置される第2オブジェクトを生成する第2オブジェクト生成手段として機能させる、ゲームプログラム。
【請求項2】
プレイヤによる操作装置への操作に応じて、前記第1の領域を動的に変化させる第1領域変化手段として前記コンピュータをさらに機能させる、請求項1に記載のゲームプログラム。
【請求項3】
プレイヤによる操作装置への操作に応じて、前記第1の領域の基準位置を決定する基準位置決定手段として前記コンピュータをさらに機能させ、
前記第1領域設定手段は、前記基準位置を基準として前記第1の領域を設定する、請求項1または2に記載のゲームプログラム。
【請求項4】
前記第1オブジェクトおよび第2オブジェクトは前記ゲーム世界のフィールドおよび地形を構成するためのフィールド地形オブジェクトであり、
前記第1オブジェクト生成手段により生成されたフィールド地形オブジェクトと前記第2オブジェクト生成手段により生成されたフィールド地形オブジェクトとに基づいて、前記地形オブジェクト以外のプレイヤオブジェクトまたはノンプレイヤオブジェクトが配置可能なゲーム世界のフィールドおよび地形を生成するゲーム世界生成手段として前記コンピュータをさらに機能させる、請求項1ないし3のいずれか1項に記載のゲームプログラム。
【請求項5】
前記第1オブジェクトおよび前記第2オブジェクトにはそれぞれ識別情報が設定されており、
前記プレイヤオブジェクトまたはノンプレイヤオブジェクトが配置されている第1オブジェクトあるいは第2オブジェクトの識別情報を取得し、取得した識別情報に基づいて、前記プレイヤオブジェクトまたはノンプレイヤオブジェクトの挙動または状態を決定する決定手段として前記コンピュータをさらに機能させる、請求項4に記載のゲームプログラム。
【請求項6】
前記ゲーム世界のフィールドまたは地形上に配置された前記プレイヤオブジェクトの動作をプレイヤの操作に応じて制御するプレイヤオブジェクト動作制御手段として前記コンピュータを更に機能させる、請求項4に記載のゲームプログラム。
【請求項7】
前記ノンプレイヤオブジェクトは、前記第1の領域内に配置されるときと前記第2の領域内に配置されるときとで異なる属性が設定される、請求項4に記載のゲームプログラム。
【請求項8】
前記第1構成情報に基づいて前記ゲーム世界を表す2次元マップを生成する2次元マップ生成手段、
前記生成された2次元マップを表示する2次元マップ表示手段として前記コンピュータを更に機能させる、請求項1ないし8のいずれか1項に記載のゲームプログラム。
【請求項9】
前記ゲームの実行開始時は、前記ゲーム世界は前記第2の領域として設定された状態でゲームが開始され、
前記第1領域設定手段は、前記第2の領域として設定されている領域のうち、少なくとも一部の領域についての前記第1の領域への設定をプレイヤの操作に応じて開始する、請求項1ないし8のいずれか1項に記載のゲームプログラム。
【請求項10】
前記第1領域設定手段は、前記第1の領域の設定を開始するための設定開始オブジェクトが前記ゲーム世界の所定の場所に配置されたときに前記第1の領域の設定を開始する、請求項1ないし8のいずれか1項に記載のゲームプログラム。
【請求項11】
前記第1領域設定手段は、前記設定開始オブジェクトの位置を基準として前記第1の領域の位置を設定する、請求項10に記載のゲームプログラム。
【請求項12】
前記設定開始オブジェクトは、プレイヤの操作に応じて動作が制御される前記プレイヤオブジェクトを介して移動可能なオブジェクトである、請求項10に記載のゲームプログラム。
【請求項13】
前記第1領域設定手段は、前記設定開始オブジェクトに対する前記プレイヤオブジェクトの所定の行動が行われたときに、前記第1の領域の設定を開始する、請求項10に記載のゲームプログラム。
【請求項14】
前記第1領域手段によって前記第1の領域が設定されてから所定時間経過したときに当該第1の領域の設定を解除する領域解除手段として前記コンピュータを更に機能させる、請求項1ないし13のいずれか1項に記載のゲームプログラム。
【請求項15】
前記第1領域手段によって第1の領域が設定されたとき、当該第1の領域と前記第2の領域の境界の少なくとも1部が含まれるようなゲーム画面を生成して表示するゲーム画面表示手段として前記コンピュータを更に機能させる、請求項1ないし14のいずれか1項に記載のゲームプログラム。
【請求項16】
前記第1の状態および前記第2の状態の少なくともいずれかに存在するオブジェクトの前記仮想空間内の位置を取得する位置取得手段と、
前記位置取得手段によって取得された位置が第1の領域内か第2の領域内にあるかを判別する領域判別手段として前記コンピュータを更に機能させ、
前記第1オブジェクト生成手段は、前記領域判別手段によって前記取得された位置が第1の領域内にあると判別されたときに、前記第1構成情報に基づいて、前記第1オブジェクトを生成し、
前記第2オブジェクト生成手段は、前記領域判別手段によって前記取得された位置が第2の領域内にあると判別されたときに、前記第2構成情報に基づいて、前記第2オブジェクトを生成する、請求項1に記載のゲームプログラム。
【請求項17】
仮想空間内に構築されたゲーム世界においてプレイヤオブジェクトを操作するゲームを実行するゲームシステムであって、
前記仮想空間内に第1の領域を設定する第1領域設定手段と、
前記仮想空間内に第2の領域を設定する第2領域設定手段と、
前記仮想空間内の少なくとも1部にかかる前記ゲーム世界の第1の状態を構成する第1構成情報に基づいて、前記第1領域設定手段により設定された第1の領域内に配置される第1オブジェクトを生成する第1オブジェクト生成手段と、
前記仮想空間において前記第1構成情報が適用される所定の位置と同じ位置について前記第1の状態とは異なる第2の状態を構成する第2構成情報に基づいて、前記第2領域設定手段により設定された第2の領域内に配置される第2オブジェクトを生成する第2オブジェクト生成手段とを備える、ゲームシステム。
【請求項18】
仮想空間内に構築されたゲーム世界においてプレイヤオブジェクトを操作するゲームを実行するゲーム装置であって、
前記仮想空間内に第1の領域を設定する第1領域設定手段と、
前記仮想空間内に第2の領域を設定する第2領域設定手段と、
前記仮想空間内の少なくとも1部にかかる前記ゲーム世界の第1の状態を構成する第1構成情報に基づいて、前記第1領域設定手段により設定された第1の領域内に配置される第1オブジェクトを生成する第1オブジェクト生成手段と、
前記仮想空間において前記第1構成情報が適用される所定の位置と同じ位置について前記第1の状態とは異なる第2の状態を構成する第2構成情報に基づいて、前記第2領域設定手段により設定された第2の領域内に配置される第2オブジェクトを生成する第2オブジェクト生成手段とを備える、ゲームプログラム。
【請求項19】
仮想空間内に構築されたゲーム世界においてプレイヤオブジェクトを操作するゲームを実行するゲーム装置のゲーム制御方法であって、
前記仮想空間内に第1の領域を設定する第1領域設定ステップと、
前記仮想空間内に第2の領域を設定する第2領域設定ステップと、
前記仮想空間内の少なくとも1部にかかる前記ゲーム世界の第1の状態を構成する第1構成情報に基づいて、前記第1領域設定手段により設定された第1の領域内に配置される第1オブジェクトを生成する第1オブジェクト生成ステップと、
前記仮想空間において前記第1構成情報が適用される所定の位置と同じ位置について前記第1の状態とは異なる第2の状態を構成する第2構成情報に基づいて、前記第2領域設定手段により設定された第2の領域内に配置される第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

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

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate