以下、本実施例に係るゲームシステムについて説明する。本実施例におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施例ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図2参照)。以下では、本実施例のゲームシステム1のハードウェア構成について説明し、その後に本実施例のゲームシステム1の制御について説明する。
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図1および図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
図3は、本体装置2の一例を示す六面図である。図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施例において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施例においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施例において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施例においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
図4は、左コントローラ3の一例を示す六面図である。
左コントローラ3は、アナログスティック32を備える。図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施例においては、アナログスティック32を押下する入力が可能である。
左コントローラ3は、各種操作ボタンを備える。左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33~36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36)を備える。さらに、左コントローラ3は、録画ボタン37および-(マイナス)ボタン47を備える。左コントローラ3は、ハウジング31の側面の左上に第1Lボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面の、本体装置2に装着される際に装着される側の面に第2Lボタン43および第2Rボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
図5は、右コントローラ4の一例を示す六面図である。左コントローラ3および右コントローラ4の構成は、基本的に共通のため、右コントローラ4についての詳細な説明は省略する。
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図3に示す構成の他、図6に示す各構成要素81~91、97、および98を備える。これらの構成要素81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施例においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。また、プロセッサ81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、本実施例においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
また、本体装置2は、加速度センサ89および角速度センサ90を備える。
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図6で示しているため図7では省略している。左コントローラ3および右コントローラ4の構成は基本的に共通のため、以下、左コントローラ3について説明する。
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。図7に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施例においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
左コントローラ3は、慣性センサを備える。具体的には、左コントローラ3は、加速度センサ104を備える。また、左コントローラ3は、角速度センサ105を備える。本実施例においては、加速度センサ104は、所定の3軸(例えば、図4に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ104は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。本実施例においては、角速度センサ105は、所定の3軸(例えば、図4に示すxyz軸)回りの角速度を検出する。なお、角速度センサ105は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。加速度センサ104および角速度センサ105は、それぞれ通信制御部101に接続される。そして、加速度センサ104および角速度センサ105の検出結果は、適宜のタイミングで繰り返し通信制御部101へ出力される。
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
(第1の実施例)
次に、第1の実施例のゲームについて説明する。本実施例のゲームが開始されると、仮想空間が定義される。仮想空間には、仮想カメラとプレイヤキャラクタPCとが配置される。仮想カメラは、プレイヤキャラクタPCの背後に設定され、当該仮想カメラを用いてプレイヤキャラクタPCを含むゲーム画像が生成されて、ディスプレイ12または据置型モニタに表示される。
図8は、本実施例のゲームが実行された場合にディスプレイ12に表示されるゲーム画像の一例を示す図である。図8に示されるように、ゲーム画像は、プレイヤキャラクタPCと、仮想空間に配置される仮想オブジェクトとして複数の素材オブジェクトOBJ(OBJa~OBJg)とを含む。プレイヤキャラクタPCは、ユーザによって操作されるキャラクタである。プレイヤキャラクタPCは、本体装置2、左コントローラ3、および/または右コントローラ4に対するユーザ操作に応じて、仮想空間内を移動したり、複数の素材オブジェクトOBJを組むことで合体オブジェクト(生成物)を生成したりする。
複数の素材オブジェクトOBJは、ユーザの操作に応じて仮想空間内を移動可能なオブジェクトであり、合体オブジェクトの一部となる部品を構成可能なオブジェクトである。例えば、複数の素材オブジェクトOBJは、予め仮想空間の地面上に配置されている。また、複数の素材オブジェクトOBJは、ユーザ操作に基づいて仮想空間に現出してもよい。例えば、プレイヤキャラクタPCが敵キャラクタを倒した場合や所定の課題をクリアした場合に、素材オブジェクトOBJが仮想空間に現出してもよい。
ユーザは、複数の素材オブジェクトOBJを組むことにより、合体オブジェクトを生成することができる。例えば、ユーザは、合体オブジェクトとして、車両、戦車、飛行機、船等の乗り物オブジェクトや敵キャラクタを攻撃する武器オブジェクト等を生成することができ、生成した合体オブジェクトを用いてゲームを進めることができる。例えば、プレイヤキャラクタPCは、生成した乗り物オブジェクト上に乗って当該乗り物オブジェクトを動かすことによって仮想空間内を移動したり、武器オブジェクトを用いて敵キャラクタを攻撃したりすることができる。なお、ユーザは、位置および/または姿勢を任意に設定して複数の素材オブジェクトOBJを組むことが可能である。したがって、ユーザは、複数の素材オブジェクトOBJを組むことによって、機能を有しない合体オブジェクトを生成することも可能であり、単なる物体や飾り物としての仮想オブジェクトを生成することも可能である。
図8の例では、仮想空間に配置されている複数の素材オブジェクトOBJの一例として、エンジンオブジェクトOBJa、翼オブジェクトOBJb、車輪オブジェクトOBJc、板オブジェクトOBJd、操縦桿オブジェクトOBJe、箱オブジェクトOBJf、および岩オブジェクトOBJgが示されている。
エンジンオブジェクトOBJaは、乗り物オブジェクトを移動させる動力として機能する素材オブジェクトである。エンジンオブジェクトOBJaは、合体オブジェクトの一部として構成された場合、合体オブジェクト全体に対して加速度、速度、角速度、角加速度等を加える。翼オブジェクトOBJbは、乗り物オブジェクトを仮想空間において空中移動させる機能を有する素材オブジェクトである。
車輪オブジェクトOBJcは、乗り物オブジェクトを移動させる動力として機能する素材オブジェクトであり、例えば車両の車輪として構成可能である。板オブジェクトOBJdは、平板状の建材となる素材オブジェクトである。板オブジェクトOBJdは、例えば乗り物オブジェクトの車体として利用可能である。また、板オブジェクトOBJdは、複数の板オブジェクトOBJdを縦にして並べることで仮想空間に壁を形成したり、複数の板オブジェクトOBJdを組んで立体物を生成したりすることができる。
操縦桿オブジェクトOBJeは、乗り物オブジェクトの移動方向を制御する機能を有する素材オブジェクトであり、乗り物オブジェクトが回転する方向に力を加える。
箱オブジェクトOBJfは、例えば立方体や直方体等の立体形状の建材となる素材オブジェクトである。箱オブジェクトOBJfは、様々な合体オブジェクトの建材(例えば、車体の一部)として構成可能である。岩オブジェクトOBJgは、塊状(例えば、丸状や角状)、板状、または棒状の建材となる岩を模した素材オブジェクトである。
なお、合体オブジェクトを構成するための別の素材オブジェクトが、さらに用意されてもよい。
図8に示されるように、素材オブジェクトOBJには、1または複数の接着ポイントBPが設定される場合がある。接着ポイントBPは、素材オブジェクトOBJ同士を接着(接続)する際に、優先的に互いに接着される位置である。接着ポイントBPは、ゲーム制作者によって各素材オブジェクトOBJに予め設定されている。例えば、エンジンオブジェクトOBJaの底面には、1つの接着ポイントBPが設定される。また、翼オブジェクトOBJbの上面には、3つの接着ポイントBPが設定される。また、車輪オブジェクトOBJc、板オブジェクトOBJd、および操縦桿オブジェクトOBJeには、1以上の接着ポイントBPが設定される。なお、箱オブジェクトOBJfや岩オブジェクトOBJgには、接着ポイントBPが設定されていない。
ユーザは、プレイヤキャラクタPCが収納している素材オブジェクトOBJ(収納オブジェクト)や仮想空間に配置されている何れか1つの素材オブジェクトOBJを選択し、他の素材オブジェクトOBJと接着することで、複数の素材オブジェクトOBJを組む。これにより、ユーザは、複数の素材オブジェクトOBJを組むことで構成される合体オブジェクトを生成物として生成することができる。
図9および図10を参照して、素材オブジェクトOBJ同士を組んで合体オブジェクトが生成される例について説明する。図9は、岩オブジェクトOBJgと箱オブジェクトOBJfとが組まれることによって生成された合体オブジェクトの一例を示す図である。図10は、エンジンオブジェクトOBJaと翼オブジェクトOBJbとが組まれることによって生成された合体オブジェクトの一例を示す図である。
図9に示されるように、仮想空間に配置されている岩オブジェクトOBJgと箱オブジェクトOBJfとが組まれることによって、合体オブジェクトが生成されている。具体的には、ユーザ操作に応じて、プレイヤキャラクタPCが箱オブジェクトOBJfと接触するように岩オブジェクトOBJgを移動させる。そして、ユーザ操作に応じて、プレイヤキャラクタPCが接着オブジェクトBを用いて岩オブジェクトOBJgと箱オブジェクトOBJfとの間を任意の位置で接着させる動作を行うことによって、岩オブジェクトOBJgと箱オブジェクトOBJfとが組まれた合体オブジェクトが生成される。
図10に示すように、エンジンオブジェクトOBJaと翼オブジェクトOBJbとが組まれることによって、合体オブジェクト(乗り物オブジェクト)が生成されている。具体的には、ユーザ操作に応じて、プレイヤキャラクタPCが翼オブジェクトOBJbの上面中央付近に載置されるようにエンジンオブジェクトOBJaを移動させる。そして、ユーザ操作に応じて、プレイヤキャラクタPCが接着オブジェクトBを用いてエンジンオブジェクトOBJaと翼オブジェクトOBJbとの間を接着ポイントBP同士が接触するように接着させる動作を行うことによって、エンジンオブジェクトOBJaと翼オブジェクトOBJbとが組まれた合体オブジェクトが生成される。図においては、プレイヤキャラクタPCがエンジンオブジェクトOBJaと翼オブジェクトOBJbとが組まれた乗り物オブジェクトに乗って、空中移動している様子が示されている。
図11を用いて、仮想空間に現出させる合体オブジェクトを登録する処理について説明する。なお、図11は、仮想空間に現出させる合体オブジェクトを登録する際のゲーム画像の一例を示す図である。なお、以下の説明では、ゲームシステム1において実行するアプリケーションの一例としてゲームを用いているが、ゲームシステム1において他のアプリケーションを実行してもかまわない。
図11において、ゲームシステム1のディスプレイ12には、プレイヤキャラクタPCから見た仮想空間の主観画像となるゲーム画像が表示されている。この主観画像は、プレイヤキャラクタPCが生成した合体オブジェクトを設計図として登録するためのゲーム画像であり、ユーザ操作に応じて当該登録モードに移行して表示することができる。
図11の一例では、合体オブジェクトOBJAと複数の素材オブジェクトOBJa、OBJc、OBJf、およびOBJgとが配置された仮想空間が上記主観画像として表示されている。例えば、合体オブジェクトOBJAは、上述したように仮想空間においてプレイヤキャラクタPCが生成したものであり、プレイヤキャラクタPCが一時収納していた収納オブジェクトや仮想空間に配置されていた素材オブジェクトを組むことによって生成されている。具体的には、合体オブジェクトOBJAは、4つの車輪オブジェクトOBJc、1つの板オブジェクトOBJd、および1つの操縦桿オブジェクトOBJeから構成される乗り物オブジェクトとして生成されている。
合体オブジェクトを登録するゲームモードにおいて、ゲーム画像に合体オブジェクトが表示されている場合、合体オブジェクトを登録するユーザ操作に応じて、ゲーム画像に表示されている合体オブジェクトの設計情報が登録される。ここで、設計情報とは、合体オブジェクトを再度仮想空間に生成するための当該合体オブジェクトの構造データである。例えば、上記設計情報は、合体オブジェクトを構成する各素材オブジェクトの種類、素材オブジェクト同士が接着される位置、および素材オブジェクトそれぞれの姿勢等が記述される。
合体オブジェクトを登録するゲームモードにおいて、合体オブジェクトを登録するユーザ操作が行われた場合、当該ユーザ操作時点で表示されているゲーム画像を撮像するようなゲーム演出(例えば、シャッター音のような効果音を出力して、当該時点のゲーム画像を静止させて表示するゲーム演出)が行われる。そして、上記ゲーム画像内に撮像されている合体オブジェクトが設計図として登録される旨を示すゲーム演出が行われて、ユーザに登録された合体オブジェクトが報知される。ここで、設計図は、上記撮像によって得られる画像に基づいて作成され、例えば上記設計情報に基づく合体オブジェクトの外観を示すものである。一例として、合体オブジェクトが表示された設計図を示す画像とともに、当該設計図が登録されることを示す情報が文字画像や音声等によってユーザに示されて、当該合体オブジェクトが設定図として登録されたことがユーザに報知される。なお、上記撮像演出されたゲーム画像から合体オブジェクトの一部が逸脱している場合であっても、当該合体オブジェクトの設計図が登録されてもよい。また、上記撮像演出されたゲーム画像内に複数の合体オブジェクトが含まれる場合、当該ゲーム画像の視点(仮想カメラ位置)に最も近い合体オブジェクトを登録対象としてもよいし、撮像されている表面積が最も大きい合体オブジェクトを登録対象としてもよいし、構成されている素材オブジェクトの数が最も多い合体オブジェクトを登録対象としてもよい。
なお、上述した説明では、ユーザ操作時点で表示されているゲーム画像が撮像範囲として撮像される例を用いたが、表示されているゲーム画像全体ではなく当該ゲーム画像の一部が撮像範囲として撮像されてもよい。一例として、表示されている仮想空間の画像の一部となる当該画像の中心付近の長方形範囲が撮像範囲として設定されてもよい。この場合、表示されている仮想空間の画像全体ではなく、当該長方形範囲に表示されている仮想空間の画像が撮像範囲となり、当該撮像範囲内のゲーム画像が撮像演出されたゲーム画像として取り扱われる。
また、上述した説明では、合体オブジェクトを登録するユーザ操作が行われた場合、当該ユーザ操作時点で表示されているゲーム画像を撮像するようなゲーム演出を行って、当該撮像されたゲーム画像から登録対象となる合体オブジェクトが選択される例を用いたが、他の態様によって登録対象となる合体オブジェクトが選択および登録されてもかまわない。例えば、設計図として登録される合体オブジェクトを選択するためのカーソルをゲーム画像と重複して表示し、合体オブジェクトを登録することを示すユーザ操作が行われた時点で当該カーソルと重複表示されている合体オブジェクトを設計図として登録してもよい。この場合、上述したようなゲーム画像を撮像するようなゲーム演出が行われなくてもよいが、上記ユーザ操作が行われた時点のゲーム画像を上述した撮像されたゲーム画像として取り扱うことによって、上述した登録処理と同様の処理を用いて、ユーザが選択した合体オブジェクトを設計図として登録する処理を行うことができる。具体的には、プレイヤキャラクタPCの主観画像となるゲーム画像であってカーソルによって選択された登録対象の合体オブジェクトが、その見えている表面の重心が画角の中央に配置されるように設定されたゲーム画像を設計図として作成および登録することが考えられる。また、上記カーソルを用いた合体オブジェクトの選択および登録する態様は、他の登録手順や方式によって登録処理が行われてもよい。
図12および図13を用いて、登録された設計図に基づいた合体オブジェクトを仮想空間に現出させる処理について説明する。なお、図12は、仮想空間に合体オブジェクトを現出させるゲームモードにおけるゲーム画像の一例を示す図である。図13は、登録された設計図に基づいた合体オブジェクトを仮想空間に現出させたゲーム画像の一例を示す図である。
図12において、ゲームシステム1のディスプレイ12には、プレイヤキャラクタPCを含む仮想空間を示すゲーム画像が表示されている。例えば、上記ゲーム画像は、プレイヤキャラクタPCの背後に仮想カメラを配置することにより、当該仮想カメラから見た仮想空間を示している。そして、上記ゲーム画像は、ユーザ操作に応じて、合体オブジェクトを現出させる現出モードに移行して表示される。
上記ゲーム画像には、ユーザが選択可能な設計図および現時点で現出対象としてユーザが選択している設計図が示される。例えば、図12の例では、現出対象として設計図D1が表示されており、選択可能な他の設計図として設計図D2およびD3が表示されている。一例として、設計図D2およびD3をグレーアウトして表示することにより設計図D1と異なる表示態様で表示することによって、現出対象となっている設計図D1と区別して表示されている。例えば、設計図D1~D3は、登録処理において、それぞれユーザが仮想空間を撮像した撮像画像が用いられる。あるいは、設計図D1~D3は、撮像画像から登録対象の合体オブジェクトを抜き出した画像が用いられる。
ユーザが選択可能な設計図は、例えば複数提示され、それぞれの設計図が仮想空間をユーザが撮像した撮像画像に基づいて生成される。このように、撮像を介して現出対象となる合体オブジェクト(生成物)の選択/設定を行うため、当該撮像画像(設計図)自体を選択肢とすることができ、興趣性が生まれるとともに、ユーザ自身が撮像画像(設計図)によって現出される生成物を容易に把握することができる。なお、ユーザが選択可能な設計図には、設計者等において予め用意された設計図が含まれていてもよい。例えば、上記設計図は、プレイヤキャラクタPCが仮想空間において取得可能なアイテムであってもよいし、プレイヤキャラクタPCが所定のゲームイベントをクリアすることによって進呈されるものであってもよい。
ここで、上述したように、プレイヤキャラクタPCは、仮想オブジェクトやアイテムを一時収納することができる。プレイヤキャラクタPCが一時収納可能な仮想オブジェクトには、合体オブジェクトを構成可能な素材オブジェクトの一部の種類が含まれている。以下では、プレイヤキャラクタPCが一時収納している素材オブジェクトを、収納オブジェクトとして区別して説明する。例えば、収納オブジェクトは、プレイヤキャラクタPCが仮想空間に配置されている素材オブジェクトを拾うことによって一時収納されてもよいし、プレイヤキャラクタPCに所定のイベントが生じた場合に新たに収納されてもよい。現出対象となっている設計図D1には、現時点でプレイヤキャラクタPCが収納している収納オブジェクトのうち、設計図D1に基づいて生成される合体オブジェクトを構成可能な収納オブジェクトが付随して表示される。図12の例では、設計図D1が示す合体オブジェクトを構成可能な車輪オブジェクトOBJcと操縦桿オブジェクトOBJeとを、プレイヤキャラクタPCが収納していることが示されている。なお、現出対象となっている設計図D1には、合体オブジェクトを構成可能な収納オブジェクトの収納数、合体オブジェクトのために使用され得る最大数、現時点で合体オブジェクトのために最低限必要な数(すなわち、後述する仮想空間の対象エリアA内から使用可能な素材オブジェクトの数を当該最大数から減算した数)等の数値情報がさらに付随して表示されてもよい。
なお、プレイヤキャラクタPCが収納オブジェクトを一時収納する状態とは、プレイヤキャラクタPCが当該収納オブジェクトを装備や把持等せずに、当該収納オブジェクトを持ち運ぶことができる状態である。このとき、収納された収納オブジェクトは、ゲームフィールドには表示されないこととなる。収納した収納オブジェクトは、基本的には適宜の状況でプレイヤキャラクタPCによって取り出されることでゲームフィールドに配置したり、使用(装備や把持を含む)されたりすることができる。本実施例においては、プレイヤキャラクタPCは、身に付ける収容体(例えば、ポーチやアイテムボックス)に収納オブジェクトを入れることで収納オブジェクトを収納する。なお、そのような収容体は、表示されなくてもよい。また、そのような収容体は、存在せずに単に収納オブジェクトを収納する機能のみが存在してもよい。
上記現出モードに移行するユーザ操作が行われた場合、対象エリアAが表示される。対象エリアAは、現時点の現出対象である合体オブジェクトを構成するために、仮想空間に配置されたどの素材オブジェクトが使用されるかを示す範囲である。なお、対象エリアAにその一部のみが含まれている素材オブジェクトは、使用対象としてもよいし、使用対象としなくてもよい。例えば、対象エリアAは、プレイヤキャラクタPCの前方の地面上の位置を中心として、所定サイズの円または楕円形状の地面上の範囲に設定される。プレイヤキャラクタPCは、仮想空間に配置されている素材オブジェクトのうち、対象エリアA内に配置されている素材オブジェクトを用いて、現出対象の合体オブジェクトを自動生成して仮想空間に現出させることができる。
本実施例では、プレイヤキャラクタPCの収納オブジェクトと対象エリアA内に配置されている素材オブジェクトとから、現出対象の合体オブジェクトを完成することが可能である場合に限って、すなわち、現出対象の合体オブジェクトを構成する素材オブジェクトが不足なく用意されているような状態である場合に限って、当該合体オブジェクトを現出することができる。図12に示す一例では、4つの車輪オブジェクトOBJc、1つの板オブジェクトOBJd、および1つの操縦桿オブジェクトOBJeから構成される合体オブジェクトが現出対象となっている。これに対して、対象エリアA内には4つの車輪オブジェクトOBJcと1つの板オブジェクトOBJdとが配置されており、プレイヤキャラクタPCが収納オブジェクトとして操縦桿オブジェクトOBJeを収納しており、これらの素材オブジェクトを組むことによって上記合体オブジェクトが完成可能である。したがって、合体オブジェクトを現出させるユーザ操作が行われた場合、上記合体オブジェクトが現出することになる。
なお、他の例として、プレイヤキャラクタPCの収納オブジェクトと対象エリアA内に配置されている素材オブジェクトとでは、現出対象の合体オブジェクトを完成することができない、すなわち、現出対象の合体オブジェクトを構成する素材オブジェクトが不足している状態であっても、当該合体オブジェクトの一部が現出可能であってもよい。例えば、合体オブジェクトの一部として、不足している素材オブジェクトを除いた素材オブジェクト同士の組まれ方が維持された状態で現出してもよい。この場合、素材オブジェクトを繋ぐ素材オブジェクトが不足している場合には、当該素材オブジェクトを除いた素材オブジェクトだけで組むことができる小群状態や単体でばらばらに分散して現出する。一例として、素材オブジェクトA-素材オブジェクトB-素材オブジェクトC-素材オブジェクトD-素材オブジェクトEの順に組まれて完成する合体オブジェクトに対して、素材オブジェクトCが不足している場合、素材オブジェクトAと素材オブジェクトBとが組まれた合体物および素材オブジェクトDと素材オブジェクトEとが組まれた合体物が現出する。他の例として、素材オブジェクトA-素材オブジェクトB-素材オブジェクトCの順に組まれて完成する合体オブジェクトに対して、素材オブジェクトBが不足している場合、素材オブジェクトA単体と素材オブジェクトC単体とが、素材オブジェクトAおよびCが現出予定場所に移動してばらばらに現出する。
また、上記ゲーム画像には、現時点で現出予定となっている合体オブジェクトの完成予想モデルオブジェクトが表示される。例えば、図12に示す一例では、対象エリアAの中心、すなわちプレイヤキャラクタPCの前方となる地面上に、完成予想モデルオブジェクトM1が表示されている。完成予想モデルオブジェクトM1は、現在選択されている設計図D1に基づいた合体オブジェクトが完成して現出する場合の予想形状を示すものであり、現実の合体オブジェクトとは異なる表示態様(例えば、半透明で表示されるスケルトンオブジェクト)で表示される。なお、仮想空間に配置される完成予想モデルオブジェクトや当該完成予想モデルオブジェクトに基づいて現出する合体オブジェクトは、上述したように対象エリアAの中心に配置されるが、それらの一部が当該対象エリアA内に存在すればどのような位置に配置されてもよい。
第1の例として、完成予想モデルオブジェクトM1は、仮想空間の地面から浮いた状態で表示されてもよい。この場合、完成予想モデルオブジェクトM1の位置や姿勢に基づいて現出する合体オブジェクトは、地面から浮いた状態で現出した後、当該地面まで落下して当該地面上に配置されることになる。第2の例として、完成予想モデルオブジェクトM1が配置される仮想空間の地面に他のオブジェクトが配置されている場合、当該他のオブジェクトの上部に所定の隙間を形成した位置に完成予想モデルオブジェクトM1が表示されてもよい。何れの場合であっても、完成予想モデルオブジェクトM1の下部が地面の一部や他のオブジェクトの一部と重複することなく、接触も避けた位置に完成予想モデルオブジェクトM1が表示されることになる。第3の例として、仮想空間に完成予想モデルオブジェクトM1が配置された場合に完成予想モデルオブジェクトM1の内部と交差する他のオブジェクト(例えば、対象エリアAの中央に設けられた壁や上部に設けられた屋根等)が存在して、対象エリアA内に完成予想モデルオブジェクトM1を配置するスペースが場合、完成予想モデルオブジェクトM1を未表示としたり、グレーアウト表示したりすることによって、合体オブジェクトが現出できない旨がわかるように表示してもかまわない。
また、表示された完成予想モデルオブジェクトM1は、ユーザ操作に応じて、表示位置や表示姿勢が変更可能であってもよい。一例として、一旦、仮想空間に配置されて表示された完成予想モデルオブジェクトM1は、ユーザ操作に応じて、その姿勢のみが変更可能であってもよい。他の例として、仮想空間に配置されて表示された完成予想モデルオブジェクトM1は、ユーザ操作に応じて、対象エリアA内における前後左右方向の位置が変更可能であってもよいし、対象エリアA内の地面からの配置高さ(上下方向の位置)が変更可能であってもよい。
また、完成予想モデルオブジェクトM1は、合体オブジェクトとして完成するために必要な素材オブジェクトが対象エリアA内および/または収納オブジェクト内にある場合、該当する素材オブジェクト部分の表示態様が変化(例えば、着色される)する。一方、完成予想モデルオブジェクトM1は、上記必要な素材オブジェクトが対象エリアA内および収納オブジェクト内の何れにもない場合、該当する素材オブジェクト部分の表示態様はデフォルトの表示態様のまま(例えば、無色半透明のまま)表示される。したがって、完成予想モデルオブジェクトM1は、合体オブジェクトとして完成するために必要な素材オブジェクト全てが対象エリアA内および/または収納オブジェクト内にある場合と不足する場合とで、全体の表示態様が変化するため、合体オブジェクトを完成させて現出させるための素材オブジェクトの不足をユーザに認識させることができる。また、完成予想モデルオブジェクトM1は、合体オブジェクトを現出させる際の仮想空間における予測位置をユーザに認識させることができる。
なお、合体オブジェクトとして完成するために必要な素材オブジェクトは、当該合体オブジェクトの一部として構成されている素材オブジェクトとの外見が異なる場合であっても、形状が実質的に等しい場合、これらの素材オブジェクトを同じオブジェクトとして扱ってもよい。例えば、オブジェクトのカテゴリ(例えば、丸太、岩、武器、操縦桿など)が同一で形状の近似度が所定値以内の素材オブジェクトは、合体オブジェクトを構成する処理においては同じオブジェクトとして見なしてもよい。一例として、表面の見た目が異なる(例えば、テクスチャーや彩色が異なる)だけで形状が等しい(実質的に等しい)素材オブジェクトは、同じオブジェクトとして扱ってもよい。なお、形状が等しいと見なせるオブジェクト同士は、事前に設定されていてもよいし、近似度として都度演算されて等しいと見なすか否かを判定もよい。また、オブジェクトの材質(例えば、木材や金属など)もさらに考慮し、同じ材質のときには同じオブジェクトとして扱うこととしてもよい。
また、仮想空間内に配置されている素材オブジェクトについても、上記合体オブジェクトに使用される予定のもの(合体オブジェクトが現出した場合に使用されるオブジェクト)は、表示態様を変化させる。例えば、対象エリアA内の素材オブジェクトのうち、現時点で現出予定となっている合体オブジェクトを完成させるために用いられる予定の素材オブジェクトについては、表示態様を変化(例えば、着色される)させて表示する。図12に示す一例では、対象エリアA内の素材オブジェクトのうち、現出対象の合体オブジェクトに使用される予定となっている4つの車輪オブジェクトOBJcと1つの板オブジェクトOBJdとについては、表示態様を変化(図12の例では、ハッチングされているオブジェクト)させて表示されている。これによって、仮想空間に配置されている素材オブジェクトにおいて合体オブジェクトの生成に消費されるものをユーザに認識させることができる。
なお、現出対象の合体オブジェクトに使用可能な素材オブジェクトが必要数以上存在する場合、所定の優先度を設定して消費してもよい。一例として、対象エリアA内に必要数以上の素材オブジェクトが配置されている場合、プレイヤキャラクタPCの近くに配置されている素材オブジェクトを優先して消費してもかまわない。他の例として、実質的に同じオブジェクトが、対象エリアA内に配置されている素材オブジェクトと収納オブジェクトとの両方に存在している場合、対象エリアA内に配置されている素材オブジェクトを優先して消費してもかまわない。
ここで、仮想空間に配置されている素材オブジェクトには、プレイヤキャラクタPCが収納オブジェクトとして一時収納できるものと、プレイヤキャラクタPCが収納オブジェクトとして一時収納できないものとが含まれている。プレイヤキャラクタPCが収納オブジェクトとして一時収納できない収納不可ブジェクトは、仮想空間においてプレイヤキャラクタPCに比べて非常に大きな素材オブジェクトやわずかに形状や大きさが異なるものが多数存在する素材オブジェクト等(例えば、岩や木等)であってもよい。本実施例では、プレイヤキャラクタPCが収納オブジェクトとして一時収納できない収納不可オブジェクトは、板オブジェクトOBJd、箱オブジェクトOBJf、岩オブジェクトOBJg等や、あるいは図示しない宝箱オブジェクト等がある。なお、プレイヤキャラクタPCが収納オブジェクトとして一時収納できる素材オブジェクトは、エンジンオブジェクトOBJa、車輪オブジェクトOBJc、および操縦桿オブジェクトOBJe等がある。
なお、現出対象の合体オブジェクトに使用可能な仮想空間の素材オブジェクトは、合体オブジェクトの少なくとも一部から使用されてもよい。例えば、対象エリアA内にすでに合体オブジェクトが配置されている場合、当該合体オブジェクトを構成している素材オブジェクトの少なくとも一部を使用して、新たな合体オブジェクトを現出させてもかまわない。つまり、現出対象の合体オブジェクトに使用可能な素材オブジェクトを含む合体オブジェクトの少なくとも一部が対象エリアA内の仮想空間に配置されている場合、仮想空間に配置されている合体オブジェクトを構成する素材オブジェクトが現出対象の合体オブジェクトに使用されてもよい。仮想空間に配置されている合体オブジェクトの一部となる素材オブジェクトが使用された場合、当該合体オブジェクト内において当該素材オブジェクトと他のオブジェクトとの接続が切断されて当該素材オブジェクトが消失するため、当該他の素材オブジェクトは当該接続の切断および消失に伴ってその位置から地面に落下する。なお、合体オブジェクトにおいて他の素材オブジェクト間が接続されている場合、当該接続は維持された状態としてもよい。
上記において、対象エリアA内に配置されている素材オブジェクトのどれを使用するかについては、当該素材オブジェクトが合体オブジェクトの一部であるか否かは考慮されない。すなわち、素材オブジェクトが単体で存在しているときと同様に、例えば、プレイヤキャラクタPCの近くに配置されている素材オブジェクトが優先的に使用されてもかまわない。ただし、いずれにしても少なくとも収納オブジェクトよりは優先的に使用される。なお、別の例では、合体オブジェクトの一部として存在している素材オブジェクトよりも単体で存在している素材オブジェクトが優先して使用されてもよい。また、さらに別の例では、単体で存在している素材オブジェクトが最も優先して使用され、次に収納オブジェクトが優先して使用され、最後に合体オブジェクトの一部として存在している素材オブジェクトが使用されてもよい。
また、対象エリアAは、仮想空間における立体的な範囲として設定されてもよい。例えば、対象エリアAは、所定サイズの円柱または楕円柱として定義されてもよい。この場合、プレイヤキャラクタPCから所定の高さ範囲内となる当該円柱内または当該楕円柱内に配置されている素材オブジェクトを、対象エリアA内の使用対象として選択してもかまわないし、その高さ範囲内に存在する地面上に配置された素材オブジェクトが使用対象として選択されても構わない。なお、立体的な範囲として設定される対象エリアAは、高さ方向の制限がある立体形状でもよいし、高さ方向の制限がない(すなわち、無限)の立体形状でもよい。
図13において、合体オブジェクトを現出させるユーザ操作が行われると、完成予想モデルオブジェクトが配置されていた位置および姿勢に、合体オブジェクトが現出する。例えば、図13の一例では、完成予想モデルオブジェクトM1が配置されていた仮想空間における位置に、完成予想モデルオブジェクトM1が配置されていた姿勢で、合体オブジェクトOBJAが現出している様子を示している。このとき、現出する合体オブジェクトの生成に使用された仮想空間内の素材オブジェクトは、当該現出を契機として仮想空間内から消去される。なお、仮想空間内の素材オブジェクトが消去される際、プレイヤキャラクタPCが当該素材オブジェクトを収集するようなゲーム演出が行われてもかまわない。また、現出する合体オブジェクトの生成に使用された収納オブジェクトは、プレイヤキャラクタPCの収納オブジェクトから消去される。ここで、合体オブジェクトを現出させるユーザ操作は、当該合体オブジェクトとして完成するために必要な素材オブジェクト全てが対象エリアA内および/または収納オブジェクト内にある場合にのみ可能としている。この場合、合体オブジェクトは、完成状態のみ現出させることが可能となり、未完成状態の合体オブジェクトを現出させることはできないことになる。なお、合体オブジェクトを現出させるユーザ操作は、当該合体オブジェクトとして完成するために必要な素材オブジェクトが対象エリアA内および保有収納オブジェクト内にあるものでは足りない場合であっても可能としてもよい。この場合、合体オブジェクトは、未完成状態でも現出させることが可能となる。
なお、上述した仮想空間内から消去される素材オブジェクトは、現出する合体オブジェクトの少なくとも一部に用いられてもよい。ここで、素材オブジェクトを現出する合体オブジェクトの少なくとも一部に用いる場合、対象エリアA内にある素材オブジェクトを合体オブジェクトにおける適切な位置に移動させて合体オブジェクト内に組ませることによって用いられてもよいし、一旦対象エリアA内から素材オブジェクトを消去させて実質的に同じ素材オブジェクトを有する合体オブジェクトを現出させることによって用いられてもよい。つまり、素材オブジェクトを現出する合体オブジェクトの少なくとも一部に用いるとは、そのまま素材オブジェクトを用いるだけでなく、一旦仮想空間から消去して実質的に同じ素材オブジェクトを用いることも含んでいる。一例として、下記(a)および(b)のいずれの処理によって素材オブジェクトを用いる処理が実現されてもよい。
(a)素材オブジェクトを仮想空間から削除し、素材オブジェクトのポリゴンモデルとは別のポリゴンモデルで構成される合体オブジェクトを組んで登場させる処理
(b)素材オブジェクトのポリゴンモデルの少なくとも一部を用いた合体オブジェクト(具体的には、素材オブジェクトのポリゴンモデルおよび他のオブジェクトのポリゴンモデルによってポリゴンモデルが構成される合体オブジェクト)をゲームフィールドに登場させる処理
上記(b)の処理によっても、素材オブジェクトが消去されて、当該素材オブジェクトと他のオブジェクトとを組んだ合体オブジェクトが生成される様子を表現することができる。
このように、仮想空間に配置されている仮想オブジェクトを合体オブジェクトの素材として用いるにあたっては、ユーザが当該仮想オブジェクトに対して所有権や支配権を有していることがゲーム性の維持に必要となる。本実施例では、仮想オブジェクトが配置されている位置に対象エリアAをユーザが指定する、または対象エリアA内に仮想オブジェクトをユーザが移動させることによって、ユーザがそれらの仮想オブジェクトの所有権や支配権を有しているとすることで、ゲーム性を維持しつつ当該仮想オブジェクトを素材とした合体オブジェクトの生成が可能となる。さらに、ゲームフィールドは、山、谷、川、海等、種々の性質/形状の地形が設定されることが一般的であり、現出された合体オブジェクトが適切に仮想空間内に配置できない場合もあり得る。しかしながら、本実施例では、合体オブジェクトが現出する仮想空間領域は、素材オブジェクトが適切に配置可能な仮想空間領域であるため、現出する合体オブジェクトも適切に配置できる可能性が高くなり、合体オブジェクトが現出時に落下して失われるといった可能性を低減できるため、ユーザビリティに優れるものとなる。
なお、プレイヤキャラクタPCが仮想空間における空中に配置されている状態において、設計図に基づいた合体オブジェクトを現出させる場合、上述した地上とは異なる態様で当該合体オブジェクトを現出させてもかまわない。図14は、プレイヤキャラクタPCが仮想空間における空中で合体オブジェクトを現出させる様子の一例を示す図である。
図14において、プレイヤキャラクタPCが仮想空間における空中で合体オブジェクトを現出させる場合、現時点で現出予定となっている合体オブジェクトの完成予想モデルオブジェクトが、仮想空間におけるプレイヤキャラクタPCの下方となる空中に表示される。例えば、図14に示す一例では、プレイヤキャラクタPCの下方となる仮想空間における空中に、完成予想モデルオブジェクトM2が表示されている。完成予想モデルオブジェクトM2は、現在選択されている設計図D2に基づいた合体オブジェクトが完成して現出する場合の予想形状を示すものであり、地面上と同様に現実の合体オブジェクトとは異なる表示態様(例えば、半透明で表示されるスケルトンオブジェクト)で表示される。
そして、プレイヤキャラクタPCが仮想空間における空中において、合体オブジェクトを現出させるユーザ操作が行われると、完成予想モデルオブジェクトM2が配置されていた位置および姿勢に、合体オブジェクトが現出する。例えば、図14の一例では、完成予想モデルオブジェクトM2が配置されていた仮想空間における位置に、完成予想モデルオブジェクトM2が配置されていた姿勢で、設計図D2に基づいた合体オブジェクトが現出する。そして、プレイヤキャラクタPCは、上記空中の位置から飛び降りる動作を行うことによって、現出した合体オブジェクトに乗ってゲームを進めることができる。
なお、図14に示す一例では、プレイヤキャラクタPCが仮想空間における空中で合体オブジェクトを現出させる場合に、対象エリアAが表示されていないが、空中で合体オブジェクトを現出させる場合に対象エリアAを設定してもよいし設定しなくてもよい。前者の場合は、プレイヤキャラクタPCを中心とする仮想空間に立体状の対象エリア(例えば、円柱状や楕円柱状)を設定し、当該立体状の対象エリアが地上まで到達している場合に当該地上の対象エリア内に配置されている素材オブジェクトや当該立体状の対象エリアに含まれる空中に配置されている素材オブジェクトを利用可能にしてもよい。この場合、対象エリアは、空中のプレイヤキャラクタPCの下方に設定されることになる。後者の場合は、現出対象の合体オブジェクトを構成する素材オブジェクトをプレイヤキャラクタPCが全て収納している場合に、当該合体オブジェクトを現出するためのユーザ操作が可能としてもよい。なお、プレイヤキャラクタPCが仮想空間における空中で合体オブジェクトを現出させる場合に設定される対象エリアは、空中のプレイヤキャラクタPCの前方に設定されてもよい。
また、プレイヤキャラクタPCが仮想空間における空中に配置されている場合は、合体オブジェクトを現出させることができないようにしてもよい。この場合、プレイヤキャラクタPCが仮想空間における空中において、合体オブジェクトを現出させるユーザ操作が行われると、合体オブジェクトを現出できない旨の通知が表示画像または音声で行われてもよい。
(第2の実施例)
次に、第2の実施例のゲームについて説明する。第2の実施例におけるゲームにおいても、ユーザ操作に応じて、プレイヤキャラクタPCが複数の素材オブジェクトOBJを組むことで合体オブジェクト(生成物)を生成する。そして、プレイヤキャラクタPCが生成した合体オブジェクトが自動的に当該合体オブジェクトの設計図として登録される。ここで、第2の実施例における設計図は、ユーザ操作に応じて組まれた合体オブジェクトに基づいて作成され、上述した設計情報に基づく合体オブジェクトの外観を示すものである。そして、第1の実施例と同様に第2の実施例においても、登録された設計図に基づいた合体オブジェクトを仮想空間に現出させる処理を行うことができる。
一例として、第2の実施例における設計図は、プレイヤキャラクタPCが素材オブジェクトOBJを組む毎に、自動的に登録される。例えば、素材オブジェクトAと素材オブジェクトBとが組まれた場合、素材オブジェクトA-素材オブジェクトBの合体物の設計図が自動的に登録される。そして、素材オブジェクトA-素材オブジェクトBの合体物に素材オブジェクトCがさらに組まれた場合、素材オブジェクトA-素材オブジェクトB-素材オブジェクトCの合体物の設計図が素材オブジェクトA-素材オブジェクトBの合体物の設計図とは別に自動的に登録される。したがって、この場合、素材オブジェクトA-素材オブジェクトBの合体物と素材オブジェクトA-素材オブジェクトB-素材オブジェクトCの合体物の2つの設計図が登録されることになる。
ここで、第2の実施例のゲームでは、上述した自動的に登録される設計図(以下、第1種設計図とする)の他に、ゲーム内において所定のアイテムを取得することによって、当該アイテムに対応する合体オブジェクトの設計図(以下、第2種設計図とする)も登録可能であってもよい。また、上記第1種設計図および上記第2種設計図それぞれの登録可能数に上限が設けられてもよい。この場合、プレイヤキャラクタPCが素材オブジェクトを組む毎に、上記第1種設計図が自動的に登録されることにより第1種設計図の上限を越えるときには、既に登録されている第1種設計図のうち登録時期が相対的に古いものが自動的に消去される。また、プレイヤキャラクタPCが上記所定のアイテムを取得して当該アイテムに対応する第2種設計図が登録されることにより第2種設計図の上限を越えるときには、既に登録されている第2種設計図のうちユーザ操作に応じて選択されたものや登録時期が相対的に古いものが消去される。
このような自動的な消去が行われないように、上記第1種設計図および上記第2種設計図の中から特定の設計図(以下、第3種設計図とする)が設定可能であってもよい。一例として、ユーザ操作に応じて、上記第1種設計図および上記第2種設計図の中から「お気に入り」の設計図が選択されて設定されることにより、上記第3種設計図が登録されてもよい。上記登録処理により、上記第1種設計図の登録数が第1種設計図の上限を越える場合や上記第2種設計図の登録数が第2種設計図の上限を越える場合であっても、第3種設計図の登録が保持される。なお、上記第3種設計図の登録可能数にも上限が設けられてもよい。ユーザが第3種設計図を新たに登録することにより第3種設計図の上限を越えるときには、既に登録されている第3種設計図のうちユーザ操作に応じて選択されたものが消去される。
なお、上記第1種設計図および上記第2種設計図の中から上記第3種設計図が選択されて登録される際には、選択された設計図が第3種設計図に変更(すなわち、上記第1種設計図の登録リストまたは上記第2種設計図の登録リストから上記第3種設計図の登録リストに設計図を移動して登録)されてもよいし、選択された設計図が第3種設計図として複製(すなわち、上記第1種設計図の登録リストまたは上記第2種設計図の登録リストから上記第3種設計図の登録リストにコピーして登録)されてもよい。後者の場合、第3種設計図として登録された合成オブジェクトの設計図は、上述した消去処理により上記第1種設計図または上記第2種設計図としては消去されることがあり得るが、上記第3種設計図としては登録が保持されることになる。
また、上記第1種設計図は、プレイヤキャラクタPCが合体オブジェクトから素材オブジェクトを分離する場合は、上述した自動的な登録が行われなくてもよい。例えば、素材オブジェクトA-素材オブジェクトB-素材オブジェクトC-素材オブジェクトD-素材オブジェクトEの合体オブジェクトから素材オブジェクトCを選択して分離させて、素材オブジェクトA-素材オブジェクトBと素材オブジェクトCと素材オブジェクトD-素材オブジェクトEとに分離した場合、素材オブジェクトA-素材オブジェクトBの合体オブジェクトと素材オブジェクトD-素材オブジェクトEの合体オブジェクトとが得られる。しかしながら、このような分離した合体物まで当該分離毎に第1種設計図として自動的に登録した場合、第1種設計図の登録可能数の上限に到達することが相対的に早くなる一方、ユーザにとって登録したい設計図ではない可能性がある。上記分離の際には、上記第1種設計図として自動的に登録しないことにより、このような状況を避けることができる。
また、他の例として、合体オブジェクトが完成したことを示すユーザ操作が行われたことを契機として、当該合体オブジェクトの設計図が上記第1種設計図として登録されてもよい。この場合、上記第1種設計図として新たに登録されると、登録された合体オブジェクトが表示された設計図を示す画像とともに、当該設計図が登録されることを示す情報が文字画像や音声等によってユーザに報知される。
また、上記第2種設計図は、登録可能数の上限が設けられなくてもよい。この場合、例えば、上記第2種設計図は、ゲーム内において所定数用意された所定のアイテムを取得することに応じて制限なく登録されることが可能となり、ユーザ操作による消去や自動的な消去が行われない仕様であってもよい。これにより、上記第2種設計図としてレアな合体オブジェクトの設計図が取得可能である場合に、ユーザが意図せずに当該設計図を消去してしまうような状況を防止することができる。
また、上記第1の実施例のゲームと上記第2の実施例のゲームとが適宜組み合わされた態様であってもよい。第1の例として、上記第1の実施例のゲームにおいて、上記第2の実施例における第2種設計図が登録可能であってもよい。第2の例として、上記第1の実施例においてゲーム画像を撮像する操作を行うことにより登録される設計図の中から選択された特定の設計図が、上記第2の実施例における第3種設計図としてさらに登録可能であってもよい。第3の例として、上記第1の実施例においてゲーム画像を撮像する操作を行うことにより登録される設計図と、上記第2の実施例において自動的に登録される第1種設計図との両方が登録可能なゲームが行われてもよい。
次に、図15~図18を参照して、上記第1の実施例においてゲームシステム1で実行される具体的な処理の一例について説明する。図15は、上記第1の実施例において本体装置2のDRAM85に設定されるデータ領域の一例を示す図である。なお、DRAM85には、図15に示すデータの他、他の処理で用いられるデータも記憶されるが、詳細な説明を省略する。
DRAM85のプログラム記憶領域には、ゲームシステム1で実行される各種プログラムPaが記憶される。本実施例においては、各種プログラムPaは、左コントローラ3および/または右コントローラ4や本体装置2から取得したデータに基づいた情報処理を行うためのアプリケーションプログラム(例えば、ゲームプログラム)等が記憶される。なお、各種プログラムPaは、フラッシュメモリ84に予め記憶されていてもよいし、ゲームシステム1に着脱可能な記憶媒体(例えば、スロット23に装着された所定の種類の記憶媒体)から取得されてDRAM85に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてDRAM85に記憶されてもよい。プロセッサ81は、DRAM85に記憶された各種プログラムPaを実行する。
また、DRAM85のデータ記憶領域には、ゲームシステム1において実行される情報処理等の処理において用いられる各種のデータが記憶される。本実施例においては、DRAM85には、操作データDa、登録データDb、モデルデータDc、対象エリアデータDd、プレイヤキャラクタデータDe、オブジェクトデータDf、登録処理フラグデータDg、現出処理フラグデータDh、および画像データDi等が記憶される。
操作データDaは、左コントローラ3および/または右コントローラ4や本体装置2からそれぞれ適宜取得した操作データである。上述したように、左コントローラ3および/または右コントローラ4や本体装置2からそれぞれ取得される操作データには、各入力部(具体的には、各ボタン、アナログスティックタッチパネル、各センサ)からの入力に関する情報(具体的には、操作に関する情報や各センサによる検出結果)が含まれている。本実施例では、無線通信によって左コントローラ3および/または右コントローラ4や本体装置2からそれぞれ操作データを取得しており、当該取得した操作データを用いて操作データDaが適宜更新される。なお、操作データDaの更新周期は、後述するゲームシステム1で実行される処理の周期である1フレーム毎に更新されてもよいし、上記操作データが取得される周期毎に更新されてもよい。
登録データDbは、登録された合体オブジェクト毎の設計情報を示すデータである。例えば、登録データDbは、登録された合体オブジェクト毎に、構成する素材オブジェクトの種類、素材オブジェクト同士が接着される位置、素材オブジェクトそれぞれの姿勢等が記述された設計情報を示すデータで構成される。
モデルデータDcは、仮想空間に配置される完成予想モデルオブジェクトの種類、配置位置、配置姿勢、および表示態様等を示すデータである。
対象エリアデータDdは、仮想空間に配置される対象エリアの位置、サイズ、および形状等を示すデータである。
プレイヤキャラクタデータDeは、仮想空間に配置されているプレイヤキャラクタPCの配置位置および配置姿勢や、仮想空間における動作や状態等を示すデータである。また、プレイヤキャラクタデータDeは、プレイヤキャラクタPCが一時収納している収納オブジェクトの種別および数等を示すデータを含んでいる。オブジェクトデータDfは、仮想空間にそれぞれ配置されているオブジェクト毎のオブジェクトの種別、配置位置、配置姿勢、配置状態、他のオブジェクトとの間の接着状況、および表示態様等を示すデータである。
登録処理フラグデータDgは、合体オブジェクトを登録するゲームモードの場合にオンに設定される登録処理フラグを示すデータである。現出処理フラグデータDhは、合体オブジェクトを現出させるゲームモードの場合にオンに設定される現出処理フラグを示すデータである。
画像データDiは、表示画面(例えば、本体装置2のディスプレイ12)に画像(例えば、キャラクタやオブジェクトの画像、仮想空間の画像、背景画像等)を表示するためのデータである。
次に、図16~図18を参照して、上記第1の実施例における情報処理の詳細な一例を説明する。図16は、ゲームシステム1で実行される情報処理の一例を示すフローチャートである。図17は、図16におけるステップS126において行われる登録処理の詳細な一例を示すサブルーチンである。図18は、図16におけるステップS128において行われる現出処理の詳細な一例を示すサブルーチンである。本実施例においては、図16~図18に示す一連の処理は、プロセッサ81が各種プログラムPaに含まれる所定のアプリケーションプログラム(ゲームプログラム)を実行することによって行われる。また、図16~図18に示す情報処理が開始されるタイミングは任意である。
なお、図16~図18に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。また、本実施例では、上記フローチャートの各ステップの処理をプロセッサ81が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、プロセッサ81以外のプロセッサや専用回路が実行するようにしてもよい。また、本体装置2において実行される処理の一部は、本体装置2と通信可能な他の情報処理装置(例えば、本体装置2とネットワークを介して通信可能なサーバ)によって実行されてもよい。すなわち、図16~図18に示す各処理は、本体装置2を含む複数の情報処理装置が協働することによって実行されてもよい。
図16において、プロセッサ81は、情報処理における初期設定を行い(ステップS121)、次のステップに処理を進める。例えば、上記初期設定では、プロセッサ81は、以下に説明する処理を行うためのパラメータを初期化する。一例として、プロセッサ81は、予め設定されている仮想空間の設定に基づいて、プレイヤキャラクタPCや複数のオブジェクトを仮想空間に初期配置して、プレイヤキャラクタデータDeおよびオブジェクトデータDfを初期設定する。
次に、プロセッサ81は、左コントローラ3、右コントローラ4、および/または本体装置2から操作データを取得して操作データDaを更新し(ステップS122)、次のステップに処理を進める。
次に、プロセッサ81は、仮想空間において、プレイヤキャラクタPCを動作させ(ステップS123)、次のステップに処理を進める。例えば、プロセッサ81は、ステップS122において取得した操作データDaに基づいて、プレイヤキャラクタPCを動作させ、プレイヤキャラクタデータDeを更新する。
次に、プロセッサ81は、仮想空間において各オブジェクトを動作させ(ステップS124)、次のステップに処理を進める。例えば、プロセッサ81は、プレイヤキャラクタPCの動作(例えば、プレイヤキャラクタPCが乗り物オブジェクトを動かす動作)、オブジェクト自身や他のオブジェクトの動作、および仮想空間における仮想的な物理演算に基づいて、仮想空間に配置された各オブジェクトを動作させ、オブジェクトデータDfを更新する。また、プロセッサ81は、ゲームイベントに応じて仮想空間にオブジェクトを新たに配置する場合、当該オブジェクトに関するデータを新たに追加してオブジェクトデータDfを更新する。また、プロセッサ81は、仮想空間に配置されているオブジェクトまたは新たに取得されたオブジェクトを、プレイヤキャラクタPCに一時収納させる場合、当該オブジェクトを収納オブジェクトとしてプレイヤキャラクタデータDeを更新する。さらに、プレイヤキャラクタPCに応じて、オブジェクト同士が接続状態となる、またはオブジェクト同士の接続状態が解除される場合、当該接続状態に応じてオブジェクトデータDfを更新する。なお、オブジェクト移動手段は、ユーザ操作に基づいて、素材オブジェクトを仮想空間内で移動させるものであり、一例としてステップS124の処理を行うプロセッサ81に相当する。また、合体オブジェクト生成手段は、ユーザ操作に基づいて、複数の素材オブジェクトを組むことで合体オブジェクトを生成するものであり、一例としてステップS124の処理を行うプロセッサ81に相当する。
次に、プロセッサ81は、登録処理を行うか否かを判定する(ステップ125)。例えば、プロセッサ81は、上記ステップS122において取得した操作データが登録処理を行うゲームモードに移行するユーザ指示を示す場合や登録処理フラグデータDgが示す登録処理フラグがオンに設定されている場合、上記ステップS125において肯定判定する。そして、プロセッサ81は、登録処理を行う場合、ステップS126に処理を進める。一方、プロセッサ81は、登録処理を行わない場合、ステップS127に処理を進める。
ステップS126において、プロセッサ81は、登録処理を行い、ステップS127に処理を進める。以下、図17を参照して、上記ステップS126で行われる登録処理について説明する。なお、生成物設定手段は、複数の素材オブジェクトを組むことで生成された合体オブジェクトを、現出されることが可能な生成物として設定する処理を行うものであり、一例としてステップS126の処理を行うプロセッサ81に相当する。
図17において、プロセッサ81は、登録処理フラグをオンに設定して(ステップS140)、次のステップに処理を進める。例えば、プロセッサ81は、登録処理フラグをオンに設定して登録処理フラグデータDgを更新する。
次に、プロセッサ81は、登録処理を行うゲームモードを終了するか否かを判定する(ステップS141)。上記ステップS141において登録処理を行うゲームモードを終了する条件としては、例えば、当該ゲームモードが終了される条件が満たされたことや、ユーザが当該ゲームモードを終了する(キャンセルする)操作を行ったことや、ユーザが登録対象となっている合体オブジェクトを設計図として登録しないことを決定した操作を行ったこと等がある。プロセッサ81は、登録処理を行うゲームモードを終了しない場合にステップS142に処理を進め、登録処理を行うゲームモードを終了する場合にステップS146に処理を進める。
次に、プロセッサ81は、プレイヤキャラクタPCから仮想空間を見た主観画像を生成し(ステップS142)、次のステップに処理を進める。例えば、プロセッサ81は、プレイヤキャラクタPCを視点としてプレイヤキャラクタPCの前方を注視点とする位置および向きに仮想カメラを配置することによって、プレイヤキャラクタPCの主観画像を生成する。
次に、プロセッサ81は、上記ステップS142において生成された主観画像を用いて、登録対象となる合体オブジェクトを選択し(ステップS143)、次のステップに処理を進める。例えば、プロセッサ81は、所定の選択ルールに基づいて、上記主観画像に含まれる仮想空間におけるオブジェクトから、設計図として登録する合体オブジェクトを選択する。一例として、プロセッサ81は、上記主観画像内に複数の合体オブジェクトが含まれる場合、当該主観画像の視点に最も近い合体オブジェクトを登録対象として選択する。
次に、プロセッサ81は、登録対象となっている合体オブジェクトを設計図として登録するか否かを判定する(ステップS144)。例えば、プロセッサ81は、上記ステップS122において取得した操作データが合体オブジェクトを登録する指示を示している場合、上記ステップS144において肯定判定する。そして、プロセッサ81は、登録対象となっている合体オブジェクトを設計図として登録する場合、ステップS145に処理を進める。一方、プロセッサ81は、登録対象となっている合体オブジェクトを設計図として登録しない場合、当該サブルーチンによる処理を終了する。
次に、プロセッサ81は、登録対象となる合体オブジェクトの設計情報を登録し(ステップS145)、ステップS146に処理を進める。例えば、プロセッサ81は、上記ステップS144において選択された登録対象の合体オブジェクトの構成を示す設計情報を登録データDbに追加する。
ステップS146において、プロセッサ81は、登録処理フラグをオフに設定して、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、登録処理フラグをオフに設定して登録処理フラグデータDgを更新する。
図16に戻り、ステップS127において、プロセッサ81は、現出処理を行うか否かを判定する。例えば、プロセッサ81は、上記ステップS122において取得した操作データが現出処理を行うゲームモードに移行するユーザ指示を示す場合や現出処理フラグデータDhが示す現出処理フラグがオンに設定されている場合、上記ステップS127において肯定判定する。そして、プロセッサ81は、現出処理を行う場合、ステップS128に処理を進める。一方、プロセッサ81は、現出処理を行わない場合、ステップS129に処理を進める。
ステップS128において、プロセッサ81は、現出処理を行い、ステップS129に処理を進める。以下、図18を参照して、上記ステップS128で行われる現出処理について説明する。
図18において、プロセッサ81は、現出処理フラグをオンに設定して(ステップS150)、次のステップに処理を進める。例えば、プロセッサ81は、現出処理フラグをオンに設定して現出処理フラグデータDhを更新する。
次に、プロセッサ81は、現出処理を行うゲームモードを終了するか否かを判定する(ステップS151)。上記ステップS151において現出処理を行うゲームモードを終了する条件としては、例えば、当該ゲームモードが終了される条件が満たされたことや、ユーザが当該ゲームモードを終了する(キャンセルする)操作を行ったこと等がある。プロセッサ81は、現出処理を行うゲームモードを終了しない場合にステップS152に処理を進め、現出処理を行うゲームモードを終了する場合にステップS164に処理を進める。
次に、プロセッサ81は、現時点がユーザに設計図の選択を促す段階か否かを判定する(ステップS152)。一例として、プロセッサ81は、現時点が既に設計図が決定されている段階である場合、上記ステップS152において否定判定する。そして、プロセッサ81は、現時点がユーザに設計図の選択を促す段階である場合、ステップS153に処理を進める。一方、プロセッサ81は、現時点がユーザに設計図の選択を促す段階でない場合、ステップS156に処理を進める。
ステップS153において、プロセッサ81は、ユーザが選択可能な設計図を表示して、当該選択図からの選択を促すゲーム画像を設定して、次のステップに処理を進める。例えば、プロセッサ81は、登録データDbに登録されている全ての合体オブジェクトの設計情報を抽出し、当該設計情報に基づいて生成される合体オブジェクトそれぞれを示す設計図を一覧表示するゲーム画像を生成して、当該設計図からの選択をユーザに促す。このとき、ユーザによって仮選択された設計図に基づく完成予想モデル(完成予想モデルオブジェクト)および対象エリアを、現時点のプレイヤキャラクタPCの配置位置および向きに応じて、仮想空間内に表示してもかまわない。また、ユーザによって仮選択された設計図が示す合体オブジェクトに使用できるプレイヤキャラクタPCの収納オブジェクトを示す画像を、当該設計図周辺に表示してもかまわない。
次に、プロセッサ81は、設計図を決定するユーザ操作が行われたか否かを判定する(ステップS154)。例えば、プロセッサ81は、上記ステップS122において取得した操作データが設計図を決定するユーザ指示を示す場合、上記ステップS154において肯定判定する。そして、プロセッサ81は、設計図を決定するユーザ操作が行われた場合、ステップS155に処理を進める。一方、プロセッサ81は、設計図を決定するユーザ操作が行われていない場合、ステップS156に処理を進める。
ステップS155において、プロセッサ81は、現出させる合体オブジェクトを決定し、ステップS156に処理を進める。例えば、プロセッサ81は、現時点で選択されている設計図に基づいて生成される合体オブジェクトを、現出対象の合体オブジェクトに決定し、登録データDbから当該合体オブジェクトに関連する設計情報を抽出する。そして、プロセッサ81は、上記設計情報に基づいて、完成予想モデルオブジェクトを表示するためのデータを設定し、当該データを用いてモデルデータDcを更新する。
ステップS156において、プロセッサ81は、設計図が決定されている段階か否かを判定する。そして、プロセッサ81は、設計図が決定されている段階である場合、ステップS157に処理を進める。一方、プロセッサ81は、設計図が決定されている段階でない場合、当該サブルーチンによる処理を終了する。なお、設計図が決定されている段階となった後であっても、再度、設計図の選択をやり直してもかまわない。この場合、上記ステップS152の判定処理においてプロセッサ81が肯定判定することによって、設計図の再選択が可能となる。
ステップS157において、プロセッサ81は、仮想空間に対象エリアを設定し、次のステップに処理を進める。例えば、プロセッサ81は、プレイヤキャラクタPCから所定の距離前方となる地面上の位置を中心とする対象エリア(図12参照)を設定し、当該対象エリアに基づいて対象エリアデータDdを更新する。なお、領域設定手段は、ユーザ操作に基づいて、仮想空間の任意の位置に領域を設定する処理を行うものであり、一例としてステップS157の処理を行うプロセッサ81に相当する。
次に、プロセッサ81は、仮想空間に完成予想モデルオブジェクトを配置して(ステップS158)、次のステップに処理を進める。例えば、プロセッサ81は、仮想空間における上記ステップS157において設定した対象エリアの中央に、モデルデータDcが示す完成予想モデルオブジェクトを配置する。
次に、プロセッサ81は、仮想空間に配置されている素材オブジェクトおよび完成予想モデルオブジェクトの表示態様を変更する処理を行い(ステップS159)、次のステップに処理を進める。例えば、プロセッサ81は、上記ステップS157において設定した対象エリア内に配置されている素材オブジェクトのうち、現出対象として設定されている合体オブジェクトが現出した場合に実際に使用されるオブジェクトの表示態様をデフォルトの表示態様から変更し、当該変更後の表示態様を用いてオブジェクトデータDfを更新する。また、プロセッサ81は、対象エリアが移動することによって、当該対象エリアから逸脱した素材オブジェクトがある場合、当該素材オブジェクトの表示態様をデフォルトの表示態様に戻し、当該変更後の表示態様を用いてオブジェクトデータDfを更新する。また、プロセッサ81は、プレイヤキャラクタPCの収納オブジェクトのうち、現出対象として設定されている合体オブジェクトが現出した場合に実際に使用されるオブジェクトを抽出し、当該オブジェクトを示す画像をゲーム画像内(例えば、選択されている設計図周辺)に表示する設定を行う。さらに、プロセッサ81は、現在設定されている完成予想モデルオブジェクトに対応する合体オブジェクトを完成するために必要な素材オブジェクトが対象エリア内および/または収納オブジェクト内にある場合、該当する素材オブジェクト部分の表示態様をデフォルトの表示態様から変更し、当該変更後の表示態様を用いてモデルデータDcを更新する。また、プロセッサ81は、合体オブジェクトを完成するために必要な素材オブジェクトが対象エリア内から逸脱して不足する状態となった場合、該当する素材オブジェクト部分の表示態様をデフォルトの表示態様に戻し、当該変更後の表示態様を用いてモデルデータDcを更新する。なお、完成予想モデルオブジェクトの内部と交差する他のオブジェクトが存在して、対象エリア上に完成予想モデルオブジェクトを配置するスペースがない場合、プロセッサ81は、完成予想モデルオブジェクトを未表示としたり、グレーアウト表示したりしてもかまわない。
次に、プロセッサ81は、現在現出対象となっている合体オブジェクトが現出可能か否かを判定する(ステップS160)。例えば、プロセッサ81は、現出対象の合体オブジェクトとして完成するために必要な素材オブジェクト全てが対象エリア内および/または収納オブジェクト内にある場合、当該合体オブジェクトを現出可能であると判定する。そして、プロセッサ81は、合体オブジェクトが現出可能である場合、ステップS161に処理を進める。一方、プロセッサ81は、合体オブジェクトが現出可能でない場合、当該サブルーチンによる処理を終了する。なお、完成予想モデルオブジェクトの内部と交差する他のオブジェクトが存在して、対象エリア上に完成予想モデルオブジェクトを配置するスペースがない場合、プロセッサ81は、合体オブジェクトが現出可能でないと判定してもよい。
ステップS161において、プロセッサ81は、現出対象の合体オブジェクトを仮想空間に現出させるか否かを判定する。例えば、プロセッサ81は、上記ステップS122において取得した操作データが、現出対象の合体オブジェクトを仮想空間に現出させるユーザ指示を示す場合、上記ステップS161において肯定判定する。そして、プロセッサ81は、現出対象の合体オブジェクトを仮想空間に現出させる場合、ステップS162に処理を進める。一方、プロセッサ81は、現出対象の合体オブジェクトを仮想空間に現出させない場合、当該サブルーチンによる処理を終了する。
ステップS162において、プロセッサ81は、現出する合体オブジェクトに用いられた素材オブジェクトを仮想空間から消去し、次のステップに処理を進める。例えば、プロセッサ81は、現出する合体オブジェクトに用いられた素材オブジェクトのうち、仮想空間に配置されている素材オブジェクトに関連するデータを、オブジェクトデータDfから消去する。また、プロセッサ81は、現出する合体オブジェクトに用いられた素材オブジェクトのうち、収納オブジェクトから用いられた素材オブジェクトに関連するデータを、プレイヤキャラクタデータDeから消去する。
次に、プロセッサ81は、現出対象の合体オブジェクトを現出させ(ステップS163)、ステップS164に処理を進める。例えば、プロセッサ81は、モデルデータDcが示す完成予想モデルオブジェクトを通常の表示態様に変更(例えば、半透明の表示態様を、仮想空間に配置されている仮想オブジェクトと同じ表示態様に変更)した合体オブジェクトに遷移させ、当該合体オブジェクトが仮想空間内に存在するように当該合体オブジェクトに関するデータをオブジェクトデータDfに追加する。なお、生成物現出手段は、領域内に少なくともその一部が含まれる素材オブジェクトを少なくとも用いて、領域内に少なくともその一部が含まれるように、複数の素材オブジェクトに対応する生成物を現出させるものであり、一例としてステップS163の処理を行うプロセッサ81に相当する。
なお、上記ステップS162およびS163では、合体オブジェクトに用いられる素材オブジェクトに関連するデータをオブジェクトデータDfから消去し、当該合体オブジェクトに関するデータをオブジェクトデータDfに追加する処理が行われているが、上述したように、素材オブジェクトを消去する処理は、下記(a)および(b)のいずれの処理によって実現されてもよい。
(a)合体オブジェクトに組まれる素材オブジェクトのデータをオブジェクトデータDfから一旦削除し、合体オブジェクトに組まれる素材オブジェクトのデータを新たに構成した合体オブジェクトのデータをオブジェクトデータDfに追加する処理
(b)合体オブジェクトに組まれる素材オブジェクトのデータの少なくとも一部(位置データ、姿勢データ、接着情報等)を合体オブジェクトに組まれた状態に更新し、当該合体オブジェクトのデータとしてオブジェクトデータDfに残す処理
上記(b)の処理によれば、オブジェクトデータDfにおける素材オブジェクトのデータを、当該素材オブジェクトが組まれた合体オブジェクトのデータの一部としてオブジェクトデータDfに記憶することができる。以上のように、「素材オブジェクトのデータを消去する」とは、当該素材オブジェクトのデータ消去後において、他のオブジェクト(具体的には、合体オブジェクト)のデータの一部として当該素材オブジェクトのデータが用いられることを排除しない意味である。
ステップS164において、プロセッサ81は、現出処理フラグをオフに設定して、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、現出処理フラグをオフに設定して現出処理フラグデータDhを更新する。
図16に戻り、ステップS129において、プロセッサ81は、表示制御処理を行い、次のステップに処理を進める。例えば、プロセッサ81は、登録データDb、モデルデータDc、対象エリアデータDd、プレイヤキャラクタデータDe、オブジェクトデータDf、および画像データDi等に基づいて、仮想空間にプレイヤキャラクタPC、素材オブジェクトや合体オブジェクト等を含む仮想オブジェクト、完成予想モデルオブジェクト、対象エリア等をそれぞれ配置する。また、プロセッサ81は、操作データDaやプレイヤキャラクタPCの位置および向き等に基づいて、表示画像を生成するための仮想カメラの位置および/または姿勢を設定し、当該仮想カメラを仮想空間に配置する。そして、設定した仮想カメラから見た仮想空間の画像を生成して、当該仮想空間画像をディスプレイ12に表示する制御を行う。
次に、プロセッサ81は、ゲーム処理を終了するか否かを判定する(ステップS130)。上記ステップS130においてゲーム処理を終了する条件としては、例えば、ゲーム処理が終了される条件が満たされたことや、ユーザがゲーム処理を終了する操作を行ったこと等がある。プロセッサ81は、ゲーム処理を終了しない場合に上記ステップS122に戻って処理を繰り返し、ゲーム処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップS122~ステップS130の一連の処理は、ステップS130で処理を終了すると判定されるまで繰り返し実行される。
このように、上述した実施例においては、仮想空間における素材オブジェクトが配置されている位置に対象エリアをユーザが指定する、または対象エリア内に素材オブジェクトをユーザが移動させることによって、ユーザが素材オブジェクトの所有権や支配権を有しているとすることで、ゲーム性を維持しつつ当該素材オブジェクトを用いた合体オブジェクトの生成が可能となる。また、合体オブジェクトが現出する仮想空間領域は、素材オブジェクトが適切に配置可能な仮想空間領域であるため、現出する合体オブジェクトも適切に配置できる可能性が高くなり、合体オブジェクトが現出時に落下して失われるといった可能性を低減できるため、ユーザビリティに優れるものとなる。
なお、上述した実施例では、ユーザがプレイヤキャラクタPCを操作して一度生成した合体オブジェクトを、再度仮想空間に現出させる例を用いたが、現出させる合体オブジェクトは、ユーザが生成したことのない生成物であってもよい。例えば、設計者等において予め用意された設計図に基づいた合体オブジェクトを、ユーザ操作に応じて現出させるものであってもよい。また、設計者等において予め用意された合体オブジェクトをユーザが登録することによって取得した設計図に基づいて、合体オブジェクトを現出させ得るものであってもよい。また、他のユーザが一度生成した合体オブジェクトの設計図を用いて当該合体オブジェクトを現出させるものであってもよい。なお、設計者等において予め用意された上記設計図は、ゲーム進行中においてプレイヤキャラクタPCが取得可能なアイテムとして設定することも可能である。
また、上述した実施例における「現出」は、合体オブジェクトが現出した段階で確定的にそこに載置されなくてもよく、合体オブジェクトが現出後に現出位置から実際に当該合体オブジェクトを載置する位置決めを行うプロセスがあってもよい。例えば、完成予想モデルオブジェクトが表示されていた仮想空間における位置に合体オブジェクトを現出させた後、当該合体オブジェクトを仮想空間において載置する位置がユーザ操作に応じて調整されて、当該調整後の位置に当該合体オブジェクトが載置されることにより当該合体オブジェクトの現出が完了してもよい。
また、現出可能な合体オブジェクトは、プレイヤキャラクタPCが一時収納している収納オブジェクト、プレイヤキャラクタPCが収納可能であるが仮想空間に配置されているオブジェクト、およびプレイヤキャラクタPCが収納できないオブジェクトであって仮想空間に配置されている収納不可オブジェクトの何れかに属する素材オブジェクトを少なくとも1つ用いて構成することが考えられる。したがって、上述した実施例は、上記3種類のオブジェクトのうち、少なくとも1つが存在しないゲームであっても実現することができる。一例として、プレイヤキャラクタPCがオブジェクトを一時収納できないゲームであっても、仮想空間に配置されている収納不可オブジェクトのみを組んで合体オブジェクトを生成することによって、上述した実施例を実現することができる。また、上記収納オブジェクトは、プレイヤキャラクタPCが収納する態様ではなく、プレイヤキャラクタPCを操作するユーザが所有する態様であってもよい。
また、合体オブジェクトを現出させる際、上述した素材オブジェクトに加えて所定のアイテム(例えば、現出権利が得られる特殊アイテム)が必要とされてもよい。一例として、合体オブジェクトを現出させる際に、仮想空間における対象エリアA内に配置されている上記アイテムおよび/またはプレイヤキャラクタPCが所有している上記アイテムが少なくとも1つ消費されてもよい。他の例として、合体オブジェクトを現出させる際に、仮想空間における対象エリアA内に配置されている上記アイテムおよび/またはプレイヤキャラクタPCが所有している上記アイテムに設定されている使用可能ゲージを所定量減少させてもよい。
また、上述した実施例では、複数の素材オブジェクトを互いに接着する等によって組むことで合体オブジェクトを生成物として生成する例を用いた。複数の素材オブジェクトを組み合わせる態様は、素材オブジェクト間に介在物が介在することによって固定されるものでもよいし、当該介在物を介さずに固定されるものであってもよい。上述した実施例における接着は、上記両方の固定態様を含んだ概念であり、吸着、電着、接合、融着、溶接、圧着、螺合、嵌合、貼着等によって互いに組んで固定される態様を含んでいる。また、複数の素材オブジェクトが元の外観を実質的に維持することなく別の外観のオブジェクトに変化して生成物が生成されてもかまわない。例えば、複数の素材オブジェクトを錬成、合成、融合等をさせることによって一体のオブジェクト(生成物)が生成されてもかまわない。
また、上述した実施例では、仮想空間から素材オブジェクトを使用するための領域と、合体オブジェクトを現出させる位置を示す領域とを、同じ対象エリアAで示したが、両者の領域をそれぞれ異なる領域で示してもかまわない。一例として、合体オブジェクトを現出させる位置を示す領域より仮想空間から素材オブジェクトを使用するための領域を大きく設定してもよいし、両者を異なる形状で設定してもかまわない。また、合体オブジェクトを現出させる位置は、素材オブジェクトを使用するための領域とは無関係に、ユーザが自在に設定可能であってもかまわない。
また、現出可能な合体オブジェクトは、プレイヤキャラクタPCが一時収納している収納オブジェクトを用いることができないこととしてもよい。すなわち、プレイヤキャラクタPCが収納可能であるが仮想空間に配置されている収納可能オブジェクト、およびプレイヤキャラクタPCが収納できないオブジェクトであって仮想空間に配置されている収納不可オブジェクトの何れかに属する素材オブジェクトのみを用いて、合体オブジェクトが生成されるようにしてもよい。プレイヤキャラクタPCが一時収納している収納オブジェクトを用いて合体オブジェクトを生成しようとする場合、当該収納オブジェクトを一旦仮想空間における対象エリアA内に配置する必要があるが、対象エリアA内にある素材オブジェクトのみで合体オブジェクトが組まれるため、当該合体オブジェクトに何が用いられているのかわかりやすくなる。
また、現出させる合体オブジェクトに対して素材オブジェクトが不足している場合、不足している素材オブジェクトを代替することができる特殊オブジェクトがあってもよい。例えば、合体オブジェクトを構成するために丸太オブジェクトと石オブジェクトとが不足している場合、特殊オブジェクトを2つ用いることで、それぞれ丸太オブジェクトと石オブジェクト(あるいは、それらと類似する形状を有するオブジェクト)とに変化して合体オブジェクトが現出されてもよい。
また、上述した実施例におけるオブジェクトの姿勢には、オブジェクトの向きや方向の概念も含まれるものであってもよい。
また、ゲームシステム1は、どのような装置であってもよく、携帯型のゲーム装置、任意の携帯型電子機器(PDA(Personal Digital Assistant)、携帯電話、パーソナルコンピュータ、カメラ、タブレット等)等であってもよい。この場合、オブジェクトを移動する操作を行うための入力装置は、左コントローラ3や右コントローラ4でなくてもよく、別のコントローラ、マウス、タッチパッド、タッチパネル、トラックボール、キーボード、十字キー、スライドパッド等であってもよい。
また、上述した説明では情報処理をゲームシステム1でそれぞれ行う例を用いたが、上記処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲームシステム1がさらに他の装置(例えば、別のサーバ、他の画像表示装置、他のゲーム装置、他の携帯端末)と通信可能に構成されている場合、上記処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した情報処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施例においては、ゲームシステム1のプロセッサ81が所定のプログラムを実行することによって情報処理を行うことが可能であるが、ゲームシステム1が備える専用回路によって上記処理の一部または全部が行われてもよい。
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、上述した実施例を実現できることは言うまでもない。
また、上記プログラムは、外部メモリ等の外部記憶媒体を通じてゲームシステム1に供給されるだけでなく、有線または無線の通信回線を通じて当該装置に供給されてもよい。また、上記プログラムは、当該装置内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD-ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
以上、いくつかのシステム例、方法例、デバイス例、および装置例を詳細に説明してきたが、前述の説明はあらゆる点において例示に過ぎず、その範囲を限定しようとするものではない。添付されたクレームの精神および範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。添付されたクレームの範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、具体的な実施例の記載から、本実施例の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書で使用する場合、単数形で「a」や「an」の語を前に付けて記載した要素等は、これに関する複数の要素も排除していないと理解されるべきである。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本実施例の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。