JP2004290501A - Music performance control method for video game, program, storage medium, and game device - Google Patents

Music performance control method for video game, program, storage medium, and game device Download PDF

Info

Publication number
JP2004290501A
JP2004290501A JP2003088746A JP2003088746A JP2004290501A JP 2004290501 A JP2004290501 A JP 2004290501A JP 2003088746 A JP2003088746 A JP 2003088746A JP 2003088746 A JP2003088746 A JP 2003088746A JP 2004290501 A JP2004290501 A JP 2004290501A
Authority
JP
Japan
Prior art keywords
music
time
song
pitch
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003088746A
Other languages
Japanese (ja)
Inventor
Tokikuni Kimura
旬邦 木村
Kurayuki Murakami
蔵行 村上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koei Co Ltd
Original Assignee
Koei Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koei Co Ltd filed Critical Koei Co Ltd
Priority to JP2003088746A priority Critical patent/JP2004290501A/en
Publication of JP2004290501A publication Critical patent/JP2004290501A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To express superiority/inferiority of a performance by a character based on a competence value (technical capacity, skill and the like) of the character in a simulation game of a music player. <P>SOLUTION: This music performance control method for a video game, the program, the storage medium, and the game device control the performance state of the music of the video game. This method includes a step (means) automatically changing a timing and a pitch of a pitch shift of the music during reproduction based on a pitch shift table; and a step (means) automatically changing a volume balance of respective music during reproduction based on a volume change table. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明はビデオゲームの曲演奏制御方法、プログラム、記憶媒体及びゲーム装置に係り、特に音楽演奏家のシミュレーションゲームにて、キャラクタの能力値(技術力、スキル等)に基づいて、キャラクタによる演奏の上手下手を表現するビデオゲームの曲演奏制御方法、プログラム、記憶媒体及びゲーム装置に関する。
【0002】
【従来の技術】
【特許文献1】
特許第2631030号公報 (第1−3頁、図3)
【特許文献2】
特開平10−337379号公報 (第1−3頁、図1)
【特許文献3】
特開2000−185175号公報 (第1−4頁、図1−5)
【特許文献4】
特開平10−78792号公報 (第1−3頁、図1)
【特許文献5】
特開平5−181497号公報 (第1−3頁、図1)
【0003】
【発明が解決しようとする課題】
ところで、従来、ビデオゲームの曲演奏制御方法においては、以下の如きものがある。
【0004】
先ず、演奏ミスを表現する場合、最も簡単な手法としては、本来同じ曲だが、上手い方と下手な方の少なくとも2つの曲を用意しておき、キャラクタの能力値(技術力、スキル等)に基づいて自動的に何れか1曲を選択して再生する方法が考えられる。しかし、この場合、曲の再生途中での変化はなく、表現としては用意した曲の何れか1曲を単に再生するにすぎないので、いつも同じ部分でミスをすることとなり、すぐに飽きてしまうという欠点がある。
【0005】
そして、演奏の上手さの段階を増やせば増やす分だけ用意する曲が増えてしまい記録容量が増加することとなるので好ましくない。
【0006】
また、本件出願人による特許第2631030号公報(特許文献1参照)では、伴奏用のBGM再生開始後、メロディ用の音の再生を開始し、プレイヤによるポインティングデバイスの移動量を検出して再生中のメロディ用の音の高さ(音程)を変化させ、即興演奏を行うことができる発明が開示されている。この発明によれば、特別な音楽知識を必要とすることなく、パーソナルコンピュータに接続されたマウス等のポインティングデバイスを動かすことによって、即興演奏を楽しむことができる。
【0007】
しかしながら、現実的には、マウス等の座標変位によってプレイヤが音程変化を上手に制御する(即ち演奏する)のは容易ではなく、飽きられてしまう傾向にあった。
【0008】
一方で、特開平10−337379号公報(特許文献2参照)では、ゲーム成果度の段階的な変化に伴いゲーム音楽の音色数、演奏パート数、演奏単位長さを段階的に変化させる発明が開示されている。即ち、ゲームの獲得ポイントや勝ち抜き数等によって、少しずつ演奏パートや演奏フレーズを増やしていくことにより、最終的に豪華なオーケストラ構成となるようにしてあるので、ゲーム成果度の増加を聴覚的に認識することが可能となる。
【0009】
しかしながら、演奏ミスを表現するものではないので、演奏途中の任意のごく一部の音のみを変化させるものではない。
【0010】
そして、特開2000−185175号公報(特許文献3参照)では、再生するゲーム音楽のパートのオンオフを管理するパートテーブルのフラグ情報を、ゲームの進行状況に応じて変更し、フラグがオンとなっているパートのみを再生する発明が開示されている。同時に、単にフラグ情報でなく、各パートの音量についての混合比を示す数値情報をパートテーブル上で管理し、例えば宝物を取得する度に、その宝物に対応したパートの混合比を上げることにより、そのパートの音量を増加(宝物を失った場合は減少)させる発明も開示されている。
【0011】
この発明によっても、ゲームの進行状況に応じて、再生される楽曲が徐々に明らかになっていくので、プレイヤの達成感を向上させることができるが、上記同様に、演奏ミスを表現するものではないので、演奏途中の任意のごく一部の音のみを変化させるものではない。
【0012】
更に、特開平10−78792号公報(特許文献4参照)では、登録した文字の音声データを、音量やピッチ等を変更するための簡単な操作でゲームプレイヤの好みの音声に加工し、後でその音声を再生できる発明が開示されている。
【0013】
この発明では、プレイヤの好みにより自ら設定した通りに音声が再生されるが、やはり、演奏ミスを表現するものではないので、同様に、演奏途中の任意のごく一部の音のみを変化させるものではない。
【0014】
その他、ピッチシフトする技術自体は広く知られており、例えば特開平5−181497号公報(特許文献5参照)のように音声再生中でビブラート効果を得るためにピッチシフト量を変化させる発明が開示されているが、同様に、演奏ミスを表現するものではないので、演奏途中の任意のごく一部の音のみを変化させるものではない。
【0015】
そこで、この発明は、音楽演奏家のシミュレーションゲームにて、キャラクタの能力値(技術力、スキル等)に基づいて、キャラクタによる演奏の上手下手を表現する以下2つの方策を提供するものである。
(ア)再生中の曲のピッチ(音程)を、ピッチシフトテーブルに基づき、自動的に変更(ピッチシフト)して演奏ミスを表現する。
(イ)本来同じ曲だが上手い方と下手な方の2つの曲を用意し、一方の音量を0、他方を最大として同期再生を開始し、ボリュームチェンジテーブルに基づき、再生途中で自動的に各曲の音量バランスを変更して演奏ミスを表現する。
【0016】
【課題を解決するための手段】
そこで、この発明は、上記課題を解決するために、ビデオゲームのゲーム音楽の演奏状態を制御する曲演奏制御方法であって、曲の再生を開始するステップと、キャラクタの能力値に基づいて作成されたピッチシフトテーブルに基づいて、再生中の曲のピッチシフトのタイミング及びピッチを自動的に変更するステップと、を含むことを特徴とする。
【0017】
また、ビデオゲームのゲーム音楽の演奏状態を制御する曲演奏制御方法であって、複数の曲の再生を同時に開始するステップと、キャラクタの能力値に基づいて作成されたボリュームチェンジテーブルに基づいて、再生中の各曲の音量バランスを自動的に変更するステップと、を含むことを特徴とする。
【0018】
更に、ビデオゲームが実行可能なゲーム音楽の演奏状態を制御するプログラムであって、コンピュータを、曲の再生を開始する手段、キャラクタの能力値に基づいて作成されたピッチシフトテーブルに基づいて、再生中の曲のピッチシフトのタイミング及びピッチを自動的に変更する手段、として機能させるためのプログラムである。
【0019】
更にまた、ビデオゲームが実行可能なゲーム音楽の演奏状態を制御するプログラムであって、コンピュータを、複数の曲の再生を同時に開始する手段、キャラクタの能力値に基づいて作成されたボリュームチェンジテーブルに基づいて、再生中の各曲の音量バランスを自動的に変更する手段、として機能させるためのプログラムである。
【0020】
また、請求項3又は請求項4に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0021】
更に、ビデオゲームのゲーム音楽の演奏状態を制御するゲーム装置であって、曲の再生を開始する手段と、キャラクタの能力値に基づいて作成されたピッチシフトテーブルに基づいて、再生中の曲のピッチシフトのタイミング及びピッチを自動的に変更する手段と、を備えることを特徴とするゲーム装置である。
【0022】
更にまた、ビデオゲームのゲーム音楽の演奏状態を制御するゲーム装置であって、複数の曲の再生を同時に開始する手段と、キャラクタの能力値に基づいて作成されたボリュームチェンジテーブルに基づいて、再生中の各曲の音量バランスを自動的に変更する手段と、を備えることを特徴とするゲーム装置である。
【0023】
【発明の実施の形態】
上述の如く発明したことにより、再生中の曲のピッチ(音程)を、ピッチシフトテーブルに基づき、自動的に変更(ピッチシフト)し、演奏ミスを表現している。
【0024】
また、本来同じ曲だが上手い方と下手な方の2つの曲を用意し、一方の音量を0、他方を最大として同期再生を開始し、ボリュームチェンジテーブルに基づき、再生途中で自動的に各曲の音量バランスを変更して演奏ミスを表現している。
【0025】
【実施例】
以下、この発明の実施例を、家庭用のテレビを利用したビデオゲームのゲーム装置上で実行されるプログラムの実施の形態として、図面を参照しながら説明する。
【0026】
図1〜図6はこの発明の第1実施例を示すものである。図3において、2はテレビ、4はモニタ、6はスピーカ、8はゲーム装置、10は入力装置、12は記録媒体である。
【0027】
前記ゲーム装置8は、本体14をテレビ2に接続するとともに、この本体14に入力装置10を接続し、本体14に挿入した記録媒体12からビデオゲーム用プログラムを読み出して、ビデオゲームを実行する。
【0028】
また、前記ゲーム装置8は、図4に示す如く、ビデオゲーム用プログラムを実行するためのコンピュータとして、本体14に装置全体の制御を行うCPU(Central Processing Unit)ブロック16を備えている。
【0029】
このCPUブロック16は、本体14内の後述する各部30〜36とのデータ転送を主に制御するSCU(System Control Unit)18と、中央演算処理装置として高速クロックで作動するCPU20と、ゲーム装置8の基本制御動作が記憶されたROM(Read Only Memory)22と、CPUのワークエリアとして働くと共に記録媒体12に記録されたゲームプログラムを一時的に記憶するRAM(Random Only Memory)24と、及びこれらを接続するバス26と、で構成されている。
【0030】
前記CPUブロック16のSCU18には、外部バス28が接続されている。外部バス28は、コントローラパッド等の入力装置10からの入力を受信してCPUブロック16へ入力情報を転送する入力受信部30と、図示しないサブCPUを備え記録媒体12に記録されたゲームプログラムを読み取りCPUブロック16へ転送するCD−ROMドライブ等の媒体読取部32と、図示しないフレームバッファを備えCPUブロック16から転送された情報に従って画像情報を作成する画像処理部34と、及び図示しないサブCPUとを備え音響を処理する音響処理部36と、に接続されている。
【0031】
更に、前記入力受信部30には、入力装置8が接続されている。前記画像処理部34は、テレビ2のモニタ4に接続されている。前記音響処理部36は、スピーカ6に接続されている。なお、前記ゲーム装置8は、外部バス28にネットワーク接続部38を接続し、このネットワーク接続部38により外部のネットワーク40を介して他のゲーム装置8aと接続することにより、他のプレイヤの参加も可能となる。
【0032】
次に、図1及び図2に示すフローチャートを参照して、ゲーム装置8の動作について、CPUブロック16のCPU20を主体として説明する。
【0033】
まず、前記記録媒体12をゲーム装置8に挿入し、ゲーム装置8の図示しない電源スイッチを押下して電源が投入されると、CPU20は記録媒体12からビデオゲーム用プログラム及びゲームデータを読み出し、RAM24に記憶する。以降、CPU20は、RAM24に記憶されているビデオゲーム用プログラム並びに入力装置10からの指示内容に基づきテレビ2のモニタ4に所定のゲーム画面を表示させ、ビデオゲームを制御して進行させる。
【0034】
図1に示すように、制御がスタートすると、まず、ステップ100(「S100」とも記載する)において、本発明の画面表示処理を実行するための初期設定処理が行われる。
【0035】
この初期設定処理では、ゲームプログラムにおいて、RAM24に一時記憶されている前回データの値等の種々のデータを初期化する。
【0036】
ここで、データとは、後述するピッチシフトのデータテーブルから求められる値であって、ピッチシフトのデータテーブルとは、どのタイミングでどの程度のピッチシフトをさせるかを示すテーブルである。
【0037】
次に、ステップ102において、テレビ2の垂直帰線周期と一致した、例えば1/60秒(16.6ミリ秒)に一度の周期で行われる垂直帰線割込(Vsync)がなされたか否かを判断する。肯定判断のときは、ミス演奏処理のステップ104へ進む。否定判断のときは、次のステップ106において、入力受信部30から転送された入力情報に対する入力処理やゲーム効果音を音響処理部36に合成させるための音響処理等のメイン処理を実行して、ステップ108へ進む。
【0038】
ステップ108では、ステップ106でゲームを終了させるための所定ボタンが選択押下されたか否かを判断し、否定判断のときはステップ102へ戻り、肯定判断のときはプログラムを終了(ステップ110)する。
【0039】
図1に示すステップ104のミス演奏処理においては、図2に示す如く、ステップ200において、ステータス曲が停止しているか否かを判断し、肯定判断のときはステップ202に移行し、このステップ202において、新たな曲を選択してカウンタをクリア、つまり「0(ゼロ)」とする。
【0040】
そして、ステップ202の後にステップ204に移行し、このステップ204において、キャラクタの能力値からミス頻度を算出し、ステップ206において、ピッチシフトテーブルを作成するとともに、ミス頻度から待ち時間やピッチ変位、シフト時間を算出する。
【0041】
その後、ステップ208において、カウンタに待ち時間を設定するとともに、ステータスをシフト待ちに設定し、曲の再生を開始し、メインルーチンにリターンする。
【0042】
上述のステップ200が否定判断のときは、ステップ210において、「曲データエンド」、つまり選択された曲のデータ処理が終了したか否かを判断し、肯定判断のときはステップ212に移行し、このステップ212において、ステータスを曲停止に設定し、ステップ214において、曲の停止処理を行い、メインルーチンにリターンする。
【0043】
また、上述のステップ210が否定判断のときは、ステップ216において、ステータスがシフト待ちか否かを判断し、肯定判断のときは、ステップ218において、カウンタが「0(ゼロ)」であるか否かを判断する。
【0044】
このステップ218における判断が否定判断のときは、ステップ220において、カウンタを「1」だけデクリメントし、ステップ222において、曲の再生処理を行い、メインルーチンにリターンする。
【0045】
なお、上述のステップ218における判断が肯定判断のときは、ステップ224において、カウンタにシフト時間を設定するとともに、ステータスをピッチシフトに設定し、ピッチ変位分だけシフトを開始し、ステップ222において、曲の再生処理を行い、メインルーチンにリターンする。
【0046】
更に、上述のステップ216における判断が否定判断のときは、ステップ226において、ステータスがピッチシフトであるか否かを判断し、この判断が肯定判断のときは、ステップ228において、カウンタが「0(ゼロ)」であるか否かを判断し、ステップ228における判断が否定判断のときは、ステップ230において、ピッチシフト処理を行い、ステップ232において、カウンタを「1」だけデクリメントし、ステップ222において、曲の再生処理を行い、メインルーチンにリターンする。
【0047】
上述のステップ226における判断が否定判断のときは、ステップ222において、曲の再生処理を行い、メインルーチンにリターンする。
【0048】
更にまた、上述のステップ228における判断が肯定判断のときは、元のピッチに戻すとともに、カウンタに次の待ち時間を設定し、そしてステータスをシフト待ちに設定し、ステップ222において、曲の再生処理を行い、メインルーチンにリターンする。
【0049】
この第1実施例においては、キャラクタが演奏中(再生中)の曲のピッチ(音程:音の高さ)を、ピッチシフトのデータテーブルに基づき、自動的に変更、つまりピッチシフトして演奏ミスを表現することにある。
【0050】
実際の処理動作について詳述すると、ピッチシフトは、音声データの処理時間を圧縮したり、又は伸張したりすることで実現できる。即ち、メモリに一時記憶された音声データの読み出し速度(即ち、再生速度)を変更することにより実現できる。
【0051】
具体的には、メモリから速く読み出せば、読み出される音声データの時間軸が圧縮され、ゆっくり読み出せば、時間軸が伸長されることになる。例えば、再生しようとする音声データが、サンプリング周波数44.1kHz,量子化ビット数16ビット,ステレオの場合では、音声再生のプログラムにおいて、その音声データの処理速度として1秒間には、以下の式
【数1】

Figure 2004290501
により、176400バイトのデータを処理する必要がある。
【0052】
ここで、1秒間に処理するデータ数を2倍にすると再生される音声のピッチが2倍となる一方、時間軸を1/2だけ縮めることとなり再生時間が1/2となる。これによりテンポが2倍となり、サンプリング周波数も2倍となったものとして処理されることとなる。
【0053】
このサンプリング周波数とは、再生周波数、即ち1秒間に再生処理するデータ数を意味することから、ピッチシフト後の音声データを更に加工する等のデジタル信号処理を施す場合は、サンプリング周波数を元に戻す処理をする方が好ましい。
【0054】
具体的には、サンプリング周波数が上がった場合は、密集した音声データを例えば2サンプル毎に1サンプルを残すようにして間引くことによりサンプリング周波数を戻すことができ、サンプリング周波数が下がった場合は、広がったサンプル間にふさわしいデータを挿入する補間処理をすることでサンプリング周波数を元に戻すことができる。
【0055】
そして、この補間処理においては、一般にデジタルフィルタを用いてなされることが知られている。尚、本実施例ではピッチシフトした音声を単に再生できれば良いので、サンプリング周波数の調整を考慮する必要が無い。
【0056】
ピッチシフトする場合には、テンポ変化により聞きづらくならないように、後で本来の時間に戻すことが必要となる。ここで、テンポとは、1分間に演奏される4分音符の数であり、例えばテンポ120といった場合は1分間に120個の4分音符が演奏されることを意味している。
【0057】
そして、本来の時間に戻す処理として、ピッチを上げる場合には、例えば入力音声データ中の圧縮対象部分以降のデータを一部先読みして、圧縮対象部分の再生以降は、その先読みしたデータを本来の戻り時間となるまで連結再生し、本来の戻り時間となったら通常再生に復帰するという方法が考えられる。この場合、先読みしたデータは重複して再生されることになる。
【0058】
また、ピッチを下げる場合には、例えば入力側音声データ中の伸張対象部分を伸張して再生後に通常再生に復帰し、伸張分の入力音声データをカットするという方法が考えられる。そして、この場合、そのままでは双方とも本来の時間再生に復帰する際に、音声波形の不連続によるノイズが発生してしまうので、何らかの対策が必要となってくる。しかしながら、この発明の実施例においては、ソロ演奏の演奏ミスを表現したいので、ミスの後で本来の時間に戻す必要はなく、上記したデータの重複やカットをせずに順番どおりにデータを処理していくので、ノイズの問題は起こらない。また、演奏ミスを表現するには、サンプリング周波数44.1kHzの場合でもプラス・マイナス5kHz程度変化すれば十分であり、実際の処理時間の圧縮伸張で大きな影響が生ずる事はない。
【0059】
ピッチシフトの実際の処理においては、1秒間に再生処理するデータ数を増減すれば良いので、例えば通常の音声再生で1秒間に176400バイトのデータを読み込む(再生する)必要がある場合は、これを増減すれば良いことになる。
【0060】
ここで、前記ゲーム装置8の本体14と接続したテレビ2のモニタ4の垂直帰線周期と一致し、ゲームの画面表示を制御する垂直帰線割込(Vsync)は、通常、ゲームプログラムにおいて1/60秒(16ミリ秒)に一度の周期で呼び出されるが、上記の例でいうと1Vsync(16ミリ秒)で約2822バイトのデータを読み込む(再生する)必要があることになる。
【0061】
実際には、記録媒体等に予め記録された音声データを先頭から順次読み込みながら32KX4バイト程度のストリームバッファ(一般にダブルバッファ)に一時記憶していき、その一方では一時記憶されている音声データを再生周波数に基づいて順次音声処理部に転送してスピーカから再生するという処理がなされる。この際、1秒分のデータを一度に読み込む必要はなく、再生速度が合っていれば良いことになる。
【0062】
この第1実施例において、ピッチがプラス・マイナス1の変化で再生周波数がプラス・マイナス1000Hzだけ変化すると取り決めた場合、1秒間に増減するデータ数は、16ビット,ステレオの場合で、式
【数2】
Figure 2004290501
によってプラス・マイナス4000バイトとなり、16ミリ秒を1tickとする(以降、同じ)と、1tickで約プラス・マイナス64バイトの増減となる。また、16ミリ秒を1tickとしたので、1秒間に約62tickとなる。
【0063】
内部処理について説明する。
【0064】
この発明の第1実施例における第1の内部処理としては、どのタイミングでどの程度のピッチシフトをさせるかを示すピッチシフトのデータテーブルを設ける。
【0065】
このとき、ピッチシフトのデータ形式は、現在のピッチをセンター(0)とした−(マイナス)5から+(プラス)5までの数字(即ち、ピッチ変位)と、ピッチシフトを開始して復帰までの時間(即ち、シフト時間)、及びそのピッチシフトまでの待ち時間で構成される。
【0066】
ピッチシフトデータのデータ構造とその一例を図5に示す。
【0067】
図5に示す如く、最初の2バイト(上位ワード)で、次のピッチシフト処理までの待ち時間(単位はtick)を表す。ここで、2バイトは0から65535までの数値を表現できるが、1tickは0.016秒とすると、式
【数3】
Figure 2004290501
によって、約17分となり、2バイトで最大約17分間の待ち時間を表現することができる。即ち、最大約17分間の曲に対してこの発明の第1実施例のピッチシフト処理が可能であり、この点、2バイトで十分と考えられる。
【0068】
ここで、10秒後にピッチシフトが起こるとすると、1秒間に約62tick、即ち10秒間に約620tick進むこととなり、16進数表記で26CHとなる(Hは16進数表記であることを示す。以下同じ)。
【0069】
次の2バイト(下位ワード)の上位バイトで、現在のピッチをセンタ(0)とした−5から+5までの数字(16進数表記でFBHから05H)、即ちピッチシフト量(ピッチ変位)を示す。この値が+1の時、上記の例でいえば上述したとおり、0.016秒で約64バイト(40H)多く処理することになる。即ち、0.016秒毎に本来処理すべき2822バイトに64バイトを足したバイト数2822+64=2886バイトを処理することとなる。
【0070】
また、この値が−1の時は、0.016秒毎に2822−64=2758バイトを処理することとなる。同様に、この値が+5の時は、1秒間で再生周波数が5000Hzだけ増加することとなり、0.016秒に64X5=320バイト(140H)だけ多く処理することになる。、即ち、本来処理すべき2822バイトに320バイトを足したバイト数2822+320=3142バイトを0.016秒毎に処理することとなる。尚、ピッチ変位が0の場合はミスは表現されないことになる。
【0071】
また、下位ワードの下位バイトで、ピッチシフト処理を何tick繰り返すか、即ち、ピッチシフトする時間を示す。1tickは0.016秒なので、1秒間に約62tick(3EH)となる。本実施例では1秒間でピッチがプラス・マイナス1の変化に対し再生周波数プラス・マイナス1000Hzの変化すると取り決めたので、ここでは62tick(3EH)用いるが、演奏ミスとしてピッチシフトを明確に表現するために124tick(2秒)程度としたり、一定値範囲内での乱数により求めても良い。
【0072】
ピッチシフト処理後は、元のピッチに徐々に戻るように処理しても良いが、この発明の第1実施例では、直ぐに元の再生速度に戻る、即ち、0.016秒毎に処理する本来のバイト数2822バイトに戻るものとする。
【0073】
このようなピッチシフトデータが集まって一時記憶されたものが、図6のようなピッチシフトのデータテーブルである。
【0074】
図6は、曲再生開始から約10秒(26CHtick)後に約1秒(3EHtick)間だけ+5のピッチシフトを実行し、その約30秒(744Htick)後に約1秒(3EHtick)間だけ−3のピッチシフトを実行する・・・という内容である。
【0075】
また、第2の内部処理は、キャラクタの能力値に基づいてデータテーブル内のデータ列を予め演奏直前に計算して一時記憶しておく。
【0076】
ピッチシフトのタイミング(時間)や、どの程度深く(程度)又どの程度の回数(頻度)とするかは、演奏キャラクタの能力値(技術力、スキル等)に基づいて演奏毎に変化するようにし、データテーブルのデータを曲演奏前に毎回計算し更新する。
【0077】
ピッチシフトを起こす頻度(ミス頻度:MN)については、例えば、キャラクタの能力値を技術力の程度として考えて0から127までの値を取りうるとすると、先ずはその値を25で割って商を0から5までの値(演奏レベル:PL)とし、最大演奏レベル5からその商PLを引くとミスの回数(ミス頻度:MN)として0から5までの値となる。
【0078】
ミスの程度であるピッチシフト量(ピッチ変位:SL)については、例えば、0からミス頻度MNまでの範囲で乱数RNを発生させてメモリに一時記憶し、前回得られた乱数RP(初期値は0とする)と比較して
RN≧RP
ならば+RNをSLとし(増加)、
RN<RP
ならば−RNをSL(減少)とする。このようにすると、ピッチ変位SLは−4から+5までの範囲となる。これをミス頻度MNだけ繰り返し求める。これによりピッチシフトデータのピッチ変位が算出される。
【0079】
尚、この発明の第1実施例では、ピッチシフトデータのシフト時間は、上述の通り62tick(3EH)で固定する。
【0080】
また、ピッチシフトを起こす時間PTについては、再生する曲の長さは予め分かっているので、例えば3分の曲の場合は全体で、式
【数4】
Figure 2004290501
により、11250tickであるから、0から99までの範囲で乱数を発生させて、
【数5】
Figure 2004290501
とすると、1から11250までの任意の値が得られ、得られた値をピッチシフトを起こす時間PTとすればよい。
【0081】
例えば、乱数で5と出れば、式
【数6】
Figure 2004290501
によって675(2A3H)tickであり、式
【数7】
Figure 2004290501
によって約10秒後にピッチシフトを起こすことになる。
【0082】
これをミス頻度MNだけ繰り返し求める。求めたピッチシフトを起こす時間PTは曲先頭からの絶対時間であるので、それ以前にピッチシフトデータがある場合は、その待ち時間とシフト時間の和を引いて前のデータからの相対時間を求めることにより、目的のピッチシフトデータの待ち時間が算出される。ここで、仮に曲全体で11250tickであったとしても、上述したように「本来の時間に戻す」という問題があるので、曲の再生途中で確実に目的の回数だけミスを表現するために、ピッチシフトを起こす時間PTの算出で用いる値を11250よりも若干少なめに設定しても、曲の終了と共にピッチシフトの処理を終了するので、大きな問題とはならない。また、求めたピッチシフトを起こす時間PTが、丁度他のピッチシフトデータのシフト時間と重なる場合は、再度時間PTを求める。
【0083】
更に、これら算出に用いる演奏キャラクタの能力値(技術力、スキル等)は、プレイヤの操作により楽譜を集めるという動作で練習すると上昇し、予め設定されている楽譜の難易度やプレイヤの練習(操作)時間等から能力値を計算する。
【0084】
この発明の第1実施例では、ここでいう能力値を技術力として考える。即ち、楽譜の難易度は0から5までの数値とし、練習時間は便宜的に練習回数として考え、楽譜の難易度別に各々の練習回数を掛けてこれらの総和をとり、0から127までの値にしたものを技術力とする。実際の設定において、難易度の高い楽譜は、技術力が一定値を超えないと練習できないようにするとか、所定のイベントが発生したときにのみ練習できるようにする等の制限を設けることができる。
【0085】
尚、ここでいう楽譜とは、再生したい曲の楽譜とは異なる曲(例えばジャンルやアレンジ、フレーズの一部が似た曲等)の楽譜であっても良い。また、ここでいう練習とは、演奏ミスを含めたその楽譜の曲の演奏(即ち再生)であっても良いが、単にゲーム中でプレイヤが所定の操作をする(例えばその楽譜を選択する)程度の取り決めであっても良い。
【0086】
第3の内部処理は、音声データの再生(演奏開始)と同期して先頭から順にデータテーブル内のデータを読んで行く。
【0087】
ピッチシフトのデータテーブルは、再生するその曲(音声データ)に対応したピッチシフト用の再生チャンネルと考える。
【0088】
データを2バイト読んで処理したら次の2バイトを読んで処理し(即ち2バイトずつ読んでいき)、曲再生終了までこれを繰り返す。
【0089】
第4の内部処理は、読んだデータに基づいて実際に発音中の音に対してピッチシフトを実行する。
【0090】
実際には、先ず最初のピッチシフトデータの上位ワードの待ち時間を読み、これを残り時間(計時手段)としてメモリに一時記憶し、1tick経過する度に残り時間を1デクリメントし、0になったら下位ワードのピッチ変位及びシフト時間を読み、ピッチ変位分だけ音声データの再生速度を変化させる処理(ピッチシフト)を開始すると共に、シフト時間を残り時間としてメモリに一時記憶し、1tick経過する度に残り時間を1デクリメントすると共にピッチシフト後の再生速度で継続し、残り時間が0になったら元の再生速度に戻してピッチシフトを終了すると共に、次のピッチシフトデータの上位ワードの待ち時間を読み、曲再生終了までこれを繰り返す。
【0091】
さすれば、ビデオゲームの実行中にピッチシフトのデータテーブルに基づいてピッチシフトのタイミング及びピッチが自動的に変更され、前記ミス演奏処理における演奏ミスが表現されるので、記録容量を増加させることなく、ビデオゲーム中でのキャラクタによる演奏の上手下手を表現することができる。
【0092】
図7〜図11はこの発明の第2実施例を示すものである。この第2実施例において、上述第1実施例のものと同一機能を果たす箇所には、同一符号を付して説明する。
【0093】
この第2実施例の特徴とするところは、上述した第1実施例におけるピッチシフトのデータテーブルの代わりに、ボリュームチェンジテーブルを使用した点にある。
【0094】
図7及び図8に示すフローチャートを参照して、ゲーム装置の動作について、CPUブロックのCPUを主体として説明する。
【0095】
まず、上述第1実施例と同様に、記録媒体をゲーム装置に挿入し、ゲーム装置の電源スイッチを押下して電源が投入されると、CPUは記録媒体からビデオゲーム用プログラム及びゲームデータを読み出し、RAMに記憶する。以降、CPUは、RAMに記憶されているビデオゲーム用プログラム並びに入力装置からの指示内容に基づきテレビのモニタに所定のゲーム画面を表示させ、ビデオゲームを制御して進行させる。
【0096】
この第2実施例において、制御がスタートした際には、上述した第1実施例のものと同様に、本発明の画面表示処理を実行するための初期設定処理が行われるため、説明は省略する。
【0097】
上述した第1実施例における図1に示すステップ104の後のミス演奏処理においては、図7に示す如く、ステップ300において、ステータス曲が停止しているか否かを判断し、肯定判断のときはステップ302に移行し、このステップ302において、新たな曲を選択してカウンタをクリア、つまり「0(ゼロ)」とする。
【0098】
そして、ステップ302の後にステップ304に移行し、このステップ304において、キャラクタの能力値からミス頻度を算出し、ステップ306において、ボリュームチェンジテーブルを作成するとともに、ミス頻度から上手な曲の再生時間や下手な曲の再生時間を算出する。
【0099】
その後、ステップ308において、カウンタに上手な曲の再生時間を設定するとともに、ステータスを上手な曲に設定し、曲の再生を開始し、メインルーチンにリターンする。
【0100】
上述のステップ300が否定判断のときは、ステップ310において、「曲データエンド」、つまり選択された曲のデータ処理が終了したか否かを判断し、肯定判断のときはステップ312に移行し、このステップ312において、ステータスを曲停止に設定し、ステップ314において、曲の停止処理を行い、メインルーチンにリターンする。
【0101】
また、上述のステップ310が否定判断のときは、ステップ316において、ステータスが上手な曲か否かを判断し、肯定判断のときは、ステップ318において、カウンタが「0(ゼロ)」であるか否かを判断する。
【0102】
このステップ318における判断が否定判断のときは、ステップ320において、フェード処理を行い、ステップ322において、カウンタを「1」だけデクリメントし、ステップ324において、曲の再生処理を行い、メインルーチンにリターンする。
【0103】
なお、上述のステップ218における判断が肯定判断のときは、ステップ326において、カウンタに下手な曲の再生時間を設定するとともに、ステータスを下手な曲に設定し、フェード処理を開始し、ステップ324において、曲の再生処理を行い、メインルーチンにリターンする。
【0104】
更に、上述のステップ316における判断が否定判断のときは、ステップ328において、ステータスが下手な曲であるか否かを判断し、この判断が肯定判断のときは、ステップ330において、カウンタが「0(ゼロ)」であるか否かを判断し、ステップ330における判断が否定判断のときは、ステップ332において、フェード処理を行い、ステップ334において、カウンタを「1」だけデクリメントし、ステップ324において、曲の再生処理を行い、メインルーチンにリターンする。
【0105】
上述のステップ328における判断が否定判断のときは、ステップ324において、曲の再生処理を行い、メインルーチンにリターンする。
【0106】
更にまた、上述のステップ330における判断が肯定判断のときは、カウンタに次の上手な曲の再生時間を設定するとともに、ステータスを上手に曲に設定し、フェード処理を開始し、ステップ324において、曲の再生処理を行い、メインルーチンにリターンする。
【0107】
次に、図8に沿って、図7中に記載のフェード処理について説明する。
【0108】
フェード処理に移行する際には、音圧レベルを下げて消音する方の曲と、音圧レベルを上げて発音する方の曲とを予め特定し、一時記憶しておくとともに、フェードカウンタを設け、例えば10(tick)を設定する。なお、この場合、160msecでフェード終了とする。
【0109】
そして、フェード処理に移行した際には、ステップ400において、フェードカウンタが「0(ゼロ)」であるか否かを判断し、この判断が否定判断のときは、ステップ402において、音圧レベルを下げて消音する方の曲をフェードアウトし、その後、ステップ404において、音圧レベルを上げて発音する方の曲をフェードインし、図7中のルーチンにリターンするとともに、判断が肯定判断のときは、図7中のルーチンにリターンする。
【0110】
この第2実施例においては、本来同じ曲だが上手い方(一切ミスなしのもの)と下手な方(ミスばかりのもの)の2つの曲を用意し、一方の音量を0、他方を最大として同期再生を開始し、ボリュームチェンジテーブルに基づき、再生途中で自動的に各曲の音量バランスを変更して演奏ミスを表現することにある。
【0111】
この第2実施例における第1の内部処理は、本来同じ曲だが、上手い方(一切ミスなしのもの)の曲Aと下手な方(ミスばかりのもの)の曲Bの2つの曲を用意する。
【0112】
この第2実施例では、ソロ演奏を想定しているためその他の楽器(音色)を同時演奏(合奏)しない、即ち、上手い方の曲Aと下手な方の曲Bの2曲を1組として他の曲は用意していないが、複数の異なる音色で同時再生可能なように他に複数組用意しても良い。
【0113】
また、同一曲で複数パート(チャンネル)を同時再生可能な環境下(MIDIを用いる場合等)では、別な曲として用意するまでもなく、上手な方と下手な方の2つのパートを1組として再生しても良い。更に、この場合も複数の異なる音色で同時再生可能なように複数組みで構成されるようにしても良い。
【0114】
第2の内部処理は、どのタイミングでボリュームチェンジするかを示すボリュームチェンジのデータテーブルを設ける。
【0115】
ボリュームチェンジデータのデータ形式は、上手な方の曲Aの再生時間と下手な方の曲Bの再生時間で構成される。
【0116】
ボリュームチェンジデータのデータ構造とその一例を図9に示す。
【0117】
図9に示す如く、最初の2バイト(上位ワード)で上手な方の曲Aの再生時間を表し、次の2バイト(下位ワード)で下手な方の曲Bの再生時間を表す。単位は共に、上述した第1の実施形態でいうtickと同一である。
【0118】
上記の例では約10秒間だけ上手な方の曲Aを再生し、その後約3秒間は下手な方の曲Bを再生する。
【0119】
第3の内部処理は、キャラクタの能力値に基づいてテーブル内のデータ列を予め演奏直前に計算して一時記憶しておく。
【0120】
ボリュームチェンジのタイミング(ミス演奏の開始時間:VT)とチェンジ後の再生時間(ミス演奏時間:VI)、どの程度の回数(ミス頻度)とするかは、演奏キャラクタの能力値(技術力、スキル等)に基づいて演奏毎に変化するようにし、テーブルデータを曲演奏前に毎回計算し更新する。
【0121】
ボリュームチェンジを起こす上記ミス頻度については、例えば、キャラクタの能力値を技術力の程度として考えて0から127までの値を取りうるとすると、先ずはその値を25で割って商を0から5までの値(演奏レベル:PL)とし、最大演奏レベル5からその商PLを引くとミスの回数(ミス頻度:MN)として0から5までの値となる。
【0122】
また、ミス演奏時間VIは求めたミス頻度MNを使って求める。1回のミス演奏で少なくとも3秒間は継続するとした場合、ミス頻度MNX3とすれば0から15秒の値となる。例えば3秒で約187(BBH)tickとなる。また、このミス演奏時間VIがボリュームチェンジデータの下手な方の曲の再生時間となる。
【0123】
そして、ボリュームチェンジを起こす時間即ち、ミス演奏の開始時間VTについては、再生する曲の長さは予め分かっているので、例えば3分の曲の場合は全体で、式
【数8】
Figure 2004290501
によって11250tickであるから、0から99までの範囲で乱数を発生させて、
【数9】
Figure 2004290501
とすると、1から11250までの任意の値が得られ、得られた値をボリュームチェンジを起こす時間PTとすればよい。例えば乱数で5と出れば、式
【数10】
Figure 2004290501
によって675(2A3H)tickであり、式
【数11】
Figure 2004290501
によって約10秒後にボリュームチェンジを起こすことになる。
【0124】
これをミス頻度MNだけ繰り返し求める。求めたミス演奏の開始時間VTは曲先頭からの絶対時間であるので、それ以前にボリュームチェンジデータがある場合は、上手な方の曲Aの再生時間及び下手な方の曲Bの再生時間の和を引いて前のデータからの相対時間を求めることにより、目的のボリュームチェンジデータの上手な方の曲Aの再生時間となる。
【0125】
また、求めたミス演奏の開始時間VTが、丁度他のボリュームチェンジデータの下手な方の曲Bの再生時間と重なる場合は、再度ミス演奏の開始時間VTを求める。
【0126】
更に、これら算出に用いる演奏キャラクタの能力値(技術力、スキル等)は、上述した第1の実施形態の場合と同じとする。
【0127】
第4の内部処理は、音声データの再生(演奏開始)と同期して先頭から順にテーブル内のデータを読んで行く。
【0128】
即ち、ボリュームチェンジテーブルは、再生するその曲(音声データ)に対応したボリュームチェンジ用の再生チャンネルと考える。データは2バイト読んで処理したら次の2バイトを読んで処理し(即ち2バイトずつ読んでいき)、曲再生終了までこれを繰り返す。
【0129】
第5の内部処理は、読んだデータに基づいて実際に発音中の音に対してボリュームチェンジを実行する。
【0130】
先ずは、上手な方の曲Aの音量を最大値127、下手な方の曲Bの音量を最小値0にして同期演奏を開始し、同時にボリュームチェンジデータの上位ワードの最初の上手な方の曲Aの再生時間を読み込み、読んだtick数分経過するまで待つ。
【0131】
時間経過後は、下位ワードの下手な方の曲Bの再生時間を読み込み、上手な方の曲Aの音量を最小値0、下手な方の曲Bの音量を最大値127に変更する。そして、読み込んだ再生時間のtick数分だけ継続する。時間経過後は、次のボリュームチェンジデータの上位ワードの上手な方の曲の再生時間を読み込み、同時に上手な方の曲Aの音量を最大値127、下手な方の曲Bの音量を最小値0にし、このような処理を曲再生終了まで繰り返す。
【0132】
ボリュームチェンジを実現するにあたって、単に音量を変更する技術自体は公知であるので言及しない。
【0133】
この第2実施例では、曲全体を音声データ(例えばAIFFやWAV等の周知のもの)としてその音量を変更する例で示したが、例えばMIDIを用いで楽器等の音色データを順次再生する曲再生の場合は、MIDI規格のチャンネルボイスメッセージのコントロールチェンジのパートボリューム(Bn07xxH:nはMIDIチャンネルで0から15、xxは0から127までのデータバイト)を使用すれば比較的容易に実現できる。この場合、チャンネル0をオンとするにはB0077FH、チャンネル0をオフとするにはB00700Hを発行し処理すれば良い。
【0134】
第6の内部処理は、一方の音量を0(オフ)他方を最大127(オン)として同期再生を開始し、再生途中で各曲のオン/オフを切り換えて演奏ミスを表現する。
【0135】
図10の例では、同時再生を開始して約10秒(26CHtick)後に、上手な方の曲Aの音量をオフ(0)と同時に下手な方の曲Bの音量をオン(127)とする。これを約3(BBH)秒間続けた後、上手な方の曲Aの音量をオン(127)と同時に下手な方の曲Bの音量をオフ(0)とする。その約30秒(744Htick)後には、上手な方の曲Aの音量をオフ(0)と同時に下手な方の曲Bの音量をオン(127)とする。これを約12(2ECH)秒間続ける。
【0136】
これにより、図11に示す如く、あるところでは上手な方の曲Aが聞こえ、別なところでは下手な方の曲Bが聞こえる、即ち、1本の演奏として成立して聞こえるようになるが、ボリュームチェンジのタイミングについては、例えばある小節の先頭ですればより自然に聞こえると考えられる。その曲のテンポと拍子が分かれば小節の時間がわかる。例えばテンポ120の場合は1分間に120個の四分音符を処理する速さなので、4/4拍子の場合の1小節あたりの時間は、式
【数12】
Figure 2004290501
によって12秒と求まる。これより1小節あたりのtickが求まる。その他、再生したい曲の中に休符が存在すればその時間的位置を調べておき、そのタイミングで切り換えるとより自然と考えられる。また、切り換え時は上手下手な双方の曲のボリュームをクロスフェードすれば、多少の同期のズレがあったとしても適度に曖昧にすることができる。
【0137】
さすれば、ビデオゲームの実行中にボリュームチェンジテーブルに基づいて曲の音量バランスが自動的に変更され、ミス演奏処理における演奏ミスが表現されるので、記録容量を増加させることなく、ビデオゲーム中でのキャラクタによる演奏の上手下手を表現することができる。
【0138】
なお、この発明は上述第1及び第2実施例に限定されるものではなく、種々の応用改変が可能である。
【0139】
例えば、第1実施例においては、ピッチシフトデータの待ち時間は、曲先頭からの絶対時間ではなく直前のデータとの相対時間を求めているが、絶対時間のまま処理することも可能である。
【0140】
即ち、図6を図12とした場合である。
【0141】
この場合、図12に示す如く、2番目のデータの待ち時間は0744Hではなく,1番目の待ち時間とシフト時間を更に足した値26CH+3EH+0744H=9EEHとなる。
【0142】
この場合、1tick経過する度に1インクリメントする変数を経過時間(計時手段1)としてメモリに用意し、1インクリメントする度に経過時間とテーブル上のピッチシフトデータ先頭の待ち時間と比較していき、一致した場合はそのピッチシフトデータのピッチ変位及びシフト時間を読み、ピッチ変位分だけピッチシフトを開始すると共に読んだシフト時間を残り時間(計時手段2)としてメモリに一時記憶し、1tick経過する度に残り時間を1デクリメントすると共にこの間も経過時間を1インクリメントし、残り時間が0になったらピッチシフトを終了し、経過時間を1インクリメントする度に経過時間とテーブル上のピッチシフトデータ先頭の待ち時間(未だ処理していないもの)と比較していき、曲再生終了までこれを繰り返す。
【0143】
また、第1実施例においては、曲再生直前にテーブル内のデータを作成する場合で説明したが、予め作成されたデータを用いて曲再生直前にいずれかのデータを選択する構造であっても良い。
【0144】
この場合、図5のようなデータ構造のピッチシフトデータを、実際に曲再生で使用するものよりも多い数、例えば10パターン程度を予め作成してプログラムで用意しておき、再生直前にキャラクタの能力値に応じて0から5つ以内(ミス頻度数分)で選択する。いずれかを選択するかは、テーブル内ピッチシフトデータ数、即ち10であれば0から9(即ち10−1)までの範囲で乱数を発生させてミス頻度数分繰り返す。そして得られた値をデータ先頭からのオフセットとして昇順にした後、テーブル上で対応するその位置のピッチシフトデータをメモリに一時記憶して曲再生を開始する。
【0145】
ここで、予め作成されたデータを用いる利点として、単に曲再生前の処理落ちの回避という点だけでなく、任意の位置でピッチシフトするとした場合の明らかに不自然な音程変化の防止や、曲の盛り上がりいわゆるサビの部分でミスを表現することができる等が考えられる。
【0146】
また、単に音声データの再生途中で再生周波数を変更する技術自体は公知であるので、実際にピッチシフト処理をする部分のプログラムを組む場合、再生途中で再生周波数を変更するためのソフトウェア及びハードウェア環境が予め用意されていれば、ピッチ変更後の再生周波数を直接指定し、シフト時間経過後に元の再生周波数に戻すという比較的単純な命令で組むことができる。
【0147】
また、ピッチシフトを実現するにあたって、本実施例では曲全体を音声データ(例えばAIFFやWAV等の周知のもの)としてその再生周波数を変更する例で示したが、例えばMIDIを用いで楽器等の音色データを順次再生する曲再生の場合は、MIDI規格のチャンネルボイスメッセージのピッチベンドチェンジ(EnxxyyH:nはMIDIチャンネルで0から15、xxとyyは0から127までのデータ)を使用すれば比較的容易に実現できる。MIDIデータは、ある音色データを、いつ、どの程度のピッチで再生するかといった命令が列記されたプログラムであり、MIDIデータ中のデルタタイムの計時によってその曲の時間制御を行うことから、曲の再生時間と各音色データの再生速度とは無関係であるといえる。ここで、例えばある音色波形データが減衰しないでループするものであれば、MIDIデータ中のノートオン(発音)処理後、その音色データの終端まで再生したら先頭に戻り、次のノートオフ(消音)を処理するまで再生を繰り返すこととなる。このため、仮にMIDIによる曲再生途中でピッチを変更したとしても、本実施例のように上述した本来の時間に戻すという問題は起こらないので、複数の音色による合奏でも特別な処理を必要とせずに特定の音色のみを容易にピッチシフトすることができる。
【0148】
更に、第2実施例において、ボリュームチェンジデータの上位ワードの上手な曲の再生時間は、曲先頭からの絶対時間ではなく直前のデータとの相対時間を求めているが、下手な曲への切換時間として絶対時間のまま処理することも可能である。
【0149】
即ち、図10を図13とした場合である。
【0150】
この場合、図13に示す如く、2番目のボリュームチェンジデータの下手な曲への切換時間はは0744Hではなく,1番目の下手への切換時間と下手な曲再生時間を更に足した値は、式
【数13】
Figure 2004290501
によってA6BHとなる。
【0151】
この場合、1tick経過する度に1インクリメントする変数を経過時間(計時手段1)としてメモリに用意し、1インクリメントする度に経過時間とテーブル上のボリュームチェンジデータ先頭(上位ワード)の下手な曲への切換時間と比較していき、一致した場合は下位ワードの下手な曲の再生時間を読み、上手な曲の音量を0で下手な曲の音量を最大に切り換えると同時に読んだ再生時間を残り時間(計時手段2)としてメモリに一時記憶し、1tick経過する度に残り時間を1デクリメントすると共にこの間も経過時間を1インクリメントし、残り時間が0になったら上手な曲の音量を最大で下手な曲の音量を0に切り換えて、経過時間を1インクリメントする度に経過時間とテーブル上のボリュームチェンジデータ先頭の下手な曲への切換時間(未だ処理していないもの)と比較していき、曲再生終了までこれを繰り返す。
【0152】
尚、下位ワードの下手な曲再生時間についても、上手な曲への切換時間として曲の先頭からの絶対時間で表現することも可能である。
【0153】
更にまた、第2実施例においては、曲再生直前にテーブル内のデータを作成する場合で説明したが、予め作成されたデータを用いて曲再生直前にいずれかのデータを選択する構造であっても良い。
【0154】
この場合、図13のようなデータ構造のボリュームチェンジデータを、実際に曲再生で使用するものよりも多い数、例えば10パターン程度予め作成しておき、再生直前にキャラクタの能力値に応じて0から5つ以内(ミス頻度数分)で選択する。いずれかを選択するかは、テーブル内ボリュームチェンジデータ数、即ち10であれば0から9(即ち10−1)までの範囲で乱数を発生させミス頻度数分繰り返す。そして得られた値をデータ先頭からのオフセットとして昇順にした後、テーブル上で対応するその位置のボリュームチェンジデータをメモリに一時記憶して曲再生を開始する。
【0155】
予め作成されたデータを用いる利点として、単に曲再生前の処理落ちの回避という点だけでなく、任意の位置でボリュームチェンジするとした場合の音の不連続によるノイズを回避できたり、曲の盛り上がりいわゆるサビの部分でミスを表現することができる等が考えられる。
【0156】
また、演奏ミスとは単に音程を間違えただけでなく発音タイミングを間違えた場合、即ち時間的なズレがある場合も含まれるが、このズレが表現されている最中に丁度下手な曲から上手な曲へ切り換えるタイミングの場合、データの不連続によるノイズが発生する場合がある。これを回避するには、現在発音中の曲を一度に最小値にするのではなく所定時間毎に徐々に最小値に減衰(フェードアウト)させ、一方では現在消音中の曲を一度に最大値にするのではなく所定時間毎に徐々に最大値に増加(フェードイン)させるクロスフェード処理をすることが好ましい。音量を徐々に変化させるためには例えば約160ミリ秒程度のフェード時間を定め、10tick経過する度に音量を増加又は減少させる処理をする。尚、双方の曲に与える音量は音圧レベルの変化と考えるとより自然な変化を表現できる。音圧レベルは
【数14】
Figure 2004290501
で表されることが知られている。
【0157】
実際には、音量最大値(127で固定)をP0、音量変数(0から127で線形に変化)をPとして上記式に代入すると、Pが0付近の時は音圧レベルの変化率が大きく、最大値付近の時は音圧レベルの変化率が小さいような特性が得られる。これをテーブルに持ち、Pをフェード開始からのtick数(即ちインデックス)として10tick(フェード間隔)経過する度にこのテーブルからSPLを求めて、得られたSPLを音響処理部に与えることでより自然な音量変化を表現できる。ここで、フェードインはPが0から127に向けて変化し、フェードアウトはPが127から0に向けて変化する。
【0158】
尚、上記実施例ではフェード時間を約160ミリ秒程度と定めたが、これを変更する場合はフェード間隔が変更される(図14参照)。
【0159】
また、追記すると、上述した第1実施例においては、ピッチがプラス・マイナス1の変化で再生周波数がプラス・マイナス1000Hzだけ変化するとし、ピッチシフトデータのシフト時間を62tick(3EH)で固定としたが、これに限定されるものではない。
【0160】
更に、第2実施例におけるボリュームチェンジデータのデータ構造で、上手な曲と下手な曲の再生時間としたが、例えば、各曲に対応したオンオフフラグを設け、発音したい曲に対応したフラグは1(オン)、発音しない曲に対応したフラグは0(オフ)とし、第1の実施形態でいう待ち時間とこれらのオンオフフラグで構成したテーブルデータに基づいてボリュームチェンジしても良い。この際、2バイトを使用してオンオフフラグを表した場合、最下位ビット(ビット0)を曲0、最上位ビット(ビット15)を曲15に対応させると、16曲のフラグ処理が可能となり、上手な曲と下手な曲の2曲を1組としても8組の音色の同時制御に対応することになる。
【0161】
更にまた、本第1及び第2実施例においては、キャラクタの能力値として技術力を挙げたが、他にも例えば表現力を挙げることができる。表現力は演奏ミスと直接関係しないため本実施例では取りあげなかったが、表現力が高まった時には、いわゆるビブラートやトレモロ、付加音によるハーモニー等の処理が可能なようにすれば、能力値に対する表現として効果的と考えられる。ここで、例えばビブラートであれば、細かい所定間隔で繰り返すピッチシフトとも考えられ、またトレモロであれば、細かい所定間隔で繰り返すボリュームチェンジとも考えられるので、本実施例のテーブルデータによる時間制御を応用すれば実現できることが明らかである。また、MIDI等による曲再生環境であれば、付加音によるハーモニーについても、テンション等の音楽理論に基づいてピッチシフトした音を別パート(チャンネル)で同時に再生することで実現できる可能性がある。また、いわゆるこもった感じや金属的な響き等の音質の変化を表現するにはデジタルフィルタを用いることが知られている。
【0162】
また、本第1及び第2実施例においては、処理時間の単位をtickと定義し、1tickを16ミリ秒と設定したが、これに限定されるものではない。16ミリ秒はゲームの画面表示を制御する垂直帰線割込(Vsync)の周期と一致するので、画像処理時間に影響する(処理落ちの危険がある)ような場合は、別にタイマ割込みを発生させ、例えば10ミリ秒に1度の周期で呼び出される(処理される)ようにしても良い。この場合は1tickが10ミリ秒となる。
【0163】
更に、この発明の第1または第2実施例においては、ピッチシフトのデータテーブルに基づくピッチシフトのタイミング及びピッチの自動変更処理や、ボリュームチェンジテーブルに基づく曲の音量バランスを自動変更処理を行う構成としたが、演奏ミスを表現する場合に、上述のピッチシフトのタイミング及びピッチ、あるいは曲の音量バランス以外にも、曲に合致しない異音を発生させる特別構成とすることも可能である。
【0164】
さすれば、演奏ミスを表現する際に、曲に合致しない異音を発生させれば、音楽用ビデオゲーム中でのキャラクタによる演奏の上手下手の表現に際して、上手な方と下手な方との演奏状況をより一層明確に表現することが可能となり、演奏の上達しようとする意欲を湧かせることができるものである。
【0165】
【発明の効果】
以上詳細に説明した如く、この発明によれば、ビデオゲームのゲーム音楽の演奏状態を制御する曲演奏制御方法であって、曲の再生を開始するステップと、キャラクタの能力値に基づいて作成されたピッチシフトテーブルに基づいて、再生中の曲のピッチシフトのタイミング及びピッチを自動的に変更するステップと、を含むことによって、演奏ミスを表現することができ、記録容量を増加させることなく、ビデオゲーム中でのキャラクタによる演奏の上手下手を表現することができるものである。
【0166】
また、ビデオゲームのゲーム音楽の演奏状態を制御する曲演奏制御方法であって、複数の曲の再生を同時に開始するステップと、キャラクタの能力値に基づいて作成されたボリュームチェンジテーブルに基づいて、再生中の各曲の音量バランスを自動的に変更するステップと、を含むことによって、演奏ミスを表現することができ、記録容量を増加させることなく、ビデオゲーム中でのキャラクタによる演奏の上手下手を表現することができるものである。
【図面の簡単な説明】
【図1】この発明の第1実施例を示すビデオゲームの曲演奏制御方法の制御用メインルーチンのフローチャートである。
【図2】ビデオゲームの曲演奏制御方法のミス演算処理のサブルーチンを示すフローチャートである。
【図3】ゲーム装置の接続態様を示す概略斜視図である。
【図4】ゲーム装置の本体の構成を示す概略ブロック図である。
【図5】ピッチシフトデータのデータ構造を示す図である。
【図6】ピッチシフトのデータテーブルを示す図である。
【図7】この発明の第2実施例を示すビデオゲームの曲演奏制御方法のミス演算処理のサブルーチンを示すフローチャートである。
【図8】フェード処理のフローチャートである。
【図9】ボリュームチェンジデータのデータ構造を示す図である。
【図10】ボリュームチェンジのデータテーブルを示す図である。
【図11】演奏状態を示す概略説明図である。
【図12】この発明の第1の実施例におけるピッチシフトのデータテーブル(図6)の応用改変例を示す図である。
【図13】この発明の第2の実施例におけるボリュームチェンジデータのデータ構造(図9)とボリュームチェンジのデータテーブル(図10)の応用改変例を示す図である。
【図14】この発明の第3の実施例における音圧の実効値Pと音圧レベルSPLとの関係を示す図である。
【符号の説明】
2 テレビ
4 モニタ
6 スピーカ
8 ゲーム装置
10 入力装置
12 記録媒体
14 本体
16 CPU(Central Processing Unit)ブロック
18 SCU(System Control Unit)
20 CPU
22 ROM(Read Only Memory)
24 RAM(Random Only Memory)
26 バス
28 外部バス
30 入力受信部
32 媒体読取部
34 画像処理部
36 音響処理部
38 ネットワーク接続部
40 ネットワーク[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a music game performance control method, a program, a storage medium, and a game device, and in particular, in a simulation game of a music player, based on the ability value (technical skill, skill, etc.) of the character, The present invention relates to a music performance control method, a program, a storage medium, and a game device for a video game that expresses good and bad.
[0002]
[Prior art]
[Patent Document 1]
Japanese Patent No. 2631030 (page 1-3, FIG. 3)
[Patent Document 2]
JP-A-10-337379 (page 1-3, FIG. 1)
[Patent Document 3]
JP 2000-185175 A (page 1-4, FIG. 1-5)
[Patent Document 4]
Japanese Patent Laid-Open No. 10-78792 (page 1-3, FIG. 1)
[Patent Document 5]
JP-A-5-181497 (page 1-3, FIG. 1)
[0003]
[Problems to be solved by the invention]
Conventional video game music performance control methods include the following.
[0004]
First, when expressing performance mistakes, the simplest technique is essentially the same song, but prepare at least two songs, one that is good and one that is poor, and set the ability value (technical skill, skill, etc.) of the character. A method of automatically selecting and playing any one piece of music based on the above is conceivable. However, in this case, there is no change during the playback of the song, and as an expression, only one of the prepared songs is played back, so you will always make mistakes at the same part and get bored quickly. There is a drawback.
[0005]
If the level of performance is increased, the number of songs to be prepared increases and the recording capacity increases, which is not preferable.
[0006]
Further, in Japanese Patent No. 2631030 (see Patent Document 1) by the present applicant, after the BGM reproduction for accompaniment is started, the reproduction of the sound for the melody is started, and the movement amount of the pointing device by the player is detected and being reproduced. An invention is disclosed in which the pitch (pitch) of the melody sound can be changed and improvised performance can be performed. According to the present invention, improvisation can be enjoyed by moving a pointing device such as a mouse connected to a personal computer without requiring special music knowledge.
[0007]
However, in reality, it is not easy for the player to control (that is, perform) the pitch change well by the coordinate displacement of the mouse or the like, and tends to get bored.
[0008]
On the other hand, Japanese Patent Laid-Open No. 10-337379 (see Patent Document 2) discloses an invention in which the number of timbres, the number of performance parts, and the performance unit length of game music are changed stepwise in accordance with the step change in game performance. It is disclosed. In other words, by gradually increasing the performance parts and performance phrases according to the number of points earned, the number of wins, etc., the gorgeous orchestra structure is finally set, so the increase in game performance is audible. It becomes possible to recognize.
[0009]
However, since it does not represent performance mistakes, it does not change only a small part of the sound during performance.
[0010]
In Japanese Patent Laid-Open No. 2000-185175 (see Patent Document 3), the flag information of the part table that manages the on / off of the part of the game music to be played is changed according to the progress of the game, and the flag is turned on. An invention that reproduces only the part that is present is disclosed. At the same time, instead of simply flag information, numerical information indicating the mixing ratio for the volume of each part is managed on the part table, for example, every time a treasure is acquired, by increasing the mixing ratio of the part corresponding to the treasure, An invention for increasing the volume of the part (decreasing if the treasure is lost) is also disclosed.
[0011]
Also according to the present invention, the music to be played is gradually revealed according to the progress of the game, so that the player's feeling of achievement can be improved. Because there is no, it does not change only a small part of the sound in the middle of the performance.
[0012]
Further, in Japanese Patent Laid-Open No. 10-78792 (see Patent Document 4), the voice data of registered characters is processed into a voice preferred by the game player by a simple operation for changing the volume, pitch and the like. An invention capable of reproducing the sound is disclosed.
[0013]
In the present invention, the sound is reproduced as set by the player's preference, but again, it does not represent a performance mistake. Similarly, only a small part of the sound during the performance is changed. is not.
[0014]
In addition, the pitch shifting technique itself is widely known. For example, as disclosed in Japanese Patent Laid-Open No. 5-181497 (see Patent Document 5), an invention for changing the pitch shift amount to obtain a vibrato effect during audio reproduction is disclosed. However, similarly, since it does not represent a performance error, it does not change only a small part of the sound during the performance.
[0015]
In view of this, the present invention provides the following two measures for expressing good and bad performance by a character based on the ability value (technical skill, skill, etc.) of the character in a simulation game of a music player.
(A) The pitch (pitch) of the song being played is automatically changed (pitch shift) based on the pitch shift table to express a performance error.
(B) Prepare two songs, one that is originally the same but good and bad, and start synchronized playback with one volume set to 0 and the other set to maximum. Change the volume balance of songs to express performance mistakes.
[0016]
[Means for Solving the Problems]
Accordingly, in order to solve the above-described problem, the present invention provides a music performance control method for controlling the performance state of video game music. The music performance control method is created based on the step of starting the music playback and the ability value of the character. And a step of automatically changing the pitch shift timing and pitch of the music being reproduced based on the pitch shift table.
[0017]
Also, a music performance control method for controlling the performance state of game music of a video game, based on a step of simultaneously starting playback of a plurality of songs, and a volume change table created based on the ability value of a character, Automatically changing the volume balance of each piece of music being played back.
[0018]
Furthermore, it is a program for controlling the performance state of game music that can be executed by a video game, and the computer is reproduced based on a means for starting reproduction of a song and a pitch shift table created based on the ability value of the character This is a program for functioning as means for automatically changing the pitch shift timing and pitch of the music in the middle.
[0019]
Furthermore, a program for controlling the performance state of game music capable of executing a video game, wherein the computer is stored in a volume change table created on the basis of a means for simultaneously starting playback of a plurality of songs and a capability value of a character. This is a program for functioning as means for automatically changing the volume balance of each piece of music being played back.
[0020]
A computer-readable recording medium on which the program according to claim 3 or 4 is recorded.
[0021]
Furthermore, the game device controls the playing state of the game music of the video game, and is based on the means for starting the reproduction of the music and the pitch shift table created based on the ability value of the character. And a means for automatically changing the timing and pitch of the pitch shift.
[0022]
Furthermore, it is a game device for controlling the performance state of the game music of the video game, and is reproduced based on means for simultaneously starting reproduction of a plurality of songs and a volume change table created based on the ability value of the character. And a means for automatically changing the volume balance of each song in the game device.
[0023]
DETAILED DESCRIPTION OF THE INVENTION
By inventing as described above, the pitch (pitch) of the music being reproduced is automatically changed (pitch shift) based on the pitch shift table to express a performance mistake.
[0024]
In addition, two songs, one that is originally the same song, but one that is good and one that is bad, are prepared. Synchronous playback is started with one volume set to 0 and the other set to maximum, and each song is automatically played during playback based on the volume change table. The performance balance is expressed by changing the volume balance.
[0025]
【Example】
Embodiments of the present invention will be described below with reference to the drawings as embodiments of a program executed on a game device for a video game using a home television.
[0026]
1 to 6 show a first embodiment of the present invention. In FIG. 3, 2 is a television, 4 is a monitor, 6 is a speaker, 8 is a game device, 10 is an input device, and 12 is a recording medium.
[0027]
The game device 8 connects the main body 14 to the television 2 and connects the input device 10 to the main body 14, reads a video game program from the recording medium 12 inserted into the main body 14, and executes a video game.
[0028]
Further, as shown in FIG. 4, the game apparatus 8 includes a CPU (Central Processing Unit) block 16 for controlling the entire apparatus on a main body 14 as a computer for executing a video game program.
[0029]
The CPU block 16 includes an SCU (System Control Unit) 18 that mainly controls data transfer with each of the units 30 to 36 described later in the main body 14, a CPU 20 that operates as a central processing unit with a high-speed clock, and a game device 8. ROM (Read Only Memory) 22 in which basic control operations are stored, RAM (Random Only Memory) 24 that functions as a CPU work area and temporarily stores a game program recorded in the recording medium 12, and these And a bus 26 for connecting the two.
[0030]
An external bus 28 is connected to the SCU 18 of the CPU block 16. The external bus 28 receives an input from the input device 10 such as a controller pad and transfers input information to the CPU block 16 and a game program recorded on the recording medium 12 having a sub CPU (not shown). A medium reading unit 32 such as a CD-ROM drive that transfers to the reading CPU block 16, an image processing unit 34 that includes a frame buffer (not shown) and creates image information according to the information transferred from the CPU block 16, and a sub CPU (not shown) And a sound processing unit 36 that processes sound.
[0031]
Further, an input device 8 is connected to the input receiving unit 30. The image processing unit 34 is connected to the monitor 4 of the television 2. The acoustic processing unit 36 is connected to the speaker 6. The game apparatus 8 connects a network connection unit 38 to the external bus 28 and connects to another game apparatus 8a via the external network 40 through the network connection unit 38, so that other players can participate. It becomes possible.
[0032]
Next, referring to the flowcharts shown in FIGS. 1 and 2, the operation of the game apparatus 8 will be described with the CPU 20 of the CPU block 16 as a main component.
[0033]
First, when the recording medium 12 is inserted into the game apparatus 8 and the power is turned on by pressing a power switch (not shown) of the game apparatus 8, the CPU 20 reads the video game program and game data from the recording medium 12, and the RAM 24. To remember. Thereafter, the CPU 20 displays a predetermined game screen on the monitor 4 of the television 2 on the basis of the video game program stored in the RAM 24 and the instruction content from the input device 10, and controls and advances the video game.
[0034]
As shown in FIG. 1, when the control starts, first, in step 100 (also referred to as “S100”), an initial setting process for executing the screen display process of the present invention is performed.
[0035]
In the initial setting process, various data such as the previous data value temporarily stored in the RAM 24 are initialized in the game program.
[0036]
Here, the data is a value obtained from a pitch shift data table, which will be described later, and the pitch shift data table is a table indicating how much pitch shift is performed at which timing.
[0037]
Next, in step 102, whether or not a vertical blanking interruption (Vsync) is performed at a cycle of 1/60 seconds (16.6 milliseconds), for example, which coincides with the vertical blanking cycle of the television 2 or not. Judging. If the determination is affirmative, the process proceeds to step 104 of the miss performance process. When a negative determination is made, in the next step 106, main processing such as input processing for the input information transferred from the input reception unit 30 and acoustic processing for causing the sound processing unit 36 to synthesize game sound effects is executed, Proceed to step 108.
[0038]
In step 108, it is determined whether or not a predetermined button for ending the game is selected and pressed in step 106. If a negative determination is made, the process returns to step 102, and if an affirmative determination is made, the program is ended (step 110).
[0039]
In the miss performance process of step 104 shown in FIG. 1, as shown in FIG. 2, it is determined whether or not the status song is stopped in step 200. If the determination is affirmative, the process proceeds to step 202. Then, a new song is selected and the counter is cleared, that is, “0 (zero)” is set.
[0040]
Then, the process proceeds to step 204 after step 202. In this step 204, the miss frequency is calculated from the ability value of the character. In step 206, a pitch shift table is created, and the waiting time, pitch displacement, and shift are calculated from the miss frequency. Calculate time.
[0041]
Thereafter, in step 208, the waiting time is set in the counter, the status is set to shift waiting, the reproduction of the music is started, and the process returns to the main routine.
[0042]
When the above-mentioned step 200 is negative, it is determined at step 210 whether or not the “music data end”, that is, whether or not the data processing of the selected music has been completed. In step 212, the status is set to tune stop. In step 214, tune stop processing is performed, and the process returns to the main routine.
[0043]
Further, when the above step 210 is negative, it is determined at step 216 whether or not the status is waiting for a shift, and when affirmative, the counter is “0 (zero)” at step 218. Determine whether.
[0044]
If the determination in step 218 is negative, the counter is decremented by "1" in step 220, the music reproduction process is performed in step 222, and the process returns to the main routine.
[0045]
If the determination in step 218 is affirmative, in step 224, the shift time is set in the counter, the status is set to pitch shift, and the shift is started by the pitch displacement. Is played back, and the process returns to the main routine.
[0046]
Further, when the determination at step 216 is negative, it is determined at step 226 whether or not the status is pitch shift. When this determination is affirmative, at step 228 the counter is set to “0 ( Zero) ”. If the determination in step 228 is negative, the pitch shift process is performed in step 230, the counter is decremented by“ 1 ”in step 232, and in step 222, Performs song playback processing and returns to the main routine.
[0047]
If the determination in step 226 is negative, in step 222, the music is played back and the process returns to the main routine.
[0048]
Furthermore, when the determination in step 228 is affirmative, the original pitch is restored, the next waiting time is set in the counter, and the status is set to wait for shift. And return to the main routine.
[0049]
In the first embodiment, the pitch (pitch: pitch) of the song being played (played) by the character is automatically changed based on the pitch shift data table. Is to express
[0050]
The actual processing operation will be described in detail. The pitch shift can be realized by compressing or expanding the processing time of the audio data. That is, it can be realized by changing the reading speed (that is, the reproduction speed) of the audio data temporarily stored in the memory.
[0051]
Specifically, the time axis of the audio data to be read is compressed if it is read quickly from the memory, and the time axis is extended if it is read slowly. For example, when the audio data to be reproduced has a sampling frequency of 44.1 kHz, a quantization bit number of 16 bits, and stereo, in the audio reproduction program, the processing speed of the audio data per second is as follows:
[Expression 1]
Figure 2004290501
Therefore, it is necessary to process 176400 bytes of data.
[0052]
Here, if the number of data to be processed per second is doubled, the pitch of the reproduced audio is doubled, while the time axis is reduced by ½, and the reproduction time is halved. As a result, the tempo is doubled and the sampling frequency is also doubled.
[0053]
This sampling frequency means the reproduction frequency, that is, the number of data to be reproduced per second. Therefore, when digital signal processing such as further processing of the pitch-shifted audio data is performed, the sampling frequency is restored. It is preferable to process.
[0054]
Specifically, when the sampling frequency is increased, the sampling frequency can be restored by thinning out the dense audio data so as to leave one sample every two samples, for example, and when the sampling frequency is decreased, the sampling frequency is widened. The sampling frequency can be restored to the original by performing an interpolation process to insert appropriate data between the samples.
[0055]
It is known that this interpolation processing is generally performed using a digital filter. In this embodiment, it is only necessary to reproduce the pitch-shifted sound, so there is no need to consider the adjustment of the sampling frequency.
[0056]
In the case of pitch shifting, it is necessary to return to the original time later so that it becomes difficult to hear due to tempo changes. Here, the tempo is the number of quarter notes played per minute. For example, a tempo of 120 means that 120 quarter notes are played per minute.
[0057]
When the pitch is increased as a process for returning to the original time, for example, part of the data after the compression target part in the input audio data is pre-read, and after the reproduction of the compression target part, the pre-read data is originally read. A method of concatenating and reproducing until the return time is reached and returning to normal playback when the original return time is reached can be considered. In this case, the pre-read data is reproduced in duplicate.
[0058]
In order to lower the pitch, for example, a method may be considered in which a portion to be decompressed in the input side audio data is decompressed and restored to normal reproduction after reproduction, and the input audio data corresponding to the expansion is cut. In this case, if both are restored as they are to the original time reproduction, noise due to the discontinuity of the speech waveform is generated, and some countermeasure is required. However, in the embodiment of the present invention, since it is desired to express a performance mistake in solo performance, it is not necessary to return to the original time after the mistake, and the data is processed in order without duplicating or cutting the data described above. Therefore, the problem of noise does not occur. In order to express a performance mistake, even if the sampling frequency is 44.1 kHz, it is sufficient to change about plus or minus 5 kHz, and there is no significant influence on the compression and expansion of the actual processing time.
[0059]
In the actual processing of pitch shift, it is only necessary to increase or decrease the number of data to be reproduced per second. For example, when it is necessary to read (reproduce) 176400 bytes of data per second for normal audio reproduction, Increase or decrease the value.
[0060]
Here, the vertical blanking interval (Vsync) for controlling the screen display of the game, which coincides with the vertical blanking cycle of the monitor 4 of the television 2 connected to the main body 14 of the game apparatus 8, is usually 1 in the game program. Although it is called once every 60 seconds (16 milliseconds), in the above example, about 2822 bytes of data need to be read (reproduced) at 1 Vsync (16 milliseconds).
[0061]
Actually, audio data recorded in advance on a recording medium, etc. is temporarily stored in a stream buffer (generally a double buffer) of about 32KX4 bytes while being read sequentially from the beginning, while the temporarily stored audio data is reproduced. Based on the frequency, a process of sequentially transferring to the audio processing unit and reproducing from the speaker is performed. At this time, it is not necessary to read the data for one second at a time, and it is sufficient if the reproduction speed matches.
[0062]
In this first embodiment, when it is determined that the reproduction frequency is changed by plus / minus 1000 Hz with a change of plus / minus 1, the number of data to be increased / decreased per second is 16 bits and stereo.
[Expression 2]
Figure 2004290501
As a result, plus / minus 4000 bytes. When 16 milliseconds is 1 tick (hereinafter the same), the increase / decrease is about plus / minus 64 bytes at 1 tick. Further, since 16 milliseconds is set to 1 tick, it becomes about 62 tick per second.
[0063]
The internal processing will be described.
[0064]
As the first internal processing in the first embodiment of the present invention, a pitch shift data table indicating how much pitch shift is performed at which timing is provided.
[0065]
At this time, the data format of the pitch shift is a number from − (minus) 5 to + (plus) 5 (ie, pitch displacement) with the current pitch as the center (0), and from the start of the pitch shift to the return. (That is, the shift time) and the waiting time until the pitch shift.
[0066]
FIG. 5 shows a data structure of pitch shift data and an example thereof.
[0067]
As shown in FIG. 5, the first two bytes (upper word) represent the waiting time (the unit is tick) until the next pitch shift processing. Here, 2 bytes can represent a numerical value from 0 to 65535, but if 1 tick is 0.016 seconds,
[Equation 3]
Figure 2004290501
Thus, it becomes about 17 minutes, and a waiting time of up to about 17 minutes can be expressed with 2 bytes. In other words, the pitch shift process of the first embodiment of the present invention can be performed for a song of up to about 17 minutes, and in this respect, 2 bytes is considered sufficient.
[0068]
Here, if a pitch shift occurs after 10 seconds, it will advance about 62 ticks per second, that is, about 620 ticks per 10 seconds, and will be 26 CH in hexadecimal notation (H indicates hexadecimal notation; hereinafter the same). ).
[0069]
The upper 2 bytes of the next 2 bytes (lower word) indicate the number from -5 to +5 (FBH to 05H in hexadecimal notation) with the current pitch as the center (0), that is, the pitch shift amount (pitch displacement). . When this value is +1, as described above, about 64 bytes (40H) are processed in 0.016 seconds as described above. That is, the number of bytes 2822 + 64 = 2886 bytes obtained by adding 64 bytes to the 2822 bytes to be originally processed every 0.016 seconds is processed.
[0070]
When this value is -1, 2822-64 = 2758 bytes are processed every 0.016 seconds. Similarly, when this value is +5, the reproduction frequency is increased by 5000 Hz in 1 second, and processing is increased by 64 × 5 = 320 bytes (140H) in 0.016 seconds. That is, the number of bytes 2822 + 320 = 3142 bytes obtained by adding 320 bytes to 2822 bytes that should be processed is processed every 0.016 seconds. When the pitch displacement is 0, no mistake is expressed.
[0071]
In addition, it indicates how many pitch shift processing the pitch shift process is repeated in the lower byte of the lower word, that is, the pitch shift time. Since 1 tick is 0.016 seconds, it is about 62 tick (3EH) per second. In this embodiment, since it has been decided that the reproduction frequency plus / minus 1000 Hz changes with respect to the plus / minus 1 change per second, 62 tick (3EH) is used here, but the pitch shift is clearly expressed as a performance error. Alternatively, it may be about 124 tick (2 seconds) or may be obtained by a random number within a fixed value range.
[0072]
After the pitch shift processing, processing may be performed so as to gradually return to the original pitch. However, in the first embodiment of the present invention, the original playback speed is immediately returned, that is, processing is performed every 0.016 seconds. It is assumed that the number of bytes is returned to 2822 bytes.
[0073]
A pitch shift data table as shown in FIG. 6 is obtained by temporarily storing such pitch shift data.
[0074]
FIG. 6 shows that a pitch shift of +5 is executed only for about 1 second (3EHtic) after about 10 seconds (26CHtick) from the start of music playback, and about -3 for about 1 second (3EHtic) after about 30 seconds (744Htick). It is the content of executing pitch shift.
[0075]
In the second internal process, a data string in the data table is calculated in advance immediately before the performance based on the ability value of the character and temporarily stored.
[0076]
The pitch shift timing (time), how deep (degree), and how many times (frequency) should be changed for each performance based on the performance value (technical skill, skill, etc.) of the performance character. The data in the data table is calculated and updated every time before the music performance.
[0077]
With regard to the frequency of occurrence of pitch shift (miss frequency: MN), for example, assuming that the ability value of a character can be taken as a level of technical ability and can take a value from 0 to 127, first, the value is divided by 25 to obtain a quotient. Is a value from 0 to 5 (performance level: PL), and when the quotient PL is subtracted from the maximum performance level 5, the number of mistakes (miss frequency: MN) is a value from 0 to 5.
[0078]
For the pitch shift amount (pitch displacement: SL), which is the degree of miss, for example, a random number RN is generated in the range from 0 to the miss frequency MN, temporarily stored in the memory, and the previously obtained random number RP (initial value is Compared to 0)
RN ≧ RP
Then + RN is SL (increase)
RN <RP
Then, -RN is set to SL (decrease). In this way, the pitch displacement SL is in the range from −4 to +5. This is repeatedly obtained for the miss frequency MN. Thereby, the pitch displacement of the pitch shift data is calculated.
[0079]
In the first embodiment of the present invention, the shift time of the pitch shift data is fixed at 62 ticks (3EH) as described above.
[0080]
As for the time PT for causing the pitch shift, since the length of the music to be reproduced is known in advance, for example, in the case of a music of 3 minutes,
[Expression 4]
Figure 2004290501
Therefore, since it is 11250 ticks, random numbers are generated in the range from 0 to 99,
[Equation 5]
Figure 2004290501
Then, an arbitrary value from 1 to 11250 is obtained, and the obtained value may be used as the time PT for causing the pitch shift.
[0081]
For example, if you get 5 as a random number,
[Formula 6]
Figure 2004290501
By 675 (2A3H) tick and the formula
[Expression 7]
Figure 2004290501
Causes a pitch shift after about 10 seconds.
[0082]
This is repeatedly obtained for the miss frequency MN. Since the obtained time PT for causing the pitch shift is an absolute time from the beginning of the song, if there is pitch shift data before that, the sum of the waiting time and the shift time is subtracted to obtain the relative time from the previous data. Thus, the waiting time of the target pitch shift data is calculated. Here, even if the entire song is 11250 ticks, there is a problem of “returning to the original time” as described above. Therefore, in order to express the mistake as many times as desired during the playback of the song, the pitch Even if the value used for calculation of the time PT to cause the shift is set to be slightly less than 11250, the pitch shift processing is completed at the end of the music, so that this does not cause a big problem. Further, when the obtained time PT for causing the pitch shift exactly overlaps the shift time of other pitch shift data, the time PT is obtained again.
[0083]
Further, the performance value (technical skill, skill, etc.) of the performance character used for these calculations rises when practiced by the operation of collecting the score by the player's operation, and the difficulty of the score set in advance and the practice (operation of the player) ) Calculate the ability value from time etc.
[0084]
In the first embodiment of the present invention, the capability value referred to here is considered as the technical capability. That is, the difficulty level of the score is a numerical value from 0 to 5, and the practice time is considered as the number of times of practice for convenience, and the total number of these times is multiplied by the number of times of practice according to the difficulty level of the score, and the value from 0 to 127 We will use what we have as technical capabilities. In actual settings, it is possible to provide restrictions such as not allowing practicing for highly difficult scores unless the skill level exceeds a certain level, or practicing only when a predetermined event occurs. .
[0085]
The score here may be a score of a song (for example, a song with a similar genre, arrangement, phrase, etc.) from the score of the song to be reproduced. The practice here may be the performance (that is, reproduction) of the music of the score including a performance mistake, but the player simply performs a predetermined operation in the game (for example, selects the score). A degree agreement may be used.
[0086]
In the third internal processing, data in the data table is read sequentially from the beginning in synchronization with the reproduction (start of performance) of audio data.
[0087]
The pitch shift data table is considered as a pitch shift reproduction channel corresponding to the music (audio data) to be reproduced.
[0088]
If 2 bytes of data are read and processed, the next 2 bytes are read and processed (ie, read 2 bytes at a time), and this is repeated until the end of music playback.
[0089]
In the fourth internal processing, pitch shift is executed on the sound that is actually being generated based on the read data.
[0090]
Actually, first, the waiting time of the upper word of the first pitch shift data is read, and this is temporarily stored in the memory as the remaining time (time measuring means). When 1 tick elapses, the remaining time is decremented by 1 and becomes 0. Reads the pitch displacement and shift time of the lower word, starts a process (pitch shift) to change the playback speed of the audio data by the pitch displacement, and temporarily stores the shift time in the memory as the remaining time, every time one tick elapses The remaining time is decremented by 1 and continued at the playback speed after the pitch shift. When the remaining time becomes 0, the original playback speed is restored and the pitch shift is completed, and the waiting time of the upper word of the next pitch shift data is set. Read and repeat until the song finishes playing.
[0091]
Then, the pitch shift timing and pitch are automatically changed based on the pitch shift data table during execution of the video game, and a performance error in the miss performance process is expressed, thereby increasing the recording capacity. In addition, it is possible to express the skill of the performance by the character in the video game.
[0092]
7 to 11 show a second embodiment of the present invention. In the second embodiment, portions that perform the same functions as those of the first embodiment will be described with the same reference numerals.
[0093]
The feature of the second embodiment is that a volume change table is used in place of the pitch shift data table in the first embodiment.
[0094]
With reference to the flowcharts shown in FIG. 7 and FIG. 8, the operation of the game apparatus will be described mainly with the CPU of the CPU block.
[0095]
First, as in the first embodiment described above, when a recording medium is inserted into the game device and the power is turned on by pressing the power switch of the game device, the CPU reads the video game program and game data from the recording medium. , Stored in RAM. Thereafter, the CPU displays a predetermined game screen on the monitor of the television based on the video game program stored in the RAM and the instruction content from the input device, and controls and advances the video game.
[0096]
In the second embodiment, when the control is started, the initial setting process for executing the screen display process of the present invention is performed in the same manner as in the first embodiment described above, and thus the description thereof is omitted. .
[0097]
In the miss performance process after step 104 shown in FIG. 1 in the first embodiment described above, as shown in FIG. 7, it is determined in step 300 whether or not the status song is stopped. The process proceeds to step 302. In this step 302, a new song is selected and the counter is cleared, that is, “0 (zero)” is set.
[0098]
Then, the process proceeds to step 304 after step 302. In this step 304, the miss frequency is calculated from the ability value of the character. In step 306, a volume change table is created, and the playback time of a good song from Calculate the playback time of bad songs.
[0099]
Thereafter, in step 308, the playback time of a good music is set in the counter, the status is set to a good music, the music playback is started, and the process returns to the main routine.
[0100]
When the above-mentioned step 300 is negative, it is determined at step 310 whether or not “music data end”, that is, whether or not the data processing of the selected music has ended. In step 312, the status is set to tune stop, and in step 314, tune stop processing is performed, and the process returns to the main routine.
[0101]
If the above-mentioned step 310 is negative, it is determined at step 316 whether the status is a good song. If the determination is affirmative, whether the counter is “0 (zero)” at step 318. Judge whether or not.
[0102]
If the determination in step 318 is negative, the fade process is performed in step 320, the counter is decremented by "1" in step 322, the music reproduction process is performed in step 324, and the process returns to the main routine. .
[0103]
If the determination in step 218 is affirmative, in step 326, the playback time of the poor tune is set in the counter, the status is set in the poor tune, the fade process is started, and in step 324 Then, the music reproduction process is performed, and the process returns to the main routine.
[0104]
Further, if the determination in step 316 is negative, it is determined in step 328 whether or not the status is a bad song. If this determination is affirmative, the counter is set to “0” in step 330. If the determination in step 330 is negative, a fade process is performed in step 332, the counter is decremented by “1” in step 334, and in step 324, Performs song playback processing and returns to the main routine.
[0105]
If the determination in step 328 is negative, in step 324, the music is played back and the process returns to the main routine.
[0106]
Furthermore, when the determination in the above step 330 is affirmative, the playback time of the next good song is set in the counter, the status is set to the song well, the fade process is started, and in step 324, Performs song playback processing and returns to the main routine.
[0107]
Next, the fade process described in FIG. 7 will be described with reference to FIG.
[0108]
When moving to fade processing, the song that will be muted by lowering the sound pressure level and the song that will be sounded by raising the sound pressure level are specified in advance and stored temporarily, and a fade counter is provided. For example, 10 (tick) is set. In this case, the fade ends at 160 msec.
[0109]
When the process shifts to fade processing, it is determined in step 400 whether or not the fade counter is “0 (zero)”. If this determination is negative, the sound pressure level is set in step 402. In step 404, the song to be sounded with the sound pressure level raised is faded in, and the song to be sounded is faded in. Then, the routine returns to the routine in FIG. Return to the routine in FIG.
[0110]
In this second embodiment, two songs are prepared which are originally the same song but good (no mistakes) and poor (just mistakes), with one volume set to 0 and the other set to maximum. The reproduction is started, and the performance balance is expressed by automatically changing the volume balance of each song during the reproduction based on the volume change table.
[0111]
The first internal processing in the second embodiment is originally the same song, but prepares two songs, a song A that is good (no mistakes) and a song B that is bad (just mistakes) .
[0112]
In this second embodiment, since solo performance is assumed, other musical instruments (timbres) are not played (ensemble) at the same time. That is, two songs, a good song A and a bad song B, are set as one set. Other songs are not prepared, but other sets may be prepared so that a plurality of different timbres can be reproduced simultaneously.
[0113]
Also, in an environment where multiple parts (channels) can be played simultaneously with the same song (when using MIDI, etc.), there is no need to prepare separate songs, and one set of two parts, the better and the worse You may play as. Further, in this case, a plurality of sets may be configured so that a plurality of different timbres can be reproduced simultaneously.
[0114]
In the second internal process, a volume change data table is provided to indicate when the volume change is to be performed.
[0115]
The data format of the volume change data is composed of the playback time of the better music A and the playback time of the lower music B.
[0116]
FIG. 9 shows the data structure of volume change data and an example thereof.
[0117]
As shown in FIG. 9, the first 2 bytes (upper word) represent the playback time of the better song A, and the next 2 bytes (lower word) represent the playback time of the lower song B. Both units are the same as the tick in the first embodiment described above.
[0118]
In the above example, the better music A is played for about 10 seconds, and the lower music B is played for about 3 seconds.
[0119]
In the third internal processing, the data string in the table is calculated in advance immediately before the performance based on the ability value of the character and temporarily stored.
[0120]
The timing of volume change (start time of miss performance: VT), playback time after change (miss performance time: VI), and the number of times (miss frequency) are determined by the performance value of the performance character (technical skill, skill) Etc.), and the table data is calculated and updated every time before the music performance.
[0121]
Regarding the frequency of misses that cause a volume change, for example, assuming that the ability value of a character can be taken as a level of technical ability and can take a value from 0 to 127, first, the value is divided by 25 to obtain a quotient from 0 to 5 If the quotient PL is subtracted from the maximum performance level 5 (performance level: PL), the number of mistakes (miss frequency: MN) becomes a value from 0 to 5.
[0122]
Further, the miss performance time VI is obtained using the obtained miss frequency MN. If it is assumed that a single miss performance is continued for at least 3 seconds, the miss frequency MNX3 is 0 to 15 seconds. For example, about 187 (BBH) tick is obtained in 3 seconds. Further, the miss performance time VI becomes the playback time of the music piece that is poorer in the volume change data.
[0123]
Since the length of the music to be reproduced is known in advance for the time for causing the volume change, that is, the start time VT of the miss performance, for example, in the case of a 3 minute song,
[Equation 8]
Figure 2004290501
Since 11250 ticks, random numbers are generated in the range from 0 to 99,
[Equation 9]
Figure 2004290501
Then, an arbitrary value from 1 to 11250 is obtained, and the obtained value may be used as a time PT for causing a volume change. For example, if the random number is 5,
[Expression 10]
Figure 2004290501
By 675 (2A3H) tick and the formula
## EQU11 ##
Figure 2004290501
Will cause a volume change after about 10 seconds.
[0124]
This is repeatedly obtained for the miss frequency MN. Since the obtained start time VT of the miss performance is an absolute time from the beginning of the song, if there is volume change data before that, the playback time of the better song A and the playback time of the worse song B By subtracting the sum and obtaining the relative time from the previous data, the playback time of the song A, which is the better of the target volume change data, is obtained.
[0125]
In addition, if the calculated mis-performance start time VT overlaps with the playback time of the song B, which is the lower volume of the volume change data, the mis-performance start time VT is determined again.
[0126]
Further, the performance values (technical skills, skills, etc.) of the performance character used for these calculations are the same as those in the first embodiment described above.
[0127]
In the fourth internal processing, data in the table is read in order from the beginning in synchronization with the reproduction (start of performance) of audio data.
[0128]
That is, the volume change table is considered as a volume change reproduction channel corresponding to the music (audio data) to be reproduced. When the data is read and processed 2 bytes, the next 2 bytes are read and processed (that is, read 2 bytes at a time), and this is repeated until the music playback ends.
[0129]
In the fifth internal process, a volume change is executed for the sound that is actually sounding based on the read data.
[0130]
First of all, the volume of the better song A is set to the maximum value 127 and the volume of the lower song B is set to the minimum value 0, and the synchronous performance is started. At the same time, the first better word of the upper word of the volume change data is started. Read the playback time of song A and wait for the number of ticks read.
[0131]
After the time has elapsed, the playback time of the lower song B is read, and the volume of the better song A is changed to the minimum value 0, and the volume of the lower song B is changed to the maximum value 127. And it continues for the number of ticks of the read reproduction time. After the time has elapsed, the playback time of the upper song of the upper word of the next volume change data is read, and at the same time, the volume of the better song A is the maximum value 127 and the volume of the lower song B is the minimum value This process is repeated until the music playback ends.
[0132]
In realizing the volume change, a technique for simply changing the volume itself is well-known and will not be described.
[0133]
In the second embodiment, an example is shown in which the volume of the entire song is changed as audio data (for example, well-known data such as AIFF or WAV). However, for example, a song that reproduces timbre data of a musical instrument or the like sequentially using MIDI. In the case of reproduction, it can be realized relatively easily by using the MIDI standard channel voice message control change part volume (Bn07xxH: n is a MIDI channel from 0 to 15, and xx is a data byte from 0 to 127). In this case, B0077FH can be issued to turn on channel 0, and B00700H can be issued to turn off channel 0.
[0134]
In the sixth internal process, one volume is set to 0 (off) and the other is set to 127 (on) at the maximum, and synchronous playback is started. During the playback, each song is switched on / off to express a performance error.
[0135]
In the example of FIG. 10, about 10 seconds (26 CHticks) after simultaneous playback is started, the volume of the better song A is turned off (0) and the volume of the lower song B is turned on (127). . After this is continued for about 3 (BBH) seconds, the volume of the better song A is turned on (127) and at the same time the volume of the lesser song B is turned off (0). After about 30 seconds (744Htick), the volume of the better song A is turned off (0) and the volume of the lesser song B is turned on (127). This is continued for about 12 (2 ECH) seconds.
[0136]
As a result, as shown in FIG. 11, the better song A can be heard at one place and the lower song B can be heard at another place, that is, it can be heard as a single performance. Regarding the timing of volume change, for example, it seems that it sounds more natural if it is at the beginning of a measure. If you know the tempo and time signature of the song, you know the time of the measure. For example, in the case of tempo 120, the speed of processing 120 quarter notes per minute, so the time per measure in the case of 4/4 time is expressed by the formula
[Expression 12]
Figure 2004290501
Is 12 seconds. From this, the tick per measure is obtained. In addition, if there is a rest in the song to be played, it is considered more natural if the time position is checked and switched at that timing. In addition, if the volume of both songs, which are poor at the time of switching, is crossfade, even if there is a slight synchronization gap, it can be made moderately ambiguous.
[0137]
In other words, during the video game, the volume balance of the song is automatically changed based on the volume change table, and a performance error in the miss performance process is expressed, so the video game can be played without increasing the recording capacity. It is possible to express good and bad performances by characters in
[0138]
The present invention is not limited to the first and second embodiments described above, and various application modifications can be made.
[0139]
For example, in the first embodiment, the waiting time of the pitch shift data is not the absolute time from the beginning of the song but the relative time with the immediately preceding data, but can be processed with the absolute time.
[0140]
That is, FIG. 6 corresponds to FIG.
[0141]
In this case, as shown in FIG. 12, the waiting time of the second data is not 0744H, but becomes 26CH + 3EH + 0744H = 9EEH obtained by further adding the first waiting time and the shift time.
[0142]
In this case, a variable that is incremented by 1 every time one tick elapses is prepared in the memory as an elapsed time (time measuring means 1), and each time it is incremented by 1 is compared with the elapsed time and the waiting time at the top of the pitch shift data on the table. If they match, the pitch displacement and the shift time of the pitch shift data are read, the pitch shift is started by the amount of the pitch displacement, and the read shift time is temporarily stored in the memory as the remaining time (time measuring means 2). The remaining time is decremented by 1 and the elapsed time is incremented by 1. When the remaining time becomes 0, the pitch shift is finished. Every time the elapsed time is incremented by 1, the elapsed time and the head of the pitch shift data on the table are waited for. Compare with the time (those not yet processed) and repeat this until the end of song playback Return.
[0143]
Further, in the first embodiment, the case where the data in the table is created immediately before the music reproduction has been described. However, even if the structure is such that any data is selected immediately before the music reproduction using the data created in advance. good.
[0144]
In this case, a number of pitch shift data having a data structure as shown in FIG. 5 is created in advance, for example, about 10 patterns larger than those actually used in music reproduction, and prepared by a program. Select from 0 to 5 (number of misses) depending on the ability value. Whether one is selected is repeated within the number of pitch shift data in the table, that is, if the number is 10, a random number is generated in the range from 0 to 9 (that is, 10-1) and the number of miss frequencies is repeated. Then, after the obtained values are set in ascending order as an offset from the head of the data, the corresponding pitch shift data on the table is temporarily stored in the memory, and the music reproduction is started.
[0145]
Here, as an advantage of using pre-created data, not only simply avoiding the loss of processing before music playback, but also the prevention of obvious unnatural pitch changes when pitch shifting is performed at an arbitrary position, It is conceivable that mistakes can be expressed in the so-called rust portion.
[0146]
Further, since the technology itself for simply changing the playback frequency during the playback of the audio data is known, software and hardware for changing the playback frequency during the playback when the program for the part that actually performs the pitch shift processing is assembled. If the environment is prepared in advance, the reproduction frequency after the pitch change can be directly designated, and a relatively simple command to return to the original reproduction frequency after the lapse of the shift time can be formed.
[0147]
Further, in realizing the pitch shift, the present embodiment shows an example in which the reproduction frequency is changed as audio data (for example, well-known data such as AIFF or WAV) in the present embodiment. In the case of music reproduction that sequentially reproduces timbre data, it is relatively easy to use MIDI standard channel voice message pitch bend changes (EnxxyH: n is MIDI channel 0 to 15, xx and yy are data 0 to 127). It can be easily realized. MIDI data is a program in which instructions such as when and at what pitch to play certain timbre data are listed, and the time of the song is controlled by measuring the delta time in the MIDI data. It can be said that the reproduction time is independent of the reproduction speed of each tone data. Here, for example, if a certain tone color waveform data is looped without being attenuated, after the note-on (sounding) process in the MIDI data is played back to the end of the tone data, it returns to the beginning and the next note-off (silence) Playback will be repeated until the above is processed. For this reason, even if the pitch is changed during the reproduction of the music by MIDI, the problem of returning to the original time as described above does not occur, so no special processing is required even for the ensemble with a plurality of tones. It is possible to easily shift the pitch of only a specific tone.
[0148]
Further, in the second embodiment, the playback time of the upper song of the volume change data is not the absolute time from the beginning of the song, but the relative time with the immediately preceding data. It is also possible to process the absolute time as the time.
[0149]
That is, FIG. 10 corresponds to FIG.
[0150]
In this case, as shown in FIG. 13, the time for switching to the lower volume of the second volume change data is not 0744H, and the value obtained by further adding the time for switching to the lower volume and the lower music playback time is formula
[Formula 13]
Figure 2004290501
To A6BH.
[0151]
In this case, a variable that is incremented by 1 every time one tick elapses is prepared in the memory as an elapsed time (time measuring means 1), and every time 1 increment is made, the elapsed time and the lower song of the volume change data on the table (upper word) If it matches, the playback time of the lower song is read, and the volume of the lower song is set to 0 and the volume of the lower song is switched to the maximum. Temporarily store in memory as time (time measuring means 2), decrement the remaining time by 1 every time one tick elapses, and also increment the elapsed time by 1 during this time. Every time the volume of a simple song is switched to 0 and the elapsed time is incremented by 1, the elapsed time and the beginning of the volume change data on the table are poor. It is compared to the switching time to (those not yet processed), repeating this process until the song playback end.
[0152]
Note that the poor song playback time of the lower word can also be expressed as an absolute time from the beginning of the song as the time for switching to a good song.
[0153]
Furthermore, in the second embodiment, the case where the data in the table is created immediately before the music reproduction has been described. However, any data is selected immediately before the music reproduction using the previously created data. Also good.
[0154]
In this case, volume change data having a data structure as shown in FIG. 13 is created in advance, for example, about 10 patterns, which are larger than those actually used for music reproduction, and 0 according to the ability value of the character immediately before reproduction. Select within 5 (number of miss frequency). Which one is selected is determined by generating a random number in the range from 0 to 9 (that is, 10-1) if the number of volume change data in the table, i.e. 10, is repeated for the number of miss frequencies. After the obtained values are arranged in ascending order as an offset from the head of the data, the corresponding volume change data on the table is temporarily stored in the memory, and the music reproduction is started.
[0155]
As an advantage of using pre-created data, not only simply avoiding the loss of processing before playing the song, but also avoiding noise caused by discontinuity of the sound when the volume is changed at an arbitrary position, For example, it is possible to express a mistake in the rust portion.
[0156]
In addition, performance mistakes include not only the wrong pitch but also the wrong pronunciation timing, that is, the case where there is a time shift. In the case of switching to a new song, noise due to data discontinuity may occur. To avoid this, instead of setting the currently playing song to the minimum value at once, gradually attenuate (fade out) the song to the minimum value every predetermined time, while at the same time setting the currently muted song to the maximum value. It is preferable to perform a crossfade process that gradually increases (fade in) every predetermined time instead of being performed. In order to gradually change the volume, for example, a fade time of about 160 milliseconds is set, and a process of increasing or decreasing the volume every time 10 ticks elapses is performed. Note that the volume given to both songs can express a more natural change when considered as a change in the sound pressure level. Sound pressure level
[Expression 14]
Figure 2004290501
It is known that
[0157]
Actually, when the maximum volume value (fixed at 127) is P0 and the volume variable (linearly changes from 0 to 127) is substituted into the above equation, the rate of change of the sound pressure level is large when P is near 0. In the vicinity of the maximum value, a characteristic such that the change rate of the sound pressure level is small can be obtained. By holding this in the table, P is the number of ticks (ie, index) from the start of the fade, and every 10 ticks (fade interval) elapses, the SPL is obtained from this table, and the obtained SPL is given to the acoustic processing unit for more natural Can express the volume change. Here, in the fade-in, P changes from 0 to 127, and in the fade-out, P changes from 127 to 0.
[0158]
In the above embodiment, the fade time is set to about 160 milliseconds, but when this is changed, the fade interval is changed (see FIG. 14).
[0159]
In addition, in the first embodiment described above, in the first embodiment described above, the pitch is changed by plus / minus 1 and the reproduction frequency is changed by plus / minus 1000 Hz, and the shift time of the pitch shift data is fixed at 62 tick (3EH). However, the present invention is not limited to this.
[0160]
Furthermore, in the data structure of the volume change data in the second embodiment, the playback time of the good song and the bad song is set. For example, an on / off flag corresponding to each song is provided, and the flag corresponding to the song to be sounded is 1 (On), the flag corresponding to a song that does not sound is set to 0 (off), and the volume may be changed based on the waiting time in the first embodiment and the table data constituted by these on / off flags. At this time, when the on / off flag is expressed using 2 bytes, if the least significant bit (bit 0) corresponds to the song 0 and the most significant bit (bit 15) corresponds to the song 15, flag processing of 16 songs can be performed. Even if two songs, a good song and a bad song, are set as one set, it corresponds to simultaneous control of eight sets of timbres.
[0161]
Furthermore, in the first and second embodiments, the technical ability is mentioned as the ability value of the character. However, for example, expressive ability can be given. Since expressive power is not directly related to performance mistakes, it was not picked up in this embodiment, but when expressive power is increased, so-called vibrato, tremolo, and harmony with additional sounds can be processed, so that expression of ability values is possible. As effective. Here, for example, if it is vibrato, it can be considered as a pitch shift that repeats at a fine predetermined interval, and if it is tremolo, it can also be considered as a volume change that repeats at a fine predetermined interval, so apply the time control by the table data of this embodiment. It is clear that this can be achieved. In addition, in a music playback environment using MIDI or the like, there is a possibility that harmony due to additional sound can be realized by simultaneously playing back a sound that has been pitch-shifted based on a music theory such as tension in another part (channel). In addition, it is known to use a digital filter to express a change in sound quality such as a so-called muffled feeling or a metallic sound.
[0162]
In the first and second embodiments, the unit of processing time is defined as tick and 1 tick is set to 16 milliseconds, but the present invention is not limited to this. Since 16 milliseconds coincides with the period of the vertical blanking interrupt (Vsync) that controls the screen display of the game, if it affects the image processing time (there is a risk of processing loss), a separate timer interrupt is generated. For example, it may be called (processed) once every 10 milliseconds. In this case, 1 tick is 10 milliseconds.
[0163]
Furthermore, in the first or second embodiment of the present invention, the pitch shift timing and pitch automatic change processing based on the pitch shift data table, and the music volume balance based on the volume change table are automatically changed. However, when expressing a performance mistake, it is also possible to adopt a special configuration that generates unusual sounds that do not match the music other than the timing and pitch of the pitch shift described above or the volume balance of the music.
[0164]
In other words, if an abnormal sound that does not match the song is generated when expressing a performance mistake, when the character is performing well in a music video game, This makes it possible to express the performance situation more clearly and motivate to improve the performance.
[0165]
【The invention's effect】
As described above in detail, according to the present invention, there is provided a music performance control method for controlling the performance state of the game music of the video game, which is created based on the step of starting the reproduction of the music and the ability value of the character. And a step of automatically changing the pitch shift timing and pitch of the song being played based on the pitch shift table, a performance error can be expressed without increasing the recording capacity, It is possible to express good and bad performance by characters in a video game.
[0166]
Also, a music performance control method for controlling the performance state of game music of a video game, based on a step of simultaneously starting playback of a plurality of songs, and a volume change table created based on the ability value of a character, The step of automatically changing the volume balance of each song being played, thereby making it possible to express a performance error and to improve the performance of the character in the video game without increasing the recording capacity. Can be expressed.
[Brief description of the drawings]
FIG. 1 is a flowchart of a control main routine of a video game music performance control method according to a first embodiment of the present invention;
FIG. 2 is a flowchart showing a subroutine of a mistake calculation process of the music performance control method of the video game.
FIG. 3 is a schematic perspective view showing a connection mode of the game device.
FIG. 4 is a schematic block diagram showing a configuration of a main body of the game device.
FIG. 5 is a diagram illustrating a data structure of pitch shift data.
FIG. 6 is a diagram showing a data table of pitch shift.
FIG. 7 is a flowchart showing a sub-routine of an error calculation process in the video game music performance control method according to the second embodiment of the present invention;
FIG. 8 is a flowchart of fade processing.
FIG. 9 is a diagram showing a data structure of volume change data.
FIG. 10 is a diagram showing a volume change data table;
FIG. 11 is a schematic explanatory diagram showing a performance state.
FIG. 12 is a diagram showing an application modification example of the pitch shift data table (FIG. 6) according to the first embodiment of the present invention;
FIG. 13 is a diagram showing an application modification example of the data structure of the volume change data (FIG. 9) and the volume change data table (FIG. 10) in the second embodiment of the present invention.
FIG. 14 is a diagram showing the relationship between an effective value P of sound pressure and a sound pressure level SPL in the third embodiment of the present invention.
[Explanation of symbols]
2 TV
4 Monitor
6 Speaker
8 Game devices
10 Input device
12 Recording media
14 Body
16 CPU (Central Processing Unit) block
18 SCU (System Control Unit)
20 CPU
22 ROM (Read Only Memory)
24 RAM (Random Only Memory)
26 Bus
28 External bus
30 Input receiver
32 Medium reader
34 Image processing unit
36 Sound processor
38 Network connection
40 network

Claims (7)

ビデオゲームのゲーム音楽の演奏状態を制御する曲演奏制御方法であって、曲の再生を開始するステップと、キャラクタの能力値に基づいて作成されたピッチシフトテーブルに基づいて、再生中の曲のピッチシフトのタイミング及びピッチを自動的に変更するステップと、を含むことを特徴とするビデオゲームの曲演奏制御方法。A music performance control method for controlling a performance state of a game music of a video game, wherein a step of starting the reproduction of the music and a pitch shift table created based on the ability value of the character, And a step of automatically changing the pitch shift timing and pitch. ビデオゲームのゲーム音楽の演奏状態を制御する曲演奏制御方法であって、複数の曲の再生を同時に開始するステップと、キャラクタの能力値に基づいて作成されたボリュームチェンジテーブルに基づいて、再生中の各曲の音量バランスを自動的に変更するステップと、を含むことを特徴とするビデオゲームの曲演奏制御方法。A music performance control method for controlling the performance state of video game music, wherein a step of simultaneously starting playback of a plurality of songs and a volume change table created based on a character's ability value are being played And automatically changing the volume balance of each song of the video game. ビデオゲームが実行可能なゲーム音楽の演奏状態を制御するプログラムであって、コンピュータを、曲の再生を開始する手段、キャラクタの能力値に基づいて作成されたピッチシフトテーブルに基づいて、再生中の曲のピッチシフトのタイミング及びピッチを自動的に変更する手段、として機能させるためのプログラム。A program for controlling a performance state of game music that can be executed by a video game, wherein the computer is playing based on a pitch shift table created on the basis of a means for starting to play a song and a capability value of a character. A program for functioning as means for automatically changing the pitch shift timing and pitch of a song. ビデオゲームが実行可能なゲーム音楽の演奏状態を制御するプログラムであって、コンピュータを、複数の曲の再生を同時に開始する手段、キャラクタの能力値に基づいて作成されたボリュームチェンジテーブルに基づいて、再生中の各曲の音量バランスを自動的に変更する手段、として機能させるためのプログラム。A program for controlling the playing state of game music that can be executed by a video game, based on a volume change table created on the basis of a means for starting reproduction of a plurality of songs simultaneously, a character's ability value, A program for functioning as a means for automatically changing the volume balance of each song being played. 請求項3又は請求項4に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。The computer-readable recording medium which recorded the program of Claim 3 or Claim 4. ビデオゲームのゲーム音楽の演奏状態を制御するゲーム装置であって、曲の再生を開始する手段と、キャラクタの能力値に基づいて作成されたピッチシフトテーブルに基づいて、再生中の曲のピッチシフトのタイミング及びピッチを自動的に変更する手段と、を備えることを特徴とするゲーム装置。A game device for controlling the playing state of game music of a video game, wherein a pitch shift of a song being played based on means for starting the playback of the song and a pitch shift table created based on the ability value of the character And a means for automatically changing the timing and pitch of the game device. ビデオゲームのゲーム音楽の演奏状態を制御するゲーム装置であって、複数の曲の再生を同時に開始する手段と、キャラクタの能力値に基づいて作成されたボリュームチェンジテーブルに基づいて、再生中の各曲の音量バランスを自動的に変更する手段と、を備えることを特徴とするゲーム装置。A game device for controlling the playing state of game music of a video game, wherein each of a plurality of songs being played based on means for simultaneously starting playback of a plurality of songs and a volume change table created based on the ability value of a character And a means for automatically changing the volume balance of the music.
JP2003088746A 2003-03-27 2003-03-27 Music performance control method for video game, program, storage medium, and game device Pending JP2004290501A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003088746A JP2004290501A (en) 2003-03-27 2003-03-27 Music performance control method for video game, program, storage medium, and game device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003088746A JP2004290501A (en) 2003-03-27 2003-03-27 Music performance control method for video game, program, storage medium, and game device

Publications (1)

Publication Number Publication Date
JP2004290501A true JP2004290501A (en) 2004-10-21

Family

ID=33402792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003088746A Pending JP2004290501A (en) 2003-03-27 2003-03-27 Music performance control method for video game, program, storage medium, and game device

Country Status (1)

Country Link
JP (1) JP2004290501A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013029742A (en) * 2011-07-29 2013-02-07 Brother Ind Ltd Musical piece performing device, and musical piece performing program
JP2013140283A (en) * 2012-01-05 2013-07-18 Brother Ind Ltd Music performance device and music performance program
JP2014200454A (en) * 2013-04-04 2014-10-27 株式会社スクウェア・エニックス Recording medium, game device and game progress method
JP2018060121A (en) * 2016-10-07 2018-04-12 カシオ計算機株式会社 Musical tone reproducing apparatus, musical tone reproducing method, program, and electronic instrument

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013029742A (en) * 2011-07-29 2013-02-07 Brother Ind Ltd Musical piece performing device, and musical piece performing program
JP2013140283A (en) * 2012-01-05 2013-07-18 Brother Ind Ltd Music performance device and music performance program
JP2014200454A (en) * 2013-04-04 2014-10-27 株式会社スクウェア・エニックス Recording medium, game device and game progress method
US9861892B2 (en) 2013-04-04 2018-01-09 Square Enix Co., Ltd. Music game which changes sound based on the quality of players input
JP2018060121A (en) * 2016-10-07 2018-04-12 カシオ計算機株式会社 Musical tone reproducing apparatus, musical tone reproducing method, program, and electronic instrument

Similar Documents

Publication Publication Date Title
WO2015053278A1 (en) Technique for reproducing waveform by switching between plurality of sets of waveform data
JP4802857B2 (en) Musical sound synthesizer and program
JP2010113278A (en) Music processing device and program
JP2004290501A (en) Music performance control method for video game, program, storage medium, and game device
JPH09244666A (en) Karaoke device
JP3705144B2 (en) Performance data change processing device
JP4107212B2 (en) Music playback device
JP3908719B2 (en) Karaoke device, singing ability determination method, and program
JP2002372981A (en) Karaoke system with voice converting function
JP4081859B2 (en) Singing voice generator and karaoke device
JP3050129B2 (en) Karaoke equipment
JP3613062B2 (en) Musical sound data creation method and storage medium
JP4552769B2 (en) Musical sound waveform synthesizer
JP2004313767A (en) Program, storage medium, and game device
JP5672279B2 (en) Music performance device
JP4216312B2 (en) Karaoke device, singing ability determination method, and program
JP5560574B2 (en) Electronic musical instruments and automatic performance programs
JP2005148599A (en) Machine and method for karaoke, and program
JP4218045B2 (en) Recording medium, game device, and game music control method
JP6427447B2 (en) Karaoke device
JP3166670B2 (en) Karaoke device and automatic performance device
JP2004272067A (en) Music performance practice device and program
JP3892433B2 (en) Karaoke device, karaoke method, and program
JP2001042868A (en) Performance data generation and generating device, and recording medium therefor
JP3517315B2 (en) Karaoke equipment