説明

タイミング・オフセット許容型カラオケゲーム

ゲーム処理装置は、使用者によって実行されるべき、それぞれが関連付けられた目標実行時間を有した相次ぐ目標行動を指示する手段と、検出された使用者行動が前記目標行動と比較される採点ロジックとを備え、前記採点ロジックは、使用者の行動が検出される入力構成と、使用者行動の検出されたシーケンスを目標行動のシーケンスと比較する手段と、該使用者行動のシーケンスと対応する目標行動のシーケンスとの間のタイミング・オフセットを検出する手段とを備え、その後の使用者行動とそれぞれの目標行動との比較は、該タイミング・オフセットを、該検出された使用者行動と該目標時間の間の相対的変位量として適用するように仕組まれている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は電子ゲーム処理に関する。特定の例はビデオゲーム処理動作の制御を含むが、本発明は、より一般的に他の種類の電子ゲーム処理に適用される。
【背景技術】
【0002】
従来のビデオゲーム機では、使用者はゲームをビデオモニタ又はテレビ画面上で見て、ハンドヘルド型キーパッド又はジョイスティックを用いてゲームの操作を制御する。ソニーのプレイステーション2(Sony(登録商標)PlayStation(登録商標)2)などの或る種のゲーム機では、ハンドヘルドのコントローラは、使用者に対しゲーム内で起こっている事象への触覚的フィードバックを与える振動要素と共に、2つのジョイスティック及び使用者が操作する数個のキーを提供する。
【発明の開示】
【発明が解決しようとする課題】
【0003】
或る種のゲームでは、使用者に(例えばディスプレイ上での)目標行動の指示に応答した特定の行動を実行するように要求する。使用者は、彼の目標行動への応答の正確さを審査される。例えばシステムは、使用者が正しい行動を実行したかどうか、又は、使用者がその行動を正しい時間で実行したかどうかを検査することがある。そのようなゲームの一例は所謂カラオケゲームであり、そこで使用者は一楽曲を形成するために歌われるべき一連の単語を提示される。その楽曲のための伴奏トラックがスピーカーで演奏され、使用者はマイクロフォンに向かって合わせて歌う。使用者は、(例えば)彼の歌唱のピッチ(音程)及びタイミングを審査されることがある。
【課題を解決するための手段】
【0004】
本発明は、
使用者によって実行されるべき、それぞれが関連付けられた目標実行時間を有した相次ぐ目標行動を指示する手段と、
検出された使用者行動が前記目標行動と比較される採点ロジックとを備え、
前記採点ロジックは、
使用者の行動が検出される入力構成と、
検出された使用者行動のシーケンスを目標行動のシーケンスと比較する手段と、
使用者行動のシーケンスと対応する目標行動のシーケンスとの間のタイミング・オフセットを検出する手段と、
を備え、
その後の使用者行動とそれぞれの目標行動との比較は、該タイミング・オフセットを、検出された使用者行動と目標時間の間の相対的変位量として適用するように仕組まれているゲーム処理装置を提供する。
【0005】
本発明はこの種の目標行動・使用者行動ゲームの潜在的問題を認識しているが、それは、使用者は行動のシーケンスを、各行動間の相対的タイミングは正確又は良好な状態で正しく完了するかも知れないが、そのシーケンス全体は目標時間に対して時間上オフセットしている(ずれている)可能性があるということである。通常、そのようなシーケンスは、個々の使用者行動それぞれが関連する目標時間を逃しているため、電子ゲームでは得点が低くなる。タイミング・オフセットは使用者の反応時間によって引き起こされることがあり、又は、所謂「カラオケ」ゲームの場合は、使用者の音楽的タイミングのセンスの乏しさによって引き起こされ得る。
【0006】
本発明は、目標行動のシーケンス及び最初のシーケンスなどの使用者行動から、そのようなタイミング・オフセットが存在するかどうかを査定する。次いでタイミング・オフセットは、このタイミングの問題に難儀している使用者を不利にすることを避ける目的で、それに続く使用者行動に対するタイミング修正として適用される。
【0007】
本発明は、目標行動は所要の楽音を指示し、使用者行動は前記使用者が楽音を歌唱することを伴い、入力構成はマイクロフォンを備えている、歌唱すなわちカラオケタイプのゲームに特に(独占的にではないが)適用可能である。そのようなゲームにおいて採点ロジックは、該使用者が発した楽音が、対応する目標楽音の許容分量(例えば、ピッチ分量)内にあれば、使用者が目標行動を成功裏に達成したと検出するように動作可能であることが好ましい。
【0008】
目標行動が歌われるべき所要の単語を指示し、使用者行動が所要の単語を歌唱することを伴う場合、採点ロジックは、その所要の単語に依存して許容分量を変動させるように動作可能であることが好ましい。採点ロジックは、予め定義された単語の組又は音節に関しては採点を試みないように動作可能であることが好ましい。そのような単語の例は、使用者の声のピッチを正確に審査することが比較的難しい、英語の「ss」又は「th」の音声を含んだ単語である。
【0009】
異なる声域を持つ使用者を不利にすることを避けるため、採点ロジックは、目標楽音と、該目標楽音に音程が最も近似している、使用者が発した楽音のオクターブ倍の音との間の差分を検出するように仕組まれていることが好ましい。
【0010】
好ましくは、目標行動は連続した目標行動群として配列され、それらの群は、その間は使用者の行動が一切期待されない休止によって分けられている。このことは多くの種類のゲームにおいて使用者に休止期間を与えるのに有用であるが、カラオケタイプのゲームの場合それは一連の流れとしての歌の通常の流れに対応する。
【0011】
使用者のタイミングがそのような休止時点で変ってしまうかも知れないため、採点ロジックは各休止の後でタイミング・オフセットを検出するように仕組まれていることが好ましい。
【0012】
採点ロジックは、使用者行動のシーケンスと目標行動のシーケンスの間の相互相関を2つ以上のタイミング・オフセット見込み値で検出し、タイミング・オフセットを、見込み値のうちで検出された相互相関が最大となるものに設定するように仕組まれていることが好ましい。
【0013】
例としては、実行目標時間は、関連付けられた目標行動に対して開始時間を規定でき、及び/又は関連付けられた目標行動に対して継続時間を規定できる。
【0014】
本発明は、使用者行動が目標行動と比較されるゲーム処理の方法をも提供し、該方法は、
使用者によって実行されるべき、それぞれが関連付けられた目標実行時間を有した、相次ぐ目標行動を指示することと、
使用者行動を検出することと、
検出された使用者行動のシーケンスを目標行動のシーケンスと比較することと、
使用者行動のシーケンスと対応する目標行動のシーケンスとの間のタイミング・オフセットを検出することと、
を備え、
その後の使用者行動とそれぞれの目標行動との比較は、該タイミング・オフセットを、検出された使用者行動と目標時間の間の相対的変位量として適用するように仕組まれている。
【0015】
本発明は、上述のような方法を実行するプログラム・コードを有したコンピュータ・ソフトウェアをも提供する。該コンピュータ・ソフトウェアは好ましくは、送信媒体又は保存媒体といった媒体を配設することによって提供される。
【0016】
本発明の更なるそれぞれの態様及び特徴は、添付の特許請求の範囲に規定されている。
【発明を実施するための最良の形態】
【0017】
以下、本発明の実施の形態を、添付の図面を参照して例としてのみ説明する。
【0018】
図1はプレイステーション2の全体的なシステム・アーキテクチャを模式的に示す。システム・ユニット10が、該システム・ユニットに接続可能な種々の周辺機器を伴って配設されている。
【0019】
システム・ユニット10は、エモーションエンジン100、グラフィックス・シンセサイザ200、ダイナミック・ランダムアクセスメモリ(DRAM)を有したサウンド・プロセッサ・ユニット300、リードオンリーメモリ(ROM)400、コンパクト・ディスク(CD)用及びデジタル多用途ディスク(DVD)用リーダ450、ラムバスダイナミック・ランダムアクセスメモリ(RDRAM)ユニット500、専用のRAM750を有した入出力プロセッサ(IOP)700を備えている。(オプションの)外付けハードディスクドライブ(HDD)390が接続されてもよい。
【0020】
入出力プロセッサ700は2つのユニバーサル・シリアル・バス(USB)ポート715及びiLink又はIEEE1394ポート(iLinkはソニー・コーポレーションのIEEE1394標準規格実装)を有している。IOP700は全てのUSB、iLink及びゲーム・コントローラのデータトラフィックを処理する。例えば使用者がゲームをしている際、IOP700はゲーム・コントローラからデータを受け取り、それをエモーションエンジン100に差し向け、エモーションエンジン100はゲームの現況をそれに従って更新する。IOP700は高データ転送速度を促進するためダイレクトメモリアクセス(DMA)アーキテクチャを有している。DMAは、メインメモリからのデータを、CPUを通さずに機器に転送することを伴う。USBインターフェースはオープンホストコントローラ・インターフェース(OHCI)と互換性があり、1.5Mbpsから12Mbpsの間のデータ転送速度を処理することができる。これらのインターフェースが設備されていることは、プレイステーション2には潜在的に、ビデオカセットレコーダ(VCR)、デジタルカメラ、マイクロフォン、セットトップボックス、プリンタ、キーボード、マウス及びジョイスティックなどの周辺機器と互換性があるということを意味する。
【0021】
一般に、USBポート715に接続された周辺機器との上首尾なデータ通信が発生するためには、デバイス・ドライバなどの適切なソフトウェアが配設されるべきである。デバイス・ドライバは極めて周知のものであるためここでは詳細に説明しないが、ただ、当業者ならば、ここに説明された実施の形態においてはデバイス・ドライバ又は同様なソフトウェア・インターフェースが必要であろうことを承知していると思われることは申し添える。
【0022】
本実施形態では、USBマイクロフォン730がUSBポートに接続されている。マイクロフォンはアナログ・デジタル変換器(ADC)及び基本的なハードウェアベースのリアルタイムデータ圧縮及び符号化構成を含み、その結果音声データが、プレイステーション2のシステム・ユニット10での復号のために、16ビットモノPCM(非圧縮フォーマット)などの適切なフォーマットでマイクロフォン730によりUSBポート715へと送信されるようになっている。
【0023】
USBポートとは別に、2つの他のポート705、710は、ゲーム関連情報を保存する独自の不揮発性RAMメモリカード720、ハンドヘルドのゲーム・コントローラ725又は、ハンドヘルドのコントローラを模倣したダンス用マットなどの機器(不図示)の接続を可能にする独自のソケットである。
【0024】
エモーションエンジン100は、ゲーム用途の三次元(3D)グラフィックスの高効率シミュレーション向けに特化して設計された128ビットの中央演算処理装置(CPU)である。エモーションエンジンの構成要素はデータバス、キャッシュメモリ及びレジスタを含み、それらのすべては128ビットである。このことが大容量のマルチメディア・データの高速処理を促進する。比較例として従来のPCは基本的な64ビットのデータ・ストラクチャを有している。プレイステーション2の浮動小数点演算性能は6.2GFLOPである。エモーションエンジンは、3DグラフィックスデータとDVDデータの同時処理を可能にするMPEG2復号回路系をも備えている。エモーションエンジンは、数学的変換及び転換を含む形状演算を実行し、さらに、例えば2つのオブジェクトの間の摩擦の計算などの、シミュレーションオブジェクトの物理に係わる演算をも実行する。それは、イメージレンダリングコマンドのシーケンスを生成し、それはその後グラフィックス・シンセサイザ200によって利用される。このイメージレンダリングコマンドは表示リストの形式で出力される。表示リストは、グラフィックス・シンセサイザに対し、どの基本グラフィックオブジェクト(例えば、点、線、三角、スプライト)で、及びどの座標で画面に描画するかということを指定する描画コマンドのシーケンスである。このように標準的な表示リストは、頂点を描画するコマンド、多角形の面に陰影を付けるコマンド、レンダービットマップ等を含む。エモーションエンジン100は非同期的に複数の表示リストを生成することができる。
【0025】
グラフィックス・シンセサイザ200は、エモーションエンジン100によって生成された表示リストのレンダリングを実行するビデオアクセレータである。グラフィックス・シンセサイザ200は、複数の表示リストを処理し、追跡し、管理するグラフィックス・インターフェースユニット(GIF)を含む。グラフィックス・シンセサイザ200のレンダリング機能は、いくつかの代替標準規格出力イメージフォーマット、すなわち、NTSC/PAL、高解像度デジタルTV及びVESA等をサポートするイメージデータを生成することができる。一般に、グラフィックス・システムのレンダリング能力は、どちらもグラフィックス・プロセッサ内に配置されている画素エンジンとビデオメモリの間のメモリ帯域幅によって規定される。従来のグラフィックス・システムは、利用可能な帯域幅を制限しがちである外部バスを介して画素ロジックに接続された外付けビデオランダムアクセスメモリ(VRAM)を用いる。しかし、プレイステーション2のグラフィックス・シンセサイザ200は単一の高性能チップで画素ロジックとビデオメモリを提供し、それは比較的大容量の毎秒38.4ギガバイトのメモリアクセス帯域幅を可能にする。このグラフィックス・シンセサイザは、毎秒7500万の多角形という最高描画能力を達成することが理論的には可能である。テクスチャ、明暗及び透明度などの一連の効果を付けたとしても、持続した速度の毎秒2000万個という多角形が連続的に描画されることができる。従って、グラフィックス・シンセサイザ200はフィルムクオリティのイメージをレンダリングすることが可能である。
【0026】
サウンド・プロセッサ・ユニット(SPU)300は効果的には、デジタル多用途ディスク(DVD)に用いられる音声フォーマットであるデジタルシアターサラウンド(DTS(登録商標))音やAC−3(ドルビーデジタルとしても知られる)などの3Dデジタル音声を認識することができるシステムのサウンドカードである。
【0027】
付随したスピーカー構成310を持つビデオモニタ又はテレビ受像機などの表示及び音声出力デバイス305が、グラフィックス・シンセサイザ200及び音声処理ユニット300からのビデオ及び音声信号を受信するために接続されている。
【0028】
エモーションエンジン100をサポートしているメインメモリは、ラムバス・インコーポレーテッド(Rambus Incorporated)製造のRDRAM(ラムバス・ダイナミック・ランダムアクセスメモリ)モジュール500である。このRDRAMメモリ・サブシステムはRAM、RAMコントローラ及びRAMをエモーションエンジン100に接続しているバスを備える。
【0029】
図2は、図1のエモーションエンジン100のアーキテクチャを模式的に示す。エモーションエンジン100は、浮動小数点ユニット(FPU)104、中央演算処理装置(CPU)コア102、ベクトルユニットゼロ(VU0)106、ベクトルユニットワン(VU1)108、グラフィックス・インターフェースユニット(GIF)110、割り込みコントローラ(INTC)112、タイマーユニット114、ダイレクトメモリアクセス・コントローラ116、イメージデータプロセッサユニット116、ダイナミック・ランダムアクセスメモリ・コントローラ(DRAMC)120、サブバス・インターフェース(SIF)122を備え、これらの構成要素は128ビットのメインバス124を介して接続されている。
【0030】
CPUコア102は、クロック周波数300MHzに設定された128ビットプロセッサである。CPUコアはDRAMC120を介して32MBのメインメモリにアクセスできる。CPUコア102の命令セットはMIPS III RISCに基づき、一部のMIPS IV RISC命令と付加的マルチメディア命令も伴う。MIPS III及びIVは、MIPSテクノロジーズ・インク(MIPS Technologies, Inc.)独自仕様の縮小命令セットコンピュータ(RISC)命令セットアーキテクチャである。標準命令は64ビットの双方向のスーパースケーラであり、それは、2つの命令を同時に実行することができるということを意味する。それに対してマルチメディア命令は、128ビット命令を2本のパイプラインを介して使用する。CPUコア102は、16KBの命令キャッシュ、8KBのデータキャッシュ及び、CPUによる直接私用使用のために保留されたキャッシュの部分である16KBのスクラッチパッドRAMを備えている。
【0031】
FPU104はCPUコア102の第1コプロセッサとして機能する。ベクトル・ユニット106は第2コプロセッサとして働く。FPU104は、浮動小数点積和値演算ロジックユニット(FMAC)及び浮動小数点除算演算器(FDIV)を備えている。FMACとFDIVは両方とも32ビット値で演算するので、演算が128ビット(32ビット値の4つ分で構成されている)で実行されたとき、演算が4つの部分すべてに関して正しく実行されることができるようになっている。例えば2つのベクトルを一緒に加算することが、同時にできる。
【0032】
ベクトル・ユニット106及び108は数学演算を実行するもので、ベクトル方程式の積算と和算を求めるのに非常に迅速な、本質的に特化したFPUである。それらは和算及び積算演算には浮動小数点積和演算器(FMAC)を用い、除算及び平方根演算には浮動小数点除算器(FDIV)を用いる。これらはマイクロプログラムを保存するための内蔵型メモリを有し、システムの他の部分とベクトル・インターフェース・ユニット(VIF)を介してインターフェース接続している。ベクトルユニットゼロ106は専用の128ビットバス124を介してCPUコア102に対するコプロセッサとして働くことができるので、実質的に第2の特定用途FPUである。それに対してベクトルユニットワン108は、グラフィックス・シンセサイザ200への専用のバスを有しており、そのため、完全に独立したプロセッサと見做されることができる。2つのベクトル・ユニットを包含していることで、ソフトウェア開発者は仕事をCPUの異なる部分に分割することができ、ベクトル・ユニットは直列接続又は並列接続いずれかで用いられることができる。
【0033】
ベクトルユニットゼロ106は4つのFMACSと1つのFDIVを備えている。それはコプロセッサ接続でCPUコア102に接続されている。それはデータ用に4Kbのベクトルユニット・メモリ、命令用に4Kbのマイクロ・メモリを有している。ベクトルユニットゼロ106は表示イメージに関連した物理計算を実行するのに有用である。それはCPUコア102とともに主に非パターン的な形状処理を実行する。
【0034】
ベクトルユニットワン108は5つのFMACSと2つのFDIVを備えている。それにはGIFユニット110へのダイレクトパスはあるが、CPUコア102へのダイレクトパスはない。それはデータ用に16Kbのベクトルユニット・メモリ、命令用に16Kbのマイクロ・メモリを有している。ベクトルユニットワン108は変換を実行するのに有用である。それは主にパターン化された形状処理を実行し、生成した表示リストをGIF110に直接出力する。
【0035】
GIF110はグラフィックス・シンセサイザ200に対するインターフェース・ユニットである。それは表示リストパケットの初頭にあるタグ仕様に従ってデータを変換し、複数の送信を相互調整しつつ、グラフィックス・シンセサイザ200に対し描画コマンドを転送する。割り込みコントローラ(INTC)112はDMAC116を除く周辺機器からの割り込みを調整する働きをする。
【0036】
タイマーユニット114は16ビットのカウンタを有した4つの独立型タイマーを備える。タイマーは、バスクロック(1/16又は1/256間隔)又は外部クロックのうちいずれかにより駆動される。DMAC116はメインメモリと周辺プロセッサの間、又は、メインメモリとスクラッチパッド・メモリの間のデータ転送を処理する。それは同時にメインバス124の調整もする。DMAC116の性能最適化が、エモーションエンジンの性能を向上させるための主要な方法である。イメージ処理ユニット(IPU)118は、圧縮されたアニメーション及びテクスチャイメージを展開するために用いられるイメージ・データ・プロセッサである。それはIピクチャ・マクロブロック復号、色空間変換及びベクトル量子化を実行する。最後に、サブバス・インターフェース(SIF)122はIOP700へのインターフェース・ユニットである。それは独自のメモリと、サウンドチップや記憶装置などの制御入出力デバイスへのバスを有している。
【0037】
図3はグラフィックス・シンセサイザ200の構成を模式的に示す。グラフィックス・シンセサイザは、ホスト・インターフェース202、セットアップ/ラスタライジング・ユニット204、画素パイプライン206、メモリ・インターフェース208、フレームページバッファ214及びテクスチャページバッファ216を含むローカルメモリ212、及びビデオ変換器210を備えている。
【0038】
ホスト・インターフェース202はデータをホスト(この場合、エモーションエンジン100のCPUコア102)に送信する。ホストからの描画データもバッファ・データもこのインターフェースを介して通る。ホスト・インターフェース202からの出力はグラフィックス・シンセサイザ200に供給され、それはエモーションエンジン100から受け取った頂点の情報に基づき画素を描画するためのグラフィックスを展開し、各画素に関するRGBA値、深さ値(すなわち、Z値)、テクスチャ値、フォグ(暈し)値などの情報を計算する。RGBA値は赤、緑、青(RGB)色成分を指定し、A(アルファ)成分はイメージオブジェクトの不透明度を現す。アルファ値は完全に透明から完全に不透明まで変動することができる。画素データは画素パイプライン206に供給され、それはテクスチャマッピング、フォギング及びアルファブレンディングなどの処理を行い、計算された画素情報に基づき最終描画色を決定する。
【0039】
画素パイプライン206は、最大16の画素を同時に処理できるように16個の画素エンジンPE1、PE2...PE16を有している。画素パイプライン206は32ビットカラー及び32ビットZバッファで150MHzで動作する。メモリ・インターフェース208はローカルのグラフィックス・シンセサイザ・メモリ212からデータを読み出し、そこにデータを書き込む。それは描画画素値(RGBA及びZ)を画素演算の最後に書き込み、メモリからフレームバッファ214の画素値を読み出す。フレームバッファ214から読み出したこれらの画素値は画素テスト又はアルファブレンディングのために用いられる。メモリ・インターフェース208はまた、フレームバッファの現行内容のRGBA値をローカルメモリ212から読み出す。ローカルメモリ212は、グラフィックス・シンセサイザ200に内蔵された32Mビット(4MB)メモリである。それはフレームバッファ214、テクスチャバッファ216及び32ビットのZバッファ215として編成されることができる。フレームバッファ214は色情報などの画素データが保存されるビデオメモリの一部である。
【0040】
グラフィックス・シンセサイザは3D形状に対して視覚的詳細を付与する2Dから3Dテクスチャマッピングプロセスを用いる。各テクスチャは3Dイメージオブジェクトを包囲してよく、3Dグラフィックイメージを与えるために引き伸ばしたり歪曲したりすることができる。テクスチャバッファはイメージオブジェクトのためのテクスチャ情報を保存するために用いられる。Zバッファ215(深さバッファとしても知られる)は画素の深さ情報を保存するために利用可能なメモリである。イメージは図形要素すなわち多角形として知られる基本的な基礎的要素から構築される。多角形がZバッファリングによりレンダリングされると、各画素の深さ値はZバッファに保存されている対応値と比較される。Zバッファに保存されている値がこの新たな画素値の深さより大である又は等しい場合は、この画素は可視的であると判断され、そのため、それはレンダリングされるべきでありZバッファは新たな画素深さで更新されることになる。しかしZバッファ深さ値が新規画素深さ値よりも小さかった場合、その新規画素値は既に描画されたものに及ばず、従ってレンダリングされない。
【0041】
ローカルメモリ212は、フレームバッファ及びZバッファにアクセスするための1024ビットの読み出しポート及び1024ビットの書き込みポート、及びテクスチャ読み出しのための512ビットポートを有している。ビデオ変換器210はフレームメモリの内容を特定の出力フォーマットで表示するように動作可能である。
【0042】
図4は、本発明の実施形態に関するプレイステーション2の論理機能を示した模式図である。図4に示すブロックの機能は、主に図1に示したプレイステーション2の部品による適切なソフトウェアの実行によりもちろん実行されるが、その関連するプレイステーション2の特定の部品を以下に列挙する。ソフトウェアはディスク又はROM記憶装置及び
/又はインターネット接続などの送信媒体を介して提供されることができる。
【0043】
カラオケゲームを実行するには、制御ロジック800はディスク保存媒体810からオーディオ伴奏トラックの再生を始動する。オーディオ再生は再生ロジック820により処理されて、テレビ受像機305の一部をなす増幅器307及びこちらもテレビ受像機の一部をなすスピーカー310を通じて行われる。
【0044】
オーディオトラックに伴うビデオ信号の再生又は生成も再生ロジック820によって処理される。背景イメージはディスク810に保存されていてもよいし、代わりに合成されてもよい。歌われるべき単語を表すグラフィックオーバーレイ及びピッチ及びタイミングの指示も、以下に説明する楽曲ファイル830からのデータに応答して生成される。出力ビデオ信号はテレビ受像機305の画面上に表示される。
【0045】
マイクロフォン730も再生ロジック820に接続されている。再生ロジック820はマイクロフォンからのデジタル化されたオーディオ信号をアナログ信号に変換して戻し、使用者が自らの声をスピーカー310から聞くことができるように増幅器307に供給する。
【0046】
以下、楽曲ファイルについて説明する。
【0047】
楽曲ファイル830は、使用者が現行の楽曲を完遂するために歌わなければならない楽音を規定したデータを保存している。図5に楽曲ファイルの例が模式的に示されている。楽曲ファイルはXMLフォーマットで表示されており、一分毎の拍数(ビーツ・パー・ミニット、BPM)で表した楽曲のテンポの指標で開始する。次の項は分解度の指標、すなわち、その楽曲ファイルに出ている音の長さ記号には何分の一拍が用いられているかの指標である。図5の例では、分解は「16分音符」でテンポは96BPMであり、それは、音の長さ値の「1」が4分の1拍に相当、言い換えると、1/384分であるということを意味している。
【0048】
いくつかの所謂「楽曲要素」が続く。これらの第1番目は「楽節マーカー」である。楽節マーカーは楽曲を都合の良い区分に分けるために用いられ、それは歌詞の楽節又はフレーズに符合することが多い。楽節の切れ目は、その間使用者は歌うことを期待されない休止と(常にではないが)対応していることが多い。休止は、楽曲の出だしの小節、連続した旋律又は続いた楽節間の途切れ、又は楽曲の終わりの小節を表していることがある。楽節マーカー自体では休止がどのくらいの長さになるかを規定することはない。それは実際、特定の継続時間の間ピッチすなわち「midi音」値をゼロ(すなわち、音符がない)に設定する、直後の楽曲要素によって規定される。
【0049】
midiノート値がゼロでない後続の楽曲要素では、これは使用者が歌うことを期待されている特定のピッチを表す。このmidi音階では、中央Cを数値60で表す。中央Cより上の、標準周波数が440Hzである音Aは、midi番号69で表される。各オクターブはmidi音階中の12のスパンで表されるので、(例えば)上のC(中央Cより上の)はmidiノート値72で表される。
【0050】
或る種のシステムでは、midiノート値0は下のC(約8.175Hz)に割り当てられているが、本実施形態では、midiノート値0は音が期待されていない休止を指すことに留意されたい。
【0051】
ゼロでない各midiノート値には伴われた歌詞がある。これは単語の一部、単語全体又は(状況によっては)一語より多い場合さえあり得る。単語が空白であることもあり得、例えば(XMLでは)LYRIC=''''となる。
【0052】
こうして、楽曲要素はそれぞれピッチ、継続時間及び歌詞を規定する。
【0053】
現行例では、楽曲ファイルは、表示用の歌詞と、使用者が歌うことを期待されているピッチ及び音の長さを規定する。それは、使用者に聞こえて実際使用者が楽曲を歌うことを促す伴奏トラックを規定しない。伴奏トラックは、例えば従来のオーディオ録音のように別個に録音されている。この構成は、伴奏トラックの再生と楽曲ファイルからのデータ読み出しが関連したタイミング(例えば実質的に同時に)で開始する必要があることを意味し、それは制御ロジック800が処理する事項である。しかし、別の実施形態では楽曲ファイルが伴奏トラックをも、例えばmidiシンセサイザーによる音声へと合成されるシーケンスのmidi音として(図4には示さないが、実際図1のSPU300で実施されている)規定することができる。
【0054】
図4に戻ると、音クロック発生器840は楽曲ファイル830からテンポと分解の値を読み出し、クロック信号を適切な速度で供給する。特に、その速度はテンポに各拍の細分を掛けたものである。従って、例えばテンポ96で分解が16分音符(クォーター・ビート)であれば、音クロックは96×4BPM、すなわち384BPMで稼動する。テンポ90で分解が8分音符(ハーフ・ビート)であれば、音クロックは180(90×2)BPMで稼動し、同様に続く。
【0055】
音クロックは各楽曲要素の楽曲ファイル830からの読み出しを開始するため、及び、使用者の声のピッチの検出を制御するためにも用いられる。
【0056】
ピッチの検出に関しては、USBマイクロフォン730からの信号もピッチ検出器850に供給される。これは、音クロックによって規定され、使用者の声のピッチをその中で検出するための一時的なウィンドウ中に動作する。言い換えると、使用者の声のピッチは音クロック(この例では毎分384回)の周波数に等しいサンプリング速度でサンプリングされる。ピッチ検出器は、1969年4月8日〜10日にブルックリン・ポリテクニック・インスティチュートで開催された「通信におけるコンピュータ処理シンポジウム」にて、ベル電話研究所のA.マイケル・ノルによって発表された論文「調和積スペクトルによる人の音声ピッチ求出−ハーモニック・サム・スペクトラム及び最大確からしさ予測」("Pitch Determination of Human Speech by the Harmonic Product Spectrum. The Harmonic Sum Spectrum, and a Maximum Likelihood Estimate", A. Michael Noll, Bell Telephone Labs - presented at the Symposium on Computer Processing in Communications, Polytechnic Institute of Brooklyn, April 8-10, 1969)に記載されているような周知のピッチ検出技法を用いている。検出されたピッチは上述したようなmidi音階上の数値に変換される。そのピッチ値はバッファレジスタ860に供給され、そこから比較器870に供給される。楽曲ファイル830からの対応するmidiノート値もまた、音クロックの制御の下に読み出され、比較器870に受け渡される前に別のバッファレジスタ880に供給される。
【0057】
レジスタ880は楽曲ファイルからのmidiノート値をバッファリングする。レジスタ860は、特定数の連続した音クロック期間にわたる使用者の歌唱各々に関して発生した検出midiノート値を保存する。これらのデータは以下に説明する「相互相関検査」に用いられる。
【0058】
比較器は楽曲ファイルからのmidiノート値を、検出されたピッチを表すmidiノート値と比較するように仕組まれている。音ファイル内の楽曲要素が、継続時間1より大きい音を表していれば、検出されたピッチ値と楽曲ファイルからの正しいピッチ値との間の絶対差分は平均化される。比較器はモジュロ12演算で動作する。このことは、使用者のピッチでの12の倍数の誤差(すなわち、1つまたは複数の全オクターブの誤差)は、使用者が正しい音にどれだけ近かったかという審査では軽視され、1オクターブよりも大きい誤差は、検出されたピッチが正しい音と実際同じオクターブにあったかの如く取り扱われるということを意味する。このことは、使用者がレジスタ又は自らの通常の声域に関して不利にされることがないことを保証する。
【0059】
採点の目的で、比較器は、使用者が所要のピッチの一定の閾値内でピッチを達成したかどうかを検出する。閾値はmidi音階上で表されるので、例えば閾値はmidi音階上の±2.5であり得る。(音はmidi音階では整数でのみ表現されるが、一楽曲要素の継続期間にわたる使用者のピッチのサンプリング値を平均化するので、現行実施形態においては分数閾値に実際に意義がある。)この閾値はゲームの難易度に応じて、「簡単」レベルで高く、「難」レベルで低くなるように設定されてもよい。
【0060】
任意選択で、比較器は現行歌詞に応じて、特定の音を審査対象から除外することができる。これは、「ss」又は「th」の音を含んだ特定の歌詞は、使用者の声のピッチ検出を難しくするからである。使用者の得点を不利にすることを回避するため、そのような単語が歌われる際は比較は試みられない。そのような単語は、楽曲ファイル内の現行歌詞を「難しい」単語のリストと比較することにより、又は、現行歌詞内の特定の文字パターンを検出することにより、又は、楽曲要素に設定されたフラグにより検出されることができる。
【0061】
得点生成ロジック890は比較器870から比較の結果を受け取り、それを基に使用者得点を生成する。
【0062】
時間オフセット、すなわちある音を歌うに際した目標時間と、使用者がその音を歌った実際の時間の間の遅れ又は進み、を検出するために相互相関検査を実行し、続いてその使用者の採点中にその時間オフセットを組み込むために、得点生成ロジックはレジスタ860、880による比較器870への値の出力を制御する。例えば、時間オフセットが楽曲中の「楽節」の最初の部分で検出され、その時間オフセットはその楽節の残りの部分で使われることができる。
【0063】
この操作がどのように働くかを説明するため、その楽曲で「楽節」の最初の3つの音である、楽曲によって規定された3連続音の組の例についてまず考察する。この例では、この3音の総長さは6音クロック期間であることが見て取れる。
【0064】
【表1】

【0065】
使用者のピッチ(すなわち、マイクロフォンを通した使用者からの任意の入力のピッチ)は各音クロック期間毎に検出され、レジスタ860内でバッファされる。比較器870は次いで、要求音への使用者の貢献を、そのシーケンスの目標開始時間から±3音クロック期間離れて要求音と比較するために、直列、並列又は別の配列で一組の比較を実行する。このことは、最初の2音N1及びN2のみが、タイミング・オフセットを設定するためのプロセスに考慮されるということを意味するが、その理由は、それらの総長さが3クロック期間に加算されるためである。従って、使用者が完璧なタイミングで歌うなら、予期されるピッチの比較は以下のようになる。
【0066】
【表2】

【0067】
しかし、現実施形態は、使用者が必ずしも完璧なタイミングで歌わずともよく、早まって或いは遅れて歌を開始することを許容している。従って比較器870は、±3音クロック期間の遅れ/進みの範囲にわたって一連の比較を実行する。一方の極端において、すなわち、使用者が3音クロック分早すぎる歌い出しをしたかどうかを検査するには、そのような比較は以下のようになり得る。
【0068】
【表3】

【0069】
他方の極端において、すなわち、使用者が3音クロック分遅すぎる歌い出しをしたかどうかを検査するには、比較は以下のようになり得る。
【0070】
【表4】

【0071】
上述したものと類似した閾値が、時間オフセットを検出する相互相関検査の間使用される。相互相関検査は、要求音及びそれらの関連したタイミングに最も近い既歌唱音を検索するが、それらは、要求音との差分が2半音(Midiノート値2)の閾値を超えていた場合、これらの目的からは無視される。(使用者を採点するために、その使用者がどれ程うまく歌ったかに関する時間オフセットを勘案した引き続いた分析に、上述のように可変閾値も用いられる。)
【0072】
従って、現行例では、そのような比較が全部で7つ実行される。各比較は3つの結果、すなわち、検査群内の3音クロック期間に関するピッチ誤差を提供する。一実施形態において、これらの3つの結果は合わされて(例えば合算されて)、各あり得る遅れ/進み期間に関する単一の出力値を与える。別の実施形態においては、最初の音クロック期間のみのピッチが考慮される。
【0073】
相互相関検査からの出力の組の中には通常、単一の相互相関「ピーク」すなわち、通常、3音クロック期間(又は最初の音クロック期間)における使用者のピッチと目標ピッチとの間で最大の相互相関を与える遅れ/進みの値がある。当業者ならば、出力値の提示方法次第で、それは最高出力値とも最低出力値ともなり得ることを理解するはずである。
【0074】
そのような単一のピークが存在することを前提にすると、その値はその楽節の残りの部分にわたり時間オフセットとして用いるために持ち越される。例えば、オフセットが−3音クロック期間である(すなわち、使用者が3音クロック期間分早すぎる歌い出しをした)ときにピークが発生するということが判明した場合、その楽節の残りの部分では、それ以降の比較はすべて、目標ピッチと、その使用者が3クロック期間早く歌ったピッチの間が対象となる。そのオフセットは楽曲ファイルの次の楽節マーカーのところでリセットされ、上述した相互相関検査が繰り返される。
【0075】
上述のように相互相関の検出はその3クロック期間に適用されることができるし、或いは、目標シーケンスの最初の音に対して最も一致度が高いものを単に探索することに適用されることもできる。
【0076】
プレーヤーの歌唱が早すぎれば、歌われた音と、要求音との間の最も近似した適合が選択される。最も近い適合が十分に近くない、すなわち、2半音の閾値を超えた差分があればオフセットは0に設定されタイミング補正は行われない。複数の音が同程度によく適合した場合、目標シーケンスの最初の音に適合するピッチを有した最も先に歌われた音が、オフセットを決定するために用いられることができる。歌唱が遅れていた場合、単純に最も近い音を選択する。適合が2音あれば、すなわち、2つの相互相関「ピーク」が存在すれば、慣例は一番先に発生した(すなわち、時間的に一番前の)音又はピークを選択するために設定される。
【0077】
このことを一般化すると、ピークが全くなかった(使用者が全く歌わなかった場合そうなり得る)場合、その楽節に対してゼロのオフセットが使われる。
【0078】
新たな楽節の出だしにおいて、比較器はその楽節の最初の3音クロック期間のピッチを、midiノート値がゼロである最初の音(もし存在するならば)は除外して検出することができる。その楽節に3音未満のクロック期間がある場合は、全ての音の総体が検出される。次いでこれは相互相関検査のためになされなければならない比較の数、及び、それらの比較のうち最後のものを完了できる時間を決定する。別法として、比較がハードウェアで実行される場合は特に、固定数の比較を実行し、相互相関検査には特定数の比較のみを用いることが便利であろう。上述した構成では、相互相関検査は各楽節の出だし付近で一度実行され、検出された補正期間はその楽節の残りの部分へと繰り越される。もちろん、実行できる別案は数多くある。例えば、相互相関検査は、楽節の流れの中で時間オフセットが修正されることができるように、新たに歌われた音ごとに実行、或いは、新たに歌われた音の各組の後(例えば、3音すなわち音クロック期間毎)に実行されることができる。この場合、楽節中の時間オフセットのばらつきを制限するために、フィルタリング操作を含めることが望ましい。例えば単純な構成においては、単一の楽節中での一定の最大ばらつき(例えば±1音クロック期間)のみが、時間オフセットの相次いだ検出の合間では許容できるものである。
【0079】
別の変形形態では、時間オフセットは例えば楽曲の出だしで一度検出されることができ、同じ時間オフセットがその楽曲の残りの部分に使用される。
【0080】
相互相関検査はピッチ以外の特徴を用いることができる。例えば、周知の音声検出ロジックが、使用者が歌うべきであった歌詞を検出するために用いられることができ、その検出は上述のような±n音クロック期間の範囲にわたり実行される。音声検出システムは、使用者がある単語を言ったかどうかに関する絶対的な回答を与えない傾向があるが、むしろ、その単語が話されたという見込み値を与える。従って、相互相関検査は、使用者が最初のいくつかの音に対して正しい単語を言った(歌った)可能性のあるオフセット期間にわたり最大の統合的可能性を探求することができる。音声検出器の出力はピッチの検出と結合されて、使用者が遅れ/進み期間の各期待値で歌っていたかどうかの統合的見込み値を提供する。
【0081】
最大許容時間オフセットはゲームのレベル(例えば、簡単、普通、難しい)に応じて設定できる。「簡単」なゲームレベルでは、例えば±3音クロック期間の時間オフセットが許容されることができるが、「難しい」ゲームのレベルでは例えば最大限でも±1音クロック期間の時間オフセットが許容される。
【0082】
図4は、説明を明確にするために一組の論理ブロックとしての実施形態の動作を説明した。もちろんこのブロックはハードウェアで実装、又はセミプログラマブルなハードウェア(例えば、フィールドプログラマブル・ゲートアレイ)で実装されることができるものの、好都合にはこれらのブロックを、適切なソフトウェアの制御下で図1に示したプレイステーション2の部品によって実装することができる。どのようにしてこれを達成できるかという一例を以下に示す。
【0083】
【表5】

【0084】
図6は、テレビ受像機305上の実例画面表示を模式的に説明する。今の歌詞910がハイライトされた状態で、歌われるべき歌詞900が水平にスクロールする列で現れる。今の歌詞の検出は、楽曲ファイル内の楽曲要素を通る音クロックにより、各楽曲要素に関して指定されたクロック期間の数を勘案してなされる。
【0085】
歌われるべきピッチ及び各音の長さの模式表示は横棒920で与えられている。それらは楽曲ファイル内の楽曲要素内のピッチ値(midiノート値)から派生しているが、画面上ではそれらはピッチ又は音の長さの明確な指標を提示することはせず、全体的な傾向を示唆するべく仕組まれている。従って、次の音が現在の音よりも低ければ、棒920は画面上で、2つの音の間のピッチの差分に必ずしもいくらか比例した状態でなくてよいが若干低い位置に現れる。
【0086】
破線930はピッチ検出器によって検出された、使用者の各音を歌おうとする試みを模式的に示す。使用者の音が低ければ、破線は対応した目標音を表す線920よりも画面上で下のほうに描かれる。使用者の音が高ければ、破線は線920よりも高い位置に描かれる。同様に、遅れた又は早まった使用者の音は、対応する線920の右側又は左側に示される。前のように、線の間の位置的差分は任意のピッチ又はタイミング差分に比例しているというよりも模式的なものである。
【0087】
図7はタイミングが完璧な歌い手を模式的に示す。各目標音940(音C、B、C、D、D..で示す)は950で厳密に正しい時間で歌われている。
【0088】
図8はC、B、C、D、D音の正確なシーケンスが歌われたが、それらは遅れて歌われている。上述した指標がないため、1つを除いた全ての音は間違っているとの審査、及び著しく低いまたは高くなっていると審査されることになる。
【0089】
図9において、音は全て遅れて歌われているが、タイミング・オフセット960が適用されて、その結果コンスタントな度合いの遅れはレジスタ860、880によって補正される。使用者は高得点を与えられる。
【0090】
上述した本発明の実施形態が少なくとも部分的にでもソフトウェア制御のデータ処理装置を用いて実装される限り、そのようなソフトウェア制御を提供するコンピュータ・プログラム及びそのようなコンピュータ・プログラムが保存されている保存媒体は、本発明の態様として想定されることが理解されよう。
【図面の簡単な説明】
【0091】
【図1】図1はプレイステーション2の全体的なシステム・アーキテクチャを模式的に示す図である。
【図2】図2エモーションエンジンのアーキテクチャを模式的に示す図である。
【図3】図3はグラフィックス・シンセサイザの構成を模式的に示す図である。
【図4】図4は、本発明の一実施形態に係るプレイステーション2の論理的機能性を示した模式図である。
【図5】図5は楽曲ファイルの一部を模式的に示す図である。
【図6】図6は画面表示を模式的に説明する図である。
【図7】図7は歌い手により良好なタイミングで歌われた楽曲を模式的に示す図である。
【図8】図8はタイミングが不出来な楽曲を模式的に示す図である。
【図9】図9は補正的なタイミングずらしが適用された楽曲を模式的に示す図である。
【符号の説明】
【0092】
10 システム・ユニット
100 エモーションエンジン
102 中央演算処理装置(CPU)コア
104 浮動小数点ユニット(FPU)
106 ベクトルユニットゼロ(VU0)
108 ベクトルユニットワン(VU1)
110 グラフィックス・インターフェースユニット(GIF)
112 割り込みコントローラ(INTC)
114 タイマーユニット
116 ダイレクトメモリアクセス・コントローラ
116 イメージデータプロセッサユニット
120 ダイナミック・ランダムアクセスメモリ・コントローラ(DRAMC)
122 サブバス・インターフェース(SIF)
124 メインバス
200 グラフィックス・シンセサイザ
202 ホスト・インターフェース
204 セットアップ/ラスタライジング・ユニット
206 画素パイプライン
208 メモリ・インターフェース
210 ビデオ変換器
212 ローカルメモリ
214 フレームページバッファ
215 Zバッファ
216 テクスチャページバッファ
300 サウンドプロセッサユニット
305 テレビ受像機
307 増幅器
310 スピーカー
390 ハードディスクドライブ(HDD)
400 リードオンリーメモリ(ROM)
450 CD・DVD
500 ラムバスダイナミック・ランダムアクセスメモリ(RDRAM)ユニット
700 入出力プロセッサ(IOP)
715 USBポート
720 不揮発性RAMメモリカード
730 USBマイクロフォン
750 専用のRAM
800 制御ロジック
810 ディスク保存媒体
820 再生ロジック
830 楽曲ファイル
840 音クロック発生器
850 ピッチ検出器
860、880 レジスタ
870 比較器
900 歌われるべき歌詞
910 今の歌詞
920 横棒
930 破線
940 各目標音


【特許請求の範囲】
【請求項1】
ゲーム処理装置であって、
使用者によって実行されるべき、それぞれが関連付けられた目標実行時間を有した、相次ぐ目標行動を指示する手段と、
検出された使用者行動が前記目標行動と比較される採点ロジックとを備え、
前記採点ロジックは、
使用者の行動が検出される入力装置と、
検出された使用者行動のシーケンスを目標行動のシーケンスと比較する手段と、
使用者行動のシーケンスと目標行動の対応シーケンスとの間のタイミング・オフセットを検出する手段と、
を備え、
その後の使用者行動とそれぞれの目標行動を比較するため、前記装置は、タイミング・オフセットを、前記検出された使用者行動と前記目標時間の間の相対的変位量として適用するように仕組まれていることを特徴とするゲーム処理装置。
【請求項2】
請求項1に記載の装置であって、前記使用者行動は使用者による楽音の発生を伴う装置。
【請求項3】
請求項2に記載の装置であって、
前記目標行動は所要の楽音を指示し、
前記使用者行動は前記使用者が楽音を歌唱することを伴い、
前記入力装置はマイクロフォンを備えている装置。
【請求項4】
請求項3に記載の装置であって、前記採点ロジックは、前記使用者によって発せられた楽音が対応する目標楽音の許容分量内にあれば、使用者が目標行動を成功裏に達成したと検出するように動作可能である装置。
【請求項5】
請求項4に記載の装置であって、
前記目標行動は歌唱されるべき所要の単語を指示し、
前記使用者行動は前記所要の単語を歌唱することを伴い、
前記採点ロジックは、前記所要の単語に依存して許容分量を変動させるように動作可能である装置。
【請求項6】
請求項5に記載の装置であって、前記採点ロジックは、前記目標行動が予め定められた組の単語の1つを表している場合に、使用者行動と目標行動の間の比較を実行しないように動作可能である装置。
【請求項7】
請求項2乃至6いずれかに記載の装置であって、前記採点ロジックは、目標楽音と、前記目標楽音に音程では一番近いものである使用者が発した楽音のオクターブ倍の音との間の音程差分を検出するように仕組まれている装置。
【請求項8】
先行請求項のうちいずれか1項に記載の装置であって、前記目標行動は連続した群の目標行動として配列され、前記群は、その間は使用者行動が期待されない休止によって分けられている装置。
【請求項9】
請求項8に記載の装置であって、前記採点ロジックは各休止の後にタイミング・オフセットを検出するように仕組まれている装置。
【請求項10】
先行請求項のうちいずれか1項に記載の装置であって、前記使用者行動のシーケンスは使用者行動の最初のシーケンスである装置。
【請求項11】
先行請求項のうちいずれか1項に記載の装置であって、前記採点ロジックは、使用者行動のシーケンスと目標行動のシーケンスの相互相関を複数の見込みタイミング・オフセット値で検出し、前記タイミング・オフセットを、前記検出された相互相関が最大となる見込み値として設定するように仕組まれている装置。
【請求項12】
請求項11に記載の装置であって、前記採点ロジックは、前記使用者行動のシーケンスと前記目標行動のシーケンスの間の相互相関が所定以下であればタイミング・オフセットをゼロと設定するように動作可能である装置。
【請求項13】
先行請求項のうちいずれか1項に記載の装置であって、前記実行目標時間は、関連付けられた目標行動に対する開始時間を規定する装置。
【請求項14】
先行請求項のうちいずれか1項に記載の装置であって、前記実行目標時間は、関連付けられた目標行動に対する継続時間を規定する装置。
【請求項15】
使用者行動が目標行動と比較されるゲーム処理の方法であって、
前記方法は、
使用者によって実行されるべき、それぞれが関連付けられた目標実行時間を有した、相次ぐ目標行動を指示することと、
使用者行動を検出することと、
検出された使用者行動のシーケンスを目標行動のシーケンスと比較することと、
前記使用者行動のシーケンスと目標行動の対応するシーケンスとの間のタイミング・オフセットを検出することと、
を備え、
その後の使用者行動とそれぞれの目標行動との比較は、タイミング・オフセットを、前記検出された使用者行動と前記目標時間の間の相対的変位量として適用するように仕組まれている方法。
【請求項16】
請求項15による方法を実行するプログラム・コードを有したコンピュータ・ソフトウェア。
【請求項17】
請求項16によるコンピュータ・ソフトウェアが提供される媒体。
【請求項18】
前記媒体は送信媒体である、請求項17に記載の媒体。
【請求項19】
前記媒体は保存媒体である、請求項17に記載の媒体。


【図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


【公表番号】特表2007−527022(P2007−527022A)
【公表日】平成19年9月20日(2007.9.20)
【国際特許分類】
【出願番号】特願2006−518371(P2006−518371)
【出願日】平成16年7月9日(2004.7.9)
【国際出願番号】PCT/GB2004/002991
【国際公開番号】WO2005/005006
【国際公開日】平成17年1月20日(2005.1.20)
【出願人】(502070679)ソニー コンピュータ エンタテインメント ヨーロッパ リミテッド (40)
【Fターム(参考)】