以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.構成
図1に本実施形態のシミュレーションシステム(ゲームシステム、映像表示システム、シミュレーション装置)の構成例を示す。なお、本実施形態のシミュレーションシステムは図1の構成に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
入力装置160は、ユーザが種々の入力情報を入力するための装置である。この入力装置160は、音入力装置161、振動デバイス164を含むことができる。また入力装置160は、ユーザがゲームの操作情報を入力するためのゲームコントローラの機能を有していてもよい。ゲームコントローラは、例えば操作ボタン、方向指示キー、ジョイスティック又はレバー等により実現される。この場合にゲームコントローラと音入力装置161は、一体の筐体で実現してもよいし、別体の筐体で実現してもよい。
音入力装置161は、ユーザが音情報を入力するための装置である。音入力装置161により、例えばユーザの歌声や呼び声や掛け声などのユーザ音声を入力できる。この音入力装置161は例えば図2(A)で説明するマイク162などにより実現できる。なお音入力装置161の形状は図2(A)のような形状のマイク162には限定されず、例えばヘッドバンドを有するヘッドセット型マイクや小型マイクなどの種々のタイプのものを用いることができる。また音入力装置161は、楽器或いは楽器を模した装置における音の入力装置(ピックアップマイク等)であってもよい。楽器としては、弦楽器(ギター)、打楽器(ドラム、太鼓)、或いは鍵盤楽器(ピアノ、キーボード)などがある。
振動デバイス164(振動発生部)は、警告等のための振動を発生するデバイスであり、例えば振動モータ(バイブレータ)などにより実現される。振動モータは、例えば、偏芯した錘を回転させることで振動を発生する。具体的には駆動軸の両端に偏心した錘を取り付けてモータ自体が揺れるようにする。なお振動デバイス164は、振動モータには限定されず、例えばピエゾ素子などにより実現されるものであってもよい。
記憶部170は各種の情報を記憶する。記憶部170は、処理部100や通信部196などのワーク領域として機能する。ゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。記憶部170の機能は、半導体メモリ(DRAM、VRAM)、HDD(ハードディスクドライブ)、SDD、光ディスク装置などにより実現できる。記憶部170は、空間情報記憶部172、楽曲情報記憶部174、音データ記憶部175、パラメータ記憶部176、描画バッファ178を含む。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、BD、CD)、HDD、或いは半導体メモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(入力装置、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
頭部装着型表示装置200(HMD)は、ユーザの頭部に装着されて、ユーザの眼前に画像を表示する装置である。HMD200は非透過型であることが望ましいが、透過型であってもよい。またHMD200は、いわゆるメガネタイプのHMDであってもよい。
HMD200は、センサ部210、表示部220、処理部240を含む。なおHMD200に発光素子を設ける変形実施も可能である。センサ部210は、例えばヘッドトラッキングなどのトラッキング処理を実現するためものである。例えばセンサ部210を用いたトラッキング処理により、HMD200の位置、方向を特定する。HMD200の位置、方向を特定することで、ユーザの位置、方向を特定できる。ユーザの位置、方向により、ユーザ(プレーヤ)に対応する仮想空間の仮想ユーザ(仮想プレーヤ)の位置、方向が特定される。ユーザの位置、方向は例えばユーザの視点位置、視線方向である。仮想ユーザの位置、方向は例えば仮想ユーザの視点位置、視線方向である。
トラッキング方式としては種々の方式を採用できる。トラッキング方式の一例である第1のトラッキング方式では、後述の図2(A)、図2(B)で詳細に説明するように、センサ部210として複数の受光素子(フォトダイオード等)を設ける。そして外部に設けられた発光素子(LED等)からの光(レーザー等)をこれらの複数の受光素子により受光することで、現実世界の3次元空間でのHMD200(ユーザの頭部)の位置、方向を特定する、第2のトラッキング方式では、後述の図3(A)、図3(B)で詳細に説明するように、複数の発光素子(LED)をHMD200に設ける。そして、これらの複数の発光素子からの光を、外部に設けられた撮像部で撮像することで、HMD200の位置、方向を特定する。第3のトラッキング方式では、センサ部210としてモーションセンサを設け、このモーションセンサを用いてHMD200の位置、方向を特定する。モーションセンサは例えば加速度センサやジャイロセンサなどにより実現できる。例えば3軸の加速度センサと3軸のジャイロセンサを用いた6軸のモーションセンサを用いることで、現実世界の3次元空間でのHMD200の位置、方向を特定できる。なお、第1のトラッキング方式と第2のトラッキング方式の組合わせ、或いは第1のトラッキング方式と第3のトラッキング方式の組合わせなどにより、HMD200の位置、方向を特定してもよい。
HMD200の表示部220は例えば液晶ディスプレイ(LCD)や有機ELディスプレイなどにより実現できる。例えばHMD200には、表示部220として、ユーザの左目の前に配置される第1のディスプレイと、右目の前に配置される第2のディスプレイが設けられており、例えば立体視表示が可能になっている。立体視表示を行う場合には、例えば視差が異なる左目用画像と右目用画像を生成し、第1のディスプレイに左目用画像を表示し、第2のディスプレイに右目用画像を表示すればよい。
HMD200の処理部240は、HMD200において必要な各種の処理を行う。例えば処理部240は、センサ部210の制御処理や表示部220の表示制御処理などを行う。また処理部240が、3次元音響(立体音響)処理を行って、3次元的な音の方向や距離や広がりの再現を実現してもよい。
音出力部192は、本実施形態により生成された音を出力するものであり、例えばスピーカ又はヘッドホン等により実現できる。
I/F(インターフェース)部194は、携帯型情報記憶媒体195とのインターフェース処理を行うものであり、その機能はI/F処理用のASICなどにより実現できる。携帯型情報記憶媒体195は、ユーザが各種の情報を保存するためのものであり、電源が非供給になった場合にもこれらの情報の記憶を保持する記憶装置である。携帯型情報記憶媒体195は、ICカード(メモリカード)、USBメモリ、或いは磁気カードなどにより実現できる。
通信部196は、有線や無線のネットワークを介して外部(他の装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170、補助記憶装置194)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
処理部100(プロセッサ)は、入力装置160からの入力情報やHMD200でのトラッキング情報(HMDの位置、方向、或いは視点位置、視線方向)と、プログラムなどに基づいて、ゲーム処理、ゲーム成績演算処理、表示処理、或いは音処理などを行う。
処理部100の各部が行う本実施形態の各処理(各機能)はプロセッサ(ハードウェアを含むプロセッサ)により実現できる。例えば本実施形態の各処理は、プログラム等の情報に基づき動作するプロセッサと、プログラム等の情報を記憶するメモリにより実現できる。プロセッサは、例えば各部の機能が個別のハードウェアで実現されてもよいし、或いは各部の機能が一体のハードウェアで実現されてもよい。プロセッサは、例えばCPU(Central Processing Unit)であってもよい。但し、プロセッサはCPUに限定されるものではなく、GPU(Graphics Processing Unit)、或いはDSP(Digital Processing Unit)等、各種のプロセッサを用いることが可能である。またプロセッサはASICによるハードウェア回路であってもよい。メモリ(記憶部170)は、SRAM、DRAM等の半導体メモリであってもよいし、レジスターであってもよい。或いはハードディスク装置(HDD)等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリはコンピュータにより読み取り可能な命令を格納しており、当該命令がプロセッサにより実行されることで、処理部100の各部の処理(機能)が実現されることになる。ここでの命令は、プログラムを構成する命令セットでもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
処理部100は、入力処理部102、演算処理部110、出力処理部140を含む。演算処理部110は、ゲーム処理部111、ゲーム成績演算部118、表示処理部120、音処理部130を含む。上述したように、これらの各部により実行される本実施形態の各処理は、プロセッサ(或いはプロセッサ及びメモリ)により実現できる。なお、これらの構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
入力処理部102(入力処理のプログラムモジュール)は、入力情報やトラッキング情報を受け付ける処理や、記憶部170から情報を読み出す処理や、通信部196を介して情報を受信する処理を、入力処理として行う。例えば入力処理部102は、入力装置160を用いてユーザが入力した入力情報やHMD200のセンサ部210等により検出されたトラッキング情報(ユーザの位置、方向又は視線の情報等)を取得する処理や、読み出し命令で指定された情報を、記憶部170から読み出す処理や、外部装置(サーバ等)からネットワークを介して情報を受信する処理を、入力処理として行う。ここで受信処理は、通信部196に情報の受信を指示したり、通信部196が受信した情報を取得して記憶部170に書き込む処理などである。
演算処理部110は、各種の演算処理を行う。例えばゲーム処理、ゲーム成績演算処理、表示処理、或いは音処理などの演算処理を行う。
ゲーム処理部111(ゲーム処理のプログラムモジュール)はユーザがゲームをプレイするための種々のゲーム処理を行う。ゲーム処理部111は、ゲーム進行処理部112、評価処理部113、キャラクタ処理部114、パラメータ処理部115、オブジェクト空間設定部116、仮想カメラ制御部117を含む。
ゲーム進行処理部112は、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などを行う。評価処理部113は、ユーザのゲームプレイの評価処理を行う。例えば音楽ゲームでのユーザの演奏や、ゲーム操作についての評価処理を行う。音楽ゲームに使用される楽曲情報は楽曲情報記憶部174に記憶される。
キャラクタ処理部114は、キャラクタに関する種々の処理を行う。例えばオブジェクト空間(仮想空間、ゲーム空間)においてキャラクタを移動させる処理や、キャラクタを動作させる処理を行う。例えばキャラクタを動作させる処理は、モーションデータを用いたモーション処理(モーション再生等)により実現できる。パラメータ処理部115は、ゲームに使用される種々のパラメータ(ゲームパラメータ)の演算処理を行う。例えばパラメータの値を増減させる処理を行う。パラメータの情報はパラメータ記憶部176に記憶される。
オブジェクト空間設定部116は、複数のオブジェクトが配置されるオブジェクト空間(広義には仮想空間)の設定処理を行う。例えば、キャラクタ(人、動物、ロボット等)、マップ(地形)、建物、観客席、コース(道路)、樹木、壁、水面などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170の空間情報記憶部172には、オブジェクト空間での複数のオブジェクト(パーツオブジェクト)の位置、回転角度(方向)等の情報が空間情報として記憶される。オブジェクト空間設定部116は、例えば各フレーム毎にこの空間情報を更新する処理などを行う。
仮想カメラ制御部117は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点、基準仮想カメラ)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。この仮想カメラはユーザの視点に相当する。立体視表示の場合は、左目用の第1の視点(左目用の第1の仮想カメラ)と、右目用の第2の視点(右目用の第2の仮想カメラ)が設定される。
ゲーム成績演算部118はユーザのゲーム成績を演算する処理を行う。例えばユーザのゲームプレイにより獲得された得点、ポイントなどのゲーム成績の演算処理を行う。
表示処理部120(表示処理のプログラムモジュール)は、ゲーム画像の表示処理を行う。例えば処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、HMD200の表示部220に表示する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ178(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点。左目用、右目用の第1、第2の視点)から見える画像が生成される。なお、表示処理部120で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現することができる。
音処理部130(音処理のプログラムモジュール)は、処理部100で行われる種々の処理の結果に基づいて音処理を行う。具体的には、楽曲(音楽、BGM)、効果音、又は音声などのゲーム音を生成し、ゲーム音を音出力部192に出力させる。ゲーム中に出力(再生)される音のデータは音データ記憶部175に記憶される。なお音処理部130の音処理の一部(例えば3次元音響処理)を、HMD200の処理部240により実現してもよい。
出力処理部140は各種の情報の出力処理を行う。例えば出力処理部140は、記憶部170に情報を書き込む処理や、通信部196を介して情報を送信する処理を、出力処理として行う。例えば出力処理部140は、書き込み命令で指定された情報を、記憶部170に書き込む処理や、外部の装置(サーバ等)に対してネットワークを介して情報を送信する処理を行う。送信処理は、通信部196に情報の送信を指示したり、送信する情報を通信部196に指示する処理などである。
例えば本実施形態では、ゲーム処理部111は、複数のオブジェクトが配置される仮想空間(ゲーム空間)において、ユーザがプレイするゲームの処理を行う。例えばオブジェクト空間である仮想空間には、キャラクタ等の複数のオブジェクトが配置されており、ゲーム処理部111は、この仮想空間でのゲームを実現するための種々のゲーム処理(ゲーム進行処理、キャラクタ処理、オブジェクト空間設定処理、或いは仮想カメラ制御処理等)を実行する。そして表示処理部120は、仮想空間において所与の視点(左目用、右目用の第1、第2の視点)から見えるゲーム画像を、HMD200の表示部220(第1、第2のディスプレイ)に表示する処理を行う。即ち、仮想空間であるオブジェクト空間において、仮想ユーザ(ユーザ)の視点(仮想カメラ)から見えるゲーム画像を表示する処理を行う。
例えばHMD200を装着した現実世界のユーザが、後述の図4、図5の個室のプレイエリアにおいて移動したり、移動方向が変化したり、首を振ったり、しゃがんだりして、その位置、方向が変化すると、ユーザに対応する仮想空間の仮想ユーザの位置、方向も変化する。現実世界でのユーザの位置、方向は、HMD200のトラッキング処理により特定できるため、仮想空間での仮想ユーザの位置、方向も特定できる。ユーザ、仮想ユーザの位置、方向は、例えばユーザ、仮想ユーザの視点位置、視線方向でもある。仮想ユーザがキャラクタとして表示されない場合には、HMD200の表示画像は一人称視点の画像となり、仮想ユーザがキャラクタとして表示される場合には表示画像は三人称視点の画像になる。
なお、プレイエリア(行動エリア)は、例えばユーザが移動可能な範囲として設定されるエリアであり、例えばユーザがゲームプレイ等の行動を行うエリア(フィールド、スペース)として予め規定されているエリアである。このプレイエリア(広義には移動可能範囲)は、例えばユーザの位置情報等のトラッキングが可能な範囲を内包するエリアである。プレイエリアは、例えば周囲が壁で囲まれたエリアであってもよいが、オープンスペースのエリアであってもよい。
そして本実施形態では入力処理部102は、ユーザが装着するHMD200(頭部装着型表示装置)の位置の情報と、ユーザがユーザ音声を入力する音入力装置161の位置及び方向の少なくとも一方の情報を取得する。入力処理部102はHMD200の方向の情報を取得してもよい。HMD200、音入力装置161の位置、方向の情報は、例えばHMD200、音入力装置161のトラッキング処理を行うことで取得できる。トラッキング処理の詳細については後述する。この場合に例えば画像センサ(RGBセンサ)やデプスセンサなどのセンサを用いて、ユーザのスケルトン情報を取得して、スケルトン情報(姿勢情報)を用いて、HMD200、音入力装置161の位置、方向の情報を取得してもよい。例えばスケルトン情報に基づいて、ユーザの頭部の位置、方向を特定して、HMD200の位置、方向を特定してもよい。或いはスケルトン情報に基づいて、ユーザの手の位置、方向を特定して、音入力装置161の位置、方向を特定してもよい。
音処理部130は、音入力装置161により入力されたユーザ音声を含む音を、ユーザの周囲に配置されたスピーカ(ユーザの移動可能範囲に対応して設定されたスピーカ)に出力させる処理を行う。ユーザ音声は、例えばユーザの歌声、呼び声、掛け声、或いは会話(トーク)などである。このユーザ音声と、楽曲音(演奏音)、BGM又はゲーム音とがミキシングされた音が、ユーザの周囲に配置された1個又は複数個のスピーカから出力される。例えばスピーカは、実空間においてユーザが移動可能な範囲に配置されている。例えばユーザの周囲を囲むように複数のスピーカが配置されている。これらのスピーカは、プレイエリア(移動可能範囲)である個室の壁や天井に設置されるスピーカであってもよいし、オープンエリアのプレイエリアにおいてスタンドにより支持されて設置されるスピーカであってもよい。
そして音処理部130は、音入力装置161とHMD200との位置関係に基づいて、音入力装置161により入力されたユーザ音声についての処理を行う。例えばユーザ音声についての処理として、ユーザ音声の受け付けに関する処理やハウリング防止用の処理を行う。具体的には、ユーザ音声を受け付ける処理、ユーザ音声の受け付けをオフにする処理、音入力装置161の入力レベルを下げる処理、或いはスピーカ(音出力部192)の出力レベルを下げる処理などを行う。
音入力装置161とHMD200の位置関係は、例えば音入力装置161の位置及び方向の少なくとも一方と、HMD200の位置及び方向の少なくとも一方との関係である。音入力装置161の位置、方向は、音入力装置161自体の位置、方向であってもよいし、音入力装置161に取り付けられている入力装置(例えば図2(A)の160−1)の位置、方向などであってもよい。音入力装置161の方向は、例えば音入力装置161の向く方向であり、例えば音入力装置161の音の指向方向などである。HMD200の位置、方向は、HMD200自体の位置、方向(視点位置、視線方向)であってもよいし、HMD200の位置及び方向の少なくとも一方により特定されるユーザの部位(例えば口、頭部等)の位置、方向であってもよい。
また音処理部130は、音入力装置161とHMD200との位置関係が所与の条件を満たしたと判断した場合に、音入力装置161により入力されたユーザ音声を受け付ける。例えば音入力装置161の位置及び方向の少なくとも一方とHMD200位置及び方向の少なくとも一方との関係である位置関係が、予め定められた所与の条件を満たす関係であるか否かを判断する。この所与の条件は、例えば音入力装置161の音声入力の許可条件であり、ハウリングの非発生条件である。なお位置関係(第2の位置関係)が所与の条件を満たすか否かの判断処理は条件判断部132が行う。またハウリング防止用の処理はハウリング処理部134が行う。
そして音処理部130は、当該位置関係が所与の条件を満たしていると判断した場合には、音入力装置161により入力されたユーザ音声を受け付ける。例えばユーザ音声の入力をオン(有効)にして、ユーザ音声に基づく種々の音処理を行う。例えば音処理部130が音のミキシング処理を行う場合には、ミキシング処理でのユーザ音声の入力チャンネルをオンにする。そして音処理部130は、ユーザ音声と、それ以外の音(楽曲音、演奏音、BGM又はゲーム音等)とのミキシング処理などの音処理を行う。そしてユーザ音声を含む音(ユーザ音声がミキシングされた音)を、スピーカ(音出力部192)から出力させる。
一方、音処理部130は、音入力装置161とHMD200との位置関係が所与の条件を満たしていないと判断した場合には、ユーザ音声の受け付けをオフにする処理、音入力装置191の入力レベルを下げる処理、或いはスピーカ(音出力部192)の出力レベルを下げる処理などを行う。即ち、ハウリングを防止するための処理を行う。ユーザ音声の受け付けをオフにする処理は、ユーザ音声の入力をオフ(無効)にする処理であり、例えばミキシング処理でのユーザ音声の入力チャンネルをオフ(遮断)にする処理である。音入力装置191の入力レベルを下げる処理は、当該入力レベルを所定レベルまで下げる処理である。例えばハウリングが生じないような低いレベルまで、入力レベルを下げる処理である。音入力装置191の入力レベルは、例えばミキシング処理におけるユーザ音声の入力チャンネルの入力レベルである。スピーカの出力レベルを下げる処理は、スピーカの出力レベル(音量)を所定レベルまで下げる処理である。例えばハウリングが生じないような低いレベルまで、出力レベル(音量)を下げる処理である。
また音処理部130は、音入力装置161の位置とHMD200の位置とに基づいて、上記の位置関係が所与の条件を満たしたか否かを判断する。例えば音入力装置161の位置とHMD200の位置とが所与の条件を満たす関係にあるか否かを判断する。この場合の音入力装置161の位置は、音入力装置161自体の位置であってもよいし、音入力装置161に取り付けられている操作情報の入力装置(ゲームコントローラ)の位置であってもよい。HMD200の位置は、HMD200自体の位置であってもよいし、HMD200の位置から特定されるユーザの部位(口、頭部)の位置であってもよい。
例えば音処理部130は、音入力装置161とHMD200との距離が所与の距離以下である場合に、位置関係が所与の条件を満たしたと判断して、音入力装置161により入力されたユーザ音声を受け付ける。例えば、音入力装置161がHMD200の近くにあると判断される場合には、ユーザ音声を受け付け、音入力装置161がHMD200の遠くにあると判断される場合には、ユーザ音声の受け付けをオフにするなどのハウリング防止用の処理を行う。音入力装置161とHMD200との距離は、音入力装置161の位置とHMD200の位置とに基づき求めることができる。この距離は、例えば音入力装置161自体の位置及び音入力装置161に取り付けれた入力装置(ゲームコントローラ)の位置のいずれか一方と、HMD200自体の位置及びHMD200の位置から特定されるユーザの部位(口、頭部)の位置のいずれか一方との距離である。
また音処理部130は、音入力装置161の方向とHMD200の位置とに基づいて、位置関係が所与の条件を満たしたか否かを判断してもよい。例えば音入力装置161(ゲームコントローラ)の向く方向とHMD200の位置(口、頭部の位置)との関係を判断して、位置関係が所与の条件を満たしたか否かを判断する。この場合に音入力装置161の方向に加えて音入力装置161の位置も判断要素にして、位置関係を判断してもよいし、HMD200の位置に加えてHMD200の方向(視線方向)も判断要素にして、位置関係を判断してもよい。
また音処理部130は、音入力装置161の音の指向方向が、HMD200の方を向いていると判断した場合に、位置関係が所与の条件を満たしたと判断して、音入力装置161により入力されたユーザ音声を受け付ける。音入力装置161の音の指向方向は、音入力装置161が音入力について指向性を有する場合に、その指向性の方向である。この指向方向は例えば音入力装置161が向く方向に基づき特定できる。また音入力装置161の指向方向が、HMD200の方を向いているか否かは、音入力装置161の指向方向(向く方向)とHMD200自体の位置とに基づき判断してもよいし、或いは音入力装置161の指向方向(向く方向)と、HMD200の位置により特定されるユーザの部位(口、頭部)の位置とに基づき判断してもよい。
また音処理部130は、音入力装置161とスピーカとの第1の位置関係に対するHMD200の第2の位置関係に基づいて、音入力装置161により入力されたユーザ音声についての処理を行ってもよい。即ち、音入力装置161とスピーカとの関係に対するHMD200の関係を判断して、ユーザ音声の受け付けに関する処理やハウリング防止用の処理を行う。例えば音入力装置161とスピーカとの第1の位置関係から、ハウリングの条件が満たされていると判断される場合にも、この第1の位置関係に対するHMD200の第2の位置関係から、ハウリングが発生しないと判断される場合には、音入力装置161により入力されたユーザ音声を受け付ける。
具体的には音処理部130は、第2の位置関係が、所与の条件を満たしたと判断した場合に、音入力装置161により入力されたユーザ音声を受け付ける。例えば音入力装置161とスピーカとの第1の位置関係に対するHMD200の第2の位置関係が、予め定められた所与の条件を満たす関係であるか否かを判断する。そして当該第2の位置関係が所与の条件を満たすと判断した場合には、音入力装置161により入力されたユーザ音声を受け付ける。例えばユーザ音声の入力をオンにして、ユーザ音声に基づく種々の音処理を行う。例えば音処理部130がミキシング処理を行う場合には、ミキシング処理でのユーザ音声の入力チャンネルをオンにする。
一方、音処理部130は、第2の位置関係が所与の条件を満たしていないと判断した場合に、ユーザ音声の受け付けをオフにする処理、音入力装置161の入力レベルを下げる処理、或いはスピーカの出力レベルを下げる処理を行う。即ち、ハウリングを防止するための処理を行う。例えばユーザ音声の入力をオフにする処理を行う。或いは、音入力装置191の入力レベルを所定レベル(ハウリングが生じない入力レベル)まで下げる処理を行う。或いは、スピーカの出力レベルを所定レベル(ハウリングが生じない出力レベル)まで下げる処理を行う。
また音処理部130は、音入力装置161とスピーカとの間にHMD200が存在すると判断した場合に、第2の位置関係が所与の条件を満たしたと判断して、音入力装置161により入力されたユーザ音声を受け付ける。例えば音入力装置161とスピーカとの第1の位置関係が、ハウリングが発生するような関係であったとしても、音入力装置161とスピーカとの間にHMD200が存在する場合には、ユーザ音声を受け付ける。ここで音入力装置161とスピーカとの間にHMD200が存在するか否かの判断は、HMD200自体の位置に基づき判断してもよいし、HMD200の位置により特定されるユーザの部位(口、頭部)の位置に基づき判断してもよい。
また音処理部130は、音入力装置161の音の指向方向がスピーカの方を向いている場合にも、当該指向方向がHMD200の方を向いていると判断した場合には、第2の位置関係が所与の条件を満たしたと判断して、音入力装置161により入力されたユーザ音声を受け付ける。例えば音入力装置161とスピーカとの第1の位置関係が、音入力装置161の音の指向方向がスピーカの方を向いているというようにハウリングが発生するような関係であったとする。このような場合にも、音入力装置161の指向方向がHMD200の方を向いており、第2の位置関係が所与の条件を満たしていると判断される場合には、ユーザ音声を受け付ける。なお、音入力装置161の指向方向がHMD200の方を向いているか否かは、HMD200自体の位置に基づき判断してもよいし、HMD200の位置により特定されるユーザの部位(口、頭部)の位置に基づき判断してもよい。
2.本実施形態の手法
次に本実施形態の手法について具体的に説明する。なお、以下では本実施形態の手法が適用されるゲームが、歌の演奏を行う音楽ゲーム(ライブステージのゲーム、カラオケゲーム等)である場合を主に例にとり説明する。しかしながら、本実施形態の手法が適用されるゲームは、これに限定されず、例えば弦楽器(ギター等)、打楽器(ドラム、太鼓等)、或いは鍵盤楽器(キーボード、ピアノ)等の楽器を演奏する音楽ゲーム(リズムや演奏の上手さを競うゲーム)などであってもよい。また本実施形態の手法は、異性キャラクタ等とのコミュニケーションゲーム(人間関係シミュレーションゲーム)、トークバトルなどを行う会話ゲーム(法廷闘争ゲーム、掛け合い漫才ゲーム)、戦闘ゲーム、RPGゲーム、ロボットゲーム、カードゲーム、スポーツゲーム、或いはアクションゲーム等の種々のゲームや、映像コンテンツや音楽コンテンツの再生にも適用可能である。
2.1 HMD、プレイエリア
図2(A)に本実施形態のシミュレーションシステムに用いられるHMD200の一例を示す。図2(A)に示すようにHMD200には複数の受光素子201、202、203(フォトダイオード)が設けられている。受光素子201、202はHMD200の前面側に設けられ、受光素子203はHMD200の右側面に設けられている。またHMDの左側面、上面等にも不図示の受光素子が設けられている。
またユーザPLは、左手、右手で入力装置160−1、160−2を持っている。入力装置160−1、160−2には、HMD200と同様に複数の受光素子(不図示)が設けられている。また入力装置160−1にはマイク162(広義には音入力装置)が設けられており、ユーザPLは歌の演奏ゲームにおいてマイク162に口を向けて歌うことになる。また入力装置160−1、160−2はゲームコントローラとしても機能し、不図示の操作ボタン、方向指示キー等が設けられている。なおユーザが持つ入力装置160の個数は1個であってもよい。
またHMD200には、ヘッドバンド260等が設けられており、ユーザPLは、より良い装着感で安定的に頭部にHMD200を装着できるようになっている。そしてユーザPLは、ゲームコントローラとして機能する入力装置160−1、160−2を操作したり、頭部の頷き動作や首振り動作を行うことで、操作情報を入力し、ゲームプレイを楽しむ。頷き動作や首振り動作は、HMD200のセンサ部210等により検出できる。
図2(B)に示すように、ユーザPLのプレイエリアにはベースステーション280、284が設置されている。ベースステーション280には発光素子281、282が設けられ、ベースステーション284には発光素子285、286が設けられている。発光素子281、282、285、286は、例えばレーザー(赤外線レーザー等)を出射するLEDにより実現される。ベースステーション280、284は、これら発光素子281、282、285、286を用いて、例えばレーザーを放射状に出射する。そして図2(A)のHMD200に設けられた受光素子201〜203等が、ベースステーション280、284からのレーザーを受光することで、HMD200のトラッキングが実現され、ユーザPLの頭の位置や向く方向(広義にはユーザの位置や方向)を検出できるようになる。また入力装置160−1、160−2に設けられた不図示の受光素子が、ベースステーション280、284からのレーザーを受光することで、入力装置160−1、160−2のトラッキングが実現され、入力装置160−1、160−2の位置や方向を検出できるようになる。これにより、例えばゲーム画像に、入力装置160−1に対応するマイクの画像等を表示することが可能になる。
図3(A)にHMD200の他の例を示す。図3(A)では、HMD200に対して複数の発光素子231〜236が設けられている。これらの発光素子231〜236は例えばLEDなどにより実現される。発光素子231〜234は、HMD200の前面側に設けられ、発光素子235や不図示の発光素子236は、背面側に設けられる。これらの発光素子231〜236は、例えば可視光の帯域の光を出射(発光)する。具体的には発光素子231〜236は、互いに異なる色の光を出射する。そして図3(B)に示す撮像部150をユーザPLの前方側に設置し、この撮像部150により、これらの発光素子231〜236の光を撮像する。即ち、撮像部150の撮像画像には、これらの発光素子231〜236のスポット光が映る。そして、この撮像画像の画像処理を行うことで、ユーザPLの頭部(HMD)のトラッキングを実現する。即ちユーザPLの頭部の3次元位置や向く方向(ユーザの位置、方向)を検出する。
例えば図3(B)に示すように撮像部150には第1、第2のカメラ151、152が設けられており、これらの第1、第2のカメラ151、152の第1、第2の撮像画像を用いることで、ユーザPLの頭部の奥行き方向での位置等が検出可能になる。またHMD200に設けられたモーションセンサのモーション検出情報に基づいて、ユーザPLの頭部の回転角度(視線)も検出可能になっている。従って、このようなHMD200を用いることで、ユーザPLが、周囲の360度の全方向うちのどの方向を向いた場合にも、それに対応する仮想空間(仮想3次元空間)での画像(ユーザの視点に対応する仮想カメラから見える画像)を、HMD200の表示部220に表示することが可能になる。なお、発光素子231〜236として、可視光ではなく赤外線のLEDを用いてもよい。また、例えばデプスカメラ等を用いるなどの他の手法で、ユーザの頭部の位置や動き等を検出するようにしてもよい。
なお、ユーザの視点位置、視線方向(ユーザの位置、方向)を検出するトラッキング処理の手法は、図2(A)〜図3(B)で説明した手法には限定されない。例えばHMD200に設けられたモーションセンサ等を用いて、HMD200の単体でトラッキング処理を実現してもよい。即ち、図2(B)のベースステーション280、284、図3(B)の撮像部150などの外部装置を設けることなく、トラッキング処理を実現する。或いは、公知のアイトラッキング、フェイストラッキング又はヘッドトラッキングなどの種々の視点トラッキング手法により、ユーザの視点位置、視線方向などの視点情報等を検出してもよい。
図4、図5に本実施形態のゲームが実現されるプレイエリアの一例を示す。このプレイエリアは、ボックス状の防音の個室により実現される。図4、図5に示すようにボックスの個室は、壁301、302、303、304、天井305、ドア306を有する。壁301、302、303、304、天井305の内側にはクッション材としても機能する防音材311、312、313、314、315が設けられている。また天井305には前述のベースステーション280、284や照明器具290、292が設置されている。
ユーザPLの前側にはフロントスピーカ330、331、センタースピーカ332が設置され、後ろ側にはリアスピーカ333、334、ウーハー335が設置される。これらのスピーカによりサラウンド音響が実現される。そしてウーハー335が収容されている収容ボックス内に、巻き取り装置50が収容されている。この巻き取り装置50は回転リール62を有しており、ケーブル20は、収容ボックス(棚)に設けられたケーブル通過口52を通って、回転リール62により巻き取られる。
ユーザPLは図5のドア306を開けて個室内に入り、ゲームをプレイする。この個室内の空間がユーザPLのプレイエリア(プレイ空間、実空間)になる。そして図5に示すように、ボックスの個室のプレイエリアには、ユーザPLの移動範囲(移動可能範囲)として想定されるエリアARが設定される。このエリアAR内では、ステーション280、284等を用いたユーザPLの位置、方向(視点位置、視線方向)のトラッキングが可能になっている。一方、エリアARの境界BDを越えた位置では、確実なトラッキングを実現できない。またユーザPLがエリアARの境界BDを越えると、壁301、302、303、304にぶつかるおそれがあり、安全面の上で望ましくない。エリアARの設定は、例えばゲーム装置のイニシャライズ設定などにより、その範囲を設定可能になっている。
そして図4、図5に示すように、ユーザPLは腰ベルト30を装着している。腰ベルト30には収容部32が取り付けられており、この収容部32内にケーブル20の中継点RPが設けられる。ケーブル20は、HMD200から中継点RPを経由して巻き取り装置50により巻き取られる。ケーブル部分21とケーブル部分22の間のポイントが中継点RPになる。なおケーブル20には、ユーザPLが基準位置に立っている際にケーブル20を弛ませるためのストッパー26が設けられている。
2.2 ゲームの概要
次に、本実施形態の手法により実現されるゲームの概要について説明する。本実施形態により実現されるゲームは、本物のライブステージのような臨場感の中、バンドのボーカルになりきって、ボーカル演奏を行う音楽ゲームである。ユーザは、大観衆を目前にして歌うという、かつてない高揚感を感じつつ、自分のファンからの歓声を全身に浴びる強烈な快感を得ることができる。HMDと大出力のサラウンドスピーカーにより、まるで本物のライブステージに出演し、自分のファンに囲まれて歌っているかのような、臨場感を得ることができる。
ステージの周りの観客は、ユーザのボーカル演奏やステージアクションに反応して、派手な声援や様々なアクションをインタラクティブに返してくる。HMDによる、まるでその場に立っているかのような臨場感のライブステージの上で、表情まで見える最前列のファンをはじめ、会場を埋める満員の観客の前で、バンドメンバーの演奏と共に、自分の歌とライブパフォーマンスを行って、観客の期待に応える。
ユーザは共有スペースに設けられた受け付けスペースで、入室時間の予約やプレイ設定を行い、図4、図5に示すようにクッション材(防音材)が貼られた安全な個室内で、ライブ出演体験を楽しむ。
ユーザは、ステージ出演前のプレイ設定において、コンサート出演モードを選択する。その後、歌う曲の選択を行い、出演ステージを選択する。そして図2(A)、図2(B)等で説明したHMD200、入力装置160−1、160−2などのデバイスや、腰ベルト30を装着する。店舗のオペレータが、注意事項等を説明し、ユーザのデバイス等の装着や調整を補助する。プレイエリアである個室空間のキャリブレーション(イニシャライズ)は、オペレータが事前に行う。
図2(A)の入力装置160−1は、マイク&ゲームコントローラになっている。VR(バーチャルリアリティ)空間内では、ユーザ(仮想ユーザ)の腕や手は描画されないが、ユーザが手で持っている入力装置160−1等の位置がセンシングされ、同じ位置にマイク画像が描画され、ユーザの動きに応じてマイク画像が動くようになる。
ユーザは、VR空間のスタンバイルームで、ボーカルのキー調整を行う。スタンバイルームは、ステージの下の待機スペースである。VR空間においてユーザが立っているスペースは大きなリフトになっていて、本番時にはステージ上にせり上がる。
リフトが上昇しステージが近づいて来るのに合わせて、遠くから聞こえていたホールの歓声や掛け声が徐々に大きくなり、迫力を増し、且つ、生々しく変化する。ステージ上にユーザが出現すると、ユーザに向けて前方から逆光のスポットライトが当てられ、ユーザの登場で最高潮に達した大歓声が起こる。
ライブの本番ではユーザは、思う存分、ステージでの熱唱を楽しむ。図6、図7は、ステージ上のユーザのHMD200に表示されるゲーム画像(VR空間での画像)の例である。図6、図7に示すようにユーザの目の前には満員の観客が映し出される。図6はユーザが正面を向いた場合のゲーム画像であり、図7は、ユーザが右方向を向いた場合のゲーム画像である。
図6、図7に示すように、HMD200を用いる本実施形態のゲーム装置では、ユーザの全周囲の方向に亘って、仮想空間であるVR空間の世界が広がる。例えばHMD200を装着したユーザが前方向を向けば、図6のゲーム画像がHMD200に表示され、右方向を向けば、図7のゲーム画像が表示される。後ろ方向を向けば、演奏バンドなどの画像が表示される。従って、多数の観客が歓声を上げる巨大なコンサートホールにおいて、ボーカル演奏しているかのような仮想現実感をユーザに与えることができ、ゲームへの没入度等を格段に向上できる。
また本実施形態では、曲の抑揚に合わせて観客の動き(アクション)や歓声が変化する。またユーザのアクションに応じるように、観客の動きや歓声が変化する。例えば図6において、ユーザが立つステージの近くの観客AD1〜AD7は、例えば多数のポリゴンで構成されるポリゴンモデルのオブジェクトにより表現されている。図7の観客AD8〜AD11も同様である。一方、ステージから遠い位置にいる観客は、ユーザの視線に正対するビルボードポリゴンに描かれた画像により表現されている。
ポリゴンモデルの観客(AD1〜AD11)は、例えばモーションデータによるモーション再生によりその動きが表現されている。これらの観客は、曲のリズムにのって基本アクション(基本モーション)を行う。観客は、ユーザの声や動きに応じも、インタラクティブにリアクションする。ユーザが、例えば「特定の方向を向いて歌う」、「手を振る」といったアクションを行うことで、その方向の観客のテンションが上がり、基本アクションが、1段階、派手になったり、或いは曲のリズムとは関係ない突発的な盛り上がりアクションを行うようになる。
図8は、VR空間においてユーザPL(仮想ユーザ)が立つステージSGを、上方から俯瞰した様子を示す図である。ステージSGは境界BDSにより区画されており、ステージSGの周りの観客席SE1、SE2、SE3には、図6、図7に示すようにアクションする観客が配置されている。このステージSGの境界BDSは、例えば図5の現実世界のプレイエリアのエリアARの境界BDに対応している。一例としては、図5の現実世界のエリアARの境界BDから例えば所定距離だけ内側に対応する位置に、VR空間でのステージSGの境界BDSが設定されている。
本実施形態ではユーザは、観客を盛り上げるためのパフォーマンスを行うことができる。ユーザに向けて何らかのアピールのアクションをしてくる観客が、当該パフォーマンスのターゲットになる。例えば図6では、観客AD4が、右手を高く上げてユーザに対してアピールのアクションを行っており、この観客AD4がターゲットになる。また図7ではアピールのアクションを行っている観客AD10がターゲットになる。
これらのアピールする観客に対して、ユーザがアクションを行うことで、これらの観客の熱狂度パラメータ(熱狂度ゲージ)の値が上昇する。そして熱狂度パラメータが最大値になると、これらの観客が、大喜びを表現する熱狂アクションを行うようになる。
アピールする観客に対してユーザが行う第1のアクションは、そのターゲットの観客の方に視線を向けて歌うアクションである。この第1のアクションが行われるのは、楽曲の歌唱パートと間奏パートのうち、歌唱パートにおいてである。
アピールする観客に対してユーザが行う第2のアクションは、観客に対して呼びかけなどの発声を行うアクションである。ユーザの呼びかけの発声に対して、観客は声援や掛け声や拍手などで応答する。ユーザは、観客からの声援や掛け声や拍手に合わせて、腕を上げるアクションなどを行う。
これらの第1、第2のアクションのターゲットとなる観客は、例えばランダムにコンサートホール内で発生する。ユーザの1曲の演奏におけるターゲットの数は所定数に決まっている。ターゲットとなる所定数の全ての観客について、熱狂度パラメータが最大値になり盛り上げに成功すると、全クリアになる。例えばターゲットとなる観客の数が10人である場合に、これらの10人の全ての観客の熱狂度パラメータが最大値に達すると、ターゲットの全クリアになる。この場合に、ターゲットのクリア数に応じて、最後のステージエフェクトの種類が変化する。例えば10人のターゲットの全てをクリアした場合には、最後のステージにおいて最も派手なエフェクトが発生する。また例えば8人のターゲットをクリアした場合には、5人のターゲットをクリアした場合に比べて、より派手なエフェクトが発生する。
また本実施形態ではユーザの歌唱力が評価される。即ち、ユーザの歌の音程とリズムが検知されて評価される。具体的には、リズムに合わせた発声が出来たかを評価する。例えば、ベース又はドラムの演奏の指定タイミングに合わせて、ユーザが発声できると、ポイントが加算される。また、ロングトーンの上手さや、休符についての正確性なども評価される。また音程の正確性も評価する。即ち、ユーザの歌の音程判定を行い、正解な音程で歌った音程をグラフ的に表示する。なお、ユーザの音量がゼロの状態が一定時間、継続すると、観客の多くは待機モーションに移行し、その間はユーザはポイント加算を得ることができない。
ユーザの演奏が終了し、ライブステージを通してのユーザの評価結果が一定基準を満たすと、観客はアンコールを求めて来る。そのアンコールに応えることで、ユーザは更に1曲、追加で演奏できるようになる。そしてライブステージの終了時には、フェードアウトする歓声の中で、照明はさらに暗くなり、ブラックアウトして終了する。その後、「お疲れ様でした、HMDを外してください」といった表示及びガイド音声が流れる。そしてユーザは装備を外して個室から退室し、ゲームプレイの終了となる。
2.3 ハウリングの発生
図9(A)では、ユーザPLは、移動可能範囲であるプレイエリアで移動可能になっている。このプレイエリアは図4、図5で説明した個室のエリアである。そして、このプレイエリア(移動可能範囲)の周囲には、例えば5つのスピーカSP1、SP2、SP3、SP4、SP5が配置されている。SP1、SP3はフロントスピーカであり、SP2はセンタースピーカである。SP4、SP5はリアスピーカである。このようなスピーカSP1〜SP5を配置することで、いわゆるサラウンド音響を実現でき、奥行き感や広がり感が表現された臨場感のある音響をユーザPLに提供できる。
そしてユーザPLは、HMD200を頭部に装着すると共にその手にマイク162を持って、図6〜図8で説明したライブステージのゲームを楽しむ。なお、以下では、音入力装置161が、図2(A)に示すようなハンドマイク形状のマイク162である場合を例にとり説明する。
図9(A)のようにユーザPLはHMD200を装着しており、HMD200によりその視界が覆われているため、プレイエリアのスピーカSP1〜SP5の位置を把握することが難しい。例えばスピーカSP1〜SP5から出力されている音の場所を聞き分けることで、スピーカSP1〜SP5の位置を、ある程度把握することも可能であるが、ユーザPLはゲームに熱中しているため、実際にはその位置を殆ど把握できない。
そして図9(B)では、このようにスピーカSP1〜SP5の位置を把握できないユーザPLが、スピーカSP3に対してマイク162を向けてしまっている。即ち、マイク162の音の指向性の方向が、スピーカSP3の方を向いている。このような状況が発生すると、スピーカSP3からの音をマイク162が拾ってしまうことで、ハウリングが発生してしまう。即ち、スピーカSP3から出力された音がマイク162に入り、更にフィードバックされることで、特定の周波数での発振現象であるハウリングが発生する。ハウリングが発生すると、不快感を伴う中〜高周波数のハウリング音がスピーカSP1〜SP5から出力されるようになる。そして、このようなハウリング音が出力されると、仮想現実への没入感が大きく阻害されてしまう。
また図6、図7で説明したように本実施形態のゲームでは、ユーザPLが観客に対して様々なアクションを行い、そのアクションの結果が評価される。例えば図10ではユーザPLは、観客ADからの歓声や掛け声に応えるために、視線VLPを観客ADの方に向けると共に、マイク162を観客ADの方に向けている。そしてマイク162に向かって歓声や掛け声を出すように促している。ユーザPLがこのようなアクションを行うことで、観客ADの熱狂度パラメータ(盛り上がり度パラメータ)が上昇して、ユーザPLのパフォーマンスが高く評価されるようになる。
そして、このようにマイク162を観客ADに向けるようなアクションをユーザPLが行うと、図9(B)のようにマイク162の指向方向がスピーカの方に向いてしまい、ハウリングが発生する事態が頻繁に生じるようになる。
2.4 マイクとHMDの位置関係に基づくユーザ音声処理
以上のような問題を解決するために本実施形態では、マイク162とHMD200の位置関係を判断して、マイク162により入力されたユーザ音声についての処理を行うようにしている。
例えば図11(A)において、ユーザPLが装着するHMD200の位置PHの情報と、ユーザPLがユーザ音声(歌声、呼び声又は掛け声等)を入力するマイク162(広義には音入力装置)の位置PMの情報を取得する。例えば図2(A)〜図3(B)で説明したようなトラッキング処理を行うことで、HMD200の位置PHの情報やマイク162の位置PMの情報を取得する。なおトラッキング処理により、HMD200やマイク162の方向の情報を取得してもよい。
HMD200には図6、図7に示すようなVR空間の画像が表示される。そしてマイク162により入力されたユーザ音声を含む音は、図9(A)のようにユーザPLの周囲に配置されたスピーカSP1〜SP5から出力される。例えば図6、図7のライブステージのゲームであれば、ユーザPLがマイク162に入力した歌声と、楽曲音(演奏音)とがミキシングされて、サラウンド処理等の音声処理が行われた後、スピーカSP1〜SP5から出力される。
そして本実施形態ではマイク162とHMD200との位置関係に基づいて、マイク162により入力されたユーザ音声についての処理が行われる。例えばマイク162とHMD200との位置関係が所与の条件を満たしたと判断した場合に、マイク162により入力されたユーザ音声を受け付ける。この位置関係は、トラッキング処理等により取得されたマイク162の位置PMの情報やHMD200の位置PHの情報から判断できる。
なお、以下に説明する本実施形態において、マイク162の位置は、マイク162自体の位置である必要はなく、例えば図2(A)のようにマイク162に取り付けられる入力装置160−1(ゲームコントローラ)の位置や、或いはマイク162を持つ手の位置等であってもよい。マイク162の方向の情報も、入力装置160−1の方向や、或いは手の方向等であってもよい。またHMD200の位置も、HMD200自体の位置である必要はなく、HMD200の位置により特定されるユーザPLの口又は頭部等の部位の位置であってもよい。
例えば図11(A)のように、マイク162とHMD200の位置関係が、マイク162をHMD200(ユーザの口)の方に近づけている位置関係である場合には、位置関係が所与の条件(マイク入力の受け付け許容条件、ハウリングの非発生条件)を満たしていると判断する。そしてマイク162により入力された歌声等のユーザ音声を受け付ける。例えば音のミキシング処理においてユーザ音声の入力チャンネルをオンにする。
一方、図11(B)のように、マイク162とHMD200の位置関係が、マイク162をHMD200(ユーザの口)から遠ざけている位置関係である場合には、位置関係が所与の条件を満たしていないと判断する。このような位置関係である場合には、図11(B)のようにマイク162の方向(指向方向)がスピーカSPの方に向いてしまい、ハウリングが発生するおそれがあるからである。そして図11(B)のように位置関係が所与の条件を満たしていない場合には、ユーザ音声の受け付けをオフにする処理を行う。例えば音のミキシング処理においてユーザ音声の入力チャンネルをオフ(遮断)にする。或いはマイク162の入力レベルを下げる処理を行ってもよい。例えば音のミキシング処理において、ユーザ音声の入力チャンネルの入力レベルを、所定レベル(ハウリングが発生しない入力レベル)まで下げる処理を行う。或いは、スピーカSP1〜SP5の出力レベルを下げる処理を行ってもよい。例えばスピーカSP1〜SP5の出力レベル(音量)を、所定レベル(ハウリングが発生しない出力レベル)まで下げる処理を行う。このような処理を行うことで、図11(B)のような位置関係になって、マイク162の方向がスピーカSPの方を向いてしまった場合にも、ハウリングが発生するのを効果的に防止できるようになる。
具体的には本実施形態では、マイク162の位置PMとHMD200の位置PHとに基づいて、位置関係が所与の条件を満たしたか否かを判断している。例えば図12(A)では、マイク162の位置PMとHMD200の位置PHとに基づいて、マイク162とHMD200との距離LHMを求める。そして図12(A)のように距離LHMが所与の距離(しきい値距離)以下である場合には、位置関係が所与の条件を満たしていると判断して、マイク162により入力されたユーザ音声を受け付ける。
即ち、距離LHMが短い場合には、ユーザPLがマイク162を口元(HMD)の方に近づけており、ユーザ音声を入力しようとしていると考えられる。従って、この場合には当該ユーザ音声を受け付けて、マイク入力を可能にする。
そして図12(A)のようにマイク162を口元の方に近づけている場合には、例えばユーザPLの頭部の後ろ側にスピーカが存在していたとしても、当該スピーカからの出力音は、頭部が障害物となってマイク162には届かない。従って、ハウリングは発生せず、マイク入力をオンにしても問題は生じない。
一方、図12(B)のように、距離LHMが所与の距離よりも長い場合には、位置関係が所与の条件を満たしていないと判断して、ハウリング防止用の処理を行う。例えばユーザ音声の受け付けをオフにする処理(マイク入力をオフにする処理)、或いはマイク162の入力レベルを下げる処理、或いはスピーカSPの出力レベルを下げる処理を行う。このようにすれば、図12(B)に示すようにマイク162が向く方向にスピーカSPが存在したとしても、ハウリングが発生しないようになり、ユーザPLの仮想現実感が阻害されてしまうのを防止できる。
また本実施形態では図13(A)、図13(B)に示すように、マイク162の方向DMとHMD200の位置PHとに基づいて、マイク162とHMD200の位置関係が所与の条件(マイク入力許可条件、ハウリング非発生条件)を満たしたか否かを判断してもよい。例えば図13(A)ではマイク162の方向DMがHMD200の方(ユーザの口の方)を向いている。即ち、マイク162の指向方向である方向DMがHMD200の方を向いていると判断され、マイク162とHMD200の位置関係が所与の条件を満たしていると判断される。従って、マイク162により入力されたユーザ音声を受け付ける。即ちマイク162の入力チャンネルをオンにして、マイク入力を可能にする。
一方、図13(B)では、マイク162の方向DM(指向方向)がHMD200の方(ユーザの口の方)を向いていないと判断され、マイク162とHMD200の位置関係が所与の条件を満たしていないと判断される。従って、マイク162により入力されたユーザ音声を受け付けず、マイク162の入力チャンネルをオフにする。或いは、マイク162の入力レベルを下げる処理や、スピーカSPの出力レベルを下げる処理などのハウリング防止用の処理を行う。こうすれば、図13(B)に示すように、マイク162が向く方向DMにスピーカSPが存在したとしても、ハウリングが発生しないようになり、ユーザPLの仮想現実感が阻害されてしまうのを防止できる。
なお図13(A)、図13(B)に示す位置関係の判断処理の際のHMD200の位置PHは、位置PHに基づき特定される口などの位置であってもよい。例えばマイク162の方向DMがユーザPLの口の方を向いていた場合には、ユーザ音声を受け付け(マイク入力をオン)、そうでない場合にはハウリング防止用の処理を行う。或いは、HMD200の向く方向(視線方向)についても判断要素にして、図13(A)、図13(B)の位置関係を判断してもよい。例えばマイク162がHMD200(口)の方を向いており、且つ、HMD200の方向(ユーザの視線)もマイク162の方を向いていた場合に、ユーザ音声を受け付けるようにしてもよい。
図14、図15は本実施形態の処理例を示すフローチャートである。図13はマイク162の位置とHMD200の位置に基づくユーザ音声についての処理を説明するフローチャートである。
まず、HMD200の位置の情報とマイク162の位置や方向の情報を取得する(ステップS1)。即ちHMD200、マイク162のトラッキング処理等を行うことで、これらの情報を取得する。次にマイク162とHMD200との距離が所与の距離以下であるか否かを判断する(ステップS2)。そして図12(A)のように距離LHMが所与の距離以下である場合には、マイク162により入力されたユーザ音声を受け付ける(ステップS3)。即ちマイク入力をオンにする。一方、図12(B)のように距離LHMが所与の距離よりも遠い場合には、ユーザ音声の受け付けをオフにする処理、或いはマイク162の入力レベルを下げる処理、或いはスピーカの出力レベルを下げる処理を行う(ステップS4)。即ちハウリング防止用の処理を行う。
図14はマイク162の方向とHMD200の位置に基づくユーザ音声についての処理を説明するフローチャートである。
まず、HMD200の位置の情報とマイク162の位置や方向の情報を取得する(ステップS11)。次にマイク162の指向方向がHMD200(ユーザの口)の方を向いているか否かを判断する(ステップS12)。そして図13(A)のようにマイク162の指向方向がHMD200の方を向いている場合には、マイク162により入力されたユーザ音声を受け付ける(ステップS13)。一方、図13(B)のように、マイク162の指向方向がHMD200の方を向いていない場合には、ユーザ音声の受け付けをオフにするなどのハウリング防止用の処理を行う(ステップS14)。
以上のように本実施形態ではマイク162とHMD200の位置関係を判断して、マイク入力を受け付ける処理やハウリング防止用の処理などのユーザ音声処理を行っている。このようにすることで、ユーザ音声のマイク入力に起因するハウリングの発生を、少ない処理負荷の処理で防止でき、ユーザの仮想現実感の低下を防止できる。
例えば本実施形態では、HMD200のトラッキング処理を行うことで、ユーザの位置、方向を特定している。そしてユーザの位置、方向の変化に伴い仮想空間内の仮想ユーザ(画面には表示されない仮想的なユーザ)の位置、方向を変化させることで、図6、図7に示すような一人称視点での画像を生成している。このような一人称視点の画像を表示することで、ユーザは、あたかも仮想空間の中に入り込んだかのような仮想現実を感じながら、ゲーム等をプレイできるようになる。
しかしながら、HMD200を装着することで視界が覆われており、上述のように仮想現実の世界に入り込んだユーザには、実空間でのスピーカの位置を認識することは困難である。このため図9(B)に示すようにマイク162の方向がスピーカSP3の方を向いてしまい、ハウリングが発生する。
そこで本実施形態では、仮想現実の実現のために行われるトラッキング処理により取得されたHMD200やマイク162の位置や方向の情報を有効活用して、ハウリングの発生を防止している。
即ち、トラッキング処理によりHMD200やマイク162の位置等の情報を取得できれば、図12(A)のようにユーザPLがマイク162をHMD200の方に近づけているという位置関係を判別できる。そして図12(A)の位置関係の場合には、ユーザPLがマイク162に向かって音声入力している状態であると判断できるため、マイク入力をオンにして、ユーザ音声を受け付ける。一方、図12(B)のように、マイク162をHMD200の方から離している位置関係の場合には、マイク162に音声入力している状態ではないと判断できる。従って、マイク入力をオフにするなどのハウリング防止用の処理を行う。こうすることで図9(A)のようにマイク162の方向がスピーカSP3の方を向いてしまった場合にも、ハウリングが発生するのを防止できるようになる。
またトラッキング処理によりHMD200やマイク162の位置や方向の情報を取得できれば、図13(A)のようにユーザPLがマイク162の方向をHMD200(口、頭部)の方に向けているという位置関係を判別できる。そして図13(A)の位置関係の場合には、ユーザPLがマイク162に向かって音声入力している状態であると判断できるため、マイク入力をオンにして、ユーザ音声を受け付ける。一方、図13(B)のように、マイク162をHMD200の方に向けていない位置関係の場合には、マイク162に音声入力している状態ではないと判断できる。従って、マイク入力をオフにするなどのハウリング防止用の処理を行う。
このようにすることで本実施形態では、HMD200を用いたバーチャルリアリティの構築と、マイク162の音声入力を原因とするハウリングの発生の防止とを、両立して実現することに成功している。
2.5 マイクとスピーカとHMDの位置関係に基づくユーザ音声処理
以上では、マイク162とHMD200の位置関係だけを判断して、ユーザ音声についての処理を行っていたが、本実施形態の手法はこれ限定されず、更にスピーカとの関係も判断要素にして、ユーザ音声についての処理を行ってもよい。
具体的には図16(A)、図16(B)に示すように、マイク162とスピーカSPとの第1の位置関係に対するHMD200の第2の位置関係に基づいて、マイク162に入力されたユーザ音声についての処理を行う。図16(A)の第1の位置関係は、例えばマイク162の位置PMや方向DMの情報と、スピーカSPの位置PSの情報等により判断できる。図16(B)の第2の位置関係は、これらの情報に加えて、HMD200の位置PHの情報を用いることで判断できる。
例えば本実施形態では、マイク162とスピーカSPとの第1の位置関係(図16(A))に対するHMD200の第2の位置関係(図16(B))が、所与の条件を満たしていると判断した場合に、マイク162により入力されたユーザ音声を受け付ける。即ちマイク入力をオンにする。一方、第2の位置関係が所与の条件を満たしていないと判断した場合には、ハウリング防止用の処理を行う。即ち、ユーザ音声の受け付けをオフにする処理や、マイク162の入力レベルを下げる処理や、或いはスピーカSPの出力レベルを下げる処理を行う。
具体的には図17に示すように、マイク162とスピーカSPの間にHMD200が存在すると判断した場合に、第2の位置関係(図16(B))が所与の条件を満たしたと判断して、マイク162により入力されたユーザ音声を受け付ける。図17の第2の位置関係は、例えばマイク162の位置PMの情報とスピーカSPの位置PSの情報とHMD200の位置PH(口、頭部の位置)の情報に基づき判断できる。
例えばマイク162とスピーカSPがハウリングが生じるような位置関係(第1の位置関係)にあった場合にも、マイク162とスピーカSPの間にHMD200が存在するような位置関係(第2の位置関係)である場合には、ハウリングは生じないと考えられる。即ち図17のようにマイク162とスピーカSPの間に、HMD200を装着するユーザの頭部が存在すれば、頭部が障害物となってスピーカSPの出力音はマイク162に届かなくなる。従って、ハウリングは生じないと判断して、マイク162により入力されたユーザ音声を受け付ける。即ち、マイク入力をオンにして、ユーザ音声を受け付ける。
また図18(A)では、マイク162の方向DM(指向方向)がスピーカSPの方を向いているという位置関係(第1の位置関係)になっている。従って、通常は、図18(A)の場合は、マイク入力をオフにするなどのハウリング防止用の処理を行うべきである。
しかしながら、マイク162の方向DMとスピーカSPとの位置関係が図18(A)のような関係である場合にも、図18(B)のようにマイク162の方向DM(指向方向)がHMD200(口、頭部)の方を向いていると判断される場合には、第2の位置関係が所与の条件を満たしたと判断する。そして、マイク162により入力されたユーザ音声を受け付ける。即ち、マイク入力をオンにして、ユーザ音声を受け付ける。
このように本実施形態では、マイク162とスピーカSPとの第1の位置関係が、ハウリングが発生するような位置関係(図18(A))であったとしても、この第1の位置関係に対するHMD200の第2の位置関係が、ハウリングを防止できるような位置関係(図18(B))である場合には、マイク入力をオンにして、ユーザ音声を受け付けるようにしている。
図19、図20は本実施形態の処理例を示すフローチャートである。
図19では、まず、HMD200の位置の情報とマイク162の位置や方向の情報を取得する(ステップS21)。次に、マイク162とスピーカSPがハウリングの位置関係にあるか否かを判断する(ステップS22)。即ち、マイク162とスピーカSPの第1の位置関係が、図18(A)のような位置関係になっているか否かを判断する。そしてハウリングの位置関係である場合には、マイク162とスピーカSPの間にHMD200が存在するか否かを判断する(ステップS23)。即ち、マイク162とスピーカSPの第1の位置関係に対するHMD200の第2の位置関係が、図17に示すような位置関係になっているか否かを判断する。
そして、ステップS22でハウリングの位置関係ではないと判断された場合、及びステップS23でマイク162とスピーカSPの間にHMD200が存在すると判断された場合には、マイク162により入力されたユーザ音声を受け付ける(ステップS24)。即ち、マイク入力をオンにして、ユーザ音声を受け付ける。一方、ステップS23でマイク162とスピーカSPの間にHMD200が存在しないと判断された場合には、ユーザ音声の受け付けをオフにする処理、或いはマイク162の入力レベルを下げる処理、或いはスピーカSPの出力レベルを下げる処理を行う(ステップS25)。即ちハウリング防止用の処理を行う。
図20では、まず、HMD200の位置の情報とマイク162の位置や方向の情報を取得する(ステップS31)。次に、マイク162とスピーカSPがハウリングの位置関係にあるか否かを判断する(ステップS32)。そしてハウリングの位置関係である場合には、マイク162の指向方向がHMD200(ユーザの口)の方を向いているか否かを判断する(ステップS33)。即ち、マイク162とスピーカSPの第1の位置関係に対するHMD200の第2の位置関係が、図18(B)に示すような位置関係になっているか否かを判断する。
そして、ステップS32でハウリングの位置関係ではないと判断された場合、及びステップS33でマイク162の指向方向がHMD200の方を向いていると判断された場合には、マイク162により入力されたユーザ音声を受け付ける(ステップS34)。一方、ステップS33でマイク162の指向方向がHMD200の方を向いていないと判断された場合には、ユーザ音声の受け付けをオフにする処理、或いはマイク162の入力レベルを下げる処理、或いはスピーカSPの出力レベルを下げる処理を行う(ステップS35)。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(音入力装置、移動可能範囲等)と共に記載された用語(マイク、プレイエリア等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また頭部装着型表示装置、音入力装置の位置、方向の情報の取得手法、音入力装置、頭部装着型表示装置、スピーカの間の位置関係の判断手法、ユーザ音声の受け付け処理、ハウリング防止用の処理や、シミュレーションシステムの構成等も、本実施形態で説明したものに限定されず、これらと均等な手法・処理・構成も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲーム装置、家庭用ゲーム装置、又は多数のユーザが参加する大型アトラクションシステム等の種々のシミュレーションシステムに適用できる。