説明

演奏装置および演奏制御プログラム

【構成】 ゲーム装置10はCPUコア34を含み、CPU34はゲームプログラムに従って音楽演奏ゲームを実行する。ゲーム中では、プレイヤは、所望の音楽(曲)の楽譜を見ながら、スティック26を用いて操作画面に表示された弦を弾くように演奏する。演奏中では、プレイヤの演奏する音楽のテンポが検出され、検出されたテンポにおける四分音符の先頭のタイミングと、現在の演奏タイミングとが一致するとき、拍手音のような効果音が出力される。拍手音の音量は、テンポが安定している場合に増大され、テンポが不安定である場合に減少される。
【効果】 プレイヤは自由に演奏し、その評価として効果音が出力されるので、娯楽的な要素を大きくすることができる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は演奏装置および演奏制御プログラムに関し、特にたとえば、ユーザが操作入力を行う操作手段と、少なくとも音データを記憶する記憶手段とを備える、演奏装置および演奏制御プログラムに関する。
【背景技術】
【0002】
従来、娯楽目的の演奏装置としては、たとえば、音楽ゲーム装置やファミリーキーボードなどがあった。このような演奏装置は、演奏される音楽(伴奏)に合わせて、ボタンや鍵盤を操作するものであり、操作のタイミングに応じて点数や評価が決定されるものである。
【0003】
また、この種の背景技術の一例が特許文献1に開示される。この特許文献1には、模擬的にオーケストラの指揮を行う音楽演奏装置が開示され、プレイヤが指揮棒としての操作部を振ることにより、音楽の演奏状態(テンポ,音量)が制御される。これにより、プレイヤに対し、音楽の演奏に携わっている感覚が与えられる。
【0004】
さらに、背景技術の他の例が特許文献2に開示される。この特許文献2のテンポ抽出装置は、CDや放送などによりオーディオ信号の形態で提供される音楽信号の一部分を入力信号として、入力された音楽信号の自己相関関数を算出し、算出結果に基づいて音楽信号のテンポを抽出する。
【特許文献1】特開2001−215963
【特許文献2】特開2002−116754
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、従来の演奏装置では、伴奏に合わせてボタンや鍵盤を操作するだけなので、プレイヤ自身が音楽を演奏するという楽しさを得ることができない。この点は、特許文献1に開示される技術も同様であり、音楽の演奏に携わっている感覚が得られるだけである。すなわち、娯楽的な要素が少ない。また、特許文献2に開示される技術では、CDや放送などの音楽信号のテンポを抽出するだけであり、ユーザが演奏する音楽のテンポを抽出するものではなく、ユーザが演奏する演奏装置に適用するのは困難である。
【0006】
それゆえに、この発明の主たる目的は、新規な、演奏装置および演奏制御プログラムを提供することである。
【0007】
また、この発明の他の目的は、演奏の楽しさを増大させることができる、演奏装置および演奏制御プログラムを提供することである。
【課題を解決するための手段】
【0008】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0009】
請求項1の発明は、ユーザが操作入力を行う操作手段と、少なくとも音データを記憶する記憶手段とを備える演奏装置である。この演奏装置は、演奏音出力手段、履歴記憶手段、演奏テンポ検出手段、判定手段、および特別音出力手段を備える。演奏音出力手段は、操作手段からの操作入力に応じて、記憶手段に記憶された音データに基づいて演奏音を出力する。履歴記憶手段は、操作手段からの操作入力の履歴を記憶手段に記憶する。演奏テンポ検出手段は、現時点までの所定期間についての操作入力の履歴に基づいて演奏テンポを検出する。判定手段は、演奏テンポ検出手段によって検出された演奏テンポと、現在の操作入力とが所定の関係であるかどうかを判定する。そして、特別音出力手段は、判定手段によって所定の関係であることが判定されたとき、記憶手段に記憶された特別音に対応する音データを出力する。
【0010】
請求項1の発明では、演奏装置(10)は、ユーザが操作入力を行う操作手段(22,24)と、少なくとも音データを記憶する記憶手段(42)とを備える。この演奏ゲーム装置は、演奏音出力手段(34,36a,36b,48,S7)、履歴記憶手段(34,42,S11)、演奏テンポ検出手段(34,S13)、判定手段(34,S23,S25)、および特別音出力手段(34,36a,36b,48,S27)を備える。演奏音出力手段は、操作手段からの操作入力に応じて、記憶手段に記憶された音データに基づいて演奏音を出力する。つまり、ユーザの演奏に従った音が出力される。履歴記憶手段は、操作手段からの操作入力の履歴を記憶手段に記憶する。たとえば、演奏開始から一定時間毎に、操作入力の有無が記憶される。演奏テンポ検出手段は、現時点までの所定期間についての操作入力の履歴に基づいて演奏テンポを検出する。判定手段は、演奏テンポ検出手段によって検出された演奏テンポと、現在の操作入力とが所定の関係であるかどうかを判定する。そして、特別音出力手段は、判定手段によって所定の関係であることが判定されたとき、記憶手段に記憶された特別音に対応する音データを出力する。たとえば、演奏を盛り上がるような効果音が出力される。
【0011】
請求項1の発明によれば、ユーザが自由に演奏し、演奏された音楽のテンポと現在の操作入力とが所定の関係を有するか否かの評価に応じて、拍手音のような効果音が出力されるので、娯楽的な要素を大きくすることができる。
【0012】
請求項2の発明は請求項1に従属し、演奏テンポ検出手段は、現時点までの所定期間についての操作入力の第1履歴と、当該第1履歴を所定のルールに従って算出した遅延時間でずらした第2履歴とを、異なる遅延時間毎に複数回比較する履歴比較手段を含み、履歴比較手段の比較結果において、第1履歴との一致度が最も高い第2履歴についての遅延時間に基づいて演奏テンポを検出する。
【0013】
請求項2の発明では、履歴比較手段(34,S43,S45,S47,S51)は、現時点までの所定期間についての操作入力の第1履歴と、当該第1履歴を所定のルールに従って算出した遅延時間でずらした第2履歴とを、異なる遅延時間毎に複数回比較する。この比較結果において、第1履歴との一致度が最も高い第2履歴についての遅延時間に基づいて演奏テンポが検出される。つまり、ユーザの操作入力のタイミングについて自己相関関係を算出することにより、演奏テンポが特定される。
【0014】
請求項2の発明によれば、ユーザの操作入力に基づいて演奏テンポを検出するので、伴奏に合わせて演奏する必要がなく、ユーザ自身の演奏を楽しむことができる。
【0015】
請求項3の発明は請求項2に従属し、判定手段は、演奏テンポ検出手段によって検出された演奏テンポにおける四分音符の先頭のタイミングと、現在の操作入力のタイミングとが一致するか或いはほぼ一致するか否かを判定する。
【0016】
請求項3の発明では、判定手段は、演奏テンポ検出手段によって検出された演奏テンポにおける四分音符の先頭のタイミングと、現在の操作入力とのタイミングとが一致するか或いはほぼ一致するか否かを判定する。つまり、演奏テンポにおける四分音符の先頭のタイミングと、現在の操作入力のタイミングとの位相ずれ(ずれ量)が一定範囲内であるかどうかを判定するのである。
【0017】
請求項3の発明によれば、現在の操作入力のタイミングが、演奏テンポの四分音符の先頭のタイミングと一致するか或いはほぼ一致するかを判定するので、四分音符の先頭のタイミングのような所望のタイミングでのみ特定音を出力することができる。
【0018】
請求項4の発明は請求項1ないし3のいずれかに従属し、演奏テンポ検出手段によって検出された演奏テンポを記憶手段に記憶する演奏テンポ記憶手段、演奏テンポ記憶手段によって記憶された演奏テンポが一定の範囲内で継続しているか否かを判定する演奏テンポ変化判定手段、および演奏テンポ変化判定手段の判定結果が肯定的であるとき、特別音を変化させる特別音変化手段をさらに備える。
【0019】
請求項4の発明では、演奏装置は、演奏テンポ記憶手段(34,S15)、演奏テンポ変化判定手段(34,S17)、および特別音変化手段(34,S19,S21)備える。演奏テンポ記憶手段は、演奏テンポ検出手段によって検出された演奏テンポを記憶手段に記憶する。つまり、演奏テンポの履歴が記録される。演奏テンポ変化判定手段は、演奏テンポが一定の範囲内で継続しているか否かを判定する。たとえば、今回検出された演奏テンポと前回検出された演奏テンポとの差が一定の範囲内であれば、演奏テンポが安定していると判断し、そうでなければ、演奏テンポが不安定であると判断する。特別音変化手段は、演奏テンポ変化判定手段の判定結果基づいて、特別音を変化させる。たとえば、特別音の音量を変化させたり、他の特別音を出力したりする。
【0020】
請求項4の発明によれば、テンポが安定している場合に、特別音を変化させるので、演奏を盛り上げるなどの他の演出を加えることができるので、娯楽的な要素を加えることができる。
【0021】
請求項5の発明は、ユーザが操作入力を行う操作手段と、少なくとも音データを記憶する記憶手段とを備える演奏装置の演奏制御プログラムである。この演奏制御プログラムは、演奏装置のプロセサを、演奏音出力手段、履歴記憶手段、演奏テンポ検出手段、判定手段、および特別音出力手段として機能させる。演奏音出力手段は、操作手段からの操作入力に応じて、記憶手段に記憶された音データに基づいて演奏音を出力する。履歴記憶手段は、操作手段からの操作入力の履歴を記憶手段に記憶する。演奏テンポ検出手段は、現時点までの所定期間についての操作入力の履歴に基づいて演奏テンポを検出する。判定手段は、演奏テンポ検出手段によって検出された演奏テンポと、現在の操作入力とが所定の関係であるかどうかを判定する。そして、特別音出力手段は、判定手段によって所定の関係であることが判定されたとき、記憶手段に記憶された特別音に対応する音データを出力する。
【0022】
請求項5の発明においても、請求項1の演奏装置の発明と同様に、娯楽的な要素を大きくすることができる。
【発明の効果】
【0023】
この発明によれば、演奏される音楽に合わせてボタン操作するものではなく、自己の演奏がテンポ良く行われている場合に、演奏タイミングに合わせて特定音が出力されるので、娯楽的な要素が大きい。したがって、音楽を演奏する楽しさを増大させることができる。
【0024】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0025】
図1を参照して、この発明の実施例であるゲーム装置10は、演奏制御プログラムが組み込まれることにより、演奏装置として機能する。このゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。LCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
【0026】
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【0027】
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aよりも横長に選ばれ、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。下側ハウジング16bのLCD14の左方には電源スイッチ18が設けられる。
【0028】
また、上側ハウジング16aには、LCD12を挟んで左右に、スピーカ36aおよび36b(図2)のための音抜き孔20aおよび20bが形成される。そして、下側ハウジング16bには、マイク(図示せず)のためのマイク孔20cが形成されるとともに、操作スイッチ22(22a,22b,22c,22d,22e,22Lおよび22R)が設けられる。
【0029】
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
【0030】
操作スイッチ22は、方向指示スイッチ(十字スイッチ)22a,スタートスイッチ22b、セレクトスイッチ22c、動作スイッチ(Aボタン)22d、動作スイッチ(Bボタン)22e、動作スイッチ(Xボタン)22f、動作スイッチ(Yボタン)22g、動作スイッチ(Lボタン)22Lおよび動作スイッチ(Rボタン)22Rを含む。スイッチ22aは、下側ハウジング16bの一方主面であり、LCD14の左側に配置される。その他のスイッチ22b−22gは、下側ハウジング16bの一方主面であり、LCD14の右側に配置される。さらに、スイッチ22Lおよびスイッチ22Rは、それぞれ、上側ハウジング16aとの連結部を挟む下側ハウジング16bの上側面の左右角部に配置される。
【0031】
方向指示スイッチ22aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、ユーザないしプレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。また、各押圧部には、特定の役割(この実施例では、ギターのコード)を割り当てることができ、4つの押圧部の1つを操作することによって、割り当てられた役割を指示(指定)することができる。
【0032】
スタートスイッチ22bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止(Pause)したりする等に用いられる。また、セレクトスイッチ22cは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【0033】
動作スイッチ22dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ22eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ22cで選択したゲームモードの変更やAボタン22dで決定したアクションの取り消し等のために用いられる。
【0034】
動作スイッチ22fすなわちXボタン、および動作スイッチ22gすなわちYボタンは、プッシュボタンで構成され、Aボタン22dとBボタン22eだけでは、ゲーム進行ができないときに、補助的な操作に用いられる。ただし、Xボタン22fおよびYボタン22gは、Aボタン22dおよびBボタン22eと同様の操作に用いることも可能である。もちろん、ゲームプレイにおいてXボタン22fとYボタン22gとを必ずしも使用しなくてよい。
【0035】
動作スイッチ22L(左押しボタン)および動作スイッチ22R(右押しボタン)は、プッシュボタンで構成され、左押しボタン(Lボタン)22Lおよび右押しボタン(Rボタン)22Rは、Aボタン22dおよびBボタン22eと同様の操作に用いることができ、また、Aボタン22dおよびBボタン22eの補助的な操作に用いることができる。さらに、Lボタン22LおよびRボタン22Rは、方向スイッチ22a、Aボタン22d,Bボタン22e,Xボタン22f,Yボタン22gに割り当てられた役割を、他の役割に変更することができる。この実施例では、Lボタン22Lを押すと、方向スイッチ22aに割り当てられたコードが他のコードに変更される。
【0036】
また、LCD14の上面には、タッチパネル24が装着される。タッチパネル24としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル24は、その上面をスティック26ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック26等」という場合がある。)で、押圧したり、撫でたり、触れたりすることにより操作(タッチ入力)すると、スティック26等の操作位置の座標を検出して、検出した座標(検出座標)に対応する座標データを出力する。
【0037】
なお、この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル24の検出精度も表示画面に対応して256dot×192dotとしてあるが、タッチパネル24の検出精度は表示画面の解像度よりも低くてもよく、高くてもよい。
【0038】
LCD12およびLCD14には異なるゲーム画面が表示される。たとえば、レースゲームでは一方のLCDに運転席からの視点による画面を表示し、他方のLCDにレース(コース)全体の画面を表示することができる。また、RPGでは、一方のLCDにマップやプレイヤキャラクタ等のキャラクタを表示し、他方のLCDにプレイヤキャラクタが所有するアイテムを表示することができる。さらに、一方のLCD(この実施例では、LCD12)にゲームのプレイ画面を表示し、他方のLCD(この実施例では、LCD14)に当該ゲームを操作するための線や図形(アイコンを含む。)などの操作オブジェクトを含むゲーム画面(操作画面)を表示することができる。さらには、2つのLCD12およびLCD14を合わせて1つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物(敵キャラクタ)を表示することもできる。
【0039】
したがって、プレイヤはスティック26等でタッチパネル24を操作することにより、LCD14の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムキャラクタ、操作オブジェクトなどの画像を指示(操作)したり、コマンドを選択(入力)したりすることができる。また、3次元ゲーム空間に設けられる仮想カメラ(視点)の方向を変化させたり、ゲーム画面(マップ)のスクロール(徐々に移動表示)方向を指示したりすることもできる。
【0040】
なお、ゲームの種類によっては、タッチパネル24を用いることにより、その他の入力指示も可能である。たとえば、座標入力指示を入力したり、LCD14において文字,数字,記号等を手書き入力したりすることができる。
【0041】
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の上面にタッチパネル24が設けられるので、2画面(12,14)と2系統の操作部(22,24)とを有する構成になっている。
【0042】
また、この実施例では、スティック26は、たとえば下側ハウジング16bに設けられる収納部(図1では点線で示す)に収納することができ、必要に応じて取り出される。ただし、スティック26を設けない場合には、その収納部も設ける必要はない。
【0043】
さらに、ゲーム装置10はメモリカード(またはカートリッジ)28を含み、このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは下端(底面)に設けられる挿入口30(図1では点線で示す)に挿入される。図1では省略するが、挿入部30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ32(図2参照)が設けられており、したがって、メモリカード28が挿入部30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア34(図2参照)がメモリカード28にアクセス可能となる。
【0044】
なお、図1では表現できないが、上側ハウジング16aの音抜き孔20aおよび20bと対応する位置であり、この上側ハウジング16aの内部にはスピーカ36aおよび36b(図2参照)が設けられる。
【0045】
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【0046】
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板38を含み、この電子回路基板38には上述のCPUコア34等の回路コンポーネントが実装される。CPUコア34は、バス40を介して前述のコネクタ32に接続されるととともに、RAM42、第1のグラフィック処理ユニット(GPU)44、第2のGPU46、入出カインターフエース回路(以下、「I/F回路」という。)48およびLCDコントローラ50が接続される。
【0047】
コネクタ32には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ32と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア34は、ROM28aおよびRAM28bにアクセスすることができるのである。
【0048】
ROM28aは、ゲーム装置10で実行すべきゲーム(音楽演奏ゲーム)のためのゲームプログラム、画像データ(文字やキャラクタの画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)およびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データなどを記憶(セーブ)する。
【0049】
RAM42は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア34は、メモリカード28のROM28aに記憶されたプログラム、画像データおよび音データ等をRAM42にロードし、ロードしたプログラムを実行する。また、CPUコア34は、ゲームの進行に応じて一時的に発生するデータ(ゲームデータやフラグデータ)をRAM42に記憶しつつゲーム処理を実行する。
【0050】
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部、または部分的かつ順次的に読み出され、RAM42に記憶(ロード)される。
【0051】
ただし、メモリカード28のROM28aには、ゲーム以外の他のアプリケーションについてのプログラムおよび当該アプリケーションの実行に必要な画像データが記憶される。また、必要に応じて、音(音楽)データが記憶されてもよい。かかる場合には、ゲーム装置10では、当該アプリケーションが実行される。
【0052】
GPU44およびGPU46は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア34からのグラフィックスコマンド(graphics command :作画命令)を受け、そのグラフィックスコマンドに従って画像データを生成する。ただし、CPUコア34は、グラフィックスコマンドに加えて、画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU44およびGPU46のそれぞれに与える。
【0053】
また、GPU44には、第1のビデオRAM(以下、「VRAM」という。)52が接続され、GPU46には、第2のVRAM54が接続される。GPU44およびGPU46が作画コマンドを実行するにあたって必要なデータ(画像データ:キャラクタデータやテクスチャ等のデータ)は、GPU44およびGPU46が、それぞれ、第1のVRAM52および第2のVRAM54にアクセスして取得する。
【0054】
なお、CPUコア34は、描画に必要な画像データをGPU44およびGPU46を介して第1のVRAM52および第2のVRAM54に書き込む。GPU44はVRAM52にアクセスして描画のための画像データを作成し、GPU46はVRAM54にアクセスして描画のための画像データを作成する。
【0055】
VRAM52およびVRAM54は、LCDコントローラ50に接続される。LCDコントローラ50はレジスタ56を含み、レジスタ56はたとえば1ビットで構成され、CPUコア34の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ50は、レジスタ56のデータ値が「0」である場合には、GPU44によって作成された画像データをLCD12に出力し、GPU46によって作成された画像データをLCD14に出力する。また、LCDコントローラ50は、レジスタ56のデータ値が「1」である場合には、GPU44によって作成された画像データをLCD14に出力し、GPU46によって作成された画像データをLCD12に出力する。
【0056】
なお、LCDコントローラ50は、VRAM52およびVRAM54から直接画像データを読み出したり、GPU44およびGPU46を介してVRAM52およびVRAM54から画像データを読み出したりする。
【0057】
I/F回路48には、操作スイッチ22,タッチパネル24およびスピーカ36a,36bが接続される。ここで、操作スイッチ22は、上述したスイッチ22a,22b,22c,22d,22e,22g,22Lおよび22Rであり、操作スイッチ22が操作されると、対応する操作信号(操作データ)がI/F回路48を介してCPUコア34に入力される。また、タッチパネル24からの座標データがI/F回路48を介してCPUコア34に入力される。さらに、CPUコア34は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM42から読み出し、I/F回路48を介してスピーカ36a,36bから出力する。
【0058】
図3は、図1および図2に示すゲーム装置10を用いて、この実施例のゲームをプレイする場合のゲーム画面および操作画面などを主として示す。たとえば、この実施例では、プレイヤは擬似的にギターを演奏することができる。図3に示すように、LCD12には、ギターを演奏するプレイヤキャラクタを含むゲーム画面が表示され、LCD14には、ギターの弦を模した操作オブジェクトを含むゲーム画面(操作画面)が表示される。図示は省略するが、たとえば、プレイヤは、左手の親指でスイッチ22aを操作するとともに、左手の人指し指でLボタン22Lを操作するように、左手でゲーム装置10を把持する。また、プレイヤは、右手で弦を弾くように操作するために、右手でスティック26を把持する。
【0059】
図示は省略するが、この実施例では、Lボタン22Lを押す毎に、モード(たとえば、モード1,モード2)を切り換えることができる。また、モード1の場合と、モード2の場合とのそれぞれについて、方向スイッチ22aの各押圧部に所望のコードを割り当てることができる。したがって、演奏する曲に応じて、または、曲の演奏中に、モードを切り換えて、使用可能なコードを変更することができる。ただし、モードは3つ以上であってもよい。
【0060】
なお、図3では表現できないが、プレイヤキャラクタはアニメーション表示される。
【0061】
また、この実施例では、右利きのプレイヤを想定して、方向スイッチ22aの各押圧部にコードを割り当て、モードの切り換えをLボタン22Lで行うようにしてある。ただし、左利きのプレイヤの場合には、Aボタン22d,Bボタン22e,Xボタン22f,Yボタン22gのそれぞれにコードを割り当て、モードの切り換えをRボタン22Rで行うようにしてもよい。これらは、プレイヤが切り換えることができるようにしてもよい。
【0062】
たとえば、プレイヤがゲーム装置10を用いて、擬似的にギターを演奏する場合には、LCD14(タッチパネル24)上で、1または複数の弦(操作オブジェクト)を弾くように、スティック26をスライドさせる。すると、このスライド操作に合わせて、操作画面上の弦が弾かれる。このとき、弾かれた弦の音がスピーカ36a,36bから出力される。ただし、上述したように、プレイヤが方向スイッチ22aのいずれか1つの押圧部を操作すると、当該押圧部に割り当てられたコードが選択される。したがって、コードが選択された状態で、当該コードの音を鳴らすための弦がすべて弾かれると、当該コードの音がスピーカ36a,36bから出力される。
【0063】
従来の音楽ゲーム装置やファミリーキーボードのような演奏装置を用いて音楽を演奏する場合には、プレイヤは、伴奏のリズムに合わせて、ボタンや鍵盤を操作する。この操作のタイミングの良さに応じて点数や評価が決まる。また、模擬的にオーケストラの指揮を行う音楽演奏装置では、プレイヤが指揮棒としての操作部を振ることにより、音楽の演奏状態(テンポ,音量)が制御される。
【0064】
しかし、このような演奏装置では、プレイヤに対し、音楽の演奏に携わっている感覚が与えられるだけであり、プレイヤ自身が音楽を演奏するという楽しさを得ることができない。すなわち、娯楽的な要素が少ない。
【0065】
そこで、この実施例では、プレイヤが演奏する音楽(曲)のテンポ(演奏テンポ)を検出し、テンポを規定する四分音符の始まりのタイミングと、演奏のタイミング(タッチ入力のタイミング)とが一致する或いはほぼ一致する場合に、拍手音のような効果音(特定音)を出力する。また、テンポが安定している場合には、効果音の音量を次第に大きくし、演奏を盛り上げ、逆に、テンポが不安定である場合には、効果音の音量を次第に小さくする。つまり、娯楽的な要素が付加される。
【0066】
具体的には、プレイヤは、たとえば所望の音楽(曲)についての楽譜を見ながら、ゲーム装置10を用いて、模擬的にギターを演奏する。演奏を開始すると、歓声のような効果音が出力され、プレイヤにステージ等で演奏するような臨場感を与える。演奏中では、プレイヤが操作オブジェクト(弦)を弾くタイミング(タッチ入力)が検出され、その履歴が時系列に従って記録される。この実施例では、後述するように、1フレーム(フレーム:画面更新単位時間(1/60秒))毎に、プレイヤが演奏する音楽の演奏テンポを検出するようにしてあるため、演算能力を考慮して、タッチ入力の履歴(タッチ入力履歴)は3秒に相当するフレーム数だけ記録するようにしてある。
【0067】
たとえば、図4(A)に示すような音符(音程やコードは無視)に従ってプレイヤが演奏した場合に、図4(B)に示すような履歴(タッチ入力履歴)が得られたとする。ただし、図4では、タッチ入力が瞬間的に行われたように、縦棒でそのタイミングを示してあるが、実際には、一回のタッチ入力は数フレームの幅を持っている。これは、図3に示したように、プレイヤが演奏する場合に、1または複数の弦を弾くようにスティック26をスライドさせるためである。
【0068】
このタッチ入力履歴を用いて、プレイヤの演奏する音楽の演奏テンポが検出される。具体的には、タッチ入力履歴を、各テンポT(この実施例では、150−90)における四分音符の長さ分だけずらしながら比較し(自己相関関数を算出し)、一致度が最も高い(相関が最も大きい)場合のテンポTが演奏テンポとして検出される。
【0069】
たとえば、図4(C)に示す例では、テンポTが150,120,90の場合において、各々の四分音符の長さ分だけ、図4(B)に示すタッチ入力履歴(以下、説明の都合上、「元の履歴」ということがある。)をずらした(遅延させた)タッチ入力履歴(以下、説明の都合上、「遅延履歴」ということがある。)が示される。図4(C)に示すように、元の履歴と遅延履歴とを比較すると、テンポTが150である場合には、元の履歴と遅延履歴とが一致するタイミングは2個である。また、テンポTである120の場合には、元の履歴と遅延履歴とが一致するタイミングは5個である。さらに、テンポTが90である場合には、元の履歴と遅延履歴とが一致するタイミングは2個である。つまり、テンポTが120である場合に、元の履歴と遅延履歴との相関が最も高いと言える。
【0070】
なお、簡単のため、図4(C)では、3つの遅延履歴について示してあるが、実際には、テンポTを90から150まで、1テンポずつ加算して、元の履歴と各々の遅延履歴とを比較するようにしてある。
【0071】
また、図4(C)(後述する図4(D)も同じ。)では、元の履歴と遅延履歴(図4では四分音符の先頭)とのタイミングが一致することを丸印で示してある。
【0072】
ただし、厳密に言うと、元の履歴と遅延履歴とは、一致するタイミングの個数を検出するのではなく、自己相関関数(相関値)を算出し、最も相関値(評価値)v1が大きい場合のテンポTを演奏テンポとして検出するのである。ここで、相関値v1は数1に示す自己相関関数に従って算出される。
【0073】
[数1]
v1=v1+h[t]×h[t+a]
a=1分間のフレーム数/1分間の四分音符の数(テンポ)
t=0〜(HIST_TIME−A_MAX−1)
ただし、相関値v1の初期値は0であり、h[]はタッチ入力履歴(この実施例では、3秒間分)であり、aはテンポ周期であり、HIST_TIMEは履歴時間(3秒に相当するフレーム数)であり、A_MAXはテンポTが90である場合のa(テンポ周期)である。以下、同様である。
【0074】
なお、このような相関関係を計算することにより、元の履歴と遅延履歴との一致度を検出することができるのは、各タッチ入力が数フレームの幅を持っているためである。したがって、ゲーム装置10を用いて、打楽器のような他の楽器を演奏する場合には、入力のタイミングが幅を有していないため、上述のようにして相関関係を計算するのは困難である。かかる場合には、入力のタイミングを中心とするガウス分布(正規分布)を求めて、入力のタイミングに或る程度の幅を持たせる必要がある。
【0075】
上述したように、相関が最も高いときのテンポTが演奏テンポとして特定される。特定された演奏テンポの履歴は記録され、演奏テンポが安定している場合には、後述する効果音の音量が増大され、逆に、演奏テンポが不安定である場合には、効果音の音量が低減される。たとえば、今回検出された演奏テンポと前回検出された演奏テンポとのずれが所定値(この実施例では、5テンポ)以内である場合には、演奏テンポは安定していると判断され、ずれが所定値を超えている場合には、演奏テンポが不安定であると判断される。
【0076】
また、演奏テンポが特定されると、四分音符内における位相のずれが検出される。言い換えると、現在のタッチ入力(演奏)のタイミングと、特定された演奏テンポの四分音符の先頭に相当するタイミングとのずれ量(位相ずれ)が検出される。これは、現在のタッチ入力が、四分音符の先頭に相当するタイミングまたはそれに近いタイミングで行われた場合に、拍手音のような効果音を鳴らして、演奏を盛り上げるためである。
【0077】
具体的には、特定された演奏テンポにおける四分音符の長さに相当する間隔(四分音符間隔)のインパルス関数を生成する。そして、生成したインパルス関数を、現フレームから1フレームずつずらした場合における、元の履歴と演奏テンポとの相関が検出される。つまり、プレイヤの演奏のタイミングと、特定した演奏テンポのタイミングとの位相ずれを検出し、演奏のタイミングの位相ずれが少ない場合に、効果音が出力されるのである。
【0078】
ここで、特定された演奏テンポにおける四分音符の先頭でのみ「1」となり、他の位置で「0」となるインパルス関数が生成される。このインパルス関数を1フレームずつずらしながら、タッチ入力履歴とインパルス関数との相関が検出される。具体的には、数2に従って、相関値v2が算出される。
【0079】
[数2]
v2=v2+h[t]
t=b〜(HIST_TIME−best_a+b)
b=0〜best_a−1
ただし、相関値v2の初期値は0であり、best_aは相関値v1が最大のときのテンポ周期aであり、bは位相ずれのフレーム数である。
【0080】
たとえば、図4(D)には、位相をずらしていない場合のインパルス関数と、位相をΔd1,Δd2,Δd3に相当するフレーム数だけずらしたインパルス関数とが表示される。ただし、図4(D)では、特定された演奏テンポにおける四分音符の長さを白抜きの矢印で示してある。図4(B)および図4(D)から分かるように、タッチ入力履歴(元の履歴)との一致度が高いのは、演奏テンポにおける四分音符間隔のインパルス関数の位相をΔd2に相当するフレーム数だけずらした場合である。
【0081】
ただし、演奏テンポTの位相をΔd2に相当するフレーム数だけずらした場合における四分音符の先頭のタイミングは、現在のタッチ入力のタイミングと比較的大きくずれている。図4(D)に示す例では、約四分音符の半分に相当する長さ(八分音符の長さ)だけ、位相がずれていると言える。図面では分かり難いが、かかる場合には、位相のずれが一定の範囲(たとえば、前後5フレーム)を超えているため、効果音は出力されない。
【0082】
なお、図4(B)および図4(D)に示すように、現在のタッチ入力の直前のタッチ入力のタイミングと、四分音符間隔のインパルス関数のタイミングとは一致する或いはほぼ一致する。図面では分かり難いが、このような場合には、位相のずれが一定の範囲内であるため、効果音が出力されるのである。
【0083】
また、拍手音が出力された回数がカウントされ、拍手音が出力された回数が一定回数(この実施例では、30)以上であれば、プレイヤが演奏を終了したときに、歓声の効果音が出力される。これは、演奏終了時に歓声の効果音を出力して、ステージ等で演奏しているような臨場感をプレイヤに与えるためである。
【0084】
図5は図2に示したRAM42のメモリマップである。この図5を参照して、RAM42は、プログラム記憶領域70およびデータ記憶領域72を含む。プログラム記憶領域70は、演奏制御プログラム(ゲームプログラム)を記憶する。たとえば、ゲームプログラムは、ゲームメイン処理プログラム70a、画像生成プログラム70b、画像表示プログラム70c、タッチオン・オフ検出プログラム70d、タッチ入力履歴記録プログラム70e、テンポ検出プログラム70f、位相ずれ検出プログラム70g、サウンド出力プログラム70hおよび効果音出力プログラム70iなどによって構成される。
【0085】
ゲームメイン処理プログラム70aは、この実施例のゲーム(音楽演奏ゲーム)のメイン処理を実行するためのプログラムである。画像生成プログラム70bは、ゲーム画像(ゲーム画面,操作画面)を生成するためのプログラムである。具体的には、画像生成プログラム70bは、プレイヤキャラクタ、プレイヤキャラクタが使用する楽器のオブジェクト、背景オブジェクトを含むゲーム画面を生成したり、ギターの弦のような操作オブジェクトを含む操作画面を生成したりする。
【0086】
タッチオン・オフ検出プログラム70dは、プレイヤがタッチパネル24にタッチしていない(タッチ入力無し)状態からタッチパネル24にタッチする(タッチ入力有り)状態に変化するタッチオン操作を検出するとともに、タッチオン状態からタッチオフ状態に変化するタッチオフ操作を検出するためのプログラムである。また、このタッチオン・オフ検出プログラム70dに従って、CPUコア34は、後述するタッチオンフラグ72a(図6参照)をオン(成立)/オフ(不成立)する。CPUコア34は、タッチ入力が有る場合に、タッチオンフラグ72aをオンし、タッチ入力が無い場合に、タッチオンフラグ72aをオフする。
【0087】
タッチ入力履歴記録プログラム70eは、プレイヤが演奏を開始してから演奏を終了するまでの間、タッチオン・オフ検出プログラム70dに従ってタッチ入力(タッチオン操作)の履歴を時系列に従って記録するためのプログラムである。つまり、タッチ入力履歴記録プログラム70eに従って、CPUコア34は、後述するタッチ入力履歴データ72b(図6参照)をデータ記憶領域72に記録する。ただし、この実施例では、上述したように、現フレームを含む3秒分のフレーム数に相当するタッチ入力履歴を用いて、テンポを検出するようにしてある。このため、タッチ入力履歴記憶プログラム70eは、現フレームから過去に遡って、3秒を超えているフレームに相当するタッチ入力のタイミングについてはリジェクトする。
【0088】
テンポ検出プログラム70fは、タッチ入力履歴を、各テンポT(150−90)における四分音符の長さ分だけずらしながら比較し、比較した結果、最も一致度が高いときのテンポTを演奏テンポとして特定するためのプログラムである。つまり、タッチ入力履歴の自己相関関数が算出され、相関が最も高い場合のテンポTが、演奏テンポとして特定されるのである。位相ずれ検出プログラム70gは、テンポ検出プログラム70fに従って検出された演奏テンポと、タッチ入力履歴とのずれ量(位相ずれ)を検出するためのプログラムである。
【0089】
サウンド出力プログラム70hは、プレイヤの演奏に従う音を、出力するためのプログラムである。つまり、プレイヤが弦を弾く操作を実行すると、これに応じて、ギター音が出力される。効果音出力プログラム70iは、拍手の音や歓声のような効果音を、出力するためのプログラムである。たとえば、プレイヤが演奏を開始したときに、または、演奏中に拍手音が一定回数以上出力され、演奏を終了したときに、歓声が出力される。また、特定された演奏テンポにおける四分音符の先頭のタイミングと、プレイヤの演奏(タッチ入力)のタイミングとが一致する或いはほぼ一致する(この実施例では、位相ずれが5フレーム以内)場合に、拍手音が出力される。上述したように、拍手音の音量は、テンポが安定している場合に増大され、テンポが不安定である場合に減少される。
【0090】
なお、図示は省略するが、プログラム記憶領域70には、バックアッププログラムなども記憶される。バックアッププログラムは、プレイヤの指示や所定のイベントに従ってゲームデータ(ゲームの途中データや結果データ)をRAM28bに記憶(セーブ)するためのプログラムである。
【0091】
図6はRAM42のデータ記憶領域72の一例を示す図解図である。図6を参照して、データ記憶領域72には、タッチオンフラグ72a、タッチ入力履歴データ72b、テンポデータ72c、弦位置データ72d、サウンドデータ72eおよび画像データ72fなどが記憶される。
【0092】
タッチオンフラグ72aは、タッチ入力の有無を判断するためのフラグであり、上述したように、タッチオン・オフ検出プログラム70dに従ってオン/オフされる。たとえば、タッチオンフラグ72aは、1ビットのレジスタで構成され、当該フラグがオンされると、レジスタにデータ値「1」が記憶され、逆に、当該フラグがオフされると、レジスタにデータ値「0」が記憶される。
【0093】
タッチ入力履歴データ72bは、タッチ入力履歴についてのデータである。ただし、タッチ入力履歴データ72bは、最大で、現フレームを含む過去3秒分の各フレームに対応するデータ(720,722,…)を記憶される。ここで、タッチ入力履歴とは、各フレームにおける、タッチ座標とタッチオンフラグ72aのオン/オフの情報(フラグ情報)とをいう。ただし、タッチオンフラグ72aがオフの場合には、タッチ入力が無いため、タッチ座標は記憶されない。
【0094】
テンポ履歴データ72cは、現フレームの直前のフレームまでに、毎フレーム算出された演奏テンポを時系列に従って記憶したデータである。弦位置データ72dは、LCD14(操作画面)に操作オブジェクト(弦)を表示するためのデータ(730,732,734など)である。具体的には、各弦(第1弦,第2弦,…,第6弦)についてのLCD14の表示位置(横方向の座標(X座標))が記憶される。また、この弦位置データ72dは、各弦がプレイヤによって弾かれたか否かを判断する場合にも用いられる。具体的には、プレイヤがスティック26でタッチパネル24をタッチし、そのままスライドするとき、このスティック26の移動に従って撓む弦の表示位置のX座標(弦位置データ72dが示すX座標)と、現在のタッチ位置のX座標との差が一定値(たとえば、10dot)を超えると、当該弦が弾かれたと判断する。
【0095】
サウンドデータ72eは、ギター音データ740および効果音データ742を含む。ギター音データ740は、ギターの各弦に対応する音のデータを記憶する。したがって、音階に応じた音やコードに従う音は、各現に対応する音のデータを用いて生成され、出力される。また、効果音データ742は、拍手や歓声のような効果音についてのデータである。画像データ72fは、LCD12およびLCD14にゲーム画面や操作画面を表示するための画像を生成するためのデータ(キャラクタデータやテクスチャデータなど)である。
【0096】
また、データ記憶領域72には、フレームカウンタ72gおよび拍手音カウンタ72hなどが設けられる。フレームカウンタ72gは、演奏開始からのフレーム数をカウントするためのカウンタである。拍手音カウンタ72hは、プレイヤが演奏中に拍手音が出力された回数をカウントするためのカウンタである。
【0097】
なお、図示は省略するが、データ記憶領域には、他のゲームデータやフラグデータも記憶され、他のカウンタも設けられる。
【0098】
具体的には、図2に示したCPUコア34が図7および図8に示すフロー図に従って演奏処理を実行する。図7に示すように、CPUコア34は、演奏処理を開始すると、ステップS1で、初期化処理を実行する。ここでは、たとえば、フレームカウンタ72gおよび拍手音カウンタ72hをリセットする。つまり、カウント値が0に設定される。ステップS3では、プレイヤが演奏を開始したか否かを判断する。つまり、演奏ゲームを開始してから、初めてタッチ入力を検出したか否かを判断する。
【0099】
ステップS3で“NO”であれば、つまりプレイヤが演奏を開始していなければ、同じステップS3に戻る。一方、ステップS3で“YES”であれば、つまりプレイヤが演奏を開始すれば、ステップS5で、歓声の効果音を出力する。ここでは、CPUコア34は、データ記憶領域72の歓声についての効果音データ742を読み出し、I/F回路48を介して、右スピーカ36aおよび左スピーカ36bから出力する。以下、効果音を出力する場合において同様である。
【0100】
次のステップS7では、ゲーム処理を実行する。ここでは、プレイヤの操作入力(ボタン操作やタッチ入力)を検出したり、LCD12のゲーム画面を表示(更新)したり、LCD14の操作画面をプレイヤのタッチ入力に従って表示(更新)したりする。また、プレイヤの操作入力に従ってギター音を出力する。ここでは、プレイヤの操作入力は、タッチ入力のみの場合と、ボタン操作(方向スイッチ22aの操作)およびタッチ入力の場合とがある。したがって、弾かれた弦に対応する単音やコードの音が出力される。ここでは、CPUコア34は、弾かれた弦に対応する音についてのギター音データ742をデータ記憶領域72から読み出し、I/F回路48を介して、右スピーカ36aおよび左スピーカ36bから出力する。さらに、Lボタン22Lの操作に応じて、モードを切り換える。
【0101】
続くステップS9では、フレーム数をカウントする。つまり、フレームカウンタ72gをインクリメントする。ここで、図7および図8に示すフロー図において、ステップS7−S31のスキャンタイムは1フレームであり、したがって、演奏が継続している間では、ステップS7の処理が実行される度に、1フレームずつ加算(カウント)され、演奏開始からのフレーム数がカウントされる。
【0102】
次のステップS11では、タッチ入力履歴を更新する。ステップS7で検出したタッチ入力に応じて、タッチ座標およびフラグ情報のデータをデータ記憶領域72に記憶するのである。つまり、タッチ入力履歴データ72bが更新される。ただし、タッチ入力が無い場合には、タッチ座標は記憶されない。
【0103】
タッチ入力履歴を更新すると、ステップS13で、後述するテンポ検出処理(図9参照)実行し、ステップS15で、テンポ履歴を更新する。つまり、テンポ検出処理によって今回検出された演奏テンポの数値データがデータ記憶領域72に記憶(追加)され、テンポ履歴データ72cが更新される。
【0104】
そして、ステップS17では、テンポ履歴のずれ量が所定値(たとえば、5テンポ)以内であるかどうかを判断する。具体的には、CPUコア34は、今回検出したテンポと前回検出したテンポとの差(の絶対値)が所定値以内であるか否かを判断する。ステップS17で“YES”であれば、つまりテンポ履歴のずれ量が所定値以内であれば、演奏テンポが安定していると判断して、盛り上がりの効果音(たとえば、拍手音)用の音量値を増加させて、図8に示すステップS23に進む。一方、ステップS17で“NO”であれば、つまりテンポ履歴のずれ量が所定値を超えていれば、演奏テンポが不安定であると判断して、盛り上がりの効果音用の音量値を減少させて、ステップS23に進む。
【0105】
図8に示すように、ステップS23では、後述する四分音符内の位相ずれ検出処理(図10参照)を実行する。つまり、CPUコア34は、盛り上がりの効果音を出力するタイミングであるか否かを検出する。次のステップS25では、位相が四分音符の先頭のタイミングであるかどうかを判断する。つまり、CPUコア34は、現フレーム(演奏のタイミング)と四分音符の先頭のタイミングとの位相ずれが一定範囲(たとえば、5フレーム)内であるかどうかを判断する。
【0106】
ステップS25で“NO”であれば、つまり位相が四分音符の先頭のタイミングでなければ、そのままステップS31に進む。一方、ステップS25で“YES”であれば、つまり位相が四分音符の先頭のタイミングであれば、ステップS27で、盛り上がりの効果音すなわち拍手音を出力し、ステップS29で、拍手音の回数(出力回数)をカウントして、つまり拍手音カウンタ72hをインクリメントして、ステップS31に進む。
【0107】
ステップS31では、演奏終了であるかどうかを判断する。ここでは、CPUコア34は、演奏終了の指示が入力されたかどうかを判断する。ただし、タッチ入力が無い時間をカウントするタイマを設けておき、当該タイマが一定時間(たとえば、10秒)をカウントしたときに、演奏終了であると判断するようにしてもよい。
【0108】
ステップS31で“NO”であれば、つまり演奏終了でなければ、図7に示したステップS7に戻る。しかし、ステップS31で“YES”であれば、つまり演奏終了であれば、ステップS33で、拍手音の出力回数が一定回数(たとえば、30)以上であるかどうかを判断する。つまり、拍手音カウンタ72hのカウント値が一定回数以上であるかどうかを判断する。ステップS33で“NO”であれば、つまり拍手音カウンタ72hのカウント値が一定回数未満であれば、そのまま演奏処理を終了する。一方、ステップS33で“YES”であれば、つまり拍手音カウンタ72hのカウント値が一定回数以上であれば、ステップS35で、歓声の効果音を出力し、演奏処理を終了する。
【0109】
図9は、図7に示したステップS13のテンポ検出処理を示すフロー図である。なお、上述したように、演奏処理におけるステップS7−S31のスキャンタイムは1フレームであるため、このテンポ検出処理は、毎フレーム実行される。図9に示すように、CPUコア34はテンポ検出処理を開始すると、ステップS41で、テンポTを初期値に設定する(T=90)。
【0110】
次のステップS43では、テンポTにおける四分音符の長さだけずらしたタッチ入力履歴(遅延履歴)と、元の履歴との相関値v1を数1に従って算出する。そして、ステップS45で、算出した相関値v1とテンポTとを対応づけて記憶領域72に保存(一時記憶)する。
【0111】
続いて、ステップS47で、テンポTが最大値(T=150)であるかどうかを判断する。つまり、テンポTが90から150までのすべてについて、相関値v1を算出したかどうかを判断する。ステップS47で“YES”であれば、つまりテンポTが最大値であれば、ステップS49で、最も相関値v1が大きくなるテンポTを特定して、テンポ検出処理をリターンする。つまり、最も相関の高いテンポTが演奏テンポとして特定される。一方、ステップS47で“NO”であれば、つまりテンポTが最大値でなければ、ステップS51で、テンポTを1増加して(T=T+1)、ステップS43に戻る。
【0112】
なお、図示は省略するが、演奏テンポを特定したとき、データ記憶領域72に一時記憶された相関値v1とテンポTとはすべて消去される。
【0113】
図10は、図8に示したステップS23の位相ずれ検出処理を示すフロー図である。なお、上述したように、演奏処理におけるステップS7−S31のスキャンタイムは1フレームであるため、この位相ずれ検出処理も、毎フレーム実行される。図10に示すように、四分音符内の位相検出処理を開始すると、ステップS61で、位相tに初期値を設定する(t=0)。つまり、CPUコア34は、特定した演奏テンポで決まる四分音符の開始タイミングと、現フレームのタイミングとを一致させる。
【0114】
続くステップS63では、四分音符の先頭のみを「1」とし、それ以外を「0」とする関数(インパルス関数)を位相フレーム分ずらしたものと、元の履歴との相関値v2を数2に従って算出する。そして、ステップS65で、算出した相関値v2と位相tとを対応づけてデータ記憶領域72に保存(一時記憶)する。
【0115】
続いて、ステップS67では、位相tが四分音符の長さに相当するフレーム数であるかどうかを判断する。つまり、位相tが最大フレーム数になったかどうかを判断する。ステップS67で“YES”であれば、つまり位相tが四分音符の長さに相当するフレーム数であれば、ステップS69で、最も相関値v2の大きくなる位相tを特定して、位相ずれ検出処理をリターンする。つまり、最も相関の高い位相tが四分音符内の位相ずれとして特定される。一方、ステップS67で“NO”であれば、つまり位相tが四分音符の長さに相当するフレーム数に達していなければ、ステップS71で、位相tを1加算して(t=t+1)、ステップS63に戻る。
【0116】
なお、図示は省略するが、位相tを特定したとき、データ記憶領域72に一時記憶された相関値v2と位相とはすべて消去される。
【0117】
この実施例によれば、プレイヤが自由に演奏するときのテンポを検出し、検出したテンポの四分音符のタイミングと、プレイヤの演奏するタイミングとが一致するとき、効果音を鳴らすので、娯楽的な要素の大きい音楽演奏を楽しむことができる。
【0118】
なお、この実施例では、テンポが安定しているか否かで、拍手音(効果音)の音量値を変化させるようにしたが、効果音自体を変化させるようにしてもよい。たとえば、テンポが安定している場合には、拍手音に歓声や口笛のような他の音を加えて、効果音を変化させるようにし、逆にテンポが不安定である場合には、拍手音から、ざわめきやいわゆるブーイングのような他の効果音に変化させるようにしてもよい。
【0119】
また、この実施例では、ポインティングデバイスとしてタッチパネルを用いるようにしたが、これに限定されるべきではない。他の例としては、コンピュータマウス、タッチパッドまたはペンタブレットを用いることができる。ただし、かかる場合には、ゲーム画面にマウスポインタのような指示画像を表示する必要がある。
【0120】
さらに、ゲーム装置の構成は、上述の実施例の構成に限定されるべきでない。たとえば、LCDは1つでもよく、タッチパネルは2つのLCDのそれぞれに設けるようにしてもよい。
【図面の簡単な説明】
【0121】
【図1】図1はこの発明のゲーム装置の一実施例を示す図解図である。
【図2】図2は図1に示すゲーム装置の電気的な構成を示すブロック図である。
【図3】図3は図1に示すゲーム装置で一例として音楽演奏ゲームをプレイしている状態を示す図解図である。
【図4】図4は音楽演奏ゲームをプレイしている場合に演奏のテンポを検出する方法およびそのテンポの四分音符内の位相を検出する方法を説明するための図解図である。
【図5】図5は図2に示すRAMのメモリマップの一例を示す図解図である。
【図6】図6は図5に示すデータ記憶領域の一例を示す図解図である。
【図7】図7は図2に示すCPUコアの演奏処理の一部を示すフロー図である。
【図8】図8は図2に示すCPUコアの演奏処理の他の一部であって、図7に後続するフロー図である。
【図9】図9は図2に示すCPUコアのテンポ検出処理を示すフロー図である。
【図10】図10は図2に示すCPUの四分音符内の位相ずれ検出処理を示すフロー図である。
【符号の説明】
【0122】
10 …ゲーム装置
12,14 …LCD
16,16a,16b …ハウジング
22 …操作スイッチ
24 …タッチパネル
26 …スティック
28 …メモリカード
28a …ROM
28b,42 …RAM
34 …CPUコア
36a,36b …スピーカ
44,46 …GPU
48 …I/F回路
50 …LCDコントローラ
52,54 …VRAM

【特許請求の範囲】
【請求項1】
ユーザが操作入力を行う操作手段と、少なくとも音データを記憶する記憶手段とを備える演奏装置であって、
前記操作手段からの操作入力に応じて、前記記憶手段に記憶された音データに基づいて演奏音を出力する演奏音出力手段、
前記操作手段からの操作入力の履歴を前記記憶手段に記憶する履歴記憶手段、
現時点までの所定期間についての操作入力の履歴に基づいて演奏テンポを検出する演奏テンポ検出手段、
前記演奏テンポ検出手段によって検出された演奏テンポと、現在の操作入力とが所定の関係であるかどうかを判定する判定手段、および
前記判定手段によって所定の関係であることが判定されたとき、前記記憶手段に記憶された特別音に対応する音データを出力する特別音出力手段を備える、演奏装置。
【請求項2】
前記演奏テンポ検出手段は、現時点までの所定期間についての操作入力の第1履歴と、当該第1履歴を所定のルールに従って算出した遅延時間でずらした第2履歴とを、異なる遅延時間毎に複数回比較する履歴比較手段を含み、前記履歴比較手段の比較結果において、第1履歴との一致度が最も高い第2履歴についての遅延時間に基づいて前記演奏テンポを検出する、請求項1記載の演奏装置。
【請求項3】
前記判定手段は、前記演奏テンポ検出手段によって検出された演奏テンポにおける四分音符の先頭のタイミングと、現在の操作入力のタイミングとが一致するか或いはほぼ一致するか否かを判定する、請求項2記載の演奏装置。
【請求項4】
前記演奏テンポ検出手段によって検出された演奏テンポを前記記憶手段に記憶する演奏テンポ記憶手段、前記演奏テンポ記憶手段によって記憶された演奏テンポが一定の範囲内で継続しているか否かを判定する演奏テンポ変化判定手段、および前記演奏テンポ変化判定手段の判定結果に基づいて、前記特別音を変化させる特別音変化手段をさらに備える、請求項1ないし3のいずれかに記載の演奏装置。
【請求項5】
ユーザが操作入力を行う操作手段と、少なくとも音データを記憶する記憶手段とを備える演奏装置の演奏制御プログラムであって、
前記演奏装置のプロセサを、
前記操作手段からの操作入力に応じて、前記記憶手段に記憶された音データに基づいて演奏音を出力する演奏音出力手段、
前記操作手段からの操作入力の履歴を前記記憶手段に記憶する履歴記憶手段、
現時点までの所定期間についての操作入力の履歴に基づいて演奏テンポを検出する演奏テンポ検出手段、
前記演奏テンポ検出手段によって検出された演奏テンポと、現在の操作入力とが所定の関係であるかどうかを判定する判定手段、および
前記判定手段によって所定の関係であることが判定されたとき、前記記憶手段に記憶された特別音に対応する音データを出力する特別音出力手段として機能させる、演奏制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2007−236765(P2007−236765A)
【公開日】平成19年9月20日(2007.9.20)
【国際特許分類】
【出願番号】特願2006−65796(P2006−65796)
【出願日】平成18年3月10日(2006.3.10)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】