以下では、本発明の実施形態について説明する。なお以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.情報処理システムの構成
図1は、本実施形態の情報処理システム10の構成を示す概略ブロック図である。図1に示すように情報処理システム10では、サーバー装置12と複数の端末装置14が、インターネット、携帯電話網、LAN、WANなどのネットワーク16により接続されており、いわゆるクライアント・サーバー方式の通信システムが構成されている。そして複数の端末装置14のそれぞれは、ネットワーク16を介してサーバー装置12と互いに通信を行って種々の情報を送受信したり、ネットワーク16およびサーバー装置12を介して他の端末装置14と互いに通信を行って種々の情報を送受信したりする。
サーバー装置12は、CPU等のプロセッサー、ROMやRAM等の主記憶装置、ハードディスク等の外部記憶装置、キーボード等の入力装置、ディスプレイ等の出力装置、通信装置等を備えている。そしてサーバー装置12では、CPUが、主記憶装置に記憶されているプログラムや、外部記憶装置から主記憶装置にロードされたプログラムに従って各種の処理を実行し、通信装置によって端末装置14からの情報を受信したり、端末装置14に情報を送信したりする。
端末装置14は、スマートフォン、タブレット、パーソナルコンピューター、携帯ゲーム機、据え置きゲーム機など種々の形態の情報処理装置とすることができ、これらもCPU等のプロセッサー、ROMやRAM等の主記憶装置、フラッシュメモリ、ハードディスク等の外部記憶装置、タッチパネルやキーボード、マイク等の入力装置、ディスプレイやスピーカー等の出力装置、通信装置等を備えている。そして端末装置14でも、CPUが、主記憶装置に記憶されているプログラムや、外部記憶装置から主記憶装置にロードされたプログラムに従って各種の処理を実行し、通信装置によってサーバー装置12からの情報を受信したり、サーバー装置12や他の端末装置14に情報を送信したりする。
図2は、本実施形態の端末装置14の機能を示す機能ブロック図である。なお、図2の構成要素(各部)の一部を省略した構成としてもよい。
操作部50は、ユーザーが操作情報を入力するためのものであり、その機能は、タッチパネル、ボタン、キーボード、マウスなどにより実現できる。
表示部52は、表示画面に画像を表示するものであり、その機能は、液晶ディスプレイ、プラズマディスプレイなどにより実現できる。
音出力部54は、音を出力するものであり、その機能は、スピーカー、ヘッドフォンなどにより実現できる。
記憶部56は、情報処理部100や通信部66などのワーク領域となるもので、その機能はRAM(メインメモリ)や、VRAM(ビデオメモリ)などにより実現できる。本実施形態の記憶部56は、情報処理部100のワーク領域として使用される主記憶部58と、表示部52に表示させる画像が描画される描画バッファ60と、画像データが読み込まれる画像データ記憶部62を含む。
情報記憶媒体64は、プログラムや種々のデータなどを格納するものであり、その機能は、フラッシュメモリ、ハードディスク、光ディスク(DVD、BD)などにより実現できる。この情報記憶媒体64には、情報処理部100において種々の処理を行うためのプログラムやデータが記憶されている。すなわちこの情報記憶媒体64には、本実施形態の各部としてコンピューターを機能させるためのプログラム(各部の処理をコンピューターに実行させるためのプログラム)が記憶されている。
通信部66は、外部(例えばサーバー装置12や他の端末装置14)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサーまたは通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
なお本実施形態の各部としてコンピューターを機能させるためのプログラム(データ)は、サーバー装置12(ホスト)からネットワーク16および通信部66を介して情報記憶媒体64(あるいは主記憶部58)に配信するようにしてもよい。このようなサーバー装置12の情報記憶媒体の使用も本発明の範囲内に含めることができる。
情報処理部100は、操作部50からの操作データ、記憶部56の各種データ、通信部66からの受信データ、プログラムなどに基づいて、ゲーム処理、画像生成処理、音生成処理などの各種処理を、主記憶部58をワーク領域として行うものであり、その機能は、各種プロセッサー(CPU(メインプロセッサー)、GPU(描画プロセッサー)、DSP等)、ASICなどのハードウェアや、プログラムにより実現できる。
そして情報処理部100は、ゲーム処理部102、表示制御部104、動作管理部106、画像生成部108、音生成部110、通信制御部112を含む。なおこれらの一部を省略する構成としてもよい。
ゲーム処理部102は、ゲーム開始条件が満たされた場合にゲームを開始する処理、複数のゲーム機能のうち選択されたゲーム機能を実行する処理、ゲームを進行させる処理、イベント発生条件が満たされた場合にイベントを発生させる処理、複数のモードのうち選択されたモードを実行する処理、ゲーム結果を演算する処理、あるいはゲーム終了条件が満たされた場合にゲームを終了する処理などを行う。
表示制御部104は、表示部52の表示画面に表示される画像の表示制御を行う。具体的には、操作部50からの操作データ、画像データ記憶部62に記憶された画像データや動作データ、通信部66からの受信データ、情報処理部100で行われる種々の処理の結果、プログラムなどに基づいて、実行中のゲーム機能の種類、実行中のモードの種類、ゲームの進行状況などに応じて、背景画像、エフェクト画像、ボタン画像などのGUI画像、プリレンダリング画像(ムービー画像)、オブジェクト空間(所定領域)においてキャラクターやオブジェクトが配置された画像などの表示内容、表示態様、表示位置、表示タイミングなどの制御を行う。
詳細には表示制御部104は、キャラクター制御部140、オブジェクト制御部142を含む。
キャラクター制御部140は、画像データ記憶部62に記憶されているキャラクターデータに基づいて、キャラクターを表すポリゴンや自由曲面などのプリミティブで構成されるキャラクターをオブジェクト空間に配置する処理を行う。詳細にはキャラクター制御部140は、操作部50からの操作データ、通信部66からの受信データ、情報処理部100で行われる種々の処理の結果、プログラムなどに基づいて、1フレーム(1/30秒)ごとに、オブジェクト空間におけるキャラクターの位置や向き(回転角度)を決定し、決定した位置に決定された向きでキャラクターを配置する。
またキャラクター制御部140は、画像データ記憶部62に記憶されている動作データに基づいて、キャラクターを動作させる処理を行う。詳細にはキャラクター制御部140は、操作部50からの操作データ、通信部66からの受信データ、情報処理部100で行われる種々の処理の結果、プログラムなどに基づいて、複数種類の動作データから用いる動作データを選択し、選択した動作データに基づいて、1フレームごとに、キャラクターを構成する複数のパーツのそれぞれを動作させる。
オブジェクト制御部142は、画像データ記憶部62に記憶されているオブジェクトデータに基づいて、建物、道具、乗り物、地形などのキャラクター以外の物体を表すポリゴンや自由曲面などのプリミティブで構成されるオブジェクトをオブジェクト空間に配置する処理を行う。詳細にはオブジェクト制御部142は、操作部50からの操作データ、通信部66からの受信データ、情報処理部100で行われる種々の処理の結果、プログラムなどに基づいて、1フレームごとに、オブジェクト空間におけるオブジェクトの位置や向き(回転角度)を決定し、決定した位置に決定された向きでオブジェクトを配置する。
またオブジェクト制御部142は、動作を行うオブジェクトに関しては、画像データ記憶部62に記憶されている動作データに基づいて、オブジェクトを動作させる処理を行う。詳細にはオブジェクト制御部142は、操作部50からの操作データ、通信部66からの受信データ、情報処理部100で行われる種々の処理の結果、プログラムなどに基づいて、複数種類の動作データから用いる動作データを選択し、選択した動作データに基づいて、1フレームごとに、オブジェクトを構成する複数のパーツのそれぞれを動作させる。
動作管理部106は、キャラクターの動作を管理する処理を行う。詳細には動作管理部106は、操作部50からの操作データ、通信部66からの受信データ、情報処理部100で行われる種々の処理の結果、プログラムなどに基づいて、キャラクターに動作を行わせるための条件を判定したり、キャラクターの管理状態を設定したり、キャラクター制御部140に対してキャラクターを動作させるように命令したり、キャラクターに動作を中止させるための条件を判定したり、キャラクター制御部140に対してキャラクターの動作を中止させるように命令したりするなどの種々の処理を行う。
画像生成部108は、画像データ記憶部62に記憶された画像データ、情報処理部100で行われる種々の処理の結果、特に表示制御部104で行われる種々の処理の結果に基づいて描画処理を行うことにより、1フレームごとに描画バッファ60において、背景画像、エフェクト画像、ボタン画像などのGUI画像、プリレンダリング画像、オブジェクト空間にキャラクターとオブジェクトが配置された画像や、これらを組み合わせた画像を生成し、生成した画像を表示部52に出力する。
音生成部110は、情報処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、または音声などのゲーム音を生成し、音出力部54に出力する。
通信制御部112は、通信部66にサーバー装置12あるいは他の端末装置14と通信を行わせ、種々の情報を送受信させるための処理を行う。例えば通信制御部112は、ユーザーを情報処理システム10に新規登録する処理に必要な情報や、ユーザーを情報処理システム10にログインさせる処理に必要な情報や、ログインさせたユーザーと協力あるいは対戦する相手ユーザーを設定する処理に必要な情報や、複数の端末装置14を同期させる処理に必要な情報や、複数の端末装置14において共通のゲームを実行するための処理に必要な情報などを通信部66に送受信させる。また通信制御部112は、情報の宛先を示す宛先情報や、情報の送信元を示す送信元情報や、情報を生成した情報処理システム10を識別する識別情報なども通信部66に送受信させる。
2.本実施形態の制御手法
2−1.ゲームの概要
以下では、本実施形態の制御手法について、本実施形態のゲームプログラムをスマートフォンのゲームアプリに適用した場合を例に挙げて詳細に説明する。本実施形態のゲームプログラムでは、複数種類のゲーム機能を実行可能に構成されており、主たるゲーム機能であるクエスト機能では、複数種類のキャラクターによりパーティーを編成して、スタミナなどのパラメーターを消費しながら敵キャラクターと戦い、戦いの結果に応じて経験値や所持金などのパラメーターを増加させたり、アイテムを獲得したりしながらクエストをクリアするRPGをプレイすることができるようになっている。
また本実施形態では、従たるゲーム機能として、図3に示すように、表示部52の表示画面において、斜め上から俯瞰するように四角形の部屋200(所定領域)が表示され、部屋200に配置されたキャラクターの行動を鑑賞するゲーム機能であるルーム機能を実行可能に構成されている。なお本実施形態では、クエスト機能とルーム機能の他にも複数種類のゲーム機能を実行可能に構成されており、各ゲーム機能では、図3に示すように、表示画面の下端に各ゲーム機能に対応する機能ボタン202が表示され、ユーザーがタップした機能ボタン202に対応するゲーム機能が実行されるようになっている。
そしてルーム機能では、図3に示すように、1つの部屋200に最大で5人のキャラクターを配置することができ、部屋200に配置されたキャラクターA〜キャラクターEのそれぞれは、ユーザーの操作によらずに歩いたり独り言を言ったりするなど、様々な動作を行うように自動的に制御される。図3の例では、キャラクターCの頭上の吹き出し表示204に「お腹すいたー」という独り言が表示されるとともに、キャラクターCの音声で「お腹すいたー」という独り言がヘッドフォンから出力されている。
またルーム機能では、部屋200に家具を模したオブジェクトである複数種類の家具オブジェクトを配置することができ、図3の例では、部屋200の手前側に家具オブジェクトの一種であるおやつテーブル206が配置されており、部屋200の中央に家具オブジェクトの一種であるメインステージ208(特定オブジェクト)が配置されている。そしてルーム機能では、ユーザーの操作に応じて、部屋200に配置する家具オブジェクトの種類、数、位置、向きを変更することができるようになっている。
そして複数種類の家具オブジェクトには、初期状態から部屋200に配置される家具オブジェクトと、ユーザーが家具ショップにおいて所持金を消費して購入する操作を行うと、部屋200に配置することができるようになる家具オブジェクトがあり、図3に示すおやつテーブル206は、初期状態で配置される家具オブジェクトとなっており、メインステージ208は、家具ショップで購入できる家具オブジェクトとなっている。なお、初期状態では、いずれの家具オブジェクトも部屋200に配置されていないようにしてもよい。
また複数種類の家具オブジェクトには、家具オブジェクトに対応する動作をキャラクターが行わない通常家具オブジェクトと、家具オブジェクトに対応する動作をキャラクターが行う特定家具オブジェクトがあり、図示しない植木オブジェクトは、通常家具オブジェクトとなっており、図3に示すおやつテーブル206やメインステージ208は、特定家具オブジェクトとなっている。
そして本実施形態では、部屋200に特定家具オブジェクトが配置されている場合には、部屋200に配置されているキャラクターが特定家具オブジェクトに対応する動作を行うことがあるように、キャラクターの動作が制御される。例えば図3に示すように、部屋200におやつテーブル206が配置されている場合には、部屋200に配置されているいずれか1人のキャラクターがおやつテーブル206のおやつを食べる動作を行うことがあるように、また、部屋200にメインステージ208が配置されている場合には、部屋200に配置されているいずれか1人のキャラクターがメインステージ208の上で歌を練習する動作を行うことがあるように、キャラクターの動作が制御される。
また本実施形態では、図4に示すように、特定家具オブジェクトの一種であり、メインステージ208とは外観が異なるサブステージ210(特定オブジェクト)を家具ショップで購入して部屋200に配置することができるようになっている。そして、部屋200にサブステージ210が配置されている場合にも、部屋200に配置されているいずれか1人のキャラクターがサブステージ210の上で歌を練習する動作を行うことがあるように、キャラクターの動作が制御される。
そして本実施形態では、1つの部屋200に最大で1個のメインステージ208と2個のサブステージ210(N個の特定オブジェクト)を配置することができ、図4に示すように、1つの部屋200に1個のメインステージ208と2個のサブステージ210が配置されている場合には、部屋200に配置されているいずれか3人のキャラクター(N個のキャラクター)が、1個のメインステージ208と2個のサブステージ210のそれぞれの上で歌を歌いながら踊る動作を同時に行う(複数のキャラクターを関連させて動作させる)ことがあるように、キャラクターの動作が制御される。
ここで本実施形態では、図3に示すいずれか1人のキャラクターがメインステージ208の上で歌を練習する動作、および図示しないいずれか1人のキャラクターがサブステージ210の上で歌を練習する動作と、図4に示すいずれか3人のキャラクターが1個のメインステージ208と2個のサブステージ210のそれぞれの上で歌を歌いながら踊る動作は、異なる動作となっている。
そして本実施形態では、ルーム機能においてキャラクターが行う複数種類の動作が、複数種類の第1動作と複数種類の第2動作に大別されており、複数種類の第1動作は、図5(A)に示すように、「待機動作」、「歩く動作」、「一般動作」、「アイテム動作」に分類されている。詳細には、「待機動作」とは、キャラクターが移動せずにその場で待つ動作であり、「歩く動作」とは、キャラクターが所定距離を移動する動作であり、「一般動作」とは、その場で手を振る動作や驚く動作など、1人のキャラクターが単独で行いかつ家具オブジェクトに対応しない動作であり、「アイテム動作」とは、上述したメインステージ208またはサブステージ210の上で1人のキャラクターが歌を練習する動作(特定オブジェクトに対応する動作)や、おやつテーブル206のおやつを1人のキャラクターが食べる動作など、1人のキャラクターが単独で行いかつ家具オブジェクトに対応する動作である。すなわち「待機動作」、「歩く動作」、「一般動作」、「アイテム動作」のそれぞれには、1種類または複数種類の第1動作が含まれている。
また複数種類の第2動作は、図5(B)に示すように、「独り言動作」、「会話動作」、「関連動作」に分類されている。詳細には、「独り言動作」とは、キャラクターの種類に応じた独り言が吹き出し表示204に表示されるとともにキャラクターの種類に応じた音声でヘッドフォンから出力されることにより1人のキャラクターが独り言を言う動作であり、「会話動作」とは、吹き出し表示204や音声の出力は行われずに複数のキャラクターが集まって会話をする動作であり、「関連動作」とは、上述した1個のメインステージ208と2個のサブステージ210のそれぞれの上で歌を歌いながら踊る動作を3人のキャラクターが同時に行う動作(N個の特定オブジェクトに対応する動作)など、複数のキャラクターが同時に行いかつ家具オブジェクトに対応する動作である。すなわち「独り言動作」、「会話動作」、「関連動作」のそれぞれにも、1種類または複数種類の第2動作が含まれている。
またルーム機能では、キャラクターが自動的に動作を行うだけでなく、ユーザーの操作に応じてキャラクターに所定の動作を行わせることができるようになっている。詳細には、第1動作である「待機動作」または「歩く動作」を行っているキャラクターをユーザーがタップすると、実行中の動作が終了されて、タップされたキャラクターが第1動作である「一般動作」または第2動作である「独り言動作」を行うように、キャラクターの動作が制御される。なお、「一般動作」、「アイテム動作」、「独り言動作」、「会話動作」、「関連動作」を行っているキャラクターをユーザーがタップしても、実行中の動作が継続される。
またルーム機能では、ユーザーの操作に応じて、キャラクターの位置を変更することができるようになっている。詳細には、「待機動作」、「歩く動作」、「一般動作」、「独り言動作」または「会話動作」を行っているキャラクターをユーザーがロングタップすると、実行中の動作が終了されて、ロングタップしたキャラクターが宙に浮いたように表示され、そのままドラッグすると宙に浮いたキャラクターがタッチ位置に追従するように移動し、タッチパネルから指を離すとキャラクターが床に降り立つように表示されることにより、キャラクターの位置が変更される。なお、「アイテム動作」、「関連動作」を行っているキャラクターをユーザーがロングタップしても、実行中の動作が継続される。
またルーム機能では、ユーザーの操作に応じて、配置する家具オブジェクトの位置、向きを変更することができるようになっている。詳細には、ユーザーが任意の家具オブジェクトをタップすると、タップした家具オブジェクトが選択されて色が変化し、図示しない配置変更ボタンおよび収納ボタンが操作可能となる。そして配置変更ボタンがタップされると、色が変化した家具オブジェクトが宙に浮いたように表示されるとともに、図示しない設置ボタンおよび反転ボタンが操作可能となる。そして反転ボタンがタップされると、宙に浮いた家具オブジェクトの向きが反転し、宙に浮いた家具オブジェクトをドラッグすると宙に浮いた家具オブジェクトがタッチ位置に追従するように移動し、設置ボタンがタップされると宙に浮いた家具オブジェクトが床に降ろされるように表示されることにより、家具オブジェクトが配置される位置または向きが変更される。
ここで本実施形態では、部屋200の床面が16×16=256個の正方形のブロックに区切られており、キャラクターは部屋200の床面を移動することができるが、部屋200の床面以外の領域を移動することはできないようになっている。そしてキャラクターが部屋200の床面を移動する場合には、辺同士で隣接する他のブロックに移動することはできるが、角同士で隣接する他のブロックには移動することができないようになっている。すなわち、キャラクターは複数のブロックの間を各ブロックの辺を跨ぐようにして移動する。そして本実施形態では、1人のキャラクターが滞在しているブロックを他のキャラクターが通過することによりすれ違うことができるが、1個のブロックに複数のキャラクターが滞在しないように、また複数のキャラクターが重なって移動しないように、複数のキャラクターのそれぞれが制御される。
また本実施形態では、例えば1個のおやつテーブル206は、1個のブロックに配置され、1個のメインステージ208あるいは1個のサブステージ210は、横4ブロック縦4ブロックの16個のブロックに配置されるようになっており、1個のブロックに重ねて複数の家具オブジェクトを配置することができないようになっている。また、キャラクターは、「アイテム動作」または「関連動作」を行う場合を除き、家具オブジェクトが配置されているブロックには進入することができないようになっている。
2−2.キャラクターの動作制御
以下では、ルーム機能におけるキャラクターの動作の制御の詳細について説明する。本実施形態では、動作管理部106が、第1動作を管理する第1動作管理処理(第1動作管理部)と、第2動作を管理する第2動作管理処理(第2動作管理部)を行う。そして動作管理部106は、キャラクターが第1動作を行っている場合には、そのキャラクターの管理状態を第1動作実行状態に設定し、キャラクターが第2動作を行っている場合には、そのキャラクターの管理状態を第2動作実行状態に設定し、キャラクターが上述したロングタップされることにより位置を変更する処理の対象となっている場合には、そのキャラクターの管理状態を位置変更状態に設定する。
図6は、第1動作管理処理の流れを示すフローチャートである。図6に示すように、第1動作管理処理では、動作管理部106が、第1動作抽選処理と(ステップS100)、第1動作実行処理と(ステップS102)と、第2動作待機処理(ステップS104)を行う。
詳細には、ステップS100の第1動作抽選処理では、動作管理部106は、部屋200に配置されているキャラクターのうち、管理状態が第1動作実行状態、第2動作実行状態および位置変更状態のいずれでもない空き状態のキャラクターが存在するか否かを、1フレームごとに判定する。そして、空き状態のキャラクターが存在する場合に、動作管理部106は、空き状態のキャラクターのそれぞれを第1動作管理処理の処理対象とし、処理対象のキャラクターのそれぞれについて、乱数を用いた抽選を行って図5(A)で示した複数種類の第1動作から1つの第1動作を決定する。
例えば、キャラクターAのみが空き状態であると判定すると、動作管理部106は、キャラクターAのみを処理対象として抽選を行って1つの第1動作を決定し、キャラクターAおよびキャラクターBが空き状態であると判定すると、キャラクターAを処理対象として抽選を行って1つの第1動作を決定し、キャラクターBを処理対象として別の抽選を行って1つの第1動作を決定する。すなわち第1動作管理処理は、複数のキャラクターのそれぞれについて並行して行われる。
そして、処理対象のキャラクターについて1つの第1動作を決定すると、動作管理部106は、ステップS102の第1動作実行処理を行う。そして第1動作実行処理では、動作管理部106は、決定した第1動作を処理対象のキャラクターに行わせるように、キャラクター制御部140に対して命令する。例えば、動作管理部106がキャラクターAについて「歩く動作」を決定すると、キャラクターAに「歩く動作」を行わせるようにキャラクター制御部140に対して命令する。そして動作管理部106は、処理対象のキャラクターの管理状態を第1動作実行状態に設定する。
すると、キャラクター制御部140が、決定された第1動作に対応する動作データに基づいて、処理対象のキャラクターに決定された第1動作を行わせる制御を行い、処理対象のキャラクターによる第1動作が終了すると、動作管理部106は、ステップS104の第2動作待機処理を行う。そして第2動作待機処理では、動作管理部106は、処理対象のキャラクターの管理状態を、第2動作管理処理の処理対象として設定されることを待機する待機状態に設定する。
そして、処理対象のキャラクターが第2動作管理処理の処理対象として設定されないまま、第1動作が終了したフレームの次のフレームが終了すると、動作管理部106は、処理対象のキャラクターの管理状態を空き状態に設定し、第1動作管理処理を終了する。一方、処理対象のキャラクターが第2動作管理処理の処理対象として設定されると、処理対象のキャラクターの管理状態は第2動作管理処理において第2動作実行状態に設定されるため、そのまま第1動作管理処理を終了する。
例えば、キャラクターAによる「歩く動作」が終了すると、動作管理部106は、キャラクターAを待機状態に設定し、キャラクターAが第2動作管理処理の処理対象として設定されないまま、「歩く動作」が終了したフレームの次のフレームが終了すると、キャラクターAを空き状態に設定し、第1動作管理処理を終了する。一方、キャラクターAが第2動作管理処理の処理対象として設定されると、そのまま第1動作管理処理を終了する。
そして、第1動作管理処理の処理対象のキャラクターが空き状態に設定されると、空き状態のキャラクターは再び第1動作管理処理の処理対象に設定される。
図7は、第2動作管理処理の流れを示すフローチャートである。図7に示すように、第2動作管理処理では、動作管理部106が、第2動作の実行可能条件を満たすか否か判定し(ステップS200)、第2動作の実行可能条件を満たす場合には(ステップS200でY)、第2動作を決定する第2動作抽選処理を行い(ステップS202)、決定した第2動作の開始条件を満たすか否かを判定する(ステップS204)。一方、第2動作の実行可能条件を満たさない場合には(ステップS200でN)、そのまま処理を終了する。
そして、決定した第2動作の開始条件を満たす場合には(ステップS204でY)、決定した第2動作をキャラクターに行わせる第2動作実行処理を行い(ステップS206)、全ての第2動作が終了したか否かを判定する(ステップS208)。そして、全ての第2動作が終了すると(ステップS208でY)、クールタイム処理を行って(ステップS210)、処理を終了する。
一方、決定した第2動作の開始条件を満たさない場合には(ステップS204でN)、第2動作が上述した「関連動作」でありかつ開始条件の判定回数が所定回数未満であるか否かを判定する(ステップS212)。そして、決定した第2動作が「関連動作」でありかつ開始条件の判定回数が所定回数未満である場合には(ステップS212でY)、ステップS204に戻り、第2動作すなわち「関連動作」の開始条件を満たすか否かを繰り返し判定する。また、第2動作が「関連動作」でないか、第2動作が「関連動作」であっても開始条件の判定回数が所定回数に到達すると(ステップS212でN)、クールタイム処理を行って(ステップS210)、処理を終了する。
2−3.第2動作管理処理の詳細
2−3−1.実行可能条件と第2動作抽選処理
以下では、第2動作管理処理の詳細について説明する。まず、ステップS200の第2動作の実行可能条件を満たすか否かを判定する処理では、動作管理部106は、図8に示すように、部屋200にいずれのキャラクターも配置されていない場合、いずれかのキャラクターが「独り言動作」を行っている場合、ルーム機能においていずれかのモードが実行されている場合、クールタイム処理が実行されている場合には、第2動作を実行可能な状態ではないとして、第2動作の実行可能条件を満たさないと判定する。
ここで本実施形態では、部屋200にキャラクターが配置されていない場合には、第2動作を行わせる対象が存在しないことから、第2動作の実行可能条件を満たさないと判定するようにしている。また、いずれかのキャラクターが「独り言動作」を行っている場合には、図5(B)で示したように、独り言の音声がヘッドフォンから出力されるため、重ねて「独り言動作」、「会話動作」、「関連動作」が行われると、既に行われている「独り言動作」による演出効果が低減してしまうことから、第2動作の実行可能条件を満たさないと判定するようにしている。
また本実施形態では、図9に示すように、ルーム機能における表示画面の右上に表示されるメニューボタン212をユーザーがタップすると、部屋200の一部を覆うようにメニュー画像214が表示される。そして、メニュー画像214に含まれる複数種類のモードボタンのいずれかをユーザーがタップすると、タップしたモードボタンに対応するモードが実行され、対応するモード画像が部屋200のほぼ全部を覆うように表示される。例えば、図9に示すギフトボタン216をユーザーがタップすると、キャラクターにおやつを贈るギフトモードが実行され、図10に示すように、贈るおやつの種類を選択する選択ボタンを含むギフトモード画像218が、部屋200のほぼ全部を覆うように表示される。従って、ルーム機能においていずれかのモードが実行されている場合には、部屋200に配置されたキャラクターの全てがモード画像に覆われて表示されなくなることから、第2動作の実行可能条件を満たさないと判定するようにしている。
また本実施形態では、第2動作が連続して実行されるとユーザーに不自然な印象を与えるため、実行中の全ての第2動作が終了すると、クールタイム処理を行うことにより第2動作が連続して実行されないようにしていることから、クールタイム処理が実行されている場合には、第2動作の実行可能条件を満たさないと判定するようにしている。
従って本実施形態では、例えば、いずれかのキャラクターが「独り言動作」を行っていなければ、「会話動作」あるいは「関連動作」を行っている場合であっても、第2動作の実行可能条件を満たすと判定する場合があり、ルーム機能においてメニュー画像214が表示されている場合には、いずれのモードも実行されておらず、メニュー画像214に覆われるのは部屋200の一部であることから、第2動作の実行可能条件を満たすと判定する場合があるようにしている。
そして、第2動作の実行可能条件を満たすと判定すると、動作管理部106は、ステップS202の第2動作抽選処理を行う。そして第2動作抽選処理では、動作管理部106は、第1動作抽選処理とは異なり、キャラクターの管理状態に関わらず、乱数を用いた抽選を行って図5(B)で示した複数種類の第2動作から1つの第2動作を決定する。
2−3−2.開始条件
そして、複数種類の第2動作から1つの第2動作を決定すると、動作管理部106は、ステップS204の第2動作の開始条件を満たすか否かを判定する処理を行う。詳細には、動作管理部106は、図11に示すように、決定した第2動作の種類に応じた開始条件を満たすか否かを判定する。
具体的には、「独り言動作」が決定された場合には、動作管理部106は、第2動作が可能なキャラクターが1人以上いる場合に開始条件を満たすと判定する。ここで、図11に示す「第2動作が可能なキャラクター」とは、図5(A)で示した第1動作のうち「待機動作」、「歩く動作」、「一般動作」を行っているキャラクター、または図6のステップS104の第2動作待機処理において管理状態が待機状態に設定されているキャラクターである。従って本実施形態では、「アイテム動作」を行っているキャラクター、管理状態が位置変更状態に設定されているキャラクターは、「第2動作が可能なキャラクター」に含まれない。なお、いずれかのキャラクターが第2動作を行っている場合には、第2動作管理処理が実行されることがないため、いずれかの第2動作を行っているキャラクターも「第2動作が可能なキャラクター」に含まれない。
そして、「独り言動作」が決定された場合であって、第2動作が可能なキャラクターが1人以上いる場合には、動作管理部106は、「独り言動作」の開始条件を満たすと判定し、第2動作が可能な1人以上のキャラクターの中から「独り言動作」を行わせる1人のキャラクターを決定し、決定した1人のキャラクターを、「独り言動作」を行わせる処理対象のキャラクターとして設定する。
一方、「独り言動作」が決定された場合であって、第2動作が可能なキャラクターが1人以上いない場合には、動作管理部106は、「独り言動作」の開始条件を満たさないと判定する。
また「会話動作」が決定された場合には、動作管理部106は、第2動作が可能なキャラクターが2人以上存在し、かつ第2動作が可能な2人以上のキャラクターのうち少なくとも1人のキャラクターについて集合場所への移動経路が確保されている場合に開始条件を満たすと判定する。
詳細には動作管理部106は、「会話動作」が決定された場合であって、第2動作が可能なキャラクターが2人以上いる場合には、動作管理部106は、第2動作が可能な2人以上のキャラクターの中から集合場所となるキャラクターである1人の待ちキャラクターを決定する。そして、第2動作が可能な2人以上のキャラクターのうち、待ちキャラクター以外のキャラクターである移動キャラクターのそれぞれについて、移動キャラクターの位置から待ちキャラクターに隣り合う位置まで、家具オブジェクトが配置されているブロックを通らずに移動可能な経路である集合場所への移動経路を求める。
ここで、移動キャラクターの位置と待ちキャラクターに隣り合う位置の間に複数の家具オブジェクトが部屋200の端から端まで隙間無く配置されている場合や、移動キャラクターを囲むように複数の家具オブジェクトが隙間無く配置されている場合には、かかる移動キャラクターについては集合場所への移動経路を求めることができない。また、待ちキャラクターを囲むように複数の家具オブジェクトが隙間無く配置されている場合には、全ての移動キャラクターについて集合場所への移動経路を求めることができない。
そして、集合場所への移動経路を求めることができた場合には、動作管理部106は、求めた移動経路の中から最短の移動経路をそのキャラクターの集合場所への移動経路として確保する。そして、少なくとも1人の移動キャラクターについて集合場所への移動経路が確保された場合に、動作管理部106は、「会話動作」の開始条件を満たすと判定する。
例えば、「会話動作」が決定された場合であって、第2動作が可能なキャラクターが3人存在する場合において、1人の移動キャラクターについて集合場所への移動経路が確保された場合には、もう1人の移動キャラクターについて集合場所への移動経路が確保されない場合であっても、「会話動作」の開始条件を満たすと判定する。
そして、「会話動作」が決定された場合であって、少なくとも1人の移動キャラクターについて集合場所への移動経路が確保された場合には、動作管理部106は、待ちキャラクターと集合場所への移動経路が確保された移動キャラクターを、「会話動作」を行わせる処理対象のキャラクターとして設定する。
一方、集合場所への移動経路を求めることができなかった場合には、動作管理部106は、「会話動作」の開始条件を満たさないと判定する。
また「関連動作」が決定された場合には、動作管理部106は、1つの部屋200に1個のメインステージ208と2個のサブステージ210が配置されており、かつ1個のメインステージ208と2個のサブステージ210のそれぞれに設定された動作開始位置220がキャラクターが進入可能な位置であり、かつ第2動作が可能なキャラクターが3人以上存在し、かつ第2動作が可能な3人のキャラクターのそれぞれについて互いに異なるステージへの移動経路が確保されている場合に開始条件を満たすと判定する。
2−3−3.関連動作の開始条件
以下では、「関連動作」が決定された場合における開始条件について詳細に説明する。図12(A)および図12(B)は、5人のキャラクターと1個のメインステージ208と2個のサブステージ210と1個のおやつテーブル206が配置された部屋200の床面を真上から見た様子を示す図である。以下では、2個のサブステージ210のうちメインステージ208に向かって左側に配置されたサブステージ210を第1サブステージ210−1とし、メインステージ208に向かって右側に配置されたサブステージ210を第2サブステージ210−2とする。本実施形態では、図12(A)に示すように、メインステージ208、第1サブステージ210−1および第2サブステージ210−2のそれぞれには、それぞれの正面に接する1個のブロックの中心に相当する位置が、キャラクターが「関連動作」を開始する動作開始位置220として設定されている。
そして、「関連動作」が決定された場合であって、1つの部屋200にメインステージ208、第1サブステージ210−1および第2サブステージ210−2が配置されている場合に、動作管理部106は、部屋200に配置されているメインステージ208、第1サブステージ210−1および第2サブステージ210−2のそれぞれについて、動作開始位置220が床面のいずれかのブロックに存在するか否か、および動作開始位置220が存在するブロックに家具オブジェクトが配置されているか否かを判定する。
そして、図12(A)に示すように、部屋200に配置されているメインステージ208、第1サブステージ210−1および第2サブステージ210−2のそれぞれの動作開始位置220が、床面のいずれかのブロックに存在し、かつそれぞれの動作開始位置220が存在するブロックに家具オブジェクトが配置されていない場合(N個の特定オブジェクトが配置されている位置が所定条件を満たす場合)に、メインステージ208、第1サブステージ210−1および第2サブステージ210−2のそれぞれに設定された動作開始位置220がキャラクターが進入可能な位置であると判定する。
一方、図12(B)に示す第1サブステージ210−1のように、その正面が部屋200の境界線に沿うように配置されていることにより、動作開始位置220が床面のいずれかのブロックに存在しない場合や、図12(B)に示すメインステージ208のように、動作開始位置220が存在するブロックにおやつテーブル206などの他の家具オブジェクトが配置されている場合には、動作開始位置220がキャラクターが進入可能な位置でないと判定する。
なお本実施形態では、図12(A)に示す第1サブステージ210−1と、図12(B)に示す第1サブステージ210−1は、第1サブステージ210−1が配置されている位置は同一であるが向きが異なることにより、図12(A)に示す第1サブステージ210−1の動作開始位置220は、キャラクターが進入可能な位置であると判定されるが、図12(B)に示す第1サブステージ210−1の動作開始位置220は、キャラクターが進入可能な位置でないと判定される。
そして、メインステージ208、第1サブステージ210−1および第2サブステージ210−2のそれぞれに設定された動作開始位置220がキャラクターが進入可能な位置である場合であって、第2動作が可能なキャラクターが3人以上存在する場合に、動作管理部106は、第2動作が可能な3人のキャラクターのそれぞれについて互いに異なるステージへの移動経路が確保されているか否かを判定する。
具体的には動作管理部106は、第2動作が可能な3人以上のキャラクターのうち、まずは第2動作が可能となったタイミングが最も早かった1人のキャラクターについて、そのキャラクターの位置からメインステージ208の動作開始位置220まで、家具オブジェクトが配置されているブロックを通らずに移動可能な経路であるメインステージ208への移動経路を求める。ここで、そのキャラクターの位置とメインステージ208の動作開始位置220の間に複数の家具オブジェクトが部屋200の端から端まで隙間無く配置されている場合や、そのキャラクターまたはメインステージ208を囲むように複数の家具オブジェクトが隙間無く配置されている場合には、そのキャラクターについてはメインステージ208への移動経路を求めることができない。
また動作管理部106は、そのキャラクターについて、そのキャラクターの位置から第1サブステージ210−1の動作開始位置220まで、家具オブジェクトが配置されているブロックを通らずに移動可能な経路である第1サブステージ210−1への移動経路を求める。ここで、そのキャラクターの位置と第1サブステージ210−1の動作開始位置220の間に複数の家具オブジェクトが部屋200の端から端まで隙間無く配置されている場合や、そのキャラクターまたは第1サブステージ210−1を囲むように複数の家具オブジェクトが隙間無く配置されている場合には、そのキャラクターについては第1サブステージ210−1への移動経路を求めることができない。
また動作管理部106は、そのキャラクターについて、そのキャラクターの位置から第2サブステージ210−2の動作開始位置220まで、家具オブジェクトが配置されているブロックを通らずに移動可能な経路である第2サブステージ210−2への移動経路を求める。ここで、そのキャラクターの位置と第2サブステージ210−2の動作開始位置220の間に複数の家具オブジェクトが部屋200の端から端まで隙間無く配置されている場合や、そのキャラクターまたは第2サブステージ210−2を囲むように複数の家具オブジェクトが隙間無く配置されている場合には、そのキャラクターについては第2サブステージ210−2への移動経路を求めることができない。
こうして、第2動作が可能となったタイミングが最も早かった1人のキャラクターについて、メインステージ208への移動経路、第1サブステージ210−1への移動経路または第2サブステージ210−2への移動経路を求めることができた場合には、求めた移動経路の中から最短の移動経路をそのキャラクターの移動経路として確保する。
例えば、図12(A)に示す状態で、第2動作が可能なキャラクターが、キャラクターB、キャラクターC、キャラクターDおよびキャラクターEであって、第2動作が可能となったタイミングが最も早かったキャラクターが、キャラクターDである場合には、まずはキャラクターDについて、メインステージ208への移動経路と、第1サブステージ210−1への移動経路と、第2サブステージ210−2への移動経路を求める。すると、図12(A)に示す例では、キャラクターDについては、メインステージ208への移動経路および第1サブステージ210−1への移動経路が最短の経路となるが、本実施形態では、メインステージ208への移動経路を優先させて、キャラクターDの移動経路として確保する。なお、サブステージ210への移動経路を優先させて、対応するキャラクターの移動経路として確保するようにしてもよい。
すると動作管理部106は、第2動作が可能となったタイミングが2番目に早かった1人のキャラクターについて、そのキャラクターの位置から未だ移動経路が確保されていない残りの2つのステージのそれぞれの動作開始位置220まで、家具オブジェクトが配置されているブロックを通らずに移動可能な経路である残りの2つのステージへの移動経路を求める。そして、第2動作が可能となったタイミングが2番目に早かった1人のキャラクターについて、残りの2つのステージへの移動経路を求めることができた場合には、求めた移動経路の中から最短の移動経路をそのキャラクターの移動経路として確保する。
例えば、図12(A)に示す状態で、キャラクターDについてメインステージ208への移動経路が確保され、第2動作が可能となったタイミングが2番目に早かったキャラクターがキャラクターEである場合には、キャラクターEについて、第1サブステージ210−1への移動経路と、第2サブステージ210−2への移動経路を求める。すると、図12(A)に示す例では、キャラクターEについては、第2サブステージ210−2への移動経路が最短の移動経路となるため、第2サブステージ210−2への移動経路をキャラクターEの移動経路として確保する。
すると動作管理部106は、第2動作が可能となったタイミングが3番目に早かった1人のキャラクターについて、そのキャラクターの位置から未だ移動経路が確保されていない残りの1つのステージの動作開始位置220まで、家具オブジェクトが配置されているブロックを通らずに移動可能な経路である残りの1つのステージへの移動経路を求める。そして、第2動作が可能となったタイミングが3番目に早かった1人のキャラクターについて、残りの1つのステージへの移動経路を求めることができた場合には、求めた移動経路をそのキャラクターの移動経路として確保する。
例えば、図12(A)に示す状態で、キャラクターDについてメインステージ208への移動経路が確保され、キャラクターEについて第2サブステージ210−2への移動経路が確保され、第2動作が可能となったタイミングが3番目に早かったキャラクターがキャラクターBである場合には、キャラクターBについて、第1サブステージ210−1への移動経路を求め、第1サブステージ210−1への移動経路をキャラクターBの移動経路として確保する。
ここで、第2動作が可能となったタイミングが何番目かに早かった1人のキャラクターについて、いずれのステージへの移動経路も求めることができなかった場合には、動作管理部106は、第2動作が可能となったタイミングが次に早かった1人のキャラクターについて、そのキャラクターの位置から未だ移動経路が確保されていない残りのステージの動作開始位置220まで、家具オブジェクトが配置されているブロックを通らずに移動可能な経路である残りのステージへの移動経路を求める。そして、第2動作が可能となったタイミングが次に早かった1人のキャラクターについて、残りのステージへの移動経路が求められた場合には、求めた移動経路の中から最短の移動経路をそのキャラクターの移動経路として確保する。
こうして動作管理部106は、第2動作が可能となったタイミングが早かったキャラクターから順に、1人のキャラクターについてメインステージ208への移動経路、第1サブステージ210−1への移動経路および第2サブステージ210−2への移動経路のいずれか1つを確保し、ステージへの移動経路が確保されたキャラクターが3人となった場合に、第2動作が可能な3人のキャラクターのそれぞれについて互いに異なるステージへの移動経路が確保されていると判定する。
一方、第2動作が可能ないずれかのキャラクターについて、メインステージ208への移動経路、第1サブステージ210−1への移動経路および第2サブステージ210−2への移動経路のいずれも求めることができないことにより、ステージへの移動経路が確保されたキャラクターが3人とならない場合には、動作管理部106は、第2動作が可能な3人のキャラクターのそれぞれについて互いに異なるステージへの移動経路が確保されていないと判定する。
そして、「関連動作」が決定された場合であって、第2動作が可能な3人のキャラクターのそれぞれについて互いに異なるステージへの移動経路が確保された場合には、動作管理部106は、「関連動作」の開始条件を満たすと判定し、ステージへの移動経路が確保されたキャラクターを、「関連動作」を行わせる処理対象のキャラクターとして設定する。例えば、キャラクターBについて第1サブステージ210−1への移動経路が確保され、キャラクターDについてメインステージ208への移動経路が確保され、キャラクターEについて第2サブステージ210−2への移動経路が確保された場合には、キャラクターB、キャラクターDおよびキャラクターEを、「関連動作」を行わせる処理対象として設定する。
一方、「関連動作」が決定された場合であって、第2動作が可能な3人のキャラクターのそれぞれについて互いに異なるステージへの移動経路が確保されなかった場合には、動作管理部106は、「関連動作」の開始条件を満たさないと判定する。
このように本実施形態では、動作管理部106は、決定した第2動作の種類に応じた開始条件を満たすと判定した場合に、対応するキャラクターを決定した第2動作を行わせる処理対象のキャラクターとして設定する。
ここで本実施形態では、動作管理部106は、第2動作の開始条件を満たさないと判定した場合には、ステップS212の第2動作が関連動作かつ開始条件の判定回数が所定回数未満であるか否かを判定する処理を行う。詳細には本実施形態では、第2動作の開始条件を満たさないと判定した場合であっても、第2動作が関連動作である場合には、上述したように開始条件として多くの条件を満たす必要があることから、関連動作の実行頻度を高くするため、次のフレームにおいても、ステップS204の第2動作すなわち関連動作の開始条件(特定条件)を満たすか否かを判定する処理を繰り返し行う。
そして、関連動作の開始条件を満たすか否かを判定する処理を行った回数が30回に到達すると、すなわち関連動作の開始条件を満たすか否かを判定する1回目の処理を行ってから30フレームが経過すると、それ以上は関連動作の開始条件を満たすか否かを判定する処理を繰り返し行わずに、ステップS210のクールタイム処理を行う。
一方、第2動作の開始条件を満たさないと判定した場合であって、第2動作が関連動作以外の動作である場合には、ステップS204の第2動作の開始条件を満たすか否かを判定する処理を繰り返し行わずに、ステップS210のクールタイム処理を行う。
2−3−4.第2動作実行処理
そして、第2動作の開始条件を満たすと判定した場合には、動作管理部106は、ステップS206の第2動作実行処理を行う。そして第2動作実行処理では、動作管理部106は、決定した第2動作を処理対象のキャラクターに行わせるように、キャラクター制御部140に対して命令する。例えば、動作管理部106が「関連動作」を決定し、ステージへの移動経路が確保されたキャラクターB、キャラクターDおよびキャラクターEを処理対象として設定した場合には、キャラクターB、キャラクターDおよびキャラクターEに「関連動作」を行わせるようにキャラクター制御部140に対して命令する。そして動作管理部106は、処理対象のキャラクターの管理状態を第2動作実行状態に設定する。
すると、キャラクター制御部140が、決定された第2動作に対応する動作データに基づいて、処理対象のキャラクターに決定された第2動作を行わせる制御を行う。
例えば、図12(A)で示した例のように、キャラクターBについて第1サブステージ210−1への移動経路が確保され、キャラクターDについてメインステージ208への移動経路が確保され、キャラクターEについて第2サブステージ210−2への移動経路が確保されたことにより、キャラクターB、キャラクターDおよびキャラクターEに「関連動作」を行わせる場合には、キャラクター制御部140は、まずは「関連動作」を行わせるための「準備動作」として、キャラクターBについて確保された第1サブステージ210−1への移動経路に沿って、キャラクターBを第1サブステージ210−1の動作開始位置220まで移動させ、キャラクターDについて確保されたメインステージ208への移動経路に沿って、キャラクターDをメインステージ208の動作開始位置220まで移動させ、キャラクターEについて確保された第2サブステージ210−2への移動経路に沿って、キャラクターEを第2サブステージ210−2の動作開始位置220まで移動させる。
すると、図12(A)の例では、キャラクターEが最も早く第2サブステージ210−2の動作開始位置220に到達し、キャラクターBが2番目に早く第1サブステージ210−1の動作開始位置220に到達し、キャラクターDが最後にメインステージ208の動作開始位置220に到達することになるが、キャラクター制御部140は、キャラクターDが最後にメインステージ208の動作開始位置220に到達するまで、キャラクターEを第2サブステージ210−2の動作開始位置220に待機させ、キャラクターBを第1サブステージ210−1の動作開始位置220に待機させる。すなわち、キャラクター制御部140は、動作開始位置220に移動中のキャラクターが存在する場合には、移動中のキャラクターが動作開始位置220に到達するまで、動作開始位置220に到達したキャラクターを動作開始位置220で待機させる。
すなわち「関連動作」を行わせる場合には、キャラクター制御部140は、まずは「関連動作」の「準備動作」の実行を開始し、処理対象の3人のキャラクターのそれぞれのステージへの移動経路に応じた「準備動作」の動作データに基づいて、処理対象の3人のキャラクターのそれぞれに「準備動作」を行わせる制御を行う。
そして、3人のキャラクターが動作開始位置220に到達すると、キャラクター制御部140は、「関連動作」の「準備動作」の実行を終了して「関連動作」の実行を開始し、3人のキャラクターに、それぞれの動作開始位置220からそれぞれのステージに登る動作を同期させて行わせる。そして、3人のキャラクターがそれぞれのステージに立つと、3人のキャラクターが歌う楽曲がヘッドフォンから出力される。そして楽曲の出力が開始されると、キャラクター制御部140は、図4で示したように、3人のキャラクターに、それぞれのステージで歌いながら踊る動作を同期させて行わせる。そして、3人のキャラクターの歌いながら踊る動作が終了すると、楽曲の出力が終了し、3人のキャラクターに、それぞれのステージからそれぞれの動作開始位置220に降りる動作を同期させて行わせる。すると、「関連動作」の実行が終了する。
このように本実施形態では、「関連動作」の動作データには、動作開始位置220からステージに登る動作の動作データ、ステージで歌いながら踊る動作の動作データ、ステージから動作開始位置220に降りる動作の動作データが含まれており、キャラクター制御部140は、3人のキャラクターのそれぞれについて、かかる「関連動作」の動作データを同期して再生することにより、処理対象の3人のキャラクターのそれぞれに「関連動作」を同期させて行わせる。
ここで本実施形態では、複数種類のキャラクターのそれぞれに同一または異なる性格パラメーター(属性データ)が設定されており、キャラクターに設定された性格パラメーターに応じて、振り付けが異なる複数種類の歌いながら踊る動作の動作データが用意されている。そして本実施形態では、キャラクター制御部140は、「関連動作」を行わせる3人のキャラクターのそれぞれの性格パラメーターが同一である場合には、3人のキャラクターのそれぞれについて同一の歌いながら踊る動作の動作データを同期して再生することにより、3人のキャラクターのそれぞれに同一の振り付けで歌いながら踊る動作を同期させて行わせ、「関連動作」を行わせる3人のキャラクターのそれぞれの性格パラメーターが異なる場合には、3人のキャラクターのそれぞれについて異なる歌いながら踊る動作の動作データを同期して再生することにより、3人のキャラクターのそれぞれに異なる振り付けで歌いながら踊る動作を同期させて行わせ、「関連動作」を行わせる3人のキャラクターのうち、2人のキャラクターの性格パラメーターが同一であり、1人のキャラクターの性格パラメーターが異なる場合には、2人のキャラクターのそれぞれについて同一の歌いながら踊る動作の動作データを、1人のキャラクターについて異なる歌いながら踊る動作の動作データを、それぞれ同期して再生することにより、2人のキャラクターのそれぞれに同一の振り付けで歌いながら踊る動作を同期させて行わせ、1人のキャラクターに異なる振り付けで歌いながら踊る動作を同期させて行わせる。なお、異なる歌いながら踊る動作の動作データとは、一部が同一で一部が異なる振り付けで歌いながら踊る動作の動作データであってもよいし、全部が異なる振り付けで歌いながら踊る動作の動作データであってもよい。
そして、3人のキャラクターにそれぞれのステージで歌いながら踊る動作を同期させて行わせる場合には、表示制御部104(エフェクト制御部)がエフェクトデータに基づいて、図4で示したように、3人のキャラクターのそれぞれの背後で花火が打ち上がるエフェクト画像を表示させたり、3人のキャラクターのそれぞれのステージの色を変化させたりするエフェクト処理を行う。
そして、本実施形態では、キャラクターに設定された性格パラメーターに応じて、エフェクト画像やステージの色を変化させるパターンが異なる複数種類のエフェクトデータが用意されている。そして本実施形態では、表示制御部104は、「関連動作」を行わせる3人のキャラクターのそれぞれの性格パラメーターが同一である場合には、3人のキャラクターのそれぞれについて同一のエフェクトデータを同期して再生することにより、3人のキャラクターのそれぞれについて同一のエフェクト処理を同期させて行い、「関連動作」を行わせる3人のキャラクターのそれぞれの性格パラメーターが異なる場合には、3人のキャラクターのそれぞれについて異なるエフェクトデータを同期して再生することにより、3人のキャラクターのそれぞれについて異なるエフェクト処理を同期させて行い、「関連動作」を行わせる3人のキャラクターのうち、2人のキャラクターの性格パラメーターが同一であり、1人のキャラクターの性格パラメーターが異なる場合には、2人のキャラクターのそれぞれについて同一のエフェクトデータを、1人のキャラクターについて異なるエフェクトデータを、それぞれ同期して再生することにより、2人のキャラクターのそれぞれについて同一のエフェクト処理を同期させて行い、1人のキャラクターに異なるエフェクト処理を同期させて行う。
2−3−5.第2動作の中止条件
そして、第2動作を処理対象のキャラクターに行わせている場合には、動作管理部106は、図13に示すように、実行中の第2動作の種類に応じた中止条件を満たすか否かを判定し、実行中の第2動作の種類に応じた中止条件を満たすと判定すると、実行中の第2動作を中止する。
具体的には、「独り言動作」が実行中である場合、または「会話動作」が実行中である場合には、動作管理部106は、ギフトモードでキャラクター選択モードが実行された場合、キャラ配置モードが実行された場合、キャラクターの位置変更操作が行われた場合に、「独り言動作」または「会話動作」の中止条件を満たすと判定する。
詳細には本実施形態では、図9で示したように、メニューボタン212をユーザーがタップするとメニュー画像214が表示され、メニュー画像214に含まれるギフトボタン216をユーザーがタップすると、キャラクターにおやつを贈るギフトモードが実行され、図10に示すように、贈るおやつの種類を選択する選択ボタンを含むギフトモード画像218が表示されるが、ギフトモード画像218が表示された段階では、「独り言動作」または「会話動作」の中止条件を満たすと判定しないようにしている。
そして本実施形態では、ギフトモード画像218に含まれるいずれかの選択ボタンをユーザーがタップすると、図示しないが、選択したおやつを贈るキャラクターを選択するキャラクター選択画面が表示されるキャラクター選択モードが実行され、おやつを贈るキャラクターを選択すると、選択したキャラクターにおやつが贈られ、選択したキャラクターのパラメーターが変化する。そして本実施形態では、かかるキャラクター選択モードが実行された場合に、「独り言動作」または「会話動作」の中止条件を満たすと判定するようにしている。
また本実施形態では、図9で示したメニュー画像214に含まれるキャラ配置ボタン222をユーザーがタップすると、部屋200に配置するキャラクターの種類、数を変更するキャラ配置モードが実行される。そしてキャラ配置モードが実行されると、図示しないが、部屋200に配置するキャラクターを選択するためのキャラ配置モード画像が、部屋200のほぼ全部を覆うように表示され、キャラ配置モード画像に含まれる複数種類のキャラクターボタンのいずれかをユーザーがタップすると、タップしたキャラクターボタンに対応するキャラクターが部屋200に配置される。そして本実施形態では、キャラ配置モードが実行された場合には、ギフトモードが実行された場合とは異なり、キャラ配置モードが実行された段階で、「独り言動作」または「会話動作」の中止条件を満たすと判定するようにしている。
また本実施形態では、上述したように、部屋200に配置されているキャラクターをユーザーがロングタップするキャラクターの位置変更操作が行われると、キャラクターが宙に浮いたように表示され、そのキャラクターの管理状態が位置変更状態に設定されるが、「独り言動作」または「会話動作」を行っているキャラクターについて位置変更操作が行われた場合に、「独り言動作」または「会話動作」の中止条件を満たすと判定するようにしている。
そして、動作管理部106は、「独り言動作」が実行中である場合に「独り言動作」の中止条件を満たすと判定すると、「独り言動作」の実行を中止し、「会話動作」が実行中である場合に「会話動作」の中止条件を満たすと判定すると、「会話動作」の実行を中止する。
また、図13に示すように、「関連動作」の「準備動作」が実行中である場合、または「関連動作」が実行中である場合には、「独り言動作」または「会話動作」が実行中である場合と同様に、動作管理部106は、ギフトモードでキャラクター選択モードが実行された場合、キャラ配置モードが実行された場合に、「関連動作」を行わせる処理対象である3人のキャラクターのそれぞれについて「準備動作」または「関連動作」の中止条件を満たすと判定するが、「独り言動作」または「会話動作」が実行中である場合とは異なり、家具オブジェクトの一括収納操作が行われた場合にも、「関連動作」を行わせる処理対象である3人のキャラクターのそれぞれについて「準備動作」または「関連動作」の中止条件を満たすと判定する。
詳細には本実施形態では、図9で示したメニュー画像214に含まれる一括収納ボタン224をユーザーがタップすると、図示しないが、部屋200に配置されている全ての家具オブジェクトを収納してもよいか確認する一括収納確認画像が表示され、一括収納確認画像に含まれる確認ボタンをユーザーがタップする一括収納操作が行われると、一括収納が実行されることにより、部屋200に配置している全ての家具オブジェクトが部屋200から削除され、部屋200に再配置可能な家具オブジェクトのリストに追加される。そして本実施形態では、一括収納操作が行われた場合に、「関連動作」を行わせる処理対象である3人のキャラクターのそれぞれについて「準備動作」または「関連動作」の中止条件を満たすと判定するようにしている。
また、図13に示すように、「準備動作」が実行中である場合には上述した場合に加えて、動作管理部106は、キャラクターの位置変更操作が行われた場合、ステージへの移動経路上に家具が配置された場合、いずれかのステージの配置変更操作または個別収納操作が行われた場合にも、「関連動作」を行わせる処理対象である3人のキャラクターのそれぞれについて「準備動作」の中止条件を満たすと判定する。
詳細には本実施形態では、上述したように、「関連動作」を行っているキャラクターについて位置変更操作が行われても、実行中の「関連動作」が継続されるが、「準備動作」を行っているキャラクターについて位置変更操作が行われると、キャラクターが宙に浮いたように表示され、そのキャラクターの管理状態が位置変更状態に設定される。そこで本実施形態では、「準備動作」を行っているキャラクターについて位置変更操作が行われた場合には、「関連動作」を行わせる処理対象である3人のキャラクターのそれぞれについて「準備動作」の中止条件を満たすと判定するようにしている。
また本実施形態では、上述したように、部屋200に配置されている家具オブジェクトをユーザーがタップして選択した状態で配置変更ボタンをタップする家具オブジェクトの配置変更操作が行われると、選択した家具オブジェクトが宙に浮いたように表示され、その家具オブジェクトの位置または向きを変更できるようになっている。そして本実施形態では、「準備動作」が実行中である場合に、メインステージ208あるいはサブステージ210以外の家具オブジェクトについて配置変更操作が行われることにより、「準備動作」を行っているいずれかのキャラクターのステージへの移動経路上のブロックに、メインステージ208あるいはサブステージ210以外の家具オブジェクトが配置される場合がある。そして、かかるステージへの移動経路上のブロックに配置されている家具オブジェクトに「準備動作」を行っているいずれかのキャラクターが到達すると、ステージへの移動経路を改めて求めなければ、キャラクターは移動することができない。そこで本実施形態では、家具オブジェクトが配置されているブロックに「準備動作」を行っているいずれかのキャラクターが到達した場合には、「関連動作」を行わせる処理対象である3人のキャラクターのそれぞれについて「準備動作」の中止条件を満たすと判定するようにしている。
また本実施形態では、上述したように、家具オブジェクトの配置変更操作が行われると、選択した家具オブジェクトが宙に浮いたように表示され、その家具オブジェクトの位置または向きを変更できるようになっているが、本実施形態では、「準備動作」が実行中である場合に、メインステージ208、第1サブステージ210−1または第2サブステージ210−2について配置変更操作が行われた場合にも、「関連動作」を行わせる処理対象である3人のキャラクターのそれぞれについて「準備動作」の中止条件を満たすと判定するようにしている。
また本実施形態では、上述したように、部屋200に配置されている家具オブジェクトをユーザーがタップして選択した状態で収納ボタンをタップする個別収納操作が行われると、図示しないが、選択した家具オブジェクトを収納してもよいか確認する個別収納確認画像が表示され、個別収納確認画像に含まれる確認ボタンをユーザーがタップすると、個別収納が実行されることにより、選択した家具オブジェクトが部屋200から削除され、部屋200に再配置可能な家具オブジェクトのリストに追加される。そして本実施形態では、「準備動作」が実行中である場合に、メインステージ208、第1サブステージ210−1または第2サブステージ210−2について個別収納操作が行われた場合にも、「関連動作」を行わせる処理対象である3人のキャラクターのそれぞれについて「準備動作」の中止条件を満たすと判定するようにしている。
そして、動作管理部106は、「準備動作」が実行中である場合に、「関連動作」を行わせる処理対象である3人のキャラクターのそれぞれについて「準備動作」の中止条件を満たすと判定すると、「関連動作」を行わせる処理対象である3人のキャラクターのそれぞれについて「準備動作」および「関連動作」の実行を中止し、「関連動作」が実行中である場合に、「関連動作」を行わせる処理対象である3人のキャラクターのそれぞれについて「関連動作」の中止条件を満たすと判定すると、「関連動作」を行わせる処理対象である3人のキャラクターのそれぞれについて「関連動作」の実行を中止する。
また本実施形態では、「関連動作」が実行中である場合に、メインステージ208、第1サブステージ210−1または第2サブステージ210−2について配置変更操作が行われた場合には、配置変更操作が行われたメインステージ208、第1サブステージ210−1または第2サブステージ210−2に対応するキャラクターについてのみ「関連動作」の中止条件を満たすと判定し、そのキャラクターについてのみ「関連動作」の実行を中止するようにしている。
また本実施形態では、「関連動作」が実行中である場合に、メインステージ208、第1サブステージ210−1または第2サブステージ210−2について個別収納操作が行われた場合にも、個別収納操作が行われたメインステージ208、第1サブステージ210−1または第2サブステージ210−2に対応するキャラクターについてのみ「関連動作」の中止条件を満たすと判定し、そのキャラクターについてのみ「関連動作」の実行を中止するようにしている。
なお本実施形態では、図9で示したメニュー画像214に含まれるショップボタン226をユーザーがタップすると、家具ショップにおいて家具オブジェクトを購入できるショップモードが実行される。そして、ショップモードが実行されると、図示しないが、購入する家具オブジェクトを選択するためのショップモード画像が、部屋200のほぼ全部を覆うように表示され、ショップモード画像に含まれる複数種類の家具ボタンのいずれかをユーザーがタップすると、タップした家具ボタンに対応する家具オブジェクトが購入され、図示しないが、購入した家具オブジェクトを部屋200に配置するための家具配置画像が表示される家具配置モードが実行される。しかし本実施形態では、ショップモードや家具配置モードが実行された場合には、ギフトモードやキャラ配置モードが実行された場合とは異なり、ショップモードや家具配置モードが実行されても、第2動作の中止条件を満たすと判定しないようにしている。
このように本実施形態では、第2動作の実行が完了することにより第2動作が終了する場合の他にも、第2動作の中止条件を満たすと判定されて、第2動作の実行が中止されることにより第2動作が終了する場合がある。そして、第2動作の実行が完了するか中止されることにより第2動作が終了すると、動作管理部106は、第2動作を行っていたキャラクターの管理状態を空き状態に設定する。
2−3−6.クールタイム処理
そして、第2動作を処理対象のキャラクターに行わせている場合には、動作管理部106は、ステップS208の全ての第2動作が終了したか否かを判定する処理を行う。詳細には、本実施形態では、上述したように「待機動作」または「歩く動作」を行っているキャラクターをユーザーがタップすると、タップされたキャラクターが第1動作である「一般動作」または第2動作である「独り言動作」を行うようにキャラクターの動作が制御されるため、第2動作管理処理によりいずれかのキャラクターが自動的に第2動作を行っている場合であっても、タップされた他のキャラクターが第2動作である「独り言動作」を行う場合がある。
そこで動作管理部106は、キャラクターが行っている全ての第2動作が終了したか否かを判定し、全ての第2動作が終了したと判定した場合に、ステップS210のクールタイム処理を行う。そしてクールタイム処理では、動作管理部106は、クールタイム処理の期間を抽選により2〜3秒の間のいずれかの期間に決定し、図8で示したように、クールタイム処理の期間中は第2動作の実行可能条件を満たさないと判定して第2動作管理処理が行われないようにすることにより、第2動作管理処理により自動的に行われる第2動作が連続して行われないようにしている。そして動作管理部106は、決定したクールタイム処理の期間が経過すると、クールタイム処理を終了し、第2動作管理処理を終了する。
ここで本実施形態では、クールタイム処理の期間中は、第2動作管理処理は行われないものの、上述したように、第2動作を行っていたキャラクターは管理状態が空き状態に設定されるため、第1動作管理処理の処理対象となることによって、クールタイム処理の期間中であっても、第2動作を行っていたキャラクターは直ちに第1動作を行うように制御される。そして、クールタイム処理の期間が経過すると、第2動作管理処理が再開され、いずれかのキャラクターが第2動作を行うように制御される。
2−4.本実施形態の作用効果
こうして本実施形態では、部屋200に配置された複数種類のキャラクターのそれぞれが、複数種類の第1動作のいずれかあるいは複数種類の第2動作のいずれかを、自動的にかつ適切に行うようにしている。そして本実施形態では、1つの部屋200に1個のメインステージ208または1個のサブステージ210が配置されている場合と、1つの部屋200に1個のメインステージ208と2個のサブステージ210が配置されている場合で、キャラクターにメインステージ208あるいはサブステージ210に対応する動作を異なる態様で行わせることができるとともに、1つの部屋200に1個のメインステージ208と2個のサブステージ210が配置されている場合には、3人のキャラクターを同期させて1個のメインステージ208と2個のサブステージ210に対応する動作を行わせることにより、キャラクターが行う動作に対するユーザーの関心を高めるようにすることができる。
3.変形例
本発明は、上記の実施形態で説明したものに限らず、種々の変形実施が可能であり、以下に変形例を紹介する。なお、上記実施形態や、以下において変形例として説明する各種の手法は、本発明を実現する手法として適宜組み合わせて採用することができる。
まず上記実施形態では、1つの部屋200に1個のメインステージ208が配置されている場合、1つの部屋200に1個のサブステージ210が配置されている場合、1つの部屋200に1個のメインステージ208と1個のサブステージ210が配置されている場合、1つの部屋200に1個のメインステージ208と2個のサブステージ210が配置されている場合のいずれにおいても、第1動作である「アイテム動作」として、メインステージ208またはサブステージ210の上で1人のキャラクターが歌を練習する動作が行われることがある例を挙げて説明したが、1つの部屋200に1個のメインステージ208と2個のサブステージ210が配置されている場合には、第2動作である「関連動作」として、1個のメインステージ208と2個のサブステージ210のそれぞれの上で歌を歌いながら踊る動作を3人のキャラクターが同時に行う動作が行われることがあるものの、第1動作である「アイテム動作」として、メインステージ208またはサブステージ210の上で1人のキャラクターが歌を練習する動作が行われることがないようにしてもよい。
また、1つの部屋200に1個のメインステージ208と2個のサブステージ210が配置されている場合には、第2動作である「関連動作」として、1個のメインステージ208と2個のサブステージ210のそれぞれの上で歌を歌いながら踊る動作を3人のキャラクターが同時に行う動作が行われることがあるとともに、第1動作である「アイテム動作」として、メインステージ208またはサブステージ210の上で1人のキャラクターが歌を練習する動作が行われることがあるものの、1つの部屋200に1個のメインステージ208が配置されている場合、1つの部屋200に1個のサブステージ210が配置されている場合、1つの部屋200に1個のメインステージ208と1個のサブステージ210が配置されている場合には、第1動作である「アイテム動作」として、メインステージ208またはサブステージ210の上で1人のキャラクターが歌を練習する動作が行われることがないようにしてもよい。
また、1つの部屋200に1個のメインステージ208が配置されている場合、1つの部屋200に1個のサブステージ210が配置されている場合、1つの部屋200に1個のメインステージ208と1個のサブステージ210が配置されている場合、1つの部屋200に1個のメインステージ208と2個のサブステージ210が配置されている場合のいずれにおいても、第1動作である「アイテム動作」として、メインステージ208またはサブステージ210の上で1人のキャラクターが歌を練習する動作が行われることがないようにしてもよい。
また上記実施形態では、1個のメインステージ208または1個のサブステージ210に対応する動作として、1個のメインステージ208または1個のサブステージ210の上で1人のキャラクターが歌を練習する動作が行われ、1個のメインステージ208と2個のサブステージ210に対応する動作として、1個のメインステージ208と2個のサブステージ210のそれぞれの上で3人のキャラクターのそれぞれが歌を歌いながら踊る動作が行われることがある例を挙げて説明したが、1個のメインステージ208または1個のサブステージ210に対応する動作として、1個のメインステージ208または1個のサブステージ210の上で1人のキャラクターが歌を歌いながら踊る動作が行われることがあるようにしてもよい。
すなわち、第1動作である「アイテム動作」として、1個のメインステージ208または1個のサブステージ210の上で1人のキャラクターが行う動作と、第2動作である「関連動作」として、1個のメインステージ208と2個のサブステージ210のそれぞれの上で3人のキャラクターのそれぞれが行う動作が、同一の動作であってもよい。
また上記実施形態では、特定家具オブジェクトに対応する動作および複数の特定家具オブジェクトに対応する動作として、メインステージ208またはサブステージ210の上でキャラクターが動作を行う例を挙げて説明したが、特定家具オブジェクトから離れた位置でキャラクターが動作を行うようにしてもよい。例えば、1つの部屋200に1個のスピーカーオブジェクトが配置されている場合には、第1動作である「アイテム動作」として、1個のスピーカーオブジェクトが振動するように表示され、1個のスピーカーオブジェクトから音楽が出力されていることを示す表示が表示されつつ、ヘッドフォンから楽曲Aが出力されるとともに、部屋200に配置されているいずれか1人のキャラクターがその場でダンスを踊る動作が行われることがあり、1つの部屋200に2個のスピーカーオブジェクトが配置されている場合には、第2動作である「関連動作」として、2個のスピーカーオブジェクトが振動するように表示され、2個のスピーカーオブジェクトから音楽が出力されていることを示す表示が表示されつつ、ヘッドフォンから楽曲Bが出力されるとともに、部屋200に配置されている複数のキャラクターがその場でダンスを踊る動作が行われることがあるようにしてもよい。
また上記実施形態では、1個のメインステージ208と2個のサブステージ210のそれぞれの位置関係に関わらず、「関連動作」が行われることがある例を挙げて説明したが、例えば1個のメインステージ208を中心として2個のサブステージ210のそれぞれが1個のメインステージ208の左右に隣接して配置されているなど、1個のメインステージ208と2個のサブステージ210が所定の位置関係にあることを条件として、「関連動作」が行われることがあるようにしてもよい。
また上記実施形態では、特定の個数の特定の種類の特定家具オブジェクトが部屋200に配置されている場合に、「関連動作」が行われることがある例を挙げて説明したが、部屋200に配置されている特定家具オブジェクトの個数や種類に関わらず、部屋200に配置されている複数の特定家具オブジェクトの位置関係が所定の位置関係にあれば、「関連動作」が行われることがあるようにしてもよい。
また上記実施形態では、キャラクターに設定された性格パラメーターに応じて、振り付けが異なる複数種類の歌いながら踊る動作の動作データが用意されている例を挙げて説明したが、キャラクターのレアリティを示すレアリティパラメーターなどの各種のパラメーターに応じて、あるいはキャラクターの種類に応じて、振り付けが異なる複数種類の歌いながら踊る動作の動作データが用意されているようにしてもよい。また、「関連動作」を行う3人のキャラクターに設定された各種のパラメーターの組み合わせや、「関連動作」を行う3人のキャラクターの種類の組み合わせに応じて、振り付けが異なる複数種類の歌いながら踊る動作の動作データが用意されているようにしてもよい。
また上記実施形態では、第2動作が可能となったタイミングの早さに応じて、「関連動作」を行わせる処理対象のキャラクターが決定される例を挙げて説明したが、キャラクターの位置とメインステージ208あるいはサブステージ210の位置に応じて、「関連動作」を行わせる処理対象のキャラクターが決定されるようにしてもよい。例えば、第2動作抽選処理により「関連動作」が決定された時点において、各ステージについて、そのステージへの移動経路が確保されたキャラクターのうち、そのステージの動作開始位置に最も近いキャラクターが、そのステージにおいて「関連動作」を行わせる処理対象のキャラクターとして決定されるようにしてもよい。
また、キャラクターに設定された各種のパラメーターや種類に応じて、「関連動作」を行わせる処理対象のキャラクターが決定されるようにしてもよい。例えば、キャラクターに設定された各種のパラメーターや種類に応じて、「関連動作」を行わせる処理対象のキャラクターとして決定されやすいキャラクターと決定されにくいキャラクターが存在したり、「関連動作」を行わせる処理対象のキャラクターとして決定されるキャラクターと決定されないキャラクターが存在したりするようにしてもよい。
また上記実施形態では、1個のメインステージ208と2個のサブステージ210が配置されている場合に、3人のキャラクターを関連させて動作させる例を挙げて説明したが、関連させて動作させるキャラクターの数が変化するようにしてもよい。そしてこの場合には、関連させて動作させるキャラクターの数に応じて、各キャラクターの動作内容が変化するようにしてもよい。例えば、1個のメインステージ208と2個のサブステージ210が配置されている場合に、3人のキャラクターを関連させて動作させる場合と、4人のキャラクターを関連させて動作させる場合があるようにし、3人のキャラクターを関連させて動作させる場合と、4人のキャラクターを関連させて動作させる場合で、各キャラクターが行う動作が異なるようにしてもよい。また、1個のメインステージ208と2個のサブステージ210が配置されている場合に、3人のキャラクターを関連させて動作させる場合があり、1個のメインステージ208と3個のサブステージ210が配置されている場合に、4人のキャラクターを関連させて動作させる場合があるようにし、3人のキャラクターを関連させて動作させる場合と、4人のキャラクターを関連させて動作させる場合で、各キャラクターが行う動作が異なるようにしてもよい。
また上記実施形態では、1つの部屋200に1個のメインステージ208と2個のサブステージ210が配置されている場合に、複数のキャラクターを関連させて動作させる例を挙げて説明したが、家具オブジェクトの他にも、部屋200の背景を表す背景オブジェクト、部屋200の外観を表す外観オブジェクトなどの各種のオブジェクトを特定オブジェクトとし、配置されている特定オブジェクトの数や組み合わせに応じて、複数のキャラクターを関連させて動作させるようにしてもよい。
また上記実施形態では、配置されている特定オブジェクトの数や組み合わせに応じて、複数のキャラクターを関連させて動作させる例を挙げて説明したが、配置されている特定オブジェクトの数や組み合わせに応じて、複数のエフェクトデータを関連させて再生したり、複数の音声データを関連させて再生したりするようにしてもよい。
また上記実施形態では、複数のキャラクターを関連させて動作させる例として、複数のキャラクターについて同一または異なる動作データを同期して再生することにより、複数のキャラクターのそれぞれに同一または異なる動作を同期させて行わせる例を挙げて説明したが、複数のキャラクターについて同一または異なる動作データを異なるタイミングで再生を開始するが再生期間が重なるように再生することにより、複数のキャラクターのそれぞれに同一または異なる動作を、動作を行う期間が重なるように行わせてもよい。
例えば、先にステージに到達したキャラクターが他のキャラクターのステージへの到達を待機せずに、先にステージに到達したキャラクターから順次ステージの上でダンスを踊る動作を開始するが、複数のキャラクターのそれぞれがダンスを踊る動作を行う期間が、複数のキャラクターのそれぞれがステージに到達する時間差に対して十分に長い期間となっているため、複数のキャラクターのそれぞれがダンスを踊る動作を行う期間が重なるようにしてもよい。また、先にステージに到達したキャラクターが他のキャラクターのステージへの到達を待機しつつも、複数のキャラクターのそれぞれが異なるタイミングでステージの上でダンスを踊る動作を開始するようにしてもよく、この場合にも、複数のキャラクターのそれぞれがダンスを踊る動作を行う期間が、複数のキャラクターのそれぞれがダンスを踊る動作を開始する時間差に対して十分に長い期間となっているため、複数のキャラクターのそれぞれがダンスを踊る動作を行う期間が重なるようにしてもよい。
また上記実施形態では、複数のキャラクターを関連させて動作させる場合に、複数のキャラクターのそれぞれに設定された各種のパラメーターや種類に応じた異なる動作データに基づいて、複数のキャラクターのそれぞれを動作させる例を挙げて説明したが、複数の特定家具オブジェクトのそれぞれについて異なる動作データが対応づけられており、複数のキャラクターを関連させて動作させる場合に、複数のキャラクターのそれぞれに対応する特定家具オブジェクトに応じた異なる動作データに基づいて、複数のキャラクターのそれぞれを動作させるようにしてもよい。例えば、メインステージ208には動作データAが対応づけられ、サブステージ210には動作データBが対応づけられており、1個のメインステージ208と2個のサブステージ210において3人のキャラクターを関連させて動作させる場合には、メインステージ208で動作するキャラクターがいずれのキャラクターであっても動作データAに基づいて動作させ、サブステージ210で動作するキャラクターがいずれのキャラクターであっても動作データBに基づいて動作させるようにしてもよい。