[1.実施形態1]
以下、本発明の実施形態の例について図面に基づき詳細に説明する。
[1−1.ゲームシステムの概要]
図1は、本発明に係るゲーム装置20とユーザ100との位置関係を示す図である。ゲーム装置20は、例えば、位置検出装置1とデータ通信可能に接続される。図1に示すように、ユーザ100は、例えば、位置検出装置1の前方に位置する。
位置検出装置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は、ユーザ100が発した音声を検出し、この音声に対応する音声情報をゲーム装置20に送信する。本実施形態においては、ゲーム装置20は、ユーザ100が発した音声の特徴と、実行中のゲームの状況と、に基づいてユーザ100を補助するようなゲーム処理を実行する。例えば、ゲーム装置20は、ゲームオーバーになりそうな状況で、ユーザ100がパニックになっているような声をあげている場合、ゲームの難易度を低下させる処理を行う。
[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に示すように、赤外線センサ3は、所定間隔でパルス状の赤外線光を照射する。
赤外線センサ3から照射された赤外線光は、赤外線センサ3の発光位置を中心点として球状に広がる。赤外線センサ3から照射された赤外線光は、例えば、ユーザ100の体等の表面に当たる。これらの表面に当たった赤外線光は、反射する。反射した赤外線光は、赤外線センサ3の赤外線受光素子により検出される。即ち、赤外線センサ3は、照射した赤外線に対して位相が180度反転した反射光を検出する。
例えば、図1に示すように、ユーザ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の体の動きやポーズを把握してゲームを実行する。
また、ユーザ100が複数人である場合、上記と同様の処理によって、複数のユーザ100のそれぞれについて3次元位置情報が生成される。例えば、赤外線センサ3によって検出されるユーザ100の輪郭の個数に基づいて、位置検出装置1は、ユーザ100の人数を把握することができる。それぞれのユーザ100に対応する画素に対して上記と同様の処理が実行されることによって、複数のユーザ100の3次元位置情報を生成することができる。
[1−3.ゲーム装置で実行されるゲーム]
次に、ゲーム装置20が実行するゲームについて説明する。本実施形態においては、ゲーム装置20が、ユーザ100が楽曲(BGM)に合わせてゲームキャラクタと同じ動作をする、又は、ゲームキャラクタと同じポーズをとるダンスゲームを実行する例を挙げて説明する。先述のように、ユーザ100の動作及びポーズは、3次元位置情報に基づいて判別される。
図7は、ゲーム画面50の一例を示す図である。図7に示すように、ゲーム画面50は、例えば、ゲームキャラクタ51、判定領域52、注目領域53、ゲージ54、メッセージ55、観客キャラクタ56を含む。ゲームキャラクタ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の得点を示す。また例えば、得点が加算された場合、観客キャラクタ56が喜ぶようなアニメーション処理が行われる。
一方、例えば、基準タイミングにおいて、ユーザ100が、ゲームキャラクタ51と類似のポーズを取ることができなかった場合、このユーザ100の得点が減少する。例えば、ゲージ54のうち斜線で示す領域が、得点の減少に伴って減少する。また例えば、得点が減少された場合、観客キャラクタ56が、がっかりするようなアニメーション処理が行われる。
ユーザ100の得点が所定範囲(例えば、0)になった場合、ゲームオーバーとなる。また、ユーザ100が連続して得点を加算した場合、この回数(コンボ数)がメッセージ55として表示される。
基準タイミングが到来した後、注目領域53の半径R53は、再び、判定領域52の半径R52よりも大きくなる。つまり、注目領域53と判定領域52との大小関係は、図7のように元に戻る。そして、注目領域53の半径R53は、次の基準タイミングが近づくにつれて注目領域53の半径R53が少しずつ小さくなっていく。以降のゲーム処理は、上記の繰り返しとなる。
また、本実施形態においては、ゲーム装置20が実行するゲームには、難易度が設定される。難易度は、例えば、ゲームプレイの困難性の程度を示す数値である。難易度が比較的高い場合、例えば、基準タイミングが訪れる間隔が短くなる。この場合、ユーザ100は、短い時間でたくさんポーズをとらなければならないので、ゲームが比較的難しくなる。一方、難易度が比較的低い場合、例えば、基準タイミングが訪れる間隔が長くなる。この場合、ユーザ100は、あまりたくさんポーズをとらなくてよいので、ゲームが比較的簡単になる。
なお、上記では、基準タイミングが近づくにつれて、注目領域53の半径R53が少しずつ小さくなっていく例を挙げたが、ゲーム画面50は、基準タイミングを案内することができる表示をすればよい。例えば、基準タイミングが近づくにつれて注目領域53の半径R53が少しずつ大きくなっていくようにしてもよい。他にも例えば、基準タイミングを案内する画像(案内画像)が、基準タイミングに対応する領域に近づいていくようにしてもよい。
本実施形態においては、上記のように実行されるゲームが所定の状況になり、かつ、ユーザ100が発した音声の特徴情報が所定の特徴を示しているである場合、ゲームの状況とユーザ100の状態との組み合わせに対応付けられたゲーム処理が実行される。音声の特徴情報とは、音声の特徴を示す指標の役割を果たし、例えば、音声の音量や波形の振幅のような音の特徴を定量的に評価するための特徴量である。
例えば、得点が少なくなった状態で、ユーザ100が「まだまだ!」という大きく高揚するような音声を発した場合、観客キャラクタ56がユーザ100を応援するようなアニメーション処理(ゲーム処理)が実行される。ユーザ100が、このような大きな声を発する場合、得点が少なくなってもゲームクリアをあきらめていないことが考えられるので、このユーザ100が、観客キャラクタ56の応援を受けながら心地よくゲームをプレイすることができるようになる。
他にも例えば、得点が少なくなった状態で、ユーザ100が「もうだめだ」という小さく残念そうな音声を発した場合、ゲームの難易度を低下させるゲーム処理が実行される。ユーザ100が、このような小さな声を発する場合、得点が少なくなりゲームクリアをあきらめかけていることが考えられるので、例えば、基準タイミングが訪れる時間間隔を広げるようなゲーム処理が実行され、このユーザ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は、ユーザ100が操作を行うためのものである。操作部26は、例えばゲームコントローラ、タッチパネル、マウス、又はキーボード等を含む。
表示部27は、例えば、家庭用テレビ受像機又は液晶表示パネル等である。表示部27は、制御部21の指示に従って画面を表示する。
音声出力部28は、例えば、スピーカ又はヘッドホン等を含む。音声出力部28は、補助記憶部23から読み出された音声情報や、光ディスクに記憶されたゲーム音楽等を制御部21の指示に従って出力する。
上記のように、本実施形態においては、ゲームの実行に際して必要なプログラムやデータは、光ディスクを介してゲーム装置20に供給される場合を説明する。なお、これらのプログラムやデータは、他の情報記憶媒体(例えば、メモリカード)を介してゲーム装置20に供給されるようにしてもよい。または、プログラムやデータは、通信ネットワークを介して遠隔地からゲーム装置20に供給されるようにしてもよい。
ゲーム装置20では、光ディスクから読み出されたゲームプログラムによってゲームが実行される。例えば、ゲーム装置20においては、ゲームキャラクタ51と同じポーズをとるようなダンスゲーム(図7、図8)が実行される。
[1−6.ゲームシステムにおいて実現される機能]
次に、ゲーム装置20において実現される機能について説明する。図11は、ゲーム装置20で実現される機能のうち、本発明に関連する機能を示す機能ブロック図である。図11に示すように、ゲーム装置20は、ゲームデータ記憶部60、特徴情報取得部62、基準特徴情報取得部64、特徴情報比較部66、基準ゲーム状況情報取得部68、ゲーム状況比較部70、及びゲーム実行部72を含む。
[1−6−1.ゲームデータ記憶部]
ゲームデータ記憶部60は、例えば、主記憶部22、補助記憶部23、及び光ディスクを主として実現される。ゲームデータ記憶部60は、ゲームを実行するために必要な情報やデータを記憶する。例えば、ゲームデータ記憶部60は、ゲームキャラクタ51の動きを示すアニメーション情報を記憶する。
また例えば、本実施形態に係るゲームは、主に、ゲームデータ記憶部60に記憶される以下の6つの情報に基づいて実行される。
(1)判定基準情報(図12)
(2)基準タイミング情報(図13)
(3)現在状況情報(図14)
(4)基準特徴情報(図15)
(5)基準ゲーム状況情報(図16)
(6)ゲーム処理情報(図17)
以下、上記の6つの情報について説明する。
[判定基準情報]
例えば、ゲームデータ記憶部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が、この基準タイミングに対応付けられている動作又はポーズと類似した動作又はポーズをとるようになっている。
ゲーム実行部72は、アニメーション情報や基準タイミング情報に基づいてゲーム画面50の表示制御を行う。具体的には、ゲーム実行部72は、例えば、アニメーション情報に基づいてゲームキャラクタ51の画像を表示させる。また例えば、ゲーム実行部72は、現在の時間と基準タイミングとの時間差に基づいて、注目領域53の半径R53の大きさ制御する。
[現在状況情報]
また、ゲームデータ記憶部60は、ゲーム状況を示すゲーム状況情報を現在状況情報として記憶する。なお、本実施形態における「ゲーム状況」とは、ゲーム画面50の表示状況やゲームの進行状況(経過状況)を意味する。
図14は、現在状況情報の一例を示す図である。図14に示すように、例えば、下記に示す情報が現在状況情報に含まれる。
(1)得点情報(例えば、現在のユーザ100の得点や、コンボ数を示す情報等)
(2)時間情報(例えば、ステージクリアまでの残り時間や、ステージクリアまでに訪れる基準タイミングの回数等)
(3)表示情報(例えば、判定領域52の半径R52や注目領域53の半径R52等)
(4)ゲーム経過情報(例えば、得点が加算又は減少されていく様子を示す情報や、ミスをした回数を示す情報等)
なお、実行中のゲームにおけるゲーム状況は、例えば、上記の現在状況情報に基づいて判別される。ゲーム状況の判別方法は、現在状況情報に格納される各値に基づいて予め定められた方法で判別されるようにすればよい。例えば、得点情報が示す得点が基準値よりも低いか否かによって、ゲーム状況が判定される。また例えば、残り時間が所定時間以内であるか否かによって、ゲーム状況が判定される。
ゲームデータ記憶部60に記憶される現在状況情報は、例えば、後述するゲーム実行部72によって内容が更新される。更新された現在状況情報は、例えば、更新時間と対応付けられてゲームデータ記憶部60に記憶されるようにしてもよい。この場合、現在状況情報が更新される度に、現在状況情報が蓄積されることになる。これにより、ゲーム装置20は、現在及び過去のゲーム状況を把握することができる。
なお、現在状況情報のデータ形式は、ゲーム作成者によって予め定められたものであればよい。つまり、ゲーム状況を示すための情報の形式は、図14に示す例に限られない。ゲームの状況を示すための情報の形式は、ゲーム装置20において実行されるゲームの種類に応じて適宜変更可能である。
[基準特徴情報]
また例えば、ゲームデータ記憶部60は、音声の特徴情報を示す基準特徴情報を記憶する。音声の特徴情報とは、ゲーム装置20がユーザ100の状態を判定する際に使用される特徴パラメータである。基準特徴情報とは、ゲーム実行部72がゲーム処理を実行するか否かの条件となる音声の特徴情報である。
図15は、基準特徴情報のデータ格納例を示す図である。図15に示すように、基準特徴情報は、例えば、音声が示すユーザ100の状態と、音声の特徴情報(例えば、基準特徴量)と、が対応付けられて格納される。本実施形態においては、基準特徴情報が示す音声の特徴情報が、音声の音量に関する特徴量情報を含む場合を説明する。音声情報が示す音量は、例えば、音声の波形の振幅に基づいて取得される。
図15のデータ格納例では、例えば、音声情報が示す音声の音量が、10段階に分けられている。以降では、1段階目が最も音量が小さく、10段階目が最も音量が大きい場合を説明する。例えば、音量が比較的小さい場合(例えば、1段階目〜3段階目)、ユーザ100の状態が「あきらめている」こと示す。また例えば、音量が比較的中くらいの場合(例えば、4段階目〜7段階目)、ユーザ100の状態が「頑張っている」ことを示す。また例えば、音量が比較的大きい場合(例えば、8段階目〜10段階目)、ユーザ100の状態が「パニックになっている」ことを示す。
[基準ゲーム状況情報]
また、ゲームデータ記憶部60は、基準ゲーム状況情報を記憶する。基準ゲーム状況情報は、予め定められた(所定の)ゲーム状況を示すためのものである。基準ゲーム状況情報が示すゲーム状況は、ゲーム実行部72によってゲーム処理が実行されるべきタイミングを示すゲーム状況である。
図16は、基準ゲーム状況情報のデータ格納例を示す図である。図16に示すように、基準ゲーム状況情報には、ゲーム状況を識別する情報と、予め定められたゲーム状況を示すゲーム状況情報と、が対応付けられて格納される。ゲーム状況情報のデータ格納例は、図14に示す現在状況情報と同様であるので説明を省略する。
本実施形態においては、基準ゲーム状況情報に格納されるゲーム状況と、現在状況情報が示す現在のゲーム状況と、の類似具合を示す類似度(詳細後述)が所定範囲である場合、基準ゲーム状況情報が示すゲーム状況である、と判定される。例えば、図16の場合、ゲーム状況情報Aが示すゲーム状況と、現在状況情報が示すゲーム状況と、の類似度が所定範囲である場合、実行中のゲームの状況が「ピンチ」であると判定される。
[ゲーム処理情報]
また、本実施形態においては、ゲームデータ記憶部60は、ゲーム処理情報を記憶する。
図17は、ゲーム処理情報のデータ格納例を示す図である。図17に示すように、ゲーム処理情報には、例えば、ユーザ100の状態を示す情報と、現在のゲーム状況を示す情報と、ゲーム実行部72が実行すべきゲーム処理と、の組み合わせが格納される。
ゲーム処理情報に含まれるユーザ100の状態とは、即ち、特徴情報比較部66の比較結果である。ゲーム処理情報に含まれる現在のゲーム状況とは、即ち、ゲーム状況比較部70の比較結果である。
つまり、本実施形態においては、ゲーム処理情報に含まれる組み合わせによって、ゲーム実行部72が実行すべきゲーム処理が特定される。例えば、ユーザ100が頑張っている状態であり、かつ、実行中のゲーム状況が「ピンチ」の場合、ゲーム実行部72は、応援エフェクト処理(例えば、観客キャラクタ56がユーザ100を応援するようなアニメーション処理を行ったり、音声出力部28から歓声を出力させる等)を実行する。
[1−6−2.特徴情報取得部]
特徴情報取得部62は、制御部21を主として実現される。特徴情報取得部62は、音声入力手段(音声入力部14)から入力される音声の特徴情報を取得する。例えば、特徴情報取得部62は、音声情報が示す音声の音量(特徴量)に関する情報を取得する。先述のように、音声の音量に関する特徴量情報は、例えば、音声情報の波形の振幅に基づいて取得される。例えば、所定時間の音量の平均値が特徴情報として取得される。
[1−6−3.基準特徴情報取得部]
基準特徴情報取得部64は、制御部21を主として実現される。基準特徴情報取得部64は、予め定められた基準特徴情報を記憶する手段から基準特徴情報を取得する。例えば、基準特徴情報取得部64は、ゲームデータ記憶部60から基準特徴情報を取得する。
[1−6−4.特徴情報比較部]
特徴情報比較部66は、制御部21を主として実現される。特徴情報比較部66は、音声入力手段(音声入力部14)から入力される音声の特徴情報と、基準特徴情報と、を比較する。特徴情報比較部66は、例えば、音声入力部14から入力される音声の特徴量情報と、基準特徴情報に含まれる特徴量情報と、を比較する。
[1−6−5.基準ゲーム状況情報取得部]
基準ゲーム状況情報取得部68は、制御部21を主として実現される。基準ゲーム状況情報取得部68は、予め定められた基準ゲーム状況情報を記憶する手段から基準ゲーム状況情報を取得する。例えば、基準ゲーム状況情報取得部68は、基準ゲーム状況情報をゲームデータ記憶部60から取得する。
[1−6−6.ゲーム状況比較部]
ゲーム状況比較部70は、制御部21を主として実現される。ゲーム状況比較部70は、実行中のゲームにおけるゲーム状況と、基準ゲーム状況情報が示すゲーム状況と、を比較する。例えば、ゲーム状況比較部70は、ゲームデータ記憶部60に記憶された現在状況情報を取得して、基準ゲーム状況情報が示すゲーム状況と比較する。この比較の方法としては、先述のように例えば、互いの情報の類似具合を示す類似度を用いた方法が挙げられる。
類似度は、例えば、次のようにして算出される。例えば、ゲーム状況比較部70は、ゲーム状況に関するn個の指標値を現在のゲーム状況に関して取得する。ここで、指標値はゲーム状況の特徴を表すような数値であり、ゲーム状況が類似しているか否かを評価するための数値である。同様に、制御部21は、上記のn個の指標値を、基準ゲーム状況情報が示すゲーム状況に関しても取得する。
そして、上記のn個の指標値をn次元のベクトルとみなして、ゲーム状況比較部70は、現在のゲーム状況に対応するベクトルと、音声テーブルに含まれるレコードの基準ゲーム状況情報が示すゲーム状況に対応するベクトルと、のなす角度(θ)に基づいて、類似度を算出する。例えば、この角度の余弦(cosθ)が類似度として用いられる。
この余弦が1に近いほど、両者のベクトルが同じ方向を示していることになるため、上記のn個の指標値が互いに類似していることを示す。即ち、現在のゲーム状況と、基準ゲーム状況情報が示すゲーム状況と、が類似していることを示す。
一方、例えば、上記の余弦が0に近いほど、上記のn個の指標値が互いに類似しないことを示す。即ち、現在のゲーム状況と、比較対象のレコードの基準ゲーム状況情報が示すゲーム状況と、が類似していないことを示す。
例えば、実行中のゲームにおけるゲーム経過情報が示す得点の増減の状況と、基準ゲーム状況情報が示すゲーム経過情報が示す得点の増減の状況と、の類似度が取得される。ここで、「得点の増減の状況」とは、得点情報が増減する時系列的な様子である。この場合の類似度は、例えば、時系列的な得点の増減の具合について、実行中のゲームにおけるゲーム状況と、基準ゲーム状況情報が示すゲーム状況との間で上記のように比較されることによって算出されることになる。
[1−6−7.ゲーム実行部]
ゲーム実行部72は、制御部21を主として実現される。ゲーム実行部72は、ゲームを実行する。例えば、ゲーム実行部72は、ゲーム画面50を表示部27に表示させたり、基準タイミングにおいて、ユーザ100が基準となる動作又はポーズ(姿勢)をしたか否かを判定して得点を増減させる処理を実行する。即ち例えば、ゲーム実行部72は、ユーザ100の3次元位置情報に基づいてゲームを制御する。
また、ゲーム実行部72は、ゲームデータ記憶部60に記憶される現在状況情報を更新する。例えば、ゲーム実行部72は、基準タイミングが訪れた場合、ユーザ100がゲームキャラクタ51と類似の動作又はポーズをしているか否かに基づいて、得点情報を更新する。基準タイミングが訪れた場合とは、例えば、基準タイミングから所定時間前後した時間を含む意である。
また例えば、ゲーム実行部72は、ゲームが開始されてからユーザ100の得点の増減の経過を時系列的に示すゲーム経過情報を更新する。また例えば、ゲーム実行部72は、時間経過に伴って時間情報や表示情報を、所定のアルゴリズムに基づいて更新する。
ゲーム実行部72は、特徴情報比較部66の比較結果と、ゲーム状況比較部70の比較結果と、に基づいてゲーム処理を実行する。例えば、特徴情報比較部66の比較結果が所定の結果であり、かつ、ゲーム状況比較部70の比較結果が所定の結果である場合、ゲーム処理情報に格納されたゲーム処理を実行する。このゲーム処理は、例えば、ユーザ100のゲームプレイに影響を与えるゲーム処理である。
ここで、「特徴情報比較部66の比較結果が所定の結果である」とは、例えば、特徴情報が示す音声の特徴情報と、基準特徴情報が示す音声の特徴情報と、が一致又は類似する場合である。言い換えれば、「特徴情報比較部66の比較結果が所定の結果である」とは、例えば、特徴情報が示す音声の音量が、基準特徴情報が示す音声の音量に含まれる場合である。
また、「ゲーム状況比較部70の比較結果が所定の結果である場合」とは、例えば、実行中のゲームにおけるゲーム状況と、基準ゲーム状況情報が示すゲーム状況と、が一致又は類似する場合である。言い換えれば、「ゲーム状況比較部70の比較結果が所定の結果である場合」とは、例えば、実行中のゲームにおけるゲーム状況と、基準ゲーム状況情報が示すゲーム状況と、の類似度が所定範囲(例えば、0.8以上)の場合である。
本実施形態においては、ゲーム実行部72は、特徴情報比較部66の比較結果と、ゲーム状況比較部70の比較結果と、の組み合わせに対応付けてゲーム実行部72が実行すべきゲーム処理を示すゲーム処理情報を記憶する記憶手段(例えば、ゲームデータ記憶部60)からゲーム処理情報を取得する手段を含む場合を説明する。即ち、ゲーム実行部72は、この取得されたゲーム処理情報が示すゲーム処理を実行する。
また例えば、ゲーム装置20において実行されるゲームが、難易度が設定されるゲームである場合、ゲーム実行部72は、特徴情報比較部66の比較結果と、ゲーム状況比較部70の比較結果と、に基づいてゲームの難易度を変更する処理(難易度を上げる処理、又は、難易度を下げる処理)を実行する。ゲームの難易度が上がると、例えば、基準タイミングが訪れる間隔が短くなる。ゲームの難易度が下がると、例えば、基準タイミングが訪れる間隔が長くなる。
[1−7.ゲーム装置において実行される処理]
次に、ゲーム装置20で実行される処理について説明する。図18は、ダンスゲームが開始された場合、ゲーム装置20が実行する処理を示すフロー図である。制御部21が、補助記憶部23又は光ディスクに記憶されたプログラムに従って、図18に示す処理を実行する。
まず、制御部21は、所定のタイミングが訪れたか否かを判定する(S101)。所定のタイミングとは、ゲーム処理情報に格納されたゲーム処理を実行すべきタイミングである。例えば、一定時間ごとにこのタイミングが訪れるようにしてもよいし、得点が所定範囲になった場合に、このタイミングが訪れるようにしてもよい。
所定のタイミングが訪れた場合(S101;Y)、制御部21は、音声入力部14から音声の入力があるか否かを判定する(S102)。S102においては、例えば、音声情報が示す音声の音量が基準値以上であった場合に、音声入力部14から音声の入力があると判定される。
音声の入力がある場合(S102;Y)、制御部21(特徴情報取得部62)は、音声入力部14を介して入力されたユーザ100の音声の特徴情報を取得する(S103)。例えば、音声情報が示す音声の振幅に基づいて音量が取得される。
制御部21(基準特徴情報取得部64)は、基準特徴情報を取得する(S104)。制御部21(特徴情報比較部66)は、入力された音声の特徴情報と、基準特徴情報と、を比較する(S105)。この比較結果(例えば、ユーザ100の状態を示す情報)は、例えば、主記憶部22に一時的に記憶される。
制御部21は、現在のゲーム状況を示す現在状況情報を取得する(S106)。制御部21(基準ゲーム状況情報取得部68)は、基準ゲーム状況情報を取得する(S107)。制御部21(ゲーム状況比較部70)は、現在状況情報が示すゲーム状況と、基準ゲーム状況情報が示すゲーム状況と、を比較する(S108)。この比較結果(例えば、類似度が0.9以上のゲーム状況を示す情報)は、例えば、主記憶部22に一時的に記憶される。
次いで、制御部21(ゲーム実行部72)は、S105の比較結果と、S107の比較結果と、の組み合わせに基づいて決定されるゲーム処理を実行する(S109)。例えば、ゲーム処理情報が参照されて、ユーザ100の状態を示す情報(S105の比較結果)と、現在のゲーム状況を示す情報(S107の比較結果)と、の2つに対応付けられているゲーム処理が実行される。
制御部21は、終了条件を満たすか否かを判定する(S110)。例えば、ダンスゲームが終了(ステージクリアやゲームオーバー等)するタイミングが訪れたか否かが判定される。
終了条件を満たす場合(S110;Y)、制御部21は、処理を終了する。終了条件を満たさない場合(S110;N)、処理は、S101に戻る。
以上説明したゲーム装置20によれば、ユーザ100が発した音声の特徴と、現在のゲーム状況と、の両者を考慮してゲーム処理を実行するようにしたので、ユーザ100の意図を反映してゲームプレイの補助をすることができる。例えば、あきらめずに頑張っているユーザ100に対してはプレイを応援する処理を行い、このユーザ100のゲームクリアをリアルタイムに補助(支援)をすることができる。また例えば、あきらめかけているユーザ100に対してはゲームの難易度を下げる処理を行い、このユーザ100に対してゲームを続けるように促すことができる。
このように、ユーザ100が、ゲームプレイがうまくいかなくてゲームオーバーになってしまいそうな状況であっても、この状況を自分の力によって難局を上手く切り抜けたように感じさせることができ、ゲームの趣向性が向上する。さらに、ゲーム装置20が応援エフェクト処理等のゲーム処理を実行することによって、ユーザ100は、自然と高揚感を感じながらゲームをプレイすることができる。
なお、本実施形態においては、ゲーム状況の比較方法として、類似度を用いた場合を説明したが、ゲーム状況の比較方法は、これに限られない。他にも、現在状況情報の各値と基準ゲーム状況の各値とが所定の数式に代入されることによって、ゲーム状況が比較されるようにしてもよい。
[2.実施形態2]
以下、実施形態2について説明する。実施形態1のゲーム装置20は、ユーザ100が発した音声の特徴と、現在のゲーム状況と、に基づいてユーザ100の意図を推測してゲームの難易度を下げる処理や応援エフェクト処理等のゲーム処理を実行する。
これに対して実施形態2は、撮影画像等からユーザ100の人数を把握し、この人数を考慮して上記のようなゲーム処理を実行する点に特徴がある。
例えば、ユーザ100が1人で遊んでいる場合には、ゲーム状況が変化しても、このユーザ100はあまり大きな声を発しないことが考えられる。そこで、この場合には、ゲーム装置20は、基準特徴情報が示す音量が比較的小さくなるように変更する。
一方、ユーザ100が大人数で遊んでいる場合には、ゲーム状況が少し変化しただけで、ユーザ100が大きな声を発することが考えられる。そこで、この場合には、ゲーム装置20は、基準特徴情報が示す音量が比較的大きくなるように変更する。
なお、実施形態2に係る位置検出装置1及びゲーム装置20のハードウェア構成は、実施形態1(図9、図10参照)と同様であるため、説明を省略する。
[2−1.実施形態2において実現される機能]
図19は、実施形態2のゲーム装置20において実現される機能ブロック図である。図19に示すように、実施形態2のゲーム装置20では、実施形態1の機能に加えてユーザ数取得部74が実現される。
[2−1−1.ユーザ数取得部]
ユーザ数取得部74は、ユーザ100の人数を示すユーザ数情報を取得する。例えば、ユーザ数取得部74は、ゲーム装置20が位置検出装置1から受信する3次元位置情報に基づいてユーザ100の人数を取得する。先述のように、位置検出装置1が複数のユーザ100を検出した場合、これら複数のユーザ100のそれぞれについての3次元位置情報が、ゲーム装置20に対して送信される。ユーザ数取得部74は、例えば、3次元位置情報が示すユーザ100の数を、ユーザ100の人数を示す情報として取得する。
なお、ユーザ数取得部74が、ユーザ100の人数を示す情報を取得する方法は、上記の例に限られない。例えば、ゲーム装置20が、CCDカメラ2によって撮影される撮影画像を位置検出装置1から取得し、ユーザ数取得部74が、この撮影画像に含まれるユーザ100の人数を取得するようにしてもよい。この場合、例えば、撮影画像に含まれるユーザ100の輪郭の数に基づいてユーザ100の人数が取得される。
他にも例えば、ゲーム装置20が、ユーザ100の深度を示す深度画像を取得し、ユーザ数取得部74が、上記と同様に、ユーザ100の輪郭の数に基づいて人数を取得するようにしてもよい。また他にも例えば、マイク4が検出した音声に基づいて、ユーザ100の数が検出されるようにしてもよい。具体的には、音声情報が示す音声が音声認識されることによって、ユーザ100の人数が検出されるようにしてもよい。また例えば、ユーザ100に操作部26を介して自分達の人数を直接入力させることによって、ユーザ数取得部74は、ユーザ100の人数を取得するようにしてもよい。上記のような手法のうちの少なくとも1つが実行されるようにすればよい。
[2−1−2.実施形態2のゲームデータ記憶部60]
実施形態2のゲームデータ記憶部60は、例えば、音声が示すユーザ100の状態と、音声の特徴情報と、ユーザ100の人数と、を対応付けて記憶する。
図20は、実施形態2における基準特徴情報のデータ格納例を示す図である。図20に示すように、実施形態2の基準特徴情報には、ユーザ100の人数が対応付けられている。例えば、ユーザ100の状態を識別するための条件を示す音声の特徴情報は、ユーザ100の人数によって異なる。
例えば、ユーザ100の人数が「2人以下」である場合、音量が所定範囲(例えば、2段階目〜4段階目)である場合、ユーザ100の状態が「頑張っている」と判定される。一方、ユーザ100の人数が「3人以上」である場合、音量が上記とは異なる範囲(例えば、3段階目〜6段階目)である場合、ユーザ100の状態が「頑張っている」と判定される。
上記のように、ユーザ100の人数が対応付けられている基準特徴情報によれば、例えば、ユーザ100の人数が比較的少ない場合には、ユーザ100があまり大きな声を発しないと考えられるので、小さめの音量でユーザ100の状態が判別されるようになる。一方、ユーザ100の人数が比較的多い場合には、ユーザ100が大げさに声を発すると考えられるので、大きめの音量でユーザ100の状態が判別されるようになる。
[2−1−3.実施形態2の基準特徴情報取得部]
実施形態2の基準特徴情報取得部64は、ユーザ数情報に基づいて基準特徴情報を変更する手段を含む。例えば、基準特徴情報取得部64は、ユーザ数取得部74が取得したユーザ100の人数に対応付けられた音声の特徴情報を参照することによって、基準特徴情報をユーザ100の人数に基づいて変更する。つまり、基準特徴情報取得部64は、例えば、特徴情報比較部66の比較対象となる基準特徴情報を変更する。
[2−2.実施形態2のゲーム装置において実行される処理]
図21は、ダンスゲームが開始された場合、ゲーム装置20が実行する処理を示すフロー図である。図21の処理は、図18の処理に対応する。制御部21が、補助記憶部23又は光ディスクに記憶されたプログラムに従って、図21に示す処理を実行する。
図21に示すように、S201〜S203は、それぞれS101〜S103と同様であるので説明を省略する。
制御部21(ユーザ数取得部74)は、ユーザ100の人数を取得する(S204)。例えば、主記憶部22に記憶された3次元位置情報が示す人数に基づいて、ユーザ100の人数を取得する。
制御部21(基準特徴情報取得部64)は、ユーザ100の人数に基づいて基準特徴情報を変更する(S205)。例えば、基準特徴情報のうちでユーザ100の人数に対応する情報のみが参照される。
制御部21(特徴情報比較部66)は、入力された音声の特徴情報と、変更された基準特徴情報と、を比較する(S206)。S206においては、基準特徴情報のうちでユーザ100の人数の条件に対応する基準特徴量のみが比較対象となる。
以降のS207〜S211は、それぞれS106〜S110と同様であるので説明を省略する。
以上説明した実施形態2のゲーム装置20によれば、ユーザ100が発した音声と、実行中のゲーム状況と、ユーザ100の人数と、を考慮してゲーム処理を実行することができる。つまり、ゲームをプレイするユーザ100の数により音声の大きさが変わってしまっても、ユーザ100の意図を反映して、このユーザ100の補助をするようなゲーム処理を行うことができる。
[3.実施形態3]
以下、実施形態3について説明する。実施形態2のゲーム装置20は、ゲームの難易度を下げたり、応援エフェクト処理を実行したりする場合に、ユーザ100の人数を考慮する。
これに対して実施形態3は、ユーザ100の音声が入力された場合の時間を考慮して、上記のゲーム処理を実行する点に特徴がある。
例えば、ユーザ100が、夜の時間帯にゲームをプレイしている場合には、あまり大きな声を発しないことが考えられる。そこで、この場合には、基準特徴情報が示す音量が比較的小さくなるように変更される。
一方、ユーザ100が昼の時間帯にゲームをプレイしている場合には、比較的大きな声を発することが考えられる。そこで、この場合には、基準特徴情報が示す音量が比較的大きくなるように変更される。
なお、実施形態3に係る位置検出装置1及びゲーム装置20のハードウェア構成は、実施形態1(図9、図10参照)と同様であるため、説明を省略する。
[3−1.実施形態3において実現される機能]
図22は、実施形態3のゲーム装置20において実現される機能ブロック図である。図22に示すように、実施形態3のゲーム装置20では、実施形態1の機能に加えて時間取得部76が実現される。
[3−1−1.時間取得部]
時間取得部76は、制御部21を主として実現される。音声入力手段(音声入力部14)から音声が入力された場合の時間に関する入力時間情報を取得する。音声が入力された場合とは、音声入力部14から音声が入力された時点から所定時間前後した時間幅を含む。例えば、時間取得部76は、位置検出装置1から音声情報を受信した時間を取得する。この時間は、例えば、ゲーム装置20の時間関数プログラム等に基づいて生成される。
また例えば、位置検出装置1が時刻を取得する手段を有する場合、時間取得部76は、音声入力部14が音声を受け付けた時間を位置検出装置1から取得するようにしてもよい。
[3−1−2.実施形態3のゲームデータ記憶部60]
実施形態3のゲームデータ記憶部60は、例えば、音声が示すユーザ100の状態と、音声の特徴情報と、音声入力部14によってユーザ100の音声が入力された場合の時間と、を対応付けて記憶する。
図23は、実施形態3における基準特徴情報のデータ格納例を示す図である。図23に示すように、実施形態3の基準特徴情報には、音声入力部14によってユーザ100の音声が入力された人数が対応付けられている。例えば、基準特徴情報に格納される音声の特徴情報は、ユーザ100の音声が入力された時間によって異なる。
例えば、ユーザ100の音声を受け付けた時間が「夜」である場合(例えば、入力時間情報が示す時間が第1時間帯に属する場合)、音声情報が示す音声の音量が所定範囲(例えば、2段階目〜3段階目)であれば、ユーザ100の状態が「頑張っている」と判定される。一方、ユーザ100の音声が入力された時間が「昼」である場合(例えば、入力時間情報が示す時間が第2時間帯に属する場合)、音声情報が示す音声の音量が上記とは異なる所定範囲(例えば、3段階目〜5段階目)であれば、ユーザ100の状態が「頑張っている」と判定される。
上記のように、ユーザ100の音声が入力された時間が対応付けられている基準特徴情報によれば、例えば、ユーザ100の音声が入力された時間が夜であれば、ユーザ100があまり大きな声を発しないと考えられるので、小さめの音量でユーザ100の状態が判別されるようになる。一方、ユーザ100の音声が入力された時間が昼であれば、ユーザ100が大きな声を発すると考えられるので、大きめの音量でユーザ100の状態が判別されるようになる。
[3−1−3.実施形態3の基準特徴情報取得部]
実施形態3の基準特徴情報取得部64は、入力時間情報に基づいて基準特徴情報を変更する手段を含む。例えば、基準特徴情報取得部64は、時間取得部76が取得した入力時間情報が示す時間に対応付けられた音声の特徴情報を使用することによって、基準特徴情報をユーザ100の音声が入力された時間に基づいて変更する。つまり、基準特徴情報取得部64は、例えば、特徴情報比較部66の比較対象となる基準特徴情報を変更する。
また例えば、基準特徴情報取得部64は、入力時間情報が示す時間が第1時間帯(例えば、夜間の時間帯)に属する場合、前記入力時間情報が示す時間が第2時間帯(例えば、昼間の時間帯)に属する場合よりも、基準特徴情報が示す音量が小さくなるように変更する。この変更方法は、入力時間情報が示す時間が属する時間帯によって決定されるようにすればよい。
[3−2.実施形態3のゲーム装置において実行される処理]
図24は、ダンスゲームが開始された場合、ゲーム装置20が実行する処理を示すフロー図である。図24の処理は、図18の処理に対応する。制御部21が、補助記憶部23又は光ディスクに記憶されたプログラムに従って、図24に示す処理を実行する。
図24に示すように、S301〜S303は、それぞれS101〜S103と同様であるので説明を省略する。
制御部21(時間取得部76)は、ユーザ100の音声が入力された場合の時間を取得する(S304)。例えば、音声情報を位置検出装置1から受信した受信時間が参照される。
制御部21(基準特徴情報取得部64)は、ユーザ100の音声が入力された時間に基づいて基準特徴情報を変更する(S305)。例えば、基準特徴情報のうちでユーザ100の音声が入力された時間に対応する情報のみが参照される。
制御部21(特徴情報比較部66)は、入力された音声の特徴情報と、変更された基準特徴情報と、を比較する(S306)。S306においては、基準特徴情報のうちでユーザ100の音声が入力された時間の条件に対応する基準特徴量のみが比較対象となる。
以降のS307〜S311は、それぞれS106〜S110と同様であるので説明を省略する。
以上説明した実施形態3のゲーム装置20によれば、ユーザ100が発した音声と、実行中のゲーム状況と、音声が入力された時間と、を考慮してゲーム処理を実行することができる。つまり、ユーザ100がゲームをプレイする時間によって声の大きさが変わってしまっても、ユーザ100の意図を反映して、このユーザ100の補助をするようなゲーム処理を行うことができる。
[4.実施形態4]
以下、実施形態4について説明する。実施形態3のゲーム装置20は、ユーザ100の音声が入力された時間を考慮してゲームの難易度を下げたり、応援エフェクト処理を実行したりする。
これに対して実施形態4は、撮影画像から取得されるユーザ100の表情を考慮して、上記のゲーム処理を実行する点に特徴がある。
例えば、ユーザ100が同じような声を発した場合でも、表情次第でユーザ100の状態が異なる場合がある。例えば、「よし!」という声を発した場合であっても、ユーザ100が笑っていれば比較的余裕があることが考えられる。一方、同じような声を発した場合でも、ユーザ100が眉間にしわを寄せていれば、あまり余裕がないことが考えられる。そこで、実施形態4のゲーム装置20は、ユーザ100の表情を考慮してゲーム処理を実行する。
なお、実施形態4に係る位置検出装置1及びゲーム装置20のハードウェア構成は、実施形態1(図9、図10参照)と同様であるため、説明を省略する。
[4−1.実施形態4において実現される機能]
図25は、実施形態4のゲーム装置20において実現される機能ブロック図である。図25に示すように、実施形態4のゲーム装置20では、実施形態1の機能に加えて表情取得部78が実現される。
[4−1−1.表情取得部]
表情取得部78は、制御部21を主として実現される。表情取得部78は、ユーザ100を撮影する撮影手段(撮影部12)から得られる撮影画像に対して表情認識処理を行うことによって、当該ユーザ100の表情に関する表情情報を取得する。つまり、実施形態4のゲーム装置20は、撮影画像(図2)を位置検出装置1より取得する。この撮影画像は、例えば、ゲームデータ記憶部60に一時的に記憶される。
撮影画像から被写体(ユーザ100)の表情を取得する方法として、本実施形態では、参照画像を用いる場合を説明する。例えば、この参照画像は、ユーザ100が無表情になった場合の撮影画像である。即ち、ユーザ100が無表情の撮影画像(参照画像)と、ゲームをプレイしている最中のユーザ100の撮影画像と、が比較されて、ユーザ100の表情が取得される。
具体的には、まず、ゲーム装置20は、予めユーザ100の無表情の参照画像を位置検出装置1から取得する。例えば、表示部27に「口を閉じて無表情になってください」というメッセージを表示させる。この状態で、ゲーム装置20は、位置検出装置1にユーザ100を撮影させ、参照画像を取得する。
次いで、この取得された参照画像に対して所定の特徴点を抽出する処理が実行される。特徴点は、ユーザ100の表情を認識するための基準となる点であり、例えば、眉や口角、目尻の位置等である。この特徴点の抽出方法としては、先述したパターンマッチング法と同様の手法を適用可能である。即ち、参照画像と、予めゲーム作成者が用意した教師画像とのマッチングによって、特徴点が抽出される。
ゲームが開始されると、撮影画像の特徴点の間の距離と、上記の参照画像の特徴点間の距離と、が比較される。例えば、この差分値に基づいてユーザ100の表情が認識される。即ち、左右の口角の間の距離が基準値以上となっている場合には、ユーザ100が「笑っている」と判定される。他にも例えば、両眉の距離が基準値以下となっている場合には、ユーザ100が「顔をしかめている」と判定される。この基準値は、予めゲーム装置20に記憶されている。
なお、ユーザ100の表情を認識する処理は、公知の種々の手法を適用可能である。他にも例えば、撮影画像に対してウェーブレット変換を施して、所定周波数帯域ごとに平均電力を算出し、この電力の差分値に基づいて表情が認識されるようにしてもよい。
[4−1−2.実施形態4のゲームデータ記憶部]
実施形態4のゲームデータ記憶部60は、例えば、音声が示すユーザ100の状態と、音声の特徴情報と、ユーザ100の表情を示す表情情報と、を対応付けて記憶する。
図26は、実施形態4における基準特徴情報のデータ格納例を示す図である。図26に示すように、実施形態4の基準特徴情報には、ユーザ100の表情を識別する情報が対応付けられている。図26に示すように、例えば、音声の特徴情報は、ユーザ100の表情によって異なる。
例えば、ユーザ100がゲームをあきらめずに頑張っていても顔をしかめている場合、ユーザ100が笑っている場合よりも余裕がないので、声が大きくなってしまうことが考えられる。そこで、ユーザ100が顔をしかめている場合、ユーザ100が笑っている場合よりも、基準特徴情報が示す音量が小さくなるように変更される。
[4−1−3.実施形態4の基準特徴情報取得部]
実施形態4の基準特徴情報取得部64は、表情情報が示すユーザ100の表情に基づいて基準特徴情報を変更する手段を含む。例えば、基準特徴情報取得部64は、表情取得部78が取得したユーザ100の表情に対応付けられた音声の特徴情報を使用することによって、基準特徴情報をユーザ100の表情に基づいて変更する。つまり、基準特徴情報取得部64は、例えば、特徴情報比較部66の比較対象となる基準特徴情報を変更する。
[4−2.実施形態4のゲーム装置において実行される処理]
図27は、ダンスゲームが開始された場合、ゲーム装置20が実行する処理を示すフロー図である。図27の処理は、図18の処理に対応する。制御部21が、補助記憶部23又は光ディスクに記憶されたプログラムに従って、図27に示す処理を実行する。
図27に示すように、S401〜S403は、それぞれS101〜S103と同様であるので説明を省略する。
制御部21(時間取得部76)は、ユーザ100の表情を取得する(S404)。例えば、位置検出装置1から受信した撮影画像に表情認識処理が施されてユーザ100の表情を示す表情情報が取得される。
制御部21(基準特徴情報取得部64)は、ユーザ100の表情に基づいて基準特徴情報を変更する(S405)。例えば、基準特徴情報のうちでユーザ100の表情に対応する情報のみが参照される。
制御部21(特徴情報比較部66)は、入力された音声の特徴情報と、変更された基準特徴情報と、を比較する(S406)。S406においては、基準特徴情報のうちでユーザ100の表情に対応する基準特徴量のみが比較対象となる。
以降のS407〜S411は、それぞれS106〜S110と同様であるので説明を省略する。
以上説明した実施形態4のゲーム装置20によれば、ユーザ100が発した音声と、実行中のゲーム状況と、ユーザ100の表情と、を考慮してゲーム処理を実行することができる。つまり、同じような大きさの声を発した場合であっても、ユーザ100の表情を考慮することによって、ユーザ100の意図を反映して、このユーザ100の補助をするようなゲーム処理を行うことができる。
[5.変形例]
なお、本発明は以上に説明した実施の形態に限定されるものではない。例えば、実施形態1〜実施形態4の何れか2つ、3つ、又は4つを組み合わせるようにしてもよい。
(1)また、実施形態2〜4においては、基準特徴情報を、ユーザ数情報、入力時間情報、又は表情情報と、を対応づけて記憶し、必要な情報(基準特徴量)のみが参照されることによって基準特徴情報が変更される場合を説明した。基準特徴情報の変更方法は、この例に限られない。例えば、基準特徴情報を一つだけ記憶しておいて、ユーザ数情報、入力時間情報、又は表情情報に基づいて、この基準特徴情報の値が補正されるようにしてもよい。
(2)また、上記実施形態においては、位置検出装置1によって検出されたユーザ100の動作又はポーズに基づいてゲーム処理が実行されるようにしたが、操作部26のコントローラ等からの操作入力によってゲーム処理が実行されるようにしてもよい。即ち、ゲーム装置20は、位置検出装置1を含まなくてもよい。この場合、音声入力部14がゲーム装置20に含まれる、又は、音声入力部14がゲーム装置20に外部接続されることになる。
(3)また、本実施形態においては、ゲーム装置20が難易度を変更させる処理の具体例として、基準タイミングの間隔を変更させる場合を説明したが、ゲームの難易度に関するパラメータや条件等を変更させるようにすればよく、難易度の変更方法は、これに限られない。例えば、ゲーム装置20は、得点が増減する程度を変更するようにしてもよい。
(4)また、ゲーム実行部72が行うゲーム処理は、難易度を変更させる処理や応援エフェクト処理に限られない。ユーザ100のゲームプレイを補助するようなゲーム処理が実行されるようにすればよい。例えば、ゲームパラメータが変更されるとユーザ100が有利又は不利になるゲームが実行される場合、ゲーム実行部72は、ユーザ100が有利な状態になるゲーム処理(つまり、ゲームパラメータを変更させる処理)が実行されるようにしてもよい。即ち、この場合、ゲーム装置20は、ユーザ100が有利になるようにゲームパラメータを変更させて、ユーザ100のゲームプレイを補助することができる。
また例えば、上記実施形態のようなダンスゲームにおいて、楽曲のコーラスが追加する処理が実行されてゲームを少し延長させてプレイさせるようにしてもよい。この場合には、ユーザ100が得点を得る機会が与えられるので、ゲーム装置20は、ユーザ100のゲームプレイを補助することができる。
他にも例えば、操作部26が、制御部21の指示信号によって振動するバイブレータを含む場合、このバイブレータを振動させる処理が実行されるようにしてもよい。つまり、ユーザ100が頑張っていると判定された場合、操作部26が振動することになる。このようにすることによって、ゲームの趣向性を向上させることができる。
(5)また例えば、ゲーム装置20で実行されるゲームは、ダンスゲーム以外のゲーム(例えば、スポーツゲーム、格闘ゲーム又はレースゲーム)であってもよい。また例えば、本発明の実施形態に係るゲーム装置20で実行されるゲームは、サッカーゲームのようにキャラクタグループ(例えばチーム)同士が対戦するゲームでもあってもよいし、一のキャラクタと一のキャラクタとが対戦するゲームであってもよいし、一のキャラクタとキャラクタグループとが対戦するゲームであってもよい。
ゲーム実行部72によって実行されるゲーム処理は、ゲーム装置20によって実行されるゲームの種類に応じて異なる。例えば、ゲーム装置20がサッカーゲームを実行する場合、特徴情報比較部66の比較結果と、ゲーム状況比較部70の比較結果と、に基づいて、サッカーゲームの試合時間(例えば、ロスタイム等)が長くなるような処理が実行されるようにしてもよい。
この場合、ユーザ100が劣勢な状況であっても、このユーザ100が頑張っていると判定された場合、試合時間が長くなるので試合を逆転する機会が与えられる。即ち、ゲーム装置20は、ゲームプレイを頑張っていてあきらめていないユーザ100を補助するようなゲーム処理をサッカーゲームにおいても実行することができる。他にも例えば、コンピュータと対戦している場合には、対戦相手のゲームパラメータが不利になるようなゲーム処理が実行されるようにしてもよい。
(6)また、本実施形態においては、音声の特徴情報が音量である場合を例に挙げたが、音声の特徴情報は、ゲーム装置20が音声情報から把握できる情報であればよい。例えば、音声の特徴情報として、音声信号の振幅を用いてもよい。この場合、例えば、基準特徴情報には、振幅の変化を示す値や、所定周波数帯域ごとの振幅の強さを示す値が格納されることになる。周波数帯域ごとの振幅の強さは、例えば、音声情報に対してフーリエ変換が実行されることによって抽出される。
他にも例えば、音声認識処理によって取得される情報を音声の特徴情報としてもよい。例えば、音声に含まれるキーワードが音声の特徴情報として参照されるようにしてもよい。キーワードとは、予めゲーム作成者等によって指定された単語(又は文章)である。
この場合、例えば、ゲーム装置20が実行する音声認識処理は、種々の手法を適用可能である。例えば、音声認識処理の一例として、メル周波数ケプストラム係数(MFCC:Mel-Frequency Cepstrum Coefficient)や隠れマルコフモデルを用いた統計的手法を説明する。統計的手法では、例えば、音声情報が示す音声の特徴情報と、予め用意しておいたデータと、が比較されることによって音声認識処理が行われる。例えば、時系列的な振幅の変化や、周波数成分ごとの音の強さが比較されることになる。
即ち、予めモニタとなる人間の音声をサンプリングした基準音情報と、音声情報が示すユーザ100の音声と、が比較されることによって、音声認識処理が実行される。この音声認識処理によって取得される情報(例えば、音声に対応する文字列)に、予め定められたキーワードが含まれるか否かが判定されることになる。
この場合、特徴情報比較部66は、基準特徴情報に含まれるキーワードと、音声情報に含まれるキーワードと、が一致するか否かを比較する。一致するキーワードに対応付けられたユーザ100の状態に基づいて、ゲーム実行部72はゲーム処理を実行する。この処理については、実施形態1〜4と同様である。このように、音声の特徴情報としてキーワードを用いることよって、音声情報が示す音声に基づいてユーザ100の意図をより詳しく解析することができる。