説明

ゲーム装置、ゲーム処理方法、ならびに、プログラム

【課題】プレイヤーに所望の動きや呼吸をとらせるよう案内する。
【解決手段】ゲーム装置200において、記憶部201はモデルとなるキャラクターオブジェクトの位置、姿勢、向きを示す情報と、プレイヤーが呼吸すべき時間区間を指定する呼吸指示情報と、プレイヤーの発音を検知する検知部202の位置とを記憶する。推定部204は検知部202により検知された発音からプレイヤーが呼吸している時間区間を推定する。採点部205は記憶部201に記憶された呼吸指示情報と推定部204により推定された時間区間とを比較して合致する度合いに基づいてプレイヤーの呼吸を採点する。出力部206は採点部205による採点結果を出力する。表示部202は採点結果とキャラクターオブジェクトの画像を表示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プレイヤーに所望の動きや呼吸をとらせるよう案内するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムに関する。
【背景技術】
【0002】
プレイヤーが体全体を動かしてプレイするゲームが広く普及している。例えば、特許文献1には、踏み位置と踏み動作タイミングの指示を表示し、プレイヤーが指示に従ってプレイするとダンス感覚を楽しめる装置が開示されている。これによれば、ゲーム装置は、プレイヤーの踏み動作を検出し、踏み位置と踏み動作タイミングの指示と、プレイヤーの踏み動作とのずれによってプレイヤーの動作を採点する。プレイヤーは、この指示に従って体全体を動かすと、音楽、リズムに合わせてダンスができる。このように従来技術によれば、ゲーム装置はプレイヤーに所望の動きを案内することができる。
【特許文献1】特許第3003851号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、現実のヨガやストレッチ等の体操、運動、いわゆるエクササイズなどでは、プレイヤーは指示に従って所定の動きをするだけでなく、正しいタイミングあるいは推奨されるタイミングで息を吸ったり吐いたりしなければならない。すなわち、これらを体験させるゲームにおいては、プレイヤーに所望の動きを案内すると共に、どのタイミングでどのように呼吸すべきかプレイヤーに案内する必要がある。特に、ヨガ、体操、エクササイズなどのように、プレイヤーが体全体を鍛えたり健康を増進したりできるようなゲームの場合、より大きな効果が得られるように、また体を動かしながらでも分かりやすいように、呼吸タイミングを指示し呼吸の正確さを案内して、呼吸も含めた正しい動きをさせる必要がある。しかしながら、従来のゲーム装置はプレイヤーが正しい呼吸をしながらゲームをしているか判断することは難しかった。また、プレイヤーはゲーム中に自分の呼吸がどの程度相応しいのか判断することは難しかった。
【0004】
本発明はこのような課題を解決するものであり、プレイヤーに所望の動きや呼吸をとらせるよう案内するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0006】
本発明の第1の観点に係るゲーム装置は、記憶部、表示部、検知部、推定部、採点部、出力部を備える。
記憶部は、仮想空間内のキャラクターオブジェクトの位置と姿勢と向きを経過時間に対応づけて記憶し、プレイヤーが息を吐くべき時間区間を記憶する。
表示部は、現在の経過時間に対応づけて記憶部に記憶される当該キャラクターオブジェクトの位置と姿勢と向きに基づいて当該キャラクターオブジェクトを表示し、記憶部にプレイヤーが息を吐くべきものとして記憶される時間区間に現在が含まれるか否かを示す情報を表示する。
検知部は、当該プレイヤーによる発音を検知する。
推定部は、検知された発音から、当該プレイヤーが息を吐いている時間区間を推定する。
採点部は、記憶された息を吐くべき時間区間と、推定された息を吐いている時間区間とが合致する度合いによって当該プレイヤーの呼吸を採点する。
出力部は、採点部による採点結果を出力する。
この結果、ゲーム装置は、モデルとなるキャラクターオブジェクトの画像を経過時間に応じて表示して動きを案内し、プレイヤーの吐く息のタイミングに応じてプレイヤーの呼吸を採点できる。これにより、ゲーム装置は、プレイヤーに所望の動きをとるよう案内でき、かつ、所望のタイミングで呼吸をとるよう案内できる。また、プレイヤーの呼吸がどの程度ふさわしいタイミングで行われたか、どのタイミングで呼吸すればよいか等のアドバイスも提供できる。
【0007】
記憶部は、検知部を示す検知オブジェクトの位置をさらに記憶し、
表示部は、当該検知オブジェクトを当該キャラクターオブジェクトとともに表示し、
採点部は、当該キャラクターオブジェクトの口と当該検知オブジェクトとの距離が所定の閾値未満である場合に採点してもよい。
この結果、ゲーム装置は、モデルとなるキャラクターオブジェクトの口と息を検知するマイクとの距離が所定距離未満であれば、プレイヤーの呼吸を採点する。これにより、プレイヤーの呼吸を採点する処理の負荷を軽減できる。
【0008】
ゲーム装置は、当該プレイヤーから当該検知オブジェクトの位置を移動させる入力を受け付ける入力受付部と、
受け付けられた入力に基づいて、記憶部に記憶される当該検知オブジェクトの位置を更新する更新部と、
をさらに備えてもよい。
これにより、ゲーム装置は、プレイヤーの息を検知するマイクの位置が変わっても、プレイヤーが息を吐いている時間区間を推定できる。プレイヤーはマイクの位置を任意に変えることができる。
【0009】
記憶部は、仮想空間内で当該キャラクターオブジェクトを俯瞰する視点の位置と視線の方向をさらに記憶し、
入力受付部は、当該視点の位置と当該視線の方向を移動させる入力をさらに受け付け、
更新部は、当該視点の位置と当該視線の方向を移動させる入力に基づいて、記憶部に記憶される当該視点の位置と当該視線の方向を更新し、
表示部は、現在の経過時間に対応づけて記憶部に記憶される当該キャラクターオブジェクトの位置と姿勢と向きと、記憶部に記憶される当該視点の位置と当該視線の方向と、に基づいて、当該キャラクターオブジェクトを当該視点の位置から当該視線の方向に俯瞰した画像を生成して表示してもよい。
これにより、ゲーム装置は、仮想空間内の任意の場所からキャラクターオブジェクトを俯瞰した画像を表示することができる。プレイヤーはどのような動きをすればよいか判断しやすくなる。
【0010】
表示部は、当該キャラクターオブジェクトから当該仮想空間内を見た画像をさらに生成して表示してもよい。
これにより、ゲーム装置は、仮想空間内のキャラクターオブジェクトから見た画像を表示することができる。プレイヤーはどのような動きをすればよいかさらに判断しやすくなる。
【0011】
表示部は、当該プレイヤーが息を吐くべき時間区間に現在が含まれる場合には所定の第1の色彩で当該キャラクターオブジェクトを表示し、それ以外の場合には当該第1の色彩と異なる所定の第2の色彩で当該キャラクターオブジェクトを表示してもよい。
これにより、ゲーム装置は、息を吸うべきタイミングと息を吐くべきタイミングをより明確に表示することができる。
【0012】
記憶部は、当該プレイヤーが息を吐くべき時間区間に対応して当該プレイヤーが吐くべき息の強さをさらに記憶し、
表示部は、記憶された吐くべき息の強さに基づいて当該第1の色彩の濃淡を変えて当該キャラクターオブジェクトを表示してもよい。
これにより、ゲーム装置は、息を吸うべきタイミングと息を吐くべきタイミングに加えて、息を吸う強さと息を吐く強さをより明確に表示することができる。
【0013】
本発明のその他の観点に係るゲーム処理方法は、記憶部、表示部、検知部、推定部、採点部、出力部を有するゲーム装置にて実行されるゲーム処理方法であって、表示ステップ、検知ステップ、推定ステップ、採点ステップ、出力ステップを備える。
記憶部は、仮想空間内のキャラクターオブジェクトの位置と姿勢と向きを経過時間に対応づけて記憶し、プレイヤーが息を吐くべき時間区間を記憶する。
表示ステップは、表示部が、現在の経過時間に対応づけて記憶部に記憶される当該キャラクターオブジェクトの位置と姿勢と向きに基づいて当該キャラクターオブジェクトを表示し、記憶部にプレイヤーが息を吐くべきものとして記憶される時間区間に現在が含まれるか否かを示す情報を表示する。
検知ステップは、検知部が、当該プレイヤーによる発音を検知する。
推定ステップは、推定部が、検知された発音から、当該プレイヤーが息を吐いている時間区間を推定する。
採点ステップは、採点部が、記憶された息を吐くべき時間区間と、推定された息を吐いている時間区間とが合致する度合いによって当該プレイヤーの呼吸を採点する。
出力ステップは、出力部が、採点ステップによる採点結果を出力する。
この結果、このゲーム処理方法を用いたゲーム装置は、モデルとなるキャラクターオブジェクトの画像を経過時間に応じて表示して動きを案内し、プレイヤーの吐く息のタイミングに応じてプレイヤーの呼吸を採点できる。これにより、プレイヤーに所望の動きをとるよう案内でき、かつ、所望のタイミングで呼吸をとるよう案内できる。また、プレイヤーの呼吸がどの程度ふさわしいタイミングで行われたか、どのタイミングで呼吸すればよいか等のアドバイスも提供できる。
【0014】
本発明のその他の観点に係るプログラムは、コンピュータを、記憶部、表示部、検知部、推定部、採点部、出力部として機能させる。
記憶部は、仮想空間内のキャラクターオブジェクトの位置と姿勢と向きを経過時間に対応づけて記憶し、プレイヤーが息を吐くべき時間区間を記憶する。
表示部は、現在の経過時間に対応づけて記憶部に記憶される当該キャラクターオブジェクトの位置と姿勢と向きに基づいて当該キャラクターオブジェクトを表示し、記憶部にプレイヤーが息を吐くべきものとして記憶される時間区間に現在が含まれるか否かを示す情報を表示する。
検知部は、当該プレイヤーによる発音を検知する。
推定部は、検知された発音から、当該プレイヤーが息を吐いている時間区間を推定する。
採点部は、記憶された息を吐くべき時間区間と、推定された息を吐いている時間区間とが合致する度合いによって当該プレイヤーの呼吸を採点する。
出力部は、採点部による採点結果を出力する。
この結果、プログラムは、コンピュータを、モデルとなるキャラクターオブジェクトの画像を経過時間に応じて表示して動きを案内し、プレイヤーの吐く息のタイミングに応じてプレイヤーの呼吸を採点できる装置として機能させる。これにより、コンピュータは、プレイヤーに所望の動きをとるよう案内でき、かつ、所望のタイミングで呼吸をとるよう案内できる。また、プレイヤーの呼吸がどの程度ふさわしいタイミングで行われたか、どのタイミングで呼吸すればよいか等のアドバイスも提供できる。
【0015】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0016】
本発明によれば、プレイヤーに所望の動きや呼吸をとらせるよう案内するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することができる。
【発明を実施するための最良の形態】
【0017】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【0018】
(実施例1)
図1は、プログラムを実行することにより、本発明の実施形態に係る装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下本図を参照して説明する。
【0019】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM 102と、RAM(Random Access Memory)103と、インターフェイス104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROM(Digital Versatile Disc ROM)ドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、マイク111と、を備える。
【0020】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態に係る入力装置が実現される。
【0021】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0022】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0023】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0024】
インターフェイス104を介して接続されたコントローラ105は、プレイヤーがゲーム実行の際に行う操作入力を受け付ける。なお、コントローラ105の詳細については後述する。
【0025】
インターフェイス104を介して着脱自在に接続された外部メモリ106には、ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。プレイヤーは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0026】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0027】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0028】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0029】
また、仮想空間が3次元にて構成される場合には、当該3次元空間内に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0030】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【0031】
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェイス(図示せず)により構成される。
【0032】
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【0033】
音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
【0034】
さらに、情報処理装置100には、インターフェイス104を介してマイク111を接続することができる。この場合、マイク111からのアナログ信号に対しては、適当なサンプリング周波数でA/D変換を行い、PCM形式のディジタル信号として、音声処理部110でのミキシング等の処理ができるようにする。
【0035】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0036】
以上で説明した情報処理装置100は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【0037】
例えば、一般的なコンピュータは、上記情報処理装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NICを備え、情報処理装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ105ではなく、キーボードやマウスなどを入力装置として利用する。
【0038】
次に、本実施形態のゲーム装置200の各部が行う処理について説明する。以下の説明では、ゲーム装置200がプレイヤーにヨガやストレッチの様々なポーズを案内するためにモデル(インストラクター)の画像や呼吸のタイミングを知らせる情報などを表示させる場面を例にとって説明する。ただし、本発明はヨガやストレッチに限らずプレイヤーに任意の体操、運動、ポーズなどをとるための案内をする場合に適用できる。
【0039】
図2は、本実施形態のゲーム装置200の構成を説明するための図である。本図に示すように、ゲーム装置200は、記憶部201、表示部202、検知部203、推定部204、採点部205、出力部206を備える。
【0040】
記憶部201は、仮想空間内のモデルとなるキャラクターオブジェクト(以下、「モデルオブジェクト」と呼ぶ)301の位置と姿勢と向きを示す情報を経過時間に対応づけて記憶する。CPU 101とRAM 103が協働して動作することにより、記憶部201として機能する。
【0041】
位置は、この仮想空間内に予め定義された空間座標を用いて表される。座標系の決め方は任意であり、例えば、互いに直交する3軸による直交座標系を用いることができるほか、1個の動径と2個の偏角を用いた球座標のような極座標系を用いることもできる。姿勢は、移動の速度(あるいは加速度)、回転運動の角速度(あるいは角加速度)、キャラクターオブジェクトを構成するボーン(骨格)形状などによって定義される。向きは、例えば、モデルオブジェクト301に設定される方向ベクトルによって定義される。方向ベクトルの長さは任意であるがここでは単位ベクトルとし、向きは任意に設定できる。
【0042】
図3は、本実施形態のゲーム装置200の表示部202によってモニターに表示される画面の例である。モデルオブジェクト301、背景オブジェクト302、ゲーム装置200に相当するゲーム装置オブジェクト303などのキャラクターオブジェクトは、軸となるボーンの表面に複数のテクスチャを貼り付けてできるポリゴン画像として表示される。本図では、ゲーム装置200はヨガのポーズの1つである「Vの字のポーズ」をとるためのナビゲーションをしている。例えば、記憶部201は、「Vの字のポーズ」のような様々なポーズをとるためのモデルオブジェクト301の位置、姿勢、向きの変化を時系列的に表すデータとして記憶する。例えば、記憶部201は、(1)両膝を曲げて床に座る(2)背筋をまっすぐ伸ばす(3)息を吐きながら足を持ち上げて両膝を伸ばす(4)息を吸いながら両手と背筋を伸ばす(5)深呼吸する、といったような「Vの字のポーズ」の所定の手順に則って、モデルオブジェクト301の位置、姿勢、向きの変化量を経過時間に対応づけて記憶する。
【0043】
また、記憶部201は、それぞれのポーズをとる(とった)ときにプレイヤーが息を吐くべき時間区間を示す呼吸指示情報を記憶する。プレイヤーが息を吸うべき時間区間も合わせて記憶してもよい。例えば、「Vの字のポーズ」でプレイヤーに深呼吸を30秒行わせるとすると、記憶部201は「深呼吸の開始のタイミングから30秒間深呼吸する」あるいは「深呼吸の開始のタイミングから、5秒息を吸って5秒息を吐き、これを3回繰り返す」といった内容の呼吸指示情報を記憶する。呼吸指示情報のデータ形式は任意である。
【0044】
なお、ここに記載したポーズの種類、手順、時間などは一例に過ぎず、種類、手順、時間、回数や案内の画像構成などを任意に変更した実施形態を採用できることは言うまでもない。
【0045】
表示部202は、経過時間に対応づけて記憶部201に記憶されるモデルオブジェクト301の位置と姿勢と向きに基づいてモデルオブジェクト301の画像データを生成し、例えば図3に示すように、モデルオブジェクト301を含むキャラクターオブジェクトを配置した画像をモニターに表示する。
【0046】
また、表示部202は、記憶部201に記憶される呼吸指示情報に基づいて、プレイヤーが息を吐くべき時間区間に現在が含まれるか否かを示す情報を表示する。例えば、表示部202は、プレイヤーが息を吐くべき時間区間に現在が含まれる場合には背景オブジェクト302の色を赤色にして表示し、息を吸うべき時間区間に現在が含まれる場合には背景オブジェクト302の色を青色にして表示する。あるいは、表示部202は、プレイヤーが息を吐くべき時間区間に現在が含まれる場合には「ゆっくりと5秒間息を吐いて下さい」のような息を吐くことを促す所定のメッセージや画像等を表示し、息を吸うべき時間区間に現在が含まれる場合には「ゆっくりと5秒間息を吸って下さい」のような息を吸うことを促す所定のメッセージや画像等を表示してもよい。
【0047】
また、表示部202は、それぞれのポーズをとるときに推奨されるゲーム装置200の設置場所を、ゲーム装置オブジェクト303として表示する。例えば、この設置場所は、プレイヤーがポーズをとる(とった)ときに画面が見やすいと想定される場所であり、予め決められている。なお、CPU 101と画像処理部107が協働して動作することにより、表示部202として機能する。
【0048】
検知部203は、プレイヤーによる呼吸・非呼吸の発音をマイク111により検知し、検知して得られた音声情報をRAM 103の所定のバッファ領域に記憶させる。マイク111はゲーム装置200に内蔵されてもよいし、プレイヤーが頭部にはめて使用するヘッドセット型マイクでもよく、ポーズによってこれらを使い分けてもよい。CPU 101、RAM 103、インターフェイス104、音声処理部110が協働して動作することにより、検知部203として機能する。
【0049】
推定部204は、検知部203により検知され所定のバッファ領域に記憶された音声情報から、プレイヤーが息を吐いている時間区間を推定する。すなわち、プレイヤーがいつ息を吐いているか、現在息を吐いているかを推定する。CPU 101、RAM 103、音声処理部110が協働して動作することにより、推定部204として機能する。
【0050】
なお、検知部203と推定部204は、プレイヤーによる呼吸音と非呼吸音とを分別する処理を行うが、詳細については後述する。
【0051】
採点部205は、記憶部201に予め記憶された呼吸指示情報が示す息を吐くべき時間区間と、推定部204により推定されたプレイヤーの息を吐いている時間区間とが合致する度合いによって、プレイヤーの吐く呼吸を採点する。採点部205は、合致している/合致していないの2段階で採点してもよいし、それ以上の所定段階数、どの程度合致しているかを示す割合(パーセント)や点数等で採点してもよく、採点方法は任意である。CPU 101が採点部205として機能する。
【0052】
出力部206は、例えば数字、文字、記号、画像、あるいは音声によって、モニターやスピーカから採点部205による採点結果を出力する。CPU 101、画像処理部107、音声処理部110が協働して動作することにより、出力部206として機能する。
【0053】
(呼吸音と非呼吸音の分別)
次に、検知部203が検知した音声情報から推定部204が呼吸音と非呼吸音とを分別する処理について説明する。
【0054】
まず、検知部203は、音声を検知して音声情報を取得する。典型的には、検知部203はマイク111などの音声入力装置によって音声情報を取得する。音声情報は、空気などの媒質の圧力や位置などが振動する際の変位を数値化したものである。
【0055】
以下では、マイク111からの音声入力における、波動の基準位置からの変位をインターフェース104を介してCPU 101の入出力ポートから得ることができるものとして考える。CPU 101が有するポートからの読出命令を使うか、メモリマップされた入出力を採用するCPU 101の場合には、所定のアドレスからの値の読出命令を使うことで、入出力ポートから変位を読み出すことができる。
【0056】
さて、本実施形態では、マイク111からの音声情報のサンプリングレートをGとし、音声情報をバッファリングするためのリングバッファ領域をRAM 103に用意する。リングバッファは、以下のような2つのメンバーを持つ構造体によって表現することができる。
(1)変位を格納するための要素数Aの配列buf。各要素は、それぞれbuf[0],buf[1],…,buf[A-1]のようにしてアクセスが可能である。
(2)次に要素を追加すべき場所を表す添字next。
【0057】
以下、理解を容易にするため、マイク111からの音声情報をバッファリングするリングバッファ領域をinpと呼び、リングバッファinpの各メンバーは、inp.buf[0],inp.buf[1],…,inp.buf[A-1],inp.nextのように表記するものとする。
【0058】
8ビットサンプリングの場合は、配列bufの各要素は1バイトで表現され、16ビットサンプリングの場合は、配列bufの各要素は2バイトで表現される。上記のようにサンプリングレートがGであるから、リングバッファinpには、時間A/Gだけの音声情報を格納しておくことができる。したがって、直近の時間A/Gの音声情報が常にリングバッファinpに反映されているようにするための手法を以下に説明する。
【0059】
サンプリングレートGでリングバッファinpを最新の情報に更新するためには、CPU 101のタイマ割り込みを利用する。すなわち、時間間隔1/Gでタイマ割り込みを発生させ、割り込みハンドラでは、以下に説明する入力読み込み処理を実行する。
【0060】
なお、以降では、同じ時間間隔である処理を繰り返し行うためにタイマ割り込みを利用した実施形態を説明するが、たとえば繰り返しループ内で時間を計測して待機することにより、処理の単位が実行される時間間隔を一定にする等、そのほかの手法を採用することも可能である。
【0061】
また、以下では、理解を容易にするため、割り込み処理における割り込み禁止や割り込み許可の制御、セマフォ等を使用した排他制御については、適宜説明を省略する。当業者であれば、必要に応じて、これらの処理を適宜追加することができる。
【0062】
図4は、入力読込処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0063】
入力読込処理が起動されると、まず、CPU 101は、マイク111からの音声情報の入力ポートから変位の値vを読み出す(ステップS401)。
【0064】
そして、CPU 101は、値vをinp.buf[inp.next]に格納し(ステップS402)、inp.nextの値を(inp.next + 1)%Aに更新して(ステップS403)、リングバッファinpに値vを追加する。ここで、x % yは、xをyで割った余りを意味する。
【0065】
ステップS403の後、入力読込処理を終了する。割り込みによって本処理を駆動している場合には、割り込みハンドラを終了させる種々の処理も行う。
【0066】
このような処理を行うことで、リングバッファinpには、直近の時間A/G分の音声情報の変位を表すデータが格納され、古くなったデータは自動的に消去(上書き)されることとなる。
【0067】
さて、推定部204は、このようにして得られた音声情報をフーリエ変換して複数の周波数成分の強度を得る。典型的には、高速フーリエ変換を行う。高速フーリエ変換は、各周波数成分の幅をf、処理の段数をNとしたときに、入力された音声情報を、0,f,2f,3f,…,(2N-1)fの周波数の強度成分に分解するものである。
【0068】
上記のように、リングバッファinp内には、直近の時間A/G分の音声情報のみが格納されているから、フーリエ変換を行う対象は、inp.bufに格納されているA個分の変位データとするのが典型的である。
【0069】
したがって、推定部204によるフーリエ変換の処理は、時間間隔A/Gで、そのときにinp.buf[0],…,inp.buf[A-1]を格納されている波動の変位データを対象に行えば良いこととなる。
【0070】
高速フーリエ変換の計算は、公知の技術により、CPU 101がリングバッファinpに格納されたデータを対象に行う。そして、フーリエ変換の結果は、RAM 103に用意された配列Fに格納する。すなわち、配列Fの要素F[0]には、周波数0(直流)の強度成分が、F[1]には、周波数fの強度成分が、F[2]には、周波数2fの強度成分が、…、F[2N-1]には、周波数(2N-1)fの強度成分が、それぞれ格納されるようになる。
【0071】
フーリエ変換は適切なタイミングで繰り返し行われるため、配列Fを参照すれば、音声情報の周波数分布の最新のものを得ることができる。
【0072】
なお、フーリエ変換を行う時間間隔は、A/G以下としても良い。たとえば、0<B≦Aなる整数Bを用いて、時間間隔B/Gでフーリエ変換を行う、としたときは、フーリエ変換の対象となる変位のデータ列は、inp.next≧Bの場合は、
inp.buf[next-B],inp.buf[next-B+1],…,inp.buf[next-2],inp.buf[next-1]
inp.next<Bの場合は、
inp.buf[A-(B-inp.next)],inp.buf[A-(B-inp.next)+1],…,inp.buf[A-2],inp.buf[A-1],inp.buf[0],inp.buf[next-B+1],…,inp.buf[next-2],inp.buf[next-1]
となる。これは、リングバッファinpから、最新のB個分の変位データを取り出すことに相当する。
【0073】
推定部204が時間間隔B/Gで行うフーリエ変換処理の制御の流れをもう一度整理する。図5は、推定部204が時間間隔B/Gで行うフーリエ変換処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0074】
まず、CPU 101は、リングバッファinpから、最新のB個分の音声情報の波動の変位データを取得する(ステップS501)。
【0075】
ついで、CPU 101は、当該B個分の変位データを高速フーリエ変換する(ステップS502)。
【0076】
そして、配列Fの要素F[0]に、周波数0(直流)の強度成分を、F[1]に、周波数fの強度成分を、F[2]に、周波数2fの強度成分を、…、F[2N-1]に、周波数(2N-1)fの強度成分を、それぞれ格納して(ステップS503)、本処理を終了する。
【0077】
さて、常に、最新の音声情報の変位データはリングバッファinpに格納されることとなり、最新のフーリエ変換の結果は配列Fに格納されることとなる。そこで、推定部204は、これらの内容を参照して呼吸音か非呼吸音かを判別し、呼吸音に相当する時間領域を推定する。
【0078】
推定部204は、以下のパラメータを用いる。
(a)受け付けられる音声情報のサンプリングレート。本実施形態では、上記のように、G[Hz]であり、例えば8000Hzである。
(b)フーリエ変換の周波数成分の周波数間隔。本実施形態では、上記のように、f[Hz]であり、例えば31.25Hzである。
(c)第1周波数帯。本実施形態では、31.25Hz以上187.5Hz以下である。
(d)第2周波数帯。本実施形態では、500Hz以上2000Hz以下である。これは、第1周波数帯よりも高い。
(e)第3周波数帯。本実施形態では、3812.5Hz以上4000Hz以下である。これは、第2周波数帯よりも高い。
【0079】
なお、この上限値4000Hzは、サンプリング定理によるものであり、サンプリング周波数Gのちょうど半分になっている。
(f)第1閾値。これは、呼吸音か非呼吸音かを判別する「感度」を示すもので、小さくすれば敏感に反応するが、それだけ呼吸音と誤判断する可能性も高くなる。大きければ反応は鈍くなるが、それだけ呼吸音と誤判断する可能性も高くなる。音声情報のサンプリングビット数に応じて適当な定数を定めても良いし、プレイヤーなどが適宜調整できることとしても良い。
(g)第2閾値。本実施形態では、当該第1閾値の0.375倍以上である。
(h)第3閾値。本実施形態では、当該第1閾値の0.25倍以上である。
(i)第1閾時間。本実施形態では、4/60秒程度である。
(j)第2閾時間。本実施形態では、4/60秒程度である。
(k)閾個数。本実施形態では、9個程度である。
【0080】
なお、これらの数値は、判断が適切に行われる範囲で上下しても良い。たとえば、上記の数値を90%〜110%程度に変更するのであれば、判別の性能に大きな差が出ることはない。
【0081】
さて、このようなパラメータのもとで、推定部204は、時間間隔C/Gで、以下の判断処理を行う。なお、C≦Bであり、典型的にはCはBの約数とする。
【0082】
図6は、推定部204が時間間隔C/Gごとに実行する推定処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0083】
まず、推定部204は、配列Fを参照して、以下の条件がすべて満たされているか否かを判断する(ステップS601)。
(s)第1周波数帯に含まれる周波数成分の強度のいずれか少なくとも1つが所定の第1閾値を超え、
(t)第2周波数帯に含まれる周波数成分の強度のうち所定の第2閾値を超えるものが所定の閾個数以上であり、
(u)第3周波数帯に含まれる周波数成分の強度のいずれか少なくとも1つが所定の第3閾値を超える。
【0084】
サンプリングレートG、フーリエ変換の周波数の分解精度fによって、第1周波数帯、第2周波数帯、第3周波数帯のそれぞれに、配列Fのどの要素が対応するか、は、一意に決まる。一般に、第1周波数帯、第2周波数帯、第3周波数帯のそれぞれに、配列Fに含まれる複数の要素が割り当てられることになる。
【0085】
したがって、第1周波数帯に含まれる配列Fの要素F[D1],…,F[E1]と、第1閾値H1に対して、
F[D1]>H1,…,F[E1]>H1
のいずれか少なくとも一つが成立すれば、条件(s)は満たされることとなる。
【0086】
また、第2周波数帯に含まれる配列Fの要素F[D2],…,F[E2]と、第2閾値H2に対して、
F[D2]>H2,…,F[E2]>H2
を満たすものが所定の閾個数以上であれば、条件(t)は満たされることとなる。
【0087】
さらに第3周波数帯に含まれる配列Fの要素F[D3],…,F[E3]と、第3閾値H3に対して、
F[D3]>H3,…,F[E3]>H3
のいずれか少なくとも一つが成立すれば、条件(u)は満たされることとなる。
【0088】
ここで、D1<…<E1<…<D2<…<E2<…<D3<…<E3である。
【0089】
さて、RAM 103には、以下の三つの領域が用意されている。
(a)肯定カウント領域c。上記条件を満たし始めてからの推定部204の処理回数を記録する。
(b)否定カウント領域d。上記条件を満たさなくなり始めてからの推定部204の処理回数を記録する。
(c)呼吸フラグ領域e。最後に判断したときの音声情報の状態が呼吸音であるか否かを記録する。
【0090】
さて、上記条件の判断の結果、上記条件が満たされる場合(ステップS601;YES)、肯定カウント領域cの値を1増やし(ステップS602)、否定カウント領域dの値を0にする(ステップS603)。
【0091】
そして、条件を満たし始めての時間c×C/Gが、第1閾時間を超えているか否かを判断し(ステップS604)、超えていれば(ステップS604;YES)、呼吸フラグ領域eを「呼吸」に設定して(ステップS605)、本処理を終了する。一方超えていなければ(ステップS604;NO)、本処理を終了する。
【0092】
一方、上記条件が満たされない場合(ステップS601;NO)、否定カウント領域dの値を1増やす(ステップS606)。そして、呼吸フラグ領域eの値が「呼吸」であるか否かを判定し(ステップS607)、「呼吸」でない場合(ステップS607;NO)、本処理を終了する。
【0093】
一方「呼吸」である場合(ステップS607;YES)条件を満たさなくなってからの時間d×C/Gが、第2閾時間を超えているか否かを判断し(ステップS608)、超えていれば(ステップS608;YES)、肯定カウント領域cの値を0にし(ステップS609)、呼吸フラグ領域eを「非呼吸」に設定して(ステップS610)、本処理を終了する。一方超えていなければ(ステップS608;NO),肯定カウント領域cの値を1増やし(ステップS611)、本処理を終了する。
【0094】
このような処理を行うことによって、推定部204は、
(a)上記条件が連続して満たされる時間が第1閾時間を超えた場合、呼吸音の入力がされ続けていると推定し、
(b)呼吸音の入力がされ続けていると判断された後、上記条件が連続して満たされない時間が第2閾時間以下である場合、呼吸音の入力がされ続けていると推定し、
(c)呼吸音の入力がされ続けていると判断された後、上記条件が連続して満たされない時間が第2閾時間を超える場合、呼吸音の入力が終わったと推定する
のである。
【0095】
このような判断を行うことにより、人間がマイク111に向かって「ふーふー」のように息を吹きかけたり、「はーはー」のように興奮して息が荒くなったりしたときの音声情報と、そうでない普通の状態での発声による音声情報とを分別するのであるが、上記の条件が第1閾時間以上満たされることをもって、呼吸音であると判断する。そして、連続して呼吸音であると判断されている間は、上記の条件が第2閾時間より短い間満たされなくとも、そのまま呼吸音であると判断し続ける。
【0096】
各閾時間や各閾値、閾個数の値は、音声情報を入力するプレイヤーの種類、ゲーム装置200が実現されるハードウェアの能力、音声情報のサンプリングレート、フーリエ変換の精度などによって適宜設定することが可能である。
【0097】
さて、呼吸音か非呼吸音かの最新の推定結果は、呼吸フラグ領域eに格納されており、当該領域の更新の時間間隔は、C/Gである。
【0098】
したがって、採点部205および出力部206が実行する処理も、時間間隔をC/Gとするのが好適である。この場合、特に、推定部204による推定処理が終了した直後に、常に、採点部205および出力部206が共働して実行する出力処理を実行するのが好適である。ただし、この時間間隔は、後に続く処理の内容等に応じて、適宜変更が可能である。
【0099】
上記のように、時間間隔C/Gで、非呼吸音か呼吸音かの推定結果の出力が行われるので、RAM 103には、要素数Cの配列を以下のように2つ用意する。
(a)非呼吸音を格納する配列voice。voice[0],…,voice[C-1]に、最新の時間長C/G分の非呼吸音の音声情報の変位データが格納される。
(b)呼吸音を格納する配列nonvc。nonvc[0],…,nonvc[C-1]に、最新の時間長C/G分の呼吸音の音声情報の変位データが格納される。
【0100】
配列voiceおよびnonvcは、時間間隔C/Gで更新されることとなる。
【0101】
図7は、時間間隔C/Gで起動される推定結果の出力処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0102】
出力処理において、CPU 101は、まず、RAM 103に用意された呼吸フラグ領域eが「呼吸」であるか否かを調べる(ステップS701)。「呼吸」であれば(ステップS701;YES)、リングバッファinpに格納された最新のC個分のデータを、配列voiceへコピーし(ステップS702)、配列nonvcの要素をすべて0にしてクリアして(ステップS703)、本処理を終了する。
【0103】
一方、「呼吸」でなければ(ステップS701;NO)、リングバッファinpに格納された最新のC個分のデータを、配列nonvcへコピーし(ステップS704)、配列voiceの要素をすべて0にしてクリアして(ステップS705)、本処理を終了する。
【0104】
このようにして、配列voiceには、プレイヤーが通常の発声を行って入力したと考えられる音声情報の区間は、入力された音声情報がそのまま出力され、そうでない区間は、変位「0」が出力されることになる。
【0105】
一方、配列nonvcには、プレイヤーが通常の発声を行って入力したと考えられる音声情報の区間は、変位「0」が出力され、そうでない区間は、入力された音声情報がそのまま出力されることになる。
【0106】
このように、人が呼吸する際の音声とそれ以外の音声とを簡易に分別することができるようになり、人が呼吸する際の音声を容易に得ることができるようになる。そして、推定部204は、配列voiceと配列nonvcに格納された値によって、プレイヤーが息を吐いている時間区間を推定することができる。この推定結果は、後述する採点部205によるプレイヤーの呼吸タイミングの採点に用いられることとなる。
【0107】
また、適切なパラメータを採用することにより、少ない計算量で多くの人間について、人が呼吸する際の音声とそれ以外の音声とを簡易に分別することができるようになる。
【0108】
なお、上記の説明では、音声情報に係る波動の変位のデータを保持するために、リングバッファや固定長の配列を用いたが、たとえばキューやリストなど、データ列を格納できるような各種の構造体を利用しても良い。
【0109】
(採点処理)
次に、推定部204による推定結果と記憶部201に記憶された呼吸指示情報とを比較することで、採点部205がプレイヤーが息を吐くタイミングを採点する処理について説明する。
【0110】
図8は、採点部205による採点処理の流れを示すフローチャートである。以下、本図を参照して説明する。
【0111】
本実施形態では、採点結果を格納する要素数N(Nは1以上の整数)の配列scoreをRAM 103に記憶する。各要素は、それぞれscore[0],score[1],…,score[N-1]のようにしてアクセスが可能である。
【0112】
採点部205は、息を吐くべきある時間区間とその前後の余裕時間を採点時間区間として、プレイヤーが息を吐くべきタイミングで息を吐いたかを採点する。プレイヤーは息を吐くべき時間区間より前後にずれて息を吐く可能性があるため余裕時間を設けるとよい。採点部205は、その採点時間区間に含まれるそれぞれM個分(Mは1以上N以下の整数)の配列nonvcと配列voiceの値によって、配列scoreのscore[0]からscore[M-1]までの各要素に各時間の採点結果を格納する。以下詳述する。
【0113】
まず、採点部205は、記憶部201に予め記憶されたプレイヤーが息を吐くべき時間区間を示す呼吸指示情報を読み出し(ステップS801)、推定部204による推定結果である配列nonvcと配列voiceの値を読み出す(ステップS802)。ただし、本実施形態では、プレイヤーが適切なタイミング・長さで息を吐いたかが判別できればよいので、呼吸音を示す配列nonvcのみを読み出すこととしてもよい。
【0114】
採点部205は、採点時間区間に含まれるM個分の配列nonvcのそれぞれについて、プレイヤーが所定の息を吐くべきタイミングに息を吐いたか否かを判別する(ステップS803)。詳細には、ある採点時間iに対応する配列nonvcの値に1(すなわち呼吸音であることを示す値)がセットされており、かつ、プレイヤーが息を吐くべき時間区間にその採点時間iが含まれていれば、採点部205は息を吐くべきときに息を吐いていると判別し、そうでなければ、息を吐くべきときに息を吐いていないと判別する。
【0115】
息を吐くべきときに息を吐いていると判別した場合(ステップS803;YES)、採点部205は配列scoreのその採点時間iに対応する要素に1(すなわち息を吐くべきときに息を吐いたことを示す値)をセットする(ステップS804)。一方、息を吐くべきときに息を吐いていないと判別した場合(ステップS803;NO)、採点部205は配列scoreのその採点時間iに対応する要素に0(すなわち息を吐くべきときに息を吐いていないことを示す値)をセットする(ステップS805)。
【0116】
採点部205は、このような処理を採点時間区間に含まれるそれぞれの採点時間iについて行う。
【0117】
本実施形態では、採点部205は、要素数Nの配列scoreのうち1(すなわち呼吸音であることを示す値)がセットされている要素数の割合によって、プレイヤーの呼吸を採点する。言い換えれば、採点部205は、プレイヤーが息を吐くべき時間区間と、実際にプレイヤーが息を吐いている時間区間とが合致する度合いによって、プレイヤーの呼吸を採点する。例えば、採点部205は、息を吐くべき時間に息を吐いたと判別された要素数の割合が全体の80%以上であれば「上級」、50%以上80%未満であれば「中級」、50%未満であれば「初級」といったようにランク分けする。ただし、ランク分けの仕方は任意に変更できるのはもちろんのこと、求めた割合を採点結果としてもよい。ランク分けしなくても、割合や点数などによってプレイヤーに通知するメッセージの内容を変えることができる。
【0118】
そして、出力部206は、採点部205による採点結果を、例えば数字、文字、記号、画像、あるいは音声によって出力する。そして、プレイヤーは、呼吸すべきタイミングで呼吸したか、どの程度正しく呼吸できたかを知ることができる。ここで、「正しい呼吸」とは、予め決められた推奨される呼吸タイミングと同じあるいは近い呼吸であることを意味する。
【0119】
(採点結果の利用)
以下では、このようにして得られた採点結果を用いた、ヨガやストレッチなどのポーズの案内方法を具体的に説明する。
【0120】
図9は、モニターに映し出される案内画面の構成例である。案内画面には、モデルオブジェクト301による模範ポーズの俯瞰図を表す領域910、プレイヤーがそのポーズをとったときに見えると予想される視線図を表す領域920、プレイヤーの呼吸タイミングの採点結果を表す領域930が含まれる。
【0121】
本図のように、表示部202は、ポーズの開始からの経過時間に対応づけて記憶部201に記憶されるモデルオブジェクト301の位置と姿勢と向きを示すデータに基づいて、モデルオブジェクト301を俯瞰した画像を生成して、領域910に表示する。表示部202がどの視点からどの視線方向に俯瞰する画像を生成するかは任意であり、視線や視点を可変としてもよい。ここに表示される画像は典型的には動画像であり、プレイヤーは表示される動画像を見てモデルオブジェクト301の模範ポーズをまねるように実際に体を動かす。このとき、検知部203はプレイヤーによる呼吸音を含む発音を検知し、推定部204は発音が呼吸によるものか否かを随時推定している。検知部203はマイク111によってプレイヤーの発音を集音するが、ポーズの種類や体型などによってはヘッドセット型マイクをプレイヤーに装着させて集音すると良い。また、採点部205は推定部204による推定結果と記憶部201に予め記憶された呼吸指示情報とに基づいて、正しい(推奨される)タイミングでプレイヤーが息を吐いているか随時採点している。
【0122】
加えて、表示部202は、模範ポーズを領域910に表示させるとともに、そのポーズをとったときにプレイヤーから見えるであろう視線図を、同様に記憶部201に記憶されるモデルオブジェクト301の位置と姿勢と向きを示すデータに基づいて生成して、領域920に表示する。ここに表示される画像は動画像あるいは静止画像であり、プレイヤーは表示される画像と同じように実際に見えるように体を動かす。これにより、プレイヤーは実際に体を動かしたときにどのように見えるように体を動かせばよいのか、瞬時に視覚的に判断できるようになる。すなわち、プレイヤーは領域920に表示される仮想的な風景が実際に見えるように体を動かせばよい。
【0123】
また、表示部202は、記憶部201に記憶される呼吸指示情報に基づいて、ポーズの案内中にプレイヤーが息を吐くべき時間区間に現在が含まれるか否かを示す情報を表示する。例えば、表示部202は、プレイヤーが息を吐くべき時間区間に現在が含まれる場合には背景オブジェクト302の色を赤色にして表示し、息を吸うべき時間区間に現在が含まれる場合には背景オブジェクト302の色を青色にして表示する。このように色彩を変えて表示することによって、プレイヤーは直感的に呼吸のタイミングを判断できるようになる。ただし、表示部202は、背景オブジェクト302以外のキャラクターオブジェクト(例えばモデルオブジェクト301など)の色彩を変えて表示してもよいし、プレイヤーが息を吐くべき時間か否かを示す所定のメッセージや画像等を表示してもよい。色彩の種類も任意に変えてよい。また、表示部202は、息を吐くあるいは吸う強さも色彩を変化させることで表示してもよい。例えば、記憶部201は、プレイヤーの息を吐くべき時間区間に加えて、吐くべき息の強さを指定する情報も合わせて記憶し、表示部202は、強く吐くときには濃い赤、弱く吐くときには薄い赤、といったようにグラデーションをつけて表示することができる。これにより、プレイヤーは呼吸のタイミングに加えて呼吸の強さも瞬時に判断できるようになる。表示に用いる色彩は自由に変更できる。
【0124】
さらに、表示部202は、ポーズの案内中に出力部206によって出力されたプレイヤーの呼吸の採点結果を、領域930に表示する。例えば、表示部202は、出力部206により出力される採点結果が所定段階数にレベル分けされた採点情報である場合には、「とてもいい呼吸です」「もう少しゆっくり息を吐きましょう」などのようにレベルに合ったアドバイスを表示してもよい。また、採点結果を点数やランクで表示してもよい。出力部206は、採点結果を所定の音声データを再生した音声によって出力してもよい。
【0125】
なお、本図に示した画面の構成は一つの例に過ぎず、自由に構成を変えて表示することができることは言うまでもない。例えば、ゲーム装置200に接続されたモニターが2つある場合には、片方のモニターにはモデルオブジェクト301による模範ポーズの画像を表示し、もう片方のモニターには視線図を示す画像を表示するようにすれば、より見やすい画面構成にすることができる。
【0126】
このように、本実施形態によれば、ゲーム装置200は、プレイヤーに所望の動きをとらせるよう効率的に案内することができる。特に、ヨガ、ストレッチのように、呼吸するタイミングが重要な動作をナビゲーションする際には、息を吸う・息を吐くタイミングを明確にプレイヤーに知らせることができ、かつ、プレイヤーが正しいタイミングや推奨されるタイミングで実際に息を吐いているか適宜判定してプレイヤーに知らせることができる。これによって、呼吸を含めたより理想的な動きをプレイヤーにさせるよう容易にナビゲーションすることが可能になり、息を吐くタイミングを判定したりアドバイスしたりすることができようになる。
【0127】
(実施例2)
次に、本発明の他の実施形態について説明する。上述の実施形態では、採点部205は検知部203がプレイヤーの発音を検知している間常に採点しているが、本実施形態では、採点部205による採点が行われる時期を変えている。以下詳述する。
【0128】
記憶部201は、プレイヤーの発音を検知するマイク111に相当するオブジェクト(以下、「検知オブジェクト」と呼ぶ)1010の位置をさらに記憶する。ゲーム装置200がマイク111を内蔵している場合には、ゲーム装置200の位置を検知オブジェクト1010の位置に近似してもよい。
【0129】
表示部202は、モデルオブジェクト301などと共に、記憶部201に記憶された検知オブジェクト1010の位置に検知オブジェクト1010の画像を表示する。マイク111がゲーム装置200に内蔵されている場合には、例えば図10(a)に示すように、検知オブジェクト1010の位置をゲーム装置オブジェクト303の位置と同じにする。この場合、ゲーム装置オブジェクト303と検知オブジェクト1010とを同一のものにして、どちらか片方のみを表示してもよい。また、プレイヤーがヘッドセット型マイクを使用する場合には、例えば図10(b)に示すように、検知オブジェクト1010をモデルオブジェクト301の口元付近にセットされるヘッドセット型マイクの集音部の位置に表示する。
【0130】
次に、本実施形態の採点部205が行う採点処理について説明する。図11は、採点部205による採点処理の流れを示すフローチャートである。
【0131】
まず、採点部205は、モデルオブジェクト301の口と検知オブジェクト1010との距離(検知距離)を座標計算により求める(ステップS1101)。
【0132】
そして、採点部205は、求めた検知距離が所定の閾値未満か否か判別する(ステップS1102)。この閾値は予め定義され記憶部201に記憶された値であり、マイク111による集音の感度や特性にしたがって予め決められる。
【0133】
検知距離が閾値以上と判別された場合(ステップS1102;NO)、採点部205は採点処理を終了する。この場合、採点部205はプレイヤーの呼吸を採点しない。
【0134】
検知距離が閾値未満と判別された場合(ステップS1102;YES)、採点部205は上述のステップS801以降の処理を行う。すなわち、採点部205は、採点時間区間内の各時間(検知部203が発音を検知する各時間)において、予め記憶部201に記憶された呼吸指示情報の示す息を吐くべきときにプレイヤーの呼吸音があったか否かを判定して、プレイヤーの呼吸を採点する。
【0135】
このように、本実施形態によれば、ゲーム装置200は、常にプレイヤーの呼吸を採点する必要はなく、検知距離が所定距離未満になったときに採点すればよい。したがって、ゲーム装置200の行う処理の負担を軽減することができる。
【0136】
なお、プレイヤーがヘッドセット型マイクを使用する場合には検知距離はほぼ一定とみなせるので、本実施形態と上述の実施形態のどちらを採用してもよい。
【0137】
(実施例3)
次に、本発明の他の実施形態について説明する。本実施形態は、検知オブジェクト1010の位置の入力をプレイヤーから受け付ける点で、上述の実施形態と異なる。以下詳述する。
【0138】
図12は、本実施形態のゲーム装置200の構成を示す図である。本図のように、ゲーム装置200は、入力受付部1201と更新部1202をさらに備える。なお、その他の構成は上述の実施形態と同様であるので説明を省略する。
【0139】
入力受付部1201は、プレイヤーから検知オブジェクト1010の位置を移動させる入力を受け付ける。典型的には、入力受付部1201は、コントローラ105やその他の入力デバイス(キー、ボタン、タッチペンなど)を用いたプレイヤーからの入力を受け付ける。
【0140】
更新部1202は、入力受付部1201に受け付けられた入力に基づいて、記憶部201に記憶される検知オブジェクト1010の位置を更新する。
【0141】
例えば、プレイヤーは、モニターの画面に重ねて設置されたタッチパネル上でタッチペンを動かして検知オブジェクト1010をドラッグしたり、コントローラ105の十字キーなどを押下したりして、位置を移動させる。図13は、検知オブジェクト1010を移動させたときの画面の例である。まず、表示部202は、検知オブジェクト1010を所定の初期位置に表示する。図中では点線で検知オブジェクト1010Aと記載している。初期位置は、例えばモニターあるいはゲーム装置200を置くために推奨される場所である。
【0142】
次に、入力受付部1201がプレイヤーから位置を移動させる入力を受け付けると、更新部1202は記憶部201に記憶された検知オブジェクト1010の位置を更新し、表示部202は移動後の位置に検知オブジェクト1010を表示する。図中では実線で検知オブジェクト1010Bと記載している。このように、プレイヤーは任意の場所に検知オブジェクト1010を移動させることができる。なお、本図では検知オブジェクト1010を点線や実線で描いているが、これはより分かりやすいように記載しただけであり、実際には検知オブジェクト1010は1つしか表示されない。表示部202は、動かした軌跡が分かるように検知オブジェクト1010の残像を所定時間表示してもよい。
【0143】
プレイヤーが様々な姿勢、体勢をとったり視線方向を変えたりしながら案内画面を見るときには、プレイヤーにとって画面が見やすい位置にその都度モニターあるいはゲーム装置200を移動させたほうがより見やすくなる。プレイヤーの発音を検知するマイク111がゲーム装置200に内蔵されている場合、ゲーム装置200を任意の場所に移動させると、検知部203による検知の感度によっては発音が検知しにくくなる可能性がある。このようにプレイヤーが現実空間でゲーム装置200を移動したとき、同じように仮想空間で検知オブジェクト1010の位置を移動させることで、ゲーム装置200はマイク111で集音しにくくなることによる息を吐いた時間区間の推定誤差を小さくすることが可能になる。
【0144】
入力受付部1201は、モデルオブジェクト301を俯瞰するときの視点の位置や視線の方向の入力をユーザからさらに受け付けるようにしてもよい。この場合、記憶部201は、俯瞰する視点の位置と視線の方向を示すデータを記憶し、入力受付部1201はこの視点の位置と視線の方向を変更する指示入力を受け付け、更新部1202は受け付けた指示入力に従って記憶部201に記憶される視点の位置と視線の方向を示すデータを更新し、表示部202は記憶部201に記憶される視点の位置と視線の方向を示すデータに基づいてモデルオブジェクト301を俯瞰した画像を生成して表示すればよい。
【0145】
(実施例4)
次に、本発明のその他の実施形態について説明する。本実施形態は、採点部205による採点方法の1つの例である。
【0146】
図14は、記憶部201に記憶される呼吸指示情報などを時系列的に図式化したものである。本例では、経過時間T1からT2にかけて息を吸い、経過時間T2からT3にかけて息を吐き、経過時間T3からT4にかけて息を止めるべきであることが示されている。また、採点部205がプレイヤーの呼吸を採点する採点時間区間は、時間区間1430で示されている。
【0147】
例えば、時間区間1410にプレイヤーが息を吐いたと推定されたとする。このとき、採点部205は、息を吐くべきときに息を吐いたと推定される時間区間1423に含まれる配列scoreの各要素には、正しく息を吐いたことを示す値“1”をセットする。一方、採点部205は、息を吐くべきときに息を吐いていないと推定される時間区間1422、1424に含まれる配列scoreの各要素には、正しく息を吐いていないことを示す値“0”をセットする。また、採点部205は、息を吸うべき時間区間であって息を吐いていない区間1421と、息を止めるべき時間区間であって息を吐いていない区間1425に含まれる配列scoreの各要素にも“1”をセットする。
【0148】
そして、採点部205は、採点時間区間1430に含まれる配列scoreの全要素中、“1”がセットされた要素の割合に応じてプレイヤーの呼吸を採点する。例えば、採点部205は、上述のように割合に応じてランク分けしたり、点数で表したりして採点結果を生成する。また、出力部206は、全要素中“1”がセットされた要素の割合に応じて予め決められたコメントやアドバイスを出力してもよい。
【0149】
(実施例5)
次に、本発明のその他の実施形態について説明する。本実施形態も、採点部205による採点方法の1つの例である。
【0150】
図15は、記憶部201に記憶される呼吸指示情報などを時系列的に図式化したものである。本例でも、経過時間T1からT2にかけて息を吸い、経過時間T2からT3にかけて息を吐くべきであることが示されている。さらに、本実施形態では、息を吐くべき時間区間1402を、中心区間1512と、その前後区間1511、1513とに分類している。同様に、息を吸うべき時間区間1401を、中心区間1502と、その前後区間1501、1503とに分類し、息を止めるべき時間区間1403を、中心区間1522と、その前後区間1521、1523とに分類している。
【0151】
例えば、時間区間1410にプレイヤーが息を吐いたと推定されたとする。このとき、採点部205は、息を吐くべきときに息を吐いたと推定される時間区間1511、1512、1513に含まれる配列scoreの各要素には、正しく息を吐いたことを示す値“1”をセットする。また、採点部205は、息を吸うべきときに息を吐いていると推定される時間区間1503と、息を止めるべきときに息を吐いていると推定される時間区間1521に含まれる配列scoreの各要素には、正しく息を吐いていないことを示す値“0”をセットする。
【0152】
さらに、採点部205は、息を吐くべき区間1402の中心区間1512において息を吐いたと推定されれば、全時間区間1402において正しく息を吐いたと採点する。一方、中心区間1512において息を吐いていないと推定されれば、全時間区間1402において正しく息を吐いていないと採点する。息を吸うべき時間区間1401、息を止めるべき時間区間1403についても同様である。本図の場合、中心区間1512において息を吐いているので時間区間1402に含まれる配列scoreには“1”をセットし、中心区間1502において息を吐いていないので時間区間1401に含まれる配列scoreには“1”をセットし、中心区間1522において息を吐いていないので時間区間1403に含まれる配列scoreには“1”をセットする。結果として、すべての採点時間区間1430において正しい呼吸であると採点する。このように、厳密に全時間区間1401、1402、1403に含まれる配列scoreの各要素について採点しなくても、採点時間区間の主要部分について判定するようにしてもよい。これによって採点処理を簡略化できる。なお、中心区間は自由に設定することができる。また、採点時間区間中に重みを設定して、全体の得点に対して寄与が大きい区間と小さい区間を設けてもよい。
【0153】
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。上述の各実施形態では、ゲーム装置200はヨガのポーズをとる際の呼吸タイミングを採点しているが、他のゲームにおける呼吸採点方法として本願発明を用いることも可能である。
【0154】
ゲーム装置200を装置の全部又は一部として動作させるためのプログラムを、メモリカード、CD−ROM、DVD、MO(Magneto Optical disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【0155】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【0156】
以上説明したように、本発明によれば、プレイヤーに所望の動きや呼吸をとらせるよう案内するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することができる。
【図面の簡単な説明】
【0157】
【図1】本発明のゲーム装置が実現される典型的な情報処理装置の概要構成を示す図である。
【図2】ゲーム装置の各部が行う処理を説明するための構成図である。
【図3】モニターに表示される画面の構成例である。
【図4】入力読込処理を説明するためのフローチャートである。
【図5】フーリエ変換処理を説明するためのフローチャートである。
【図6】推定処理を説明するためのフローチャートである。
【図7】推定結果の出力処理を説明するためのフローチャートである。
【図8】採点処理を説明するためのフローチャートである。
【図9】モニターに表示される画面の構成例である。
【図10】実施例2のモニターに表示される画面の構成例である。
【図11】実施例2の採点処理を説明するためのフローチャートである。
【図12】実施例3のゲーム装置の各部が行う処理を説明するための構成図である。
【図13】実施例3のモニターに表示される画面の構成例である。
【図14】実施例4の採点部が採点する処理を説明するための図である。
【図15】実施例5の採点部が採点する処理を説明するための図である。
【符号の説明】
【0158】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェイス
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
111 マイク
200 ゲーム装置
201 記憶部
202 表示部
203 検知部
204 推定部
205 採点部
206 出力部
301 モデルオブジェクト
302 背景オブジェクト
303 ゲーム装置オブジェクト
1010 検知オブジェクト
1201 入力受付部
1202 更新部

【特許請求の範囲】
【請求項1】
仮想空間内のキャラクターオブジェクトの位置と姿勢と向きを経過時間に対応づけて記憶し、プレイヤーが息を吐くべき時間区間を記憶する記憶部と、
現在の経過時間に対応づけて前記記憶部に記憶される当該キャラクターオブジェクトの位置と姿勢と向きに基づいて当該キャラクターオブジェクトを表示し、前記記憶部にプレイヤーが息を吐くべきものとして記憶される時間区間に現在が含まれるか否かを示す情報を表示する表示部と、
当該プレイヤーによる発音を検知する検知部と、
前記検知された発音から、当該プレイヤーが息を吐いている時間区間を推定する推定部と、
前記記憶された息を吐くべき時間区間と、前記推定された息を吐いている時間区間とが合致する度合いによって当該プレイヤーの呼吸を採点する採点部と、
前記採点部による採点結果を出力する出力部と、
を備えることを特徴とするゲーム装置。
【請求項2】
請求項1に記載のゲーム装置であって、
前記記憶部は、前記検知部を示す検知オブジェクトの位置をさらに記憶し、
前記表示部は、当該検知オブジェクトを当該キャラクターオブジェクトとともに表示し、
前記採点部は、当該キャラクターオブジェクトの口と当該検知オブジェクトとの距離が所定の閾値未満である場合に採点する
ことを特徴とするゲーム装置。
【請求項3】
請求項2に記載のゲーム装置であって、
当該プレイヤーから当該検知オブジェクトの位置を移動させる入力を受け付ける入力受付部と、
前記受け付けられた入力に基づいて、前記記憶部に記憶される当該検知オブジェクトの位置を更新する更新部と、
をさらに備えることを特徴とするゲーム装置。
【請求項4】
請求項3に記載のゲーム装置であって、
前記記憶部は、仮想空間内で当該キャラクターオブジェクトを俯瞰する視点の位置と視線の方向をさらに記憶し、
前記入力受付部は、当該視点の位置と当該視線の方向を移動させる入力をさらに受け付け、
前記更新部は、当該視点の位置と当該視線の方向を移動させる入力に基づいて、前記記憶部に記憶される当該視点の位置と当該視線の方向を更新し、
前記表示部は、現在の経過時間に対応づけて前記記憶部に記憶される当該キャラクターオブジェクトの位置と姿勢と向きと、前記記憶部に記憶される当該視点の位置と当該視線の方向と、に基づいて、当該キャラクターオブジェクトを当該視点の位置から当該視線の方向に俯瞰した画像を生成して表示する
ことを特徴とするゲーム装置。
【請求項5】
請求項4に記載のゲーム装置であって、
前記表示部は、当該キャラクターオブジェクトから当該仮想空間内を見た画像をさらに生成して表示する
ことを特徴とするゲーム装置。
【請求項6】
請求項1乃至5のいずれか1項に記載のゲーム装置であって、
前記表示部は、当該プレイヤーが息を吐くべき時間区間に現在が含まれる場合には所定の第1の色彩で当該キャラクターオブジェクトを表示し、それ以外の場合には当該第1の色彩と異なる所定の第2の色彩で当該キャラクターオブジェクトを表示する
ことを特徴とするゲーム装置。
【請求項7】
請求項6に記載のゲーム装置であって、
前記記憶部は、当該プレイヤーが息を吐くべき時間区間に対応して当該プレイヤーが吐くべき息の強さをさらに記憶し、
前記表示部は、前記記憶された吐くべき息の強さに基づいて当該第1の色彩の濃淡を変えて当該キャラクターオブジェクトを表示する
ことを特徴とするゲーム装置。
【請求項8】
記憶部、表示部、検知部、推定部、採点部、出力部を有するゲーム装置にて実行されるゲーム処理方法であって、
前記記憶部は、仮想空間内のキャラクターオブジェクトの位置と姿勢と向きを経過時間に対応づけて記憶し、プレイヤーが息を吐くべき時間区間を記憶し、
前記表示部が、現在の経過時間に対応づけて前記記憶部に記憶される当該キャラクターオブジェクトの位置と姿勢と向きに基づいて当該キャラクターオブジェクトを表示し、前記記憶部にプレイヤーが息を吐くべきものとして記憶される時間区間に現在が含まれるか否かを示す情報を表示する表示ステップと、
前記検知部が、当該プレイヤーによる発音を検知する検知ステップと、
前記推定部が、前記検知された発音から、当該プレイヤーが息を吐いている時間区間を推定する推定ステップと、
前記採点部が、前記記憶された息を吐くべき時間区間と、前記推定された息を吐いている時間区間とが合致する度合いによって当該プレイヤーの呼吸を採点する採点ステップと、
前記出力部が、前記採点ステップによる採点結果を出力する出力ステップと、
を備えることを特徴とするゲーム処理方法。
【請求項9】
コンピュータを、
仮想空間内のキャラクターオブジェクトの位置と姿勢と向きを経過時間に対応づけて記憶し、プレイヤーが息を吐くべき時間区間を記憶する記憶部、
現在の経過時間に対応づけて前記記憶部に記憶される当該キャラクターオブジェクトの位置と姿勢と向きに基づいて当該キャラクターオブジェクトを表示し、前記記憶部にプレイヤーが息を吐くべきものとして記憶される時間区間に現在が含まれるか否かを示す情報を表示する表示部、
当該プレイヤーによる発音を検知する検知部、
前記検知された発音から、当該プレイヤーが息を吐いている時間区間を推定する推定部、
前記記憶された息を吐くべき時間区間と、前記推定された息を吐いている時間区間とが合致する度合いによって当該プレイヤーの呼吸を採点する採点部、
前記採点部による採点結果を出力する出力部、
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2008−237495(P2008−237495A)
【公開日】平成20年10月9日(2008.10.9)
【国際特許分類】
【出願番号】特願2007−81465(P2007−81465)
【出願日】平成19年3月27日(2007.3.27)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】