ゲームプログラム
【課題】 表示された複数の画像を配置することによって、仮想空間に存在するオブジェクトの全体像を推測しつつパズルを解くことができるパズルゲームのゲームプログラムを提供する。
【解決手段】 操作信号に応じて素片を移動させる態様で表示し、複数の素片が配置されたときに整合性データを参照してパズルゲームに正答したか否かを判断し、パズルゲームに正答したときには、複数の素片によってオブジェクトが整合して仮想空間に存在する態様で表示手段において表示する。
【解決手段】 操作信号に応じて素片を移動させる態様で表示し、複数の素片が配置されたときに整合性データを参照してパズルゲームに正答したか否かを判断し、パズルゲームに正答したときには、複数の素片によってオブジェクトが整合して仮想空間に存在する態様で表示手段において表示する。
【発明の詳細な説明】
【技術分野】
【0001】
仮想空間に存在するオブジェクトを表示してパズルを解くゲームプログラムに関する。
【背景技術】
【0002】
従来、観賞する者に所定の映像を視認させる映像シミュレーション装置があった。この従来の映像シミュレーション装置は、観賞する者の全体を覆うように形成されたスクリーンに各種の画像を表示することによって、観賞する者が、その場所に実際にいるという錯覚を起こす程に高い臨場感を味わえるようにしたものであった(たとえば、特許文献1参照)。
【0003】
また、プレイヤの競技姿勢を検出して、検出した競技姿勢に応じて又は任意に、ディスプレイ装置に表示する映像の視点を変化させて三次元立体画像を表示する遊技装置があった(たとえば、特許文献2参照)。
【0004】
さらに、車両に乗ってプレイするレースゲームを行うゲーム装置もあった。このゲーム装置は、三次元空間で車両が移動するときの車両の傾きをリアルタイムで反映して、三次元立体画像を表示するものであった。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平7−129789号公報
【特許文献2】特開平7−116343号公報
【特許文献3】特開平10−21425号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来の映像シミュレーション装置は、観賞する者の全体を覆うように形成されたスクリーンを要していたため、装置全体が大きくならざるを得なかった。ゲームセンタなどの店舗のように、一定の位置に設置せざるを得なかった。また、観賞する者が操作して進めるものではなかったため、観賞する者を積極的に参加させることができず、飽きられやすい可能性があった。
【0007】
また、プレイヤの競技姿勢に応じて又は任意に視点を変化させる遊技装置は、視点を異ならしめた単一の三次元立体画像をディスプレイに表示するものであり、プレイヤは、表示された単一の画像のみを視認してゲームを進めるものであった。このため、各種の視点の方向からの情報を用いてオブジェクトを推定するものではなかった。
【0008】
さらに、三次元空間で車両が移動するときの車両の傾きをリアルタイムで反映して、三次元立体画像を表示するものも、同様に、単一の画像のみを視認してゲームを進めるものであり、各種の視点の方向からの情報を用いてオブジェクトを推定するものではなかった。
【0009】
本発明は、上述の点に鑑みてなされたものであり、その目的とするところは、表示された複数の画像を配置することによって、仮想空間に存在するオブジェクトの全体像を推測しつつパズルを解くことができるパズルゲームのゲームプログラムを提供することにある。
【課題を解決するための手段】
【0010】
本発明の実施の形態に係る特徴は、
パズルゲームを実行するためのゲームプログラムであって、
複数の素片と、前記複数の素片が配置される集合立体とが表示される表示手段と、
プレイヤによって操作され、操作に応じた操作信号を発する操作手段と、
前記操作信号から発せられた前記操作信号に応じて、以下の(1−1)〜(1−3)の処理を実行して、前記複数の素片と前記集合立体とを前記表示手段に表示する制御手段と、
前記パズルゲームの正答を定めた整合性データと、前記複数の素片の各々に表示される画像の画像データと、が記憶された記憶手段と、を有するゲーム装置において実行され、
前記整合性データは、前記パズルゲームが正答であるときに前記集合立体に並べられた素片の配置の関係を示すデータであり、
前記画像データは、前記表示手段において、仮想空間にオブジェクトが存在する態様で前記複数の素片の各々で表示するためのデータであることである。
(1−1) 前記操作信号に応じて、前記素片を移動させる態様で表示する処理、
(1−2) 前記複数の素片が並べられたときに、前記整合性データを参照して、パズルゲームに正答したか否かを判断する処理、及び
(1−3) 前記パズルゲームに正答したときには、前記複数の素片によって前記オブジェクトが整合して仮想空間に存在する態様で前記表示手段において表示する処理。
【0011】
この構成によれば、予め定められた整合性データを用いてパズルゲームに正答したか否かを判断するので、正答したか否かを迅速かつ的確に判別することができる。また、パズルゲームに正答したときに表示されるであろうオブジェクトの全体の画像を推測しながら、素片を集合立体に配置してパズルゲームを解いていくので、新しい立体組み立てパズルを提供することができる。さらに、パズルゲームに正答したときには、仮想空間においてオブジェクトの全体が整合して表示されるので、パズルに正答したか否かを容易に判断することができる。
【0012】
また、本発明の実施の形態に係る特徴は、上述した構成において、
前記複数の素片の各々は、平面形状を有する平面素片であり、
前記画像データは、前記平面素片の表面に沿って前記オブジェクトを連続的に移動する態様で表示するための動画データであることである。
【0013】
この構成によれば、オブジェクトは移動する態様で平面素片の表面に沿って表示されるので、時間的に変化する画像が平面素片に表示され、正答となるオブジェクトの画像を推測することが困難になり面白みのあるパズルゲームを提供することができる。
【0014】
本発明は、これらに限定されるものではないが、実施の形態を参照しつつ、本発明のプログラムをゲームシステム100で実行する場合の具体例を簡単に説明する。
【0015】
例えば、集合立体として、本実施の形態の図10に示すような多面体(正六面体)を採用した場合に、前記素片を前記操作手段で操作して、前記整合性データと一致させて正答となるように素片の画像を移動させることで、ゲームシステム100の表示手段(ディスプレイ134)上でゲームが実行される。そして、前記表示手段に表示された前記素片は、前記正六面体の面の各々と同一形状であり、オブジェクトを移動させる映像を表示するスクリーンとして機能する。本発明のゲームプログラムを、ゲームシステム100の制御手段であるCPU140によって実行することで、このスクリーンとして機能する素片上でオブジェクトが連続的に移動する態様を、前記素片ごとに割り当てられたムービデータ(画像データ)を再生することによって実現する。
【0016】
そして、このスクリーンとして機能する素片に表示する画像データは、たとえば、図16のように、オブジェクトであるフィッシュ(魚)が矩形状の各素片の辺を跨って移動する態様で表示されるように生成されて、ゲームシステム100の内部メインメモリ142eや外部メインメモリ146に記憶されている。この内部メインメモリ142eや外部メインメモリ146に記憶される画像データは、プレイヤに正答を推測させるために、正答となる素片と素片とを連結する辺を跨って動的にオブジェクトが移動する画像データとして予め用意しておくことが好ましい。
【0017】
つまり、素片内のみを移動するオブジェクトを表示する部分的な画像データを、素片の各々に割り当てるのではなく、素片に跨ってオブジェクトが移動する態様の全体的な画像データを予め用意しておくことが、パズルを完成させてプレイヤに解き易くするための重要な要素となる。例えば、後述する図15の(b)の素片Aと素片Bとに示したように、素辺Bの左辺近くのオブジェクトとしての魚F2の頭部分が欠如しているが、その頭部分に相当するオブジェクトとしての魚F1の頭が素片Aに表示されていることから、素片Aと素片Bとを連結させるように操作することが正答になるであろうと、プレイヤに推測させることができる。
【0018】
さらに、本発明の実施の形態に係る特徴は、上述した構成において、
前記複数の素片の各々は、平面形状を有する平面素片であり、
前記集合立体は、前記集合立体の外形を画定しかつ透視可能な複数の立体表面を有し、
前記画像データは、前記集合立体の内側の仮想空間に存在するオブジェクトを前記複数の立体表面の各々を介して仮想カメラによって撮影したものとして得られた三次元立体画像データであって、
前記(1−1)の処理は、
(3−1) 前記操作信号に応じて平面素片を移動させて複数の立体表面のいずれかに並べる処理であり、
前記(1−3)の処理は、
(3−3) 前記パズルゲームに正答したときには、前記集合立体に並べられた前記平面素片によって前記集合立体の内側の仮想空間においてオブジェクトが整合して存在する態様で前記表示手段において表示する処理であることである。
【0019】
この構成によれば、パズルゲームに正答したときには、集合立体の内側に形成された仮想空間にオブジェクトが整合して存在するように表示されるので、現実感のあるオブジェクトの画像を表示することができるとともに、現実感のある画像を見るためにパズルゲームに正答しようとする動機をプレイヤに与えることができる。また、三次元立体画像データを用いたことによって立体的なオブジェクトの画像を表示できるので、正答となるオブジェクトの全体の形状や大きさや色などを推測することを難しくして面白みのあるパズルゲームを提供することができる。
【0020】
さらにまた、本発明の実施の形態に係る特徴は、上述した構成において、
前記複数の素片の各々は、立体形状を有する立体素片であり、
前記集合立体は、前記集合立体の外形を画定しかつ透視可能な複数の立体表面を有し、
前記画像データは、前記集合立体の内側の仮想空間に存在するオブジェクトを前記複数の立体表面の各々を介して仮想カメラによって撮影したものとして得られた三次元立体画像データであって、
前記(1−1)の処理は、
(4−1) 前記操作信号に応じて、立体素片を移動させて前記集合立体を組み立てる処理であり、
前記(1−3)の処理は、
(4−3) 前記パズルゲームに正答したときには、前記集合立体として組み立てられた前記立体素片によって、前記集合立体の内側の仮想空間においてオブジェクトが整合して存在する態様で前記表示手段において表示する処理であることである。
【0021】
この構成によれば、立体形状を有する立体素片によって集合立体を組み立てるので、パズルをより難しくすることができる。また、三次元立体画像データを用いたことにより、集合立体だけでなく立体素片にも立体的なオブジェクトの画像を表示できるので、現実感のある画像を表示して、正答となるオブジェクトの全体の形状や大きさや色などを推測することをさらに難しくして、より面白みのあるパズルゲームを提供することができる。
【0022】
また、本発明の実施の形態に係る特徴は、上述した構成において、
仮想カメラは、前記集合立体の高さ方向の複数の位置に配置された複数の仮想撮影カメラであり、
前記三次元立体画像データは、前記複数の仮想撮影カメラの各々に応じた高さで前記集合立体の中心からの距離を一定に保ちつつ前記複数の仮想撮影カメラの各々が前記集合立体を周回して撮影したデータであることである。
【0023】
この構成によれば、三次元立体画像データは、集合立体を仮想的に周回して撮影したものとして生成した画像データであるので、複数の立体素片の各々に表示する画像を、回転角度方向を異ならしめて表示することができる。このようにしたことにより、複数の立体素片の並びだけでなく、複数の立体素片の各々の回転角度も調整しつつパズルを解く必要があるので、正答となるオブジェクトの全体の形状や大きさや色などの推測をさらに難しくしたパズルゲームを提供することができる。
【発明の効果】
【0024】
表示された複数の画像を配置することによって、仮想空間に存在するオブジェクトの全体像を推測しつつパズルを解くことができるパズルゲームを提供することができる。
【図面の簡単な説明】
【0025】
【図1】本発明の実施の形態におけるゲームシステム100を示す概略図である。
【図2】ゲームシステム100の電気的な構成を示すブロック図である。
【図3】コントローラ122の外観を示す図である。
【図4】図3に示すコントローラ122の電気的な構成を示すブロック図である。
【図5】第1の実施の形態のパズルゲームであり、CPU140によって実行されるパズルゲームの基本処理を示すフローチャートである。
【図6】第1の実施の形態のパズルゲームの初期化を行うためのサブルーチンを示すフローチャートである。
【図7】第1の実施の形態のパズルゲームのコントローラ操作のためのサブルーチンを示すフローチャートである。
【図8】第1の実施の形態のパズルゲームのディスプレイ表示のためのサブルーチンを示すフローチャートである。
【図9】第1の実施の形態のパズルゲームのテーブル更新の処理のためのサブルーチンを示すフローチャートである。
【図10】第1の実施の形態のパズルゲームで用いる立方体を示す斜視図である。
【図11】第1の実施の形態のパズルゲームで用いる動画データの表示領域(a)と、表示面の面番号及び表示面の各々を構成する辺の辺番号(b)とを示す図である。
【図12】第1の実施の形態のパズルゲームで用いる整合性成立テーブルを示す表である。
【図13】第1の実施の形態のパズルゲームで用いる貼り付け結果テーブルを示す表である。
【図14】第1の実施の形態のパズルゲームで用いる判定用テーブルを示す表である。
【図15】第1の実施の形態のパズルゲームの例を示す図である。
【図16】第1の実施の形態のパズルゲームの例を示す図である。
【図17】第2の実施の形態のパズルゲームの例を示す図である。
【図18】第2の実施の形態のパズルゲームの例を示す図である。
【図19】第3の実施の形態のパズルゲームの初期化を行うためのサブルーチンを示すフローチャートである。
【図20】第3の実施の形態のパズルゲームのコントローラ操作のためのサブルーチンを示すフローチャートである。
【図21】第3の実施の形態のパズルゲームのディスプレイ表示のためのサブルーチンを示すフローチャートである。
【図22】第3の実施の形態パズルゲームのテーブル更新の処理のためのサブルーチンを示すフローチャートである。
【図23】第3の実施の形態のパズルゲームで用いる整合性成立テーブルを示す表である。
【図24】第3の実施の形態のパズルゲームで用いる判定用テーブルを示す表である。
【図25】第3の実施の形態のパズルゲームの例を示す図である。
【図26】第3の実施の形態のパズルゲームの例を示す図である。
【発明を実施するための形態】
【0026】
<<<<本実施の形態によるゲームプログラムの概略>>>>
【0027】
本発明の実施の形態に係る特徴は、
パズルゲームを実行するためのゲームプログラムであり、表示手段と操作手段と制御手段と記憶手段と、を有するゲーム装置において実行されるゲームプログラムである。
【0028】
表示手段には、複数の素片と集合立体とが表示される。素片は、面で構成された面素片や、立体で構成された立体素片がある。面素片や立体素片を構成する面は、平面でも曲面でもよい。ゲームを進めることによって、集合立体に複数の素片が配置される。
【0029】
操作手段は、プレイヤによって操作されることができ、そのプレイヤによる操作に応じた操作信号を発する。
【0030】
制御手段は、操作信号から発せられた操作信号に応じて、後述する(1−1)〜(1−3)の処理を実行する。さらに、制御手段は、これらの(1−1)〜(1−3)の処理を実行することによって、上述した複数の素片と集合立体とを表示するための表示制御信号を表示手段に出力する。
【0031】
記憶手段は、整合性データと画像データとを記憶する。整合性データは、パズルゲームの正答を定めたデータであり、予め定められたデータである。具体的には、整合性データは、集合立体に並べられた素片の配置の関係を示すデータであり、パズルゲームが正答であるときの配置の関係を示すデータである。この素片の配置は、素片の並び方や組合せや素片の向きなどの情報であり、整合性データは、パズルゲームが正答であるときの素片の配置を示す情報である。この整合性データを参照することによって、パズルゲームに正答できたか否かを判断することができる。
【0032】
この整合性データは、素片が集合立体に並べられたときに、隣り合うべき素片の配置の関係を示すデータであるのが好ましい。さらに、整合性データは、素片そのものを識別するための識別情報と、素片が面素片である場合には、面素片を構成する辺を識別する識別情報と、素片が立体素片である場合には、立体素片を構成する面や辺を識別する識別情報とからなるものが好ましい。このような情報を用いることによって、パズルゲームが正答であるときの素片の並び方や組合せや素片の向きなどを特定できる整合性データを定めることができる。
【0033】
また、画像データは、複数の素片の各々に表示される画像のデータである。さらに、仮想空間にオブジェクトが存在する態様で複数の素片の各々で表示するためのデータである。素片は、表示手段に表示される画像であり、その表示された素片(素片の画像)の大きさや形状や向きに適合するように、画像データに記憶されたオブジェクトの画像が素片(素片の画像)に重ねあわされて表示される。具体的には、画像データに記憶されたオブジェクトの画像は、座標変換や陰面処理などの各種の画像処理を画像データに施して、素片(素片の画像)に重なるように表示手段に表示される。
【0034】
上述したように、制御手段は、(1−1)〜(1−3)の処理を実行する。
(1−1)の処理は、操作手段から発せられた操作信号に応じて、表示手段において素片を移動させる態様で表示する処理である。また、(1−2)の処理は、複数の素片が集合立体に並べられたときに、整合性データを参照して、パズルゲームに正答したか否かを判断する処理である。さらに、(1−3)の処理は、パズルゲームに正答したときには、集合立体に並べられた複数の素片によってオブジェクトが整合して仮想空間に存在するように表示手段に表示する処理である。
【0035】
この構成によれば、予め定められた整合性データを用いてパズルゲームに正答したか否かを判断するので、正答したか否かを迅速かつ的確に判別することができる。また、パズルゲームに正答したときに表示されるであろうオブジェクトの全体の画像を推測しながら、素片を集合立体に並べてパズルゲームを解いていくので、新しい立体組み立てパズルを提供することができる。さらに、パズルゲームに正答したときには、仮想空間においてオブジェクトの全体が整合して表示されるので、パズルに正答したか否かを容易に判断することができる。
【0036】
仮想空間に存在するオブジェクトは表示対象物であればよく、人間や動物などのキャラクタや車両などの可動体などの動的な対象物でも、建物や岩などの静的な対象物でもよい。また、オブジェクトの数は、1つでも複数でもよく、パズルゲームとして興趣を高めることができるものであればよい。
【0037】
また、「整合」とは、集合立体に並べられた複数の素片によって、オブジェクトを示す画像を連続的に表示できたり又は矛盾なく表示できたりすることをいう。オブジェクトの形状や大きさや色などを静的な特徴や属性について連続的に表示できたり又は矛盾なくオブジェクトを示す画像を表示できたりすることだけでなく、オブジェクトが移動する態様で表示される場合には、その移動の態様が連続的に表示できたり又は矛盾なく表示できたりすることもいう。
【0038】
また、本発明の実施の形態に係る特徴は、上述した構成において、前記複数の素片の各々は、平面形状を有する平面素片である。さらに、前記画像データは、前記オブジェクトを連続的に移動する態様で表示するための動画データである。この動画データを用いてオブジェクトを表示したときには、平面素片の表面に沿ってオブジェクトが移動するように表示される。
【0039】
この構成によれば、オブジェクトは移動する態様で平面素片の表面に沿って表示されるので、時間的に変化する画像が平面素片に表示され、正答となるオブジェクトの画像を推測することが困難になり面白みのあるパズルゲームを提供することができる。
【0040】
さらに、本発明の実施の形態に係る特徴は、上述した構成において、複数の素片の各々は、平面形状を有する平面素片である。さらに、集合立体は複数の立体表面を有する。集合立体は、これらの複数の立体表面によって外形が画定される。これらの複数の立体表面の各々は透視可能である。透視可能とは、立体表面を介して、立体表面の一の側(たとえば外側)から他の側(たとえば内側)を視認することができることをいう。
【0041】
さらにまた、この場合の画像データは三次元立体画像データである。この三次元立体画像データは、集合立体の内側の仮想空間に存在するオブジェクトを仮想カメラによって撮影したものとして得られたデータである。上述したように、集合立体は複数の立体表面を有し、仮想カメラによる撮影は、複数の立体表面の各々を介して行われたものである。たとえば、集合立体が六面体である場合には、立体表面は六面ある。したがって、この場合には、画像データは、第一の立体表面を介して仮想的に撮影されたとして生成された第一の三次元立体画像データと、第二の立体表面を介して仮想的に撮影されたとして生成された第二の三次元立体画像データと、第三の立体表面を介して仮想的に撮影されたとして生成された第三の三次元立体画像データと、第四の立体表面を介して仮想的に撮影されたとして生成された第四の三次元立体画像データと、第五の立体表面を介して仮想的に撮影されたとして生成された第五の三次元立体画像データと、第六の立体表面を介して仮想的に撮影されたとして生成された第六の三次元立体画像データとからなる。
【0042】
また、上述した(1−1)の処理は、
(3−1) 操作手段から発せられた操作信号に応じて平面素片を移動させて複数の立体表面のいずれかに並べる処理である。
【0043】
さらに、上述した(1−3)の処理は、
(3−3) パズルゲームに正答したときには、オブジェクトが整合して存在する態様で表示手段において表示する処理である。オブジェクトは、集合立体の内側の仮想空間に存在するものであり、パズルゲームに正答したときには、集合立体に並べられた平面素片によって仮想空間でオブジェクトが整合して存在するように表示される。
【0044】
この構成によれば、パズルゲームに正答したときには、集合立体の内側に形成された仮想空間にオブジェクトが整合して存在するように表示されるので、現実感のあるオブジェクトの画像を表示することができるとともに、現実感のある画像を見るためにパズルゲームに正答しようとする動機をプレイヤに与えることができる。また、三次元立体画像データを用いたことによって立体的なオブジェクトの画像を表示できるので、正答となるオブジェクトの全体の形状や大きさや色などを推測することを難しくして面白みのあるパズルゲームを提供することができる。
【0045】
さらにまた、本発明の実施の形態に係る特徴は、上述した構成において、複数の素片の各々は、立体形状を有する立体素片である。さらに、集合立体は複数の立体表面を有する。これらの複数の立体表面によって集合立体の外形が画定される。なお、複数の立体表面は、辺や角などによって分離されている必要はなく、一体に構成された単一の立体表面を適宜分けて、複数の立体表面としてもよい。識別可能な複数の立体表面であればよい。さらに、これらの複数の立体表面の各々は透視可能である。上述したように、透視可能とは、立体表面を介して、立体表面の一の側(たとえば外側)から他の側(たとえば内側)を視認することができることをいう。
【0046】
さらに、また、この場合の画像データも三次元立体画像データである。この三次元立体画像データは、集合立体の内側の仮想空間に存在するオブジェクトを仮想カメラによって撮影したものとして得られたデータである。上述したように、集合立体は複数の立体表面を有し、仮想カメラによる撮影は、複数の立体表面の各々を介して行われたものである。たとえば、集合立体が三つの立体表面からなる場合には、画像データは、第一の立体表面を介して仮想的に撮影されたとして生成された第一の三次元立体画像データと、第二の立体表面を介して仮想的に撮影されたとして生成された第二の三次元立体画像データと、第三の立体表面を介して仮想的に撮影されたとして生成された第三の三次元立体画像データとからなる。
【0047】
また、上述した(1−1)の処理は、
(4−1) 操作手段から発せられた操作信号に応じて立体素片を移動させて前記集合立体を組み立てる処理である。
さらに、(1−3)の処理は、
(4−3) パズルゲームに正答したときには、オブジェクトが整合して存在する態様で表示手段において表示する処理である。オブジェクトは、集合立体の内側の仮想空間に存在するものであり、パズルゲームに正答したときには、集合立体として組み立てられた立体素片によって、仮想空間でオブジェクトが整合して存在するように表示される。
【0048】
この構成によれば、立体形状を有する立体素片によって集合立体を組み立てるので、パズルをより難しくすることができる。また、三次元立体画像データを用いたことにより、集合立体だけでなく立体素片にも立体的なオブジェクトの画像を表示できるので、現実感のある画像を表示して、正答となるオブジェクトの全体の形状や大きさや色などを推測することをさらに難しくして、より面白みのあるパズルゲームを提供することができる。
【0049】
また、本発明の実施の形態に係る特徴は、上述した構成において、仮想カメラは、集合立体の高さ方向の複数の位置に配置された複数の仮想撮影カメラである。また、三次元立体画像データは、複数の仮想撮影カメラの各々に応じた高さで集合立体の中心からの距離を一定に保ちつつ複数の仮想撮影カメラの各々が集合立体を周回して撮影したデータである。
【0050】
この構成によれば、三次元立体画像データは、集合立体を仮想的に周回して撮影したものとして生成した画像データであるので、複数の立体素片の各々に表示する画像を、回転角度方向を異ならしめて表示することができる。このようにしたことにより、複数の立体素片の並びだけでなく、複数の立体素片の各々の回転角度も調整しつつパズルを解く必要があるので、正答となるオブジェクトの全体の形状や大きさや色などの推測をさらに難しくしたパズルゲームを提供することができる。
【0051】
以下に、本発明の実施例について図面に基づいて説明する。本実施の形態は、第1の実施の形態〜第3の実施の形態からなる。以下では、第1の実施の形態〜第3の実施の形態に共通する説明では、これらを単に本実施の形態と称する。
【0052】
<<<<第1の実施の形態〜第3の実施の形態のゲームの概略>>>>
まず、第1の実施の形態〜第3の実施の形態のゲームの概略について簡単に説明する。
【0053】
第1の実施の形態によるゲームは、複数の表示面(面素片)を並べることによって仮想空間に存在するオブジェクトを組み立てるパズルゲームである。具体的には、仮想空間で複数の表示面(面素片)によってオブジェクトを組み立て、オブジェクトが整合して表示できたときにパズルが解けたとするパズルゲームである(図15及び図16参照)。
【0054】
また、表示面(面素片)の各々を構成する辺と辺との一致データ(整合性データ)を保持している。さらに、この表示面(面素片)の各々に表示する二次元画像データは、動画データであるものが好ましく、表示面の各々によって表示されるオブジェクト(たとえば、複数のキャラクタ)が移動するように表示される動画データが好ましい。
【0055】
第2の実施の形態によるゲームは、画像が表示されている複数の表示面(面素片)を並べることによって集合立体を組み立てるパズルゲームである。表示面(面素片)に表示される画像データは、複数の表示平面の各々を透視平面として、これらの透視平面の各々を介して撮像したり視認したりしたものとして生成されたデータである。このパズルゲームは、対応する表示面(面素片)の各々に画像を表示し、表示面(面素片)によって集合立体が組み立てられて、集合立体の内側を示す映像として、集合立体の全ての表示面(面素片)において画像が整合して表示できたときにパズルが解けたとするパズルゲームである(図17参照)。
【0056】
たとえば、仮想空間に集合立体を配置し、この集合立体に対して、複数視点(カメラ)を設定し、各々のカメラ視点で透視変換した二次元画像データを記憶している。この二次元画像データは、多角形の形状を有する透視面を介したものとして形成されたデータである。さらに、透視面の各々の辺の組み合わせを示す移動先のデータを記憶する。集合立体を複数の視点で透視変換して形成された複数の二次元画像データに基づいて、移動元の画像を複数表示する一方、この移動元の画像をプレイヤの操作に応じて移動先の立体画像の複数の面に移動して貼り付ける操作がなされると、その移動面と移動元の画像との一致関係を予め記憶した一致データに基づいて、成功/失敗を判定するプログラムを記憶している。
【0057】
第3の実施の形態によるゲームは、画像が表示されている複数の立体素片を並べて集合立体を組み立てるパズルゲームである。立体素片に表示される画像のデータは、複数の立体素片の各々を構成する面を透視面として、これらの透視面の各々を介して撮像したり視認したりしたものとして生成されたデータである。このパズルゲームは、対応する表示面の各々に動画を表示し、表示面によって集合立体が組み立てられて、集合立体の内側を示す映像として、集合立体の全ての表示面において動画が整合して表示できたときにパズルが解けたとするゲームである(図25参照)。
【0058】
たとえば、仮想空間内に高さのある集合立体を配置し、その集合立体の高さ方向に複数の視点を配置し、この視点を高さのある集合立体に対して、各視点間距離を一定に保ったまま360度移動させて生成された帯状の画像データを生成する。そして、ゲームが開示されると、視点ごとに分離した状態の集合立体の表面の各々に、帯状の画像データをテクスチャマッピングして立体画像を表示する。表示された立体画像を高さ方向に積み重ねる操作をプレイヤのゲーム入力に応じて実行し、予め記憶された立体画像データの高さ方向での一致データに基づいてゲームの成功・失敗を判定するプログラムを記憶している。
【0059】
<<<本発明の実施の形態におけるゲームシステム100>>>
図1は、本発明の実施の形態におけるゲームシステム100を示す概略図である。このゲームシステム100は、後述する第1の実施の形態〜第3の実施の形態で共通する。なお、図1〜図4に示すゲームシステム100は、本実施の形態によるゲームを実行する一例として示したゲームシステムであり、他のゲームシステムでも本実施の形態によるゲームを実行することができる。
【0060】
<<ゲームシステム100の概略>>
ゲームシステム100は、ゲーム装置112(ビデオゲーム装置)及びコントローラ122を含む。なお、本実施の形態におけるゲーム装置112は、最大で4つのコントローラ122と通信をすることができる。また、ゲーム装置112と複数のコントローラ122の各々とは、無線によって通信をすることができる。たとえば、無線通信は、Bluetooth(登録商標)規格に従って実行される。なお、赤外線や無線LANなど他の規格に従って実行される無線通信でもよい。さらに、ゲーム装置112と複数のコントローラ122の各々とを有線で接続してもよい。
【0061】
ゲーム装置112は、略直方体のハウジング114を有する。このハウジング114の前面にはディスク挿入用スロット116が形成されている。プレイヤは、ゲームプログラム等を記憶した光ディスク118をディスクスロット116から挿入することができる。ディスクスロット116から挿入された光ディスク118は、ハウジング114内のディスクドライブ154(図2参照)に案内されて装着される。また、ディスクスロット116の周囲には、LED(図示せず)と導光板(図示せず)とが配置されており、各種の処理に応じて、ディスクスロット116を照明することができる。
【0062】
また、ゲーム装置112のハウジング114の前面の上部には、電源ボタン120a及びリセットボタン120bが設けられている。また、ハウジング114の前面の下部には、イジェクトボタン120cが設けられている。
【0063】
上述したリセットボタン120bとイジェクトボタン120cとの間の位置であり、ディスクスロット116の近傍の位置には、外部メモリカード用コネクタカバー128が設けられている。外部メモリカード用コネクタカバー128の内側には、外部メモリカード用コネクタ162(図2参照)が設けられている。外部メモリカード用コネクタ162には、外部メモリカード(以下、「メモリカード」と称する)を着脱可能に設けることができる。メモリカードは、光ディスク118から読み出したゲームプログラム等を一時的に記憶したり、ゲームシステム100を利用してプレイしたゲームのゲームデータ(ゲームの結果データ又は途中データ)を保存したりするために用いられる。
【0064】
上述したゲームデータをメモリカードに保存することに代えて、たとえば、ゲーム装置112の内部に設けられるフラッシュメモリ144(図2参照)のような内部メモリに保存してもよい。また、内部メモリのバックアップメモリとしてメモリカードを用いてもよい。さらに、ゲーム装置112は、ゲーム以外の他のアプリケーションを実行することも可能であり、このようなゲーム以外の他のアプリケーションで用いるデータをメモリカードに保存してもよい。
【0065】
なお、メモリカードとしては、汎用のSDカードを用いることができるが、メモリスティックやマルチメディアカード(登録商標)のような他の汎用のメモリカードを用いることもできる。
【0066】
ゲーム装置112のハウジング114の後面には、AVコネクタ158(図2参照)が設けられている。AVコネクタ158には、AVケーブル132aを接続することができる。AVケーブル132aを介して、ディスプレイ134及びスピーカ134aをゲーム装置112に接続することができる。このディスプレイ134及びスピーカ134aは、典型的にはカラーテレビジョン受像機である。カラーテレビジョン受像機は、ビデオ入力端子と音声入力端子とを有する。AVケーブル132aを介して、ゲーム装置112からの映像信号がビデオ入力端子に入力され、ゲーム装置112からの音声信号が音声入力端子に入力される。このようにしたことで、ディスプレイ134の画面上に、たとえば三次元(3D)ビデオゲームのゲーム画像を表示することができ、左右のスピーカ134aからゲーム音楽や効果音などのステレオゲーム音声を出力することができる。
【0067】
ゲーム装置112の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置112は、家庭用電源(商用電源)を、駆動に適した低いDC電圧信号に変換する。なお、電源としてバッテリを用いてもよい。
【0068】
以下では、ゲームシステム100でプレイヤがゲームをする手順を説明する。まず、プレイヤは、ゲーム装置112の電源をいれ、次いで、ビデオゲーム(または、プレイしたいと思う他のアプリケーション)のプログラムが記録されている光ディスク118を、ゲーム装置112のディスクドライブ154に装着する。
【0069】
光ディスク118がディスクドライブ154に装着されたことに応じて、ゲーム装置112は、その光ディスク118に記録されているプログラムに基づいてビデオゲーム若しくは他のアプリケーションを実行し始める。たとえば、後述するパズルゲームのプログラムを光ディスク118から読み出して実行する。
【0070】
プレイヤは、コントローラ122を操作して、プレイヤが所望する動作をゲーム装置112にさせる。たとえば、プレイヤが入力手段126のどれかを操作することによって、ゲーム装置112はゲームや他のアプリケーションをスタートさせる。また、入力手段126に対する操作以外にも、プレイヤがコントローラ122自体を動かすことにより、動画によって描かれているオブジェクトをプレイヤが所望する方向に移動させたり、3Dのゲーム世界におけるプレイヤの視点(カメラ位置)を変化させたりすることができる。
【0071】
ただし、ビデオゲームや他のアプリケーションのプログラムは、ゲーム装置112の内部メモリ(フラッシュメモリ144(図2参照))に、予め記憶(インストール)させておき、内部メモリから実行するようにしてもよい。このようにした場合に、光ディスク118のような記憶媒体に記憶されたプログラムを内部メモリにインストールしてもよいし、通信によってダウンロードされたプログラムを内部メモリにインストールしてもよい。
【0072】
また、光ディスク118として、映像や音声などのコンテンツが記録されたDVDがある。このようなDVDをゲーム装置112のディスクドライブ154に装着した場合には、DVDに記憶されているコンテンツを再生することができる。たとえば、DVDに記憶されているコンテンツの再生が始まると、再生する内容を選択するためのメニュー画面が表示される。メニュー画面が表示されているときに、コントローラ122を振る(動かす)ことにより、メニュー画面に表示されたカーソルないしマウスポインタのような指示画像を移動させて、所望の内容(ボタン画像ないしアイコン)を選択(指示)し、所望の内容を選択した状態で、いずれかの操作手段126を操作することにより、選択した所望の内容に従ってコンテンツの再生指示を入力することができる。
【0073】
たとえば、再生指示に応じて、コンテンツの本編が最初から再生されたり、コンテンツの指定されたチャプターが再生されたり、コンテンツの特典映像が再生されたりする。本編の再生中では、コントローラ122を動かすことにより、再生画面に表示される操作パネルのボタン画像ないしアイコンを選択(指定)し、一時停止(再生)、早送り、早戻し、チャプター(プログラム)のスキップ(頭出し)のような再生に関する操作(以下、「再生操作」という。)を行うことができる。このような場合には、コントローラ122は、いわゆるポインティングデバイスとして機能する(第1モード)。また、コントローラ122の一部の操作手段126には、予め再生操作についての役割が与えられており、該当する操作手段126を操作することにより、再生操作を行うこともできる。このような場合には、コントローラ122は、DVDプレイヤとして機能するゲーム装置112のいわゆるリモコンとして機能する(第2モード)。
【0074】
なお、通常、DVDを再生することでメニュー画面が表示されている状態では、上述したような再生操作は禁止されている。このため、本実施の形態では、DVDのメニュー画面が表示されている場合には、コントローラ122から再生操作についての操作入力があっても、操作入力を無効にするようにしてある。
【0075】
また、ゲーム装置112でゲームをプレイしたり、ゲーム以外の他のアプリケーションを実行したり、DVDを再生したりするような処理内容の選択は、ゲーム装置112の起動時に表示されるメニュー画面(DVDの再生時のメニュー画面とは異なる。)で選択することができる。
【0076】
<<ゲームシステム100の構成>>
図2は、ビデオゲームシステム100の電気的な構成を示すブロック図である。
【0077】
ハウジング114内の各コンポーネントはプリント基板に実装されている。図2に示すように、ゲーム装置112にはCPU140が設けられ、CPU140はゲームプロセッサとして機能する。CPU140にはシステムLSI42が接続されている。このシステムLSI42には、外部メインメモリ146、ROM/RTC148、ディスクドライブ154及びAV IC156が接続されている。
【0078】
外部メインメモリ146は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりして、CPU140のワーク領域やバッファ領域として機能する。ROM/RTC148は、いわゆるブートROMであり、ゲーム装置112の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ154は、光ディスク118からプログラム、画像データや音声データ等を読み出し、CPU140の制御の下で、後述する内部メインメモリ142e又は外部メインメモリ146に書き込む。
【0079】
システムLSI142には、入出力プロセッサ142a、GPU(Graphics Processor Unit)142b、DSP(Digital Signal Processor)142c、VRAM142d及び内部メインメモリ142eが設けられ、これらは内部バス(図示せず)によって互いに接続されている。入出力プロセッサ(I/Oプロセッサ)142aは、データの送受信を実行したり、データのダウンロードを実行したりする。データの送受信やダウンロードについては後述する。
【0080】
GPU142bは、描画手段の一部を形成し、CPU140からのグラフィクスコマンド(作画命令)を受信し、そのコマンドに従ってゲーム画像データを生成する。CPU140は、このようなグラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU142bに送信する。
【0081】
上述したように、GPU142bにはVRAM142dが接続されている。GPU142bが作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンデータやテクスチャデータなどのデータ)は、GPU142bがVRAM142dにアクセスして取得する。ただし、CPU140は、描画に必要な画像データを、GPU142bを介してVRAM142dに書き込む。GPU142bは、VRAM142dにアクセスして描画のためのゲーム画像データを作成する。
【0082】
本実施の形態では、GPU142bがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、GPU142bは当該任意のアプリケーションについての画像データを生成する。
【0083】
また、DSP142cは、オーディオプロセッサとして機能し、内部メインメモリ142eや外部メインメモリ146に記憶されるサウンドデータや音波形(音色)データを用いて、スピーカ134aから出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【0084】
上述したように生成されたゲーム画像データ及びオーディオデータは、AV IC156によって読み出され、AVコネクタ158を介してディスプレイ134及びスピーカ134aに出力される。したがって、ゲーム画面がディスプレイ134に表示され、ゲームに必要な音(音楽)がスピーカ134aから出力される。
【0085】
また、入出力プロセッサ142aには、フラッシュメモリ144、無線通信モジュール150及び無線コントローラモジュール152が接続されるとともに、拡張コネクタ160及び外部メモリカード用コネクタ162が接続されている。また、無線通信モジュール150にはアンテナ150aが接続され、無線コントローラモジュール152にはアンテナ152aが接続されている。
【0086】
入出力プロセッサ142aは、無線通信モジュール150を介して、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。なお、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ142aは、定期的にフラッシュメモリ144にアクセスし、ネットワークへ送信する必要があるデータ(以下、「送信データ」と称する)の有無を検出し、送信データが有る場合には、無線通信モジュール150及びアンテナ150aを介してネットワークに送信する。
【0087】
また、入出力プロセッサ142aは、他のゲーム装置から送信されるデータ(以下、「受信データ」と称する)を、ネットワーク、アンテナ150a及び無線通信モジュール150を介して受信し、受信データをフラッシュメモリ144に記憶する。なお、受信データが一定の条件を満たさない場合には、受信データはそのまま破棄される。さらに、入出力プロセッサ142aは、ダウンロードサーバからダウンロードしたデータ(以下、「ダウンロードデータ」と称する)をネットワーク、アンテナ150a及び無線通信モジュール150を介して受信し、そのダウンロードデータをフラッシュメモリ144に記憶する。
【0088】
また、入出力プロセッサ142aは、コントローラ122から送信される入力データをアンテナ152a及び無線コントローラモジュール152を介して受信し、内部メインメモリ142e又は外部メインメモリ146のバッファ領域に記憶(一時記憶)する。入力データは、CPU140の処理(たとえば、ゲーム処理)によって利用された後、バッファ領域から消去される。
【0089】
なお、この実施例では、上述したように、無線コントローラモジュール152は、Bluetooth規格に従ってコントローラ122との間で通信を行う。
【0090】
さらに、入出力プロセッサ142aには、拡張コネクタ160及び外部メモリカード用コネクタ162が接続されている。拡張コネクタ160は、USBやSCSIのようなインターフェイスのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、コントローラ122とは異なる他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ160に有線LANアダプタを接続し、無線通信モジュール150に代えて当該有線LANを利用することもできる。外部メモリカード用コネクタ162には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ142aは、拡張コネクタ160や外部メモリカード用コネクタ162を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0091】
図1にも示したように、ゲーム装置112(ハウジング114)には、電源ボタン120a、リセットボタン120b及びイジェクトボタン120cが設けられている。電源ボタン120aは、システムLSI142に接続されている。プレイヤによって電源ボタン120aが操作されると、システムLSI142には、ゲーム装置112の各コンポーネントに電源が供給され、通常の通電状態となる通常モードになる。一方、電源ボタン120aがオフされると、システムLSI142には、ゲーム装置112の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるスタンバイモードになる。
【0092】
本実施の形態では、スタンバイモードが設定された場合には、システムLSI142は、入出力プロセッサ142a、フラッシュメモリ144、外部メインメモリ146、ROM/RTC148及び無線通信モジュール150、無線コントローラモジュール152以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、スタンバイモードであるときには、CPU140がアプリケーションを実行することはない。
【0093】
なお、スタンバイモードであるときでも、システムLSI142には電源が供給されるが、GPU142b、DSP142c及びVRAM142dへのクロックの供給を停止することにより、これらを駆動しないようにして、消費電力を低減することができる。
【0094】
また、ゲーム装置112のハウジング114内部には、CPU140やシステムLSI142などのICの熱を外部に排出するためのファン(図示せず)が設けられている。スタンバイモードでは、このファンも停止される。
【0095】
ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン120aがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
【0096】
また、通常モードとスタンバイモードとの切り替えは、コントローラ122の電源スイッチ126hのオン/オフの切り替えによって、遠隔操作によって行うことが可能である。当該遠隔操作を行わない場合には、スタンバイモードにおいて無線コントローラモジュール152aへの電源供給を行わない設定にしてもよい。
【0097】
また、リセットボタン120bもシステムLSI142に接続されている。リセットボタン120bが押されると、システムLSI142は、ゲーム装置112の起動プログラムを再起動する。イジェクトボタン120cは、ディスクドライブ154に接続されている。イジェクトボタン120cが押されると、ディスクドライブ154から光ディスク118が排出される。
【0098】
図3はコントローラ122の外観を示す図であり、図3(A)はコントローラ122の先端面を示し、図3(B)はコントローラ122の上面を示し、図3(C)はコントローラ122の右側面を示し、図3(D)はコントローラ122の下面を示し、そして、図3(E)はコントローラ122の後端面を示す。
【0099】
図3(A)〜図3(E)に示すように、コントローラ122は、たとえばプラスチック成型によって形成されたハウジング122aを有している。ハウジング122aは、略直方体形状であり、プレイヤが片手で把持可能な大きさである。ハウジング122a(コントローラ122)には、入力手段(複数のボタンないしスイッチ)126が設けられている。具体的には、図3(B)に示すように、ハウジング122aの上面には、十字キー126a、1ボタン126b、2ボタン126c、Aボタン126d、−ボタン126e、HOMEボタン126f、+ボタン126g及び電源スイッチ126hが設けられている。また、図3(C)及び図3(D)に示すように、ハウジング122aの下面には、傾斜面が形成されており、この傾斜面に、Bトリガスイッチ126iが設けられている。
【0100】
十字キー126aは4方向プッシュスイッチであり、矢印で示す4つの方向、前(又は上)、後ろ(又は下)、右及び左の操作部を含む。この操作部のいずれか1つを操作することによって、プレイヤによって操作可能なキャラクタやオブジェクト(プレイヤキャラクタやプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したり、単に方向を指示したりすることができる。また、ゲーム装置112でDVDをプレイし、コントローラ122をリモコンとして用いる場合には、左の操作部を操作することによって、早戻しを指示することができ、右の操作部を操作することによって、早送りを指示することができる。
【0101】
1ボタン126b及び2ボタン126cは、それぞれ、押しボタンスイッチである。たとえば三次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整する等のゲームの操作に使用される。又は、1ボタン126b及び2ボタン126cは、Aボタン126d及びBトリガスイッチ126iと同じ操作或いは補助的な操作をする場合に用いるようにしてもよい。
【0102】
Aボタンスイッチ126dは、押しボタンスイッチであり、プレイヤキャラクタ又はプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択及び決定等を指示することができる。
【0103】
また、Aボタンスイッチ126dは、コントローラ122をポインティングデバイスとして用いる場合には、ゲーム画面上でポインタ(指示画像)が指示するアイコンないしボタン画像の決定を指示するために使用される。たとえば、アイコンやボタン画像が決定されると、これらに対応して予め設定されている指示ないし命令(コマンド)を入力することができる。さらに、ゲーム装置112でDVDをプレイし、コントローラ122をリモコンとして用いる場合には、Aボタンスイッチ126dは、再生又は一時停止を指示することができる。
【0104】
−ボタン126e、HOMEボタン126f、+ボタン126g及び電源スイッチ126hもまた、押しボタンスイッチである。−ボタン126eは、ゲームモードを選択するために使用される。HOMEボタン126fは、ゲームメニュー(メニュー画面)を表示するために使用される。+ボタン126gは、ゲームを開始(再開)したり、一時停止したりするなどのために使用される。電源スイッチ126hは、ゲーム装置112の電源を遠隔操作によってオン/オフするために使用される。また、ゲーム装置112でDVDをプレイし、コントローラ122をリモコンとして用いる場合には、−ボタン126e及び+ボタン126gは、スキップ(頭出し)するために用いられる。具体的には、−ボタン126eは、チャプターを戻すために使用され、+ボタン126gは、チャプターを送るために使用される。
【0105】
本実施の形態では、コントローラ122自体をオン/オフするための電源スイッチは設けていない。コントローラ122の入力手段126のいずれかを操作することによってコントローラ122はオンとなり、一定時間(たとえば、30秒)以上操作しなければ自動的にオフとなる。
【0106】
Bトリガスイッチ126iもまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガを模した入力を行ったり、コントローラ122で選択した位置を指定したりするために使用される。また、Bトリガスイッチ126iを押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Bトリガスイッチ126iは、通常のBボタンと同様に機能し、Aボタン126dによって決定したアクションやコマンドなどを取り消すなどのために使用される。
【0107】
また、図3(E)に示すように、ハウジング122aの後端面には外部拡張コネクタ122bが設けられ、また、図3(B)に示すように、ハウジング122aの上面の後端面側にはインジケータ122cが設けられている。外部拡張コネクタ122bは、コントローラ122とは異なる拡張コントローラ(図示せず)を接続するためなどに使用される。インジケータ122cは、たとえば、4つのLEDで構成される。たとえば、インジケータ122cでは、4つのうちのいずれか1つを点灯させることにより、点灯したLEDに応じて、コントローラ122の識別情報(コントローラ番号)を示すことができる。また、インジケータ122cでは、点灯させるLEDの個数によってコントローラ122の電池残量を示すこともできる。
【0108】
さらに、コントローラ122は、撮像情報演算部180(図4参照)を有する。図3(A)に示すように、ハウジング122aの先端面には撮像情報演算部180の光入射口122dが設けられている。また、コントローラ122は、スピーカ186(図4参照)を有する、このスピーカ186は、図3(B)に示すように、ハウジング122aの上面であり、1ボタン126bとHOMEボタン126fとの間に設けられる音抜き孔122eに対応して、ハウジング122aの内部に設けられている。
【0109】
なお、図3(A)〜図3(E)に示したコントローラ122の形状や、各入力手段126の形状、数及び設置位置等は単なる一つの例を示したに過ぎない。
【0110】
図4は、コントローラ122の電気的な構成を示すブロック図である。コントローラ122はプロセッサ170を含む。プロセッサ170には、内部バス(図示せず)によって、外部拡張コネクタ122b、入力手段126、メモリ172、加速度センサ174、無線モジュール176、撮像情報演算部180、LED182(インジケータ122c)、バイブレータ184、スピーカ186及び電源回路188が接続されている。また、無線モジュール176には、アンテナ178が接続されている。
【0111】
また、上述したように、インジケータ122cは4つのLED182によって構成される。
【0112】
プロセッサ170は、コントローラ122の全体を制御する。入力手段126、加速度センサ174及び撮像情報演算部180によって入力された情報(入力情報)を、入力データとして無線モジュール176及びアンテナ178を介してゲーム装置112に送信(入力)する。このとき、プロセッサ170は、メモリ172を作業領域ないしバッファ領域として用いる。また、上述した入力手段126(126a−126i)からの操作信号(操作データ)は、プロセッサ170に入力され、プロセッサ170は操作データを一旦メモリ172に記憶する。
【0113】
加速度センサ174は、コントローラ122の縦方向(y軸方向)、横方向(x軸方向)及び前後方向(z軸方向)の3軸で各々の加速度を検出する。この加速度センサ174は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。
【0114】
たとえば、加速度センサ174は、第1の所定時間毎に、x軸、y軸、z軸の各々についての加速度(ax、ay、az)を検出し、検出した加速度のデータ(加速度データ)をプロセッサ170に入力する。たとえば、加速度センサ174は、各軸方向の加速度を、−2.0g〜2.0g(gは重力加速度である。以下、同じ。)の範囲で検出する。プロセッサ170は、加速度センサ174から与えられる加速度データを、第2の所定時間毎に検出し、一旦メモリ172に記憶する。
【0115】
プロセッサ170は、操作データ、加速度データ及び後述するマーカ座標データの少なくとも1つを含む入力データを作成し、作成した入力データを、第3の所定時間(たとえば、5msec)毎にゲーム装置112に送信する。
【0116】
なお、本実施の形態では、加速度センサ174は、ハウジング122a内部の基板上の十字キー126aが配置される付近に設けられている。
【0117】
無線モジュール176は、たとえば、Bluetooth規格に基づいて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ178から放射する。すなわち、入力データは、無線モジュール176によって微弱電波信号に変調されてアンテナ178(コントローラ122)から送信される。微弱電波信号は、上述したゲーム装置112に設けられた無線コントローラモジュール152によって受信される。受信された微弱電波は、復調及び復号の処理を施され、したがって、ゲーム装置112(CPU140)は、コントローラ122からの入力データを取得することができる。そして、CPU140は、取得した入力データとアプリケーションプログラム(ゲームプログラム)とに従ってアプリケーションの処理(ゲーム処理)を行う。
【0118】
<<<<第1の実施の形態〜第3の実施の形態の特徴>>>>
以下では、後述する第1の実施の形態〜第3の実施の形態の各々の特徴について説明する。
【0119】
<<<第1の実施の形態>>>
<第1の実施の形態のゲームの手順>
まず、第1の実施の形態によるゲームプログラムが実行されると、ディスプレイ134の画面の右側には、6つの表示面(複数の素片)の画像が表示され、画面の左側には、集合立体の画像が表示される。第1の実施の形態における「立体」(集合立体)の具体的な形状は立方体であり(図10参照)、「6つの表示面」の各々の具体的な形状は正方形である(図11参照)。したがって、第1の実施の形態によるゲームプログラムが実行されると、図15及び図16に示すように、ディスプレイ134の画面の右側には、正方形の「6つの表示面」の画像が表示され、画面の左側には、立方体の「立体」の画像が表示される。上述した正方形の形状を有する6つの表示面が、「複数の素片」に対応し、立方体の形状を有する立体が「集合立体」に対応する。
【0120】
この第1の実施の形態のパズルゲームは、ディスプレイ134の映像によって示される仮想空間において、正方形の形状を有する「6つの表示面」を組み合わせて並べることによって、立方体の形状を有する「立体」を組み立てるパズルゲームである。言い換えれば、第1の実施の形態のパズルゲームは、仮想空間で、正方形の形状を有する「6つの表示面」の各々を面素片として、立方体の形状を有する「立体」を構成する6つの面に、順次貼り付けていくパズルゲームである。第1の実施の形態では、「立体」を構成する6つの面C1、C2、C3、C4、C5及びC6を「立体表面」(図10参照)と称し、動画が表示される面素片であって、「立体表面」に貼り付けられる6つの面P1、P2、P3、P4、P5及びP6を「表示面」(図11参照)と称する。「立体表面」は、立方体の形状の「立体」の外形を画定する表面である。なお、「表示面」を「立体表面」に貼り付けることができるので、「立体表面」の大きさ及び形状は、「表示面」の大きさ及び形状と同じである。
【0121】
図11(b)に示すように、6つの表示面P1〜P6の各々は、正方形の形状を有する。表示面P1は、4つの辺P1−L1、P1−L2、P1−L3及びP1−L4を有する。表示面P2は、4つの辺P2−L1、P2−L2、P2−L3及びP2−L4を有する。表示面P3は、4つの辺P3−L1、P3−L2、P3−L3及びP3−L4を有する。表示面P4は、4つの辺P4−L1、P4−L2、P4−L3及びP4−L4を有する。表示面P5は、4つの辺P5−L1、P5−L2、P5−L3及びP5−L4を有する。表示面P6は、4つの辺P6−L1、P6−L2、P6−L3及びP6−L4を有する。
【0122】
上述した表示面P1〜P6の「P1〜P6」が、表示面を識別するための面番号となる。また、辺P1−L1〜P1−L4、P2−L1〜P2−L4、P3−L1〜P3−L4、P4−L1〜P4−L4、P5−L1〜P5−L4及びP6−L1〜P6−L4が、辺を識別するための辺番号となる。これらの面番号と辺番号とは、後述する図13に示す貼り付け結果テーブルや、図14に示す判定用テーブルを書き込む情報である。
【0123】
また、図10に示すように、立方体の6つの立体表面C1〜C6の各々も、正方形の形状を有する。立体表面C1は、4つの辺C1−L1、C1−L2、C1−L3及びC1−L4を有する。立体表面C2は、4つの辺C2−L1、C2−L2、C2−L3及びC2−L4を有する。立体表面C3は、4つの辺C3−L1、C3−L2、C3−L3及びC3−L4を有する。立体表面C4は、4つの辺C4−L1、C4−L2、C4−L3及びC4−L4を有する。立体表面C5は、4つの辺C5−L1、C5−L2、C5−L3及びC5−L4を有する。立体表面C6は、4つの辺C6−L1、C6−L2、C6−L3及びC6−L4を有する。上述したように、6つの立体表面C1〜C6によって立方体の外形が画定される。
【0124】
上述した立体表面C1〜C6の「C1〜C6」が、立体表面を識別するための面番号となる。また、辺C1−L1〜C1−L4、C2−L1〜C2−L4、C3−L1〜C3−L4、C4−L1〜C4−L4、C5−L1〜C5−L4及びC6−L1〜C6−L4が、辺を識別するための辺番号となる。これらの面番号と辺番号とは、後述する図13に示す貼り付け結果テーブルや、図14に示す判定用テーブルで用いる情報である。
【0125】
ディスプレイ134の右側に表示されている6つの表示面(表示面P1〜P6)には、各種の動画が表示される。これらの6つの表示面P1〜P6を適切に組み合わせて、立方体を組み立てることができたときには、組み立てられた立方体の6つの面(組み合わされた表示面)の全体で動画を連続的にかつ矛盾なく表示することができる。言い換えれば、正方形の形状を有する6つの表示面P1〜P6を、立方体を構成する6つの立体表面C1〜C6に適切に貼り付けることができたときには、貼り付けられた6つの表示面P1〜P6によって立方体の全体で動画を連続的にかつ矛盾なく表示することができる。具体的には、表示面P1〜P6を立方体に適切に貼り付けることができたときには、動画によって表示面P1〜P6に描かれる移動可能なオブジェクト(例えば、物体)は、一の表示面とその一の表示面に隣接する他の表示面との境界を形成する辺を跨いで、一の表示面から他の表示面に連続的に移動する態様で表示される。このパズルゲームは、表示面を立方体に適切に貼り付けることができたときにパズルが解けたとするゲームである。
【0126】
第1の実施の形態によるゲームプログラムのパズルゲームは、表示面の表面に各種の移動可能なオブジェクトが存在するとして生成した動画データを用いる。したがって、動画データによって、表示面に動画が表示されたときには、プレイヤは、表示面の表面に沿ってオブジェクトが移動するように視認できる。第1の実施の形態によるゲームプログラムのパズルゲームは、このような動画を表示面に表示して、表示面の表面に沿って移動する態様で表示されたオブジェクトの画像をヒントにして、表示面を組み合わせたり表示面を立方体に貼り合わせたりして、パズルを解くゲームである。なお、この第1の実施の形態によるゲームプログラムで用いる動画データは、表示面の表面のみに存在するオブジェクトだけでなく、表示面の表面から所定の深さまでの、所定の厚さを有する領域内を移動可能なオブジェクトが存在するとして生成した動画データでもよい。
【0127】
このように、第1の実施の形態によるゲームプログラムで用いる動画のデータは、表示面の表面に沿って二次元に移動可能なオブジェクトの画像や、二次元に近い範囲でのみ移動可能なオブジェクトの画像を表示する動画データである。したがって、表示面を立方体に適切に貼り付けてパズルを解けたときには、あくまでも立方体の表面に沿ってオブジェクトが移動する態様の動画が表示されるため、一の表示面から他の表示面にオブジェクトが移るときには、一の表示面と他の表示面と境界(辺)においてオブジェクトが折れ曲がるようにして表示される。
【0128】
後述する図12は、整合性成立テーブルを示す表である。この整合性成立テーブルは、表示面を立方体に適切に貼り付けることができたときの表示面の面番号及び辺番号と、立体表面の面番号及び辺番号との関係を記憶するテーブルであり、パズルの正答の関係を記憶するテーブルである。この整合性の関係は、予め定められて光ディスク118に記憶されており、パズルゲームの起動とともに、内部メインメモリ142eや外部メインメモリ146に展開される。表示面を立方体に適切に貼り付けることができたときには、この整合性の関係を全て満たし、パズルを解くことができたと判断することができる。
【0129】
これに対して、6つの表示面P1〜P6を適切に貼り付けることができなかった場合には、貼り付けられた6つの表示面P1〜P6によって立方体の全体で動画を連続的にかつ矛盾なく表示することができない。言い換えれば、6つの表示面P1〜P6を適切に貼り付けることができなかったときには、動画によって表示面に描かれる移動可能なオブジェクトは、一の表示面からその一の表示面に隣接する他の表示面に連続的に移動する態様で表示されない。たとえば、一の表示面で移動するように描かれているオブジェクトは、その一の表示面の一の辺に到達したときに徐々に消失するとともに、その一の表示面の一の辺と隣接してない他の辺から他の表示面に徐々に現れる態様で表示される。このように、6つの表示面を適切に貼り付けることができなかった場合には、立方体に貼り付けられた6つの表示面の少なくとも一部で、整合性のない動画が表示される。
【0130】
<動画データ>
上述したように、第1の実施の形態によるゲームプログラムを実行することによって、プレイヤはパズルゲームを行うことができる。このパズルゲームは、正方形の形状を有する6つの表示面P1〜P6を、立方体を構成する6つの立体表面C1〜C6に適切に貼り付けることができたときには、貼り付けられた6つの表示面P1〜P6によって立方体の全体で動画を連続的にかつ矛盾なく表示して、パズルが解けたとするゲームである。したがって、第1の実施の形態によるゲームプログラムは、6つの表示面P1〜P6が適切に貼り付けられたときには、連続的にかつ矛盾なく動画を表示できるような動画データを用いる。
【0131】
たとえば、このような動画データとして、図11(a)に示したような立方体の展開図の全体の領域で連続的に動画を表示できる動画データを用いればよい。図11(a)は、立方体に貼り付けられた6つの表示面P1〜P6を仮想的に展開したときの展開図である。6つの表示面P1〜P6が立方体に適切に貼り付けられたときには、図11(a)に示した展開図の全体においても、連続的に動画を表示されることになる。したがって、このような展開図の全体の領域で連続的に動画を表示できる動画データを生成して、内部メインメモリ142eや外部メインメモリ146に記憶させればよい。なお、動画データは、複数の一定のものを光ディスク118に予め記憶させておいて内部メインメモリ142eや外部メインメモリ146に展開するようにしても、パズルゲームを開始する度に生成して内部メインメモリ142eや外部メインメモリ146に記憶させるようにしてもよい。
【0132】
上述したように、図11(a)に示したような立方体の展開図の全体の領域で連続的に動画を表示できる動画データを生成して内部メインメモリ142eや外部メインメモリ146に記憶させておく。動画データのうち、6つの表示面P1〜P6(図11(a)参照)の各々に対応する部分を、VRAM142dに書き込むことによって、6つの表示面P1〜P6の各々に対応させて動画を表示することができる。
【0133】
なお、図15や図16に示すように、6つの表示面P1〜P6は、立方体に貼り付けられたときには、表示面P1〜P6に対して斜め方向から視認されたように表示される。したがって、三次元立体動画データとして生成しておき、視点の方向に応じて定めたデータをVRAM142dに書き込むようにするのが好ましい。また、図11(a)に示した6つの表示面P1〜P6の展開図の形状は一つの例を示したに過ぎず、他の形状となるように、6つの表示面P1〜P6を展開させてもよい。その場合には、その展開図の形状に合わせて動画データを生成して記憶させればよい。なお、このような動画データは、三次元立体画像データであるものが好ましい。
【0134】
<パズルゲームにおける操作>
上述したように、第1の実施の形態によるゲームプログラムが実行されると、ディスプレイ134の画面の右側には、6つの表示面P1〜P6が表示され、画面の左側には、立方体(立体表面C1〜C6)の画像が表示される(図15(a))。プレイヤは、コントローラ122を操作することによって、ディスプレイ134の画面の右側に表示されている6つの表示面P1〜P6のうちの1つを選択する(図15(b)又は図16(c))。さらに、プレイヤは、コントローラ122を操作することによって、画面の左側に表示されている立方体を回転させ、プレイヤが所望する立方体の立体表面の1つを視認しやすくなるように表示させる(図15(b)又は図16(a))。
【0135】
また、上述したように、コントローラ122を操作することによって、画面の左側に配置されている立方体を回転させるように立方体の画像を表示することができる。したがって、選択した1つの表示面を立方体の立体表面の1つに単に貼り付けるだけでなく、選択した1つの表示面の4つの辺を、プレイヤが所望する立方体の立体表面の辺と対応付けて、選択した1つの表示面を貼り付けることができる(図15(c)又は図16(b))。
【0136】
なお、表示面の貼り付けの作業は、ディスプレイ134において、選択した1つの表示面を、立方体の一の立体表面に対して所定の距離以内の近くまで移動させれば、その一の立体表面が指定されたものとして、選択した1つの表示面を立方体の一の立体表面に移動させて貼り付けたように表示するのが好ましい。このようにすることで、貼り付け作業を容易にすることができるとともに、ゲームを迅速に進めることができる。
【0137】
さらに、この表示面の貼り付け操作を、6つの表示面の全てを立方体の立体表面に貼り付けるまで行う。上述したように、立方体を構成する立体表面に6つの表示面の全てを適切に貼り付けることができたときに、立方体の全ての立体表面において、6つの表示面の動画を連続的にかつ矛盾なく表示することができ、パズルが完成する。パズルが完成したときには、その旨がディスプレイ134に表示される。
【0138】
また、6つの表示面の全てを立方体の立体表面に貼り付けても、立方体の立体表面の少なくとも一部において表示面の動画を連続的にかつ矛盾なく表示できなかった場合には、パズルは完成しない。この場合には、パズルが完成していない旨をディスプレイ134に表示するとともに、再挑戦するか否かの旨がディスプレイ134に表示される。
【0139】
<<第1の実施の形態のゲームの処理>>
【0140】
<ゲーム実行基本処理>
図5は、CPU140によって実行されるゲーム実行基本処理を示すフローチャートである。この図5に示すサブルーチンは、ゲームシステムの基本プログラムなどから呼び出されて実行される。
【0141】
最初に、CPU140は、ディスプレイ134にゲームの初期画面を表示する(ステップS511)。たとえば、ステップS511の処理によって、デモ画面や操作方法やルールなどを示す画像がディスプレイ134に表示される。
【0142】
次に、CPU140は、ゲームが開始されたか否かを判断する(ステップS513)。この判断処理は、プレイヤがコントローラ122に所定の操作をしたか否かで判断する処理である。ゲームが開始されていないと判別したときには(NO)、ステップS513に処理を戻す。一方、ゲームが開始されたと判別したときには(YES)、CPU140は、後述する図6に示すゲーム初期化処理のサブルーチンを呼び出して実行する(ステップS515)。
【0143】
次に、CPU140は、後述する図7に示すコントローラ操作処理のサブルーチンを呼び出して実行し(ステップS517)、次いで、後述する図8に示すディスプレイ表示処理のサブルーチンを呼び出して実行し(ステップS519)、後述する図9に示すテーブル更新処理のサブルーチンを呼び出して実行する(ステップS521)。
【0144】
次に、ゲームが終了したか否かを判断する(ステップS523)。このステップS523の判断処理は、全ての表示面P1〜P6が立体に貼り付けられたか否かを判断する処理である。CPU140は、ゲームが終了していないと判別したときには(NO)、上述したステップS517に処理を戻し、ゲームを続行する。
【0145】
一方、CPU140は、ゲームが終了したと判別したときには(YES)、ゲームによって行われたパズルが完成したか否かを判断する(ステップS525)。パズルが完成したか否かの判断は、パズルが完成したことを示す完成情報によって判断することができる。完成情報は、パズルが完成したことを示す情報であり、たとえば、フラグの値である。フラグの値が0のときには、パズルが完成していないことを示し、フラグの値が1のときには、パズルが完成していることを示す。なお、完成情報の変更は、図9のステップS921で処理される。
【0146】
CPU140は、ステップS525の判断処理で、パズルが完成していないと判別したときには(NO)、パズルが完成していないことを示す旨をディスプレイ134に表示し(ステップS527)、プレイヤが再挑戦するか否かを判断する(ステップS529)。ステップS529の判断は、プレイヤがコントローラ122に所定の操作をしたか否かで判断する処理である。プレイヤが再挑戦すると判別したときには(YES)、上述したステップS517に処理を戻す。一方、プレイヤが再挑戦しないと判別したときには(NO)、本サブルーチンを終了して、ゲームシステムの基本プログラムに処理を戻す。
【0147】
上述したステップS525の判断処理で、パズルが完成したと判別したときには(YES)、パズルが完成したことを示す旨をディスプレイ134に表示し(ステップS531)、本サブルーチンを終了して、ゲームシステムの基本プログラムに処理を戻す。
【0148】
<ゲーム初期化処理>
図6は、上述した図5のステップS515の処理で呼び出されて実行されるゲームの初期化を行うためのサブルーチンを示すフローチャートである。このサブルーチンもCPU140によって実行される。
【0149】
最初に、CPU140は、6つの表示面P1〜P6に表示する動画の基本構成を決定する(ステップS611)。この処理は、たとえば、動画の背景や、対象物であるキャラクタの種類と数や、他の表示物の数や位置などを決定する。ステップS611の処理によって、動画データが生成される。上述したように、動画データは、図11(a)の展開図の全体の領域(P1〜P6)で連続的に動画を表示できるデータである。
【0150】
次に、CPU140は、6つの表示面P1〜P6の各々の表示位置及び回転角度を決定する(ステップS613)。上述したように、パズルゲームが開始されると、図15及び図16に示すように、ディスプレイ134の画面の右側には、6つの表示面P1〜P6の画像が表示される。パズルゲームであるので、このディスプレイ134の画面の右側に表示する6つの表示面P1〜P6の表示位置やその回転角度は、パズルゲームが開始されるたびに異なるようにするのが好ましい。ステップS613の処理は、パズルゲームが開始されるたびに異なるようにするために、6つの表示面P1〜P6の表示位置やその回転角度を定める処理である。
【0151】
第1の実施の形態では、図15及び図16に示すように、6つの表示面P1〜P6の表示位置は、3行2列の6箇所である。また、6つの表示面P1〜P6の回転角度は、0度、90度、180度及び270度の4通りである。回転角度は、6箇所の表示位置の各々で定めることができる。なお、第1の実施の形態では、6つの表示面P1〜P6の形状を正方形としたので、回転角度を上述した4通りにしたが、6つの表示面P1〜P6の形状を他の形状にしたときには、その形状に応じて回転角度も適宜変更するのが好ましい。
【0152】
上述したステップS613の処理によって決定された表示位置に、回転角度によって定まる向きで6つの表示面P1〜P6の各々をディスプレイ134に表示することができる。この表示位置及び回転角度は、乱数を発生させてその値に応じて決定するのが好ましい。このようにすることで、ゲームを実行するたびに異なる条件で開始することができ、パズルを面白くすることができる。
【0153】
次いで、CPU140は、ステップS613の処理で決定した表示位置に回転角度が示す向きで6つの表示面の各々をディスプレイ134に表示する(ステップS615)。次に、表示面P1〜P6がまだ貼り付けられていない立体の画像をディスプレイ134に表示し(ステップS617)、本サブルーチンを終了する。本サブルーチンを実行することによって、たとえば、図15(a)に示すような画面がディスプレイ134に表示される。
【0154】
<コントローラ操作処理>
図7は、上述した図5のステップS517の処理で呼び出されて実行されるコントローラ操作のためのサブルーチンを示すフローチャートである。このサブルーチンもCPU140によって実行される。なお、以下に示すフローチャートは、操作の一例を示すものであり、他のボタンやキーなどを用いて操作してもよい。
【0155】
最初に、プレーヤによってコントローラ122が操作されたか否かを判断する(ステップS711)。このステップS711の判断処理は、コントローラ122から所定の無線信号を示す電波が発せられたか否かを判断する処理である。プレーヤによってコントローラ122が操作されていないと判別したときには(NO)、上述した図5のステップS517に処理を戻す。
【0156】
一方、プレーヤによってコントローラ122が操作されたと判別したときには(YES)、コントローラ122から発せられた無線信号を受信しコマンドを解析する(ステップS713)。
【0157】
コントローラ122から受信したコマンドが、表示面選択コマンドであるか否かを判断する(ステップS715)。表示面選択コマンドであると判別したときには(YES)、その1つの表示面を選択する(ステップS717)。たとえば、マウスポインタのようなポインタ画像をディスプレイ134に表示し、プレイヤがコントローラ122を操作することによって、そのポインタ画像を移動させて表示面を選択することができる。たとえば、図15(b)、(c)又は図16(c)に示すように、正方形の枠状のポインタ画像が表示されて、そのポインタ画像によって表示面を選択することができる。
【0158】
次に、プレイヤによって選択された表示面を識別するために面番号を内部メインメモリ142eや外部メインメモリ146に記憶させ(ステップS719)、本サブルーチンを終了する。たとえば、6つの表示面は、表示面P1〜P6であり、これらのP1〜P6を、表示面を識別するための面番号として用いる。したがって、プレイヤによって表示面P3が選択されたときには、内部メインメモリ142eや外部メインメモリ146に面番号「P3」が記憶される。
【0159】
上述したステップS715の判断処理で、コントローラ122から受信したコマンドが表示面選択コマンドでないと判別したときには(NO)、コントローラ122から受信したコマンドが表示面移動コマンドであるか否かを判断する(ステップS721)。コントローラ122から受信したコマンドが表示面移動コマンドであると判別したときには(YES)、ポインタ画像を移動させた距離と方向とを検出し(ステップS723)、その距離と方向とを内部メインメモリ142eや外部メインメモリ146に記憶させ(ステップS725)、本サブルーチンを終了する。
【0160】
このステップS725の処理で内部メインメモリ142eや外部メインメモリ146に記憶させた距離と方向とに応じて、後述する図8のステップS815の処理では、ポインタ画像とともに、選択した表示面の画像を表示する。すなわち、内部メインメモリ142eや外部メインメモリ146に記憶させた方向に沿って、内部メインメモリ142eや外部メインメモリ146に記憶させた距離だけ移動する態様で、選択した表示面の画像を表示する。
【0161】
上述したステップS721の判断処理で、コントローラ122から受信したコマンドが表示面移動コマンドでないと判別したときには(NO)、コントローラ122から受信したコマンドが立方体回転コマンドであるか否かを判断する(ステップS727)。コントローラ122から受信したコマンドが立方体回転コマンドであると判別したときには(YES)、プレイヤによって十字キー126aが押された方向を検出し(ステップS729)、その方向を内部メインメモリ142eや外部メインメモリ146に記憶させ(ステップS731)、本サブルーチンを終了する。一方、コントローラ122から受信したコマンドが立方体回転コマンドでないと判別したときには(NO)、上述した図5のステップS517に処理を戻す。
【0162】
このステップS731の処理で内部メインメモリ142eや外部メインメモリ146に記憶させた方向に応じて、後述する図8のステップS829又はS831の処理では、立方体が回転するように表示する。すなわち、内部メインメモリ142eや外部メインメモリ146に記憶させた方向に沿って回転する態様で、立方体の画像を表示する。
【0163】
<ディスプレイ表示処理>
図8は、上述した図5のステップS519の処理で呼び出されて実行されるディスプレイ表示のためのサブルーチンを示すフローチャートである。このサブルーチンもCPU140によって実行される。
【0164】
最初に、表示面の1つが選択されたか否かを判断する(ステップS811)。この判断は、上述したステップS715と同様に、表示面選択コマンドを受信した否かの判断である。表示面の1つが選択されたと判別したときには(YES)、ポインタ画像が移動したか否かを判断する(ステップS813)。この判断は、上述したステップS721と同様に、表示面移動コマンドを受信した否かの判断である。ポインタ画像が移動していないと判別したときには(NO)、直ちに本サブルーチンを終了する。
【0165】
一方、ポインタ画像が移動したと判別したときには(YES)、ポインタ画像が移動した距離及び方向に応じて、選択された表示面の画像が移動する態様で表示する(ステップS815)。ポインタ画像が移動した距離及び方向は、上述したステップS725の処理で内部メインメモリ142eや外部メインメモリ146に記憶させた距離及び方向である。この処理によって、図15(b)→図15(c)や、図16(c)のように、選択された表示面の画像が移動するように表示される。
【0166】
次に、選択された表示面が、表示されている立方体の近くまで移動したか否かを判断する(ステップS817)。この判断は、選択された表示面と立方体との間の距離が、所定の距離より短くなったか否かを判断する処理である。選択された表示面が、立方体の近くまで移動したと判別したときには(YES)、選択された表示面の画像が、立方体の立体表面の画像に貼り付けられる態様で表示し(ステップS819)、本サブルーチンを終了する。このようにすることで、貼り付け作業を容易にでき、ゲームを迅速に進めることができる。たとえば、この処理によって、図15(c)や図16(b)のように、選択された表示面の画像が、立方体の立体表面の画像に貼り付けられる態様で表示される。
【0167】
一方、ステップS817の判断処理で、選択された表示面が、表示されている立方体の近くまで移動していないと判別したときには(NO)、選択された表示面が立方体から離れるように移動したか否かを判断する(ステップS821)。この判断は、選択された表示面と立方体との間の距離が、所定の距離以上になったか否かを判断する処理である。選択された表示面が立方体から離れるように移動したと判別したときには(YES)、選択された表示面の画像を、立方体の立体表面の画像から剥がれる態様で表示し(ステップS823)、本サブルーチンを終了する。また、上述したステップS821の判断処理で、選択された表示面が立方体から離れるように移動していないと判別したときには(NO)、直ちに本サブルーチンを終了する。
【0168】
上述したステップS811の判断処理で、表示面の1つが選択されていないと判別したときには(NO)、十字キー126aが押されたか否かを判断する(ステップS825)。十字キー126aが押されていないと判別したときには(NO)、直ちに本サブルーチンを終了する。
【0169】
十字キー126aが押されたと判別したときには(YES)、少なくとも1つ表示面が立方体の立体表面に貼り付けられているか否かを判断する(ステップS827)。少なくとも1つ表示面が立方体の立体表面に貼り付けられていると判別したときには(YES)、十字キー126aが押された方向に応じて、貼り付けられた表示面とともに立方体が回転する態様で表示し(ステップS829)、本サブルーチンを終了する。この処理によって、図15(c)及び図16(a)〜図16(c)に示すように、表示面が貼り付けられた立方体の画像が回転する態様で表示される。
【0170】
一方、少なくとも1つの表示面が立方体の立体表面に貼り付けられていないと判別したときには(NO)、十字キー126aが押された方向に応じて、立方体が回転する態様で表示し(ステップS831)、本サブルーチンを終了する。この処理によって、図15(a)及び図15(b)に示すように、表示面が貼り付けられていない立方体の画像が回転する態様で表示される。
【0171】
<テーブル更新処理>
図9は、上述した図5のステップS521の処理で呼び出されて実行されるテーブル更新処理のためのサブルーチンを示すフローチャートである。このサブルーチンもCPU140によって実行される。
【0172】
最初に、表示面が立方体に貼り付けられたか否かを判断する(ステップS911)。表示面が立方体に貼り付けられたと判別したときには(YES)、貼り付けられた表示面の向きを検出して、表示面の面番号と辺の辺番号とを、図13に示す貼り付け結果テーブルに書き込み(ステップS913)、面番号と辺の辺番号とを用いて、図14に示す判定用テーブルを更新する(ステップS915)。上述したように、貼り付け結果テーブルや判定用テーブルに書き込む面番号や辺番号は、表示面P1〜P6や、辺P1−L1〜P1−L4、P2−L1〜P2−L4、P3−L1〜P3−L4、P4−L1〜P4−L4、P5−L1〜P5−L4又はP6−L1〜P6−L4である。
【0173】
図13に示す貼り付け結果テーブルや、図14に示す判定用テーブルに示すように、立方体の立体表面の面番号や辺番号は予め書き込まれている。すなわち、立体表面C1〜C6、並びに辺C1−L1〜C1−L4、C2−L1〜C2−L4、C3−L1〜C3−L4、C4−L1〜C4−L4、C5−L1〜C5−L4及びC6−L1〜C6−L4は、結果テーブルや判定用テーブルに書き込まれている。
【0174】
プレイヤによって選択された表示面が、立方体の立体表面に貼り付けられたときには、ステップS913の処理によって、貼り付け結果テーブルにおいて、プレイヤによって選択された表示面を識別する面番号が、その表示面が貼り付けられた立体表面を識別する面番号に対応する記憶領域に書き込まれる。たとえば、プレイヤによって表示面P5が選択されて、立体表面C1に貼り付けられたときには、貼り付け結果テーブルの、立体表面C1に対応する記憶領域に「P5」が書き込まれる(図13参照)。
【0175】
さらに、プレイヤによって選択された表示面が、立方体の立体表面に貼り付けられたときには、ステップS913の処理によって、貼り付け結果テーブルにおいて、選択された表示面の回転角度や立方体の回転方向に応じて定まる辺の辺番号が、その表示面が貼り付けられた立体表面の辺を識別する辺番号に対応する記憶領域に書き込まれる。たとえば、プレイヤによって表示面P5が選択されて、立体表面C1に貼り付けられたときに、表示面の回転角度や立方体の回転方向とによって、表示面P5の辺P5−L1が立体表面C1の辺C1−L2に対応し、表示面P5の辺P5−L2が立体表面C1の辺C1−L3に対応し、表示面P5の辺P5−L3が立体表面C1の辺C1−L4に対応し、表示面P5の辺P5−L4が立体表面C1の辺C1−L1に対応する場合には、貼り付け結果テーブルにおいて、立体表面C1の辺C1−L2に対応する記憶領域に辺番号「P5−L1」が書き込まれ、立体表面C1の辺C1−L3に対応する記憶領域に辺番号「P5−L2」が書き込まれ、立体表面C1の辺C1−L4に対応する記憶領域に辺番号「P5−L3」が書き込まれ、立体表面C1の辺C1−L1に対応する記憶領域に辺番号「P5−L4」が書き込まれる(図13参照)。
【0176】
上述したステップS913の処理によって、貼り付け結果テーブルが更新された後、ステップS915の処理によって、判定用テーブルが更新される。上述したように、貼り付け結果テーブルが更新された場合には、図14に示すように、判定用テーブルの表示面対応辺関係の辺C1−L1に対応する記憶領域に、辺番号「P5−L4」が書き込まれ、辺C1−L2に対応する記憶領域に、辺番号「P5−L1」が書き込まれ、辺C1−L3に対応する記憶領域に、辺番号「P5−L2」が書き込まれ、辺C1−L4に対応する記憶領域に、辺番号「P5−L3」が書き込まれる。
【0177】
次に、全ての表示面が立方体に貼り付けられたか否かを判断する(ステップS917)。全ての表示面が立方体に貼り付けられていないと判別したときには(NO)、直ちに本サブルーチンを終了する。一方、全ての表示面が立方体に貼り付けられたと判別したときには(YES)、パズルが完成したか否かを判断する(ステップS919)。なお、全ての表示面が立方体の立体表面に貼り付けられたときには、図13に示す貼り付け結果テーブル及び図14に示す判定用テーブルの記憶領域の全てに、立体表面とその辺とに対応する面番号と辺番号とが記憶される。
【0178】
ステップS919の判断処理におけるパズルが完成したか否かの判断は、判定用テーブルに記憶された関係が、整合性成立テーブルの全ての関係を満たすか否かである。図12に示すように、整合性成立テーブルは、表示面P1〜P6を立方体に適切に貼り付けることができたときの表示面の面番号及び辺番号と、立体表面の面番号及び辺番号との関係を記憶するテーブルである。この図12に示した整合性成立テーブルの関係を全て満たしたときには、貼り付けられた6つの表示面P1〜P6によって立方体の全体で動画を連続的にかつ矛盾なく表示することができる。したがって、ステップS919の判断処理は、判定用テーブルに記憶された関係の各々が、整合性成立テーブルのいずれかに該当するか否かを判断する処理である。たとえば、1つの表示面でも一致しない場合には、その表示面では、整合性のない動画が表示される。たとえば、一の表示面で移動するように描かれたオブジェクトの画像が、その一の表示面の一の辺に到達したときに徐々に消失するとともに、そのオブジェクトの画像が、その一の表示面の一の辺と隣接してない他の辺から他の表示面に徐々に現れる態様で表示される。
【0179】
上述したステップS919の判断処理で、パズルが完成していないと判別したときには(NO)、直ちに本サブルーチンを終了する。一方、パズルが完成したと判別したときには(YES)、完成情報を生成し(ステップS921)、本サブルーチンを終了する。完成情報は、パズルが完成したことを示す情報であり、フラグなどの変数とするのが好ましい。
【0180】
上述したステップS911の判断処理で、表示面が立方体に貼り付けられていないと判別したときには(NO)、表示面が立方体から剥がされたか否かを判断する(ステップS923)。表示面が立方体から剥がされていないと判別したときには(NO)、直ちに本サブルーチンを終了する。
【0181】
表示面が立方体から剥がされたと判別したときには(YES)、剥がされた表示面を示す面番号と、その表示面の辺の辺番号とを、図13に示す貼り付け結果テーブルから削除し(ステップS925)、面番号と辺の辺番号とを用いて、図14に示す判定用テーブルを更新し(ステップS927)、本サブルーチンを終了する。
【0182】
この第1の実施の形態によるパズルゲームによれば、プレイヤは、オブジェクト(たとえば、キャラクタ)が表示面で移動する移動方向を視認して、オブジェクトの移動方向をヒントにして、組み合わせるべき表示面や、立方体に貼り付けるべき表示面を推察しつつ、パズルを解くことができる全く新しい立体パズルを提供できる。
【0183】
なお、第1の実施の形態では、「立体」の具体的な形状として立方体である場合を示したが、同じ形状の複数の表示面に組み合わせて組み立てることができるものであればよい。また、六面体と五面体とからなる、いわゆるサッカーボールのように、異なる形状の表示面を組み合わせて組み立てる「立体」でもよい。
【0184】
上述したように、第1の実施の形態によるゲームプログラムで用いる動画のデータは、表示面の表面に沿って二次元に移動可能なオブジェクトの画像や、二次元に近い範囲でのみ移動可能なオブジェクトの画像を表示する動画データである。したがって、表示面を立方体に適切に貼り付けてパズルを解けたときには、あくまでも立方体の表面に沿ってオブジェクトが移動する態様の動画が表示されるため、一の表示面から他の表示面にオブジェクトが移るときには、一の表示面と他の表示面と境界(辺)においてオブジェクトが折れ曲がるようにして表示される。
【0185】
なお、上述した第1の実施の形態によるゲームプログラムでは動画のデータを用いた場合を示したが、静止画のデータを用いて表示面に静止画を表示してもよい。このような場合であっても、「立体」を示す静止画像を連続的に表示できたり又は矛盾なく表示できたりすれば、パズルが解けたとすることができる。
【0186】
<<<第2の実施の形態>>>
上述したように、図1〜図4に示したゲームシステム100は、第2の実施の形態においても共通する。したがって、第2の実施の形態によるゲームプログラムは、ゲームシステム100において制御されて実行され、プレイヤによってパズルゲームが行われる。
【0187】
<第2の実施の形態のゲームの手順>
まず、第2の実施の形態によるゲームプログラムが実行されると、ディスプレイ134の画面の右側には、6つの表示面(複数の素片)の画像が表示され、画面の左側には、立体(集合立体)の画像が表示される。第1の実施の形態と同様に、第2の実施の形態における「立体」の具体的な形状は立方体であり(図10参照)、「6つの表示面」の各々の具体的な形状は正方形である(図11参照)。したがって、第2の実施の形態によるゲームプログラムが実行されると、図17に示すように、ディスプレイ134の画面の右側には、正方形の「6つの表示面」の画像が表示され、画面の左側には、立方体の「立体」の画像が表示される。上述した正方形の形状を有する6つの表示面が、「複数の素片」に対応し、立方体の形状を有する立体が「集合立体」に対応する。
【0188】
この第2の実施の形態のパズルゲームも、ディスプレイ134の映像によって示される仮想空間において、正方形の形状を有する「6つの表示面」を組み合わせて並べることによって、立方体の形状を有する「立体」を組み立てるパズルゲームである。第2の実施の形態のパズルゲームは、仮想空間で、正方形の形状を有する「6つの表示面」の各々を面素片として、立方体の形状を有する「立体」を構成する6つの面に、順次貼り付けていくパズルゲームである。第1の実施の形態と同様に、第2の実施の形態においても、「立体」を構成する6つの面C1、C2、C3、C4、C5及びC6を「立体表面」(図10参照)と称し、動画が表示される面素片であって、「立体表面」に貼り付けられる6つの面P1、P2、P3、P4、P5及びP6を「表示面」(図11参照)と称する。第1の実施の形態と同様に、「立体表面」は、立方体の形状の「立体」の外形を画定する表面である。なお、「表示面」を「立体表面」に貼り付けることができるので、「立体表面」の大きさ及び形状は、「表示面」の大きさ及び形状と同じである。
【0189】
したがって、第2の実施の形態においても、第1の実施の形態と同様に、表示面P1〜P6の「P1〜P6」が、表示面を識別するための面番号となる。また、辺P1−L1〜P1−L4、P2−L1〜P2−L4、P3−L1〜P3−L4、P4−L1〜P4−L4、P5−L1〜P5−L4及びP6−L1〜P6−L4が、辺を識別するための辺番号となる。同様に、立体表面C1〜C6の「C1〜C6」が、立体表面を識別するための面番号となる。また、辺C1−L1〜C1−L4、C2−L1〜C2−L4、C3−L1〜C3−L4、C4−L1〜C4−L4、C5−L1〜C5−L4及びC6−L1〜C6−L4が、辺を識別するための辺番号となる。第1の実施の形態と同様に、これらの面番号と辺番号とは、上述した図13に示す貼り付け結果テーブルや、図14に示す判定用テーブルを書き込む情報である。
【0190】
第2の実施の形態においても、ディスプレイ134の右側に表示されている6つの表示面(表示面P1〜P6)には、各種の動画が表示される。これらの6つの表示面P1〜P6を適切に組み合わせて、立方体を組み立てることができたときには、組み立てられた立方体の6つの面(組み合わされた表示面)の全体で動画を連続的にかつ矛盾なく表示することができる。言い換えれば、正方形の形状を有する6つの表示面P1〜P6を、立方体を構成する6つの立体表面C1〜C6に適切に貼り付けることができたときには、貼り付けられた6つの表示面P1〜P6によって立方体の全体で動画を連続的にかつ矛盾なく表示することができる。
【0191】
上述した第1の実施の形態では、6つの表示面P1〜P6の各々には、表示面の表面に沿ってオブジェクトが移動する態様の動画が表示されるものであった。これに対して、第2の実施の形態では、6つの表示面P1〜P6を透明なガラスのような透視面であるとして、立方体の内側に仮想的に配置されたオブジェクトを視認できる(透視できる)態様となるように、6つの表示面P1〜P6にオブジェクトの画像を表示する。なお、立方体の内側とは、立方体を構成する立体表面C1〜C6によって画定される領域を含む範囲をいう。したがって、6つの表示面P1〜P6を、立方体を構成する6つの立体表面C1〜C6に適切に貼り付けることができたときには、立方体に貼り付けられた6つの表示面P1〜P6に表示される画像によって、立方体の内側に仮想的に配置されたオブジェクトの画像を連続的にかつ矛盾なく表示することができる。このように、6つの表示面P1〜P6を適切に貼り付けることができたときには、6つの表示面P1〜P6に表示されたオブジェクトの画像によって、プレイヤは立方体の内側にオブジェクトが配置されたように視認することができるので、現実感のある画像を表示することができる。
【0192】
<動画データ>
上述したように、第2の実施の形態においても、ゲームプログラムを実行することによって、プレイヤはパズルゲームを行うことができる。上述したように、このパズルゲームは、正方形の形状を有する6つの表示面P1〜P6を、立方体を構成する6つの立体表面C1〜C6に適切に貼り付けることができたときには、貼り付けられた6つの表示面P1〜P6によって立方体の全体で動画を連続的にかつ矛盾なく表示して、パズルが解けたとするゲームである。したがって、第2の実施の形態によるゲームプログラムでも、6つの表示面P1〜P6が適切に貼り付けられたときには、連続的にかつ矛盾なく動画を表示できるような動画データを用いる。
【0193】
第2の実施の形態では、図11(b)に示したような6つの表示面P1〜P6の各々に所定の画像データを割り当て、6つの表示面P1〜P6を立方体の6つの立体表面C1〜C6に適切に貼り付けることができたときに、貼り付けられた表示面P1〜P6に表示される動画によって、立方体の全体で連続的に動画を表示できる動画データを用いればよい。図11(b)は、内部メインメモリ142eや外部メインメモリ146の所定の記憶領域に形成されたデータ領域を模式的に示す図であり、6つの表示面P1〜P6の各々の画像データが割り当てられて記憶される領域を示す図である。
【0194】
したがって、このような6つの表示面P1〜P6の各々に割り当てる所定の画像データを生成して、内部メインメモリ142eや外部メインメモリ146に記憶させればよい。なお、動画データは、複数の一定のものを光ディスク118に予め記憶させておいて内部メインメモリ142eや外部メインメモリ146に展開するようにしても、パズルゲームを開始する度に生成して内部メインメモリ142eや外部メインメモリ146に記憶させるようにしてもよい。
【0195】
6つの表示面P1〜P6の各々に割り当てた所定の画像データを、VRAM142dに書き込むことによって、6つの表示面P1〜P6の各々に対応させて動画を表示することができる。
【0196】
6つの表示面P1〜P6の各々に割り当てる動画データは、図18に示すようにして生成すればよい。図18に示すように、オブジェクトが配置されている仮想空間に、オブジェクトの像を仮想的に撮影するための仮想カメラを設置し、仮想カメラによってオブジェクトを撮影して仮想的に得られるデータを画像データ(動画データ)として用いる。
【0197】
具体的には、立方体を構成する6つの立体表面C1〜C6の各々を望むように6つの仮想カメラM1〜M6を、オブジェクトが配置されている仮想空間に設置する。仮想カメラM1は、立体表面C1を介してオブジェクトの像を仮想的に撮影する。仮想カメラM2は、立体表面C2を介してオブジェクトの像を仮想的に撮影する。仮想カメラM3は、立体表面C3を介してオブジェクトの像を仮想的に撮影する。仮想カメラM4は、立体表面C4を介してオブジェクトの像を仮想的に撮影する。仮想カメラM5は、立体表面C5を介してオブジェクトの像を仮想的に撮影する。仮想カメラM6は、立体表面C6を介してオブジェクトの像を仮想的に撮影する。
【0198】
さらに、たとえば、仮想カメラM1によって撮影されて仮想的に得られた画像データ(動画データ)を表示面P1に割り当てる。仮想カメラM2によって撮影されて仮想的に得られた画像データ(動画データ)を表示面P2に割り当てる。仮想カメラM3によって撮影されて仮想的に得られた画像データ(動画データ)を表示面P3に割り当てる。仮想カメラM4によって撮影されて仮想的に得られた画像データ(動画データ)を表示面P4に割り当てる。仮想カメラM5によって撮影されて仮想的に得られた画像データ(動画データ)を表示面P5に割り当てる。仮想カメラM6によって撮影されて仮想的に得られた画像データ(動画データ)を表示面P6に割り当てる。なお、このような動画データは、三次元立体画像データであるものが好ましい。
【0199】
このように構成した場合には、表示面P1を立体表面C1に貼り付け、表示面P2を立体表面C2に貼り付け、表示面P3を立体表面C3に貼り付け、表示面P4を立体表面C4に貼り付け、表示面P5を立体表面C5に貼り付け、表示面P6を立体表面C6に貼り付けたときに、貼り付けられた表示面P1〜P6によって、立方体の内側に仮想的に配置されたオブジェクトの画像を連続的にかつ矛盾なく表示することができ、パズルが解けたことになる。
【0200】
第2の実施の形態によるゲームプログラムにおいても、パズルを解くことができたか否かの判断は、第1の実施の形態と同様に、図12に示した整合性成立テーブルを用いて判断することができる。整合性成立テーブルは、表示面を立方体に適切に貼り付けることができたときの表示面の面番号及び辺番号と、立体表面の面番号及び辺番号との関係を記憶するテーブルであり、パズルの正答の関係を記憶するテーブルである。この整合性の関係は、予め定められて光ディスク118に記憶されており、パズルゲームの起動とともに、内部メインメモリ142eや外部メインメモリ146に展開される。表示面を立方体に適切に貼り付けることができたときには、この整合性の関係を全て満たし、パズルを解くことができたと判断することができる。
【0201】
<<第2の実施の形態のゲームの処理>>
第2の実施の形態のゲームの処理は、第1の実施の形態のゲームの処理と同様に、図5のゲーム実行基本処理と、図6のゲーム初期化処理と、図7のコントローラ操作処理と、図8のディスプレイ表示処理と、図9のテーブル更新処理とを実行する。
【0202】
第2の実施の形態でも、図17(b)に示すように、6つの表示面P1〜P6の表示位置は、3行2列の6箇所である。また、6つの表示面P1〜P6の回転角度は、0度、90度、180度及び270度の4通りである。回転角度は、6箇所の表示位置の各々で定めることができる。なお、第2の実施の形態でも、6つの表示面P1〜P6の形状を正方形としたので、回転角度を上述した4通りにしたが、6つの表示面P1〜P6の形状を他の形状にしたときには、その形状に応じて回転角度も適宜変更するのが好ましい。
【0203】
このようにすることで、第2の実施の形態でも、図6に示したゲーム初期化処理のサブルーチンにおけるステップS613の処理によって決定された表示位置に、回転角度による向きで6つの表示面P1〜P6の各々をディスプレイ134に表示することができる。この表示位置及び回転角度は、乱数を発生させてその値に応じて決定するのが好ましい。このようにすることで、ゲームを実行するたびに異なる条件で開始することができ、パズルを面白くすることができる。
【0204】
また、図9に示したテーブル更新処理において、整合性成立テーブルを用いて、6つの表示面P1〜P6を立方体の6つの立体表面C1〜C6に適切に貼り付けることができたか否かを判断することができる。すなわち、第2の実施の形態においても、第1の実施の形態と同様に、図9に示したテーブル更新処理を実行することで、図13に示した貼り付け結果テーブル及び図14に示した判定用テーブルの表示面の面番号と辺の辺番号とを更新して、図12に示した整合性成立テーブルを用いて、6つの表示面P1〜P6を適切に貼り付けることができたか否かを判断することができる。
【0205】
上述したように、第1の実施の形態によるゲームプログラムで用いる動画のデータは、表示面の表面などの二次元に移動可能なオブジェクトの画像や、二次元に近い範囲でのみ移動可能なオブジェクトの画像を表示する動画データであった。このため、表示面を立方体に貼り付けてパズルを解いたときには、あくまでも立方体の表面に沿ってオブジェクトが移動する態様の動画が表示されるため、一の表示面から他の表示面にオブジェクトが移るときに、折れ曲がるようにして表示され、現実感の薄いオブジェクトの画像が立方体に表示された。
【0206】
これに対して、第2の実施の形態によるゲームプログラムのパズルゲームは、立方体に内側に配置されたオブジェクトを視認する(透視する)ような態様で、オブジェクトの画像を表示面に表示するので、現実感のあるオブジェクトの画像を立方体に貼り付けられた表示面によって表示することができる。
【0207】
なお、上述した第2の実施の形態によるゲームプログラムでは動画のデータを用いた場合を示したが、静止画のデータを用いて表示面に静止画を表示してもよい。このような場合であっても、「立体」を示す静止画像を連続的に表示できたり又は矛盾なく表示できたりすれば、パズルが解けたとすることができる。
【0208】
<<<第3の実施の形態>>>
上述したように、図1〜図4に示したゲームシステム100は、第3の実施の形態においても共通する。したがって、第3の実施の形態によるゲームプログラムは、ゲームシステム100において制御されて実行され、プレイヤによってパズルゲームが行われる。
【0209】
<第3の実施の形態のゲームの手順>
まず、第3の実施の形態によるゲームプログラムが実行されると、ディスプレイ134の画面の右側には、3つの仮想的な「立体素片」の画像が表示され、画面の左側には、1つの仮想的な「集合立体」の画像が表示される。「集合立体」は、仮想空間において、3つの「立体素片」が配置されて形成された立体である。
【0210】
第3の実施の形態において、「集合立体」の全体的な形状は、所定の高さを有する円柱であり(図25(a)参照)、3つの「立体素片」の各々の具体的な形状は、「集合立体」の円柱の高さよりも高さが低くかつ「集合立体」の円柱と半径が同じ円柱である(図25(b)参照)。したがって、第3の実施の形態によるゲームプログラムが実行されると、図26に示すように、ディスプレイ134の画面の右側には、低い高さの円柱形状の3つの「立体素片」の画像が表示され、画面の左側には、「立体素片」よりも高い高さを有する円柱形状の「集合立体」の画像が表示される。
【0211】
第3の実施の形態によるゲームプログラムのパズルゲームは、第1の実施の形態や第2の実施の形態とは異なり、ディスプレイ134の映像によって示される仮想空間において、円柱形状を有する複数の「立体素片」を並べたり組み合わせたりすることによって、「立体素片」の高さよりも高い高さを有する円柱形状を有する「集合立体」を組み立てるゲームである。すなわち、上述した第1の実施の形態や第2の実施の形態のパズルゲームは、ディスプレイ134の映像によって示される仮想空間において、正方形の「面素片」を組み合わせて、所定の大きさと形状とを有する立体を組み立てるゲームであったが、第3の実施の形態のパズルゲームは、仮想空間において、「立体素片」を並べたり組み合わせたりして、所定の大きさと形状とを有する「集合立体」を組み立てるゲームである。
【0212】
上述したように、第3の実施の形態のパズルゲームは、円柱形状の3つの「立体素片」を並べたり組み合わせたりすることによって、円柱形状の「集合立体」を組み立てるゲームである。したがって、3つの「立体素片」を高さ方向に適切な順序で並べることで、「集合立体」を完成させることができる。また、3つの「立体素片」も「集合立体」も円柱形状を有するので、高さ方向に沿って延在する円柱の中心軸の周りに所定の角度だけ回転させて、3つの「立体素片」を配置することもできる。したがって、パズルゲームの初期化処理で、3つの「立体素片」の軸の周り角度を異ならしめて3つの「立体素片」を配置することによって、3つの「立体素片」が高さ方向に適切な順序となるように並べるだけでなく、3つの「立体素片」が中心軸の周りに適切な角度にもなるように配置して、「集合立体」を完成させるパズルゲームにすることができる。
【0213】
第3の実施の形態においては、円柱形状の「集合立体」を構成し、動画が表示される3つの立体の素片の各々を立体素片E1、E2及びE3(図25(b)参照)と称する。また、立体素片E1の上側の辺をE1−L1と称し下側の辺をE1−L2と称する。立体素片E2の上側の辺をE2−L1と称し下側の辺をE2−L2と称する。立体素片E3の上側の辺をE3−L1と称し下側の辺をE3−L2と称する。これらのE1−L1、E1−L2、E2−L1、E2−L2、E3−L1及びE3−L2が、立体素片E1、E2及びE3の辺を識別するための辺番号となる。この辺番号は、後述する図24に示す判定用テーブルに書き込む情報である。なお、第3の実施の形態においては、辺番号には、立体素片を識別するためのE1、E2及びE3も含まれており、辺番号を指定することによって、立体素片とその辺とを特定することができる。また、第3の実施の形態においては、第1の実施の形態や第2の実施の形態のパズルゲームとは異なり、3つの「立体素片」の適切な順序は、一義的に定まるため、貼り付け結果テーブルを用いずに、判定用テーブル(図24参照)のみを用いることができる。
【0214】
第3の実施の形態のパズルゲームでは、ディスプレイ134の右側に表示されている3つの立体素片E1〜E3には、各種の動画が表示される。これらの3つの立体素片E1〜E3を適切な順序でかつ適切な角度で並べて、円柱形状の「集合立体」を完成させることができたときには、並べられた3つの立体素片E1〜E3の全体で動画を連続的にかつ矛盾なく表示することができる。
【0215】
第3の実施の形態では、円柱形状の「集合立体」の表面(円筒状の表面)を透明なガラスのような透視面であるとして、「集合立体」の内側に仮想的に配置されたオブジェクトを視認できる(透視できる)態様となるように、3つの立体素片E1〜E3にオブジェクトの画像を表示する。ここで、「集合立体」の内側とは、円柱形状の「集合立体」を構成する円筒状の表面によって画定される領域を含む範囲をいう。なお、円柱は、円筒のみならず、円筒を挟む2つの底面も有するので、円筒状の表面のみならず、2つの底面を含めて画定される領域を、「集合立体」の内側としてもよい。
【0216】
したがって、3つの立体素片E1〜E3を適切に並べることができたときには、3つの立体素片E1〜E3に表示される画像によって、円柱形状の「集合立体」の内側に仮想的に配置されたオブジェクトの画像を連続的にかつ矛盾なく表示することができる。このように、3つの立体素片E1〜E3を適切に並べることができたときには、3つの立体素片E1〜E3に表示されたオブジェクトの画像によって、プレイヤは円柱形状の「集合立体」の内側にオブジェクトが配置されたように視認することができるので、現実感のある画像を表示することができる。
【0217】
<動画データ>
上述したように、第3の実施の形態においても、ゲームプログラムを実行することによって、プレイヤはパズルゲームを行うことができる。上述したように、このパズルゲームは、円柱の形状を有する3つの立体素片E1〜E3を適切な順序でかつ適切な角度で並べることができたときには、並べられた3つの立体素片E1〜E3によって、円柱形状の「集合立体」の全体で動画を連続的にかつ矛盾なく表示して、パズルが解けたとするゲームである。したがって、第3の実施の形態によるゲームプログラムでも、3つの立体素片E1〜E3が適切に並べられたときに、連続的にかつ矛盾なく動画を表示できるような動画データを用いる。
【0218】
第3の実施の形態では、図25(c)に示したような3つの立体素片E1〜E3の画像データ領域の各々に所定の画像データを割り当てる。この図25(c)は、内部メインメモリ142eや外部メインメモリ146の所定の記憶領域に形成されたデータ領域を模式的に示す図であり、3つの立体素片E1〜E3の各々の画像データが割り当てられて記憶される領域を示す図である。3つの立体素片E1〜E3を適切に並べることができたときに、並べられた3つの立体素片E1〜E3に表示される動画によって、円柱形状の「集合立体」の全体で連続的でかつ矛盾なく動画を表示できる動画データを用いればよい。なお、このような動画データは、三次元立体画像データであるものが好ましい。
【0219】
したがって、このような3つの立体素片E1〜E3の各々に割り当てる所定の画像データを生成して、内部メインメモリ142eや外部メインメモリ146に記憶させればよい。なお、動画データは、複数の一定のものを光ディスク118に予め記憶させておいて内部メインメモリ142eや外部メインメモリ146に展開するようにしても、パズルゲームを開始する度に生成して内部メインメモリ142eや外部メインメモリ146に記憶させるようにしてもよい。
【0220】
3つの立体素片E1〜E3の各々に割り当てた所定の画像データを、VRAM142dに書き込むことによって、3つの立体素片E1〜E3の各々に対応させて動画を表示することができる。
【0221】
3つの立体素片E1〜E3の各々に割り当てる動画データは、図25(a)及び図25(b)に示すようにして生成すればよい。図25(a)に示すように、オブジェクトが配置されている仮想空間に、オブジェクトの像を仮想的に撮影するための仮想カメラを設置し、仮想カメラによってオブジェクトを撮影したものとして仮想的に得られるデータを画像データ(動画データ)として用いる。
【0222】
具体的には、円柱形状の「集合立体」を構成する3つの立体表面D1〜D3の各々を望むように、3つの仮想カメラM1〜M3を、オブジェクトが配置されている仮想空間に設置する。3つの立体表面D1〜D3は、円柱形状の「集合立体」の円筒部分の外形を画定する表面である。図25(a)に示すように、オブジェクトが配置されている仮想空間において、3つの仮想カメラM1〜M3の各々を、円柱形状の「集合立体」の高さ方向に異なる位置に設置する。
【0223】
立体表面D1〜D3の各々は、円柱形状を有しており、高さ方向に沿って延在する中心軸を有する。仮想カメラM1は、立体表面D1の高さ方向の略中央に、かつ、立体表面D1の中心軸から所定の半径の位置に、かつ、中心軸の周りに360度に亘って回転可能に、かつ、立体表面D1に向かって設置されている。仮想カメラM2は、立体表面D2の高さ方向の略中央に、かつ、立体表面D2の中心軸から所定の半径の位置に、かつ、中心軸の周りに360度に亘って回転可能に、かつ、立体表面D2に向かって設置されている。仮想カメラM1は、立体表面D3の高さ方向の略中央に、かつ、立体表面D3の中心軸から所定の半径の位置に、かつ、中心軸の周りに360度に亘って回転可能に、かつ、立体表面D3に向かって設置されている。
【0224】
仮想カメラM1は、立体表面D1の表面(透視可能な面であるとして)を介してオブジェクトの像を、立体表面D1の中心軸の周りで回転しつつ仮想的に撮影する。仮想カメラM2は、立体表面D2の表面(透視可能な面であるとして)を介してオブジェクトの像を、立体表面D2の中心軸の周りで回転しつつ仮想的に撮影する。仮想カメラM3は、立体表面D3の表面(透視可能な面であるとして)を介してオブジェクトの像を、立体表面D3の中心軸の周りで回転しつつ仮想的に撮影する。仮想カメラM1〜M3の各々によってオブジェクトを仮想的に撮影されたとして生成した画像データは、内部メインメモリ142eや外部メインメモリ146の所定の記憶領域(図25(c)参照)に記憶させる。なお、仮想空間に配置されたオブジェクトは、仮想空間内で移動できるので、内部メインメモリ142eや外部メインメモリ146の記憶領域に記憶させる動画データは、所定のタイミングごとに更新する。このようにすることで、仮想空間で移動するオブジェクトを表示することができる。
【0225】
さらに、たとえば、仮想カメラM1によって撮影されて仮想的に得られた画像データ(動画データ)を立体素片E1に割り当てる。仮想カメラM2によって撮影されて仮想的に得られた画像データ(動画データ)を立体素片E2に割り当てる。仮想カメラM3によって撮影されて仮想的に得られた画像データ(動画データ)を立体素片E3に割り当てる。立体表面D1〜D3は、円筒形状を有するので、上述したように生成した画像データ(動画データ)を、座標変換や陰面処理やテクスチャマッピングなどの画像処理を施すによって、円筒形状に適合させて、円筒形状を有する立体表面D1〜D3の表面に画像を貼り付けるようにして仮想空間に存在するオブジェクトを表示すればよい。
【0226】
なお、内部メインメモリ142eや外部メインメモリ146の所定の記憶領域(図25(c)参照)に記憶された画像データは、長尺な矩形状の画像を表示できるように構成されているが、上述したように、座標変換などの画像処理を施すによって、円筒形状に変形して、円筒表面に画像を貼り付けるような態様で画像を表示することができる。
【0227】
このように画像データ(動画データ)を生成して内部メインメモリ142eや外部メインメモリ146の所定の記憶領域(図25(c)参照)に記憶させておくことにより、構成した場合には、立体素片E1を立体表面D1の位置に配置し、立体素片E2を立体表面D2の位置に配置し、立体素片E3を立体表面D3の位置に配置したときに、オブジェクトの画像を連続的にかつ矛盾なく表示することができ、パズルが解けたことになる。具体的には、上から、立体素片E1、E2及びE3の順に並べ、かつ、立体素片E1、E2及びE3の中心軸が一致するように又は同心状に配置し、これらの立体素片を適切な角度となるように並べたときに、並べられた立体素片E1、E2及びE3によって、円柱形状の「集合立体」の内側に仮想的に配置されたオブジェクトの画像を連続的にかつ矛盾なく表示することができ、パズルが解けたことになる。
【0228】
第3の実施の形態によるゲームプログラムにおいても、パズルを解くことができたか否かの判断は、第1の実施の形態や第2の実施の形態と同様に、図23に示す整合性成立テーブルを用いて判断することができる。図23に示す整合性成立テーブルは、3つの立体素片E1〜E3を適切に並べることができたときの辺番号の関係を記憶するテーブルであり、パズルの正答の関係を記憶するテーブルである。
【0229】
上述したように、第3の実施の形態においては、辺番号には、立体素片を識別するためのE1、E2及びE3も含まれており、辺番号を指定することによって、立体素片とその辺とを特定することができる。したがって、整合性成立テーブルには、辺番号の並びの関係を記憶させればよい。たとえば、図23に示した例では、辺番号は、上から順に、E1−L1、E1−L2、E2−L1、E2−L2、E3−L1及びE3−L2として定められて、整合性成立テーブルに記憶されている。この整合性の関係は、予め定められて光ディスク118に記憶されており、パズルゲームの起動とともに、内部メインメモリ142eや外部メインメモリ146に展開される。立体素片を集合立体に適切に貼り付けることができたときには、この整合性の関係を全て満たし、パズルを解くことができたと判断することができる。
【0230】
また、上述したように、第3の実施の形態のパズルゲームは、3つの立体素片E1〜E3が適切な順序となるように並べるだけでなく、3つの立体素片E1〜E3が適切な角度にもなるように配置して、「集合立体」を完成させるゲームである。したがって、パズルを解くことができたか否かの判断は、辺番号による判断だけでなく、3つの立体素片E1〜E3の全てが適切な角度で並べられたか否かの判断も要する。
【0231】
3つの立体素片E1〜E3の角度は、パズルゲームの初期化処理によって、初期値が定められる。また、プレイヤがコントローラ122を操作することによって、3つの立体素片E1〜E3を操作に応じて回転させることができ、そのときの角度を定めることができる。3つの立体素片E1〜E3の角度は、内部メインメモリ142eや外部メインメモリ146の所定の記憶領域に記憶される。3つの立体素片E1〜E3が並べられたときには、内部メインメモリ142eや外部メインメモリ146の所定の記憶領域から、3つの立体素片E1〜E3の角度を読み出し、それらの全てが一致するか否かを判断すればよい。
【0232】
なお、3つの立体素片E1〜E3は、連続的に回転できるようにはせずに、所定の角度ごとに回転できるようにすることで回転方向の位置合わせの操作を容易にすることができる。また、回転できる所定の角度を適宜定めることによって、回転方向の位置合わせの操作の困難性を決めることができる。たとえば、所定の角度を90度ごとにしたときには、大雑把に回転方向を定めればよいので、回転方向の位置合わせの操作を容易にすることができる。一方、所定の角度を5度ごとにしたときには、細かく回転方向を定めなければならないので、回転方向の位置合わせの操作を困難にすることができる。
【0233】
<<第3の実施の形態のゲームの処理>>
第3の実施の形態のゲームの処理は、第1の実施の形態のゲームや第2の実施の形態のゲームの処理と同様に、図5のゲーム実行基本処理と、図19のゲーム初期化処理と、図20のコントローラ操作処理と、図21のディスプレイ表示処理と、図22のテーブル更新処理とを、同様に実行すればよい。
【0234】
上述した図5に示したゲーム実行基本処理を実行することによって、第3の実施の形態によるパズルゲームを行うことができる。
【0235】
<ゲーム初期化処理>
図19は、第3の実施の形態におけるゲーム初期化処理のサブルーチンを示すフローチャートであり、上述した図5のステップS515の処理で呼び出されて実行される。このサブルーチンもCPU140によって実行される。
【0236】
最初に、CPU140は、3つの立体素片E1〜E3に表示する動画の基本構成を決定する(ステップS1911)。この処理は、上述したステップS611の処理と同様に、たとえば、動画の背景や、対象物であるキャラクタの種類と数や、他の表示物や数やら位置などを決定する。このステップS1911の処理によって、動画データが生成される。上述したように、動画データは、図25(c)に示した3つの立体素片E1〜E3の画像データ領域で表示できるデータである。
【0237】
次に、CPU140は、3つの立体素片E1〜E3の各々の表示位置及び回転角度を決定する(ステップS1913)。上述したように、パズルゲームが開始されると、図26に示すように、ディスプレイ134の画面の右側には、3つの立体素片E1〜E3の画像が表示される。パズルゲームであるので、このディスプレイ134の画面の右側に表示する3つの立体素片E1〜E3の表示位置やその回転角度は、パズルゲームが開始されるたびに異なるようにするのが好ましい。ステップS1913の処理は、パズルゲームが開始されるたびに異なるようにするために、3つの立体素片E1〜E3の表示位置やその回転角度を定める処理である。
【0238】
第3の実施の形態では、図25(b)や図26に示すように、3つの立体素片E1〜E3の表示位置は、3行1列の3箇所である。また、上述したように、3つの「立体素片」も「集合立体」も円柱形状を有するので、高さ方向に沿って延在する円柱の中心軸の周りに所定の角度だけ回転させて、3つの立体素片E1〜E3を配置することもできる。ステップS1913の処理で決定する回転角度は、3つの立体素片E1〜E3の中心軸の周りの回転角度である。
【0239】
上述したステップS1913の処理によって決定された表示位置に、回転角度による向きで3つの立体素片E1〜E3の各々をディスプレイ134に表示することができる。この表示位置及び回転角度は、乱数を発生させてその値に応じて決定するのが好ましい。このようにすることで、ゲームを実行するたびに異なる条件で開始することができ、パズルを面白くすることができる。
【0240】
次いで、CPU140は、ステップS1913の処理で決定した表示位置に回転角度が示す向きで3つの立体素片E1〜E3の各々をディスプレイ134に表示する(ステップS1915)。次に、3つの立体素片E1〜E3がまだ配置されていない「集合立体」の画像をディスプレイ134に表示し(ステップS1917)、本サブルーチンを終了する。本サブルーチンを実行することによって、たとえば、図26に示すような画面がディスプレイ134に表示される。
【0241】
<コントローラ操作処理>
図20は、第3の実施の形態におけるコントローラ操作処理のサブルーチンを示すフローチャートであり、上述した図5のステップS517の処理で呼び出されて実行される。このサブルーチンもCPU140によって実行される。
【0242】
最初に、プレーヤによってコントローラ122が操作されたか否かを判断する(ステップS2011)。このステップS2011の判断処理は、上述したステップS711と同様に、コントローラ122から所定の無線信号を示す電波が発せられたか否かを判断する処理である。プレーヤによってコントローラ122が操作されていないと判別したときには(NO)、上述した図5のステップS517に処理を戻す。
【0243】
一方、プレーヤによってコントローラ122が操作されたと判別したときには(YES)、コントローラ122から発せられた無線信号を受信しコマンドを解析する(ステップS2013)。
【0244】
コントローラ122から受信したコマンドが、立体素片選択コマンドであるか否かを判断する(ステップS2015)。立体素片選択コマンドであると判別したときには(YES)、3つの立体素片E1〜E3から1つの立体素片を選択する(ステップS2017)。たとえば、マウスポインタのようなポインタ画像をディスプレイ134に表示し、プレイヤがコントローラ122を操作することによって、そのポインタ画像を移動させて立体素片を選択することができる。たとえば、正方形の枠状のポインタ画像がディスプレイ134に表示されて、そのポインタ画像によって立体素片を選択することができる。
【0245】
次に、プレイヤによって選択された立体素片を識別するために素片番号を内部メインメモリ142eや外部メインメモリ146に記憶させ(ステップS2019)、本サブルーチンを終了する。たとえば、3つの立体素片E1〜E3の「E1〜E3」を、立体素片を識別するための素片番号として用いる。したがって、プレイヤによって立体素片E3が選択されたときには、内部メインメモリ142eや外部メインメモリ146に面番号「E3」が記憶される。
【0246】
上述したステップS2015の判断処理で、コントローラ122から受信したコマンドが立体素片選択コマンドでないと判別したときには(NO)、コントローラ122から受信したコマンドが立体素片移動コマンドであるか否かを判断する(ステップS2021)。コントローラ122から受信したコマンドが立体素片移動コマンドであると判別したときには(YES)、ポインタ画像を移動させた距離と方向とを検出し(ステップS2023)、その距離と方向とを内部メインメモリ142eや外部メインメモリ146に記憶させ(ステップS2025)、本サブルーチンを終了する。
【0247】
また、上述したように、プレイヤがコントローラ122を操作することによって、3つの立体素片E1〜E3を操作に応じて回転させることができ、そのときの角度を定めることができる。3つの立体素片E1〜E3の回転角度は、上述したステップS2025の処理によって、内部メインメモリ142eや外部メインメモリ146の所定の記憶領域に記憶される。
【0248】
このステップS2025の処理で内部メインメモリ142eや外部メインメモリ146に記憶させた距離と方向とに応じて、後述する図21のステップS2115の処理では、ポインタ画像とともに、選択された立体素片の画像を表示する。すなわち、内部メインメモリ142eや外部メインメモリ146に記憶させた方向に沿って、内部メインメモリ142eや外部メインメモリ146に記憶させた距離だけ移動する態様で、選択した立体素片の画像を表示する。
【0249】
上述したステップS2021の判断処理で、コントローラ122から受信したコマンドが立体素片移動コマンドでないと判別したときには(NO)、コントローラ122から受信したコマンドが集合立体回転コマンドであるか否かを判断する(ステップS2027)。コントローラ122から受信したコマンドが集合立体回転コマンドであると判別したときには(YES)、プレイヤによって十字キー126aが押された方向を検出し(ステップS2029)、その方向を内部メインメモリ142eや外部メインメモリ146に記憶させ(ステップS2031)、本サブルーチンを終了する。一方、コントローラ122から受信したコマンドが集合立体回転コマンドでないと判別したときには(NO)、上述した図5のステップS517に処理を戻す。
【0250】
このステップS2031の処理で内部メインメモリ142eや外部メインメモリ146に記憶させた方向に応じて、後述する図21のステップS2129又はS2131の処理では、集合立体が回転するように表示する。すなわち、内部メインメモリ142eや外部メインメモリ146に記憶させた方向に沿って回転する態様で、集合立体の画像を表示する。上述したように、集合立体も円柱形状を有するので、集合立体の高さ方向に沿って延在する中心軸の周りに所定の角度だけ回転させる。
【0251】
<ディスプレイ表示処理>
図21は、第3の実施の形態におけるディスプレイ表示処理のサブルーチンを示すフローチャートであり、上述した図5のステップS519の処理で呼び出されて実行される。このサブルーチンもCPU140によって実行される。
【0252】
最初に、立体素片の1つが選択されたか否かを判断する(ステップS2111)。この判断は、上述したステップS2015と同様に、立体素片選択コマンドを受信した否かの判断である。立体素片の1つが選択されたと判別したときには(YES)、ポインタ画像が移動したか否かを判断する(ステップS2113)。この判断は、上述したステップS2021と同様に、立体素片移動コマンドを受信した否かの判断である。ポインタ画像が移動していないと判別したときには(NO)、直ちに本サブルーチンを終了する。
【0253】
一方、ポインタ画像が移動したと判別したときには(YES)、ポインタ画像が移動した距離及び方向に応じて、選択された立体素片の画像が移動する態様で表示する(ステップS2115)。ポインタ画像が移動した距離及び方向は、上述したステップS2025の処理で内部メインメモリ142eや外部メインメモリ146に記憶させた距離及び方向である。この処理によって、ディスプレイ134において、選択された立体素片の画像が移動する態様で表示される。上述したように、ステップS2025の処理によって、3つの立体素片E1〜E3の回転角度が、内部メインメモリ142eや外部メインメモリ146の所定の記憶領域に記憶されており、ステップS2115で、回転角度を読み出すことにより、選択された立体素片は、読み出した回転角度だけ回転した態様で表示される。
【0254】
次に、選択された立体素片が、表示されている集合立体の近くまで移動したか否かを判断する(ステップS2117)。この判断は、選択された立体素片と集合立体との間の距離が、所定の距離より短くなったか否かを判断する処理である。選択された立体素片が、集合立体の近くまで移動したと判別したときには(YES)、選択された立体素片の画像が、集合立体の所定の位置に配置される態様で表示し(ステップS2119)、本サブルーチンを終了する。
【0255】
たとえば、選択された立体素片の画像が、集合立体の上側に近づいたときには、選択された立体素片の画像を集合立体の上側に配置される態様で表示する。また、選択された立体素片の画像が、集合立体の中間に近づいたときには、選択された立体素片の画像を集合立体の中間に配置される態様で表示する。さらに、選択された立体素片の画像が、集合立体の下側に近づいたときには、選択された立体素片の画像を集合立体の下側に配置される態様で表示する。このようにすることで、立体素片の配置の作業を容易にでき、ゲームを迅速に進めることができる。たとえば、この処理によって、ディスプレイ134において、選択された立体素片の画像が、集合立体の所定の位置に配置される態様で表示される。
【0256】
一方、ステップS2117の判断処理で、選択された立体素片が、集合立体の近くまで移動していないと判別したときには(NO)、選択された立体素片が集合立体から離れるように移動したか否かを判断する(ステップS2121)。この判断は、選択された立体素片と集合立体との間の距離が、所定の距離以上になったか否かを判断する処理である。選択された立体素片が集合立体から離れるように移動したと判別したときには(YES)、選択された立体素片の画像を、集合立体から離隔する態様で表示し(ステップS2123)、本サブルーチンを終了する。また、上述したステップS2121の判断処理で、選択された立体素片が集合立体から離れるように移動していないと判別したときには(NO)、直ちに本サブルーチンを終了する。
【0257】
上述したステップS2111の判断処理で、立体素片の1つが選択されていないと判別したときには(NO)、十字キー126aが押されたか否かを判断する(ステップS2125)。十字キー126aが押されていないと判別したときには(NO)、直ちに本サブルーチンを終了する。
【0258】
十字キー126aが押されたと判別したときには(YES)、少なくとも1つの立体素片が集合立体に配置されているか否かを判断する(ステップS2127)。少なくとも1つの立体素片が集合立体に配置されていると判別したときには(YES)、十字キー126aが押された方向に応じて、配置された立体素片とともに集合立体が回転する態様で表示し(ステップS2129)、本サブルーチンを終了する。この処理によって、ディスプレイ134において、立体素片が配置された集合立体の画像が回転する態様で表示される。
【0259】
一方、少なくとも1つの立体素片が集合立体に配置されていないと判別したときには(NO)、十字キー126aが押された方向に応じて、集合立体が回転する態様で表示し(ステップS2131)、本サブルーチンを終了する。この処理によって、ディスプレイ134において、立体素片が配置されていない集合立体の画像が回転する態様で表示される。
【0260】
<テーブル更新処理>
図22は、第3の実施の形態におけるテーブル更新処理のサブルーチンを示すフローチャートであり、上述した図5のステップS521の処理で呼び出されて実行される。このサブルーチンもCPU140によって実行される。
【0261】
最初に、立体素片が集合立体に配置されたか否かを判断する(ステップS2211)。立体素片が集合立体に配置されたと判別したときには(YES)、配置された立体素片の辺番号と回転角度とを、図24に示す判定用テーブルに書き込む(ステップS2213)。上述したように、判定用テーブルに書き込む辺番号は、E1−L1、E1−L2、E2−L1、E2−L2、E3−L1及びE3−L2である。上述したように、立体素片E1、E2及びE3の順に並べ、かつ、立体素片E1、E2及びE3の中心軸が一致するように又は同心状に配置し、これらの立体素片を適切な角度となるように並べたときに、並べられた立体素片E1、E2及びE3によって、円柱形状の「集合立体」の内側に仮想的に配置されたオブジェクトの画像を連続的にかつ矛盾なく表示することができ、パズルが解けたことになる。
【0262】
図24の判定用テーブルに示した例で、順番の「1」は、集合立体の上側を示し、順番の「2」は、集合立体の中間を示し、順番の「3」は、集合立体の下側を示す。したがって、プレイヤによって選択された立体素片が集合立体の上側に配置されたときには、ステップS2213の処理によって、「1」に対応する辺番号の記憶領域及び回転角度の記憶領域に、辺番号及び回転角度が記憶される。また、プレイヤによって選択された立体素片が集合立体の中間に配置されたときには、ステップS2213の処理によって、「2」に対応する辺番号の記憶領域及び回転角度の記憶領域に、辺番号及び回転角度が記憶される。さらに、プレイヤによって選択された立体素片が集合立体の下側に配置されたときには、ステップS2213の処理によって、「3」に対応する辺番号の記憶領域及び回転角度の記憶領域に、辺番号及び回転角度が記憶される。
【0263】
図24に示した判定用テーブルに示した例では、「2」に対応する辺番号の記憶領域及び回転角度の記憶領域に、辺番号E3−L2及びE3−L1と回転角度150度とが記憶されている。
【0264】
次に、全ての立体素片が集合立体に配置されたか否かを判断する(ステップS2215)。全ての立体素片が集合立体に配置されていないと判別したときには(NO)、直ちに本サブルーチンを終了する。一方、全ての立体素片が集合立体に配置されたと判別したときには(YES)、パズルが完成したか否かを判断する(ステップS2217)。なお、全ての立体素片が集合立体に配置されたときには、図24に示す判定用テーブルの記憶領域の全てに、辺番号と回転角度とが記憶される。
【0265】
ステップS2217の判断処理におけるパズルが完成したか否かの判断は、判定用テーブルに記憶された辺番号が、図23に示す整合性成立テーブルのものと一致し、かつ、判定用テーブルに記憶された回転角度の全てが同じであるか否かである。図23に示すように、整合性成立テーブルは、3つの立体素片E1〜E3を適切な順序でかつ適切な角度で並べることができたときの辺番号の関係を記憶するテーブルである。判定用テーブルに記憶された辺番号が、図23に示した整合性成立テーブルのものと一致し、かつ、判定用テーブルに記憶された回転角度の全てが同じであるときには、集合立体に配置された3つの立体素片E1〜E3によって集合立体の全体で動画を連続的にかつ矛盾なく表示することができる。したがって、整合性成立テーブルの辺番号が1つでも一致しない場合には、集合立体では、整合性のない動画が表示される。
【0266】
上述したステップS2217の判断処理で、パズルが完成していないと判別したときには(NO)、直ちに本サブルーチンを終了する。一方、パズルが完成したと判別したときには(YES)、完成情報を生成し(ステップS2219)、本サブルーチンを終了する。完成情報は、パズルが完成したことを示す情報であり、フラグなどの変数とするのが好ましい。
【0267】
上述したステップS2211の判断処理で、立体素片が集合立体に配置されていないと判別したときには(NO)、立体素片が集合立体から離隔したか否かを判断する(ステップS2221)。立体素片が集合立体から離隔していないと判別したときには(NO)、直ちに本サブルーチンを終了する。
【0268】
立体素片が集合立体から離隔したと判別したときには(YES)、離隔した立体素片を示す辺番号を、図24に示す判定用テーブルから削除し(ステップS2223)、本サブルーチンを終了する。
【0269】
<<<<ゲームプログラムの概要>>>>
本発明の実施の形態におけるゲームプログラムは、
パズルゲームを実行するためのゲームプログラムであって、
複数の素片(表示面P1、P2、P3、P4、P5及びP6、又は立体素片E1、E2及びE3)と、前記複数の素片が並べられる集合立体(立方体又は円柱形状の「集合立体」)とが表示される表示手段(ディスプレイ134)と、
プレイヤによって操作され、操作に応じた操作信号を発する操作手段(コントローラ122)と、
前記操作信号から発せられた前記操作信号に応じて、以下の(1−1)〜(1−3)の処理を実行して、前記複数の素片と前記集合立体とを前記表示手段に表示する制御手段(CPU140)と、
前記パズルゲームの正答を定めた整合性データ(整合性成立テーブル)と、前記複数の素片の各々に表示される画像の画像データと、が記憶された記憶手段(内部メインメモリ142e又は外部メインメモリ146)と、を有するゲーム装置(ゲーム装置112)において実行され、
前記整合性データは、前記パズルゲームが正答であるときに前記集合立体に並べられた素片の配置の関係を示すデータであり、
前記画像データは、前記表示手段において、仮想空間にオブジェクトが存在する態様で前記複数の素片の各々で表示するためのデータであることを特徴とする。
(1−1) 前記操作信号に応じて、前記素片を移動させる態様で表示する処理(ステップS815又はS2115)、
(1−2) 前記複数の素片が並べられたときに、前記整合性データを参照して、パズルゲームに正答したか否かを判断する処理(S919又はS2217)、及び
(1−3) 前記パズルゲームに正答したときには、前記複数の素片によって前記オブジェクトが整合して仮想空間に存在する態様で前記表示手段において表示する処理(ステップS819又はS2119)。
【0270】
この構成によれば、予め定められた整合性データを用いてパズルゲームに正答したか否かを判断するので、正答したか否かを迅速かつ的確に判別することができる。また、パズルゲームに正答したときに表示されるであろうオブジェクトの全体の画像を推測しながら、素片を集合立体に配置してパズルゲームを解いていくので、新しい立体組み立てパズルを提供することができる。さらに、パズルゲームに正答したときには、仮想空間においてオブジェクトの全体が整合して表示されるので、パズルに正答したか否かを容易に判断することができる。
【0271】
また、本発明の実施の形態におけるゲームプログラムは、
前記複数の素片の各々は、平面形状を有する平面素片(表示面P1、P2、P3、P4、P5及びP6)であり、
前記画像データは、前記平面素片の表面に沿って前記オブジェクトを連続的に移動する態様で表示するための動画データであることを特徴とする。
【0272】
この構成によれば、オブジェクトは移動する態様で平面素片の表面に沿って表示されるので、時間的に変化する画像が平面素片に表示され、正答となるオブジェクトの画像を推測することが困難になり面白みのあるパズルゲームを提供することができる。
【0273】
さらに、本発明の実施の形態におけるゲームプログラムは、
前記複数の素片の各々は、平面形状を有する平面素片(表示面P1、P2、P3、P4、P5及びP6)であり、
前記集合立体は、前記集合立体の外形を画定しかつ透視可能な複数の立体表面を有し、
前記画像データは、前記集合立体の内側の仮想空間に存在するオブジェクトを前記複数の立体表面の各々を介して仮想カメラによって撮影したものとして得られた三次元立体画像データであって、
前記(1−1)の処理は、
(3−1) 前記操作信号に応じて平面素片を移動させて複数の立体表面のいずれかに並べる処理であり(ステップS815)、
前記(1−3)の処理は、
(3−3) 前記パズルゲームに正答したときには、前記集合立体に並べられた前記平面素片によって前記集合立体の内側の仮想空間においてオブジェクトが整合して存在する態様で前記表示手段において表示する処理(ステップS819)であることを特徴とする。
【0274】
この構成によれば、パズルゲームに正答したときには、集合立体の内側に形成された仮想空間にオブジェクトが整合して存在するように表示されるので、現実感のあるオブジェクトの画像を表示することができるとともに、現実感のある画像を見るためにパズルゲームに正答しようとする動機をプレイヤに与えることができる。また、三次元立体画像データを用いたことによって立体的なオブジェクトの画像を表示できるので、正答となるオブジェクトの全体の形状や大きさや色などを推測することを難しくして面白みのあるパズルゲームを提供することができる。
【0275】
さらにまた、本発明の実施の形態におけるゲームプログラムは、
前記複数の素片の各々は、立体形状を有する立体素片(立体素片E1、E2及びE3)であり、
前記集合立体は、前記集合立体の外形を画定しかつ透視可能な複数の立体表面を有し、
前記画像データは、前記集合立体の内側の仮想空間に存在するオブジェクトを前記複数の立体表面の各々を介して仮想カメラによって撮影したものとして得られた三次元立体画像データであって、
前記(1−1)の処理は、
(4−1) 前記操作信号に応じて、立体素片を移動させて前記集合立体を組み立てる処理であり(ステップS2115)、
前記(1−3)の処理は、
(4−3) 前記パズルゲームに正答したときには、前記集合立体として組み立てられた前記立体素片によって、前記集合立体の内側の仮想空間においてオブジェクトが整合して存在する態様で前記表示手段において表示する処理(ステップS2119)であることを特徴とする。
【0276】
この構成によれば、立体形状を有する立体素片によって集合立体を組み立てるので、パズルをより難しくすることができる。また、三次元立体画像データを用いたことにより、集合立体だけでなく立体素片にも立体的なオブジェクトの画像を表示できるので、現実感のある画像を表示して、正答となるオブジェクトの全体の形状や大きさや色などを推測することをさらに難しくして、より面白みのあるパズルゲームを提供することができる。
【0277】
また、本発明の実施の形態におけるゲームプログラムは、
仮想カメラは、前記集合立体の高さ方向の複数の位置に配置された複数の仮想撮影カメラ(M1〜M3)であり、
前記三次元立体画像データは、前記複数の仮想撮影カメラの各々に応じた高さで前記集合立体の中心からの距離を一定に保ちつつ前記複数の仮想撮影カメラの各々が前記集合立体を周回して撮影したデータであることを特徴とする。
【0278】
この構成によれば、三次元立体画像データは、集合立体を仮想的に周回して撮影したものとして生成した画像データであるので、複数の立体素片の各々に表示する画像を、回転角度方向を異ならしめて表示することができる。このようにしたことにより、複数の立体素片の並びだけでなく、複数の立体素片の各々の回転角度も調整しつつパズルを解く必要があるので、正答となるオブジェクトの全体の形状や大きさや色などの推測をさらに難しくしたパズルゲームを提供することができる。
【符号の説明】
【0279】
112 ゲーム装置(ゲーム装置)
122 コントローラ(操作手段)
134 ディスプレイ(表示手段)
140 CPU(制御手段)
142e 内部メインメモリ(記憶手段)
146 外部メインメモリ(記憶手段)
【技術分野】
【0001】
仮想空間に存在するオブジェクトを表示してパズルを解くゲームプログラムに関する。
【背景技術】
【0002】
従来、観賞する者に所定の映像を視認させる映像シミュレーション装置があった。この従来の映像シミュレーション装置は、観賞する者の全体を覆うように形成されたスクリーンに各種の画像を表示することによって、観賞する者が、その場所に実際にいるという錯覚を起こす程に高い臨場感を味わえるようにしたものであった(たとえば、特許文献1参照)。
【0003】
また、プレイヤの競技姿勢を検出して、検出した競技姿勢に応じて又は任意に、ディスプレイ装置に表示する映像の視点を変化させて三次元立体画像を表示する遊技装置があった(たとえば、特許文献2参照)。
【0004】
さらに、車両に乗ってプレイするレースゲームを行うゲーム装置もあった。このゲーム装置は、三次元空間で車両が移動するときの車両の傾きをリアルタイムで反映して、三次元立体画像を表示するものであった。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平7−129789号公報
【特許文献2】特開平7−116343号公報
【特許文献3】特開平10−21425号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来の映像シミュレーション装置は、観賞する者の全体を覆うように形成されたスクリーンを要していたため、装置全体が大きくならざるを得なかった。ゲームセンタなどの店舗のように、一定の位置に設置せざるを得なかった。また、観賞する者が操作して進めるものではなかったため、観賞する者を積極的に参加させることができず、飽きられやすい可能性があった。
【0007】
また、プレイヤの競技姿勢に応じて又は任意に視点を変化させる遊技装置は、視点を異ならしめた単一の三次元立体画像をディスプレイに表示するものであり、プレイヤは、表示された単一の画像のみを視認してゲームを進めるものであった。このため、各種の視点の方向からの情報を用いてオブジェクトを推定するものではなかった。
【0008】
さらに、三次元空間で車両が移動するときの車両の傾きをリアルタイムで反映して、三次元立体画像を表示するものも、同様に、単一の画像のみを視認してゲームを進めるものであり、各種の視点の方向からの情報を用いてオブジェクトを推定するものではなかった。
【0009】
本発明は、上述の点に鑑みてなされたものであり、その目的とするところは、表示された複数の画像を配置することによって、仮想空間に存在するオブジェクトの全体像を推測しつつパズルを解くことができるパズルゲームのゲームプログラムを提供することにある。
【課題を解決するための手段】
【0010】
本発明の実施の形態に係る特徴は、
パズルゲームを実行するためのゲームプログラムであって、
複数の素片と、前記複数の素片が配置される集合立体とが表示される表示手段と、
プレイヤによって操作され、操作に応じた操作信号を発する操作手段と、
前記操作信号から発せられた前記操作信号に応じて、以下の(1−1)〜(1−3)の処理を実行して、前記複数の素片と前記集合立体とを前記表示手段に表示する制御手段と、
前記パズルゲームの正答を定めた整合性データと、前記複数の素片の各々に表示される画像の画像データと、が記憶された記憶手段と、を有するゲーム装置において実行され、
前記整合性データは、前記パズルゲームが正答であるときに前記集合立体に並べられた素片の配置の関係を示すデータであり、
前記画像データは、前記表示手段において、仮想空間にオブジェクトが存在する態様で前記複数の素片の各々で表示するためのデータであることである。
(1−1) 前記操作信号に応じて、前記素片を移動させる態様で表示する処理、
(1−2) 前記複数の素片が並べられたときに、前記整合性データを参照して、パズルゲームに正答したか否かを判断する処理、及び
(1−3) 前記パズルゲームに正答したときには、前記複数の素片によって前記オブジェクトが整合して仮想空間に存在する態様で前記表示手段において表示する処理。
【0011】
この構成によれば、予め定められた整合性データを用いてパズルゲームに正答したか否かを判断するので、正答したか否かを迅速かつ的確に判別することができる。また、パズルゲームに正答したときに表示されるであろうオブジェクトの全体の画像を推測しながら、素片を集合立体に配置してパズルゲームを解いていくので、新しい立体組み立てパズルを提供することができる。さらに、パズルゲームに正答したときには、仮想空間においてオブジェクトの全体が整合して表示されるので、パズルに正答したか否かを容易に判断することができる。
【0012】
また、本発明の実施の形態に係る特徴は、上述した構成において、
前記複数の素片の各々は、平面形状を有する平面素片であり、
前記画像データは、前記平面素片の表面に沿って前記オブジェクトを連続的に移動する態様で表示するための動画データであることである。
【0013】
この構成によれば、オブジェクトは移動する態様で平面素片の表面に沿って表示されるので、時間的に変化する画像が平面素片に表示され、正答となるオブジェクトの画像を推測することが困難になり面白みのあるパズルゲームを提供することができる。
【0014】
本発明は、これらに限定されるものではないが、実施の形態を参照しつつ、本発明のプログラムをゲームシステム100で実行する場合の具体例を簡単に説明する。
【0015】
例えば、集合立体として、本実施の形態の図10に示すような多面体(正六面体)を採用した場合に、前記素片を前記操作手段で操作して、前記整合性データと一致させて正答となるように素片の画像を移動させることで、ゲームシステム100の表示手段(ディスプレイ134)上でゲームが実行される。そして、前記表示手段に表示された前記素片は、前記正六面体の面の各々と同一形状であり、オブジェクトを移動させる映像を表示するスクリーンとして機能する。本発明のゲームプログラムを、ゲームシステム100の制御手段であるCPU140によって実行することで、このスクリーンとして機能する素片上でオブジェクトが連続的に移動する態様を、前記素片ごとに割り当てられたムービデータ(画像データ)を再生することによって実現する。
【0016】
そして、このスクリーンとして機能する素片に表示する画像データは、たとえば、図16のように、オブジェクトであるフィッシュ(魚)が矩形状の各素片の辺を跨って移動する態様で表示されるように生成されて、ゲームシステム100の内部メインメモリ142eや外部メインメモリ146に記憶されている。この内部メインメモリ142eや外部メインメモリ146に記憶される画像データは、プレイヤに正答を推測させるために、正答となる素片と素片とを連結する辺を跨って動的にオブジェクトが移動する画像データとして予め用意しておくことが好ましい。
【0017】
つまり、素片内のみを移動するオブジェクトを表示する部分的な画像データを、素片の各々に割り当てるのではなく、素片に跨ってオブジェクトが移動する態様の全体的な画像データを予め用意しておくことが、パズルを完成させてプレイヤに解き易くするための重要な要素となる。例えば、後述する図15の(b)の素片Aと素片Bとに示したように、素辺Bの左辺近くのオブジェクトとしての魚F2の頭部分が欠如しているが、その頭部分に相当するオブジェクトとしての魚F1の頭が素片Aに表示されていることから、素片Aと素片Bとを連結させるように操作することが正答になるであろうと、プレイヤに推測させることができる。
【0018】
さらに、本発明の実施の形態に係る特徴は、上述した構成において、
前記複数の素片の各々は、平面形状を有する平面素片であり、
前記集合立体は、前記集合立体の外形を画定しかつ透視可能な複数の立体表面を有し、
前記画像データは、前記集合立体の内側の仮想空間に存在するオブジェクトを前記複数の立体表面の各々を介して仮想カメラによって撮影したものとして得られた三次元立体画像データであって、
前記(1−1)の処理は、
(3−1) 前記操作信号に応じて平面素片を移動させて複数の立体表面のいずれかに並べる処理であり、
前記(1−3)の処理は、
(3−3) 前記パズルゲームに正答したときには、前記集合立体に並べられた前記平面素片によって前記集合立体の内側の仮想空間においてオブジェクトが整合して存在する態様で前記表示手段において表示する処理であることである。
【0019】
この構成によれば、パズルゲームに正答したときには、集合立体の内側に形成された仮想空間にオブジェクトが整合して存在するように表示されるので、現実感のあるオブジェクトの画像を表示することができるとともに、現実感のある画像を見るためにパズルゲームに正答しようとする動機をプレイヤに与えることができる。また、三次元立体画像データを用いたことによって立体的なオブジェクトの画像を表示できるので、正答となるオブジェクトの全体の形状や大きさや色などを推測することを難しくして面白みのあるパズルゲームを提供することができる。
【0020】
さらにまた、本発明の実施の形態に係る特徴は、上述した構成において、
前記複数の素片の各々は、立体形状を有する立体素片であり、
前記集合立体は、前記集合立体の外形を画定しかつ透視可能な複数の立体表面を有し、
前記画像データは、前記集合立体の内側の仮想空間に存在するオブジェクトを前記複数の立体表面の各々を介して仮想カメラによって撮影したものとして得られた三次元立体画像データであって、
前記(1−1)の処理は、
(4−1) 前記操作信号に応じて、立体素片を移動させて前記集合立体を組み立てる処理であり、
前記(1−3)の処理は、
(4−3) 前記パズルゲームに正答したときには、前記集合立体として組み立てられた前記立体素片によって、前記集合立体の内側の仮想空間においてオブジェクトが整合して存在する態様で前記表示手段において表示する処理であることである。
【0021】
この構成によれば、立体形状を有する立体素片によって集合立体を組み立てるので、パズルをより難しくすることができる。また、三次元立体画像データを用いたことにより、集合立体だけでなく立体素片にも立体的なオブジェクトの画像を表示できるので、現実感のある画像を表示して、正答となるオブジェクトの全体の形状や大きさや色などを推測することをさらに難しくして、より面白みのあるパズルゲームを提供することができる。
【0022】
また、本発明の実施の形態に係る特徴は、上述した構成において、
仮想カメラは、前記集合立体の高さ方向の複数の位置に配置された複数の仮想撮影カメラであり、
前記三次元立体画像データは、前記複数の仮想撮影カメラの各々に応じた高さで前記集合立体の中心からの距離を一定に保ちつつ前記複数の仮想撮影カメラの各々が前記集合立体を周回して撮影したデータであることである。
【0023】
この構成によれば、三次元立体画像データは、集合立体を仮想的に周回して撮影したものとして生成した画像データであるので、複数の立体素片の各々に表示する画像を、回転角度方向を異ならしめて表示することができる。このようにしたことにより、複数の立体素片の並びだけでなく、複数の立体素片の各々の回転角度も調整しつつパズルを解く必要があるので、正答となるオブジェクトの全体の形状や大きさや色などの推測をさらに難しくしたパズルゲームを提供することができる。
【発明の効果】
【0024】
表示された複数の画像を配置することによって、仮想空間に存在するオブジェクトの全体像を推測しつつパズルを解くことができるパズルゲームを提供することができる。
【図面の簡単な説明】
【0025】
【図1】本発明の実施の形態におけるゲームシステム100を示す概略図である。
【図2】ゲームシステム100の電気的な構成を示すブロック図である。
【図3】コントローラ122の外観を示す図である。
【図4】図3に示すコントローラ122の電気的な構成を示すブロック図である。
【図5】第1の実施の形態のパズルゲームであり、CPU140によって実行されるパズルゲームの基本処理を示すフローチャートである。
【図6】第1の実施の形態のパズルゲームの初期化を行うためのサブルーチンを示すフローチャートである。
【図7】第1の実施の形態のパズルゲームのコントローラ操作のためのサブルーチンを示すフローチャートである。
【図8】第1の実施の形態のパズルゲームのディスプレイ表示のためのサブルーチンを示すフローチャートである。
【図9】第1の実施の形態のパズルゲームのテーブル更新の処理のためのサブルーチンを示すフローチャートである。
【図10】第1の実施の形態のパズルゲームで用いる立方体を示す斜視図である。
【図11】第1の実施の形態のパズルゲームで用いる動画データの表示領域(a)と、表示面の面番号及び表示面の各々を構成する辺の辺番号(b)とを示す図である。
【図12】第1の実施の形態のパズルゲームで用いる整合性成立テーブルを示す表である。
【図13】第1の実施の形態のパズルゲームで用いる貼り付け結果テーブルを示す表である。
【図14】第1の実施の形態のパズルゲームで用いる判定用テーブルを示す表である。
【図15】第1の実施の形態のパズルゲームの例を示す図である。
【図16】第1の実施の形態のパズルゲームの例を示す図である。
【図17】第2の実施の形態のパズルゲームの例を示す図である。
【図18】第2の実施の形態のパズルゲームの例を示す図である。
【図19】第3の実施の形態のパズルゲームの初期化を行うためのサブルーチンを示すフローチャートである。
【図20】第3の実施の形態のパズルゲームのコントローラ操作のためのサブルーチンを示すフローチャートである。
【図21】第3の実施の形態のパズルゲームのディスプレイ表示のためのサブルーチンを示すフローチャートである。
【図22】第3の実施の形態パズルゲームのテーブル更新の処理のためのサブルーチンを示すフローチャートである。
【図23】第3の実施の形態のパズルゲームで用いる整合性成立テーブルを示す表である。
【図24】第3の実施の形態のパズルゲームで用いる判定用テーブルを示す表である。
【図25】第3の実施の形態のパズルゲームの例を示す図である。
【図26】第3の実施の形態のパズルゲームの例を示す図である。
【発明を実施するための形態】
【0026】
<<<<本実施の形態によるゲームプログラムの概略>>>>
【0027】
本発明の実施の形態に係る特徴は、
パズルゲームを実行するためのゲームプログラムであり、表示手段と操作手段と制御手段と記憶手段と、を有するゲーム装置において実行されるゲームプログラムである。
【0028】
表示手段には、複数の素片と集合立体とが表示される。素片は、面で構成された面素片や、立体で構成された立体素片がある。面素片や立体素片を構成する面は、平面でも曲面でもよい。ゲームを進めることによって、集合立体に複数の素片が配置される。
【0029】
操作手段は、プレイヤによって操作されることができ、そのプレイヤによる操作に応じた操作信号を発する。
【0030】
制御手段は、操作信号から発せられた操作信号に応じて、後述する(1−1)〜(1−3)の処理を実行する。さらに、制御手段は、これらの(1−1)〜(1−3)の処理を実行することによって、上述した複数の素片と集合立体とを表示するための表示制御信号を表示手段に出力する。
【0031】
記憶手段は、整合性データと画像データとを記憶する。整合性データは、パズルゲームの正答を定めたデータであり、予め定められたデータである。具体的には、整合性データは、集合立体に並べられた素片の配置の関係を示すデータであり、パズルゲームが正答であるときの配置の関係を示すデータである。この素片の配置は、素片の並び方や組合せや素片の向きなどの情報であり、整合性データは、パズルゲームが正答であるときの素片の配置を示す情報である。この整合性データを参照することによって、パズルゲームに正答できたか否かを判断することができる。
【0032】
この整合性データは、素片が集合立体に並べられたときに、隣り合うべき素片の配置の関係を示すデータであるのが好ましい。さらに、整合性データは、素片そのものを識別するための識別情報と、素片が面素片である場合には、面素片を構成する辺を識別する識別情報と、素片が立体素片である場合には、立体素片を構成する面や辺を識別する識別情報とからなるものが好ましい。このような情報を用いることによって、パズルゲームが正答であるときの素片の並び方や組合せや素片の向きなどを特定できる整合性データを定めることができる。
【0033】
また、画像データは、複数の素片の各々に表示される画像のデータである。さらに、仮想空間にオブジェクトが存在する態様で複数の素片の各々で表示するためのデータである。素片は、表示手段に表示される画像であり、その表示された素片(素片の画像)の大きさや形状や向きに適合するように、画像データに記憶されたオブジェクトの画像が素片(素片の画像)に重ねあわされて表示される。具体的には、画像データに記憶されたオブジェクトの画像は、座標変換や陰面処理などの各種の画像処理を画像データに施して、素片(素片の画像)に重なるように表示手段に表示される。
【0034】
上述したように、制御手段は、(1−1)〜(1−3)の処理を実行する。
(1−1)の処理は、操作手段から発せられた操作信号に応じて、表示手段において素片を移動させる態様で表示する処理である。また、(1−2)の処理は、複数の素片が集合立体に並べられたときに、整合性データを参照して、パズルゲームに正答したか否かを判断する処理である。さらに、(1−3)の処理は、パズルゲームに正答したときには、集合立体に並べられた複数の素片によってオブジェクトが整合して仮想空間に存在するように表示手段に表示する処理である。
【0035】
この構成によれば、予め定められた整合性データを用いてパズルゲームに正答したか否かを判断するので、正答したか否かを迅速かつ的確に判別することができる。また、パズルゲームに正答したときに表示されるであろうオブジェクトの全体の画像を推測しながら、素片を集合立体に並べてパズルゲームを解いていくので、新しい立体組み立てパズルを提供することができる。さらに、パズルゲームに正答したときには、仮想空間においてオブジェクトの全体が整合して表示されるので、パズルに正答したか否かを容易に判断することができる。
【0036】
仮想空間に存在するオブジェクトは表示対象物であればよく、人間や動物などのキャラクタや車両などの可動体などの動的な対象物でも、建物や岩などの静的な対象物でもよい。また、オブジェクトの数は、1つでも複数でもよく、パズルゲームとして興趣を高めることができるものであればよい。
【0037】
また、「整合」とは、集合立体に並べられた複数の素片によって、オブジェクトを示す画像を連続的に表示できたり又は矛盾なく表示できたりすることをいう。オブジェクトの形状や大きさや色などを静的な特徴や属性について連続的に表示できたり又は矛盾なくオブジェクトを示す画像を表示できたりすることだけでなく、オブジェクトが移動する態様で表示される場合には、その移動の態様が連続的に表示できたり又は矛盾なく表示できたりすることもいう。
【0038】
また、本発明の実施の形態に係る特徴は、上述した構成において、前記複数の素片の各々は、平面形状を有する平面素片である。さらに、前記画像データは、前記オブジェクトを連続的に移動する態様で表示するための動画データである。この動画データを用いてオブジェクトを表示したときには、平面素片の表面に沿ってオブジェクトが移動するように表示される。
【0039】
この構成によれば、オブジェクトは移動する態様で平面素片の表面に沿って表示されるので、時間的に変化する画像が平面素片に表示され、正答となるオブジェクトの画像を推測することが困難になり面白みのあるパズルゲームを提供することができる。
【0040】
さらに、本発明の実施の形態に係る特徴は、上述した構成において、複数の素片の各々は、平面形状を有する平面素片である。さらに、集合立体は複数の立体表面を有する。集合立体は、これらの複数の立体表面によって外形が画定される。これらの複数の立体表面の各々は透視可能である。透視可能とは、立体表面を介して、立体表面の一の側(たとえば外側)から他の側(たとえば内側)を視認することができることをいう。
【0041】
さらにまた、この場合の画像データは三次元立体画像データである。この三次元立体画像データは、集合立体の内側の仮想空間に存在するオブジェクトを仮想カメラによって撮影したものとして得られたデータである。上述したように、集合立体は複数の立体表面を有し、仮想カメラによる撮影は、複数の立体表面の各々を介して行われたものである。たとえば、集合立体が六面体である場合には、立体表面は六面ある。したがって、この場合には、画像データは、第一の立体表面を介して仮想的に撮影されたとして生成された第一の三次元立体画像データと、第二の立体表面を介して仮想的に撮影されたとして生成された第二の三次元立体画像データと、第三の立体表面を介して仮想的に撮影されたとして生成された第三の三次元立体画像データと、第四の立体表面を介して仮想的に撮影されたとして生成された第四の三次元立体画像データと、第五の立体表面を介して仮想的に撮影されたとして生成された第五の三次元立体画像データと、第六の立体表面を介して仮想的に撮影されたとして生成された第六の三次元立体画像データとからなる。
【0042】
また、上述した(1−1)の処理は、
(3−1) 操作手段から発せられた操作信号に応じて平面素片を移動させて複数の立体表面のいずれかに並べる処理である。
【0043】
さらに、上述した(1−3)の処理は、
(3−3) パズルゲームに正答したときには、オブジェクトが整合して存在する態様で表示手段において表示する処理である。オブジェクトは、集合立体の内側の仮想空間に存在するものであり、パズルゲームに正答したときには、集合立体に並べられた平面素片によって仮想空間でオブジェクトが整合して存在するように表示される。
【0044】
この構成によれば、パズルゲームに正答したときには、集合立体の内側に形成された仮想空間にオブジェクトが整合して存在するように表示されるので、現実感のあるオブジェクトの画像を表示することができるとともに、現実感のある画像を見るためにパズルゲームに正答しようとする動機をプレイヤに与えることができる。また、三次元立体画像データを用いたことによって立体的なオブジェクトの画像を表示できるので、正答となるオブジェクトの全体の形状や大きさや色などを推測することを難しくして面白みのあるパズルゲームを提供することができる。
【0045】
さらにまた、本発明の実施の形態に係る特徴は、上述した構成において、複数の素片の各々は、立体形状を有する立体素片である。さらに、集合立体は複数の立体表面を有する。これらの複数の立体表面によって集合立体の外形が画定される。なお、複数の立体表面は、辺や角などによって分離されている必要はなく、一体に構成された単一の立体表面を適宜分けて、複数の立体表面としてもよい。識別可能な複数の立体表面であればよい。さらに、これらの複数の立体表面の各々は透視可能である。上述したように、透視可能とは、立体表面を介して、立体表面の一の側(たとえば外側)から他の側(たとえば内側)を視認することができることをいう。
【0046】
さらに、また、この場合の画像データも三次元立体画像データである。この三次元立体画像データは、集合立体の内側の仮想空間に存在するオブジェクトを仮想カメラによって撮影したものとして得られたデータである。上述したように、集合立体は複数の立体表面を有し、仮想カメラによる撮影は、複数の立体表面の各々を介して行われたものである。たとえば、集合立体が三つの立体表面からなる場合には、画像データは、第一の立体表面を介して仮想的に撮影されたとして生成された第一の三次元立体画像データと、第二の立体表面を介して仮想的に撮影されたとして生成された第二の三次元立体画像データと、第三の立体表面を介して仮想的に撮影されたとして生成された第三の三次元立体画像データとからなる。
【0047】
また、上述した(1−1)の処理は、
(4−1) 操作手段から発せられた操作信号に応じて立体素片を移動させて前記集合立体を組み立てる処理である。
さらに、(1−3)の処理は、
(4−3) パズルゲームに正答したときには、オブジェクトが整合して存在する態様で表示手段において表示する処理である。オブジェクトは、集合立体の内側の仮想空間に存在するものであり、パズルゲームに正答したときには、集合立体として組み立てられた立体素片によって、仮想空間でオブジェクトが整合して存在するように表示される。
【0048】
この構成によれば、立体形状を有する立体素片によって集合立体を組み立てるので、パズルをより難しくすることができる。また、三次元立体画像データを用いたことにより、集合立体だけでなく立体素片にも立体的なオブジェクトの画像を表示できるので、現実感のある画像を表示して、正答となるオブジェクトの全体の形状や大きさや色などを推測することをさらに難しくして、より面白みのあるパズルゲームを提供することができる。
【0049】
また、本発明の実施の形態に係る特徴は、上述した構成において、仮想カメラは、集合立体の高さ方向の複数の位置に配置された複数の仮想撮影カメラである。また、三次元立体画像データは、複数の仮想撮影カメラの各々に応じた高さで集合立体の中心からの距離を一定に保ちつつ複数の仮想撮影カメラの各々が集合立体を周回して撮影したデータである。
【0050】
この構成によれば、三次元立体画像データは、集合立体を仮想的に周回して撮影したものとして生成した画像データであるので、複数の立体素片の各々に表示する画像を、回転角度方向を異ならしめて表示することができる。このようにしたことにより、複数の立体素片の並びだけでなく、複数の立体素片の各々の回転角度も調整しつつパズルを解く必要があるので、正答となるオブジェクトの全体の形状や大きさや色などの推測をさらに難しくしたパズルゲームを提供することができる。
【0051】
以下に、本発明の実施例について図面に基づいて説明する。本実施の形態は、第1の実施の形態〜第3の実施の形態からなる。以下では、第1の実施の形態〜第3の実施の形態に共通する説明では、これらを単に本実施の形態と称する。
【0052】
<<<<第1の実施の形態〜第3の実施の形態のゲームの概略>>>>
まず、第1の実施の形態〜第3の実施の形態のゲームの概略について簡単に説明する。
【0053】
第1の実施の形態によるゲームは、複数の表示面(面素片)を並べることによって仮想空間に存在するオブジェクトを組み立てるパズルゲームである。具体的には、仮想空間で複数の表示面(面素片)によってオブジェクトを組み立て、オブジェクトが整合して表示できたときにパズルが解けたとするパズルゲームである(図15及び図16参照)。
【0054】
また、表示面(面素片)の各々を構成する辺と辺との一致データ(整合性データ)を保持している。さらに、この表示面(面素片)の各々に表示する二次元画像データは、動画データであるものが好ましく、表示面の各々によって表示されるオブジェクト(たとえば、複数のキャラクタ)が移動するように表示される動画データが好ましい。
【0055】
第2の実施の形態によるゲームは、画像が表示されている複数の表示面(面素片)を並べることによって集合立体を組み立てるパズルゲームである。表示面(面素片)に表示される画像データは、複数の表示平面の各々を透視平面として、これらの透視平面の各々を介して撮像したり視認したりしたものとして生成されたデータである。このパズルゲームは、対応する表示面(面素片)の各々に画像を表示し、表示面(面素片)によって集合立体が組み立てられて、集合立体の内側を示す映像として、集合立体の全ての表示面(面素片)において画像が整合して表示できたときにパズルが解けたとするパズルゲームである(図17参照)。
【0056】
たとえば、仮想空間に集合立体を配置し、この集合立体に対して、複数視点(カメラ)を設定し、各々のカメラ視点で透視変換した二次元画像データを記憶している。この二次元画像データは、多角形の形状を有する透視面を介したものとして形成されたデータである。さらに、透視面の各々の辺の組み合わせを示す移動先のデータを記憶する。集合立体を複数の視点で透視変換して形成された複数の二次元画像データに基づいて、移動元の画像を複数表示する一方、この移動元の画像をプレイヤの操作に応じて移動先の立体画像の複数の面に移動して貼り付ける操作がなされると、その移動面と移動元の画像との一致関係を予め記憶した一致データに基づいて、成功/失敗を判定するプログラムを記憶している。
【0057】
第3の実施の形態によるゲームは、画像が表示されている複数の立体素片を並べて集合立体を組み立てるパズルゲームである。立体素片に表示される画像のデータは、複数の立体素片の各々を構成する面を透視面として、これらの透視面の各々を介して撮像したり視認したりしたものとして生成されたデータである。このパズルゲームは、対応する表示面の各々に動画を表示し、表示面によって集合立体が組み立てられて、集合立体の内側を示す映像として、集合立体の全ての表示面において動画が整合して表示できたときにパズルが解けたとするゲームである(図25参照)。
【0058】
たとえば、仮想空間内に高さのある集合立体を配置し、その集合立体の高さ方向に複数の視点を配置し、この視点を高さのある集合立体に対して、各視点間距離を一定に保ったまま360度移動させて生成された帯状の画像データを生成する。そして、ゲームが開示されると、視点ごとに分離した状態の集合立体の表面の各々に、帯状の画像データをテクスチャマッピングして立体画像を表示する。表示された立体画像を高さ方向に積み重ねる操作をプレイヤのゲーム入力に応じて実行し、予め記憶された立体画像データの高さ方向での一致データに基づいてゲームの成功・失敗を判定するプログラムを記憶している。
【0059】
<<<本発明の実施の形態におけるゲームシステム100>>>
図1は、本発明の実施の形態におけるゲームシステム100を示す概略図である。このゲームシステム100は、後述する第1の実施の形態〜第3の実施の形態で共通する。なお、図1〜図4に示すゲームシステム100は、本実施の形態によるゲームを実行する一例として示したゲームシステムであり、他のゲームシステムでも本実施の形態によるゲームを実行することができる。
【0060】
<<ゲームシステム100の概略>>
ゲームシステム100は、ゲーム装置112(ビデオゲーム装置)及びコントローラ122を含む。なお、本実施の形態におけるゲーム装置112は、最大で4つのコントローラ122と通信をすることができる。また、ゲーム装置112と複数のコントローラ122の各々とは、無線によって通信をすることができる。たとえば、無線通信は、Bluetooth(登録商標)規格に従って実行される。なお、赤外線や無線LANなど他の規格に従って実行される無線通信でもよい。さらに、ゲーム装置112と複数のコントローラ122の各々とを有線で接続してもよい。
【0061】
ゲーム装置112は、略直方体のハウジング114を有する。このハウジング114の前面にはディスク挿入用スロット116が形成されている。プレイヤは、ゲームプログラム等を記憶した光ディスク118をディスクスロット116から挿入することができる。ディスクスロット116から挿入された光ディスク118は、ハウジング114内のディスクドライブ154(図2参照)に案内されて装着される。また、ディスクスロット116の周囲には、LED(図示せず)と導光板(図示せず)とが配置されており、各種の処理に応じて、ディスクスロット116を照明することができる。
【0062】
また、ゲーム装置112のハウジング114の前面の上部には、電源ボタン120a及びリセットボタン120bが設けられている。また、ハウジング114の前面の下部には、イジェクトボタン120cが設けられている。
【0063】
上述したリセットボタン120bとイジェクトボタン120cとの間の位置であり、ディスクスロット116の近傍の位置には、外部メモリカード用コネクタカバー128が設けられている。外部メモリカード用コネクタカバー128の内側には、外部メモリカード用コネクタ162(図2参照)が設けられている。外部メモリカード用コネクタ162には、外部メモリカード(以下、「メモリカード」と称する)を着脱可能に設けることができる。メモリカードは、光ディスク118から読み出したゲームプログラム等を一時的に記憶したり、ゲームシステム100を利用してプレイしたゲームのゲームデータ(ゲームの結果データ又は途中データ)を保存したりするために用いられる。
【0064】
上述したゲームデータをメモリカードに保存することに代えて、たとえば、ゲーム装置112の内部に設けられるフラッシュメモリ144(図2参照)のような内部メモリに保存してもよい。また、内部メモリのバックアップメモリとしてメモリカードを用いてもよい。さらに、ゲーム装置112は、ゲーム以外の他のアプリケーションを実行することも可能であり、このようなゲーム以外の他のアプリケーションで用いるデータをメモリカードに保存してもよい。
【0065】
なお、メモリカードとしては、汎用のSDカードを用いることができるが、メモリスティックやマルチメディアカード(登録商標)のような他の汎用のメモリカードを用いることもできる。
【0066】
ゲーム装置112のハウジング114の後面には、AVコネクタ158(図2参照)が設けられている。AVコネクタ158には、AVケーブル132aを接続することができる。AVケーブル132aを介して、ディスプレイ134及びスピーカ134aをゲーム装置112に接続することができる。このディスプレイ134及びスピーカ134aは、典型的にはカラーテレビジョン受像機である。カラーテレビジョン受像機は、ビデオ入力端子と音声入力端子とを有する。AVケーブル132aを介して、ゲーム装置112からの映像信号がビデオ入力端子に入力され、ゲーム装置112からの音声信号が音声入力端子に入力される。このようにしたことで、ディスプレイ134の画面上に、たとえば三次元(3D)ビデオゲームのゲーム画像を表示することができ、左右のスピーカ134aからゲーム音楽や効果音などのステレオゲーム音声を出力することができる。
【0067】
ゲーム装置112の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置112は、家庭用電源(商用電源)を、駆動に適した低いDC電圧信号に変換する。なお、電源としてバッテリを用いてもよい。
【0068】
以下では、ゲームシステム100でプレイヤがゲームをする手順を説明する。まず、プレイヤは、ゲーム装置112の電源をいれ、次いで、ビデオゲーム(または、プレイしたいと思う他のアプリケーション)のプログラムが記録されている光ディスク118を、ゲーム装置112のディスクドライブ154に装着する。
【0069】
光ディスク118がディスクドライブ154に装着されたことに応じて、ゲーム装置112は、その光ディスク118に記録されているプログラムに基づいてビデオゲーム若しくは他のアプリケーションを実行し始める。たとえば、後述するパズルゲームのプログラムを光ディスク118から読み出して実行する。
【0070】
プレイヤは、コントローラ122を操作して、プレイヤが所望する動作をゲーム装置112にさせる。たとえば、プレイヤが入力手段126のどれかを操作することによって、ゲーム装置112はゲームや他のアプリケーションをスタートさせる。また、入力手段126に対する操作以外にも、プレイヤがコントローラ122自体を動かすことにより、動画によって描かれているオブジェクトをプレイヤが所望する方向に移動させたり、3Dのゲーム世界におけるプレイヤの視点(カメラ位置)を変化させたりすることができる。
【0071】
ただし、ビデオゲームや他のアプリケーションのプログラムは、ゲーム装置112の内部メモリ(フラッシュメモリ144(図2参照))に、予め記憶(インストール)させておき、内部メモリから実行するようにしてもよい。このようにした場合に、光ディスク118のような記憶媒体に記憶されたプログラムを内部メモリにインストールしてもよいし、通信によってダウンロードされたプログラムを内部メモリにインストールしてもよい。
【0072】
また、光ディスク118として、映像や音声などのコンテンツが記録されたDVDがある。このようなDVDをゲーム装置112のディスクドライブ154に装着した場合には、DVDに記憶されているコンテンツを再生することができる。たとえば、DVDに記憶されているコンテンツの再生が始まると、再生する内容を選択するためのメニュー画面が表示される。メニュー画面が表示されているときに、コントローラ122を振る(動かす)ことにより、メニュー画面に表示されたカーソルないしマウスポインタのような指示画像を移動させて、所望の内容(ボタン画像ないしアイコン)を選択(指示)し、所望の内容を選択した状態で、いずれかの操作手段126を操作することにより、選択した所望の内容に従ってコンテンツの再生指示を入力することができる。
【0073】
たとえば、再生指示に応じて、コンテンツの本編が最初から再生されたり、コンテンツの指定されたチャプターが再生されたり、コンテンツの特典映像が再生されたりする。本編の再生中では、コントローラ122を動かすことにより、再生画面に表示される操作パネルのボタン画像ないしアイコンを選択(指定)し、一時停止(再生)、早送り、早戻し、チャプター(プログラム)のスキップ(頭出し)のような再生に関する操作(以下、「再生操作」という。)を行うことができる。このような場合には、コントローラ122は、いわゆるポインティングデバイスとして機能する(第1モード)。また、コントローラ122の一部の操作手段126には、予め再生操作についての役割が与えられており、該当する操作手段126を操作することにより、再生操作を行うこともできる。このような場合には、コントローラ122は、DVDプレイヤとして機能するゲーム装置112のいわゆるリモコンとして機能する(第2モード)。
【0074】
なお、通常、DVDを再生することでメニュー画面が表示されている状態では、上述したような再生操作は禁止されている。このため、本実施の形態では、DVDのメニュー画面が表示されている場合には、コントローラ122から再生操作についての操作入力があっても、操作入力を無効にするようにしてある。
【0075】
また、ゲーム装置112でゲームをプレイしたり、ゲーム以外の他のアプリケーションを実行したり、DVDを再生したりするような処理内容の選択は、ゲーム装置112の起動時に表示されるメニュー画面(DVDの再生時のメニュー画面とは異なる。)で選択することができる。
【0076】
<<ゲームシステム100の構成>>
図2は、ビデオゲームシステム100の電気的な構成を示すブロック図である。
【0077】
ハウジング114内の各コンポーネントはプリント基板に実装されている。図2に示すように、ゲーム装置112にはCPU140が設けられ、CPU140はゲームプロセッサとして機能する。CPU140にはシステムLSI42が接続されている。このシステムLSI42には、外部メインメモリ146、ROM/RTC148、ディスクドライブ154及びAV IC156が接続されている。
【0078】
外部メインメモリ146は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりして、CPU140のワーク領域やバッファ領域として機能する。ROM/RTC148は、いわゆるブートROMであり、ゲーム装置112の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ154は、光ディスク118からプログラム、画像データや音声データ等を読み出し、CPU140の制御の下で、後述する内部メインメモリ142e又は外部メインメモリ146に書き込む。
【0079】
システムLSI142には、入出力プロセッサ142a、GPU(Graphics Processor Unit)142b、DSP(Digital Signal Processor)142c、VRAM142d及び内部メインメモリ142eが設けられ、これらは内部バス(図示せず)によって互いに接続されている。入出力プロセッサ(I/Oプロセッサ)142aは、データの送受信を実行したり、データのダウンロードを実行したりする。データの送受信やダウンロードについては後述する。
【0080】
GPU142bは、描画手段の一部を形成し、CPU140からのグラフィクスコマンド(作画命令)を受信し、そのコマンドに従ってゲーム画像データを生成する。CPU140は、このようなグラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU142bに送信する。
【0081】
上述したように、GPU142bにはVRAM142dが接続されている。GPU142bが作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンデータやテクスチャデータなどのデータ)は、GPU142bがVRAM142dにアクセスして取得する。ただし、CPU140は、描画に必要な画像データを、GPU142bを介してVRAM142dに書き込む。GPU142bは、VRAM142dにアクセスして描画のためのゲーム画像データを作成する。
【0082】
本実施の形態では、GPU142bがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、GPU142bは当該任意のアプリケーションについての画像データを生成する。
【0083】
また、DSP142cは、オーディオプロセッサとして機能し、内部メインメモリ142eや外部メインメモリ146に記憶されるサウンドデータや音波形(音色)データを用いて、スピーカ134aから出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【0084】
上述したように生成されたゲーム画像データ及びオーディオデータは、AV IC156によって読み出され、AVコネクタ158を介してディスプレイ134及びスピーカ134aに出力される。したがって、ゲーム画面がディスプレイ134に表示され、ゲームに必要な音(音楽)がスピーカ134aから出力される。
【0085】
また、入出力プロセッサ142aには、フラッシュメモリ144、無線通信モジュール150及び無線コントローラモジュール152が接続されるとともに、拡張コネクタ160及び外部メモリカード用コネクタ162が接続されている。また、無線通信モジュール150にはアンテナ150aが接続され、無線コントローラモジュール152にはアンテナ152aが接続されている。
【0086】
入出力プロセッサ142aは、無線通信モジュール150を介して、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。なお、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ142aは、定期的にフラッシュメモリ144にアクセスし、ネットワークへ送信する必要があるデータ(以下、「送信データ」と称する)の有無を検出し、送信データが有る場合には、無線通信モジュール150及びアンテナ150aを介してネットワークに送信する。
【0087】
また、入出力プロセッサ142aは、他のゲーム装置から送信されるデータ(以下、「受信データ」と称する)を、ネットワーク、アンテナ150a及び無線通信モジュール150を介して受信し、受信データをフラッシュメモリ144に記憶する。なお、受信データが一定の条件を満たさない場合には、受信データはそのまま破棄される。さらに、入出力プロセッサ142aは、ダウンロードサーバからダウンロードしたデータ(以下、「ダウンロードデータ」と称する)をネットワーク、アンテナ150a及び無線通信モジュール150を介して受信し、そのダウンロードデータをフラッシュメモリ144に記憶する。
【0088】
また、入出力プロセッサ142aは、コントローラ122から送信される入力データをアンテナ152a及び無線コントローラモジュール152を介して受信し、内部メインメモリ142e又は外部メインメモリ146のバッファ領域に記憶(一時記憶)する。入力データは、CPU140の処理(たとえば、ゲーム処理)によって利用された後、バッファ領域から消去される。
【0089】
なお、この実施例では、上述したように、無線コントローラモジュール152は、Bluetooth規格に従ってコントローラ122との間で通信を行う。
【0090】
さらに、入出力プロセッサ142aには、拡張コネクタ160及び外部メモリカード用コネクタ162が接続されている。拡張コネクタ160は、USBやSCSIのようなインターフェイスのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、コントローラ122とは異なる他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ160に有線LANアダプタを接続し、無線通信モジュール150に代えて当該有線LANを利用することもできる。外部メモリカード用コネクタ162には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ142aは、拡張コネクタ160や外部メモリカード用コネクタ162を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0091】
図1にも示したように、ゲーム装置112(ハウジング114)には、電源ボタン120a、リセットボタン120b及びイジェクトボタン120cが設けられている。電源ボタン120aは、システムLSI142に接続されている。プレイヤによって電源ボタン120aが操作されると、システムLSI142には、ゲーム装置112の各コンポーネントに電源が供給され、通常の通電状態となる通常モードになる。一方、電源ボタン120aがオフされると、システムLSI142には、ゲーム装置112の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるスタンバイモードになる。
【0092】
本実施の形態では、スタンバイモードが設定された場合には、システムLSI142は、入出力プロセッサ142a、フラッシュメモリ144、外部メインメモリ146、ROM/RTC148及び無線通信モジュール150、無線コントローラモジュール152以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、スタンバイモードであるときには、CPU140がアプリケーションを実行することはない。
【0093】
なお、スタンバイモードであるときでも、システムLSI142には電源が供給されるが、GPU142b、DSP142c及びVRAM142dへのクロックの供給を停止することにより、これらを駆動しないようにして、消費電力を低減することができる。
【0094】
また、ゲーム装置112のハウジング114内部には、CPU140やシステムLSI142などのICの熱を外部に排出するためのファン(図示せず)が設けられている。スタンバイモードでは、このファンも停止される。
【0095】
ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン120aがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
【0096】
また、通常モードとスタンバイモードとの切り替えは、コントローラ122の電源スイッチ126hのオン/オフの切り替えによって、遠隔操作によって行うことが可能である。当該遠隔操作を行わない場合には、スタンバイモードにおいて無線コントローラモジュール152aへの電源供給を行わない設定にしてもよい。
【0097】
また、リセットボタン120bもシステムLSI142に接続されている。リセットボタン120bが押されると、システムLSI142は、ゲーム装置112の起動プログラムを再起動する。イジェクトボタン120cは、ディスクドライブ154に接続されている。イジェクトボタン120cが押されると、ディスクドライブ154から光ディスク118が排出される。
【0098】
図3はコントローラ122の外観を示す図であり、図3(A)はコントローラ122の先端面を示し、図3(B)はコントローラ122の上面を示し、図3(C)はコントローラ122の右側面を示し、図3(D)はコントローラ122の下面を示し、そして、図3(E)はコントローラ122の後端面を示す。
【0099】
図3(A)〜図3(E)に示すように、コントローラ122は、たとえばプラスチック成型によって形成されたハウジング122aを有している。ハウジング122aは、略直方体形状であり、プレイヤが片手で把持可能な大きさである。ハウジング122a(コントローラ122)には、入力手段(複数のボタンないしスイッチ)126が設けられている。具体的には、図3(B)に示すように、ハウジング122aの上面には、十字キー126a、1ボタン126b、2ボタン126c、Aボタン126d、−ボタン126e、HOMEボタン126f、+ボタン126g及び電源スイッチ126hが設けられている。また、図3(C)及び図3(D)に示すように、ハウジング122aの下面には、傾斜面が形成されており、この傾斜面に、Bトリガスイッチ126iが設けられている。
【0100】
十字キー126aは4方向プッシュスイッチであり、矢印で示す4つの方向、前(又は上)、後ろ(又は下)、右及び左の操作部を含む。この操作部のいずれか1つを操作することによって、プレイヤによって操作可能なキャラクタやオブジェクト(プレイヤキャラクタやプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したり、単に方向を指示したりすることができる。また、ゲーム装置112でDVDをプレイし、コントローラ122をリモコンとして用いる場合には、左の操作部を操作することによって、早戻しを指示することができ、右の操作部を操作することによって、早送りを指示することができる。
【0101】
1ボタン126b及び2ボタン126cは、それぞれ、押しボタンスイッチである。たとえば三次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整する等のゲームの操作に使用される。又は、1ボタン126b及び2ボタン126cは、Aボタン126d及びBトリガスイッチ126iと同じ操作或いは補助的な操作をする場合に用いるようにしてもよい。
【0102】
Aボタンスイッチ126dは、押しボタンスイッチであり、プレイヤキャラクタ又はプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択及び決定等を指示することができる。
【0103】
また、Aボタンスイッチ126dは、コントローラ122をポインティングデバイスとして用いる場合には、ゲーム画面上でポインタ(指示画像)が指示するアイコンないしボタン画像の決定を指示するために使用される。たとえば、アイコンやボタン画像が決定されると、これらに対応して予め設定されている指示ないし命令(コマンド)を入力することができる。さらに、ゲーム装置112でDVDをプレイし、コントローラ122をリモコンとして用いる場合には、Aボタンスイッチ126dは、再生又は一時停止を指示することができる。
【0104】
−ボタン126e、HOMEボタン126f、+ボタン126g及び電源スイッチ126hもまた、押しボタンスイッチである。−ボタン126eは、ゲームモードを選択するために使用される。HOMEボタン126fは、ゲームメニュー(メニュー画面)を表示するために使用される。+ボタン126gは、ゲームを開始(再開)したり、一時停止したりするなどのために使用される。電源スイッチ126hは、ゲーム装置112の電源を遠隔操作によってオン/オフするために使用される。また、ゲーム装置112でDVDをプレイし、コントローラ122をリモコンとして用いる場合には、−ボタン126e及び+ボタン126gは、スキップ(頭出し)するために用いられる。具体的には、−ボタン126eは、チャプターを戻すために使用され、+ボタン126gは、チャプターを送るために使用される。
【0105】
本実施の形態では、コントローラ122自体をオン/オフするための電源スイッチは設けていない。コントローラ122の入力手段126のいずれかを操作することによってコントローラ122はオンとなり、一定時間(たとえば、30秒)以上操作しなければ自動的にオフとなる。
【0106】
Bトリガスイッチ126iもまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガを模した入力を行ったり、コントローラ122で選択した位置を指定したりするために使用される。また、Bトリガスイッチ126iを押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Bトリガスイッチ126iは、通常のBボタンと同様に機能し、Aボタン126dによって決定したアクションやコマンドなどを取り消すなどのために使用される。
【0107】
また、図3(E)に示すように、ハウジング122aの後端面には外部拡張コネクタ122bが設けられ、また、図3(B)に示すように、ハウジング122aの上面の後端面側にはインジケータ122cが設けられている。外部拡張コネクタ122bは、コントローラ122とは異なる拡張コントローラ(図示せず)を接続するためなどに使用される。インジケータ122cは、たとえば、4つのLEDで構成される。たとえば、インジケータ122cでは、4つのうちのいずれか1つを点灯させることにより、点灯したLEDに応じて、コントローラ122の識別情報(コントローラ番号)を示すことができる。また、インジケータ122cでは、点灯させるLEDの個数によってコントローラ122の電池残量を示すこともできる。
【0108】
さらに、コントローラ122は、撮像情報演算部180(図4参照)を有する。図3(A)に示すように、ハウジング122aの先端面には撮像情報演算部180の光入射口122dが設けられている。また、コントローラ122は、スピーカ186(図4参照)を有する、このスピーカ186は、図3(B)に示すように、ハウジング122aの上面であり、1ボタン126bとHOMEボタン126fとの間に設けられる音抜き孔122eに対応して、ハウジング122aの内部に設けられている。
【0109】
なお、図3(A)〜図3(E)に示したコントローラ122の形状や、各入力手段126の形状、数及び設置位置等は単なる一つの例を示したに過ぎない。
【0110】
図4は、コントローラ122の電気的な構成を示すブロック図である。コントローラ122はプロセッサ170を含む。プロセッサ170には、内部バス(図示せず)によって、外部拡張コネクタ122b、入力手段126、メモリ172、加速度センサ174、無線モジュール176、撮像情報演算部180、LED182(インジケータ122c)、バイブレータ184、スピーカ186及び電源回路188が接続されている。また、無線モジュール176には、アンテナ178が接続されている。
【0111】
また、上述したように、インジケータ122cは4つのLED182によって構成される。
【0112】
プロセッサ170は、コントローラ122の全体を制御する。入力手段126、加速度センサ174及び撮像情報演算部180によって入力された情報(入力情報)を、入力データとして無線モジュール176及びアンテナ178を介してゲーム装置112に送信(入力)する。このとき、プロセッサ170は、メモリ172を作業領域ないしバッファ領域として用いる。また、上述した入力手段126(126a−126i)からの操作信号(操作データ)は、プロセッサ170に入力され、プロセッサ170は操作データを一旦メモリ172に記憶する。
【0113】
加速度センサ174は、コントローラ122の縦方向(y軸方向)、横方向(x軸方向)及び前後方向(z軸方向)の3軸で各々の加速度を検出する。この加速度センサ174は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。
【0114】
たとえば、加速度センサ174は、第1の所定時間毎に、x軸、y軸、z軸の各々についての加速度(ax、ay、az)を検出し、検出した加速度のデータ(加速度データ)をプロセッサ170に入力する。たとえば、加速度センサ174は、各軸方向の加速度を、−2.0g〜2.0g(gは重力加速度である。以下、同じ。)の範囲で検出する。プロセッサ170は、加速度センサ174から与えられる加速度データを、第2の所定時間毎に検出し、一旦メモリ172に記憶する。
【0115】
プロセッサ170は、操作データ、加速度データ及び後述するマーカ座標データの少なくとも1つを含む入力データを作成し、作成した入力データを、第3の所定時間(たとえば、5msec)毎にゲーム装置112に送信する。
【0116】
なお、本実施の形態では、加速度センサ174は、ハウジング122a内部の基板上の十字キー126aが配置される付近に設けられている。
【0117】
無線モジュール176は、たとえば、Bluetooth規格に基づいて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ178から放射する。すなわち、入力データは、無線モジュール176によって微弱電波信号に変調されてアンテナ178(コントローラ122)から送信される。微弱電波信号は、上述したゲーム装置112に設けられた無線コントローラモジュール152によって受信される。受信された微弱電波は、復調及び復号の処理を施され、したがって、ゲーム装置112(CPU140)は、コントローラ122からの入力データを取得することができる。そして、CPU140は、取得した入力データとアプリケーションプログラム(ゲームプログラム)とに従ってアプリケーションの処理(ゲーム処理)を行う。
【0118】
<<<<第1の実施の形態〜第3の実施の形態の特徴>>>>
以下では、後述する第1の実施の形態〜第3の実施の形態の各々の特徴について説明する。
【0119】
<<<第1の実施の形態>>>
<第1の実施の形態のゲームの手順>
まず、第1の実施の形態によるゲームプログラムが実行されると、ディスプレイ134の画面の右側には、6つの表示面(複数の素片)の画像が表示され、画面の左側には、集合立体の画像が表示される。第1の実施の形態における「立体」(集合立体)の具体的な形状は立方体であり(図10参照)、「6つの表示面」の各々の具体的な形状は正方形である(図11参照)。したがって、第1の実施の形態によるゲームプログラムが実行されると、図15及び図16に示すように、ディスプレイ134の画面の右側には、正方形の「6つの表示面」の画像が表示され、画面の左側には、立方体の「立体」の画像が表示される。上述した正方形の形状を有する6つの表示面が、「複数の素片」に対応し、立方体の形状を有する立体が「集合立体」に対応する。
【0120】
この第1の実施の形態のパズルゲームは、ディスプレイ134の映像によって示される仮想空間において、正方形の形状を有する「6つの表示面」を組み合わせて並べることによって、立方体の形状を有する「立体」を組み立てるパズルゲームである。言い換えれば、第1の実施の形態のパズルゲームは、仮想空間で、正方形の形状を有する「6つの表示面」の各々を面素片として、立方体の形状を有する「立体」を構成する6つの面に、順次貼り付けていくパズルゲームである。第1の実施の形態では、「立体」を構成する6つの面C1、C2、C3、C4、C5及びC6を「立体表面」(図10参照)と称し、動画が表示される面素片であって、「立体表面」に貼り付けられる6つの面P1、P2、P3、P4、P5及びP6を「表示面」(図11参照)と称する。「立体表面」は、立方体の形状の「立体」の外形を画定する表面である。なお、「表示面」を「立体表面」に貼り付けることができるので、「立体表面」の大きさ及び形状は、「表示面」の大きさ及び形状と同じである。
【0121】
図11(b)に示すように、6つの表示面P1〜P6の各々は、正方形の形状を有する。表示面P1は、4つの辺P1−L1、P1−L2、P1−L3及びP1−L4を有する。表示面P2は、4つの辺P2−L1、P2−L2、P2−L3及びP2−L4を有する。表示面P3は、4つの辺P3−L1、P3−L2、P3−L3及びP3−L4を有する。表示面P4は、4つの辺P4−L1、P4−L2、P4−L3及びP4−L4を有する。表示面P5は、4つの辺P5−L1、P5−L2、P5−L3及びP5−L4を有する。表示面P6は、4つの辺P6−L1、P6−L2、P6−L3及びP6−L4を有する。
【0122】
上述した表示面P1〜P6の「P1〜P6」が、表示面を識別するための面番号となる。また、辺P1−L1〜P1−L4、P2−L1〜P2−L4、P3−L1〜P3−L4、P4−L1〜P4−L4、P5−L1〜P5−L4及びP6−L1〜P6−L4が、辺を識別するための辺番号となる。これらの面番号と辺番号とは、後述する図13に示す貼り付け結果テーブルや、図14に示す判定用テーブルを書き込む情報である。
【0123】
また、図10に示すように、立方体の6つの立体表面C1〜C6の各々も、正方形の形状を有する。立体表面C1は、4つの辺C1−L1、C1−L2、C1−L3及びC1−L4を有する。立体表面C2は、4つの辺C2−L1、C2−L2、C2−L3及びC2−L4を有する。立体表面C3は、4つの辺C3−L1、C3−L2、C3−L3及びC3−L4を有する。立体表面C4は、4つの辺C4−L1、C4−L2、C4−L3及びC4−L4を有する。立体表面C5は、4つの辺C5−L1、C5−L2、C5−L3及びC5−L4を有する。立体表面C6は、4つの辺C6−L1、C6−L2、C6−L3及びC6−L4を有する。上述したように、6つの立体表面C1〜C6によって立方体の外形が画定される。
【0124】
上述した立体表面C1〜C6の「C1〜C6」が、立体表面を識別するための面番号となる。また、辺C1−L1〜C1−L4、C2−L1〜C2−L4、C3−L1〜C3−L4、C4−L1〜C4−L4、C5−L1〜C5−L4及びC6−L1〜C6−L4が、辺を識別するための辺番号となる。これらの面番号と辺番号とは、後述する図13に示す貼り付け結果テーブルや、図14に示す判定用テーブルで用いる情報である。
【0125】
ディスプレイ134の右側に表示されている6つの表示面(表示面P1〜P6)には、各種の動画が表示される。これらの6つの表示面P1〜P6を適切に組み合わせて、立方体を組み立てることができたときには、組み立てられた立方体の6つの面(組み合わされた表示面)の全体で動画を連続的にかつ矛盾なく表示することができる。言い換えれば、正方形の形状を有する6つの表示面P1〜P6を、立方体を構成する6つの立体表面C1〜C6に適切に貼り付けることができたときには、貼り付けられた6つの表示面P1〜P6によって立方体の全体で動画を連続的にかつ矛盾なく表示することができる。具体的には、表示面P1〜P6を立方体に適切に貼り付けることができたときには、動画によって表示面P1〜P6に描かれる移動可能なオブジェクト(例えば、物体)は、一の表示面とその一の表示面に隣接する他の表示面との境界を形成する辺を跨いで、一の表示面から他の表示面に連続的に移動する態様で表示される。このパズルゲームは、表示面を立方体に適切に貼り付けることができたときにパズルが解けたとするゲームである。
【0126】
第1の実施の形態によるゲームプログラムのパズルゲームは、表示面の表面に各種の移動可能なオブジェクトが存在するとして生成した動画データを用いる。したがって、動画データによって、表示面に動画が表示されたときには、プレイヤは、表示面の表面に沿ってオブジェクトが移動するように視認できる。第1の実施の形態によるゲームプログラムのパズルゲームは、このような動画を表示面に表示して、表示面の表面に沿って移動する態様で表示されたオブジェクトの画像をヒントにして、表示面を組み合わせたり表示面を立方体に貼り合わせたりして、パズルを解くゲームである。なお、この第1の実施の形態によるゲームプログラムで用いる動画データは、表示面の表面のみに存在するオブジェクトだけでなく、表示面の表面から所定の深さまでの、所定の厚さを有する領域内を移動可能なオブジェクトが存在するとして生成した動画データでもよい。
【0127】
このように、第1の実施の形態によるゲームプログラムで用いる動画のデータは、表示面の表面に沿って二次元に移動可能なオブジェクトの画像や、二次元に近い範囲でのみ移動可能なオブジェクトの画像を表示する動画データである。したがって、表示面を立方体に適切に貼り付けてパズルを解けたときには、あくまでも立方体の表面に沿ってオブジェクトが移動する態様の動画が表示されるため、一の表示面から他の表示面にオブジェクトが移るときには、一の表示面と他の表示面と境界(辺)においてオブジェクトが折れ曲がるようにして表示される。
【0128】
後述する図12は、整合性成立テーブルを示す表である。この整合性成立テーブルは、表示面を立方体に適切に貼り付けることができたときの表示面の面番号及び辺番号と、立体表面の面番号及び辺番号との関係を記憶するテーブルであり、パズルの正答の関係を記憶するテーブルである。この整合性の関係は、予め定められて光ディスク118に記憶されており、パズルゲームの起動とともに、内部メインメモリ142eや外部メインメモリ146に展開される。表示面を立方体に適切に貼り付けることができたときには、この整合性の関係を全て満たし、パズルを解くことができたと判断することができる。
【0129】
これに対して、6つの表示面P1〜P6を適切に貼り付けることができなかった場合には、貼り付けられた6つの表示面P1〜P6によって立方体の全体で動画を連続的にかつ矛盾なく表示することができない。言い換えれば、6つの表示面P1〜P6を適切に貼り付けることができなかったときには、動画によって表示面に描かれる移動可能なオブジェクトは、一の表示面からその一の表示面に隣接する他の表示面に連続的に移動する態様で表示されない。たとえば、一の表示面で移動するように描かれているオブジェクトは、その一の表示面の一の辺に到達したときに徐々に消失するとともに、その一の表示面の一の辺と隣接してない他の辺から他の表示面に徐々に現れる態様で表示される。このように、6つの表示面を適切に貼り付けることができなかった場合には、立方体に貼り付けられた6つの表示面の少なくとも一部で、整合性のない動画が表示される。
【0130】
<動画データ>
上述したように、第1の実施の形態によるゲームプログラムを実行することによって、プレイヤはパズルゲームを行うことができる。このパズルゲームは、正方形の形状を有する6つの表示面P1〜P6を、立方体を構成する6つの立体表面C1〜C6に適切に貼り付けることができたときには、貼り付けられた6つの表示面P1〜P6によって立方体の全体で動画を連続的にかつ矛盾なく表示して、パズルが解けたとするゲームである。したがって、第1の実施の形態によるゲームプログラムは、6つの表示面P1〜P6が適切に貼り付けられたときには、連続的にかつ矛盾なく動画を表示できるような動画データを用いる。
【0131】
たとえば、このような動画データとして、図11(a)に示したような立方体の展開図の全体の領域で連続的に動画を表示できる動画データを用いればよい。図11(a)は、立方体に貼り付けられた6つの表示面P1〜P6を仮想的に展開したときの展開図である。6つの表示面P1〜P6が立方体に適切に貼り付けられたときには、図11(a)に示した展開図の全体においても、連続的に動画を表示されることになる。したがって、このような展開図の全体の領域で連続的に動画を表示できる動画データを生成して、内部メインメモリ142eや外部メインメモリ146に記憶させればよい。なお、動画データは、複数の一定のものを光ディスク118に予め記憶させておいて内部メインメモリ142eや外部メインメモリ146に展開するようにしても、パズルゲームを開始する度に生成して内部メインメモリ142eや外部メインメモリ146に記憶させるようにしてもよい。
【0132】
上述したように、図11(a)に示したような立方体の展開図の全体の領域で連続的に動画を表示できる動画データを生成して内部メインメモリ142eや外部メインメモリ146に記憶させておく。動画データのうち、6つの表示面P1〜P6(図11(a)参照)の各々に対応する部分を、VRAM142dに書き込むことによって、6つの表示面P1〜P6の各々に対応させて動画を表示することができる。
【0133】
なお、図15や図16に示すように、6つの表示面P1〜P6は、立方体に貼り付けられたときには、表示面P1〜P6に対して斜め方向から視認されたように表示される。したがって、三次元立体動画データとして生成しておき、視点の方向に応じて定めたデータをVRAM142dに書き込むようにするのが好ましい。また、図11(a)に示した6つの表示面P1〜P6の展開図の形状は一つの例を示したに過ぎず、他の形状となるように、6つの表示面P1〜P6を展開させてもよい。その場合には、その展開図の形状に合わせて動画データを生成して記憶させればよい。なお、このような動画データは、三次元立体画像データであるものが好ましい。
【0134】
<パズルゲームにおける操作>
上述したように、第1の実施の形態によるゲームプログラムが実行されると、ディスプレイ134の画面の右側には、6つの表示面P1〜P6が表示され、画面の左側には、立方体(立体表面C1〜C6)の画像が表示される(図15(a))。プレイヤは、コントローラ122を操作することによって、ディスプレイ134の画面の右側に表示されている6つの表示面P1〜P6のうちの1つを選択する(図15(b)又は図16(c))。さらに、プレイヤは、コントローラ122を操作することによって、画面の左側に表示されている立方体を回転させ、プレイヤが所望する立方体の立体表面の1つを視認しやすくなるように表示させる(図15(b)又は図16(a))。
【0135】
また、上述したように、コントローラ122を操作することによって、画面の左側に配置されている立方体を回転させるように立方体の画像を表示することができる。したがって、選択した1つの表示面を立方体の立体表面の1つに単に貼り付けるだけでなく、選択した1つの表示面の4つの辺を、プレイヤが所望する立方体の立体表面の辺と対応付けて、選択した1つの表示面を貼り付けることができる(図15(c)又は図16(b))。
【0136】
なお、表示面の貼り付けの作業は、ディスプレイ134において、選択した1つの表示面を、立方体の一の立体表面に対して所定の距離以内の近くまで移動させれば、その一の立体表面が指定されたものとして、選択した1つの表示面を立方体の一の立体表面に移動させて貼り付けたように表示するのが好ましい。このようにすることで、貼り付け作業を容易にすることができるとともに、ゲームを迅速に進めることができる。
【0137】
さらに、この表示面の貼り付け操作を、6つの表示面の全てを立方体の立体表面に貼り付けるまで行う。上述したように、立方体を構成する立体表面に6つの表示面の全てを適切に貼り付けることができたときに、立方体の全ての立体表面において、6つの表示面の動画を連続的にかつ矛盾なく表示することができ、パズルが完成する。パズルが完成したときには、その旨がディスプレイ134に表示される。
【0138】
また、6つの表示面の全てを立方体の立体表面に貼り付けても、立方体の立体表面の少なくとも一部において表示面の動画を連続的にかつ矛盾なく表示できなかった場合には、パズルは完成しない。この場合には、パズルが完成していない旨をディスプレイ134に表示するとともに、再挑戦するか否かの旨がディスプレイ134に表示される。
【0139】
<<第1の実施の形態のゲームの処理>>
【0140】
<ゲーム実行基本処理>
図5は、CPU140によって実行されるゲーム実行基本処理を示すフローチャートである。この図5に示すサブルーチンは、ゲームシステムの基本プログラムなどから呼び出されて実行される。
【0141】
最初に、CPU140は、ディスプレイ134にゲームの初期画面を表示する(ステップS511)。たとえば、ステップS511の処理によって、デモ画面や操作方法やルールなどを示す画像がディスプレイ134に表示される。
【0142】
次に、CPU140は、ゲームが開始されたか否かを判断する(ステップS513)。この判断処理は、プレイヤがコントローラ122に所定の操作をしたか否かで判断する処理である。ゲームが開始されていないと判別したときには(NO)、ステップS513に処理を戻す。一方、ゲームが開始されたと判別したときには(YES)、CPU140は、後述する図6に示すゲーム初期化処理のサブルーチンを呼び出して実行する(ステップS515)。
【0143】
次に、CPU140は、後述する図7に示すコントローラ操作処理のサブルーチンを呼び出して実行し(ステップS517)、次いで、後述する図8に示すディスプレイ表示処理のサブルーチンを呼び出して実行し(ステップS519)、後述する図9に示すテーブル更新処理のサブルーチンを呼び出して実行する(ステップS521)。
【0144】
次に、ゲームが終了したか否かを判断する(ステップS523)。このステップS523の判断処理は、全ての表示面P1〜P6が立体に貼り付けられたか否かを判断する処理である。CPU140は、ゲームが終了していないと判別したときには(NO)、上述したステップS517に処理を戻し、ゲームを続行する。
【0145】
一方、CPU140は、ゲームが終了したと判別したときには(YES)、ゲームによって行われたパズルが完成したか否かを判断する(ステップS525)。パズルが完成したか否かの判断は、パズルが完成したことを示す完成情報によって判断することができる。完成情報は、パズルが完成したことを示す情報であり、たとえば、フラグの値である。フラグの値が0のときには、パズルが完成していないことを示し、フラグの値が1のときには、パズルが完成していることを示す。なお、完成情報の変更は、図9のステップS921で処理される。
【0146】
CPU140は、ステップS525の判断処理で、パズルが完成していないと判別したときには(NO)、パズルが完成していないことを示す旨をディスプレイ134に表示し(ステップS527)、プレイヤが再挑戦するか否かを判断する(ステップS529)。ステップS529の判断は、プレイヤがコントローラ122に所定の操作をしたか否かで判断する処理である。プレイヤが再挑戦すると判別したときには(YES)、上述したステップS517に処理を戻す。一方、プレイヤが再挑戦しないと判別したときには(NO)、本サブルーチンを終了して、ゲームシステムの基本プログラムに処理を戻す。
【0147】
上述したステップS525の判断処理で、パズルが完成したと判別したときには(YES)、パズルが完成したことを示す旨をディスプレイ134に表示し(ステップS531)、本サブルーチンを終了して、ゲームシステムの基本プログラムに処理を戻す。
【0148】
<ゲーム初期化処理>
図6は、上述した図5のステップS515の処理で呼び出されて実行されるゲームの初期化を行うためのサブルーチンを示すフローチャートである。このサブルーチンもCPU140によって実行される。
【0149】
最初に、CPU140は、6つの表示面P1〜P6に表示する動画の基本構成を決定する(ステップS611)。この処理は、たとえば、動画の背景や、対象物であるキャラクタの種類と数や、他の表示物の数や位置などを決定する。ステップS611の処理によって、動画データが生成される。上述したように、動画データは、図11(a)の展開図の全体の領域(P1〜P6)で連続的に動画を表示できるデータである。
【0150】
次に、CPU140は、6つの表示面P1〜P6の各々の表示位置及び回転角度を決定する(ステップS613)。上述したように、パズルゲームが開始されると、図15及び図16に示すように、ディスプレイ134の画面の右側には、6つの表示面P1〜P6の画像が表示される。パズルゲームであるので、このディスプレイ134の画面の右側に表示する6つの表示面P1〜P6の表示位置やその回転角度は、パズルゲームが開始されるたびに異なるようにするのが好ましい。ステップS613の処理は、パズルゲームが開始されるたびに異なるようにするために、6つの表示面P1〜P6の表示位置やその回転角度を定める処理である。
【0151】
第1の実施の形態では、図15及び図16に示すように、6つの表示面P1〜P6の表示位置は、3行2列の6箇所である。また、6つの表示面P1〜P6の回転角度は、0度、90度、180度及び270度の4通りである。回転角度は、6箇所の表示位置の各々で定めることができる。なお、第1の実施の形態では、6つの表示面P1〜P6の形状を正方形としたので、回転角度を上述した4通りにしたが、6つの表示面P1〜P6の形状を他の形状にしたときには、その形状に応じて回転角度も適宜変更するのが好ましい。
【0152】
上述したステップS613の処理によって決定された表示位置に、回転角度によって定まる向きで6つの表示面P1〜P6の各々をディスプレイ134に表示することができる。この表示位置及び回転角度は、乱数を発生させてその値に応じて決定するのが好ましい。このようにすることで、ゲームを実行するたびに異なる条件で開始することができ、パズルを面白くすることができる。
【0153】
次いで、CPU140は、ステップS613の処理で決定した表示位置に回転角度が示す向きで6つの表示面の各々をディスプレイ134に表示する(ステップS615)。次に、表示面P1〜P6がまだ貼り付けられていない立体の画像をディスプレイ134に表示し(ステップS617)、本サブルーチンを終了する。本サブルーチンを実行することによって、たとえば、図15(a)に示すような画面がディスプレイ134に表示される。
【0154】
<コントローラ操作処理>
図7は、上述した図5のステップS517の処理で呼び出されて実行されるコントローラ操作のためのサブルーチンを示すフローチャートである。このサブルーチンもCPU140によって実行される。なお、以下に示すフローチャートは、操作の一例を示すものであり、他のボタンやキーなどを用いて操作してもよい。
【0155】
最初に、プレーヤによってコントローラ122が操作されたか否かを判断する(ステップS711)。このステップS711の判断処理は、コントローラ122から所定の無線信号を示す電波が発せられたか否かを判断する処理である。プレーヤによってコントローラ122が操作されていないと判別したときには(NO)、上述した図5のステップS517に処理を戻す。
【0156】
一方、プレーヤによってコントローラ122が操作されたと判別したときには(YES)、コントローラ122から発せられた無線信号を受信しコマンドを解析する(ステップS713)。
【0157】
コントローラ122から受信したコマンドが、表示面選択コマンドであるか否かを判断する(ステップS715)。表示面選択コマンドであると判別したときには(YES)、その1つの表示面を選択する(ステップS717)。たとえば、マウスポインタのようなポインタ画像をディスプレイ134に表示し、プレイヤがコントローラ122を操作することによって、そのポインタ画像を移動させて表示面を選択することができる。たとえば、図15(b)、(c)又は図16(c)に示すように、正方形の枠状のポインタ画像が表示されて、そのポインタ画像によって表示面を選択することができる。
【0158】
次に、プレイヤによって選択された表示面を識別するために面番号を内部メインメモリ142eや外部メインメモリ146に記憶させ(ステップS719)、本サブルーチンを終了する。たとえば、6つの表示面は、表示面P1〜P6であり、これらのP1〜P6を、表示面を識別するための面番号として用いる。したがって、プレイヤによって表示面P3が選択されたときには、内部メインメモリ142eや外部メインメモリ146に面番号「P3」が記憶される。
【0159】
上述したステップS715の判断処理で、コントローラ122から受信したコマンドが表示面選択コマンドでないと判別したときには(NO)、コントローラ122から受信したコマンドが表示面移動コマンドであるか否かを判断する(ステップS721)。コントローラ122から受信したコマンドが表示面移動コマンドであると判別したときには(YES)、ポインタ画像を移動させた距離と方向とを検出し(ステップS723)、その距離と方向とを内部メインメモリ142eや外部メインメモリ146に記憶させ(ステップS725)、本サブルーチンを終了する。
【0160】
このステップS725の処理で内部メインメモリ142eや外部メインメモリ146に記憶させた距離と方向とに応じて、後述する図8のステップS815の処理では、ポインタ画像とともに、選択した表示面の画像を表示する。すなわち、内部メインメモリ142eや外部メインメモリ146に記憶させた方向に沿って、内部メインメモリ142eや外部メインメモリ146に記憶させた距離だけ移動する態様で、選択した表示面の画像を表示する。
【0161】
上述したステップS721の判断処理で、コントローラ122から受信したコマンドが表示面移動コマンドでないと判別したときには(NO)、コントローラ122から受信したコマンドが立方体回転コマンドであるか否かを判断する(ステップS727)。コントローラ122から受信したコマンドが立方体回転コマンドであると判別したときには(YES)、プレイヤによって十字キー126aが押された方向を検出し(ステップS729)、その方向を内部メインメモリ142eや外部メインメモリ146に記憶させ(ステップS731)、本サブルーチンを終了する。一方、コントローラ122から受信したコマンドが立方体回転コマンドでないと判別したときには(NO)、上述した図5のステップS517に処理を戻す。
【0162】
このステップS731の処理で内部メインメモリ142eや外部メインメモリ146に記憶させた方向に応じて、後述する図8のステップS829又はS831の処理では、立方体が回転するように表示する。すなわち、内部メインメモリ142eや外部メインメモリ146に記憶させた方向に沿って回転する態様で、立方体の画像を表示する。
【0163】
<ディスプレイ表示処理>
図8は、上述した図5のステップS519の処理で呼び出されて実行されるディスプレイ表示のためのサブルーチンを示すフローチャートである。このサブルーチンもCPU140によって実行される。
【0164】
最初に、表示面の1つが選択されたか否かを判断する(ステップS811)。この判断は、上述したステップS715と同様に、表示面選択コマンドを受信した否かの判断である。表示面の1つが選択されたと判別したときには(YES)、ポインタ画像が移動したか否かを判断する(ステップS813)。この判断は、上述したステップS721と同様に、表示面移動コマンドを受信した否かの判断である。ポインタ画像が移動していないと判別したときには(NO)、直ちに本サブルーチンを終了する。
【0165】
一方、ポインタ画像が移動したと判別したときには(YES)、ポインタ画像が移動した距離及び方向に応じて、選択された表示面の画像が移動する態様で表示する(ステップS815)。ポインタ画像が移動した距離及び方向は、上述したステップS725の処理で内部メインメモリ142eや外部メインメモリ146に記憶させた距離及び方向である。この処理によって、図15(b)→図15(c)や、図16(c)のように、選択された表示面の画像が移動するように表示される。
【0166】
次に、選択された表示面が、表示されている立方体の近くまで移動したか否かを判断する(ステップS817)。この判断は、選択された表示面と立方体との間の距離が、所定の距離より短くなったか否かを判断する処理である。選択された表示面が、立方体の近くまで移動したと判別したときには(YES)、選択された表示面の画像が、立方体の立体表面の画像に貼り付けられる態様で表示し(ステップS819)、本サブルーチンを終了する。このようにすることで、貼り付け作業を容易にでき、ゲームを迅速に進めることができる。たとえば、この処理によって、図15(c)や図16(b)のように、選択された表示面の画像が、立方体の立体表面の画像に貼り付けられる態様で表示される。
【0167】
一方、ステップS817の判断処理で、選択された表示面が、表示されている立方体の近くまで移動していないと判別したときには(NO)、選択された表示面が立方体から離れるように移動したか否かを判断する(ステップS821)。この判断は、選択された表示面と立方体との間の距離が、所定の距離以上になったか否かを判断する処理である。選択された表示面が立方体から離れるように移動したと判別したときには(YES)、選択された表示面の画像を、立方体の立体表面の画像から剥がれる態様で表示し(ステップS823)、本サブルーチンを終了する。また、上述したステップS821の判断処理で、選択された表示面が立方体から離れるように移動していないと判別したときには(NO)、直ちに本サブルーチンを終了する。
【0168】
上述したステップS811の判断処理で、表示面の1つが選択されていないと判別したときには(NO)、十字キー126aが押されたか否かを判断する(ステップS825)。十字キー126aが押されていないと判別したときには(NO)、直ちに本サブルーチンを終了する。
【0169】
十字キー126aが押されたと判別したときには(YES)、少なくとも1つ表示面が立方体の立体表面に貼り付けられているか否かを判断する(ステップS827)。少なくとも1つ表示面が立方体の立体表面に貼り付けられていると判別したときには(YES)、十字キー126aが押された方向に応じて、貼り付けられた表示面とともに立方体が回転する態様で表示し(ステップS829)、本サブルーチンを終了する。この処理によって、図15(c)及び図16(a)〜図16(c)に示すように、表示面が貼り付けられた立方体の画像が回転する態様で表示される。
【0170】
一方、少なくとも1つの表示面が立方体の立体表面に貼り付けられていないと判別したときには(NO)、十字キー126aが押された方向に応じて、立方体が回転する態様で表示し(ステップS831)、本サブルーチンを終了する。この処理によって、図15(a)及び図15(b)に示すように、表示面が貼り付けられていない立方体の画像が回転する態様で表示される。
【0171】
<テーブル更新処理>
図9は、上述した図5のステップS521の処理で呼び出されて実行されるテーブル更新処理のためのサブルーチンを示すフローチャートである。このサブルーチンもCPU140によって実行される。
【0172】
最初に、表示面が立方体に貼り付けられたか否かを判断する(ステップS911)。表示面が立方体に貼り付けられたと判別したときには(YES)、貼り付けられた表示面の向きを検出して、表示面の面番号と辺の辺番号とを、図13に示す貼り付け結果テーブルに書き込み(ステップS913)、面番号と辺の辺番号とを用いて、図14に示す判定用テーブルを更新する(ステップS915)。上述したように、貼り付け結果テーブルや判定用テーブルに書き込む面番号や辺番号は、表示面P1〜P6や、辺P1−L1〜P1−L4、P2−L1〜P2−L4、P3−L1〜P3−L4、P4−L1〜P4−L4、P5−L1〜P5−L4又はP6−L1〜P6−L4である。
【0173】
図13に示す貼り付け結果テーブルや、図14に示す判定用テーブルに示すように、立方体の立体表面の面番号や辺番号は予め書き込まれている。すなわち、立体表面C1〜C6、並びに辺C1−L1〜C1−L4、C2−L1〜C2−L4、C3−L1〜C3−L4、C4−L1〜C4−L4、C5−L1〜C5−L4及びC6−L1〜C6−L4は、結果テーブルや判定用テーブルに書き込まれている。
【0174】
プレイヤによって選択された表示面が、立方体の立体表面に貼り付けられたときには、ステップS913の処理によって、貼り付け結果テーブルにおいて、プレイヤによって選択された表示面を識別する面番号が、その表示面が貼り付けられた立体表面を識別する面番号に対応する記憶領域に書き込まれる。たとえば、プレイヤによって表示面P5が選択されて、立体表面C1に貼り付けられたときには、貼り付け結果テーブルの、立体表面C1に対応する記憶領域に「P5」が書き込まれる(図13参照)。
【0175】
さらに、プレイヤによって選択された表示面が、立方体の立体表面に貼り付けられたときには、ステップS913の処理によって、貼り付け結果テーブルにおいて、選択された表示面の回転角度や立方体の回転方向に応じて定まる辺の辺番号が、その表示面が貼り付けられた立体表面の辺を識別する辺番号に対応する記憶領域に書き込まれる。たとえば、プレイヤによって表示面P5が選択されて、立体表面C1に貼り付けられたときに、表示面の回転角度や立方体の回転方向とによって、表示面P5の辺P5−L1が立体表面C1の辺C1−L2に対応し、表示面P5の辺P5−L2が立体表面C1の辺C1−L3に対応し、表示面P5の辺P5−L3が立体表面C1の辺C1−L4に対応し、表示面P5の辺P5−L4が立体表面C1の辺C1−L1に対応する場合には、貼り付け結果テーブルにおいて、立体表面C1の辺C1−L2に対応する記憶領域に辺番号「P5−L1」が書き込まれ、立体表面C1の辺C1−L3に対応する記憶領域に辺番号「P5−L2」が書き込まれ、立体表面C1の辺C1−L4に対応する記憶領域に辺番号「P5−L3」が書き込まれ、立体表面C1の辺C1−L1に対応する記憶領域に辺番号「P5−L4」が書き込まれる(図13参照)。
【0176】
上述したステップS913の処理によって、貼り付け結果テーブルが更新された後、ステップS915の処理によって、判定用テーブルが更新される。上述したように、貼り付け結果テーブルが更新された場合には、図14に示すように、判定用テーブルの表示面対応辺関係の辺C1−L1に対応する記憶領域に、辺番号「P5−L4」が書き込まれ、辺C1−L2に対応する記憶領域に、辺番号「P5−L1」が書き込まれ、辺C1−L3に対応する記憶領域に、辺番号「P5−L2」が書き込まれ、辺C1−L4に対応する記憶領域に、辺番号「P5−L3」が書き込まれる。
【0177】
次に、全ての表示面が立方体に貼り付けられたか否かを判断する(ステップS917)。全ての表示面が立方体に貼り付けられていないと判別したときには(NO)、直ちに本サブルーチンを終了する。一方、全ての表示面が立方体に貼り付けられたと判別したときには(YES)、パズルが完成したか否かを判断する(ステップS919)。なお、全ての表示面が立方体の立体表面に貼り付けられたときには、図13に示す貼り付け結果テーブル及び図14に示す判定用テーブルの記憶領域の全てに、立体表面とその辺とに対応する面番号と辺番号とが記憶される。
【0178】
ステップS919の判断処理におけるパズルが完成したか否かの判断は、判定用テーブルに記憶された関係が、整合性成立テーブルの全ての関係を満たすか否かである。図12に示すように、整合性成立テーブルは、表示面P1〜P6を立方体に適切に貼り付けることができたときの表示面の面番号及び辺番号と、立体表面の面番号及び辺番号との関係を記憶するテーブルである。この図12に示した整合性成立テーブルの関係を全て満たしたときには、貼り付けられた6つの表示面P1〜P6によって立方体の全体で動画を連続的にかつ矛盾なく表示することができる。したがって、ステップS919の判断処理は、判定用テーブルに記憶された関係の各々が、整合性成立テーブルのいずれかに該当するか否かを判断する処理である。たとえば、1つの表示面でも一致しない場合には、その表示面では、整合性のない動画が表示される。たとえば、一の表示面で移動するように描かれたオブジェクトの画像が、その一の表示面の一の辺に到達したときに徐々に消失するとともに、そのオブジェクトの画像が、その一の表示面の一の辺と隣接してない他の辺から他の表示面に徐々に現れる態様で表示される。
【0179】
上述したステップS919の判断処理で、パズルが完成していないと判別したときには(NO)、直ちに本サブルーチンを終了する。一方、パズルが完成したと判別したときには(YES)、完成情報を生成し(ステップS921)、本サブルーチンを終了する。完成情報は、パズルが完成したことを示す情報であり、フラグなどの変数とするのが好ましい。
【0180】
上述したステップS911の判断処理で、表示面が立方体に貼り付けられていないと判別したときには(NO)、表示面が立方体から剥がされたか否かを判断する(ステップS923)。表示面が立方体から剥がされていないと判別したときには(NO)、直ちに本サブルーチンを終了する。
【0181】
表示面が立方体から剥がされたと判別したときには(YES)、剥がされた表示面を示す面番号と、その表示面の辺の辺番号とを、図13に示す貼り付け結果テーブルから削除し(ステップS925)、面番号と辺の辺番号とを用いて、図14に示す判定用テーブルを更新し(ステップS927)、本サブルーチンを終了する。
【0182】
この第1の実施の形態によるパズルゲームによれば、プレイヤは、オブジェクト(たとえば、キャラクタ)が表示面で移動する移動方向を視認して、オブジェクトの移動方向をヒントにして、組み合わせるべき表示面や、立方体に貼り付けるべき表示面を推察しつつ、パズルを解くことができる全く新しい立体パズルを提供できる。
【0183】
なお、第1の実施の形態では、「立体」の具体的な形状として立方体である場合を示したが、同じ形状の複数の表示面に組み合わせて組み立てることができるものであればよい。また、六面体と五面体とからなる、いわゆるサッカーボールのように、異なる形状の表示面を組み合わせて組み立てる「立体」でもよい。
【0184】
上述したように、第1の実施の形態によるゲームプログラムで用いる動画のデータは、表示面の表面に沿って二次元に移動可能なオブジェクトの画像や、二次元に近い範囲でのみ移動可能なオブジェクトの画像を表示する動画データである。したがって、表示面を立方体に適切に貼り付けてパズルを解けたときには、あくまでも立方体の表面に沿ってオブジェクトが移動する態様の動画が表示されるため、一の表示面から他の表示面にオブジェクトが移るときには、一の表示面と他の表示面と境界(辺)においてオブジェクトが折れ曲がるようにして表示される。
【0185】
なお、上述した第1の実施の形態によるゲームプログラムでは動画のデータを用いた場合を示したが、静止画のデータを用いて表示面に静止画を表示してもよい。このような場合であっても、「立体」を示す静止画像を連続的に表示できたり又は矛盾なく表示できたりすれば、パズルが解けたとすることができる。
【0186】
<<<第2の実施の形態>>>
上述したように、図1〜図4に示したゲームシステム100は、第2の実施の形態においても共通する。したがって、第2の実施の形態によるゲームプログラムは、ゲームシステム100において制御されて実行され、プレイヤによってパズルゲームが行われる。
【0187】
<第2の実施の形態のゲームの手順>
まず、第2の実施の形態によるゲームプログラムが実行されると、ディスプレイ134の画面の右側には、6つの表示面(複数の素片)の画像が表示され、画面の左側には、立体(集合立体)の画像が表示される。第1の実施の形態と同様に、第2の実施の形態における「立体」の具体的な形状は立方体であり(図10参照)、「6つの表示面」の各々の具体的な形状は正方形である(図11参照)。したがって、第2の実施の形態によるゲームプログラムが実行されると、図17に示すように、ディスプレイ134の画面の右側には、正方形の「6つの表示面」の画像が表示され、画面の左側には、立方体の「立体」の画像が表示される。上述した正方形の形状を有する6つの表示面が、「複数の素片」に対応し、立方体の形状を有する立体が「集合立体」に対応する。
【0188】
この第2の実施の形態のパズルゲームも、ディスプレイ134の映像によって示される仮想空間において、正方形の形状を有する「6つの表示面」を組み合わせて並べることによって、立方体の形状を有する「立体」を組み立てるパズルゲームである。第2の実施の形態のパズルゲームは、仮想空間で、正方形の形状を有する「6つの表示面」の各々を面素片として、立方体の形状を有する「立体」を構成する6つの面に、順次貼り付けていくパズルゲームである。第1の実施の形態と同様に、第2の実施の形態においても、「立体」を構成する6つの面C1、C2、C3、C4、C5及びC6を「立体表面」(図10参照)と称し、動画が表示される面素片であって、「立体表面」に貼り付けられる6つの面P1、P2、P3、P4、P5及びP6を「表示面」(図11参照)と称する。第1の実施の形態と同様に、「立体表面」は、立方体の形状の「立体」の外形を画定する表面である。なお、「表示面」を「立体表面」に貼り付けることができるので、「立体表面」の大きさ及び形状は、「表示面」の大きさ及び形状と同じである。
【0189】
したがって、第2の実施の形態においても、第1の実施の形態と同様に、表示面P1〜P6の「P1〜P6」が、表示面を識別するための面番号となる。また、辺P1−L1〜P1−L4、P2−L1〜P2−L4、P3−L1〜P3−L4、P4−L1〜P4−L4、P5−L1〜P5−L4及びP6−L1〜P6−L4が、辺を識別するための辺番号となる。同様に、立体表面C1〜C6の「C1〜C6」が、立体表面を識別するための面番号となる。また、辺C1−L1〜C1−L4、C2−L1〜C2−L4、C3−L1〜C3−L4、C4−L1〜C4−L4、C5−L1〜C5−L4及びC6−L1〜C6−L4が、辺を識別するための辺番号となる。第1の実施の形態と同様に、これらの面番号と辺番号とは、上述した図13に示す貼り付け結果テーブルや、図14に示す判定用テーブルを書き込む情報である。
【0190】
第2の実施の形態においても、ディスプレイ134の右側に表示されている6つの表示面(表示面P1〜P6)には、各種の動画が表示される。これらの6つの表示面P1〜P6を適切に組み合わせて、立方体を組み立てることができたときには、組み立てられた立方体の6つの面(組み合わされた表示面)の全体で動画を連続的にかつ矛盾なく表示することができる。言い換えれば、正方形の形状を有する6つの表示面P1〜P6を、立方体を構成する6つの立体表面C1〜C6に適切に貼り付けることができたときには、貼り付けられた6つの表示面P1〜P6によって立方体の全体で動画を連続的にかつ矛盾なく表示することができる。
【0191】
上述した第1の実施の形態では、6つの表示面P1〜P6の各々には、表示面の表面に沿ってオブジェクトが移動する態様の動画が表示されるものであった。これに対して、第2の実施の形態では、6つの表示面P1〜P6を透明なガラスのような透視面であるとして、立方体の内側に仮想的に配置されたオブジェクトを視認できる(透視できる)態様となるように、6つの表示面P1〜P6にオブジェクトの画像を表示する。なお、立方体の内側とは、立方体を構成する立体表面C1〜C6によって画定される領域を含む範囲をいう。したがって、6つの表示面P1〜P6を、立方体を構成する6つの立体表面C1〜C6に適切に貼り付けることができたときには、立方体に貼り付けられた6つの表示面P1〜P6に表示される画像によって、立方体の内側に仮想的に配置されたオブジェクトの画像を連続的にかつ矛盾なく表示することができる。このように、6つの表示面P1〜P6を適切に貼り付けることができたときには、6つの表示面P1〜P6に表示されたオブジェクトの画像によって、プレイヤは立方体の内側にオブジェクトが配置されたように視認することができるので、現実感のある画像を表示することができる。
【0192】
<動画データ>
上述したように、第2の実施の形態においても、ゲームプログラムを実行することによって、プレイヤはパズルゲームを行うことができる。上述したように、このパズルゲームは、正方形の形状を有する6つの表示面P1〜P6を、立方体を構成する6つの立体表面C1〜C6に適切に貼り付けることができたときには、貼り付けられた6つの表示面P1〜P6によって立方体の全体で動画を連続的にかつ矛盾なく表示して、パズルが解けたとするゲームである。したがって、第2の実施の形態によるゲームプログラムでも、6つの表示面P1〜P6が適切に貼り付けられたときには、連続的にかつ矛盾なく動画を表示できるような動画データを用いる。
【0193】
第2の実施の形態では、図11(b)に示したような6つの表示面P1〜P6の各々に所定の画像データを割り当て、6つの表示面P1〜P6を立方体の6つの立体表面C1〜C6に適切に貼り付けることができたときに、貼り付けられた表示面P1〜P6に表示される動画によって、立方体の全体で連続的に動画を表示できる動画データを用いればよい。図11(b)は、内部メインメモリ142eや外部メインメモリ146の所定の記憶領域に形成されたデータ領域を模式的に示す図であり、6つの表示面P1〜P6の各々の画像データが割り当てられて記憶される領域を示す図である。
【0194】
したがって、このような6つの表示面P1〜P6の各々に割り当てる所定の画像データを生成して、内部メインメモリ142eや外部メインメモリ146に記憶させればよい。なお、動画データは、複数の一定のものを光ディスク118に予め記憶させておいて内部メインメモリ142eや外部メインメモリ146に展開するようにしても、パズルゲームを開始する度に生成して内部メインメモリ142eや外部メインメモリ146に記憶させるようにしてもよい。
【0195】
6つの表示面P1〜P6の各々に割り当てた所定の画像データを、VRAM142dに書き込むことによって、6つの表示面P1〜P6の各々に対応させて動画を表示することができる。
【0196】
6つの表示面P1〜P6の各々に割り当てる動画データは、図18に示すようにして生成すればよい。図18に示すように、オブジェクトが配置されている仮想空間に、オブジェクトの像を仮想的に撮影するための仮想カメラを設置し、仮想カメラによってオブジェクトを撮影して仮想的に得られるデータを画像データ(動画データ)として用いる。
【0197】
具体的には、立方体を構成する6つの立体表面C1〜C6の各々を望むように6つの仮想カメラM1〜M6を、オブジェクトが配置されている仮想空間に設置する。仮想カメラM1は、立体表面C1を介してオブジェクトの像を仮想的に撮影する。仮想カメラM2は、立体表面C2を介してオブジェクトの像を仮想的に撮影する。仮想カメラM3は、立体表面C3を介してオブジェクトの像を仮想的に撮影する。仮想カメラM4は、立体表面C4を介してオブジェクトの像を仮想的に撮影する。仮想カメラM5は、立体表面C5を介してオブジェクトの像を仮想的に撮影する。仮想カメラM6は、立体表面C6を介してオブジェクトの像を仮想的に撮影する。
【0198】
さらに、たとえば、仮想カメラM1によって撮影されて仮想的に得られた画像データ(動画データ)を表示面P1に割り当てる。仮想カメラM2によって撮影されて仮想的に得られた画像データ(動画データ)を表示面P2に割り当てる。仮想カメラM3によって撮影されて仮想的に得られた画像データ(動画データ)を表示面P3に割り当てる。仮想カメラM4によって撮影されて仮想的に得られた画像データ(動画データ)を表示面P4に割り当てる。仮想カメラM5によって撮影されて仮想的に得られた画像データ(動画データ)を表示面P5に割り当てる。仮想カメラM6によって撮影されて仮想的に得られた画像データ(動画データ)を表示面P6に割り当てる。なお、このような動画データは、三次元立体画像データであるものが好ましい。
【0199】
このように構成した場合には、表示面P1を立体表面C1に貼り付け、表示面P2を立体表面C2に貼り付け、表示面P3を立体表面C3に貼り付け、表示面P4を立体表面C4に貼り付け、表示面P5を立体表面C5に貼り付け、表示面P6を立体表面C6に貼り付けたときに、貼り付けられた表示面P1〜P6によって、立方体の内側に仮想的に配置されたオブジェクトの画像を連続的にかつ矛盾なく表示することができ、パズルが解けたことになる。
【0200】
第2の実施の形態によるゲームプログラムにおいても、パズルを解くことができたか否かの判断は、第1の実施の形態と同様に、図12に示した整合性成立テーブルを用いて判断することができる。整合性成立テーブルは、表示面を立方体に適切に貼り付けることができたときの表示面の面番号及び辺番号と、立体表面の面番号及び辺番号との関係を記憶するテーブルであり、パズルの正答の関係を記憶するテーブルである。この整合性の関係は、予め定められて光ディスク118に記憶されており、パズルゲームの起動とともに、内部メインメモリ142eや外部メインメモリ146に展開される。表示面を立方体に適切に貼り付けることができたときには、この整合性の関係を全て満たし、パズルを解くことができたと判断することができる。
【0201】
<<第2の実施の形態のゲームの処理>>
第2の実施の形態のゲームの処理は、第1の実施の形態のゲームの処理と同様に、図5のゲーム実行基本処理と、図6のゲーム初期化処理と、図7のコントローラ操作処理と、図8のディスプレイ表示処理と、図9のテーブル更新処理とを実行する。
【0202】
第2の実施の形態でも、図17(b)に示すように、6つの表示面P1〜P6の表示位置は、3行2列の6箇所である。また、6つの表示面P1〜P6の回転角度は、0度、90度、180度及び270度の4通りである。回転角度は、6箇所の表示位置の各々で定めることができる。なお、第2の実施の形態でも、6つの表示面P1〜P6の形状を正方形としたので、回転角度を上述した4通りにしたが、6つの表示面P1〜P6の形状を他の形状にしたときには、その形状に応じて回転角度も適宜変更するのが好ましい。
【0203】
このようにすることで、第2の実施の形態でも、図6に示したゲーム初期化処理のサブルーチンにおけるステップS613の処理によって決定された表示位置に、回転角度による向きで6つの表示面P1〜P6の各々をディスプレイ134に表示することができる。この表示位置及び回転角度は、乱数を発生させてその値に応じて決定するのが好ましい。このようにすることで、ゲームを実行するたびに異なる条件で開始することができ、パズルを面白くすることができる。
【0204】
また、図9に示したテーブル更新処理において、整合性成立テーブルを用いて、6つの表示面P1〜P6を立方体の6つの立体表面C1〜C6に適切に貼り付けることができたか否かを判断することができる。すなわち、第2の実施の形態においても、第1の実施の形態と同様に、図9に示したテーブル更新処理を実行することで、図13に示した貼り付け結果テーブル及び図14に示した判定用テーブルの表示面の面番号と辺の辺番号とを更新して、図12に示した整合性成立テーブルを用いて、6つの表示面P1〜P6を適切に貼り付けることができたか否かを判断することができる。
【0205】
上述したように、第1の実施の形態によるゲームプログラムで用いる動画のデータは、表示面の表面などの二次元に移動可能なオブジェクトの画像や、二次元に近い範囲でのみ移動可能なオブジェクトの画像を表示する動画データであった。このため、表示面を立方体に貼り付けてパズルを解いたときには、あくまでも立方体の表面に沿ってオブジェクトが移動する態様の動画が表示されるため、一の表示面から他の表示面にオブジェクトが移るときに、折れ曲がるようにして表示され、現実感の薄いオブジェクトの画像が立方体に表示された。
【0206】
これに対して、第2の実施の形態によるゲームプログラムのパズルゲームは、立方体に内側に配置されたオブジェクトを視認する(透視する)ような態様で、オブジェクトの画像を表示面に表示するので、現実感のあるオブジェクトの画像を立方体に貼り付けられた表示面によって表示することができる。
【0207】
なお、上述した第2の実施の形態によるゲームプログラムでは動画のデータを用いた場合を示したが、静止画のデータを用いて表示面に静止画を表示してもよい。このような場合であっても、「立体」を示す静止画像を連続的に表示できたり又は矛盾なく表示できたりすれば、パズルが解けたとすることができる。
【0208】
<<<第3の実施の形態>>>
上述したように、図1〜図4に示したゲームシステム100は、第3の実施の形態においても共通する。したがって、第3の実施の形態によるゲームプログラムは、ゲームシステム100において制御されて実行され、プレイヤによってパズルゲームが行われる。
【0209】
<第3の実施の形態のゲームの手順>
まず、第3の実施の形態によるゲームプログラムが実行されると、ディスプレイ134の画面の右側には、3つの仮想的な「立体素片」の画像が表示され、画面の左側には、1つの仮想的な「集合立体」の画像が表示される。「集合立体」は、仮想空間において、3つの「立体素片」が配置されて形成された立体である。
【0210】
第3の実施の形態において、「集合立体」の全体的な形状は、所定の高さを有する円柱であり(図25(a)参照)、3つの「立体素片」の各々の具体的な形状は、「集合立体」の円柱の高さよりも高さが低くかつ「集合立体」の円柱と半径が同じ円柱である(図25(b)参照)。したがって、第3の実施の形態によるゲームプログラムが実行されると、図26に示すように、ディスプレイ134の画面の右側には、低い高さの円柱形状の3つの「立体素片」の画像が表示され、画面の左側には、「立体素片」よりも高い高さを有する円柱形状の「集合立体」の画像が表示される。
【0211】
第3の実施の形態によるゲームプログラムのパズルゲームは、第1の実施の形態や第2の実施の形態とは異なり、ディスプレイ134の映像によって示される仮想空間において、円柱形状を有する複数の「立体素片」を並べたり組み合わせたりすることによって、「立体素片」の高さよりも高い高さを有する円柱形状を有する「集合立体」を組み立てるゲームである。すなわち、上述した第1の実施の形態や第2の実施の形態のパズルゲームは、ディスプレイ134の映像によって示される仮想空間において、正方形の「面素片」を組み合わせて、所定の大きさと形状とを有する立体を組み立てるゲームであったが、第3の実施の形態のパズルゲームは、仮想空間において、「立体素片」を並べたり組み合わせたりして、所定の大きさと形状とを有する「集合立体」を組み立てるゲームである。
【0212】
上述したように、第3の実施の形態のパズルゲームは、円柱形状の3つの「立体素片」を並べたり組み合わせたりすることによって、円柱形状の「集合立体」を組み立てるゲームである。したがって、3つの「立体素片」を高さ方向に適切な順序で並べることで、「集合立体」を完成させることができる。また、3つの「立体素片」も「集合立体」も円柱形状を有するので、高さ方向に沿って延在する円柱の中心軸の周りに所定の角度だけ回転させて、3つの「立体素片」を配置することもできる。したがって、パズルゲームの初期化処理で、3つの「立体素片」の軸の周り角度を異ならしめて3つの「立体素片」を配置することによって、3つの「立体素片」が高さ方向に適切な順序となるように並べるだけでなく、3つの「立体素片」が中心軸の周りに適切な角度にもなるように配置して、「集合立体」を完成させるパズルゲームにすることができる。
【0213】
第3の実施の形態においては、円柱形状の「集合立体」を構成し、動画が表示される3つの立体の素片の各々を立体素片E1、E2及びE3(図25(b)参照)と称する。また、立体素片E1の上側の辺をE1−L1と称し下側の辺をE1−L2と称する。立体素片E2の上側の辺をE2−L1と称し下側の辺をE2−L2と称する。立体素片E3の上側の辺をE3−L1と称し下側の辺をE3−L2と称する。これらのE1−L1、E1−L2、E2−L1、E2−L2、E3−L1及びE3−L2が、立体素片E1、E2及びE3の辺を識別するための辺番号となる。この辺番号は、後述する図24に示す判定用テーブルに書き込む情報である。なお、第3の実施の形態においては、辺番号には、立体素片を識別するためのE1、E2及びE3も含まれており、辺番号を指定することによって、立体素片とその辺とを特定することができる。また、第3の実施の形態においては、第1の実施の形態や第2の実施の形態のパズルゲームとは異なり、3つの「立体素片」の適切な順序は、一義的に定まるため、貼り付け結果テーブルを用いずに、判定用テーブル(図24参照)のみを用いることができる。
【0214】
第3の実施の形態のパズルゲームでは、ディスプレイ134の右側に表示されている3つの立体素片E1〜E3には、各種の動画が表示される。これらの3つの立体素片E1〜E3を適切な順序でかつ適切な角度で並べて、円柱形状の「集合立体」を完成させることができたときには、並べられた3つの立体素片E1〜E3の全体で動画を連続的にかつ矛盾なく表示することができる。
【0215】
第3の実施の形態では、円柱形状の「集合立体」の表面(円筒状の表面)を透明なガラスのような透視面であるとして、「集合立体」の内側に仮想的に配置されたオブジェクトを視認できる(透視できる)態様となるように、3つの立体素片E1〜E3にオブジェクトの画像を表示する。ここで、「集合立体」の内側とは、円柱形状の「集合立体」を構成する円筒状の表面によって画定される領域を含む範囲をいう。なお、円柱は、円筒のみならず、円筒を挟む2つの底面も有するので、円筒状の表面のみならず、2つの底面を含めて画定される領域を、「集合立体」の内側としてもよい。
【0216】
したがって、3つの立体素片E1〜E3を適切に並べることができたときには、3つの立体素片E1〜E3に表示される画像によって、円柱形状の「集合立体」の内側に仮想的に配置されたオブジェクトの画像を連続的にかつ矛盾なく表示することができる。このように、3つの立体素片E1〜E3を適切に並べることができたときには、3つの立体素片E1〜E3に表示されたオブジェクトの画像によって、プレイヤは円柱形状の「集合立体」の内側にオブジェクトが配置されたように視認することができるので、現実感のある画像を表示することができる。
【0217】
<動画データ>
上述したように、第3の実施の形態においても、ゲームプログラムを実行することによって、プレイヤはパズルゲームを行うことができる。上述したように、このパズルゲームは、円柱の形状を有する3つの立体素片E1〜E3を適切な順序でかつ適切な角度で並べることができたときには、並べられた3つの立体素片E1〜E3によって、円柱形状の「集合立体」の全体で動画を連続的にかつ矛盾なく表示して、パズルが解けたとするゲームである。したがって、第3の実施の形態によるゲームプログラムでも、3つの立体素片E1〜E3が適切に並べられたときに、連続的にかつ矛盾なく動画を表示できるような動画データを用いる。
【0218】
第3の実施の形態では、図25(c)に示したような3つの立体素片E1〜E3の画像データ領域の各々に所定の画像データを割り当てる。この図25(c)は、内部メインメモリ142eや外部メインメモリ146の所定の記憶領域に形成されたデータ領域を模式的に示す図であり、3つの立体素片E1〜E3の各々の画像データが割り当てられて記憶される領域を示す図である。3つの立体素片E1〜E3を適切に並べることができたときに、並べられた3つの立体素片E1〜E3に表示される動画によって、円柱形状の「集合立体」の全体で連続的でかつ矛盾なく動画を表示できる動画データを用いればよい。なお、このような動画データは、三次元立体画像データであるものが好ましい。
【0219】
したがって、このような3つの立体素片E1〜E3の各々に割り当てる所定の画像データを生成して、内部メインメモリ142eや外部メインメモリ146に記憶させればよい。なお、動画データは、複数の一定のものを光ディスク118に予め記憶させておいて内部メインメモリ142eや外部メインメモリ146に展開するようにしても、パズルゲームを開始する度に生成して内部メインメモリ142eや外部メインメモリ146に記憶させるようにしてもよい。
【0220】
3つの立体素片E1〜E3の各々に割り当てた所定の画像データを、VRAM142dに書き込むことによって、3つの立体素片E1〜E3の各々に対応させて動画を表示することができる。
【0221】
3つの立体素片E1〜E3の各々に割り当てる動画データは、図25(a)及び図25(b)に示すようにして生成すればよい。図25(a)に示すように、オブジェクトが配置されている仮想空間に、オブジェクトの像を仮想的に撮影するための仮想カメラを設置し、仮想カメラによってオブジェクトを撮影したものとして仮想的に得られるデータを画像データ(動画データ)として用いる。
【0222】
具体的には、円柱形状の「集合立体」を構成する3つの立体表面D1〜D3の各々を望むように、3つの仮想カメラM1〜M3を、オブジェクトが配置されている仮想空間に設置する。3つの立体表面D1〜D3は、円柱形状の「集合立体」の円筒部分の外形を画定する表面である。図25(a)に示すように、オブジェクトが配置されている仮想空間において、3つの仮想カメラM1〜M3の各々を、円柱形状の「集合立体」の高さ方向に異なる位置に設置する。
【0223】
立体表面D1〜D3の各々は、円柱形状を有しており、高さ方向に沿って延在する中心軸を有する。仮想カメラM1は、立体表面D1の高さ方向の略中央に、かつ、立体表面D1の中心軸から所定の半径の位置に、かつ、中心軸の周りに360度に亘って回転可能に、かつ、立体表面D1に向かって設置されている。仮想カメラM2は、立体表面D2の高さ方向の略中央に、かつ、立体表面D2の中心軸から所定の半径の位置に、かつ、中心軸の周りに360度に亘って回転可能に、かつ、立体表面D2に向かって設置されている。仮想カメラM1は、立体表面D3の高さ方向の略中央に、かつ、立体表面D3の中心軸から所定の半径の位置に、かつ、中心軸の周りに360度に亘って回転可能に、かつ、立体表面D3に向かって設置されている。
【0224】
仮想カメラM1は、立体表面D1の表面(透視可能な面であるとして)を介してオブジェクトの像を、立体表面D1の中心軸の周りで回転しつつ仮想的に撮影する。仮想カメラM2は、立体表面D2の表面(透視可能な面であるとして)を介してオブジェクトの像を、立体表面D2の中心軸の周りで回転しつつ仮想的に撮影する。仮想カメラM3は、立体表面D3の表面(透視可能な面であるとして)を介してオブジェクトの像を、立体表面D3の中心軸の周りで回転しつつ仮想的に撮影する。仮想カメラM1〜M3の各々によってオブジェクトを仮想的に撮影されたとして生成した画像データは、内部メインメモリ142eや外部メインメモリ146の所定の記憶領域(図25(c)参照)に記憶させる。なお、仮想空間に配置されたオブジェクトは、仮想空間内で移動できるので、内部メインメモリ142eや外部メインメモリ146の記憶領域に記憶させる動画データは、所定のタイミングごとに更新する。このようにすることで、仮想空間で移動するオブジェクトを表示することができる。
【0225】
さらに、たとえば、仮想カメラM1によって撮影されて仮想的に得られた画像データ(動画データ)を立体素片E1に割り当てる。仮想カメラM2によって撮影されて仮想的に得られた画像データ(動画データ)を立体素片E2に割り当てる。仮想カメラM3によって撮影されて仮想的に得られた画像データ(動画データ)を立体素片E3に割り当てる。立体表面D1〜D3は、円筒形状を有するので、上述したように生成した画像データ(動画データ)を、座標変換や陰面処理やテクスチャマッピングなどの画像処理を施すによって、円筒形状に適合させて、円筒形状を有する立体表面D1〜D3の表面に画像を貼り付けるようにして仮想空間に存在するオブジェクトを表示すればよい。
【0226】
なお、内部メインメモリ142eや外部メインメモリ146の所定の記憶領域(図25(c)参照)に記憶された画像データは、長尺な矩形状の画像を表示できるように構成されているが、上述したように、座標変換などの画像処理を施すによって、円筒形状に変形して、円筒表面に画像を貼り付けるような態様で画像を表示することができる。
【0227】
このように画像データ(動画データ)を生成して内部メインメモリ142eや外部メインメモリ146の所定の記憶領域(図25(c)参照)に記憶させておくことにより、構成した場合には、立体素片E1を立体表面D1の位置に配置し、立体素片E2を立体表面D2の位置に配置し、立体素片E3を立体表面D3の位置に配置したときに、オブジェクトの画像を連続的にかつ矛盾なく表示することができ、パズルが解けたことになる。具体的には、上から、立体素片E1、E2及びE3の順に並べ、かつ、立体素片E1、E2及びE3の中心軸が一致するように又は同心状に配置し、これらの立体素片を適切な角度となるように並べたときに、並べられた立体素片E1、E2及びE3によって、円柱形状の「集合立体」の内側に仮想的に配置されたオブジェクトの画像を連続的にかつ矛盾なく表示することができ、パズルが解けたことになる。
【0228】
第3の実施の形態によるゲームプログラムにおいても、パズルを解くことができたか否かの判断は、第1の実施の形態や第2の実施の形態と同様に、図23に示す整合性成立テーブルを用いて判断することができる。図23に示す整合性成立テーブルは、3つの立体素片E1〜E3を適切に並べることができたときの辺番号の関係を記憶するテーブルであり、パズルの正答の関係を記憶するテーブルである。
【0229】
上述したように、第3の実施の形態においては、辺番号には、立体素片を識別するためのE1、E2及びE3も含まれており、辺番号を指定することによって、立体素片とその辺とを特定することができる。したがって、整合性成立テーブルには、辺番号の並びの関係を記憶させればよい。たとえば、図23に示した例では、辺番号は、上から順に、E1−L1、E1−L2、E2−L1、E2−L2、E3−L1及びE3−L2として定められて、整合性成立テーブルに記憶されている。この整合性の関係は、予め定められて光ディスク118に記憶されており、パズルゲームの起動とともに、内部メインメモリ142eや外部メインメモリ146に展開される。立体素片を集合立体に適切に貼り付けることができたときには、この整合性の関係を全て満たし、パズルを解くことができたと判断することができる。
【0230】
また、上述したように、第3の実施の形態のパズルゲームは、3つの立体素片E1〜E3が適切な順序となるように並べるだけでなく、3つの立体素片E1〜E3が適切な角度にもなるように配置して、「集合立体」を完成させるゲームである。したがって、パズルを解くことができたか否かの判断は、辺番号による判断だけでなく、3つの立体素片E1〜E3の全てが適切な角度で並べられたか否かの判断も要する。
【0231】
3つの立体素片E1〜E3の角度は、パズルゲームの初期化処理によって、初期値が定められる。また、プレイヤがコントローラ122を操作することによって、3つの立体素片E1〜E3を操作に応じて回転させることができ、そのときの角度を定めることができる。3つの立体素片E1〜E3の角度は、内部メインメモリ142eや外部メインメモリ146の所定の記憶領域に記憶される。3つの立体素片E1〜E3が並べられたときには、内部メインメモリ142eや外部メインメモリ146の所定の記憶領域から、3つの立体素片E1〜E3の角度を読み出し、それらの全てが一致するか否かを判断すればよい。
【0232】
なお、3つの立体素片E1〜E3は、連続的に回転できるようにはせずに、所定の角度ごとに回転できるようにすることで回転方向の位置合わせの操作を容易にすることができる。また、回転できる所定の角度を適宜定めることによって、回転方向の位置合わせの操作の困難性を決めることができる。たとえば、所定の角度を90度ごとにしたときには、大雑把に回転方向を定めればよいので、回転方向の位置合わせの操作を容易にすることができる。一方、所定の角度を5度ごとにしたときには、細かく回転方向を定めなければならないので、回転方向の位置合わせの操作を困難にすることができる。
【0233】
<<第3の実施の形態のゲームの処理>>
第3の実施の形態のゲームの処理は、第1の実施の形態のゲームや第2の実施の形態のゲームの処理と同様に、図5のゲーム実行基本処理と、図19のゲーム初期化処理と、図20のコントローラ操作処理と、図21のディスプレイ表示処理と、図22のテーブル更新処理とを、同様に実行すればよい。
【0234】
上述した図5に示したゲーム実行基本処理を実行することによって、第3の実施の形態によるパズルゲームを行うことができる。
【0235】
<ゲーム初期化処理>
図19は、第3の実施の形態におけるゲーム初期化処理のサブルーチンを示すフローチャートであり、上述した図5のステップS515の処理で呼び出されて実行される。このサブルーチンもCPU140によって実行される。
【0236】
最初に、CPU140は、3つの立体素片E1〜E3に表示する動画の基本構成を決定する(ステップS1911)。この処理は、上述したステップS611の処理と同様に、たとえば、動画の背景や、対象物であるキャラクタの種類と数や、他の表示物や数やら位置などを決定する。このステップS1911の処理によって、動画データが生成される。上述したように、動画データは、図25(c)に示した3つの立体素片E1〜E3の画像データ領域で表示できるデータである。
【0237】
次に、CPU140は、3つの立体素片E1〜E3の各々の表示位置及び回転角度を決定する(ステップS1913)。上述したように、パズルゲームが開始されると、図26に示すように、ディスプレイ134の画面の右側には、3つの立体素片E1〜E3の画像が表示される。パズルゲームであるので、このディスプレイ134の画面の右側に表示する3つの立体素片E1〜E3の表示位置やその回転角度は、パズルゲームが開始されるたびに異なるようにするのが好ましい。ステップS1913の処理は、パズルゲームが開始されるたびに異なるようにするために、3つの立体素片E1〜E3の表示位置やその回転角度を定める処理である。
【0238】
第3の実施の形態では、図25(b)や図26に示すように、3つの立体素片E1〜E3の表示位置は、3行1列の3箇所である。また、上述したように、3つの「立体素片」も「集合立体」も円柱形状を有するので、高さ方向に沿って延在する円柱の中心軸の周りに所定の角度だけ回転させて、3つの立体素片E1〜E3を配置することもできる。ステップS1913の処理で決定する回転角度は、3つの立体素片E1〜E3の中心軸の周りの回転角度である。
【0239】
上述したステップS1913の処理によって決定された表示位置に、回転角度による向きで3つの立体素片E1〜E3の各々をディスプレイ134に表示することができる。この表示位置及び回転角度は、乱数を発生させてその値に応じて決定するのが好ましい。このようにすることで、ゲームを実行するたびに異なる条件で開始することができ、パズルを面白くすることができる。
【0240】
次いで、CPU140は、ステップS1913の処理で決定した表示位置に回転角度が示す向きで3つの立体素片E1〜E3の各々をディスプレイ134に表示する(ステップS1915)。次に、3つの立体素片E1〜E3がまだ配置されていない「集合立体」の画像をディスプレイ134に表示し(ステップS1917)、本サブルーチンを終了する。本サブルーチンを実行することによって、たとえば、図26に示すような画面がディスプレイ134に表示される。
【0241】
<コントローラ操作処理>
図20は、第3の実施の形態におけるコントローラ操作処理のサブルーチンを示すフローチャートであり、上述した図5のステップS517の処理で呼び出されて実行される。このサブルーチンもCPU140によって実行される。
【0242】
最初に、プレーヤによってコントローラ122が操作されたか否かを判断する(ステップS2011)。このステップS2011の判断処理は、上述したステップS711と同様に、コントローラ122から所定の無線信号を示す電波が発せられたか否かを判断する処理である。プレーヤによってコントローラ122が操作されていないと判別したときには(NO)、上述した図5のステップS517に処理を戻す。
【0243】
一方、プレーヤによってコントローラ122が操作されたと判別したときには(YES)、コントローラ122から発せられた無線信号を受信しコマンドを解析する(ステップS2013)。
【0244】
コントローラ122から受信したコマンドが、立体素片選択コマンドであるか否かを判断する(ステップS2015)。立体素片選択コマンドであると判別したときには(YES)、3つの立体素片E1〜E3から1つの立体素片を選択する(ステップS2017)。たとえば、マウスポインタのようなポインタ画像をディスプレイ134に表示し、プレイヤがコントローラ122を操作することによって、そのポインタ画像を移動させて立体素片を選択することができる。たとえば、正方形の枠状のポインタ画像がディスプレイ134に表示されて、そのポインタ画像によって立体素片を選択することができる。
【0245】
次に、プレイヤによって選択された立体素片を識別するために素片番号を内部メインメモリ142eや外部メインメモリ146に記憶させ(ステップS2019)、本サブルーチンを終了する。たとえば、3つの立体素片E1〜E3の「E1〜E3」を、立体素片を識別するための素片番号として用いる。したがって、プレイヤによって立体素片E3が選択されたときには、内部メインメモリ142eや外部メインメモリ146に面番号「E3」が記憶される。
【0246】
上述したステップS2015の判断処理で、コントローラ122から受信したコマンドが立体素片選択コマンドでないと判別したときには(NO)、コントローラ122から受信したコマンドが立体素片移動コマンドであるか否かを判断する(ステップS2021)。コントローラ122から受信したコマンドが立体素片移動コマンドであると判別したときには(YES)、ポインタ画像を移動させた距離と方向とを検出し(ステップS2023)、その距離と方向とを内部メインメモリ142eや外部メインメモリ146に記憶させ(ステップS2025)、本サブルーチンを終了する。
【0247】
また、上述したように、プレイヤがコントローラ122を操作することによって、3つの立体素片E1〜E3を操作に応じて回転させることができ、そのときの角度を定めることができる。3つの立体素片E1〜E3の回転角度は、上述したステップS2025の処理によって、内部メインメモリ142eや外部メインメモリ146の所定の記憶領域に記憶される。
【0248】
このステップS2025の処理で内部メインメモリ142eや外部メインメモリ146に記憶させた距離と方向とに応じて、後述する図21のステップS2115の処理では、ポインタ画像とともに、選択された立体素片の画像を表示する。すなわち、内部メインメモリ142eや外部メインメモリ146に記憶させた方向に沿って、内部メインメモリ142eや外部メインメモリ146に記憶させた距離だけ移動する態様で、選択した立体素片の画像を表示する。
【0249】
上述したステップS2021の判断処理で、コントローラ122から受信したコマンドが立体素片移動コマンドでないと判別したときには(NO)、コントローラ122から受信したコマンドが集合立体回転コマンドであるか否かを判断する(ステップS2027)。コントローラ122から受信したコマンドが集合立体回転コマンドであると判別したときには(YES)、プレイヤによって十字キー126aが押された方向を検出し(ステップS2029)、その方向を内部メインメモリ142eや外部メインメモリ146に記憶させ(ステップS2031)、本サブルーチンを終了する。一方、コントローラ122から受信したコマンドが集合立体回転コマンドでないと判別したときには(NO)、上述した図5のステップS517に処理を戻す。
【0250】
このステップS2031の処理で内部メインメモリ142eや外部メインメモリ146に記憶させた方向に応じて、後述する図21のステップS2129又はS2131の処理では、集合立体が回転するように表示する。すなわち、内部メインメモリ142eや外部メインメモリ146に記憶させた方向に沿って回転する態様で、集合立体の画像を表示する。上述したように、集合立体も円柱形状を有するので、集合立体の高さ方向に沿って延在する中心軸の周りに所定の角度だけ回転させる。
【0251】
<ディスプレイ表示処理>
図21は、第3の実施の形態におけるディスプレイ表示処理のサブルーチンを示すフローチャートであり、上述した図5のステップS519の処理で呼び出されて実行される。このサブルーチンもCPU140によって実行される。
【0252】
最初に、立体素片の1つが選択されたか否かを判断する(ステップS2111)。この判断は、上述したステップS2015と同様に、立体素片選択コマンドを受信した否かの判断である。立体素片の1つが選択されたと判別したときには(YES)、ポインタ画像が移動したか否かを判断する(ステップS2113)。この判断は、上述したステップS2021と同様に、立体素片移動コマンドを受信した否かの判断である。ポインタ画像が移動していないと判別したときには(NO)、直ちに本サブルーチンを終了する。
【0253】
一方、ポインタ画像が移動したと判別したときには(YES)、ポインタ画像が移動した距離及び方向に応じて、選択された立体素片の画像が移動する態様で表示する(ステップS2115)。ポインタ画像が移動した距離及び方向は、上述したステップS2025の処理で内部メインメモリ142eや外部メインメモリ146に記憶させた距離及び方向である。この処理によって、ディスプレイ134において、選択された立体素片の画像が移動する態様で表示される。上述したように、ステップS2025の処理によって、3つの立体素片E1〜E3の回転角度が、内部メインメモリ142eや外部メインメモリ146の所定の記憶領域に記憶されており、ステップS2115で、回転角度を読み出すことにより、選択された立体素片は、読み出した回転角度だけ回転した態様で表示される。
【0254】
次に、選択された立体素片が、表示されている集合立体の近くまで移動したか否かを判断する(ステップS2117)。この判断は、選択された立体素片と集合立体との間の距離が、所定の距離より短くなったか否かを判断する処理である。選択された立体素片が、集合立体の近くまで移動したと判別したときには(YES)、選択された立体素片の画像が、集合立体の所定の位置に配置される態様で表示し(ステップS2119)、本サブルーチンを終了する。
【0255】
たとえば、選択された立体素片の画像が、集合立体の上側に近づいたときには、選択された立体素片の画像を集合立体の上側に配置される態様で表示する。また、選択された立体素片の画像が、集合立体の中間に近づいたときには、選択された立体素片の画像を集合立体の中間に配置される態様で表示する。さらに、選択された立体素片の画像が、集合立体の下側に近づいたときには、選択された立体素片の画像を集合立体の下側に配置される態様で表示する。このようにすることで、立体素片の配置の作業を容易にでき、ゲームを迅速に進めることができる。たとえば、この処理によって、ディスプレイ134において、選択された立体素片の画像が、集合立体の所定の位置に配置される態様で表示される。
【0256】
一方、ステップS2117の判断処理で、選択された立体素片が、集合立体の近くまで移動していないと判別したときには(NO)、選択された立体素片が集合立体から離れるように移動したか否かを判断する(ステップS2121)。この判断は、選択された立体素片と集合立体との間の距離が、所定の距離以上になったか否かを判断する処理である。選択された立体素片が集合立体から離れるように移動したと判別したときには(YES)、選択された立体素片の画像を、集合立体から離隔する態様で表示し(ステップS2123)、本サブルーチンを終了する。また、上述したステップS2121の判断処理で、選択された立体素片が集合立体から離れるように移動していないと判別したときには(NO)、直ちに本サブルーチンを終了する。
【0257】
上述したステップS2111の判断処理で、立体素片の1つが選択されていないと判別したときには(NO)、十字キー126aが押されたか否かを判断する(ステップS2125)。十字キー126aが押されていないと判別したときには(NO)、直ちに本サブルーチンを終了する。
【0258】
十字キー126aが押されたと判別したときには(YES)、少なくとも1つの立体素片が集合立体に配置されているか否かを判断する(ステップS2127)。少なくとも1つの立体素片が集合立体に配置されていると判別したときには(YES)、十字キー126aが押された方向に応じて、配置された立体素片とともに集合立体が回転する態様で表示し(ステップS2129)、本サブルーチンを終了する。この処理によって、ディスプレイ134において、立体素片が配置された集合立体の画像が回転する態様で表示される。
【0259】
一方、少なくとも1つの立体素片が集合立体に配置されていないと判別したときには(NO)、十字キー126aが押された方向に応じて、集合立体が回転する態様で表示し(ステップS2131)、本サブルーチンを終了する。この処理によって、ディスプレイ134において、立体素片が配置されていない集合立体の画像が回転する態様で表示される。
【0260】
<テーブル更新処理>
図22は、第3の実施の形態におけるテーブル更新処理のサブルーチンを示すフローチャートであり、上述した図5のステップS521の処理で呼び出されて実行される。このサブルーチンもCPU140によって実行される。
【0261】
最初に、立体素片が集合立体に配置されたか否かを判断する(ステップS2211)。立体素片が集合立体に配置されたと判別したときには(YES)、配置された立体素片の辺番号と回転角度とを、図24に示す判定用テーブルに書き込む(ステップS2213)。上述したように、判定用テーブルに書き込む辺番号は、E1−L1、E1−L2、E2−L1、E2−L2、E3−L1及びE3−L2である。上述したように、立体素片E1、E2及びE3の順に並べ、かつ、立体素片E1、E2及びE3の中心軸が一致するように又は同心状に配置し、これらの立体素片を適切な角度となるように並べたときに、並べられた立体素片E1、E2及びE3によって、円柱形状の「集合立体」の内側に仮想的に配置されたオブジェクトの画像を連続的にかつ矛盾なく表示することができ、パズルが解けたことになる。
【0262】
図24の判定用テーブルに示した例で、順番の「1」は、集合立体の上側を示し、順番の「2」は、集合立体の中間を示し、順番の「3」は、集合立体の下側を示す。したがって、プレイヤによって選択された立体素片が集合立体の上側に配置されたときには、ステップS2213の処理によって、「1」に対応する辺番号の記憶領域及び回転角度の記憶領域に、辺番号及び回転角度が記憶される。また、プレイヤによって選択された立体素片が集合立体の中間に配置されたときには、ステップS2213の処理によって、「2」に対応する辺番号の記憶領域及び回転角度の記憶領域に、辺番号及び回転角度が記憶される。さらに、プレイヤによって選択された立体素片が集合立体の下側に配置されたときには、ステップS2213の処理によって、「3」に対応する辺番号の記憶領域及び回転角度の記憶領域に、辺番号及び回転角度が記憶される。
【0263】
図24に示した判定用テーブルに示した例では、「2」に対応する辺番号の記憶領域及び回転角度の記憶領域に、辺番号E3−L2及びE3−L1と回転角度150度とが記憶されている。
【0264】
次に、全ての立体素片が集合立体に配置されたか否かを判断する(ステップS2215)。全ての立体素片が集合立体に配置されていないと判別したときには(NO)、直ちに本サブルーチンを終了する。一方、全ての立体素片が集合立体に配置されたと判別したときには(YES)、パズルが完成したか否かを判断する(ステップS2217)。なお、全ての立体素片が集合立体に配置されたときには、図24に示す判定用テーブルの記憶領域の全てに、辺番号と回転角度とが記憶される。
【0265】
ステップS2217の判断処理におけるパズルが完成したか否かの判断は、判定用テーブルに記憶された辺番号が、図23に示す整合性成立テーブルのものと一致し、かつ、判定用テーブルに記憶された回転角度の全てが同じであるか否かである。図23に示すように、整合性成立テーブルは、3つの立体素片E1〜E3を適切な順序でかつ適切な角度で並べることができたときの辺番号の関係を記憶するテーブルである。判定用テーブルに記憶された辺番号が、図23に示した整合性成立テーブルのものと一致し、かつ、判定用テーブルに記憶された回転角度の全てが同じであるときには、集合立体に配置された3つの立体素片E1〜E3によって集合立体の全体で動画を連続的にかつ矛盾なく表示することができる。したがって、整合性成立テーブルの辺番号が1つでも一致しない場合には、集合立体では、整合性のない動画が表示される。
【0266】
上述したステップS2217の判断処理で、パズルが完成していないと判別したときには(NO)、直ちに本サブルーチンを終了する。一方、パズルが完成したと判別したときには(YES)、完成情報を生成し(ステップS2219)、本サブルーチンを終了する。完成情報は、パズルが完成したことを示す情報であり、フラグなどの変数とするのが好ましい。
【0267】
上述したステップS2211の判断処理で、立体素片が集合立体に配置されていないと判別したときには(NO)、立体素片が集合立体から離隔したか否かを判断する(ステップS2221)。立体素片が集合立体から離隔していないと判別したときには(NO)、直ちに本サブルーチンを終了する。
【0268】
立体素片が集合立体から離隔したと判別したときには(YES)、離隔した立体素片を示す辺番号を、図24に示す判定用テーブルから削除し(ステップS2223)、本サブルーチンを終了する。
【0269】
<<<<ゲームプログラムの概要>>>>
本発明の実施の形態におけるゲームプログラムは、
パズルゲームを実行するためのゲームプログラムであって、
複数の素片(表示面P1、P2、P3、P4、P5及びP6、又は立体素片E1、E2及びE3)と、前記複数の素片が並べられる集合立体(立方体又は円柱形状の「集合立体」)とが表示される表示手段(ディスプレイ134)と、
プレイヤによって操作され、操作に応じた操作信号を発する操作手段(コントローラ122)と、
前記操作信号から発せられた前記操作信号に応じて、以下の(1−1)〜(1−3)の処理を実行して、前記複数の素片と前記集合立体とを前記表示手段に表示する制御手段(CPU140)と、
前記パズルゲームの正答を定めた整合性データ(整合性成立テーブル)と、前記複数の素片の各々に表示される画像の画像データと、が記憶された記憶手段(内部メインメモリ142e又は外部メインメモリ146)と、を有するゲーム装置(ゲーム装置112)において実行され、
前記整合性データは、前記パズルゲームが正答であるときに前記集合立体に並べられた素片の配置の関係を示すデータであり、
前記画像データは、前記表示手段において、仮想空間にオブジェクトが存在する態様で前記複数の素片の各々で表示するためのデータであることを特徴とする。
(1−1) 前記操作信号に応じて、前記素片を移動させる態様で表示する処理(ステップS815又はS2115)、
(1−2) 前記複数の素片が並べられたときに、前記整合性データを参照して、パズルゲームに正答したか否かを判断する処理(S919又はS2217)、及び
(1−3) 前記パズルゲームに正答したときには、前記複数の素片によって前記オブジェクトが整合して仮想空間に存在する態様で前記表示手段において表示する処理(ステップS819又はS2119)。
【0270】
この構成によれば、予め定められた整合性データを用いてパズルゲームに正答したか否かを判断するので、正答したか否かを迅速かつ的確に判別することができる。また、パズルゲームに正答したときに表示されるであろうオブジェクトの全体の画像を推測しながら、素片を集合立体に配置してパズルゲームを解いていくので、新しい立体組み立てパズルを提供することができる。さらに、パズルゲームに正答したときには、仮想空間においてオブジェクトの全体が整合して表示されるので、パズルに正答したか否かを容易に判断することができる。
【0271】
また、本発明の実施の形態におけるゲームプログラムは、
前記複数の素片の各々は、平面形状を有する平面素片(表示面P1、P2、P3、P4、P5及びP6)であり、
前記画像データは、前記平面素片の表面に沿って前記オブジェクトを連続的に移動する態様で表示するための動画データであることを特徴とする。
【0272】
この構成によれば、オブジェクトは移動する態様で平面素片の表面に沿って表示されるので、時間的に変化する画像が平面素片に表示され、正答となるオブジェクトの画像を推測することが困難になり面白みのあるパズルゲームを提供することができる。
【0273】
さらに、本発明の実施の形態におけるゲームプログラムは、
前記複数の素片の各々は、平面形状を有する平面素片(表示面P1、P2、P3、P4、P5及びP6)であり、
前記集合立体は、前記集合立体の外形を画定しかつ透視可能な複数の立体表面を有し、
前記画像データは、前記集合立体の内側の仮想空間に存在するオブジェクトを前記複数の立体表面の各々を介して仮想カメラによって撮影したものとして得られた三次元立体画像データであって、
前記(1−1)の処理は、
(3−1) 前記操作信号に応じて平面素片を移動させて複数の立体表面のいずれかに並べる処理であり(ステップS815)、
前記(1−3)の処理は、
(3−3) 前記パズルゲームに正答したときには、前記集合立体に並べられた前記平面素片によって前記集合立体の内側の仮想空間においてオブジェクトが整合して存在する態様で前記表示手段において表示する処理(ステップS819)であることを特徴とする。
【0274】
この構成によれば、パズルゲームに正答したときには、集合立体の内側に形成された仮想空間にオブジェクトが整合して存在するように表示されるので、現実感のあるオブジェクトの画像を表示することができるとともに、現実感のある画像を見るためにパズルゲームに正答しようとする動機をプレイヤに与えることができる。また、三次元立体画像データを用いたことによって立体的なオブジェクトの画像を表示できるので、正答となるオブジェクトの全体の形状や大きさや色などを推測することを難しくして面白みのあるパズルゲームを提供することができる。
【0275】
さらにまた、本発明の実施の形態におけるゲームプログラムは、
前記複数の素片の各々は、立体形状を有する立体素片(立体素片E1、E2及びE3)であり、
前記集合立体は、前記集合立体の外形を画定しかつ透視可能な複数の立体表面を有し、
前記画像データは、前記集合立体の内側の仮想空間に存在するオブジェクトを前記複数の立体表面の各々を介して仮想カメラによって撮影したものとして得られた三次元立体画像データであって、
前記(1−1)の処理は、
(4−1) 前記操作信号に応じて、立体素片を移動させて前記集合立体を組み立てる処理であり(ステップS2115)、
前記(1−3)の処理は、
(4−3) 前記パズルゲームに正答したときには、前記集合立体として組み立てられた前記立体素片によって、前記集合立体の内側の仮想空間においてオブジェクトが整合して存在する態様で前記表示手段において表示する処理(ステップS2119)であることを特徴とする。
【0276】
この構成によれば、立体形状を有する立体素片によって集合立体を組み立てるので、パズルをより難しくすることができる。また、三次元立体画像データを用いたことにより、集合立体だけでなく立体素片にも立体的なオブジェクトの画像を表示できるので、現実感のある画像を表示して、正答となるオブジェクトの全体の形状や大きさや色などを推測することをさらに難しくして、より面白みのあるパズルゲームを提供することができる。
【0277】
また、本発明の実施の形態におけるゲームプログラムは、
仮想カメラは、前記集合立体の高さ方向の複数の位置に配置された複数の仮想撮影カメラ(M1〜M3)であり、
前記三次元立体画像データは、前記複数の仮想撮影カメラの各々に応じた高さで前記集合立体の中心からの距離を一定に保ちつつ前記複数の仮想撮影カメラの各々が前記集合立体を周回して撮影したデータであることを特徴とする。
【0278】
この構成によれば、三次元立体画像データは、集合立体を仮想的に周回して撮影したものとして生成した画像データであるので、複数の立体素片の各々に表示する画像を、回転角度方向を異ならしめて表示することができる。このようにしたことにより、複数の立体素片の並びだけでなく、複数の立体素片の各々の回転角度も調整しつつパズルを解く必要があるので、正答となるオブジェクトの全体の形状や大きさや色などの推測をさらに難しくしたパズルゲームを提供することができる。
【符号の説明】
【0279】
112 ゲーム装置(ゲーム装置)
122 コントローラ(操作手段)
134 ディスプレイ(表示手段)
140 CPU(制御手段)
142e 内部メインメモリ(記憶手段)
146 外部メインメモリ(記憶手段)
【特許請求の範囲】
【請求項1】
パズルゲームを実行するためのゲームプログラムであって、
複数の素片と、前記複数の素片が並べられる集合立体とが表示される表示手段と、
プレイヤによって操作され、操作に応じた操作信号を発する操作手段と、
前記操作信号から発せられた前記操作信号に応じて、以下の(1−1)〜(1−3)の処理を実行して、前記複数の素片と前記集合立体とを前記表示手段に表示する制御手段と、
前記パズルゲームの正答を定めた整合性データと、前記複数の素片の各々に表示される画像の画像データと、が記憶された記憶手段と、を有するゲーム装置において実行され、
前記整合性データは、前記パズルゲームが正答であるときに前記集合立体に並べられた素片の配置の関係を示すデータであり、
前記画像データは、前記表示手段において、仮想空間にオブジェクトが存在する態様で前記複数の素片の各々で表示するためのデータであるゲームプログラム。
(1−1) 前記操作信号に応じて前記素片を移動させる態様で表示する処理、
(1−2) 前記複数の素片が並べられたときに、前記整合性データを参照して、パズルゲームに正答したか否かを判断する処理、及び
(1−3) 前記パズルゲームに正答したときには、前記複数の素片によって前記オブジェクトが整合して仮想空間に存在する態様で前記表示手段において表示する処理。
【請求項2】
前記複数の素片の各々は、平面形状を有する平面素片であり、
前記画像データは、前記平面素片の表面に沿って前記オブジェクトを連続的に移動する態様で表示するための動画データである請求項1に記載のゲームプログラム。
【請求項3】
前記複数の素片の各々は、平面形状を有する平面素片であり、
前記集合立体は、前記集合立体の外形を画定しかつ透視可能な複数の立体表面を有し、
前記画像データは、前記集合立体の内側の仮想空間に存在するオブジェクトを前記複数の立体表面の各々を介して仮想カメラによって撮影したものとして得られた三次元立体画像データであって、
前記(1−1)の処理は、
(3−1) 前記操作信号に応じて平面素片を移動させて複数の立体表面のいずれかに並べる処理であり、
前記(1−3)の処理は、
(3−3) 前記パズルゲームに正答したときには、前記集合立体に並べられた前記平面素片によって前記集合立体の内側の仮想空間においてオブジェクトが整合して存在する態様で前記表示手段において表示する処理である請求項1に記載のゲームプログラム。
【請求項4】
前記複数の素片の各々は、立体形状を有する立体素片であり、
前記集合立体は、前記集合立体の外形を画定しかつ透視可能な複数の立体表面を有し、
前記画像データは、前記集合立体の内側の仮想空間に存在するオブジェクトを前記複数の立体表面の各々を介して仮想カメラによって撮影したものとして得られた三次元立体画像データであって、
前記(1−1)の処理は、
(4−1) 前記操作信号に応じて、立体素片を移動させて前記集合立体を組み立てる処理であり、
前記(1−3)の処理は、
(4−3) 前記パズルゲームに正答したときには、前記集合立体として組み立てられた前記立体素片によって、前記集合立体の内側の仮想空間においてオブジェクトが整合して存在する態様で前記表示手段において表示する処理である請求項1に記載のゲームプログラム。
【請求項5】
仮想カメラは、前記集合立体の高さ方向の複数の位置に配置された複数の仮想撮影カメラであり、
前記三次元立体画像データは、前記複数の仮想撮影カメラの各々に応じた高さで前記集合立体の中心からの距離を一定に保ちつつ前記複数の仮想撮影カメラの各々が前記集合立体を周回して撮影したデータである請求項4に記載のゲームプログラム。
【請求項1】
パズルゲームを実行するためのゲームプログラムであって、
複数の素片と、前記複数の素片が並べられる集合立体とが表示される表示手段と、
プレイヤによって操作され、操作に応じた操作信号を発する操作手段と、
前記操作信号から発せられた前記操作信号に応じて、以下の(1−1)〜(1−3)の処理を実行して、前記複数の素片と前記集合立体とを前記表示手段に表示する制御手段と、
前記パズルゲームの正答を定めた整合性データと、前記複数の素片の各々に表示される画像の画像データと、が記憶された記憶手段と、を有するゲーム装置において実行され、
前記整合性データは、前記パズルゲームが正答であるときに前記集合立体に並べられた素片の配置の関係を示すデータであり、
前記画像データは、前記表示手段において、仮想空間にオブジェクトが存在する態様で前記複数の素片の各々で表示するためのデータであるゲームプログラム。
(1−1) 前記操作信号に応じて前記素片を移動させる態様で表示する処理、
(1−2) 前記複数の素片が並べられたときに、前記整合性データを参照して、パズルゲームに正答したか否かを判断する処理、及び
(1−3) 前記パズルゲームに正答したときには、前記複数の素片によって前記オブジェクトが整合して仮想空間に存在する態様で前記表示手段において表示する処理。
【請求項2】
前記複数の素片の各々は、平面形状を有する平面素片であり、
前記画像データは、前記平面素片の表面に沿って前記オブジェクトを連続的に移動する態様で表示するための動画データである請求項1に記載のゲームプログラム。
【請求項3】
前記複数の素片の各々は、平面形状を有する平面素片であり、
前記集合立体は、前記集合立体の外形を画定しかつ透視可能な複数の立体表面を有し、
前記画像データは、前記集合立体の内側の仮想空間に存在するオブジェクトを前記複数の立体表面の各々を介して仮想カメラによって撮影したものとして得られた三次元立体画像データであって、
前記(1−1)の処理は、
(3−1) 前記操作信号に応じて平面素片を移動させて複数の立体表面のいずれかに並べる処理であり、
前記(1−3)の処理は、
(3−3) 前記パズルゲームに正答したときには、前記集合立体に並べられた前記平面素片によって前記集合立体の内側の仮想空間においてオブジェクトが整合して存在する態様で前記表示手段において表示する処理である請求項1に記載のゲームプログラム。
【請求項4】
前記複数の素片の各々は、立体形状を有する立体素片であり、
前記集合立体は、前記集合立体の外形を画定しかつ透視可能な複数の立体表面を有し、
前記画像データは、前記集合立体の内側の仮想空間に存在するオブジェクトを前記複数の立体表面の各々を介して仮想カメラによって撮影したものとして得られた三次元立体画像データであって、
前記(1−1)の処理は、
(4−1) 前記操作信号に応じて、立体素片を移動させて前記集合立体を組み立てる処理であり、
前記(1−3)の処理は、
(4−3) 前記パズルゲームに正答したときには、前記集合立体として組み立てられた前記立体素片によって、前記集合立体の内側の仮想空間においてオブジェクトが整合して存在する態様で前記表示手段において表示する処理である請求項1に記載のゲームプログラム。
【請求項5】
仮想カメラは、前記集合立体の高さ方向の複数の位置に配置された複数の仮想撮影カメラであり、
前記三次元立体画像データは、前記複数の仮想撮影カメラの各々に応じた高さで前記集合立体の中心からの距離を一定に保ちつつ前記複数の仮想撮影カメラの各々が前記集合立体を周回して撮影したデータである請求項4に記載のゲームプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【公開番号】特開2011−136049(P2011−136049A)
【公開日】平成23年7月14日(2011.7.14)
【国際特許分類】
【出願番号】特願2009−298318(P2009−298318)
【出願日】平成21年12月28日(2009.12.28)
【出願人】(509264202)株式会社アズライト (2)
【出願人】(302010910)株式会社クラス・マイスター (9)
【Fターム(参考)】
【公開日】平成23年7月14日(2011.7.14)
【国際特許分類】
【出願日】平成21年12月28日(2009.12.28)
【出願人】(509264202)株式会社アズライト (2)
【出願人】(302010910)株式会社クラス・マイスター (9)
【Fターム(参考)】
[ Back to top ]