[1.実施形態1]
以下、本発明の実施形態の例について図面に基づき詳細に説明する。
[1−1.ゲームシステムの概要]
図1は、ゲームをプレイするユーザ100の様子を示す図である。本発明に係るゲームシステムSは、例えば、位置検出装置1と、ゲーム装置20と、から構成される。位置検出装置1とゲーム装置20とは、データ通信可能に接続される。
図1に示すように、ユーザ100は、例えば、位置検出装置1の前方に位置する。図1は、4人のユーザ100を示す。例えば、4人のユーザ100のうち2人がゲームをプレイし、残りの2人はゲームを観戦する。本実施形態においては、ユーザ100が発した音声が録音され、ゲームが所定の状況になった場合に、この録音された音声が出力される。
位置検出装置1は、ユーザ100を撮影して得られる画像と、位置検出装置1とユーザ100との距離に関する情報と、に基づいて3次元空間におけるユーザ100の位置に関する情報を生成する。例えば、位置検出装置1は、ユーザ100の体を構成する複数の部位(例えば、頭や両ひじ等)のそれぞれに対応する3次元座標を検出する。
ゲーム装置20は、ユーザ100の位置に関する情報を位置検出装置1から取得する。ゲーム装置20は、例えば、3次元空間におけるユーザ100の立ち位置やユーザ100の各部位の位置を示す3次元座標を位置検出装置1から取得する。ゲーム装置20は、例えば、この3次元座標の変化に基づいてゲームの制御を行う。
ユーザ100に対応する3次元座標の変化は、ユーザ100の動作に対応する。例えば、ユーザ100が右手を上げる動作をした場合、このユーザ100の右ひじ及び右手に対応する3次元座標が、主に変化する。
[1−2.位置検出装置の動作]
次に、位置検出装置1が、3次元空間におけるユーザ100の位置に関する情報(3次元位置情報)を生成する処理について説明する。
図1に示すように、位置検出装置1は、例えば、CCDカメラ2、赤外線センサ3、複数のマイクロフォンを含むマイク4等を備える。本実施形態においては、CCDカメラ2及び赤外線センサ3から得られる情報に基づいてユーザ100の3次元位置情報が生成される。
CCDカメラ2は、CCDイメージセンサを備えた公知のカメラである。CCDカメラ2は、ユーザ100を撮影する。CCDカメラ2は、例えば、所定時間毎(例えば1/60秒毎)にユーザ100を撮影した静止画像(例えば、RGBデジタル画像)を生成する。以降、CCDカメラ2により生成される静止画像を撮影画像という。
図2は、CCDカメラ2によって生成される撮影画像の一例を示す図である。図2に示すように、撮影画像には、CCDカメラ2に対応する視野内に配置された物体が含まれる。なお、説明の簡略化のため図2では省略しているが、CCDカメラ2の視野内に家具や壁等が含まれている場合、撮影画像には、これらが含まれる。
撮影画像には、互いに直行するXs軸、Ys軸が設定される。例えば、撮影画像の左上を、原点Os(0,0)とする。また例えば、撮影画像の右下を、座標Pmax(Xmax,Ymax)とする。撮影画像に対応する各画素の位置は、それぞれの画素に割り当てられる2次元座標(Xs−Ys座標)によって特定される。
赤外線センサ3は、例えば、赤外線発光素子及び赤外線受光素子(例えば、赤外線ダイオード)から構成される。赤外線センサ3は、赤外線光を照射して得られる反射光を検出する。赤外線センサ3は、この反射光の検出結果に基づいて被写体(例えば、ユーザ100)の深度を測定する。
被写体の深度とは、測定基準位置(例えば、赤外線センサ3の赤外線受光素子の位置)と被写体の位置との距離間隔である。測定基準位置とは、ユーザ100の位置の深度(奥行き)を測定する際の基準となる位置である。測定基準位置は、位置検出装置1の配置位置と関連付けられる所定の位置であればよい。赤外線センサ3は、例えば、赤外線を照射してから反射光を受光するまでの飛行時間(TOF:Time of Flight)に基づいてユーザ100の深度を測定する。
図3は、赤外線センサ3によるユーザ100の深度の測定方法を説明するための図である。なお、図3においては、説明の簡略化のためにユーザ100を1人として説明する。図3に示すように、赤外線センサ3は、所定間隔でパルス状の赤外線光を照射する。
赤外線センサ3から照射された赤外線光は、赤外線センサ3の発光位置を中心点として球状に広がる。赤外線センサ3から照射された赤外線光は、例えば、ユーザ100の体等の表面に当たる。これらの表面に当たった赤外線光は、反射する。反射した赤外線光は、赤外線センサ3の赤外線受光素子により検出される。即ち、赤外線センサ3は、照射した赤外線に対して位相が180度反転した反射光を検出する。
例えば、図1に示すように、ゲームをプレイする2人のユーザ100が両手を前に突き出している場合、この突き出された両手は、ユーザ100の胴体よりも赤外線センサ3に近い。つまり、ユーザ100の両手によって反射される赤外線光の飛行時間は、ユーザ100の胴体によって反射される赤外線光の飛行時間よりも短い。
赤外線センサ3が赤外線光を照射してから反射光を検出するまでの時間(つまり、飛行時間)と、赤外線の速度と、を乗算して半分で割った値は、測定基準位置とユーザ100との距離間隔(即ち、深度)に相当する。このようにして、赤外線センサ3は、ユーザ100の深度を測定することができる。
また、例えば、ユーザ100の後方に物体が配置されていない場合、ユーザ100の周囲に対して照射された赤外線光は、ユーザ100の後方にある壁に反射することが考えられる。そこで、反射した赤外線光から得られる深度差が大きい箇所に基づいて被写体(ユーザ100)の輪郭を検出することもできる。例えば、周囲との深度差が大きい箇所をつなぎ合わせることによって、ユーザ100の輪郭を検出することができる。
なお、ユーザ100の輪郭を検出する方法は、上記の例に限られない。他にも例えば、CCDカメラ2によって得られる撮影画像の各画素の輝度に基づいて輪郭を検知するようにしてもよい。この場合も、例えば、画素間の輝度差が大きい箇所をつなぎ合わせることによってユーザ100の輪郭を検出することができる。
上記のようにして検出されるユーザ100の深度に関する情報(深度情報)は、例えば、深度画像として表現される。
図4は、赤外線センサ3によって得られる深度画像の一例を示す図である。図4に示すように、例えば、深度情報は、グレースケールの深度画像(例えば、256ビットのグレースケールの画像データ)として表現される。深度画像においては、例えば、赤外線センサ3に近い物体は明るく(輝度が高く)、遠い物体は暗く(輝度が低く)表現される。
例えば、深度画像が256ビットのグレースケールの画像データとして表される場合、ユーザ100の深度は、深度画像の輝度(画素値)に対応する。即ち、例えば、ユーザ100の深度が2センチ異なる毎に深度画像の輝度が1ビット異なる。この場合、赤外線センサ3は、被写体の深度を2センチ単位で検出することが可能であることを示す。
本実施形態においては、赤外線センサ3は、CCDカメラ2と同様に所定時間毎(例えば1/60秒毎)に、深度画像を生成する。CCDカメラ2により得られる撮影画像と、赤外線センサ3により得られる深度画像と、に基づいてユーザ100の部位の位置に関する3次元位置情報が生成される。
例えば、CCDカメラ2により得られる撮影画像(RGBデータ)に、深度画像が示す深度情報(D:Depth)が合算された合成画像(RGBDデータ)が生成される。即ち、合成画像は、各画素ごとに、色情報(RGBそれぞれの明度)と深度情報とを含む。
なお、合成画像が生成される際には、CCDカメラ2と赤外線センサ3との位置間隔に基づいて、撮影画像と深度画像との少なくとも一方の位置が変更される。例えば、CCDカメラ2と赤外線センサ3が水平方向に2センチ離れている場合、深度画像の各画素の座標を、2センチに対応する画素数だけ移動させることによって、位置の変更が行われる。
この合成画像に基づいて3次元位置情報が生成される。例えば、3次元位置情報は、ユーザ100の複数の部位の位置に関する複数の情報を含む。本実施形態においては、3次元位置情報が、ユーザ100の体の各部位(例えば、頭や肩等)に対応する3次元座標を含む場合を説明する。
具体的には、例えば、次のようにして3次元位置情報が生成される。
まず、先述のように、深度画像に基づいてユーザ100の輪郭に対応する画素が特定される。ユーザ100の輪郭によって囲まれる画素は、ユーザ100の体に対応する画素である。
次いで、撮影画像のうち、上記の輪郭によって囲まれた画素の色情報(RGBの明度)が参照される。撮影画像の色情報に基づいて、ユーザ100の体の各部位に対応する画素が特定される。この特定方法としては、例えば、比較画像(教師画像)との比較によって画像の中から対象物(即ち、ユーザ100の体の各部位)を抽出するパターンマッチング法等、公知の手法を適用可能である。
他にも例えば、撮影画像の各画素の色情報の変化から体の各部位の速度ベクトルを算出し、物体の運動を表すオプティカルフロー(例えば、勾配法又はフィルタリング法)等に基づいて各画素の動きベクトルを検出し、ユーザ100の頭の位置や両肘の位置等に対応する画素が特定されるようにしてもよい。
上記のようにして特定された画素の画素値(RGBD値)に基づいて、ユーザ100の頭や両ひじ等の3次元座標が算出される。例えば、この画素値に対して所定の行列変換処理が施されることによって、3次元座標が生成される。この行例変換処理は、例えば、3Dグラフィックにおけるワールド座標−スクリーン座標の2つの座標系の変換処理と同様の行例演算によって実行される。つまり、画素の色情報を示すRGB値と奥行きを示すD値と、が所定の行列式に代入されることにより、この画素の3次元座標が算出される。即ち、ユーザ100の各部位の3次元座標が算出される。
なお、画素値(RGBD値)から画素に対応する3次元座標が算出される方法は、公知の手法を適用可能であり、この算出方法は、上記の例に限られない。他にも例えば、ルックアップテーブルを用いて座標変換が行われるようにしてもよい。
図5は、位置検出装置1により生成される3次元位置情報の一例を示す図である。図5に示すように、3次元位置情報は、例えば、ユーザ100の各部位と、3次元座標と、が対応付けられて格納される。
図6は、3次元位置情報によって特定されるユーザ100の位置(頭P1〜左つま先P16)を示す図である。図6に示すように、ユーザ100の各部位の3次元座標が、3次元位置情報によって特定される。なお、3次元位置情報によって示されるユーザ100の体の部位は、プレイヤの体(骨格)のうちで予め定められた部位のものであってよい。例えば、この部位は、先述したパターンマッチング法によって特定可能な体の部位であればどこでもよい。
本実施形態においては、先述のように、所定間隔で生成される撮影画像と深度画像とに基づいて、所定間隔毎(例えば、1/60秒毎)に3次元位置情報が生成される。生成された3次元位置情報は、所定時間毎に位置検出装置1からゲーム装置20に対して送信される。
ゲーム装置20は、位置検出装置1から送信される3次元位置情報を受信して、この3次元位置情報に基づいてユーザ100の体の位置を把握する。つまり、ユーザ100が踊ったりボールを蹴ったりする動作をすると、この動作に対応するように3次元位置情報が変化するので、ゲーム装置20は、3次元位置情報の変化に基づいてプレイヤの動きを把握することができる。
また例えば、ゲーム装置20は、3次元位置情報に含まれるユーザ100の各部の位置関係に基づいてユーザ100のポーズ(姿勢)を把握する。このように、ゲーム装置20は、3次元位置情報に基づいてユーザ100の体の動きやポーズを把握してゲームを実行する。
また、図1に示すように、ユーザ100が複数人である場合、上記と同様の処理によって、複数のユーザ100のそれぞれについて3次元位置情報が生成される。例えば、赤外線センサ3によって検出されるユーザ100の輪郭の個数に基づいて、位置検出装置1は、ユーザ100の人数を把握することができる。それぞれのユーザ100に対応する画素に対して上記と同様の処理が実行されることによって、複数のユーザ100の3次元位置情報を生成することができる。
[1−3.ゲーム装置で実行されるゲーム]
本実施形態においては、ゲーム装置20が、ユーザ100が楽曲(BGM)に合わせてゲームキャラクタと同じ動作をする、又は、ゲームキャラクタと同じポーズをとるダンスゲームを実行する例を挙げて説明する。先述のように、ユーザ100の動作及びポーズは、3次元位置情報に基づいて判別される。
図7は、ゲーム画面50の一例を示す図である。図7に示すように、ゲーム画面50は、例えば、ゲームキャラクタ51、判定領域52、注目領域53、ゲージ54、メッセージ55を含む。ゲームキャラクタ51は、例えば、判定領域52の上に立つように配置される。ゲームキャラクタ51は、所定のアニメーション情報に基づいて種々のポーズをとりながらダンスを踊る。
判定領域52及び注目領域53は、例えば、それぞれ同心円(又は同心楕円)である。例えば、注目領域53の半径R53は、判定領域52の半径R52よりも大きい。時間が経過すると、注目領域53の半径R53は、小さくなっていく。即ち、時間が経過すると、注目領域53は、判定領域52の大きさに近づくように縮んでいく。やがて、注目領域53の半径R53は、判定領域52の半径R52と一致する。
図8は、注目領域53の半径R53と判定領域52の半径R52とが一致した場合のゲーム画面50の一例を示す図である。本実施形態のゲームでは、例えば、注目領域53の半径R53と、判定領域52の半径R52が一致するタイミングは、ユーザ100が、ゲームキャラクタ51と類似の動作をすべき、又は、ゲームキャラクタ51と類似のポーズをとるべきタイミング(以降、単に基準タイミングという。)になっている。
このため、注目領域53の半径R53と、判定領域52の半径R52が一致するタイミングで、ユーザ100がゲームキャラクタ51と類似の動作をした場合、又は、ゲームキャラクタ51と類似のポーズを取っていた場合、このユーザ100に得点が加算される。なお、ユーザ100が動作をしたタイミング又はポーズをとったタイミングと、基準タイミングと、のずれ具合に応じて加算される得点が異なるようにしてもよい。
例えば、図8の例の場合、ユーザ100が、ゲームキャラクタ51と同様に両手を上げていた場合、ユーザ100に得点が加算される。加算された得点は、例えば、ゲージ54に反映される。例えば、ゲージ54のうち斜線で示す領域が、ユーザ100の得点を示す。
一方、例えば、基準タイミングにおいて、ユーザ100が、ゲームキャラクタ51と類似のポーズを取ることができなかった場合、このユーザ100の得点が減少する。例えば、ゲージ54のうち斜線で示す領域が、得点の減少に伴って減少する。
ユーザ100の得点が所定範囲(例えば、0)になった場合、ゲームオーバーとなる。また、ユーザ100が連続して得点を加算した場合、この回数(コンボ数)がメッセージ55として表示される。
例えば、図1に示すように2人のユーザ100が同時にゲームをプレイする場合、図7及び図8に示すように、この2人のユーザ100のそれぞれに対応するゲージ54及びメッセージ55が表示される。
上記のように、基準タイミングが経過した後、注目領域53の半径R53は、再び、判定領域52の半径R52よりも大きくなる。つまり、注目領域53と判定領域52との大小関係は、図7のように元に戻る。そして、注目領域53の半径R53は、基準タイミングが到来するまでの残り時間に対応する長さに設定される。このため、次の基準タイミングが近づくにつれて注目領域53の半径R53が少しずつ小さくなっていく。以降のゲーム処理は、上記の繰り返しとなる。
なお、上記では、基準タイミングが近づくにつれて、注目領域53の半径R53が少しずつ小さくなっていく例を挙げたが、ゲーム画面50においては、基準タイミングを案内することができる表示がなされればよい。例えば、基準タイミングが近づくにつれて注目領域53の半径R53が少しずつ大きくなっていくようにしてもよい。他にも例えば、基準タイミングを案内する画像(案内画像)が、基準タイミングに対応する領域に近づいていくようにしてもよい。
本実施形態においては、上記のように実行されるゲームが所定の状況になった場合、音声が出力される。この音声は、例えば、ユーザ100が過去に発した音声であり、マイク4を介して入力され、ゲーム装置20に記憶されたものである。即ち、ゲーム装置20は、ユーザ100の音声を録音し、所定のゲーム状況になった場合、この録音した音声を出力する。
例えば、ユーザ100がゲームキャラクタ51と同じポーズをとって得点が加算された場合、ユーザ100が歓声をあげると、この歓声が録音される。次に同じようなゲーム状況(例えば、得点が加算される等)になった場合、この録音された歓声が出力される。つまり、図1のように4人のユーザ100がゲームで遊んでいた(観戦していた)場合に録音された音声が、例えば、ユーザ100が1人でプレイする場合に出力されるので、1人でゲームをプレイしているユーザ100は、友人に囲まれながらゲームをプレイしている感覚を味わうことができる。
次に、位置検出装置1及びゲーム装置20の構成について説明する。
[1−4.位置検出装置の構成]
図9は、位置検出装置1のハードウェア構成を示す図である。図9に示すように、位置検出装置1は、制御部10、記憶部11、撮影部12、深度測定部13、音声入力部14、通信インタフェース部15から構成される。位置検出装置1の各構成要素は、バス16によってデータ送受信可能に接続される。
制御部10は、例えばCPU(Central Processing Unit)等から構成される。制御部10は、記憶部11に記憶されるオペレーティングシステム、各種プログラムに基づいて位置検出装置1の各部を制御する。
記憶部11は、オペレーティングシステムや撮影部12、深度測定部13を動作させるためのプログラム、各種パラメータを記憶する。また、記憶部11は、撮影画像及び深度画像に基づいて3次元位置情報を生成するためのプログラムを記憶する。
撮影部12は、CCDカメラ2等から構成される。撮影部12は、例えば、ユーザ100の撮影画像を生成する。撮影画像は、例えば、記憶部11に記憶される。
深度測定部13は、赤外線センサ3等から構成される。深度測定部13は、例えば、赤外線センサ3により得られる飛行時間に基づいて深度画像を生成する。深度画像は、例えば、記憶部11に記憶される。
制御部10は、先述のように、撮影部12により生成される撮影画像と、深度測定部13により生成される深度画像と、に基づいて、3次元位置情報を生成する。具体的には、まず、制御部10は、撮影画像に基づいてユーザ100の各部(例えば、頭や両ひじ)に対応する画素の位置を特定する。
次いで、制御部10は、この特定された画素のRGBD値に基づいて座標変換処理を実行して3次元座標を算出する。この座標変換処理は、先述のように、行列演算に基づいた処理である。これらの一連の処理によって、3次元位置情報が、所定時間毎(例えば、1/60秒毎)に生成される。
音声入力部14は、マイク4等から構成される。例えば、音声入力部14は、複数のマイクロフォン(いわゆるアレイマイク。例えば、3つ。)に基づいて検出した音声のずれ時間に基づいて、ユーザ100が音声を発した位置を特定することができる。
音声入力部14が受け付けたユーザ100の音声を示す音声情報は、ゲーム装置20に送信される。位置検出装置1からゲーム装置20に対して送信される音声情報としては、所定周波数ごとにサンプリングされたデジタル形式のデータであってもよいし、音声の波形を示すアナログ形式のデータであってもよい。
また、音声入力部14のマイク4としては、CCDカメラ2の視線方向と同じ方向にある発音源からの音を検知する単一指向性のマイクを適用可能である。
また、音声入力部14は、所定周波数成分の音成分を除去するバンドパスフィルタを備えていてもよい。例えば、ゲーム音楽に対応する周波数成分を除去し、人間の声のみを検出するようにしてもよい。
即ち、例えば、ユーザ100がゲームをプレイする部屋には、ゲーム音楽が出力されているので、このゲーム音楽やノイズを除去することによって、ユーザ100の音声のみを取得することができる。特定の音を除去する手法としては、フィードバック回路によってキャンセリングを行う方法等、公知の種々の手法を適用可能である。また例えば、位置検出装置1ではなくゲーム装置20によって、ゲーム音楽の音成分が除去される処理が行われるようにしてもよい。
通信インタフェース部15は、ゲーム装置20に対して3次元位置情報や音声情報等の各種データを送信するためのインタフェースである。
[1−5.ゲーム装置の構成]
ゲーム装置20は、例えば、家庭用ゲーム機(据置型ゲーム機)、携帯用ゲーム機、携帯電話機、携帯情報端末(PDA)、又はパーソナルコンピュータによって実現される。図10は、ゲーム装置20のハードウェア構成を示す図である。図10に示すように、ゲーム装置20は、制御部21、主記憶部22、補助記憶部23、光ディスク再生部24、通信インタフェース部25、操作部26、表示部27、及び音声出力部28を含む。
制御部21は、例えばCPU、GPU(Graphics Processing Unit)、及びSPU(Sound Processing Unit)等を含む。制御部21は、オペレーティングシステムやその他のプログラムに従って各種処理を実行する。
主記憶部22は、例えば、RAM(Random Access Memory)を含む。主記憶部22は、補助記憶部23又は光ディスク(情報記憶媒体)から読み出されたプログラムやデータを記憶する。また、主記憶部22は、処理の過程で必要なデータを記憶するワークメモリとしても用いられる。また例えば、主記憶部22は、位置検出装置1から受信される3次元位置情報を、受信時間と対応付けて一時的に記憶する。
補助記憶部23は、例えば、ハードディスク装置(情報記億媒体)を含む。補助記憶部23は、例えば、位置検出装置1から受信された音声情報を記憶する。
光ディスク再生部24は、光ディスクに記憶されたプログラムやデータを読み取る。光ディスクには、例えば、ゲームプログラムが記憶されている。
通信インタフェース部25は、ゲーム装置20を通信ネットワークに通信接続するためのインタフェースである。ゲーム装置20は、通信インタフェース部25を介して3次元位置情報や音声情報を、位置検出装置1から取得する。
操作部26は、ユーザが操作を行うためのものである。操作部26は、例えばゲームコントローラ、タッチパネル、マウス、又はキーボード等を含む。
表示部27は、例えば、家庭用テレビ受像機又は液晶表示パネル等である。表示部27は、制御部21の指示に従って画面を表示する。
音声出力部28は、例えば、スピーカ又はヘッドホン等を含む。音声出力部28は、補助記憶部23から読み出された音声情報や、光ディスクに記憶されたゲーム音楽等を制御部21の指示に従って出力する。
上記のように、本実施形態においては、ゲームの実行に際して必要なプログラムやデータは、光ディスクを介してゲーム装置20に供給される場合を説明する。なお、これらのプログラムやデータは、他の情報記憶媒体(例えばメモリカード)を介してゲーム装置20に供給されるようにしてもよい。または、プログラムやデータは、通信ネットワークを介して遠隔地からゲーム装置20に供給されるようにしてもよい。
ゲームシステムS(ゲーム装置20)では、光ディスクから読み出されたゲームプログラムによってゲームが実行される。例えば、ゲームシステムSにおいては、ゲームキャラクタ51と同じポーズをとるようなダンスゲーム(図7、図8)が実行される。
[1−6.ゲームシステムにおいて実現される機能]
次に、ゲームシステムSにおいて実現される機能について説明する。図11は、ゲームシステムSで実現される機能のうち、本発明に関連する機能を示す機能ブロック図である。図11に示すように、ゲームシステムSはゲームデータ記憶部60(記憶手段)、ゲーム実行部70、及び音声登録受付部80を含む。
[1−6−1.ゲームデータ記憶部]
ゲームデータ記憶部60は、例えば、主記憶部22、補助記憶部23、及び光ディスクを主として実現される。ゲームデータ記憶部60は、ダンスゲームを実行するために必要な情報やデータを記憶する。例えば、ゲームデータ記憶部60は、ゲームキャラクタ51の動きを示すアニメーション情報を記憶する。
[判定基準情報]
また例えば、ゲームデータ記憶部60は、3次元位置情報に基づいてユーザ100の動作又はポーズを判断する際の基準となる判定基準情報を記憶する。
図12は、判定基準情報の一例を示す図である。図12に示すように、判定基準情報は、例えば、ユーザ100の動作又はポーズを識別する情報と、ユーザ100の3次元位置情報に関する判定基準と、を対応付けたものである。判定基準とは、3次元位置情報が満たすべき条件である。判定基準としては、例えば、3次元位置情報に含まれるユーザ100の各部位の3次元座標の変化速度、変化量、変化方向を示す情報や、3次元空間におけるユーザ100の各部位の位置関係を示す情報である。
制御部21は、3次元位置情報が示す各部位の変化や位置関係が、判定基準情報に含まれる判定基準を満たすか否か、に基づいてユーザ100の動作やポーズを判定する。例えば、ユーザ100の両ひじ及び両手の3次元座標が、上方に所定速度で所定距離の変化をした場合、制御部21は、ユーザ100が両手を上げたと判定する。また例えば、ユーザ100の頭の3次元座標と両手の3次元座標とが所定の位置関係にあった場合、制御部21は、ユーザ100がファイティングポーズをとっていると判定する。
[基準タイミング情報]
また、ゲームデータ記憶部60は、ユーザ100が、どのタイミングでどのような動作又はポーズをとるべきか、を識別するための基準タイミング情報を記憶する。
図13は、基準タイミング情報の一例を示す図である。図13に示すように、基準タイミング情報には、基準タイミング(時間)と、ユーザ100がすべき動作又はポーズを識別する情報と、が対応付けられている。基準タイミングは、例えば、ゲームが開始されてからの経過時間が格納される。図13のデータ格納例では、ゲームが開始されてから時間t1が経過した場合、ユーザ100は両手を上げるべきであることを示す。
先述したアニメーション情報は、基準タイミング情報に基づいて作成されている。即ち、基準タイミングが訪れた場合、ゲームキャラクタ51が、この基準タイミングに対応付けられている動作又はポーズと類似した動作又はポーズをとるようになっている。
ゲーム実行部70は、アニメーション情報や基準タイミング情報に基づいてゲーム画面50の表示制御を行う。具体的には、ゲーム実行部70は、例えば、アニメーション情報に基づいてゲームキャラクタ51の画像を表示させる。また例えば、ゲーム実行部70は、現在の時間と基準タイミングとの時間差に基づいて、注目領域53の半径R53の大きさ制御する。
[現在状況情報]
また、ゲームデータ記憶部60は、現在状況情報記憶部61を含む。現在状況情報記憶部61は、ゲーム状況を示すゲーム状況情報を現在状況情報として記憶する。なお、「ゲーム状況」とは、ゲーム画面50の表示状況やゲームの進行状況(経過状況)を意味する。
図14は、現在状況情報の一例を示す図である。図14に示すように、例えば、下記に示す情報が現在状況情報に含まれる。
(1)得点情報(例えば、現在のユーザ100の得点や、コンボ数を示す情報等)
(2)時間情報(例えば、ステージクリアまでの残り時間や、ステージクリアまでに訪れる基準タイミングの回数等)
(3)表示情報(例えば、判定領域52の半径R52や注目領域53の半径R52等)
(4)ゲーム経過情報(例えば、得点が加算又は減少されていく様子を示す情報や、ミスをした回数を示す情報等)
なお、実行中のゲームの状況は、例えば、上記の現在状況情報に基づいて判別される。ゲームの状況の判別方法は、現在状況情報に格納される各値に基づいて予め定められた方法で判別されるようにすればよい。例えば、得点情報が示す得点が基準値よりも低くなった場合、ゲームの状況が「ピンチ」であると判定され、また例えば、得点情報が示す得点が基準値よりも低いが、残り時間が比較的短い場合、ゲームの状況が「クリア間近」であると判定される。
現在状況情報記憶部61に記憶される現在状況情報は、例えば、後述する現在状況情報更新部71によって内容が更新される。更新された現在状況情報は、例えば、更新時間と対応付けられて現在状況情報記憶部61に記憶されるようにしてもよい。この場合、現在状況情報が更新される度に、現在状況情報が蓄積されることになる。これにより、ゲーム装置20は、現在及び過去のゲームの状況を把握することができる。
[音声テーブル]
さらに、ゲームデータ記憶部60は、音声データ記憶部62を含む。音声データ記憶部62は、音声に関する音声情報と、音声を出力すべきゲーム状況を示す基準ゲーム状況情報と、を対応づけて記憶する。ゲームデータ記憶部60は、例えば、これらの内容を音声テーブルとして記憶する。
図15は、音声データ記憶部62に記憶される音声テーブルの一例を示す図である。音声テーブルは、多数のレコードを含む。各レコードは「基準ゲーム状況情報」フィールドと「音声情報」フィールドとを含む。「基準ゲーム状況情報」フィールドには、音声を出力すべきゲーム状況を示す情報が記憶される。「音声情報」フィールドには、音声情報を識別する情報(音声情報のデータ自体、又は、音声情報が格納されたフォルダ及びファイル名等)が記憶される。
後述する音声情報取得部81が音声情報を取得すると、この音声情報が、例えば、現在状況情報が示すゲーム状況と対応付けられて音声テーブルに格納(登録)される。即ち、ユーザ100が発した音声が音声入力部14を介して入力されると、この音声が入力された場合のゲームの状況と対応付けられて記憶される。
なお、音声テーブルに所定数以上のレコードが含まれる場合、このうちの所定のレコードが削除されるようにしてもよい。例えば、最も古いレコードが削除されて直近で録音された音声を含むレコードが格納される。また例えば、音声テーブルには、ゲーム制作者が予め設定した音声が登録されていてもよい。
ユーザ100が発した音声が入力された場合のゲームの状況は、音声情報に対応付けられた基準ゲーム状況情報に基づいて判別される。基準ゲーム状況情報のデータ形式は、現在状況情報(図14)と同様である。ゲームの状況の判別方法は、現在状況情報と同様であるので説明を省略する。
なお、現在状況情報及び基準ゲーム状況情報のデータ形式は、ゲーム作成者によって予め定められたものであればよい。つまり、ゲームの状況を示すための情報の形式は、図14に示す例に限られない。ゲームの状況を示すための情報の形式は、ゲームシステムSにおいて実行されるゲームの種類に応じて適宜変更可能である。
[1−6−2.ゲーム実行部]
ゲーム実行部70は、制御部21を主として実現される。ゲーム実行部70は、ゲームを実行する。例えば、ゲーム実行部70は、ゲーム画面50を表示部27に表示させたり、基準タイミングにおいて、ユーザ100が基準となる動作又はポーズ(姿勢)をしたか否かを判定して得点を増減させる処理を実行する。即ち例えば、ゲーム実行部70は、ユーザ100の3次元位置情報に基づいてゲームを制御する。
ゲーム実行部70は、現在状況情報更新部71、音声出力制御部72、及びゲーム状況比較部73を含む。
現在状況情報更新部71は、現在状況情報記憶部61に記憶される現在状況情報を更新する。例えば、現在状況情報更新部71は、基準タイミングが訪れた場合、ユーザ100がゲームキャラクタ51と類似の動作又はポーズをしているか否かに基づいて、得点情報を更新する。基準タイミングが訪れた場合とは、例えば、基準タイミングから所定時間前後した時間を含む。
基準タイミングが訪れた場合、例えば、ユーザ100が、この基準タイミングに対応付けられた動作又はポーズと類似した動作又はポーズをしたか否かに基づいて、現在状況情報更新部71は、得点が加算又は減少させて得点情報を更新する。また例えば、現在状況情報更新部71は、ゲームが開始されてからユーザ100の得点の増減の経過を時系列的に示すゲーム経過情報を更新する。また例えば、現在状況情報更新部71は、時間経過に伴って時間情報や表示情報を、所定のアルゴリズムに基づいて更新する。
音声出力制御部72は、ゲームデータ記憶部60に記憶された音声情報が示す音声や、ゲーム音楽(楽曲)、効果音等の各種音声データを音声出力部28から出力させる。
ゲーム状況比較部73は、ゲームにおいて、該ゲームにおけるゲーム状況と、音声情報に対応づけられた基準ゲーム状況情報が示すゲーム状況と、を比較する。
例えば、ゲーム状況比較部73は、実行中のゲームにおけるゲーム状況と、基準ゲーム状況情報が示すゲーム状況と、の類似度を取得する。例えば、実行中のゲームにおけるゲーム経過情報が示す得点が増減する様子と、基準ゲーム状況情報が示すゲーム経過情報が示す得点が増減する様子と、の類似度が取得される。ここで、「得点が増減する様子」とは、得点情報が増減する時系列的な様子である。この場合の類似度は、例えば、時系列的な得点の増減の具合について、実行中のゲームにおけるゲーム状況と、基準ゲーム状況情報が示すゲーム状況との間で比較することによって算出される。
音声出力制御部72は、ゲームが実行されている状態において、ゲーム状況比較部73の比較結果に基づいて、音声情報が示す音声を音声出力部28から出力させる。例えば、ゲーム状況比較部73の比較結果が所定の結果である場合、音声出力制御部72は、基準ゲーム状況情報に対応づけられた音声情報が示す音声を音声出力部28から出力させる。
ここで、「ゲーム状況比較部73の比較結果が所定の結果である場合」とは、例えば、実行中のゲームにおけるゲーム状況と、基準ゲーム状況情報が示すゲーム状況と、が一致又は類似する場合である。言い換えれば、「ゲーム状況比較部73の比較結果が所定の結果である場合」とは、例えば、実行中のゲームにおけるゲーム状況と、基準ゲーム状況情報が示すゲーム状況と、の類似度が所定範囲(例えば、基準類似度よりも高い)の場合である。
[1−6−3.音声登録受付部]
音声登録受付部80は、制御部21を主として実現される。音声登録受付部80は、ゲームにおいて出力される音声の登録を受け付ける。本実施形態の場合、音声登録受付部80は、実行中のゲームにおいて、ユーザ100が発した音声が音声入力部14を介して入力され、この音声の登録を受け付ける。図15に示すように、音声登録受付部80は、音声情報取得部81及び基準ゲーム状況情報取得部82を含む。
音声情報取得部81は、音声入力手段(音声入力部14)が受け付けたユーザ100の音声を示す音声情報を取得する。例えば、音声情報取得部81は、位置検出装置1から音声情報を受信することによって音声情報を取得する。本実施形態の場合、音声情報取得部81は、ゲーム装置20でゲームが実行されている間において、音声入力部14から入力された音声に対応する音声情報を取得する。
本実施形態においては、例えば、音声情報が示す音声の音量が基準値以上となった場合、主記憶部22に記憶される発話フラグがオンになる。この発話フラグは、ユーザ100が発話しているか否かを識別するためのものである。即ち、ユーザ100の発話が終了した場合、この発話フラグがオフになる。例えば、発話フラグがオンである状態で、音声情報が示す音声の音量が基準値未満である状態が所定時間(例えば、2秒)継続した場合、ユーザ100の発話が終了したと判定される。即ち、この場合、発話フラグがオフになる。
例えば、発話フラグがオンになっている間に入力された音声のみが、ゲーム装置20に記憶されることになる。即ち、発話フラグが参照されることにより、ユーザ100の音声の録音の開始及び停止が制御されることになる。なお、ユーザ100の音声の録音の開始及び停止は、位置検出装置1によって制御されるようにしてもよい。
基準ゲーム状況情報取得部82は、音声が入力された場合のゲーム状況を示す基準ゲーム状況情報を取得する。本実施形態の場合、基準ゲーム状況情報取得部82は、ゲームが実行中の状態において、ユーザ100が発した音声が入力されたか否かを判定する。例えば、ゲーム装置20が音声入力部14から受信する音声情報が示す音声の音量が所定値以上となった場合、ユーザ100によって音声が入力されたと判定される。
そして、基準ゲーム状況情報取得部82は、音声入力部14から音声が入力された場合のゲーム状況を示す情報を基準ゲーム状況情報として取得する。例えば、基準ゲーム状況情報取得部82は、音声の入力が開始された場合のゲーム状況を示す情報を基準ゲーム状況情報として取得する。即ち例えば、音声入力部14から入力された音声の音量が所定値以上となって発話フラグがオンになった場合の現在状況情報が、基準ゲーム状況情報として記憶される。
音声登録受付部80は、音声情報取得部81によって取得された音声情報と、基準ゲーム状況情報取得部82によって取得された基準ゲーム状況情報と、を対応づけて音声データ記憶部62に記憶させる。本実施形態の場合、音声情報取得部81によって取得された音声情報と、基準ゲーム状況情報取得部82によって取得された基準ゲーム状況情報と、の組合せが、一つのレコードとして音声テーブルに登録される。
[1−7.ゲームシステムにおいて実行される処理]
次に、ゲームシステムS(ゲーム装置20)で実行される処理について説明する。図16は、ゲームシステムSが所定時間(例えば1/60秒)ごとに実行する処理を示すフロー図である。制御部21が、補助記憶部23又は光ディスクに記憶されたプログラムに従って、図16に示す処理を実行する。
図16に示すように、まず、制御部21(現在状況情報更新部71)は、現在状況情報を更新する(S101)。例えば、制御部21は、ユーザ100の動作又はポーズと、基準タイミング情報の記憶内容と、を比較して得点情報を更新する。また例えば、制御部21は、時間情報を時間経過に基づいて更新する。また例えば、制御部21は、ゲームキャラクタ51の表示位置を変えたり注目領域53の半径R53を小さくするように、表示情報を更新する。また例えば、制御部21は、ユーザ100が獲得した得点に基づいてゲーム経過情報を更新する。
制御部21は、更新後の現在状況情報を現在状況情報記憶部61に保存する(S102)。S102においては、例えば、更新後の現在状況情報が、更新時間と対応付けられて保存される。
制御部21は、音声情報が示す音声の出力タイミングが訪れたか否かを判定する(S103)。出力タイミングは、ゲームデータ記憶部60に記憶された音声情報を音声出力部28から出力すべきタイミングである。出力タイミングは、予め定められたタイミングであってよい。例えば、出力タイミングは、前回音声が出力されてから所定時間が経過したか否か、現在状況情報が示すゲーム状況が所定の状況になったか否か等である。
出力タイミングが訪れた場合(S103;Y)、制御部21は、音声テーブルに含まれる基準ゲーム状況情報が示すゲーム状況と現在のゲーム状況との間の類似度を取得する(S104)。S104においては、音声テーブルに含まれる全てのレコードが参照されるようにしてもよいし、ランダムに選出される一部のレコードのみが参照されるようにしてもよい。類似度は、例えば、下記のようにして算出される。
例えば、制御部21は、ゲーム状況に関するn個の指標値を現在のゲーム状況に関して取得する。ここで、指標値はゲーム状況の特徴を表すような数値であり、ゲーム状況が類似しているか否かを評価するための数値である。同様に、制御部21は、上記のn個の指標値を、音声テーブルに含まれるレコードの基準ゲーム状況情報が示すゲーム状況に関しても取得する。
そして、上記のn個の指標値をn次元のベクトルとみなして、制御部21は、現在のゲーム状況に対応するベクトルと、音声テーブルに含まれるレコードの基準ゲーム状況情報が示すゲーム状況に対応するベクトルと、のなす角度(θ)に基づいて、類似度を算出する。例えば、この角度の余弦(cosθ)が類似度として用いられる。この余弦が1に近いほど、両者のベクトルが同じ方向を示していることになるため、上記のn個の指標値が互いに類似していることを示す。
即ち、現在のゲーム状況と、音声テーブルのレコードのうちで比較対象となるレコードの基準ゲーム状況情報が示すゲーム状況と、が類似していることを示す。一方、例えば、上記の余弦が0に近いほど、上記のn個の指標値が互いに類似しないことを示す。即ち、現在のゲーム状況と、比較対象のレコードの基準ゲーム状況情報が示すゲーム状況と、が類似していないことを示す。
図16に戻り、制御部21は、音声テーブルに含まれるレコードのうちで最も類似度が高いレコードの音声情報が示す音声を音声出力部28から出力させる(S105)。つまり、現在のゲーム状況と最も似ているゲーム状況で録音された音声が出力されることになる。なお、S105においては、ゲーム状況に基づいて所定のエフェクト処理が施された音声が出力されるようにしてもよい。
次いで、制御部21(音声出力制御部72)は、ユーザ100の音声を記憶するか否かを判定する(S106)。S106においては、例えば、主記憶部22に記憶された発話フラグによって判定される。例えば、発話フラグがオンである状態からオフになった場合、ユーザ100が発した音声の入力が終了したことを示している。この場合に、制御部21は、ユーザ100による音声を記憶すると判定する。
ユーザ100による音声を記憶する場合(S106;Y)、制御部21(音声登録受付部80)は、基準ゲーム状況情報と、音声情報と、の組合せを音声テーブルに登録する(S107)。S107において登録される音声情報は、例えば、発話フラグがオンになっている間に、ユーザ100が発した音声を示す音声情報である。
S107においては、制御部21(音声情報取得部81)は、ユーザ100が入力した音声を示す音声情報を取得する。また、制御部21(基準ゲーム状況情報取得部82)は、ユーザ100が音声を入力した場合のゲーム状況を示す情報を基準ゲーム状況情報として取得する。例えば、音声の入力が開始された際の現在状況情報が基準ゲーム状況情報として取得される。
そして、制御部21(音声登録受付部80)は音声テーブルに新たなレコードを追加する。新たに追加されるレコードの「基準ゲーム状況情報」フィールドには、取得された基準ゲーム状況情報が登録され、「音声情報」フィールドには、取得された音声情報が登録される。
一方、ユーザ100による音声を記憶しない場合(S106;N)、処理は終了する。
以上説明したゲームシステムS(ゲーム装置20)によれば、ゲーム中に出力される音声内容と、その音声が出力されるべき状況と、をユーザ100が音声を入力することによって登録できるようになる。その結果として、音声が出力される状況及び音声内容の多種多様性を高めることができる。例えば、ゲームシステムSによれば、過去にユーザ100がプレイした際に録音された音声が、実行中のゲームにおいて、歓声や応援として出力されるようになる。
なお、ゲーム状況の比較方法として、類似度を用いた場合を説明したが、ゲーム状況の比較方法は、これに限られない。他にも、所定の数式に、現在状況情報の各値と基準ゲーム状況の各値とが代入されることによって、ゲーム状況が比較されるようにしてもよい。
[2.実施形態2]
以下、実施形態2について説明する。実施形態1においては、ユーザ100がプレイしているゲームの状況が、過去に音声が入力された場合のゲーム状況と類似する場合、このゲーム状況に対応付けられた音声を出力する。
これに対して実施形態2は、ゲームシステムSにおいて記憶(録音)された音声情報に対応するキーワードを記憶し、出力すべき音声を選出する際に、音声に対応するキーワードを考慮する点に特徴がある。音声に対応するキーワードとは、例えば、ユーザ100の音声に含まれる単語(又は文章)である。また、キーワードは、ユーザ100の音声に含まれる単語(又は文章)と類似する単語(又は文章)であってもよい。
実施形態2のゲームシステムSによれば、例えば、ユーザ100がゲーム状況を勘違いして録音されてしまった音声が出力されることを防ぐことができる。例えば、得点が少なくなってきたが、残りの基準タイミングの数も少ない場合(つまり、クリア間近の状態)を考える。
ゲームの初心者は、点数の少ないゲージ54を見て「もうだめだ!」のようなネガティブな音声を発することが考えられる。しかし、この場合、ある程度プレイしているユーザ100は、曲調やダンスの内容に基づいてクリア間近であることが分かるので、「もうだめだ!」のようなネガティブな音声ではなく、「頑張れ!」のようなポジティブな音声を発することが考えられる。上記の2つの音声が録音されると、以後「クリア間近」のゲーム状況になった場合に、ネガティブな「もうだめだ!」という音声、又は、ポジティブな「頑張れ!」という音声、のどちらかが音声出力部28から出力される。
例えば、「クリア間近」のようなゲーム状況では、ユーザ100を応援するために、ポジティブな音声を出力させる方が好ましい。例えば、「もうだめだ!」のようなネガティブな音声は、「クリア間近」のゲーム状況ではなく、ユーザ100がゲームクリアをあきらめてしまった時のような状況の時に出力されるべきである。
そこで、実施形態2では、例えば、キーワードを含む音声が出力されるべきゲーム状況を予め指定しておく。例えば、「だめだ!」のようなネガティブなキーワードを含む音声は、ゲーム状況が「ピンチ」な場合に出力され、「頑張れ!」のようなポジティブなキーワードを含む音声は、ゲーム状況が「クリア間近」な場合に出力されるようにする。このようにすることによって、ゲーム状況に適した音声を選ぶ際の精度を、より向上させることができる。
なお、実施形態2に係るゲームシステムSを構成する各装置のハードウェア構成は、実施形態1(図9、図10参照)と同様であるため、説明を省略する。
[2−1.実施形態2において実現される機能]
図17は、実施形態2におけるゲームシステムの機能ブロック図である。図17に示すように、実施形態2において実現される機能は、実施形態1の機能(図11)に加えて、関連状況情報記憶部63、関連ゲーム状況比較部74、キーワード取得部83を含む。
[2−1−1.実施形態2のゲームデータ記憶部]
例えば、ゲームデータ記憶部60は、関連状況情報記憶部63を含む。関連状況情報記憶部63は、キーワードを示すキーワード情報と、キーワードに関連するゲーム状況を示す関連ゲーム状況情報と、を対応付けて記憶する。キーワードに関連するゲーム状況とは、キーワードに対応する音声が出力されるべきゲーム状況である。
関連状況情報記憶部63の記憶内容は、予めゲーム作成者によって作成されていてよい。関連ゲーム状況情報は、ユーザ100がキーワードを発する、とゲーム作成者が考える予め定められたゲーム状況である。例えば、「やばい!」というキーワードには、得点情報が示す得点が比較的少ないゲーム状況が対応付けられる。関連状況情報記憶部63は、例えば、上記の記憶内容をキーワードテーブルとして記憶する。
図18は、キーワードテーブルのデータ格納例を示す図である。図18に示すように、キーワードテーブルには、キーワード情報と、関連ゲーム状況情報が対応付けられて記憶されている。図18のデータ格納例の場合、例えば、「やばい!」というキーワードに対応する音声は、ゲーム状況A又はゲーム状況Cの時に出力されるべきであることを示している。
また、実施形態2の音声データ記憶部62に記憶される音声テーブルは、例えば、音声情報と、キーワードと、を対応付ける。
図19は、実施形態2における音声テーブルのデータ格納例を示す図である。図19に示すように、音声テーブルには、基準ゲーム状況情報と、音声情報と、キーワード情報と、の組み合わせが記憶されている。即ち例えば、実施形態2における音声テーブルは、実施形態1の音声テーブル(図15)の内容に加えて、「キーワード情報」フィールドを更に含む。
音声テーブルに格納されるキーワード情報は、例えば、キーワードテーブルに格納されたキーワード情報のうちで音声情報が示す音声に含まれるキーワード情報である。このキーワードは、後述するキーワード取得部83によって取得される。
[2−1−2.実施形態2のゲーム実行部]
図17に示すように、実施形態2のゲーム実行部70は、関連ゲーム状況比較部74を含む。関連ゲーム状況比較部74は、ゲームにおいて、該ゲームにおけるゲーム状況と、キーワード情報に対応付けられた関連ゲーム状況情報が示すゲーム状況と、を比較する。
例えば、関連ゲーム状況比較部74は、現在状況情報が示すゲーム状況と、キーワードテーブルに格納されたゲーム状況と、の類似度を算出する。この類似度の算出方法は、ゲーム状況比較部73が算出する方法と同様であってよい。即ち、関連ゲーム状況比較部74によるゲーム状況の比較方法は、ゲーム状況比較部73によるゲーム状況の比較方法と同様であってよい。
[2−1−3.実施形態2の音声登録受付部]
図17に示すように、実施形態2の音声登録受付部80は、キーワード取得部83を含む。キーワード取得部83は、音声情報が示す音声に対応するキーワードを取得する。音声に対応するキーワードとは、例えば、音声に含まれるキーワードである。
本実施形態では、音声情報が示す音声に対して音声認識処理が行われ、キーワードテーブルに格納されたキーワードが、この音声の中に含まれているか否か、が比較されることによって、キーワードが取得される場合を説明する。
例えば、キーワード取得部83は、スペクトラムアナライザを使用して音声情報が示す音声の音声認識を行う。例えば、ユーザ100の音声に対応するスペクトラムの強弱の傾向に基づいて音声認識が行われる。具体的には、例えば、ゲーム作成者は、人間の発話内容から蓄積される音声の特徴を記録した学習用のデータを予め用意しておき、補助記憶部23等に記憶しておく。
キーワード取得部83は、例えば、この学習用データと、ユーザ100が入力した音声の特徴と、を比較して音声認識を行う。次いで、キーワード取得部83は、この音声認識により取得されるユーザ100の発話内容と、予め定められたキーワードと、を比較してキーワードを取得する。
なお、音声認識の手法として、上記ではスペクトラムアナライザによる統計的手法を例に挙げたが、音声認識を行う方法としては、公知の種々の手法を適用可能である。他にも例えば、細かく変化する音声信号を仮想的に定常信号とみなし、この定常信号の変化に基づいて音声認識を行う、隠れマルコフモデルを使用して音声認識が行われるようにしてもよい。
上記のようにしてキーワード取得部83によって取得されたキーワードは、音声情報と対応付けられて音声テーブルに記憶される。
[2−2.ゲームシステムにおいて実行される処理]
図20は、実施形態2のゲームシステムSが所定時間(例えば1/60秒)ごとに実行する処理を示すフロー図である。図20に示す処理は、図16に示す処理に対応する。制御部21が、補助記憶部23又は光ディスクに記憶されたプログラムに従って、図20に示す処理を実行する。
図20に示すように、S201〜S204は、それぞれS101〜S104と同様であるので説明を省略する。
制御部21(関連ゲーム状況比較部74)は、S204において取得された類似度が所定範囲(例えば、余弦が0.7以上)のレコードのキーワードに関連付けられた関連ゲーム状況と、現在のゲーム状況と、の類似度を取得する(S205)。具体的には、まず、音声テーブルのレコードのうちでS204において取得される類似度が所定範囲のレコードが参照される。次いで、このレコードに格納されたキーワードと、キーワードテーブルと、が参照され、このキーワードに対応付けられているゲーム状況と、現在のゲーム状況と、の類似度が取得される。類似度の算出方法は、S204と同様である。
制御部21は、S205において取得された類似度のうちで最も類似度の高いレコードの音声を出力する(S206)。
S207は、S106と同様であるので説明を省略する。
ユーザ100の音声を記憶する場合(S207;Y)、制御部21(キーワード取得部83)は、音声情報が示す音声に対応するキーワードを取得する(S208)。ここで取得されるキーワードは、例えば、音声に含まれる単語と同一又は類似したキーワードである。S208においては、例えば、先述したような音声認識処理が実行されて音声情報が示す音声に対応するキーワードが取得される。キーワードの類似は、例えば、キーワードテーブルに格納されたキーワードと部分一致するものがあるか否かに基づいて判断される。
制御部21は、基準ゲーム状況情報と、音声情報と、S208において取得されたキーワード情報と、の組合せを音声テーブルに登録する(S209)。つまり、制御部21は、音声情報と、キーワード情報と、を対応付けて音声データ記憶部62(記憶手段)に記憶させる。
以上説明した実施形態2のゲームシステムSによれば、音声情報が示す音声に対応するキーワードに基づいて出力すべき音声を選出することができる。即ち、基準ゲーム状況情報と、キーワードと、の両者に基づいて、現在のゲーム状況に応じた最適な音声を出力することができる。例えば、あるキーワードを含む音声を出力させるゲーム状況を絞り込むことによって、好ましくない(出力させたくない)ゲーム状況で録音されてしまった音声の出力を制限したり、S204において取得された類似度の値が近い音声のうちで、現在の状況に適したキーワードを含む音声を絞り込んで出力させることができる。
なお、実施形態2においては、現在のゲーム状況と基準ゲーム状況との類似度を算出して(S204)音声情報を絞り込んでから、現在のゲーム状況と関連ゲーム状況との類似度を算出する(S205)場合を説明したが、これらは逆であってもよい。即ち、現在のゲーム状況と関連ゲーム状況との類似度を算出して音声情報を絞り込んでから、現在のゲーム状況と基準ゲーム状況との類似度を算出して出力すべき音声情報が決定されるようにしてもよい。
[3.実施形態3]
以下、実施形態3について説明する。実施形態1においては、ユーザ100の音声が入力された場合のゲーム状況と類似するゲーム状況になった際、この音声を出力する。実施形態2においては、出力する音声を選出する際に、音声情報に対応付けられたキーワードを考慮する。
これらに対し、実施形態3においては、ゲームをプレイしているユーザ100の人数を取得して、出力する音声を選出する際に、この人数を考慮する点に特徴がある。例えば、実行中のゲームをプレイしているユーザ100が1人である場合、4人でゲームをプレイしていた際に録音された音声を出力させることによって、ユーザ100は、1人でゲームをプレイしていても、友人に囲まれてゲームをしているような感覚を味わうことができる。
なお、実施形態3に係るゲームシステムSを構成する各装置のハードウェア構成は、実施形態1(図9、図10参照)と同様であるため、説明を省略する。
[3−1.実施形態3において実現される機能]
図21は、実施形態3におけるゲームシステムSの機能ブロック図である。図21に示すように、実施形態3において実現される機能は、実施形態1の機能に加えて、ユーザ数取得部90が含まれる。
[3−1−1.ユーザ数取得部]
ユーザ数取得部90は、例えば、制御部21を主として実現される。ユーザ数取得部90は、ユーザ100の人数を示す情報を取得する。例えば、ユーザ数取得部90は、ゲーム装置20が位置検出装置1から受信する3次元位置情報に基づいてユーザ100の人数を取得する。先述のように、位置検出装置1が複数のユーザ100を検出した場合、これら複数のユーザ100のそれぞれについての3次元位置情報が、ゲームシステムSに対して送信される。ユーザ数取得部90は、例えば、3次元位置情報が示すユーザ100の数を、ユーザ100の人数を示す情報として取得する。
なお、ユーザ数取得部90が、ユーザ100の人数を示す情報を取得する方法は、上記の例に限られない。例えば、ゲーム装置20が、CCDカメラ2によって撮影される撮影画像を位置検出装置1から取得し、ユーザ数取得部90が、この撮影画像に含まれるユーザ100の人数を取得するようにしてもよい。この場合、例えば、撮影画像に含まれるユーザ100の輪郭の数に基づいてユーザ100の人数が取得される。
他にも例えば、ゲーム装置20が、ユーザ100の深度を示す深度画像を取得し、ユーザ数取得部90が、上記と同様に、ユーザ100の輪郭の数に基づいて人数を取得するようにしてもよい。また他にも例えば、マイク4が検出した音声に基づいて、ユーザ100の数が検出されるようにしてもよい。具体的には、音声情報が示す音声が音声認識されることによって、ユーザ100の人数が検出されるようにしてもよい。
[3−1−2.実施形態3のゲームデータ記憶部]
実施形態3においては、音声データ記憶部62は、音声情報と、音声情報が示す音声が入力された場合のユーザ100の人数に関する基準人数情報と、を対応付けて記憶する。基準人数情報は、例えば、音声情報が示す音声の入力が開始された際のユーザ100の人数である。例えば、実施形態3においては、音声テーブルに上記の記憶内容が格納される。
図22は、実施形態3における音声テーブルのデータ格納例を示す図である。図22に示すように、音声テーブルは、基準ゲーム状況情報と、音声情報と、基準人数情報と、を対応付けて記憶する。即ち例えば、実施形態3における音声テーブルは、実施形態1の音声テーブル(図15)の内容に加えて、「基準人数情報」フィールドを更に含む。
なお、音声テーブルに格納される基準人数情報は、音声が入力された場合のユーザ100の人数であればよい。例えば、発話フラグがオンになっている間の何れかの時点に取得されるユーザ100の人数であってもよい。
[3−2.ゲームシステムにおいて実行される処理]
図23は、実施形態3のゲームシステムSが所定時間(例えば1/60秒)ごとに実行する処理を示すフロー図である。図23に示す処理は、図16に示す処理に対応する。制御部21が、補助記憶部23又は光ディスクに記憶されたプログラムに従って、図23に示す処理を実行する。
図23に示すように、S301〜S304は、それぞれS101〜S104と同様であるので説明を省略する。
制御部21(ユーザ数取得部90)は、実行中のゲームにおけるユーザ100の人数を取得する(S305)。S305においては、先述のように例えば、最も直近で位置検出装置1から受信した3次元位置情報に基づいてユーザ100の人数が取得される。
制御部21は、S305において取得されたユーザ100の人数が基準数(例えば、2人)以下であるか否かを判定する(S306)。
ユーザ100の人数が基準数以下である場合(S306;Y)、制御部21は、類似度が所定範囲(例えば、余弦が0.7以上)のレコードのうちで基準人数情報が示す人数が最も多いレコードの音声を出力する(S307)。つまり、制御部21(音声出力制御部72)は、ゲーム状況比較部73の比較結果と、ゲームにおけるユーザ100の数と、基準人数情報と、に基づいて音声情報が示す音声を出力させる。
一方、ユーザ100の人数が基準数以下でない場合(S306;N)、制御部21は、最も類似度の高いレコードの音声を出力する(S308)。
S309は、S106と同様であるので説明を省略する。
ユーザの音声を記憶する場合(S309;Y)、制御部21は、基準ゲーム状況情報と、音声情報と、S305で取得したユーザ100の人数を示す基準人数情報と、の組み合わせを音声テーブルに登録する(S310)。つまり、制御部21は、音声情報と、基準人数情報と、を対応付けて音声データ記憶部62(記憶手段)に記憶させる。
以上説明した実施形態3のゲームシステムSによれば、音声が入力された場合のユーザ100の人数に基づいて出力すべき音声を選出することができる。ユーザ100は、例えば、1人でゲームをプレイしている時でも、友人に囲まれてゲームをプレイしているような臨場感を感じながらゲームをプレイすることができる。
また例えば、ゲームをプレイしている人数によって、ユーザ100が発する音声が異なることがある。例えば、大人数(例えば、5人)でゲームをプレイしている場合、ゲームの状況が少し変化しただけで大げさに歓声をあげることが多いが、少人数(例えば、1人)でゲームをプレイしている場合には、あまり歓声を上げないことが考えられる。例えば、実施形態3のゲームシステムSによれば、プレイ中のユーザ100の人数と同じ人数で過去にプレイした場合の音声のみを出力させることもできるので、大げさな歓声ばかりが出力されることも防止できる。即ち、実施形態3のゲームシステムSによれば、出力すべき音声の選出の精度を向上させることができる。
なお、本実施形態においては、S304で算出される類似度が所定範囲のレコードのうちで基準人数情報が示す人数が最も多いレコードの音声が出力される場合を説明したが、ゲーム状況比較部73の比較結果と、現在のゲームにおけるユーザ100の人数と、基準人数情報が示す人数と、に基づいて選出される音声が出力されればよい。例えば、S304で算出される類似度と、現在のユーザ100の人数と、基準人数情報が示す人数と、が所定の重みづけされることによって算出される優先度に基づいて、出力すべき音声が決定されるようにしてもよい。
他にも例えば、制御部21は、実行中のゲームにおけるユーザ100の人数が所定人数(例えば、2人)以下の場合、基準人数情報が示す人数が所定人数(例えば、4人)以上であって、かつ、S304で算出される類似度が所定範囲であるレコードの音声が出力されるようにしてもよい。
[4.実施形態4]
上記説明した実施形態1〜3においては、ユーザ100が発した音声を、そのままの内容で出力させる場合を説明したが、出力される音声の音量が制御されるようにしてもよい。
実施形態4においては、ユーザ100の音声が録音された時間に基づいて出力される音声の音量が制御される。例えば、昼間に録音されたユーザ100の声は大きいことが考えられるので、この場合には音量を比較的小さくして出力させる。一方例えば、夜間に録音されたユーザ100の声は小さいことが考えられるので、この場合には音量を比較的大きくして出力させる。
なお、実施形態4に係るゲームシステムSを構成する各装置のハードウェア構成は、実施形態1(図10、図11参照)と同様であるため、説明を省略する。
[4−1.実施形態4において実現される機能]
図24は、実施形態4におけるゲームシステムSの機能ブロック図である。図24に示すように、実施形態4において実現される機能は、実施形態1の機能に加えて、音声受付時間取得部91が含まれる。
[4−1−1.音声受付時間取得部]
音声受付時間取得部91は、例えば、制御部21を主として実現される。音声受付時間取得部91は、音声入力部14がユーザ100の音声を受け付けた時間に関する基準時間情報を取得する。例えば、音声受付時間取得部91は、位置検出装置1から音声情報を受信した時間を取得する。この時間は、例えば、ゲーム装置20の時間関数等に基づいて取得される。
また例えば、位置検出装置1が時刻を把握する機能を有する場合、音声受付時間取得部91は、音声入力部14が音声を受け付けた時間を位置検出装置1から取得するようにしてもよい。
[4−1−2.実施形態4のゲームデータ記憶部]
実施形態4のゲームデータ記憶部60は、音声情報と、音声情報が入力された場合の基準時間情報と、を対応付けて記憶する。基準時間情報は、例えば、音声情報が示す音声の入力が開始された際の時間を示す。
図25は、実施形態4における音声テーブルのデータ格納例を示す図である。図25に示すように、音声テーブルは、基準ゲーム状況情報と、音声情報と、基準時間情報と、を対応付けて記憶する。即ち例えば、実施形態4における音声テーブルは、実施形態1の音声テーブル(図15)の内容に加えて、「基準時間情報」フィールドを更に含む。
なお、基準時間情報は、音声情報が入力された場合の時間であればよく、他にも例えば、基準時間情報は、発話フラグがオンの状態からオフになった時間であってもよい。
[4−1−3.実施形態4のゲーム実行部]
実施形態4のゲーム実行部70の音声出力制御部72は、ゲームにおいて、ゲーム状況比較部73の比較結果に基づいて、音声情報に対応付けられた基準時間情報に基づいて決定される音量で該音声情報が示す音声を出力させる。例えば、音声出力制御部72は、現在の時間と、基準時間情報が示す時間と、に基づいて決定される音量で音声を出力させる。例えば、音声出力制御部72は、現在の時間と、基準時間情報が示す時間と、の組み合わせによって決定される音量で音声を出力させる。この組み合わせは、例えば、予めゲームデータ記憶部60に記憶されている。
[4−2.ゲームシステムにおいて実行される処理]
図26は、実施形態4のゲームシステムSが所定時間(例えば1/60秒)ごとに実行する処理を示すフロー図である。図26に示す処理は、図16に示す処理に対応する。制御部21が、補助記憶部23又は光ディスクに記憶されたプログラムに従って、図26に示す処理を実行する。
図26に示すように、S401〜S404は、それぞれS101〜S104と同様であるので説明を省略する。
制御部21は、S404において算出された類似度のうちで最も類似度が高いレコードの音声を、基準時間情報が示す時間に基づいて定まる音量で出力する(S405)。S405においては、例えば、基準時間情報が示す時間と、現在の時間と、の比較結果に基づいて定まる音量で音声が出力される。
例えば、音声が録音された時間が夜であり、現在の時間も夜であれば、そのままの音量で出力される。また例えば、音声が録音された時間が昼であり、現在の時間も昼であれば、そのままの音量で出力される。また例えば、音声が録音された時間が夜であり、現在の時間が昼であれば、音声情報が示す音声の音量よりも大きい音量で出力される。また例えば、音声が録音された時間が昼であり、現在の時間が夜であれば、音声情報が示す音声の音量よりも小さな音量で出力される。
上記のような現在の時間及び音声が録音された時間が、昼であるか夜であるかは、例えば、この時間が属する時間帯に基づいて判別される。例えば、ゲーム装置20において識別可能な時間(時刻)が、第1時間帯と第2時間帯に予め分けられる。例えば、第1時間帯(例えば、6時〜18時)に属する時間を昼とし、第2時間帯(0時〜6時、又は、18時〜24時)に属する時間を夜とすることによって、上記の処理が実現される。
S406は、S106と同様であるので説明を省略する。
ユーザ100の音声を記憶する場合(S406;Y)、制御部21(音声受付時間取得部91)は、音声情報が入力された場合の時間を示す基準時間情報を取得する(S407)。制御部21は、基準ゲーム状況情報と、音声情報と、基準時間情報と、の組合せを音声テーブルに登録する(S408)。つまり、制御部21は、音声情報と、基準時間情報と、を対応付けて音声データ記憶部62(記憶手段)に記憶させる。
以上説明した実施形態4のゲームシステムSによれば、音声が入力された場合の時間に基づいて定まる音量で音声を出力することができるので、ユーザ100は、より適した音量で音声データ記憶部62に記憶された音声を聞くことができる。
[5.変形例]
なお、本発明は以上に説明した実施の形態に限定されるものではない。例えば、実施形態1〜実施形態4の何れか2つ、3つ、又は4つを組み合わせるようにしてもよい。
(1)また、上記実施形態においては、位置検出装置1によって検出されたユーザ100の動作又はポーズに基づいてゲーム処理が実行されるようにしたが、操作部26のコントローラ等からの操作入力によってゲーム処理が実行されるようにしてもよい。即ち、ゲームシステムSは、位置検出装置1を含まなくてもよい。この場合、音声入力部14がゲーム装置20に含まれる、又は、音声入力部14がゲーム装置20に外部接続されることになる。また、ユーザ数取得部90は、操作部26のコントローラ等からの操作入力によって、ユーザ100の人数を取得するようにしてもよい。
(2)上記に説明した実施形態では、基準ゲーム状況情報取得部82は、音声の入力が行われた場合のゲーム状況を示す情報を基準ゲーム状況情報として取得するようになっていた。しかし、基準ゲーム状況情報取得部82は、音声の入力が行われた場合のゲーム状況とは異なるゲーム状況を示す情報を、基準ゲーム状況情報として取得するようにしてもよい。
(2−1)例えば、基準ゲーム状況情報取得部82は、音声の入力が行われた場合のゲーム状況よりも前の時点のゲーム状況を示す情報を、基準ゲーム状況情報として取得するようにしてもよい。
例えば、この場合の基準ゲーム状況情報取得部82は、音声の入力が行われた場合(例えば、音声の入力が開始された場合)のゲーム状況が所定状況であるか否かを判定する。ここで、「ゲーム状況が所定状況である場合」とは、例えば、所定ゲームイベントが発生したような場合である。
また、「所定ゲームイベントが発生したような場合」とは、例えば、ゲームオーバーの直前の状態になってゲームイベントが起こる(例えば、BGMが変わる)場合等である。音声の入力が行われた場合のゲーム状況が所定状況である場合、基準ゲーム状況情報取得部82は、該ゲーム状況よりも所定時間(例えば3秒)前の時点のゲーム状況を示す情報を、基準ゲーム状況情報として取得する。
このようにすれば、所定状況に関して入力された音声が、所定状況になるよりも前の時点で出力されるようになる。即ち、例えば、過去にゲームオーバーになりそうな状況に関して入力された音声が、過去にゲームオーバーの直前の状態になってBGMが変わった状況の直前の状況と一致又は類似する状況になった場合に出力されるようになる。その結果、ユーザは、現在のゲーム状況が、ゲームオーバーになる可能性が高い状況であることを知ることが可能になる。
(2−2)また例えば、基準ゲーム状況情報取得部82は、音声の入力が行われた場合のゲーム状況よりも前又は後の時点であって、かつ、得点が増加又は減少された時点におけるゲーム状況を示す情報を、基準ゲーム状況情報として取得するようにしてもよい。
例えば、この場合の基準ゲーム状況情報取得部82は、音声の入力が行われた場合に再現されているゲーム状況の直前又は直後の、得点が増加又は減少された時点を特定する。そして、基準ゲーム状況情報取得部82は、ゲームデータ記憶部60に記憶されたゲーム状況情報に基づいて、その時点のゲーム状況を示す情報を基準ゲーム状況情報として取得する。
また、この場合のゲーム状況比較部73は、実行中のゲームにおいて得点が加算又は減少された時点におけるゲーム状況と、音声情報に対応づけられた基準ゲーム状況情報が示すゲーム状況と、を比較する。
ダンスゲームでは、得点が加算又は減少された時点で、ゲーム状況が大きく変化することが多い。この点、変形例(2−2)によれば、ゲーム状況が大きく変化する前の時点のゲーム状況同士が比較されるようになり、その結果として、ゲーム状況の比較の精度を向上することが可能になる。
(2−3)また例えば、基準ゲーム状況情報取得部82は、音声の入力が行われた場合のゲーム状況よりも前又は後の時点であって、かつ、基準タイミングが訪れていない時点におけるゲーム状況を示す情報を、基準ゲーム状況情報として取得するようにしてもよい。
例えば、この場合の基準ゲーム状況情報取得部82は、音声の入力が行われた場合のゲーム状況の直前又は直後において、ユーザ100が動作又はポーズをとらなくてよい時点(例えば、曲の間奏が流れている時点)を基準タイミングデータに基づいて特定する。そして、基準ゲーム状況情報取得部82は、この時点のゲーム状況を示す情報を基準ゲーム状況情報として取得する。
また、この場合のゲーム状況比較部73は、実行中のゲームにおいて間奏が流れていてユーザ100がポーズを取る必要がない時点におけるゲーム状況と、音声情報に対応づけられた基準ゲーム状況情報が示すゲーム状況と、を比較する。この変形例(2−3)によれば、ゲーム状況が比較的変化しない場面でのゲーム状況同士の比較が行われるようになり、ゲーム状況の比較の精度を向上することが可能になる。
(3)また例えば、本発明の実施形態に係るゲームシステムSは複数のゲーム装置20を含んで構成されるようにしてもよい。図27は、本発明の他の実施形態に係るゲームシステムSaの全体構成を示す図である。図27に示すように、ゲームシステムSaは、サーバ装置200と複数のゲーム装置20とを含んでいる。サーバ装置200及び複数のゲーム装置20は、例えばLAN(Local Area Network)又は/及びインターネット等を含む通信ネットワークNに接続される。サーバ装置200とゲーム装置20との間でも相互にデータ通信が可能であり、ゲーム装置20と他のゲーム装置20との間で相互にデータ通信が可能である。
サーバ装置200は、例えば、サーバコンピュータによって実現される。図27に示すように、サーバ装置200は、制御部201、主記憶部202、補助記憶部203、光ディスク再生部204、及び通信インタフェース部205を含む。
制御部201は、例えば、CPUを含み、オペレーティングシステムやその他のプログラムに従って情報処理を実行する。主記憶部202は、例えば、RAMを含む。主記憶部202には、補助記憶部203又は光ディスク(情報記憶媒体)から読み出されたプログラムやデータが記憶される。また主記憶部202は、処理の過程で必要なデータを記憶するワークメモリとしても用いられる。
補助記憶部203は例えばハードディスク装置を含む。光ディスク再生部204は光ディスクに記憶されたプログラムやデータを読み取る。通信インタフェース部205はサーバ装置200を通信ネットワークNに接続するためのインタフェースである。
ゲームシステムSaでは、例えば、各ゲーム装置20において図11に示す機能ブロックが実現されるようにすればよい。
(3−1)このゲームシステムSaでは、ゲーム装置20の音声情報取得部81及び基準ゲーム状況情報取得部82によって取得された音声情報及び基準ゲーム状況情報の組合せが、他のゲーム装置20に送信されるようにしてもよい。また、ゲーム装置20は、他のゲーム装置20から送信された音声情報及び基準ゲーム状況情報の組合せを受信するようにしてもよい。そして、ゲーム装置20の音声データ記憶部62には、他のゲーム装置20で取得された音声情報及び基準ゲーム状況情報の組合せが記憶されるようにしてもよい。このようにして、他のユーザ100が入力した音声が、実行中のゲームにおいて出力されるようにしてもよい。
なお、音声情報及び基準ゲーム状況情報の送受信は、ゲーム装置20間で直接行われるようにしてもよいし、サーバ装置200を介して行われるようにしてもよい。
(3−2)また、ゲームシステムSaでは、ゲーム装置20において、他のゲーム装置20で実行中のゲームを見ることができるようにしてもよい。即ち、ゲーム装置20において、他のゲーム装置20で実行中のゲームを観戦できるようにしてもよい。
この場合、ゲーム装置20は、ユーザ100がゲームをプレイしている場合、実行中のゲームのゲーム状況情報(現在状況情報)を他のゲーム装置20に送信する。また、ゲーム装置20は、ユーザ100が他のゲーム装置20で実行中のゲームを見る場合、他のゲーム装置20から受信したゲーム状況情報に基づいて、他のゲーム装置20で実行中のゲームの状況を表す画面(観戦画面)を表示部27に表示する。
また、この場合、変形例(3)と同様にすることによって、ユーザ100が観戦画面において音声を入力できるようにしてもよい。即ち、ユーザ100が他のユーザ100のゲームプレイを見て、音声を入力できるようにしてもよい。
また例えば、観戦画面を見ているユーザ100が発した音声(例えば、歓声、叫び声等)が入力されるようにしてもよい。即ち、他のユーザ100のゲームプレイを見ているユーザ100が発した音声が入力されるようにしてもよい。
なお、ゲーム状況情報の送受信は、ゲーム装置20間で直接行われるようにしてもよいし、サーバ装置200を介して行われるようにしてもよい。
(4)また例えば、本発明の実施形態に係るゲームシステムはいわゆるネットワークゲームシステムでなくてもよく、制御部と、記憶部と、複数の操作部と、該複数の操作部に対応する複数の表示部と、を含むようなゲーム装置(例えば、業務用ゲーム機)であってもよい。
(5)また例えば、本発明の実施形態に係るゲームシステムで実行されるゲームは、ダンスゲーム以外のゲーム(例えば、スポーツゲーム、格闘ゲーム又はレースゲーム)であってもよい。また例えば、本発明の実施形態に係るゲームシステムで実行されるゲームは、サッカーゲームのようにキャラクタグループ(例えば、チーム)同士が対戦するゲームでもあってもよいし、一のキャラクタと一のキャラクタとが対戦するゲームであってもよいし、一のキャラクタとキャラクタグループとが対戦するゲームであってもよい。