図1を参照して、この発明の一実施例であるゲーム装置10は、上側ハウジング12および下側ハウジング14を含み、上側ハウジング12と下側ハウジング14とは、開閉可能(折り畳み可能)に連結されている。図1の例では、上側ハウジング12および下側ハウジング14は、それぞれ横長の長方形の板状に形成され、互いの長辺部分で回動可能に連結されている。つまり、この実施例のゲーム装置10は、折り畳み型の携帯ゲーム装置であり、図1には、当該ゲーム装置10を開いた状態(開状態)で示してある。ゲーム装置10は、開いた状態においてもユーザが両手または片手で把持することができるようなサイズで構成される。
通常、ユーザは、開状態でゲーム装置10を使用する。また、ユーザは、ゲーム装置10を使用しない場合には閉状態で保管する。ただし、ゲーム装置10は、上記閉状態および開状態のみでなく、上側ハウジング12と下側ハウジング14とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング12を下側ハウジング14に対して任意の角度で静止させることができる。
なお、ゲーム装置10は、後述するカメラ(32,34)を搭載しており、当該カメラ(32,34)によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりする撮像装置としても機能する。
図1に示すように、上側ハウジング12には第1LCD16が設けられ、下側ハウジング14には第2LCD18が設けられる。第1LCD16および第2LCD18は、横長形状であり、それぞれの長辺方向が上側ハウジング12および下側ハウジング14の長辺方向と一致するように配置される。たとえば、第1LCD16および第2LCD18の解像度は、256(横)×192(縦)画素(ドット)に設定される。
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。また、ゲーム装置10は、任意の解像度の表示装置を利用することができる。
図1および図2に示すように、下側ハウジング14には、入力装置として、各操作ボタン20a−20kが設けられる。この各操作ボタン20a−20kのうち、方向入力ボタン20a、操作ボタン20b、操作ボタン20c、操作ボタン20d、操作ボタン20e、電源ボタン20f、スタートボタン20g、およびセレクトボタン20hは、下側ハウジング14の第2LCD18が設けられる側の面(内側の面)に配置される。具体的には、方向入力ボタン20aおよび電源ボタン20fは、第2LCD18の左側に配置され、操作ボタン20b−20e,20gおよび20hは、第2LCD18の右側に配置される。また、上側ハウジング12と下側ハウジング14とを折り畳んだときには、操作ボタン20a−20hはゲーム装置10の内部に収められる。
方向入力ボタン(十字キー)20aは、ディジタルジョイスティックとして機能し、プレイヤオブジェクトの移動方向を指示したり、カーソルを移動させたりするなどに用いられる。各操作ボタン20b−20eは、プッシュボタンであり、たとえば、プレイヤオブジェクトに任意の動作をさせたり、決定やキャンセルを実行したりする等に用いられる。電源ボタン20fは、プッシュボタンであり、ゲーム装置10の主電源をオン/オフするために用いられる。スタートボタン20gは、プッシュボタンであり、ゲームを中断(ポーズ)したり、開始(再開)したりするために用いられる。セレクトボタン20hは、プッシュボタンであり、ゲームモードやメニューの選択等に用いられる。
図1においては、操作ボタン20i−20kを省略したが、図2(A)に示すように、操作ボタン(Lボタン)20iは、下側ハウジング14の上側面の左端部に設けられ、操作ボタン(Rボタン)20jは、下側ハウジング14の上側面の右端部に設けられる。また、図2(B)に示すように、音量ボタン20kは、下側ハウジング14の左側面に設けられる。
なお、図2(A)は、ゲーム装置10を折り畳んだ状態で、上面(上ハウジング12)側から見た図であり、図2(B)は、同じくゲーム装置10を折り畳んだ状態で、左側面から見た図である。
Lボタン20iおよびRボタン20jは、プッシュボタンであり、操作ボタン20b−20eと同様の操作に用いたり、それらの操作ボタン20b−20eの補助的な操作に用いたりすることができる。音量ボタン20kは、2つのプッシュボタンを用いて構成され、図示しない2つのスピーカ(右スピーカおよび左スピーカ)から出力される音の大きさを調整するために用いられる。この実施例では、音量ボタン20kには、2つの押圧部を含む操作部が設けられ、各押圧部に対応して上記のプッシュボタンが設けられる。したがって、一方の押圧部を押すと音量が大きくされ、他方の押圧部を押すと音量が小さくされる。たとえば、押圧部を押し続けると、音量が次第に大きくされたり、次第に小さくされたりする。
図1に戻って、ゲーム装置10は、操作ボタン20a−20kとは別の入力装置として、さらにタッチパネル22を備えている。タッチパネル22は、第2LCD18の画面上を覆うように装着されている。この実施例では、タッチパネル22は、たとえば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル22は、抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。また、この実施例では、タッチパネル22として、たとえば第2LCD18の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル22の解像度と第2LCD18の解像度とが一致している必要はない。
また、下側ハウジング14の右側面には、挿入口(図1に示す破線)が設けられている。挿入口は、タッチパネル22に対する操作を行うために用いられるタッチペン24を収納することができる。通常、タッチパネル22に対する入力は、タッチペン24を用いて行われるが、タッチペン24に限らずユーザの指でタッチパネル22を操作することも可能である。したがって、たとえば、タッチペン24を用いない場合には、タッチペン24の挿入口および収納部を設ける必要はない。
また、下側ハウジング14の右側面には、メモリカード26を収納するための挿入口(図1では、二点鎖線で示している)が設けられている。この挿入口の内側には、ゲーム装置10とメモリカード26とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード26は、たとえばSDカードであり、コネクタに着脱自在に装着される。このメモリカード26は、たとえば、ゲーム装置10によって撮像された画像を記憶(保存)したり、他の装置で生成(撮像)ないし記憶された画像をゲーム装置10に読み込んだりするために用いられる。
さらに、下側ハウジング14の上側面には、メモリカード28を収納するための挿入口(図1では、一点鎖線で示している)が設けられている。この挿入口の内側にも、ゲーム装置10とメモリカード28とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード28は、ゲームプログラムなどの情報処理プログラムおよび必要なデータなどを記録した記録媒体であり、下側ハウジング14に設けられた挿入口に着脱自在に装着される。
また、上側ハウジング12と下側ハウジング14との連結部(ヒンジ)の左端部分には、インジケータ30が設けられる。このインジケータ30は、3つのLED30a,30b,30cによって構成される。ここで、ゲーム装置10は、他の機器との間で無線通信を行うことが可能であり、第1LED30aは、無線通信が確立している場合に点灯する。第2LED30bは、ゲーム装置10の充電中に点灯する。第3LED30cは、ゲーム装置10の主電源がオンである場合に点灯する。したがって、インジケータ30(LED30a−30c)によって、ゲーム装置10の通信確立状況、充電状況、および主電源のオン/オフ状況をユーザに通知することができる。
上述したように、上側ハウジング12には、第1LCD16が設けられる。この実施例では、第2LCD18を覆うように、タッチパネル22を設けているが、第1LCD16を覆うように、タッチパネル22を設けてもよい。または、第1LCD16および第2LCD18のそれぞれを覆うように、2つのタッチパネル22を設けるようにしてもよい。
また、上側ハウジング12には、2つのカメラ(内側カメラ32および外側カメラ34)が設けられる。図1に示すように、内側カメラ32は、上側ハウジング12と下側ハウジング14との連結部付近であり、第1LCD16が設けられる側の面に、この第1LCD16の表示面とその撮影面とが平行または面一になるように取り付けられる。一方、外側カメラ34は、図2(A)に示すように、内側カメラ32が取り付けられる面とは反対側の面、すなわち、上側ハウジング12の外側の面(ゲーム装置10が閉状態となった場合に外側となる面であり、図1に示す上側ハウジング12の背面)に取り付けられる。ただし、図1においては、外側カメラ34を破線で示してある。
したがって、内側カメラ32は、上側ハウジング12の内側の面が向く方向を撮像することが可能であり、外側カメラ34は、内側カメラ32の撮像方向の逆方向、すなわち、上側ハウジング12の外側の面が向く方向を撮像することが可能である。このように、この実施例では、内側カメラ32および外側カメラ34の撮像方向が互いに逆方向となるように、それら2つのカメラ32,34が設けられる。たとえば、ゲーム装置10を把持したユーザは、このゲーム装置10側からユーザの方を見た景色(たとえば、当該ユーザを含む)を内側カメラ32で撮像することができるとともに、ゲーム装置10側からユーザとは反対側の方向を見た景色(たとえば、他のユーザを含む)を外側カメラ34で撮像することができる。
なお、上記連結部付近の内側の面には、音声入力装置としてマイク84(図3参照)が収納されている。そして、上記連結部付近の内側の面には、マイク84がゲーム装置10外部の音を検知できるように、そのマイク84用の孔36が形成される。マイク84を収納する位置およびマイク84用の孔36の位置は必ずしも上記連結部である必要はなく、たとえば下側ハウジング14にマイク84を収納し、マイク84の収納位置に対応させて下側ハウジング14にマイク84用の孔36を設けるようにしてもよい。
また、上側ハウジング12の外側の面には、外側カメラ34の近傍に第4LED38(図1では、破線で示す)が取り付けられる。第4LED38は、内側カメラ32または外側カメラ34によって撮影が行われた(シャッターボタンが押下された)時点で点灯する。また、内側カメラ32または外側カメラ34によって動画が撮影される場合には、第4LED38は、撮影の間点灯し続ける。つまり、第4LED38を点灯することによって、ゲーム装置10による撮影が行われた(行われている)ことを撮影対象者や周囲に通知することができる。
また、上側ハウジング12には、第1LCD16の両側に、音抜き孔40が形成される。この音抜き孔40に対応する位置であり、上側ハウジング12の内部には、上述したスピーカが収納されている。音抜き孔40は、スピーカからの音をゲーム装置10の外部に放出するための孔である。
以上に説明したように、上側ハウジング12には、画像を撮像するための構成である内側カメラ32および外側カメラ34と、主として、撮影された画像(撮影画像)およびゲーム画面を表示するための表示手段である第1LCD16とが設けられる。一方、下側ハウジング14には、ゲーム装置10に対する操作入力を行うための入力装置(操作ボタン20(20a−20k)およびタッチパネル22)と、主として、操作画面およびゲーム画面を表示するための表示手段である第2LCD18とが設けられる。したがって、ゲーム装置10は、2つの画面(16,18)および2系統の操作部(20,22)を備えている。
図3は、この実施例のゲーム装置10の電気的な構成を示すブロック図である。図3に示すように、ゲーム装置10は、CPU50、メインメモリ52、メモリ制御回路54、保存用データメモリ56、プリセットデータ用メモリ58、メモリカードインターフェース(メモリカードI/F)60、メモリカードI/F62、無線通信モジュール64、ローカル通信モジュール66、リアルタイムクロック(RTC)68、電源回路70、およびインターフェース回路(I/F回路)72、第1GPU(Graphics Processing Unit)74、第2GPU76、第1VRAM(Video RAM)78、第2VRAM80、およびLCDコントローラ82等の電子部品を備えている。これらの電子部品(回路コンポーネント)は、電子回路基板上に実装されて、下側ハウジング14(または上側ハウジング12でもよい)内に収納される。
CPU50は、所定のプログラムを実行するための情報処理手段である。この実施例では、所定のプログラムは、ゲーム装置10内のメモリ(たとえば保存用データメモリ56)やメモリカード26および/または28に記憶されており、CPU50は、当該所定のプログラムを実行することによって、後述する情報処理(ゲーム処理)を実行する。
なお、CPU50によって実行されるプログラムは、ゲーム装置10内のメモリに予め記憶していてもよいし、メモリカード26および/または28から取得してもよいし、他の機器と通信することによって当該他の機器から取得してもよい。
CPU50には、メインメモリ52、メモリ制御回路54、およびプリセットデータ用メモリ58が接続される。また、メモリ制御回路54には、保存用データメモリ56が接続される。メインメモリ52は、CPU50のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ52は、上記情報処理に用いられる各種データを記憶(一時記憶)したり、外部(メモリカード26および28や他の機器等)から取得されるプログラムを記憶したりする。この実施例では、メインメモリ52として、たとえばPSRAM(Pseudo−SRAM)を用いる。保存用データメモリ56は、CPU50によって実行されるプログラムや内側カメラ32および外側カメラ34によって撮像された画像のデータ等を記憶(保存)するための記憶手段である。この保存用データメモリ56は、不揮発性の記憶媒体によって構成されており、たとえば、NAND型フラッシュメモリを用いることができる。メモリ制御回路54は、CPU50の指示に従って、保存用データメモリ56に対するデータの読み出しおよび書き込みを制御する。プリセットデータ用メモリ58は、ゲーム装置10において予め設定される各種パラメータ等のデータ(プリセットデータ)を記憶するための記憶手段である。プリセットデータ用メモリ58としては、SPI(Serial Peripheral Interface)バスによってCPU50と接続されるフラッシュメモリを用いることができる。
メモリカードI/F60および62は、それぞれCPU50に接続される。メモリカードI/F60は、コネクタに装着されたメモリカード26に対するデータの読み出しおよび書き込みを、CPU50の指示に応じて行う。また、メモリカードI/F62は、コネクタに装着されたメモリカード28に対するデータの読み出しおよび書き込みを、CPU50の指示に応じて行う。この実施例では、内側カメラ32および外側カメラ34によって撮像された画像に対応する画像データや他の装置から受信された画像データがメモリカード26に書き込まれたり、メモリカード26に記憶された画像データがメモリカード26から読み出されて保存用データメモリ56に記憶されたり、他の装置へ送信されたりする。また、メモリカード28に記憶された各種プログラムが、CPU50によって読み出されて実行されたりする。
なお、ゲームプログラムなどの情報処理プログラムは、メモリカード28等の外部記憶媒体を通じてゲーム装置10に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置10に供給されてもよい。また、情報処理プログラムは、ゲーム装置10内部の不揮発性記憶装置に予め記録されていてもよい。さらに、情報処理プログラムを記憶する情報記憶媒体としては、上記不揮発性記憶装置に限らず、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
無線通信モジュール64は、たとえばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール66は、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール64およびローカル通信モジュール66は、CPU50に接続される。CPU50は、無線通信モジュール64を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール66を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
また、CPU50には、RTC68および電源回路70が接続される。RTC68は、時間をカウントしてCPU50に出力する。たとえば、CPU50は、RTC68によって計時された時間に基づいて、日付および現在時刻等を計算することもできる。電源回路70は、ゲーム装置10が有する電源(典型的には電池であり、下側ハウジング14に収納される)から供給される電力を制御し、ゲーム装置10の各回路コンポーネントに電力を供給する。
また、ゲーム装置10は、マイク84およびアンプ86を備えている。マイク84およびアンプ86は、それぞれI/F回路72に接続される。マイク84は、ゲーム装置10に向かって発声ないし発生されたユーザの音声ないし音(拍手や手拍子など)を検知して、当該音声ないし音を示す音声信号をI/F回路72に出力する。アンプ86は、I/F回路72から与えられる音声信号を増幅してスピーカ(図示せず)に与える。I/F回路72は、CPU50に接続される。
また、タッチパネル22は、I/F回路72に接続される。I/F回路72は、マイク84およびアンプ86(スピーカ)の制御を行う音声制御回路と、タッチパネル22の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル22からの信号に基づいて所定の形式のタッチ位置データを生成してCPU50に出力する。たとえば、タッチ位置データは、タッチパネル22の入力面に対して入力が行われた位置の座標を示すデータである。
なお、タッチパネル制御回路は、タッチパネル22からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。CPU50は、I/F回路72を介して、タッチ位置データを取得することにより、タッチパネル22に対して入力が行われた位置を知ることができる。
操作ボタン20は、上記の各操作ボタン20a−20kによって構成され、CPU50に接続される。操作ボタン20からCPU50へは、各操作ボタン20a−20kに対する入力状況(押下されたか否か)を示す操作データが出力される。CPU50は、操作ボタン20からの操作データを取得し、取得した操作データに応じた処理を実行する。
内側カメラ32および外側カメラ34は、それぞれCPU50に接続される。内側カメラ32および外側カメラ34は、CPU50の指示に応じて画像を撮像し、撮像した画像に対応する画像データをCPU50に出力する。この実施例では、CPU50は、内側カメラ32および外側カメラ34のいずれか一方に対して撮像指示を行い、撮像指示を受けたカメラ(32,34)が画像を撮像して画像データをCPU50に送る。
第1GPU74には、第1VRAM78が接続され、第2GPU76には、第2VRAM80が接続される。第1GPU74は、CPU50からの指示に応じて、メインメモリ52に記憶されている表示画像を生成するためのデータに基づいて第1の表示画像を生成し、第1VRAM78に描画する。第2GPU76は、同様にCPU50からの指示に応じて第2の表示画像を生成し、第2VRAM80に描画する。第1VRAM78および第2VRAM80は、LCDコントローラ82に接続されている。
LCDコントローラ82は、レジスタ82aを含む。レジスタ82aは、CPU50からの指示に応じて、「0」または「1」の値を記憶する。LCDコントローラ82は、レジスタ82aの値が「0」である場合には、第1VRAM78に描画された第1の表示画像を第2LCD18に出力し、第2VRAM80に描画された第2の表示画像を第1LCD16に出力する。また、レジスタ82aの値が「1」である場合には、第1VRAM78に描画された第1の表示画像を第1LCD16に出力し、第2VRAM80に描画された第2の表示画像を第2LCD18に出力する。
図4には、図1に示したゲーム装置10の向きを変えて使用する場合の例が示される。これ以降では、図1に示す場合を「ゲーム装置10を横(横向き)で使用する」と言い、図4に示す場合を「ゲーム装置10を縦(縦向き)で使用する」と言うことにする。たとえば、ゲーム装置10は、図1に示した横向きの状態から反時計周りに約90°回転されると、縦向きの状態にされる。したがって、図4に示すように、ゲーム装置10を縦向きで使用する場合には、第1LCD16および第2LCD18は横並びに配置される。ただし、図4に示すように、第1LCD16が左側に配置され、第2LCD18が右側に配置される。
また、ゲーム装置10を横向きで使用する場合には、第1LCD16の表示画面を上画面と言い、第2LCD18の表示画面を下画面と言うこととし、ゲーム装置10を縦向きで使用する場合には、第1LCD16の表示画面を左画面と言い、第2LCD18の表示画面を右画面と言うことにする。
この実施例のゲーム装置10(仮想ゲーム)では、プレイヤないしユーザ(以下、「プレイヤ」という)は、カメラ32,34を用いて撮影した画像およびマイク84を通して録音した音声を用いて、プレイヤキャラクタが敵キャラクタを倒す戦闘ゲームをプレイしたり、プレイヤキャラクタが他のプレイヤキャラクタと対戦する対戦ゲームをプレイしたりする。
まず、戦闘ゲームや対戦ゲームを行う前にカメラ32,34を用いて被写体の画像を撮影し、音声を録音することによって新しいキャラクタを作成する。
図5(A)に示すように、パンチのポーズ撮影画面200が第1LCD16および第2LCD18に表示される。このパンチのポーズ撮影画面200では、左画面202が第1LCD16に表示され、右画面204が第2LCD18に表示される。
なお、図5以降では、仮想ゲームの実行中に表示される種々の画面を示すが、各画面を分かり易く示すために、ゲーム装置10のうちの第1LCD16および第2LCD18の表示画面のみを示すとともに、それらの表示画面を合わせた状態で示す。
図5(A)に戻って、左画面202には、その全面にパンチのポーズ(姿勢)を撮影するためのガイド画像202aが表示される。このガイド画像202aは、図5(B)に示すような撮影用のマスク画像を含む。図5(B)に示すように、マスク画像には、パンチのポーズの形状にくり抜かれた(透過させた)くり抜き部2020が設けられる。また、マスク画像では、くり抜き部2020以外の領域には、たとえば所定の色が付されている。ただし、図面の都合上、図5(B)では、色が付されていることを斜線で示してある。また、図5(A)では、分かり易く示すために、マスク画像(ガイド画像202a)に斜線を付していない。
また、ガイド画像202aでは、くり抜き部2020の上方に、パンチのポーズを撮影する旨のメッセージおよびボタン操作の説明が表示される。つまり、マスク画像の前面であり、くり抜き部2020の上方に、メッセージ等が描画される。これにより、撮影される被写体がどのようなポーズを取れば良いのかを容易に判断させることができる。ここでは、ボタン操作の説明としては、Aボタン20bをオンすると撮影処理が実行されることと、Xボタン20dをオンすると外側カメラ34に代えて内側カメラ32が起動されることが記載される。図5(A)では、分かり易く示すために、くり抜き部2020には何も記載していないが、カメラ(ここでは、外側カメラ34)で撮影された撮影画像(スルー画像)がマスク画像の背面側に表示される(内側カメラ32の場合も同じ)。したがって、撮影画像のうち、くり抜き部2020に対応する部分がプレイヤに見える。つまり、上述しように、第1LCD16をビューファインダーとして用いて、プレイヤはパンチのポーズの画像を撮影する。以下、撮影を実行する場合について同様である。
右画面204には、その右上端部に、撮影した顔(ここでは、決め顔)の画像を表示するための表示領域204aが設けられる。この表示領域204aの左側には、作成中のキャラクタについての名称および称号を表示するための表示領域204bが設けられる。また、表示領域204aおよび表示領域204bの下方には、12個の表示領域204cが格子状に並んで設けられる。この表示領域204cには、撮影画像(各ポーズの撮影画像や各顔の撮影画像など)の縮小画像(サムネイル画像)が表示される。この実施例では、縮小画像が表示される前すなわち撮影画像が保存される前には、表示領域204cに“?”の記号を表示するようにしてある。ただし、これに限定される必要はなく、撮影するポーズや顔を識別するための情報をテキストで表示したり、空欄にしたりしてよい。以下、他の撮影画面において同様である。また、左上の表示領域204cには、その枠と重なるように、太線で示される四角枠のカーソル2040が表示される。このカーソル2040は、パンチのポーズの撮影画像についての縮小画像が表示される表示領域204cを指示する。この実施例では、撮影するポーズや顔の表情などは予め決定されており、その撮影する順番も予め決定されている。さらに、撮影画像の縮小画像が表示される表示領域204aおよび表示領域204cも予め決定されており、その撮影する順番に従って予め決定された表示領域204a,204cにカーソル2040は移動(表示)される。
また、表示領域204cの下方には、ボタン画像204dが設けられる。ボタン画像204dがオンされると、撮影処理が実行される。つまり、このパンチのポーズ撮影画面200では、Aボタン20bをオンしたり、ボタン画像204dをオンしたりすることにより、撮影処理が実行され、そのときの静止画像(撮影画像)が取得される。このことは、他の撮影画面についても同様である。
なお、プレイヤ自身を撮影する場合にも、図5(A)に示すパンチのポーズ撮影画面200と同様の画面が表示される。図示は省略するが、ボタン説明として、Xボタン20dをオンすると内側カメラ32に代えて外側カメラ34が起動されることが記載される以外は、図5(A)に示すパンチのポーズ撮影画面200と同じである。
図5(A)に示すパンチのポーズ撮影画面200が第1LCD16および第2LCD18に表示されている場合に、Aボタン20bないしボタン画像204dがオンされると、撮影処理が実行され、図6(A)に示すようなパンチのポーズについてのポーズ画像確認画面220が第1LCD16および第2LCD18に表示される。このポーズ画像確認画面220では、左画面222が第1LCD16に表示され、右画面224が第2LCD18に表示される。左画面222には、くり抜き部2220を含むガイド画像222aおよびガイド画像222aの背面側に今回の撮影画像が表示される。また、ガイド画像222aでは、くり抜き部2220の上方に、撮影した撮影画像を保存するかどうかを確認するためのメッセージが表示される。
右画面224には、ボタン画像224aおよびボタン画像224bが、図5(A)に示した右画面204の前面であり、その略中央に縦に並んで設けられる。図6(A)に示すように、図5(A)に示した右画面204の前面であり、ボタン画像224aおよびボタン画像224bの背面には、半透明のマスク画像が表示される。ただし、図5(A)に示した右画面204を表示せずに、ボタン画像224aおよびボタン画像224bのみを設けるようにしてもよい。ボタン画像224aがオンされると、撮影画像の保存処理が実行される。ボタン画像224bがオンされると、再度撮影処理が実行される。つまり、撮り直しが実行される。
ポーズ画像確認画面220でボタン画像224aがオンされ、撮影画像の保存が実行されると、今回の撮影画像に基づいて生成されたポーズ画像(ここでは、パンチの画像)の画像データが保存される。この実施例では、図6(A)に示すように、ゲーム装置10を縦向きにして撮影した撮影画像を用いて、後で示すように、ゲーム装置10を横向きにして戦闘ゲームや対戦ゲームを行う。このため、次の手順で、撮影画像に基づくポーズ画像の画像データが生成および保存される。
まず、縦256ドット×横192ドットの解像度(図6(A)参照)の撮影画像が、その中心と重なる中心を有し、くり抜き部(ここでは、2220)を含む大きさの正方形となるように、トリミングされる。そして、トリミングされた撮影画像に対して、縦128ドット×横128ドットになるように、間引き処理が施される。この場合、撮影画像のサイズが縮小するため、上述したトリミング処理および間引き処理を縮小処理や圧縮処理と言うこともできる。また、図6(B)に示すように、図6(A)に示したくり抜き部2220を縮小して、縦128ドット×横128ドットに収まるようにしたパンチについてのマスク画像が予め用意される。したがって、このマスク画像を用いて、間引き処理が施された撮影画像を切り抜くことにより、図6(C)に示すようなパンチのポーズ画像が生成される。このパンチのポーズ画像に対応する画像データが作成中のキャラクタに対応して保存されるのである。以下、他のポーズの撮影画像に基づくポーズ画像の画像データが生成および保存される場合についても同様である。つまり、他のポーズ画像を生成するためのマスク画像も予め用意されているのである。
ここで、この実施例のように、ゲーム装置10を縦向きにして撮影を行うのは、主として、人間のような縦長の被写体を撮影するためであり、ビューファインダーとしての第1LCD16を縦長で使用するためである。このため、くり抜き部(2220)を比較的大きくしたガイド画像(202a)を表示することができ、くり抜き部(2220)にスルー画像の被写体を合わせ易く、撮影が簡単である。また、戦闘ゲームや対戦ゲームでは、後述するように、ゲーム装置10を横向きで使用するため、縦向きで撮影した画像を横向きで使用するために、トリミングや間引き処理などの処理が撮影画像に施され、ポーズ画像が生成される。
また、ポーズ画像確認画面220でボタン画像224bがオンされ、再度撮影処理が実行されると、今回の撮影画像に対応する画像データは消去され、図5(A)に示したパンチのポーズ撮影画面200に戻る。ただし、後述するように、撮影画像に対応する画像データは、メインメモリ52のバッファ領域(92b)に記憶されている。
パンチの画像に対応する画像データが保存されると、図7に示す撮影成功画面240が第1LCD16および第2LCD18に表示される。図7に示す撮影成功画面240では、左画面242が第1LCD16に表示され、右画面244が第2LCD18に表示される。
左画面240には、くり抜き部2420を含むガイド画像242aおよびその背面に今回の撮影画像が表示される。また、ガイド画像242aでは、くり抜き部2420の上方には、撮影に成功した旨のメッセージが表示される。
右画面244には、表示領域244a、表示領域244bおよび表示領域244cが設けられるとともに、ボタン画像244dが表示される。また、左上の表示領域244cに、太線で示される四角枠のカーソル2440が表示される。このカーソル2440で指示される表示領域244cに今回撮影および保存された撮影画像(ポーズ画像)の縮小画像が表示される。ただし、右画面244は、今回撮影および保存された撮影画像の縮小画像がカーソル2440で指示された表示領域244cに表示されている以外は、上述した図5(A)の右画面204と同じであるため、重複した説明は省略する。
パンチのポーズの撮影に成功すると、次のポーズ(この実施例では、構えのポーズ)の撮影に移行する。具体的には、図8に示す構えのポーズ撮影画面260が第1LCD16および第2LCD18に表示される。この構えのポーズ撮影画面260では、左画面262が第1LCD16に表示され、右画面264が第2LCD18に表示される。
左画面262には、構えのポーズを撮影するためのガイド画像262aが表示され、このガイド画像262aには構えのポーズの形状にくり抜いたくり抜き部2620が形成される。上述したように、カメラ(ここでは、外側カメラ34)で撮影されたスルー画像(静止画像も同じ)はガイド画像262aの背面側に表示される。したがって、くり抜き部2620を通して、スルー画像が見える。以下、同様である。また、ガイド画像262aには、くり抜き部2620の上方に、構えのポーズを撮影する旨のメッセージが表示され、このメッセージの下方にボタン操作の説明が表示される。
右画面264には、表示領域264a、264b、264cが設けられるとともに、ボタン画像264dが設けられる。これらについては、上述したパンチのポーズ撮影画面200と同様であるため、重複した説明は省略する。ただし、既に撮影および保存された撮影画像(パンチのポーズ画像)についての縮小画像が左上の表示領域264cに表示される。また、今回撮影および保存される撮影画像(構えのポーズ画像)についての縮小画像が表示される表示領域264cに、太線で示す四角枠のカーソル2640が表示される。
図示は省略するが、構えのポーズの撮影処理が実行されると、図6に示したようなポーズ画像確認画面が第1LCD16および第2LCD18に表示され、撮影画像を保存するか、撮影し直すかが選択される。撮影し直す場合には、今回の撮影画像に対応する画像データが消去され、図8に示した構えのポーズ撮影画面260に戻る。一方、撮影画像を保存する場合には、撮影画像に基づくポーズ画像の生成および保存が実行され、図7に示したような撮影成功画面が第1LCD16および第2LCD18に表示される。このとき、今回の撮影画像に基づくポーズ画像(構えのポーズ画像)の縮小画像がカーソル2640で指示する表示領域264cに表示される。
構えのポーズの撮影に成功すると、次のポーズ(この実施例では、キックのポーズ)の撮影に移行する。具体的には、図9に示すキックのポーズ撮影画面280が第1LCD16および第2LCD18に表示される。このキックのポーズ撮影画面280では、左画面282が第1LCD16に表示され、右画面284が第2LCD18に表示される。
左画面282には、キックのポーズを撮影するためのガイド画像282aが表示され、このガイド画像282aにはキックのポーズの形状にくり抜いたくり抜き部2820が形成される。上述したように、このくり抜き部2820を通して、カメラ(ここでは、外側カメラ34)で撮影されたスルー画像が見える。また、ガイド画像282aには、くり抜き部2820の上方に、キックのポーズを撮影する旨のメッセージが表示され、このメッセージの下方にボタン操作の説明が表示される。
右画面284には、表示領域284a,284b,284cが設けられるとともに、ボタン画像284dが設けられる。これらについては、上述したパンチのポーズ撮影画面200と同様であるため、重複した説明は省略する。ただし、既に撮影および保存されたパンチのポーズ画像の縮小画像が左上の表示領域284cに表示される。同様に、既に撮影および保存された構えのポーズ画像についての縮小画像が左上の表示領域284cの右隣りの表示領域284cに表示される。また、今回撮影および保存されるポーズ画像(キックのポーズ画像)についての縮小画像が表示される表示領域284cに対応して、太線で示す四角枠のカーソル2840が表示される。
図示は省略するが、キックのポーズの撮影処理が実行されると、図6に示したようなポーズ画像確認画面が第1LCD16および第2LCD18に表示され、撮影画像を保存するか、撮影し直すかが選択される。撮影し直す場合には、今回の撮影画像に対応する画像データが消去され、図9に示したキックのポーズ撮影画面280に戻る。一方、撮影画像を保存する場合には、撮影画像に基づくポーズ画像の生成および保存が実行され、図7に示したような撮影成功画面が第1LCD16および第2LCD18に表示される。このとき、今回の撮影画像に基づくポーズ画像(キックのポーズ画像)の縮小画像がカーソル2840で指示された表示領域284cに表示される。
なお、詳細な説明は省略するが、他のポーズ、たとえば「攻撃されたときのポーズ」、「必殺技を出すポーズ」、「しゃがみのポーズ」および「ジャンプのポーズ」の撮影処理が順次実行される。このとき、それぞれのポーズに応じたくり抜き部を有するガイド画像を含む撮影画面が第1LCD16および第2LCD18に表示される。
上述したように、手や足などの位置が予め定められたポーズ(この実施例では、パンチのポーズ、構えのポーズ、キックのポーズ、歩きのポーズ、攻撃を受けたときのポーズ、必殺技のポーズ、しゃがみのポーズ、ジャンプのポーズ)の撮影を終えると、手や足などの位置が特に定められていないポーズの撮影処理が順次実行される。この実施例では、「決めのポーズ」と「喜びのポーズ」とが撮影される。図10には、決めのポーズ撮影画面300が示される。たとえば、ジャンプのポーズの撮影に成功すると、決めのポーズ撮影画面300が第1LCD16および第2LCD18に表示される。この決めのポーズ撮影画面300では、左画面302が第1LCD16に表示され、右画面304が第2LCD18に表示される。
左画面302には、決めのポーズを撮影するためのガイド画像302aが表示され、ガイド画像302aには、四角形の角が曲線にされたくり抜き部3020が設けられる。図示は省略するが、このくり抜き部3020を通して、カメラ(ここでは、外側カメラ34)によって撮影されたスルー画像が見える。また、ガイド画像302aでは、くり抜き部3020の上方に決めポーズを撮影する旨のメッセージおよびボタン操作の説明が表示される。
右画面304には、表示領域304a,304b,304cが設けられるとともに、ボタン画像304dが設けられる。これらについては、図5(A)に示したパンチのポーズ撮影画面200と同様であるため、重複した説明は省略する。ただし、既に撮影および保存された各種のポーズ画像の縮小画像が左上の表示領域304cから中段の右端の表示領域304cまで表示される。ただし、簡単のため、一部の縮小画像については“…”を表示することにより、図示を省略してある。以下、同様である。また、今回撮影および保存されるポーズ画像(決めのポーズ画像)についての縮小画像が表示される表示領域304cに、太線で示される四角枠のカーソル3040が表示される。
図示および詳細な説明は省略するが、決めのポーズの撮影に成功すると、この決めのポーズの撮影画面300と同様の撮影画面が表示され、喜びのポーズの撮影処理が実行される。
すべてのポーズ(この実施例では、10個のポーズ)についての撮影を終えると、次に顔画像の撮影処理が実行される。この実施例では、「決め顔」と「悲しい顔」との撮影処理が順次行われる。
図11には、決め顔撮影画面320が示される。たとえば、喜びのポーズの撮影に成功すると、決め顔撮影画面320が第1LCD16および第2LCD18に表示される。この決め顔撮影画面320では、左画面322が第1LCD16に表示され、右画面324が第2LCD18に表示される。
左画面322には、決め顔を撮影するためのガイド画像322aが表示され、ガイド画像322aには、顔画像を撮影するための四角形のくり抜き部3220が設けられる。図14に示す決め顔撮影画面320では、くり抜き部3220を通して、カメラ(ここでは、外側カメラ34)によって撮影されたスルー画像が見える。また、ガイド画像322aには、くり抜き部3220の上方に、決め顔を撮影する旨のメッセージおよびボタン操作の説明が表示される。
右画面324には、表示領域324a,324b,324cが設けられるとともに、ボタン画像324dが設けられる。これらについては、図5(A)に示したパンチのポーズ撮影画面200と同様であるため、重複した説明は省略する。また、今回撮影および保存される決め顔の画像についての縮小画像が表示される表示領域324aに、太線で示される四角枠のカーソル3240が表示される。
なお、決め顔の画像(悲しい顔の画像も同じ)は、戦闘ゲームや対戦ゲームにおけるキャラクタの動作を表現する場合には使用しないため、くり抜き部3220に相当する範囲で撮影画像がトリミングされ、縦96ドット×横128ドットになるように間引き処理が施される。これによって、撮影画像に基づく顔画像の画像データが保存される。
図示および詳細な説明は省略するが、決め顔の撮影に成功すると、この決め顔の撮影画面320と同様の撮影画面が表示され、悲しい顔の撮影処理が実行される。同様に、図示および詳細な説明は省略するが、その後、決め顔の撮影画面320と同様の撮影画面が表示され、たとえば、戦闘ゲームや対戦ゲームにおいて、飛び道具として使用される物の撮影処理が実行される。
なお、図示および詳細な説明は省略するが、物の撮影処理では、縦128ドット×横128ドットよりも小さい範囲(円で規定する範囲)に収まるように、くり抜き部が設定されたガイド画像が表示されるため、その範囲(円)の形状に撮影画像がトリミングされ、対応する画像データが保存される。
また、この実施例では、キャラクタを作成する場合の撮影処理では、パンチのポーズ、構えのポーズ、キックのポーズ、歩きのポーズ、攻撃を受けたときのポーズ、必殺技のポーズ、しゃがみのポーズ、ジャンプのポーズ、決め(挑発)のポーズ、喜びのポーズ、決め顔、悲しい顔および物がこの順番に従って撮影される。
飛び道具として使用される物の撮影に成功すると、新しいキャラクタの作成処理のうちの画像の撮影処理が終了され、音声の録音処理を開始する。
音声の録音処理では、たとえば、図12に示すパンチの声録音画面400が第1LCD16および第2LCD18に表示される。パンチの声録音画面400では、左画面402が第1LCD16に表示され、右画面404が第2LCD18に表示される。左画面402には、パンチを打つときの音声を録音するためのガイド画像402aが表示される。ガイド画像402aには、そのほぼ中央にくり抜き部4820が設けられ、このくり抜き部4020には、パンチのポーズ画像が表示される。ただし、ガイド画像402aは、パンチのポーズを撮影する際に第1LCD16に表示されたものとほぼ同様である。このガイド画像402aでは、くり抜き部4020の上方にパンチを打つときの音声を録音する旨のメッセージが表示され、くり抜き部4020の下方に、録音時間や再生時間を表示するための表示領域4022が設けられる。
なお、パンチの声録音画面400では、それに対応するポーズ画像をくり抜き部4020に表示するようにしてあるが、メッセージのみを表示するようにしてもよい。図示等は省略するが、他の音声を録音する場合の録音画面についても同様である。
右画面404には、決め顔の撮影画像についての縮小画像を表示するための表示領域404aが設けられる。図示等は省略したが、この決め顔に対応する挨拶の声についての録音処理が既に実行されており、そのことを示す吹き出し画像(バルーン)のような指示画像4042が表示領域404aの右肩に表示される。他の音声についての録音処理が実行(終了)された場合も同様である。たとえば、指示画像4042は、吹き出し画像であるが、これに限定される必要はなく、他の画像を表示してもよい。また、指示画像4042に代えて、録音済みを示す旨のメッセージを縮小画像の前面に表示してもよい。以下、同様である。
表示領域404aの左側には、作成中のキャラクタの名称および称号を表示するための表示領域404bが設けられる。また、表示領域404aおよび表示領域404bの下方には、録音する音声に対応するポーズ画像や顔画像についての縮小画像を表示するための9つの表示領域404cが格子状に並んで設けられる。さらに、表示領域404cの下方には、ボタン画像404dが設けられる。ボタン画像404dがオンされると、パンチを打つときに発する声の録音が開始される。図12からも分かるように、今回録音する音声に対応する画像(ここでは、パンチの画像)についての縮小画像が左上の表示領域404cに表示される。また、この左上の表示領域404cには、太線で示される四角枠のカーソル4040が表示される。
図示は省略するが、ボタン画像(ここでは、404d)がオンされることにより、録音が開始されると、録音中画面(図示せず)が第1LCD16および第2LCD18に表示され、1つの画像(ここでは、パンチの画像)に対応して一定時間(たとえば、2秒)の音声(ここでは、パンチを打つときに発する声)を録音することができる。録音時間は、たとえば、表示領域(表示領域4022と同様の表示領域)に表示されるバーで表現される。たとえば、バーは、時間の経過に従って延びる。
また、録音が開始されると、マイク84を通して入力される音声に対応する音声信号がI/F回路74で音声データに変換された後、CPU50に与えられ、CPU50は音声データをメインメモリ52のバッファ領域に記憶する。
さらに、録音が終了されると、一定時間(たとえば、2秒)が経過した後に、今回録音された音声(パンチを打つときに発する声)が再生される。つまり、CPU50は、今回メインメモリ52に記憶した音声データを読み出し、I/F回路72でアナログの音声信号に変換し、アンプ86で増幅してスピーカから出力する。したがって、プレイヤは、今回録音した音声を確認することができる。図示は省略するが、このとき、音声の再生中画面が第1LCD16および第2LCD18に表示される。
そして、録音した音声の再生が終了されると、図示しない録音確認画面が第1LCD16および第2LCD18に表示される。この録音確認画面では、プレイヤによって、録音した音声を保存するか、録音をやり直すか、録音した音声をもう一度聞くかが選択される。たとえば、録音した音声を保存する場合には、今回録音した音声に対応する音声データが録音した順番に従って保存される。その後、録音成功画面(図示せず)が第1LCD16および第2LCD18に表示される。録音成功画面では、左画面が第1LCD16に表示され、右画面が第2LCD18に表示される。左画面には、今回録音した音声に対応するポーズ画像や顔画像などが表示される。右画面は、図12に示した右画面404とほぼ同様である。ただし、今回の録音した音声に対応するポーズ画像や顔画像の縮小画像が表示される表示領域の右肩にバルーンが表示されるのである。また、録音をやり直す場合には、今回録音した音声に対応する音声データが消去され、図12に示したパンチの声録音画面400に戻る。さらに、録音した音声をもう一度聞く場合には、今回録音した音声の再生が再度開始され、上述した再生中画面(図示せず)に戻る。
パンチを打つときに発する声の録音を終了すると、次の音声(他のポーズ画像や顔画像に対応する音声)の録音処理に移行する。詳細な説明および図示は省略するが、他のポーズ画像や顔画像などに対応する音声を録音する場合についても、パンチを打つときに発する声についての録音処理と同様である。たとえば、キックするときの声、攻撃を受けたときの声、必殺技を出すときの声(叫び声)、ジャンプするときの声、すごく疲れて動けないとき(悲しいとき)の声、勝利の雄叫び(喜び)の声、挑発するとき(決めポーズのとき)の声が録音される。ただし、撮影画像に基づくポーズ画像や顔画像に対応する音声を録音する必要はなく、そのような画像に関係ない音声(この実施例では、友達を応援する一言の声)を録音するようにしてもよい。
詳細な説明な説明は省略するが、写真を撮影する場合と同様に、予め決められた順番で、ポーズ画像や顔画像を含むガイド画像が表示され、したがって、対応する音声が予め決められた順番で録音される。この実施例では、決め顔の画像に対応して挨拶の声が録音され、パンチのポーズ画像に対応してパンチを打つときの声が録音され、キックのポーズ画像に対応してキックするときの声が録音され、攻撃を受けたときのポーズ画像に対応して攻撃を受けたときの声が録音され、必殺技を出すポーズ画像に対応して必殺技をだすときの声が録音され、ジャンプのポーズ画像に対応してジャンプするときの声が録音され、悲しい顔の画像に対応して悲しいときの声が録音され、喜びのポーズ画像に対応して勝利の雄叫びの声が録音され、決めポーズ画像に対応して挑発するときの声が録音され、そして画像に関係なく友達を応援する一言の声が録音される。たとえば、録音は、上述した順番で実行される。
すべての音声の録音処理が終了されると、録音終了画面(図示せず)が第1LCD16および第2LCD18に表示され、今回作成されたキャラクタのデータ(キャラクタデータ:画像データ、音声データ、属性データを含む)が保存され、キャラクタの作成処理が終了される。
次に、戦闘ゲームや対戦ゲームで使用するステージの背景(ステージ背景)の撮影処理に移行される。
ステージ背景の撮影処理が開始されると、図13に示す背景撮影画面500が第1LCD16および第2LCD18に表示される。このとき、外側カメラ34が起動される。つまり、内側カメラ32が起動されている場合には、外側カメラ34に切り替えられる。背景撮影画面500では、左画面502が第1LCD16に表示され、右画面504が第2LCD18に表示される。
左画面502には、ステージ背景を撮影するためのガイド画像502aが表示される。ガイド画像502aには、そのほぼ中央に、四角形のくり抜き部5020が設けられ、そのくり抜き部5020には、ステージにおける地面の位置を示す点線(ガイド線)5022が表示される。また、図示は省略するが、この背景撮影画面500では、撮影ボタン(Aボタン20bまたはボタン画像504c)がオンされるまでは、外側カメラ34で撮影されたスルー画像がガイド画像502aの背面側に表示される。したがって、くり抜き部5020を通して、外側カメラ34で撮影されたスルー画像が見える。さらに、ガイド画像502aでは、くり抜き部5020の上方に、ステージ背景を撮影する旨のメッセージおよびボタン操作の説明が表示される。ここでは、ボタン操作の説明としては、Aボタン20aをオンすると、撮影処理が実行される旨が表示される。
右画面504には、背景についての撮影画像の縮小画像(サムネイル画像)を表示するための表示領域504aが表示される。この実施例では、複数の(8個)の表示領域504aが設けられる。また、今回の撮影画像の縮小画像が表示される表示領域504aには、太線で示される四角枠のカーソル5040が表示される。表示領域504aの下方には、ボタン画像504bおよびボタン画像504cが表示される。ボタン画像504bがオンされると、背景の撮影処理を終了する。ボタン画像504cがオンされると、撮影処理が実行される。つまり、ボタン画像504cは、シャッターボタンとして機能する。
背景撮影画面500において、ボタン画像504cがオンされると、撮影処理が実行され、そのときの静止画像(撮影画像)が取得され、図14に示す背景画像確認画面520が第1LCD16および第2LCD18に表示される。背景画像確認画面520では、左画面522が第1LCD16に表示され、右画面524が第2LCD18に表示される。
左画面522には、ステージ背景を保存するかどうかを確認するためのガイド画像522aが表示される。このガイド画像522aでは、そのほぼ中央に、四角形のくり抜き部5220が設けられ、ガイド画像522aの背面側には、今回撮影した撮影画像表示される。したがって、くり抜き部5220を通して、撮影画像が見える。また、くり抜き部5220には、撮影画像の前面に、ガイド線5222が表示される。さらに、ガイド画像522aでは、くり抜き部5220の上方に、今回の撮影画像をステージ背景として保存するかどうかを選択する旨のメッセージが表示される。
右画面524には、そのほぼ中央にボタン画像524aおよびボタン画像524bが縦に並んで設けられる。また、右画面524には、ボタン画像524a,524bの背面側に、図13に示した背景撮影画面500の右画面504が表示され、ボタン画像524a,524bと右画面504との間に、半透明のマスク画像が表示される。ボタン画像524aがオンされると、今回の撮影画像に対応する画像データがステージ背景として保存される。ボタン画像524bがオンされると、撮影し直すため、今回の撮影画像に対応する画像データが消去され、図13に示した背景撮影画面500に戻る。
背景画像確認画面520でボタン画像524aがオンされると、今回の撮影画像がくり抜き部5220に相当する大きさでトリミングされ、トリミングされた撮影画像に対応する画像データがメインメモリ52に保存される。そして、図15に示す保存終了画面540が第1LCD16および第2LCD18に表示される。保存終了画面540では、左画面542が第1LCD16に表示され、右画面544が第2LCD18に表示される。
左画面542には、ステージ背景として撮影画像を保存したことを通知するためのガイド画像542aが表示される。ガイド画像542aでは、そのほぼ中央に、四角形のくり抜き部5420が設けられ、このくり抜き部5420には今回保存された撮影画像が表示される。また、くり抜き部5420には、撮影画像の前面に、ガイド線5422が表示される。さらに、ガイド画像542aでは、くり抜き部5420の上方に、撮影画像の保存を終了した旨のメッセージが表示される。
右画面544には、撮影画像の縮小画像(サムネイル画像)を表示するための複数の(8個の)表示領域544aが表示される。また、右画面544では、保存された撮影画像の縮小画像が太線で示されるカーソル5440で指示された表示領域544aに表示される。
以上のように作成したキャラクタとステージの背景画像を用いて、1人用ゲーム(戦闘ゲーム)または2人用ゲーム(対戦ゲーム)を行うことになる。
まず、1人用ゲームについて説明する。
1人用ゲームを開始すると、図16に示すキャラクタ選択画面(1人用)700が第1LCD16および第2LCD18に表示される。キャラクタ選択画面700では、上画面702が第1LCD16に表示され、下画面704が第2LCD18に表示される。
上画面702には、表示領域702aおよび表示領域702bが縦に隣接して設けられる。表示領域702aには、後述する下画面704で指示されているキャラクタについての決め顔の画像が表示される。また、表示領域702bには、下画面704で指示されているキャラクタについての称号および名称が表示される。
下画面704には、複数(この実施例では、8個)の表示領域704aが設けられる。また、下画面704の左下端部には、ボタン画像704bが設けられる。さらに、表示領域704aの上方には、キャラクタを選択する旨のメッセージが表示される。また、現在指示されているキャラクタの決め顔の画像についての縮小画像が表示される表示領域704aには、太線で示される四角枠のカーソル7040が表示される。このカーソル7040は、十字キー20aの操作によって移動可能である。ただし、キャラクタの決め顔の画像についての縮小画像が表示されていない表示領域704aにはカーソル7040は移動されない。図示は省略するが、カーソル7040が移動されると、指示される縮小画像が変化し、これに合わせて、上画面702に表示される顔画像、名称および称号も変化される。所望のキャラクタの縮小画像がカーソル7040で指示された状態で、決定ボタン(Aボタン20b)がオンされると、選択された縮小画像についてのキャラクタがプレイヤキャラクタとして決定(選択)される。または、直接所望のキャラクタの縮小画像がタッチペン24でタッチ(オン)されると、タッチされた縮小画像についてのキャラクタがプレイヤキャラクタとして決定される。ただし、ボタン画像704bがオンされると、たとえば1人用ゲームと2人用ゲームのいずれかを選択するためのゲームメニュー画面に戻る。
キャラクタ選択画面700において、プレイヤキャラクタが決定されると、図17に示すステージ選択画面(1人用)720が第1LCD16および第2LCD18に表示される。ステージ選択画面720では、上画面722が第1LCD16に表示され、下画面724が第2LCD18に表示される。
上画面722には、後述する下画面724で指示されているステージ背景の撮影画像が表示される。下画面724には、ステージ背景の撮影画像の縮小画像および予め作成されたステージ背景(サンプル)についての縮小画像を表示する複数(この実施例では、12個)の表示領域724aが設けられる。たとえば、サンプルのステージ背景の画像は、この仮想ゲームの開発者等によって作成される。
また、下画面724の下端部には、ボタン画像724bおよびボタン画像724cが設けられる。さらに、表示領域724aの上方には、ステージ背景を選択する旨のメッセージが表示される。また、選択中の縮小画像が表示される表示領域724aには、太線で示される四角枠のカーソル7240が表示される。カーソル7240は、十字キー20aの操作によって移動可能である。ただし、縮小画像が表示されていない表示領域724aにはカーソル7240は移動されない。ステージ背景の決定方法は、上述したキャラクタの決定方法と同じであるため、重複した説明は省略する。
ただし、ボタン画像724bがオンされると、図16に示したキャラクタ選択画面700に戻る。また、ボタン画像724cがオンされると、一時的に使用するステージ背景についての撮影処理が実行される。この一時的に使用するステージ背景の撮影処理は、上述した新しいキャラクタの作成処理におけるステージ背景の撮影処理とほぼ同じであるため、重複した説明は省略する。一時的に使用するステージ背景についての撮影画像に対応する画像データは、たとえば、戦闘ゲームを終了したときに消去される。ただし、一時的に使用するステージ背景についての撮影画像に対応する画像データを保存(記憶)するようにしてもよい。
ステージ背景が決定されると、図18に示す戦闘画面(1人用)740が第1LCD16および第2LCD18に表示される。戦闘画面740では、上画面742が第1LCD16に表示され、下画面744が第2LCD18に表示される。上画面742には、その中央に、プレイヤキャラクタ742aおよび敵キャラクタ742bが表示される。ただし、プレイヤキャラクタ742aの画像は、キャラクタ作成処理において保存された複数のポーズ画像を用いて表示される。敵キャラクタ742bは、この仮想ゲームの開発者等によって予め作成された画像を用いて表示される。ただし、複数のキャラクタが作成されている場合には、プレイヤキャラクタ742aとして選択されていないキャラクタを敵キャラクタ742bとして使用することもできる。かかる場合には、敵キャラクタ742bとしてのキャラクタについて保存された複数のポーズ画像を用いて、当該敵キャラクタ742bが表示される。また、戦闘画面740が表示された当初では、プレイヤキャラクタ742aおよび敵キャラクタ742bは、構えのポーズ画像を用いて表示される。さらに、上画面742には、その左上端部に、プレイヤキャラクタ742aの顔画像を表示するための表示領域742cが設けられ、この表示領域742cの右側にプレイヤキャラクタ742aの体力値を表示するための表示領域742dが設けられる。さらにまた、上画面742には、その右上端部に、ボタン操作の説明を表示するための表示領域742eが設けられる。
また、図示していないが、上画面742には、図17に示すステージ選択画面(1人用)720で選択したステージ背景が表示される。なお、1人用ゲームでは、プレイヤキャラクタ742aが上画面742の右方向に移動していくことによりゲームが進行するようになっている。したがって、プレイヤキャラクタ742aが上画面742の右方向に移動していることをプレイヤに認識させるためにステージ背景がスクロールするようにしなければならない。このとき、ステージ背景の画像を上画面742の右から左へ移動するように表示するため、たとえば、ステージ背景の画像を横方向に並べた画像を順次表示するようにしてもよいし、ステージ背景の画像と当該画像を左右反転させた画像とを順次表示するようにしてもよい。
下画面には、そのほぼ中央に、ボタン画像744aおよびボタン画像744bが設けられ、その左下端部に、ボタン画像744cが設けられる。ボタン画像744aがオンされると、プレイヤキャラクタ742aは敵キャラクタ742bを挑発する。また、ボタン画像744bがオンされると、プレイヤキャラクタ742aは超必殺技を出す。ただし、ボタン画像744bは常にオンできる状態ではなく、所定の条件を満たす場合にのみオンできる状態となる。たとえば、所定の条件とは、プレイヤキャラクタ742a(または敵キャラクタ742b)の体力値が一定値未満になったことや所定回数以上連続して攻撃に成功したことなどが該当する。ボタン画像744cがオンされると、1人用ゲームが終了され、ゲームメニュー画面に戻る。
1人用ゲームでは、プレイヤは、十字キー20aを用いて、プレイヤキャラクタ742aの移動等を制御し、Aボタン20bを用いて、プレイヤキャラクタ742aに攻撃させる。たとえば、プレイヤが十字キー20aの左方向ボタンまたは右方向ボタンを押すと、プレイヤキャラクタ742aは、左方向に移動(後退)したり、右方向に移動(前進)したりする。また、プレイヤが十字キー20aの上方向ボタンを押すと、プレイヤキャラクタ742aは、ジャンプする。さらに、プレイヤが十字キー20bの下方向ボタンを押すと、プレイヤキャラクタ742aは、しゃがむ。また、プレイヤがAボタン20bを押すと、プレイヤキャラクタ742aは、表示領域742eに表示された内容の攻撃を実行する。図18に示す例では、Aボタン20bがオンされると、プレイヤキャラクタ742aはパンチする。ただし、表示領域742eに「キック」が表示されている場合には、Aボタン20bがオンされると、プレイヤキャラクタ742aはキックする。詳細な説明は省略するが、表示領域742eに表示される内容は戦闘ゲーム中に変化され、したがって、Aボタン20bがオンされるタイミングでプレイヤキャラクタ742aが出す技が変化する。また、プレイヤが十字キー20aとAボタン20bとを同時にまたはほぼ同時に押すと、プレイヤキャラクタ742aは必殺技を出す。
このように、プレイヤキャラクタ742aは操作され、それぞれの動作を実行する際には、上述したように、当該プレイヤキャラクタ742aとして選択されたキャラクタについての各ポーズ画像を用いて当該プレイヤキャラクタ742aが表示される。
この実施例では、プレイヤの操作に応じたプレイヤキャラクタ742aの動作(モーション)についてのデータ(モーションデータ)が記憶されている。モーションデータは、フレーム数に対応して、使用する画像データのインデックス番号および使用する音声データのインデックス番号が記載される。ただし、音声を出力しない場合には、画像データのみが記載される。また、後述するように、モーションデータには、当り判定のための当り判定領域のインデックス番号も記載される。つまり、モーションデータに記載されたフレーム数は、画像データの更新、音声データの再生および当り判定処理のタイミングを示す。
たとえば、パンチの動作(一連の動作)では、キャラクタ(742a,742bなど)は、構えのポーズからパンチのポーズに変化し、その後、構えのポーズに変化する(戻る)。具体的には、パンチの動作を16フレーム(約1秒)で表現すると仮定すると、1フレーム目に、構えのポーズ画像が表示され、8フレーム目に、パンチのポーズ画像が表示され、16フレーム目に、構えのポーズ画像が表示される。ただし、1フレーム目、8フレーム目および16フレーム目でポーズ画像が更新されるため、一旦ポーズ画像が更新された後は、次にポーズ画像が更新されるまで、同じポーズ画像が表示される。したがって、上記のパンチの動作では、1フレーム目から7フレーム目まで、構えのポーズ画像が表示され、8フレーム目から15フレーム目まで、パンチのポーズ画像が表示され、16フレーム目から次の動作の指示があるまで、構えのポーズの画像が表示される。
また、パンチの動作では、たとえば、8フレーム目(パンチのポーズ画像のインデックス番号)に対応して、パンチを打つときの声のインデックス番号が記載されており、パンチの動作が開始されてから、8フレーム目に、パンチを打つときの声が出力(再生)される。
さらに、パンチのポーズ画像が表示されている場合には(ここでは、8フレーム目から15フレーム目まで)、プレイヤキャラクタ742aの攻撃による当り判定処理を実行するために、8フレーム目(当該パンチのポーズ画像のインデックス番号)に対応して記憶されている当り判定領域のインデックス番号が示す当り判定領域がプレイヤキャラクタ742aのポーズ画像に対応して設定され、設定された当り判定領域に基づいてパンチが敵キャラクタ742bに当ったか否かが判定される。このとき、敵キャラクタ742bにも、コンピュータ50によって実行される動作に対応するモーションデータに従う当り判定領域が設定される。
一方、敵キャラクタ742bからの攻撃がある場合には、そのときのフレーム数(ポーズ画像のインデックス番号)に対応して記憶されている当り判定領域のインデックス番号が示す当り判定領域がプレイヤキャラクタ742aのポーズ画像に対応して設定され、設定された当り判定領域に基づいて敵キャラクタ742bの攻撃がプレイヤキャラクタ742aに当ったか否かが判定される。上述した場合と同様に、敵キャラクタ742bにも、コンピュータ50によって実行される動作に対応するモーションデータに従う当り判定領域が設定される。
詳細な説明は省略するが、他の動作についても同様に、モーションデータが予め用意されており、当該モーションデータに従って、プレイヤキャラクタ742aの動作(ポーズ画像の表示)、音声出力および当り判定が実行される。したがって、臨場感の有る格闘シーンが表現される。
この1人用ゲームでは、プレイヤキャラクタ742aが所定数の敵キャラクタ742bを倒すと、ゲームクリアとなる。ただし、プレイヤキャラクタ742aが所定数の敵キャラクタ742bを倒す前に、プレイヤキャラクタ742aの体力値が0以下になると、ゲームオーバとなる。ゲーム中では、プレイヤキャラクタ742aが敵キャラクタ742bを攻撃すると、上述したように、その当り判定処理が実行され、プレイヤキャラクタ742aの攻撃が敵キャラクタ742bに当ると、敵キャラクタ742bの体力値が減算される。たとえば、攻撃の種類に応じて、減算される体力値の大きさは異なる。一方、敵キャラクタ742bがプレイヤキャラクタ742aを攻撃すると、上述したように、その当り判定処理が実行され、敵キャラクタ742bの攻撃がプレイヤキャラクタ742aに当ると、プレイヤキャラクタ742aの体力値が減算される。かかる場合にも、たとえば、攻撃の種類に応じて、減算される体力値の大きさは異なる。ゲームクリアまたはゲームオーバになると、ゲームメニュー画面に戻る。
次に、2人用ゲームについて説明する。
2人用ゲームが開始されると、図19に示す操作説明画面760が第1LCD16および第2LCD18に表示される。操作説明画面760では、上画面762が第1LCD16に表示され、下画面764が第2LCD18に表示される。上画面762には、第1プレイヤ(1P)が左手でゲーム装置10の左側を持ち、第2プレイヤ(2P)が右手でゲーム装置10の右側を持つ旨のメッセージおよび各プレイヤが使用する操作ボタン(20a−20e,20i,20j)についての説明が表示される。ただし、上記のメッセージの表示に代えて、2人のプレイヤがゲーム装置10を持つ様子の図を表示するようにしてもよい。
下画面764には、1Pが使用する操作ボタン(20a,20i)についての画像764aおよび2Pが使用する操作ボタン(20b,20c,20d、20e,20j)についての画像764bが表示される。つまり、2人用ゲームでは、1Pは十字キー20aを方向指示ボタンとして使用し、Lボタン20iを攻撃ボタンとして使用する。一方、2PはAボタン20b,Bボタン20c,Xボタン20eおよびYボタン20dを方向指示ボタンとして使用し、Rボタン20jを攻撃ボタンとして使用する。ただし、2Pが使用するAボタン20bは下方向ボタンであり、Bボタン20cが右方向ボタンであり、Xボタン20eが左方向ボタンであり、そして、Yボタン20dが上方向ボタンである。また、下画面764の左下端部には、ボタン画像764cが設けられる。ボタン画像764cがオンされると、ゲームメニュー画面に戻る。
たとえば、操作説明画面760の下画面764のボタン画像764c以外の領域がタッチされたり、Aボタン20bがオンされたりすると、プレイヤ(1P,2P)が上画面762に表示されるメッセージおよび操作説明を読んだと判断して、図示しないキャラクタ選択画面(2人用)が第1LCD16および第2LCD18に表示される。詳細な説明は省略するが、2人用ゲームでは、図16に示したようなキャラクタ選択画面(1人用)700と同様のキャラクタ選択画面(2人用)が表示され、1Pのプレイヤキャラクタおよび2Pのプレイヤキャラクタが順番に選択される。
1Pおよび2Pのプレイヤキャラクタが選択(決定)されると、図示しないステージ選択画面(2人用)が第1LCD16および第2LCD18に表示される。なお、ステージ選択画面(2人用)は、図17に示したステージ選択画面(1人用)720とほぼ同じである。
ステージ背景が選択されると、図20に示す対戦画面800が第1LCD16および第2LCD18に表示される。対戦画面800では、上画面802が第1LCD16に表示され、下画面804が第2LCD18に表示される。上画面802には、そのほぼ中央に、1Pのプレイヤキャラクタ802aが表示されるとともに、2Pのプレイヤキャラクタ802bが表示される。ただし、対戦画面800が表示された当初では、1Pのプレイヤキャラクタ802aおよび2Pのプレイヤキャラクタ802bは、構えのポーズ画像を用いて表示される。また、上画面802には、その上端部に表示領域802c、表示領域802dおよび表示領域802eが設けられる。表示領域802cには、対戦の残り時間が表示される。表示領域802dには、1Pのプレイヤキャラクタ802aの体力値がバーで表示される。表示領域802eには、2Pのプレイヤキャラクタ802bの体力値がバーで表示される。また、上画面802の下端部には、表示領域802fおよび表示領域802gが設けられる。表示領域802fには、攻撃ボタン(Lボタン20i)をオンすることによって、1Pのプレイヤキャラクタ802aが行う攻撃の内容が表示される。表示領域802gには、攻撃ボタン(Rボタン20j)をオンすることによって、2Pのプレイヤキャラクタ802bが行う攻撃の内容が表示される。
下画面804には、その左側にボタン画像804aおよびボタン画像804bが設けられ、その右側にボタン画像804cおよびボタン画像804dが設けられる。また、下画面804には、その左下端部に、ボタン画像804eが設けられる。ボタン画像804aおよびボタン画像804bは、1Pによって使用され、ボタン画像804cおよびボタン画像804dは、2Pによって使用される。ボタン画像804aがオンされると、1Pのプレイヤキャラクタ802aが2Pのプレイヤキャラクタ802bを挑発する。ボタン画像804bがオンされると、1Pのプレイヤキャラクタ802aが超必殺技を出す。また、ボタン画像804cがオンされると、2Pのプレイヤキャラクタ802bが1Pのプレイヤキャラクタ802aを挑発する。ボタン画像804dがオンされると、2Pのプレイヤキャラクタ802bが超必殺技を出す。挑発したり必殺技を出したりする処理は、1人用ゲームの場合と同じである。また、ボタン画像804eがオンされると、ゲームメニュー画面に戻る。
以下、2人用ゲームについて説明するが、1人用ゲームでは、コンピュータ(CPU50)が敵キャラクタ742bを制御したのに対し、2人用ゲームでは、敵キャラクタ742bに相当するプレイヤキャラクタ802bを2Pが操作(制御)するようにしただけであるため、重複する内容については省略したり、簡単に説明したりすることにする。
上述したように、2人用ゲームでは、1Pが十字キー20aとLボタン20iを使用し、2PがAボタン20b,Bボタン20c,Xボタン20e,Yボタン20dおよびRボタン20jを使用する。したがって、1Pは、攻撃ボタンとしてLボタン20iを用いる以外は、1人用ゲームの場合と同じである。また、2Pは、方向指示ボタンとして、Aボタン20b,Bボタン20c,Xボタン20eおよびYボタン20dを使用し、攻撃ボタンとしてRボタン20jを使用する。2Pのプレイヤキャラクタ802bでは、その向きが左向きである以外は、1Pと同様であり、操作方法も同様である。つまり、2Pのプレイヤキャラクタ802bでは、左に移動することが前進であり、右に移動することが後退である。
また、ゲーム中では、1人用ゲームの場合と同様に、プレイヤキャラクタ802a,802bの動作に応じたモーションデータに従ってそれぞれのポーズ画像が表示される。このとき、各プレイヤキャラクタ802a,802bについてのポーズ画像の画像データが用いられる。また、必要に応じて、ポーズ画像が更新されるときに、ポーズ画像に対応する音声も出力される。さらに、1Pのプレイヤキャラクタ802aが攻撃した場合には、その攻撃についての当り判定処理が実行され、2Pのプレイヤキャラクタ802bが攻撃した場合には、その攻撃についての当り判定処理が実行される。攻撃が当った場合には、攻撃を受けた側のプレイヤキャラクタ802a,802bの体力値が減算される。たとえば、攻撃の種類に応じて、減算される体力値の大きさは異なる。ただし、1人用ゲームの場合と同様に、ポーズ画像の表示、音声の出力および当り判定処理は、モーションデータに従って実行される。
この2人用ゲームでは、残り時間が無くなったり、いずれか一方のプレイヤキャラクタ802a,802bの体力値が0以下になったりすると、ゲームオーバとなる。ゲームオーバになると、図示しない対戦結果画面が第1LCD16および第2LCD18に表示される。たとえば、対戦結果画面では、対戦の勝敗などが表示される。
図21は、図3に示したメインメモリ52のメモリマップの例を示す図解図である。図21に示すように、メインメモリ52は、プログラム記憶領域90およびデータ記憶領域92を含む。プログラム記憶領域90には、この実施例の仮想ゲームのゲームプログラムが記憶され、ゲームプログラムは、メイン処理プログラム90a、画像生成プログラム90b、画像表示プログラム90c、音出力プログラム90d、キャラクタ作成プログラム90e、背景撮影プログラム90f、編集プログラム90g、1人用ゲームプログラム90hおよび2人用ゲームプログラム90iなどによって構成される。
メイン処理プログラム90aは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム90bは、後述する画像データ(92d、92e,92f,920bなど)を用いて、ゲーム画像を生成するためのプログラムである。画像表示プログラム90cは、画像生成プログラム90bに従って生成されたゲーム画像を、ゲーム画面(200,220,240,260,280,300,320,400,500,520,540,700,720,740,760,800など)として第1LCD16および第2LCD18に表示するためのプログラムである。音出力プログラム90dは、プレイヤキャラクタの音声ないし擬声音、効果音およびゲーム音楽(BGM)のようなゲームに必要な音を、音(音声)データ(920cなど)を用いてスピーカから出力するためのプログラムである。
キャラクタ作成プログラム90dは、キャラクタの作成処理を実行するためのプログラムである。この実施例では、キャラクタ作成プログラム90dは、後述するキャラクタデータ92g(画像データ,音声データ,属性データを含む)を作成する。背景撮影プログラム90eは、ステージ背景を撮影するためのプログラムである。編集プログラム90gは、作成したキャラクタデータ92gを変更ないし修正するためのプログラムである。
1人用ゲームプログラム90hは、1人用ゲームについてのメインルーチンを処理するためのプログラムである。2人用ゲームプログラム90iは、2人用ゲームについてのメインルーチンを処理するためのプログラムである。
図示は省略するが、プログラム記憶領域90には、バックアッププログラムなども記憶される。バックアッププログラムは、ゲームデータ(途中データや結果データ)を、メモリカード26や保存用データメモリ56にセーブ(保存)するためのプログラムである。
図22に示すように、データ記憶領域92には、操作データバッファ92a、撮影画像データバッファ92bおよび音声データバッファ92cが設けられる。また、データ記憶領域92には、画像データ92d、ガイド画像データ92e、マスク画像データ92f、キャラクタデータ92g、モーションデータ92h、背景画像データ92iおよび当り判定データ92jが記憶される。さらに、データ記憶領域92には、第1当り判定フラグ92kおよび第2当り判定フラグ92mが設けられる。
操作データバッファ92aは、各操作ボタン20a−20kに対する入力状況(押下されたか否か)を示す操作データおよびタッチパネル22からのタッチ位置データを記憶(一時記憶)する。撮影画像データバッファ92bは、カメラ32,34で撮影された撮影画像に対応する画像データを記憶(一時記憶)する。音声データバッファ92cは、マイク84を通して入力された音声に対応する音声データを記憶(一時記憶)する。
画像データ92dは、ゲーム画像を生成するためのポリゴンデータやテクスチャデータなどである。ガイド画像データ92eは、上述したガイド画像(202a,222a、242a、262a,282a,302a,322a,402a,502a,522a,542a)を表示するためのデータである。マスク画像データ92fは、各撮影画面のガイド画像を構成するマスク画像(撮影用のマスク画像)についてのデータ、および撮影画像に所定の画像処理(トリミングおよび間引き処理)を施した画像から各ポーズ画像を切り抜くためのマスク画像(ポーズ画像生成用のマスク画像)についてのデータである。
キャラクタデータ92gは、キャラクタ作成プログラム90dに従って、プレイヤによって作成されたキャラクタについてのデータ(画像データ,音声データ,属性データ)である。たとえば、キャラクタデータ92gは、作成したキャラクタ毎に記憶されており、第1キャラクタデータ920、第2キャラクタデータ922、…を含む。ただし、プログラムや開発者によって予め生成されたキャラクタのキャラクタデータも含まれる。第1キャラクタデータ920は、第1キャラクタ属性データ920a、第1キャラクタ画像データ920b、第1キャラクタ音声データ920cを含む。第1キャラクタ属性データ920aは、第1キャラクタの属性(名称および称号)についてのデータである。
第1キャラクタ画像データ920bは、当該キャラクタ(第1キャラクタ)の作成処理において撮影画像から作成した各ポーズ画像についての画像データであり、図23(A)に示すように、インデックス番号に対応して、ポーズ画像のデータ(第1画像データ、第2画像データ、…、第i画像データ)が記憶される。たとえば、インデックス番号は、ポーズ画像や顔画像などを撮影した順番に対応している。ただし、これに限定される必要はなく、インデックス番号のような識別情報を用いることによって画像の種類を特定することができればよい。
また、第1キャラクタ音声データ920cは、当該キャラクタ(第1キャラクタ)の作成処理において録音した各音声についてのデータであり、図23(B)に示すように、インデックス番号に対応して、音声のデータ(第1録音データ、第2録音データ、…、第j録音データ)が記憶される。たとえば、インデックス番号は、音声を録音した順番に対応している。ただし、これに限定される必要はなく、インデックス番号のような識別情報を用いることによって音声の種類を特定することができればよい。
なお、第2キャラクタデータ922、…は、第1キャラクタデータ920と同様であるため、図示および詳細な説明は省略する。
モーションデータ92hは、ゲーム中にプレイヤキャラクタ(742a,802a,802bなど)に実行させる各動作についてのモーションデータを含み、各モーションデータでは、フレーム数に対応して、画像データのインデックス番号、音声データのインデックス番号および当り判定領域データのインデックス番号が記述される。ただし、敵キャラクタ(742bなど)も、モーションデータに従って各動作が実行される。たとえば、図23(C)には、パンチの動作についてのモーションデータ92hの例が示される。図23(C)を参照して、上述したように、パンチの動作は、たとえば16フレームで実行され、1フレーム目に、構えのポーズ画像のインデックス番号が記載されるとともに、構えのポーズに設定される当り判定領域のインデックス番号が記載される。ただし、1フレーム目では、音声のインデックス番号として“null”が記載される。つまり、1フレーム目では、音声は出力されない。次に、8フレーム目に、パンチのポーズ画像のインデックス番号、パンチの音声のインデックス番号、およびパンチのポーズに設定される当り判定領域のインデックス番号が記載される。そして、16フレーム目に、構えのポーズ画像のインデックス番号および構えのポーズの当り判定領域のインデックス番号が記載され、音声のインデックス番号として“null”が記載される。ただし、8フレーム目では、攻撃する場合の当り判定領域のインデックス番号と、攻撃を受ける場合の当り判定領域のインデックス番号とが記載される。
図22に戻って、背景画像データ92iは、プレイヤによって撮影されたステージ背景についての撮影画像に対応する画像データである。この実施例では、最大で8つのステージ背景を撮影することができ、各ステージ背景の撮影画像に対応する画像データが記憶されるのである。当り判定データ92jは、戦闘ゲームや対戦ゲームの実行中に当りを判定するためのデータである。当り判定データ92jは、設定するポーズ画像やタイミングに応じて、複数種類用意される。したがって、当り判定データ92jは、インデックス番号に対応して、第1当り判定領域データ、第2当り判定領域データ、…が記載されている。このインデックス番号が上述したモーションデータに記載されているのである。また、インデックス番号は、各当り判定領域を識別可能にするために付されている。このため、インデックス番号に代えて、他の識別情報が記載されてもよい。
たとえば、図24および図25に示すように、各ポーズ画像に対応して設定される当り判定領域が示される。上述したように、プレイヤキャラクタが攻撃する場合のポーズ画像(ここでは、パンチのポーズ画像とキックのポーズ画像)では、自分の攻撃が相手に当ったかどうかを判断するのみならず、相手の攻撃が当ったかどうかを判断するために、攻撃する場合の当り判定領域と攻撃を受ける場合の当り判定領域とが設定される。ただし、攻撃する場合の当り判定領域と攻撃を受ける場合の当り判定領域とは同時に設定されるのではなく、当り判定に応じて選択的に設定されるのである。
たとえば、図24(A)に示すように、パンチのポーズ画像に対して、攻撃を受ける場合には、当り判定領域930aが設定され、攻撃する(パンチする)場合には、当り判定領域930bが設定される。また、図24(B)に示すように、構えのポーズ画像に対して、攻撃を受ける場合に、当り判定領域932が設定される。さらに、図24(C)に示すように、キックのポーズ画像に対して、攻撃を受ける場合に、当り判定領域934aが設定され、攻撃する(キックする)場合に、当り判定領域934bが設定される。さらにまた、図24(D)に示すように、歩きのポーズ画像に対して、攻撃を受ける場合に、当り判定領域936が設定される。
また、図25(A)に示すように、必殺技のポーズ画像に対して、攻撃を受ける場合に、当り判定領域938が設定される。なお、必殺技を出す場合には、いわゆる飛び道具が相手(敵キャラクタや対戦相手のプレイヤキャラクタ)に向かって飛んで行くため、必殺技のポーズ画像に対して、攻撃する場合の当り判定領域は設定されない。さらに、図25(B)に示すように、しゃがみのポーズ画像に対して、攻撃を受ける場合に、当り判定領域940が設定される。さらにまた、図25(C)に示すように、ジャンプのポーズ画像に対して、攻撃を受ける場合に、当り判定領域942が設定される。
図24(A)に戻って、当り判定領域930aおよび当り判定領域930bは、それぞれポーズ画像に対応して所定の位置および大きさ(形状)で設定される。したがって、この実施例では、ポーズ画像の中心ないし重心Pを基準とした場合における、攻撃を受ける場合に設定される当り判定領域930aの頂点Q1および頂点Q2の位置(横方向の長さ、縦方向の長さ)が記憶されている。同様に、ポーズ画像の重心Pを基準とした場合における、攻撃する場合に設定される当り判定領域930bの頂点R1および頂点R2の位置(横方向の長さ、縦方向の長さ)が記憶されている。つまり、ポーズ画像の中心ないし重心Pに対する横方向の長さ(距離)および縦方向の距離についてのデータが、上述した当り判定領域データに相当する。
図示は省略するが、他のポーズ画像に対応する当り判定領域932,934a,934b,936、938,940,942についても同様である。ただし、図24および図25に示した当り判定領域は一例であり、モーションデータが示すポーズ画像に対応して、モーションデータが示す当り判定領域が設定されるのである。
また、図24および図25に示す例では、当り判定領域を長方形で設定するため、その対角となる頂点とポーズ画像の重心との距離を記憶するようにしてあるが、これに限定される必要はない。たとえば、長方形(四角形)の当り判定領域の各頂点とポーズ画像の重心との距離を記憶してもよい。また、当り判定領域の形状を固定しない場合には、たとえば、当り判定領域の中心とポーズ画像の重心との距離、当り判定領域の形状および当り判定領域の大きさを記憶するようにしてもよい。
図22に戻って、第1当り判定フラグ92kは、1P(1人用ゲームのプレイヤまたは2人用ゲームの第1プレイヤ)のプレイヤキャラクタが攻撃する場合の当り判定処理を実行するか否かを判定するためのフラグである。この第1当り判定フラグ92kは、1ビットのレジスタで構成される。第1当り判定フラグ92kが成立(オン)されると、レジスタにデータ値「1」が設定され、第1当り判定フラグ92kフラグが不成立(オフ)されると、レジスタにデータ値「0」が設定される。ただし、第1当り判定フラグ92kは、1Pのプレイヤキャラクタが攻撃する場合にオンされ、1Pのプレイヤが攻撃しない場合にオフされる。
第2当り判定フラグ92mは、2P(1人用ゲームのコンピュータ(CPU50)または2人用ゲームの第2プレイヤ)のプレイヤキャラクタ(1人用ゲームの敵キャラクタ)が攻撃する場合の当り判定処理を実行するか否かを判定するためのフラグである。言い換えると、1Pのプレイヤキャラクタが攻撃を受ける場合の当り判定処理を実行するか否かを判定するためのフラグである。この第2当り判定フラグ92mは、1ビットのレジスタで構成される。第2当り判定フラグ92mがオンされると、レジスタにデータ値「1」が設定され、第2当り判定フラグ92mがオフされると、レジスタにデータ値「0」が設定される。ただし、第2当り判定フラグ92mは、2Pのプレイヤキャラクタが攻撃する場合にオンされ、2Pのプレイヤが攻撃しない場合にオフされる。
図示は省略するが、データ記憶領域92には、ゲームに必要な他のデータも記憶され、また、ゲームに必要な他のフラグやカウンタ(タイマ)も設けられる。
図26および図27は、図3に示したCPU50の全体処理のフロー図を示す。図26に示すように、CPU50は、全体処理を開始すると、ステップS1で、スタート画面(図示せず)を第1LCD16および第2LCD18に表示する。次のステップS3では、キャラクタを作るかどうかを判断する。つまり、CPU50は、スタート画面において、キャラクタの作成処理が選択されたかどうかを判断する。
なお、図示は省略するが、全体処理が開始される前に、初期化処理が実行され、ゲームプログラムや各種データがメインメモリ52にロードされる。また、第1当り判定フラグ92kや第2当り判定フラグ92mはオフされる。
ステップS3で“YES”であれば、つまりキャラクタの作成処理が選択されると、キャラクタを作ると判断して、ステップS5で、プレイヤにゲーム装置10を縦向きに持ち替えることを誘導するための第1誘導画面(図示せず)を第1LCD16および第2LCD18に表示する。次のステップS7では、ゲーム装置10を縦向きに持ち替えたかどうかを判断する。つまり、CPU50は、ゲーム装置10を縦向きに持ち替えたことを通知するためのボタン画像がオンされたかどうかを判断する。
ステップS7で“NO”であれば、つまりゲーム装置10が縦向きに持ち替えられていない場合には、そのまま同じステップS7に戻る。一方、ステップS7で“YES”であれば、つまりゲーム装置10が縦向きに持ち替えられた場合には、ステップS9で、後述するキャラクタ作成処理(図28−図33参照)を実行して、ステップS3に戻る。
また、ステップS3で“NO”であれば、つまりキャラクタを作らない場合には、ステップS11で、遊ぶ(戦闘ゲームまたは対戦ゲームをプレイする)かどうかを判断する。ステップS11で“NO”であれば、つまり遊ばない場合には、そのままステップS1に戻る。
一方、ステップS11で“YES”であれば、つまり遊ぶ場合には、ステップS13で、ゲームメニュー画面を第1LCD16および第2LCD18に表示する。続いて、図27に示すステップS15では、1人プレイかどうかを判断する。つまり、CPU50は、ゲームメニュー画面で、1人用ゲームが選択されたかどうかを判断する。
ステップS15で“YES”であれば、つまり1人プレイである場合には、ステップS17で、後述する1人用ゲーム処理(図34−図36参照)を実行して、図26に示したステップS1に戻る。一方、ステップS15で“NO”であれば、つまり1人プレイでない場合には、ステップS19で、2人プレイであるかどうかを判断する。つまり、CPU50は、ゲームメニュー画面で、2人用ゲームが選択されたかどうかを判断する。
ステップS19で“YES”であれば、つまり2人プレイである場合には、ステップS21で、後述する2人用ゲーム処理(図37−図41参照)を実行して、ステップS1に戻る。一方、ステップS19で“NO”であれば、つまり2人プレイでない場合には、ステップS23で、スタート画面に戻るかどうかを判断する。つまり、CPU50は、ゲームメニュー画面で、スタート画面に戻ることが選択されたかどうかを判断する。
ステップS23で“NO”であれば、つまりスタート画面に戻らない場合には、ゲームメニューの選択中であると判断して、そのままステップS15に戻る。一方、ステップS23で“YES”であれば、つまりスタート画面に戻る場合には、ステップS1に戻る。
図28−図33は、図26に示したステップS9のキャラクタ作成処理のフロー図である。図28に示すように、CPU50は、キャラクタ作成処理を開始すると、ステップS31で、被写体選択画面(図示せず)を第1LCD16および第2LCD18に表示する。続くステップS33では、誰か(他人)を撮るかどうかを判断する。ステップS33で“YES”であれば、つまり他人を撮る場合には、ステップS35で、外側カメラ34を起動して、ステップS41に進む。一方、ステップS33で“NO”であれば、つまり他人を撮らない場合には、ステップS37で、自分を撮るかどうかを判断する。
ステップS37で“YES”であれば、つまり自分を撮る場合には、ステップS39で、内側カメラ32を起動して、ステップS41に進む。一方、ステップS37で“NO”であれば、つまり自分を撮らない場合には、被写体の選択中であると判断して、ステップS33に戻る。
ステップS41では、変数iを初期化する(i=1)。この変数iは、複数のポーズの画像、複数の顔画像および物の画像を撮影する順番を識別するための変数である。上述したように、撮影する画像の順番等は予め決定されている。図29に示すように、次のステップS43では、i番目の画像の撮影画面を表示する。たとえば、初回(i=1)では、上述したように、パンチを打つときのポーズについての画像が撮影されるため、ステップS43では、図5(A)に示したパンチのポーズ撮影画面200が第1LCD16および第2LCD18に表示される。
次のステップS45では、スルー画像を表示する。上述したように、第1LCD16はビューファインダーとして機能し、この実施例では、スルー画像は、ガイド画像(202a,262a,282a,302a,322aなど)の背面側に表示され、くり抜き部(2020,2620、2820,3020、3220など)を通して見える。続いて、ステップS47では、撮影指示が有るかどうかを判断する。つまり、CPU50は、Aボタン20bがオンされたか否か、またはボタン画像(204d,264d,284d,304d,324dなど)がオンされたか否かを判断する。ステップS47で“NO”であれば、つまり撮影指示が無ければ、そのままステップS45に戻る。したがって、スルー画像が更新される。一方、ステップS47で“YES”であれば、つまり撮影指示が有れば、ステップS49で、撮影処理を実行し、ステップS51で、図6(A)に示したようなポーズ画像確認画面(220)を第1LCD16および第2LCD18に表示する。ただし、ステップS49では、撮影指示が有ったときの静止画像(撮影画像)がカメラ(32,34)から取り込まれ、この撮影画像に対応する画像データが撮影画像データバッファ92bに記憶される。
続いて、ステップS53では、ポーズ画像、顔画像、物の画像(以下、「ポーズ画像等」ということがある)を保存するかどうかを判断する。つまり、CPU50は、ポーズ画像確認画面(220)において、OKボタン(ボタン画像224a)がオンされたかどうかを判断する。ステップS53で“NO”であれば、つまりOKボタンがオンされなければ、ポーズ画像等を保存しないと判断し、ステップS55で、撮り直しかどうかを判断する。つまり、CPU50は、ポーズ画像確認画面(220)において、撮り直しボタン(ボタン画像224b)がオンされたかどうかを判断する。ステップS55で“NO”であれば、つまり撮り直しボタンがオンされなければ、ポーズ画像を保存するか、それとも、撮り直すかを検討していると判断して、ステップS53に戻る。一方、ステップS55で“YES”であれば、つまり撮り直しボタンがオンされれば、撮影し直すと判断して、ステップS57で、今回の撮影画像の画像データを撮影画像データバッファ92bから消去して、ステップS43に戻る。
また、ステップS53で“YES”であれば、つまりOKボタンがオンされば、ポーズ画像等を保存すると判断して、ステップS59で、今回の撮影画像をi番目のポーズ画像等としてメインメモリ52に保存する。図示は省略するが、ポーズ画像の画像データは、上述したように、撮影画像をトリミングし、さらに間引き処理を行った後に、所定のポーズのマスク画像(マスク画像データ92f)で切り抜くことにより生成され、作成中のキャラクタの第i画像データとして記憶される。次のステップS61では、図7に示したような撮影成功画面(240)を第1LCD16および第2LCD18に表示する。続くステップS63では、変数iを1加算する(i=i+1)。そして、ステップS65で、変数iが最大値(この実施例では、13)よりも大きいかどうかを判断する。つまり、CPU50は、所定の順番に従って、すべての画像(ポーズ画像等)の撮影を終了したかどうかを判断する。
ステップS65で“NO”であれば、つまり変数iが最大値以下であれば、まだ撮影していない画像が有ると判断して、ステップS43に戻る。つまり、次の画像の撮影処理が実行されるのである。一方、ステップS65で“YES”であれば、つまり変数iが最大値よりも大きければ、すべての画像の撮影を終了したと判断して、ステップS67で、撮影終了画面(図示せず)を第1LCD16および第2LCD18に表示する。図示は省略するが、この撮影終了画面の右画面のボタン画像がオンされると、つまり写真撮影がすべて終わったことをプレイヤが確認したことが通知されると、図30に示すステップS69で、録音開始画面(図示せず)を第1LCD16および第2LCD18に表示する。
次のステップS71では、録音処理の開始指示が有るかどうかを判断する。つまり、CPU50は、録音開始画面の右画面のボタン画像がオンされたかどうかを判断する。ステップS71で“NO”であれば、つまり録音処理の開始指示が無い場合には、そのまま同じステップS71に戻る。一方、ステップS71で“YES”であれば、つまり録音処理の開始指示が有る場合には、ステップS73で、変数jを初期化して(j=1)、ステップS75で、図12に示したようなj番目の音声についての録音画面(400)を第1LCD16および第2LCD18に表示する。上述したように、録音する音声の種類(内容)は予め決定されており、録音する順番も予め決定されている。この録音する順番が変数jによってカウントされる。
次のステップS77では、録音指示が有るかどうかを判断する。つまり、CPU50は、録音スタートのボタン(ボタン画像404dなど)がオンされたかどうかを判断する。ステップS77で“NO”であれば、つまり録音指示が無ければ、同じステップS77に戻る。一方、ステップS77で“YES”であれば、つまり録音指示が有れば、ステップS79で、録音を開始する。つまり、CPU50は、マイク84を通して入力される音声に対応する音声データの記録を開始するのである。ただし、音声データは、音声データバッファ92cに記憶される。
続くステップS81では、録音中画面(図示せず)を第1LCD16および第2LCD18に表示する。次のステップS83は、録音終了かどうかを判断する。つまり、CPU50は、録音を開始してから一定時間(この実施例では、2秒)が経過したかどうかを判断する。
ステップS83で“NO”であれば、つまり録音を開始してから一定時間が経過していなければ、録音終了でないと判断して、ステップS81に戻る。したがって、録音中画面が更新される。ここでは、主として、録音中画面に表示される録音時間(録音長さ)を示すバーの長さが時間の経過に従って変化される(長くされる)。一方、ステップS83で“YES”であれば、つまり録音を開始してから一定時間が経過すれば、図31に示すステップS85で、今回録音した(j番目の)音声の再生を開始する。次のステップS87では、再生中画面(図示せず)を第1LCD16および第2LCD18に表示する。続いて、ステップS89で、再生終了かどうかを判断する。つまり、CPU50は、今回録音した音声に対応する音声データをすべて再生したかどうかを判断する。
ステップS89で“NO”であれば、つまり今回録音した音声データを再生し終えていない場合には、再生終了でないと判断して、ステップS87に戻る。したがって、再生中画面が更新される。ここでは、主として、再生中画面に表示される再生時間(音声の長さ)を示すバーの長さが時間の経過に従って変化される(長くされる)。一方、ステップS89で“YES”であれば、つまり今回録音した音声データをすべて再生すると、再生終了であると判断して、ステップS91で、録音確認画面(図示せず)を第1LCD16および第2LCD18に表示する。
次のステップS93では、今回録音した音声に対応する音声データを保存するかどうかを判断する。ステップS93で“NO”であれば、つまり今回録音した音声に対応する音声データを保存しない場合には、ステップS95で、今回録音した音声をもう一度聴くかどうかを判断する。
ステップS95で“YES”であれば、つまり今回録音した音声をもう一度聴く場合には、ステップS85に戻る。一方、ステップS95で“NO”であれば、つまり今回録音した音声をもう一度聴かない場合には、ステップS97で、録音し直すかどうかを判断する。
ステップS97で“NO”であれば、つまり今回録音した音声を保存するか、録音し直すか、もう一度聴くかを検討中であると判断して、ステップS93に戻る。一方、ステップS99で“YES”であれば、つまり録音し直す場合には、ステップS99で、今回録音した音声に対応する音声データを音声データバッファ92cから消去して、図30に示したステップS75に戻る。
また、ステップS93で“YES”であれば、つまり今回録音した音声に対応する音声データを保存する場合には、ステップS101で、今回録音したj番目の音声に対応する音声データをメインメモリ50に保存する。次のステップS103では、録音成功画面(図示せず)を第1LCD16および第2LCD18に表示する。続いて、ステップS105では、変数jを1加算する(j=j+1)。そして、ステップS107で、変数jが最大値(この実施例では、10)よりも大きいかどうかを判断する。つまり、CPU50は、すべての音声の録音を終了したかどうかを判断するのである。
ステップS107で“NO”であれば、つまり変数jが最大値以下であれば、録音していない音声が有ると判断して、ステップS75に戻る。一方、ステップS107で“YES”であれば、つまり変数jが最大値よりも大きければ、すべての音声の録音を終了したと判断して、ステップS109で、録音終了画面(図示せず)を第1LCD16および第2LCD18に表示する。
図示は省略するが、録音終了画面の右画面に表示されたボタン画像がオンされると、キャラクタの名称および称号が決定され、キャラクタの作成を終了すると、図32に示すステップS111で、作成したキャラクタが1つ目のキャラクタであるかどうかを判断する。ステップS111で“NO”であれば、つまり2つ目以降のキャラクタであれば、そのまま図33に示すステップS137に進む。一方、ステップS111で“YES”であれば、つまり作成したキャラクタが1つ目のキャラクタであれば、ステージ背景の撮影処理を実行すると判断して、ステップS113で、外側カメラ34が起動中であるかどうかを判断する。
ステップS113で“YES”であれば、つまり外側カメラ34が起動中であれば、そのままステップS117に進む。一方、ステップS113で“NO”であれば、つまり外側カメラ34が起動していなければ、ステップS115で、外側カメラ34を起動して、ステップS117に進む。ただし、CPU50は、ステップS115の処理を実行するとき、内側カメラ32が起動中であれば、当該内側カメラ32を停止させる。
ステップS117では、図13に示した背景撮影画面500を第1LCD16および第2LCD18に表示する。次のステップS119では、スルー画像を表示する。つまり、背景撮影画面500のガイド画像502aの背面側に、外側カメラ34で撮影されたスルー画像が表示され、くり抜き部5020を通してスルー画像が見える。続いて、ステップS121では、撮影指示が有るかどうかを判断する。つまり、CPU50は、Aボタン20bまたはボタン画像504cがオンされたかどうかを判断する。ステップS121で“NO”であれば、つまりAボタン20bおよびボタン画像504cのいずれもオンされなければ、被写体を選択したり、ピントを合わせたり、ガイド線5022と被写体との位置決めをしたりしていると判断して、同じステップS121に戻る。
一方、ステップS121で“YES”であれば、つまりAボタン20bまたはボタン画像504cがオンされれば、撮影指示が有ると判断して、ステップS123で、撮影処理を実行し、ステップS125で、図14に示した背景画像確認画面520を第1LCD16および第2LCD18に表示する。ただし、撮影処理が実行されると、撮影画像に対応する画像データが撮影画像データバッファ92bに記憶される。次のステップS127では、撮影画像に対応する画像データを保存するかどうかを判断する。つまり、CPU50は、ボタン画像524aがオンされたかどうかを判断する。
ステップS127で“YES”であれば、つまりボタン画像524aがオンされれば、撮影画像に対応する画像データを保存すると判断して、図33に示すステップS133に進む。一方、ステップS127で“NO”であれば、つまりボタン画像524aがオンされなければ、撮影画像に対応する画像データを保存しないと判断して、ステップS129で、ステージ背景を撮影し直すかどうかを判断する。つまり、CPU50は、ボタン画像524bがオンされたかどうかを判断する。
ステップS129で“NO”であれば、つまりボタン画像524bがオンされなければ、今回の撮影画像を保存するか、撮影し直すかの検討中であると判断して、ステップS127に戻る。一方、ステップS129で“YES”であれば、つまりボタン画像524bがオンされれば、ステージ背景を撮影し直すと判断して、ステップS131で、今回の撮影画像に対応する画像データを撮影画像データバッファ92bから消去して、ステップS117に戻る。
図33に示すステップS133では、今回の撮影画像に対応する画像データを背景画像データ92iとしてメインメモリ52に保存する。続くステップS135では、図15に示した保存終了画面540を第1LCD16および第2LCD18に表示する。その後、ステップS137で、プレイヤにゲーム装置10を横向きに持ち替えることを誘導するための第2誘導画面(図示せず)を第1LCD16および第2LCD18に表示する。
そして、ステップS139で、ゲーム装置10を横向きに持ち替えたかどうかを判断する。具体的には、CPU50は、第2誘導画面の右画面に表示されるボタン画像がオンされたかどうかを判断する。ステップS139で“NO”であれば、つまりゲーム装置10を横向きに持ち替えていない場合には、同じステップS139に戻る。一方、ステップS139で“YES”であれば、つまりゲーム装置10を横向きに持ち替えた場合には、ステップS141で、“あそぶ”が表記されたボタン画像を強調したスタート画面を表示して、全体処理に戻る。
図34−図36は、図27のステップS17に示した1人用ゲーム処理のフロー図である。図34に示すように、CPU50は、1人用ゲーム処理を開始すると、ステップS211で、図16に示したキャラクタ選択画面700を第1LCD16および第2LCD18に表示する。続くステップS213では、ゲームメニュー画面(図示せず)に戻るかどうかを判断する。つまり、CPU50は、ボタン画像704bがオンされたかどうかを判断する。
ステップS213で“YES”であれば、つまりボタン画像704bがオンされれば、ゲームメニュー画面に戻ると判断して、1人用ゲーム処理を終了し、全体処理のステップS13に戻る。一方、ステップS213で“NO”であれば、つまりボタン画像704bがオンされなければ、ゲームメニュー画面に戻らないと判断して、ステップS215で、使用するキャラクタが決定されたかどうかを判断する。つまり、CPU50は、Aボタン20bがオンされたり、縮小画像が表示された表示領域704aがタッチされたりしたかどうかを判断する。
ステップS215で“NO”であれば、つまりAボタン20bがオンされず、またいずれの表示領域704aもタッチされていない場合には、プレイヤキャラクタの選択中であると判断して、そのままステップS213に戻る。図示は省略するが、上述したように、キャラクタ選択画面700では、十字キー20aを操作することによって、下画面704のカーソル7040は表示領域704aを移動し、したがって、上画面702の表示領域702aに表示される(参照する)キャラクタの顔画像が変更される。また、これに伴って、表示領域702bに表示されるキャラクタの称号および名称も変更される。ただし、カーソル7040は、縮小画像が表示される表示領域704aにのみ移動可能である。
一方、ステップS215で“YES”であれば、つまりAボタン20bがオンされたり、縮小画像の表示された表示領域704aがタッチされたりすると、キャラクタが決定されたと判断して、ステップS217で、図17に示したステージ選択画面720を第1LCD16および第2LCD18に表示する。
続くステップS219では、ステージ背景を決定したかどうかを判断する。ここでは、CPU50は、Aボタン20bがオンされたり、縮小画像が表示された表示領域724aがタッチされたりしたかどうかを判断する。ステップ219で“NO”であれば、つまりAボタン20bがオンされたり、縮小画像が表示された表示領域724aがタッチされたりしなければ、ステージ背景の選択中であると判断して、同じステップS219に戻る。
図示は省略するが、上述したように、ステージ選択画面720では、十字キー20aを操作することによって、下画面704のカーソル7240は表示領域724aを移動し、したがって、上画面722の表示領域722aに表示されるステージ背景の画像が変更される。ただし、カーソル7240は、縮小画像が表示される表示領域724aにのみ移動可能である。
なお、図示は省略するが、ステージ選択画面720において、ボタン画像724cがオンされた場合には、使い捨てのステージ背景を撮影するための処理が実行された後に、ステップS221に進む。かかる場合には、後述するステップS221において、使い捨てのステージ画像を用いた戦闘画面が第1LCD16に表示される。
また、図示は省略するが、ステージ選択画面720において、ボタン画像724bがオンされると、キャラクタ選択画面700に戻る。
一方、ステップS219で“YES”であれば、つまりAボタン20bがオンされたり、縮小画像の表示された表示領域724aがタッチされたりすると、ステージ背景(背景画像)が決定されたと判断して、ステップS221で、図18に示したような戦闘画面740を第1LCD16および第2LCD18に表示する。したがって、戦闘ゲームが開始される。詳細な説明は省略するが、このとき、ステージ選択画面720で選択(決定)されたステージ背景または使い捨てのステージ背景が、第1LCD16の最背面に表示される。また、戦闘画面740が表示された当初では、プレイヤキャラクタ742aおよび敵キャラクタ742bは、構えのポーズ画像を用いて表示される。このとき、プレイヤキャラクタ742aおよび敵キャラクタ742bは、ステージ背景の地面に相当する位置に立つように表示される。
図35に示すように、次のステップS223では、操作入力が有るかどうかを判断する。つまり、十字キー20aやAボタン20bがオンされたり、タッチパネル22がオン(タッチ)されたりしたかどうかを判断する。具体的には、CPU50は、操作データバッファ92aを参照して、操作ボタン20からの操作データまたはタッチパネル22からのタッチ位置データが入力されているかどうかを判断する。ステップS223で“NO”であれば、つまり操作入力が無ければ、そのままステップS241に進む。一方、ステップS223で“YES”であれば、つまり操作入力が有れば、ステップS225で、プレイヤキャラクタ742aに攻撃させるかどうかを判断する。つまり、CPU50は、Aボタン20bがオンされたり、ボタン画像744bがオンされたりしたかどうかを判断する。ただし、プレイヤキャラクタ742aに、必殺技で攻撃させる場合には、Aボタン20bのみならず、十字キー20aもオンされる。
ステップS225で“YES”であれば、つまりプレイヤキャラクタ742aに攻撃させる場合には、ステップS227で、プレイヤキャラクタ742aの攻撃に応じたモーションデータ92hを読み出し、ステップS229で、第1当り判定フラグ92kをオンして、ステップS239に進む。一方、ステップS225で“NO”であれば、つまりプレイヤキャラクタ742aに攻撃させない場合には、ステップS231で、プレイヤキャラクタ742aを移動させるかどうかを判断する。つまり、CPU50は、十字キー20aがオンされたかどうかを判断する。
ステップS231で“YES”であれば、つまりプレイヤキャラクタ742aを移動させる場合には、ステップS233で、プレイヤキャラクタ742aの移動に応じたモーションデータ92hを読み出して、ステップS239に進む。
一方、ステップS231で“NO”であれば、つまりプレイヤキャラクタ742aを移動させない場合には、ステップS235で、プレイヤキャラクタ742aに挑発させるかどうかを判断する。つまり、CPU50は、ボタン画像744aがオンされたかどうかを判断する。ステップS235で“NO”であれば、つまりプレイヤキャラクタ742aに挑発させない場合には、そのまま攻撃、移動および挑発についての操作入力では無いと判断して、そのままステップS241に進む。一方、ステップS235で“YES”であれば、プレイヤキャラクタ742aに挑発させる場合には、ステップS237で、挑発のモーションデータ92hを読み出して、ステップS239に進む。
ステップS239では、攻撃、移動または挑発を行うプレイヤキャラクタの742aの移動後の座標を算出する。たとえば、プレイヤキャラクタ742aの移動後の位置は、現在位置から指示された方向に所定距離だけ進んだ位置に決定(算出)される。ただし、この実施例では、下方向が指示された場合には、プレイヤキャラクタ742aはしゃがむだけなので、かかる場合には、移動後の位置は現在位置のままである。攻撃する場合や挑発する場合には、予め決定されている距離だけ、敵キャラクタ742bに近づくように、移動後の位置(座標)が算出される。
ステップS241では、プレイヤキャラクタ742aが敵キャラクタ742bからの攻撃を受けるかどうかを判断する。つまり、CPU50は、敵キャラクタ742bにプレイヤキャラクタ742aの攻撃を指示したかどうかを判断する。ステップS241で“NO”であれば、つまりプレイヤキャラクタ742aが敵キャラクタ742bからの攻撃を受けない場合には、そのまま図36に示すステップS247に進む。一方、ステップS241で“YES”であれば、つまりプレイヤキャラクタ742aが敵キャラクタ742bからの攻撃を受ける場合には、ステップS243で、敵キャラクタ742bの攻撃に応じたモーションデータ92hを読み出し、ステップS245で、第2当り判定フラグ92mをオンして、ステップS247に進む。
なお、図示は省略するが、CPU50は、敵キャラクタ742bを移動させたり、挑発させたりする場合もある。かかる場合には、移動や挑発に対応するモーションデータ92hが読み出される。また、図示は省略するが、CPU50は、敵キャラクタ742bに攻撃させたり、移動させたり、挑発させたりする場合には、移動後の座標も算出する。
図36に示すように、ステップS247では、第1当り判定フラグ92kおよび第2当り判定フラグ92mの少なくとも一方がオンであるかどうかを判断する。ステップS247で“NO”であれば、つまり第1当り判定フラグ92kおよび第2当り判定フラグ92mがオフであれば、そのままステップS259に進む。一方、ステップS247で“YES”であれば、つまり第1当り判定フラグ92kおよび第2当り判定フラグ92mの少なくとも一方がオンであれば、ステップS249で、当り判定処理を実行するタイミングであるかどうかを判断する。つまり、CPU50は、パンチやキックのポーズ画像が表示されたタイミングであるかどうかを判断する。上述したように、モーションデータ92hに従ってポーズ画像が更新されるため、実際に攻撃したとき(フレーム数)に、当り判定処理が実行されるのである。
なお、1人用ゲーム処理では、ステップS223−ステップS267のスキャンタイムが1フレームである。また、図示しないフレームカウンタによって、モーションの開始からのフレーム数がカウントされる。CPU50は、このフレームカウンタのカウント値を参照して、ポーズ画像の更新や音声の出力を実行したり、当り判定のタイミングを判断したりするのである。
ステップS249で“NO”であれば、つまり当り判定のタイミングでなければ、そのままステップS259に進む。一方、ステップS249で“YES”であれば、つまり当り判定のタイミングであれば、ステップS251で、当り判定処理を実行する。
ここでは、第1当り判定フラグ92kがオンであれば、プレイヤキャラクタ742aについて読み出されたモーションデータ92hが示す攻撃のタイミング(フレーム数)に対応して記載された攻撃する場合の当り判定領域がプレイヤキャラクタ742aのポーズ画像に設定される。一方、敵キャラクタ742bについて読み出されたモーションデータ92hが示す攻撃を受けるタイミング(フレーム数)における攻撃を受ける場合の当り判定領域が敵キャラクタ742bのポーズ画像に設定される。そして、それらの当り判定領域が接触しているかまたは重なっているかどうかを判断する。
一方、第2当り判定フラグ92mがオンであれば、敵キャラクタ742bについて読み出されたモーションデータ92hが示す攻撃のタイミング(フレーム数)に対応して記載された攻撃する場合の当り判定領域が設定される。一方、プレイヤキャラクタ742aについて読み出されたモーションデータ92hが示す攻撃を受けるタイミング(フレーム数)における攻撃を受ける場合の当り判定領域がプレイヤキャラクタ742aのポーズ画像に設定される。そして、それらの当り判定領域が接触しているかまたは重なっているかどうかを判断する。
ただし、第1当り判定フラグ92kおよび第2当り判定フラグ92mの両方がオンであれば、両方の当り判定が行われる。
次のステップS253では、プレイヤキャラクタ742aおよび敵キャラクタ742bの体力値を算出する。つまり、プレイヤキャラクタ742aおよび敵キャラクタ742bは、他方のキャラクタからの攻撃を受けると、体力値が減算される。たとえば、減算される体力値は、技の種類によって異なる。
続くステップS255では、プレイヤキャラクタ742aの体力値が0以下であるかどうかを判断する。ステップS255で“YES”であれば、つまりプレイヤキャラクタ742aの体力値が0以下であれば、ステップS257で、ゲームオーバ処理を実行して、図34に示したステップS211に戻る。詳細な説明は省略するが、ステップS257では、ゲームオーバになった旨のメッセージが表示されたり、ゲームオーバになったことを示す音(効果音)や音楽が出力されたりする。
一方、ステップS255で“NO”であれば、つまりプレイヤキャラクタ742aの体力値が0よりも大きければ、ステップS259で、戦闘画面740を更新する。つまり、CPU50は、フレームカウンタを参照して、先に読み出したモーションデータ92hに従って、プレイヤキャラクタ742aや敵キャラクタ742bのポーズ画像を更新したり、プレイヤキャラクタ742aや敵キャラクタ742bを算出した位置に移動させたり、表示領域742dを更新したりする。
なお、詳細な説明は省略するが、プレイヤの操作入力に従って一旦モーションデータ92hが読み出されると、当該モーションデータ92hに従う処理(画像更新、音声出力、当り判定)をすべて終了するまで、つまり一連の動作を終了するまで、次の(新しい)操作入力は無視または保留される。
次のステップS261では、音出力処理を実行する。たとえば、戦闘画面740が更新されるタイミングが示すフレーム数に対応して、モーションデータ92hに音声データのインデックス番号が記載されている場合には、プレイヤキャラクタ742aや敵キャラクタ742bの音声に対応する音データが再生される。また、戦闘シーンにおける効果音のような音に対応する音データも再生される。
続いて、ステップS263では、ゲームクリアかどうかを判断する。ここでは、CPU50は、プレイヤキャラクタ742aが所定数の敵キャラクタ742bを倒したかどうかを判断する。ステップS263で“YES”であれば、つまりゲームクリアであれば、ステップS265で、ゲームクリア処理を実行して、ステップS211に戻る。詳細な説明は省略するが、ステップS265では、ゲームクリアした旨のメッセージが表示されたり、ゲームクリアになったことを示す音(効果音)や音楽が出力されたりする。
また、ステップS263で“NO”であれば、つまりゲームクリアでなければ、ステップS267で、ゲーム終了かどうかを判断する。ここでは、CPU50は、プレイヤによってゲーム終了が指示(ボタン画像744cがオン)されたかどうかを判断する。ステップS267で“NO”であれば、つまりゲーム終了でなければ、図35に示したステップS223に戻る。一方、ステップS267で“YES”であれば、つまりゲーム終了であれば、全体処理にリターンする。
図37−図41は、図27に示したステップS21の2人用ゲーム処理のフロー図である。以下、具体的に説明するが、上述した1人用ゲーム処理と同様の内容については簡単に説明することにする。
図37に示すように、CPU50は、2人用ゲーム処理を開始すると、ステップS301で、図19に示した操作説明画面760を第1LCD16および第2LCD18に表示する。次のステップS303では、2人用のキャラクタ選択画面(図示せず)を第1LCD16および第2LCD18に表示する。
なお、図示は省略するが、操作説明画面760が表示されている場合に、Aボタン20bがオンされたり、下画面764のうちのボタン画像764cが表示されている領域以外の領域がタッチされたりすると、キャラクタ選択画面が表示される。ただし、操作説明画面760においてボタン画像764cがオンされると、ゲームメニュー画面(S13)に戻る。
図37に戻って、次のステップS305で、ゲームメニュー画面に戻るかどうかを判断する。ステップS305で“YES”であれば、つまりゲームメニュー画面に戻る場合には、2人用ゲーム処理を終了して、全体処理のステップS13に戻る。一方、ステップS305で“NO”であれば、つまりゲームメニュー画面に戻らない場合には、ステップS307で、キャラクタを決定したかどうかを判断する。ここでは、CPU50は、1Pのプレイヤキャラクタ802aと2Pのプレイヤキャラクタ802bとの両方が決定されたかどうかを判断する。
ステップS307で“NO”であれば、つまりキャラクタを決定していなければ、ステップS305に戻る。一方、ステップS307で“YES”であれば、つまりキャラクタを決定すれば、ステップS309で、2人用のステージ選択画面(図示せず)を第1LCD16および第2LCD18に表示する。次のステップS311では、ステージ背景を決定したかどうかを判断する。ステップS311で“NO”であれば、つまりステージ背景を決定していなければ、同じステップS311に戻る。一方、ステップS311で“YES”であれば、つまりステージ背景を決定すれば、ステップS313で、図20に示したような対戦画面800を第1LCD16および第2LCD18に表示する。したがって、対戦ゲームが開始される。ただし、対戦画面800が表示された当初では、1Pのプレイヤキャラクタ802aおよび2Pのプレイヤキャラクタ802bは、構えのポーズ画像を用いて表示される。
図38に示すように、次のステップS315では、操作入力が有るかどうかを判断する。ステップS315で“NO”であれば、つまり操作入力が無ければ、そのまま図40のステップS367に進む。一方、ステップS315で“YES”であれば、つまり操作入力が有れば、ステップS317で、1Pのプレイヤキャラクタ802aに攻撃させるかどうかを判断する。つまり、CPU50は、Lボタン20iがオンされたり、ボタン画像804bがオンされたりしたかどうかを判断する。ただし、1Pのプレイヤキャラクタ802aに必殺技の攻撃をさせる場合には、Lボタン20iに加えて、十字キー20aがオンされる。
ステップS317で“YES”であれば、つまり1Pのプレイヤキャラクタ802aに攻撃させる場合には、ステップS319で、1Pのプレイヤキャラクタ802aの攻撃に応じたモーションデータ92hを読み出し、ステップS321で、第1当り判定フラグ92kをオンして、ステップS331に進む。一方、ステップS317で“NO”であれば、つまり1Pのプレイヤキャラクタ802aに攻撃させない場合には、ステップS323で、1Pのプレイヤキャラクタ802aを移動させるかどうかを判断する。つまり、CPU50は、十字キー20aがオンされたかどうかを判断する。
ステップS323で“YES”であれば、つまり1Pのプレイヤキャラクタ802aを移動させる場合には、ステップS325で、1Pのプレイヤキャラクタ802aの移動に応じたモーションデータ92hを読み出して、ステップS331に進む。一方、ステップS323で“NO”であれば、つまり1Pのプレイヤキャラクタ802aを移動させない場合には、ステップS327で、1Pのプレイヤキャラクタ802aに挑発させるかどうかを判断する。つまり、CPU50は、ボタン画像804aがオンされたかどうかを判断する。
ステップS327で“YES”であれば、つまり1Pのプレイヤキャラクタ802aに挑発させる場合には、ステップS329で、1Pのプレイヤキャラクタ802aについて挑発のモーションデータ92hを読み出して、ステップS331に進む。ステップS331では、移動後の1Pの座標(ワールド座標)を算出して、図39に示すステップS333に進む。一方、ステップS327で“NO”であれば、つまり1Pのプレイヤキャラクタ802aに挑発させない場合には、そのままステップS333に進む。
図39に示すように、ステップS333では、2Pのプレイヤキャラクタ802bに攻撃させるかどうかを判断する。つまり、CPU50は、Rボタン20jがオンされたり、ボタン画像804dがオンされたりしたかどうかを判断する。ただし、必殺技の攻撃をさせる場合には、Rボタン20jに加えて、Aボタン20b、Bボタン20c、Xボタン20dまたはYボタン20eがオンされる。
ステップS333で“YES”であれば、つまり2Pのプレイヤキャラクタ802bに攻撃させる場合には、ステップS335で、2Pのプレイヤキャラクタ802bの攻撃に応じたモーションデータ92hを読み出し、ステップS337で、第2当り判定フラグ92mをオンして、ステップS335に進む。一方、ステップS333で“NO”であれば、つまり2Pのプレイヤキャラクタ802bに攻撃させない場合には、ステップS339で、2Pのプレイヤキャラクタ802bを移動させるかどうかを判断する。つまり、CPU50は、Aボタン20b、Bボタン20c、Xボタン20dまたはYボタン20eがオンされたかどうかを判断する。
ステップS339で“YES”であれば、つまり2Pのプレイヤキャラクタ802bを移動させる場合には、ステップS341で、2Pのプレイヤキャラクタ802bの移動に応じたモーションデータ92hを読み出し、ステップS355に進む。一方、ステップS339で“NO”であれば、つまり2Pのプレイヤキャラクタ802bを移動させない場合には、ステップS351で、2Pのプレイヤキャラクタ802bに挑発させるかどうかを判断する。つまり、CPU50は、ボタン画像804cがオンされたかどうかを判断する。
ステップS351で“YES”であれば、つまり2Pのプレイヤキャラクタ802bに挑発させる場合には、ステップS353で、2Pのプレイヤキャラクタ802bについて挑発のモーションデータ92hを読み出し、ステップS355に進む。ステップS355では、移動後の2Pのプレイヤキャラクタ802bの座標(ワールド座標)を算出して、図40に示すステップS357に進む。一方、ステップS351で“NO”であれば、つまり2Pのプレイヤキャラクタ802bに挑発させない場合には、そのままステップS357に進む。
図40に示すステップS357では、第1当り判定フラグ92kおよび第2当り判定フラグ92mの少なくとも一方がオンであるかどうかを判断する。ステップS357で“NO”であれば、つまり第1当り判定フラグ92kおよび第2当り判定フラグ92mがオフであれば、そのままステップS369に進む。一方、ステップS357で“YES”であれば、つまり第1当り判定フラグ92kおよび第2当り判定フラグ92mの少なくとも一方がオンであれば、ステップS359で、当り判定のタイミングかどうかを判断する。
ステップS359で“NO”であれば、つまり当り判定のタイミングでなければ、そのままステップS369に進む。一方、ステップS359で“YES”であれば、つまり当り判定のタイミングであれば、ステップS361で、当り判定を行って、ステップS363で、1Pのプレイヤキャラクタ802aおよび2Pのプレイヤキャラクタ802bの体力値を算出する。
次のステップS365では、1Pのプレイヤキャラクタ802aの体力値または2Pのプレイヤキャラクタ802bの体力値が0以下であるかどうかを判断する。ステップS365で“YES”であれば、つまり1Pのプレイヤキャラクタ802aの体力値または2Pのプレイヤキャラクタ802bの体力値が0以下であれば、図41のステップS375に進む。一方、ステップS365で“NO”であれば、つまり1Pのプレイヤキャラクタ802aの体力値および2Pのプレイヤキャラクタ802bの体力値が0よりも大きければ、ステップS367で、タイムアップかどうかを判断する。つまり、CPU50は、対戦時間が一定時間を経過したかどうかを判断する。
ステップS367で“YES”であれば、つまりタイムアップであれば、ステップS375に進む。一方、ステップS367で“NO”であれば、つまりタイムアップでなければ、ステップS369で、対戦画面800を更新する。CPU50は、モーションデータ92hに従ってプレイヤキャラクタ802a,802bのポーズ画像を更新したり、プレイヤキャラクタ802a,802bを算出した位置に移動させたり、表示領域802c−802eを更新したりする。次のステップS371では、音出力処理を実行する。したがって、対戦画面800が更新されたときに、モーションデータ92hに従ってプレイヤキャラクタ802a,802bの音声データが再生されたり、効果音などの音データが再生されたりする。
続いて、ステップS373で、ゲーム終了かどうかを判断する。つまり、CPU50は、ボタン画像804eがオンされたかどうかを判断する。ステップS373で“NO”であれば、つまりゲーム終了でなければ、図38に示したステップS315に戻る。一方、ステップS373で“YES”であれば、つまりゲーム終了であれば、全体処理にリターンする。なお、2人用ゲーム処理では、ステップS315−ステップS373のスキャンタイムが1フレームである。また、プレイヤキャラクタ802a,802bの動作が開始されてからのフレーム数がフレームカウンタによってカウントされる点は、1人用ゲーム処理の場合と同じである。
図41に示すステップS375では、対戦結果画面(図示せず)を第1LCD16および第2LCD18に表示する。次のステップS377では、もう一度対戦するかどうかを判断する。ステップS377で“YES”であれば、つまりもう一度対戦する場合には、図37に示したステップS313に戻る。一方、ステップS377で“NO”であれば、つまりもう一度対戦しない場合には、ステップS379で、キャラクタ選択画面(図示せず)に戻るかどうかを判断する。
ステップS379で“YES”であれば、つまりキャラクタ選択画面に戻る場合には、図37に示したステップS303に戻る。一方、ステップS379で“NO”であれば、つまりキャラクタ選択画面に戻らない場合には、ステップS381で、スタート画面に戻るかどうかを判断する。
ステップS381で“NO”であれば、つまりスタート画面に戻らない場合には、ステップS377に戻る。一方、ステップS381で“YES”であれば、つまりスタート画面に戻る場合には、そのまま全体処理にリターンする。
この実施例によれば、プレイヤが撮影した様々なポーズの画像を用いて戦闘ゲームや対戦ゲームのような格闘ゲームにおいて、プレイヤの操作に応じて撮影した画像を表示するので、撮影により得られた被写体の画像の表示内容および表示タイミングにおいてバリエーションを豊富にすることができる。したがって、ゲームの面白味を増大させることができる。
なお、この実施例では、プレイヤが撮影した画像のみならず、プレイヤが録音した音声を用いるようにしたが、音声は予め録音ないし作成した音を用いるようにしてもよい。また、ステージ背景も開発者等が予め作成したものだけを用いるようにしてもよい。
また、上述の実施例では、撮影用のガイド画像は、くり抜き部以外に所定の色が付されたマスク画像によって構成されるようにしてあるが、これに限定される必要はない。たとえば、マスク画像では、パンチのポーズの形状を1つのくり抜き部で形成する必要は無く、図42(A)に示すように、頭の位置、手の位置、足の位置のそれぞれを示すマスク画像を用いてもよい。かかる場合には、丸、四角、三角のような簡単な図形を1つまたは2つ以上を合成した図形でくり抜き部を形成することができる。さらに、パンチのポーズの形状などは示さずに、図42(B)に示すように、パンチのポーズを撮影する旨のメッセージのみを記載した撮影用のガイド画像を表示するようにしてもよい。さらにまた、図示は省略するが、図5(A)に示したガイド画像202aにおいて、くり抜き部2020を設けずに、単なるポーズの形状の線画やイラストを表示するようにしてもよい。
さらに、ゲーム装置の構成は実施例のものに限定される必要はない。たとえば、表示装置(LCD)およびカメラは、それぞれ1つでもよい。また、タッチパネルを2つのLCD上に設けてもよい。