説明

ゲームプログラムおよびゲーム装置

【課題】プレイヤによって入力された音声を用いてゲームの効果音を容易に生成する。
【解決手段】ゲーム装置は、プレイヤに対して音声入力を促すための通知を行う。通知の後、音声入力手段に対して入力された所定時間長の音声信号を表す音声データを当該所定時間長の音声信号毎に繰り返し取得する。さらに、音声データが取得される度に、取得された音声データが所定の選出条件を満たすか否かを判定する。そして、判定ステップにおいて選出条件を満たすと判定された音声データのみを選出音声データとして記憶手段に保存する。ゲーム装置は、ゲームキャラクタが話す様子を表すゲーム画像が表示手段に表示されているタイミングにおいて、選出音声データの少なくとも一部を用いてゲームキャラクタの声の効果音を音声出力手段から出力させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームプログラムおよびゲーム装置に関し、より特定的には、録音したプレイヤの声をゲームキャラクタの会話音声として利用するゲームプログラムおよびゲーム装置に関する。
【背景技術】
【0002】
従来、キャラクタの話し声等の効果音を出力するために、予め用意された音声データを音源として用いて、人間が話しているかのような効果音を出力する技術が知られている。特許文献1に記載の技術では、再生内容に依存して再生に変化を付けることが可能な音声再生装置が開示されている。この音声再生装置は、予め用意された音声情報を特定の区切りで分割し、分割された各情報に制御情報を付しておくことによって、再生内容に応じた変化を付けて音声再生を行うものである。
【0003】
また、特許文献2には、キャラクタ等の会話の音声を出力する合成音声出力装置が開示されている。この装置は、各文字に対応する音声データを文字毎に音源として予め用意しておく。そして、音声を再生する際には、連続して再生される2つ音声データをオーバーラップして再生する。これによって、人間が話しているかのような音声を出力することができる。
【特許文献1】特開平10−320929号公報
【特許文献2】特開2002−73068号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ここで、プレイヤによって入力された音声を音源として用いて、ゲームに登場するキャラクタがそのゲームの世界における架空の言語を話す場合の効果音(話声)を出力する場合を考える。なお、この場合の効果音は、架空の言語を話しているようにプレイヤに聞こえることが目的であるので、言葉として意味のある音声ではなく、言葉として意味のない音声となることが好ましい。このような言葉として意味のない音声を出力するためには、特許文献2に記載されているように各文字に対応する音声データを用意する方法が考えられる。すなわち、各文字に対応する音声データをプレイヤに入力させるのである。しかし、この方法では、意味のない多くの音声をプレイヤに入力させる必要があるので、この方法はプレイヤにとって非常に面倒である。なお、特許文献1は、用意される音源に対して種々の処理を行って再生することによって、再生音声に変化を付けることが記載されている。しかし、特許文献1においては、プレイヤからの入力によって音源を取得することや、音源を生成するためにどのような処理を行うかについては、想定されていない。
【0005】
それ故、本発明の目的は、プレイヤによって入力された音声を用いてゲームの効果音を容易に生成することができるゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0007】
第1の発明は、音声入力手段(マイク33)と、音声出力手段(スピーカ30aおよび30b)と、表示手段(第1LCD11または第2LCD12)と、記憶手段(RAM24)とを備えるゲーム装置(10)のコンピュータ(CPUコア21)において実行されるゲームプログラム(61)である。ゲームプログラムは、通知ステップ(ステップS12)と、取得ステップ(ステップS21)と、判定ステップ(ステップS22およびS30)と、第1記憶制御ステップ(ステップS27およびS32)と、音声出力ステップ(ステップS7)とをコンピュータに実行させる。通知ステップにおいては、プレイヤに対して音声入力を促すための通知を行う。取得ステップにおいては、通知ステップの後、音声入力手段に対して入力された所定時間長の音声信号を表す音声データを当該所定時間長の音声信号毎に繰り返し取得する。判定ステップにおいては、取得ステップにおいて音声データが取得される度に、取得された音声データが所定の選出条件を満たすか否かを判定する。第1記憶制御ステップにおいては、判定ステップにおいて選出条件を満たすと判定された音声データのみを選出音声データとして記憶手段に保存する。音声出力ステップにおいては、ゲームキャラクタが話す様子を表すゲーム画像が表示手段に表示されているタイミングにおいて、選出音声データの少なくとも一部を用いてゲームキャラクタの声の効果音を音声出力手段から出力させる。
【0008】
また、第2の発明においては、記憶制御ステップにおいて、コンピュータは、選出音声データを記憶手段の第1領域(選出音声バッファ42)に記憶させてもよい。このとき、ゲームプログラムは、選出音声データのうちからいくつかの選出音声データを所定の基準に従って選出して記憶手段の第2領域(合成用音声バッファ43)に保存する第2記憶制御ステップをさらにコンピュータに実行させる。音声出力ステップにおいて、コンピュータは、第2領域に記憶されている選出音声データの少なくとも一部を用いてゲームキャラクタの声の効果音を生成する。
【0009】
また、第3の発明においては、通知ステップは複数回実行されてもよい。このとき、ゲームプログラムは、新たな通知ステップが実行される前に、前回の通知ステップの実行後から当該新たな通知ステップの実行前までの間に第1領域に記憶された音声データを削除する削除ステップ(ステップS47)をコンピュータにさらに実行させる。
【0010】
また、第4の発明においては、ゲームプログラムは、通知ステップが実行された後、通知ステップの実行後において記憶手段に記憶された選出音声データが所定量以上となったか否かを判定する終了判定ステップ(ステップS29)をコンピュータにさらに実行させてもよい。このとき、取得ステップは、終了判定ステップにおける判定結果が肯定となったことを条件として音声データの取得を終了する、請求項1に記載のゲームプログラム。
【0011】
また、第5の発明においては、ゲームプログラムは、通知ステップが実行された後、通知ステップの実行後において所定個数の音声データについて連続して判定ステップにおける判定結果が否定となったか否かを判定する終了判定ステップ(ステップS37)をコンピュータにさらに実行させてもよい。このとき、取得ステップは、終了判定ステップにおける判定結果が肯定となったことを条件として音声データの取得を終了する。
【0012】
また、第6の発明においては、選出条件は、取得された音声データにより表される音声信号の振幅の大きさに関する変数が所定値以上となることであってもよい。
【0013】
また、第7の発明においては、選出条件は、取得された音声データにより表される音声信号の振幅の大きさに関する変数が所定値以上となる音声データが所定の下限回数以上連続して取得されたことであってもよい。
【0014】
また、第8の発明においては、第1記憶制御ステップにおいて、コンピュータは、取得された音声データにより表される音声信号の振幅の大きさに関する変数が所定値以上となる音声データが所定の上限回数だけ連続して取得されたとき、当該取得された上限回数に等しい個数の音声データを1つの選出音声データとして記憶手段に記憶させてもよい。
【0015】
また、第9の発明においては、通知ステップにおいて、コンピュータは、プレイヤに対する質問を表示手段または音声出力手段に出力してもよい。
【0016】
また、本発明は、上記ゲームプログラムを実行することによって実現される機能と同等の機能を有するゲーム装置の形態で提供されてもよい。
【発明の効果】
【0017】
第1の発明によれば、プレイヤによって入力された音声を取得し、選出条件を満たす音声データのみを保存する。そして、ゲームキャラクタが話す様子が表示されるタイミングで選出音声データを用いて効果音を出力させる。これによって、プレイヤの声を用いて、プレイヤキャラクタの話し声の効果音を容易に出力することができる。また、第1の発明によれば、取得された音声データはリアルタイムに処理され、必要な音声データのみが保存されるので、ゲーム装置の記憶手段を効率良く使用することができる。
【0018】
第2の発明によれば、選出音声データのうちから、所定の基準に従ってさらに音声データを選出することによって、効果音に用いるのに適した音声データを生成することができる。
【0019】
第3の発明によれば、第1領域には、1回の通知によって取得される選出音声データのみが記憶されることとなる。したがって、第1領域として用いる記憶領域を低減することができ、記憶手段の記憶領域を効率良く使用することができる。
【0020】
第4の発明によれば、十分なデータ量の選出音声データが取得された時点で入力音声の取得を終了する。これによって、プレイヤに不要に長い時間音声入力を行わせることがないので、音声入力作業によるプレイヤの負担を軽減することができる。
【0021】
第5の発明によれば、プレイヤによる音声入力が終了したと推定される時点で入力音声の取得を終了する。これによって、プレイヤに余計な待ち時間を与えることなく、次の処理を実行することができる。
【0022】
第6の発明によれば、例えば音声のボリュームが小さい音声信号等、効果音の再生に用いるのに不適切な音声データを選出音声データから除去することができる。
【0023】
第7の発明によれば、音声信号の長さが短すぎるため、効果音の再生に用いるのに不適切な音声データを選出音声データから除去することができる。
【0024】
第8の発明によれば、選出音声データにより表される音声信号の長さが所定長さ以下となるように選出音声データを区切って保存することができる。これによって、1つの選出音声データにより表される音声を言葉として無意味な内容のものにすることができる。例えば、キャラクタが架空の言語を話す効果音を再生する場合には、各選出音声データを無意味なものにすることによって、当該効果音をより自然に聞こえるようにすることができる。
【0025】
第9の発明によれば、画面表示や音声出力による質問に対して回答を行う形式でプレイヤに音声入力を行わせることによって、音声を入力する作業の面倒さをプレイヤに意識させずに音声入力を行わせることができる。また、プレイヤは任意の回答を行うことができるので、入力すべき言葉をゲーム装置が決める場合に比べてゲームの興趣性を損うこともない。
【発明を実施するための最良の形態】
【0026】
(第1の実施形態)
以下、図面を参照して、本発明の一実施形態に係るゲーム装置およびゲームプログラムについて説明する。図1は、ゲーム装置10の外観図である。図1において、ゲーム装置10は、表示手段である第1LCD(Liquid Crystal Display:液晶表示装置)11および第2LCD12、ハウジング13、操作スイッチ部14、ならびに、タッチパネル15を含む。また、ゲーム装置10は、音声出力手段であるスピーカ30aおよび30b(図2)、および、音声入力手段であるマイク33(図2)を含む。
【0027】
ハウジング13は上側ハウジング13aと下側ハウジング13bとによって構成されており、第1LCD11は上側ハウジング13aに収納され、第2LCD12は下側ハウジング13bに収納される。第1LCD11および第2LCD12の解像度はいずれも256dot×192dotである。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用することができる。また任意の解像度のものを利用することができる。
【0028】
上側ハウジング13aには、1対のスピーカ30aおよび30bからの音を外部に放出するための音抜き孔18a、18bが形成されている。
【0029】
下側ハウジング13bには、入力装置として、操作スイッチ部14、すなわち、十字スイッチ14a、スタートスイッチ14b、セレクトスイッチ14c、Aボタン14d、Bボタン14e、Xボタン14f、Yボタン14g、Lボタン14L、およびRボタン14Rが設けられている。また、さらなる入力装置として、第2LCD12の画面上にタッチパネル15が装着されている。下側ハウジング13bには、第2LCD12の周囲に音孔33aが設けられる。マイク33はこの音孔付近のハウジング13b内部側に設けられ、音孔33aから入ってくるハウジング外部の音を入力して電気信号(音声信号)に変換する。下側ハウジング13bには、電源スイッチ19や、メモリカード17やスティック16を収納するための挿入口が設けられている。
【0030】
タッチパネル15としては、例えば抵抗膜方式や光学式(赤外線方式)や静電容量結合式など、任意の方式のものを利用することができる。タッチパネル15は、その表面をスティック16で触れると、その接触位置に対応する座標データを出力する機能を有している。なお、以下ではプレイヤがタッチパネル15をスティック16で操作するものとして説明を行うが、スティック16の代わりにペン(スタイラスペン)や指でタッチパネル15を操作することももちろん可能である。本実施形態では、タッチパネル15として、第2LCD12の解像度と同じく256dot×192dotの解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル15の解像度と第2LCD12の解像度が一致している必要はない。
【0031】
メモリカード17はゲームプログラムを記録した記録媒体であり、下部ハウジング13bに設けられた挿入口に着脱自在に装着される。
【0032】
次に、図2を参照してゲーム装置10の内部構成を説明する。図2において、ハウジング13に収納される電子回路基板20には、CPUコア21が実装される。CPUコア21には、バス22を介して、コネクタ23が接続されるとともに、入出力インターフェース回路(図面ではI/F回路と記す)25、第1GPU(Graphics Processing Unit)26、第2GPU27、RAM24、およびLCDコントローラ31が接続される。コネクタ23には、メモリカード17が着脱自在に接続される。メモリカード17は、ゲームプログラムを記憶するROM17aと、バックアップデータを書き換え可能に記憶するRAM17bを搭載する。メモリカード17のROM17aに記憶されたゲームプログラムは、ゲーム装置10の記憶手段であるRAM24にロードされ、RAM24にロードされたゲームプログラムがCPUコア21によって実行される。RAM24には、ゲームプログラムの他にも、CPUコア21がゲームプログラムを実行して得られる一時的なデータや、ゲーム画像を生成するためのデータが記憶される。
【0033】
I/F回路25には、操作スイッチ部14、タッチパネル15、右スピーカ30a、左スピーカ30b、および、マイク33が接続される。右スピーカ30aと左スピーカ30bは、音抜き孔18a、18bの内側にそれぞれ配置される。ゲームの効果音等を出力する際、CPUコア21は、RAM24等に記憶された音声データ(音源)をI/F回路25から図示しないA/D変換回路やアンプ等を介して各スピーカ30aおよび30bへ出力する。これによって、各スピーカ30aおよび30bは音声データにより表される音声を出力する。また、マイク33に入力された音声を示す音声データは、I/F回路25を介してRAM24に記憶される。
【0034】
第1GPU26には、第1VRAM(Video RAM)28が接続され、第2GPU27には、第2VRAM29が接続される。第1GPU26は、CPUコア21からの指示に応じて、RAM24に記憶されているゲーム画像を生成するためのデータに基づいて第1のゲーム画像を生成し、第1VRAM28に描画する。第2GPU27は、同様にCPUコア21からの指示に応じて第2のゲーム画像を生成し、第2VRAM29に描画する。第1VRAM28および第2VRAM29はLCDコントローラ31に接続されている。
【0035】
LCDコントローラ31はレジスタ32を含む。レジスタ32はCPUコア21からの指示に応じて0または1の値を記憶する。LCDコントローラ31は、レジスタ32の値が0の場合は、第1VRAM28に描画された第1のゲーム画像を第1LCD11に出力し、第2VRAM29に描画された第2のゲーム画像を第2LCD12に出力する。また、レジスタ32の値が1の場合は、第1VRAM28に描画された第1のゲーム画像を第2LCD12に出力し、第2VRAM29に描画された第2のゲーム画像を第1LCD11に出力する。
【0036】
なお、上記のようなゲーム装置10の構成は単なる一例に過ぎず、本発明は、音声入力手段、音声出力手段、表示手段、および記憶手段を備える任意のコンピュータシステムに適用することができる。また、本発明のゲームプログラムは、メモリカード17などの外部記憶媒体を通じてコンピュータシステムに供給されるだけでなく、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよいし、さらにはコンピュータシステム内部の不揮発性記憶装置に予め記録されていてもよい。
【0037】
次に、本実施形態においてゲーム装置10において実行される処理について説明する。本実施形態では、ゲームに登場するキャラクタの話し声を表す効果音にプレイヤの声を用いるゲームを想定する。例えば、プレイヤが操作するプレイヤキャラクタの話し声を表す効果音にプレイヤ自身の声を用いることによって、プレイヤキャラクタに対する親近感をプレイヤに持たせることができる。なお、ここでは、キャラクタはそのゲーム世界における架空の言語を話すことを想定する。したがって、キャラクタの話し声の効果音は、架空の言語を話しているようにプレイヤに聞こえることが目的であるので、意味のある言葉の音声ではなく、言葉として意味のない音声となることが好ましい。
【0038】
本実施形態では、ゲーム装置10は、例えばゲームの開始前(ゲーム中の適宜のタイミングでもよい)にプレイヤに音声を入力させることによって、プレイヤの声の音声データを取得する。詳細は後述するが、取得された音声データは、話し声を表す効果音として用いるのに適した形でRAM24に記憶される。記憶された音声データは、ゲーム中においてキャラクタが話すタイミング、すなわち、キャラクタが話をする様子を示す画像が第1LCD11または第2LCDに表示されるタイミングでスピーカ30aおよび30bから出力される。これによって、キャラクタの話し声を表す効果音をプレイヤの音声を用いて出力することができる。以下では、プレイヤによって入力された音声データを記憶する処理、および、記憶された音声データを用いて効果音を出力する処理を中心にゲーム処理を説明する。
【0039】
まず、ゲーム装置10における処理の概要を、図3〜図5を参照して説明する。図3は、本実施形態におけるゲーム処理の概要を説明する図である。図3に示すように、ゲーム装置10は、プレイヤの音声を取得して記憶するために、入力音声バッファ41、選出音声バッファ42、および合成用音声バッファ43という3つのバッファをRAM24に設ける。入力音声バッファ41は、マイク33に入力されたプレイヤの音声を表す音声データ(入力音声データ)を格納するための記憶領域である。以下では、入力音声バッファ41に格納されている音声データを「入力音声データ」と呼ぶ。選出音声バッファ42は、入力音声データが所定の選出条件を満たす場合に当該入力音声データを格納するための記憶領域である。以下では、選出音声バッファ42に格納されている音声データを「選出音声データ」と呼ぶ。合成用音声バッファ43は、選出音声データのうちから所定の基準に従って選出された選出音声データを格納するための記憶領域である。以下では、合成用音声バッファ43に格納されている音声データを「合成用音声データ」と呼ぶ。つまり、合成用音声データとは、選出音声データのうちから所定の基準に従って選出された選出音声データのことである。
【0040】
プレイヤに音声入力を行わせる際、ゲーム装置10は、音声入力をプレイヤに対して促すための通知を行う。本実施形態では、ゲーム装置10は、プレイヤに対する質問を当該通知として第1LCD11または第2LCD12に表示させる。図4は、質問が表示された画面の一例を示す図である。図4に示すように、画面には、「質問に声で答えて下さい。」という文章46が表示されるとともに、「今日は何曜日ですか?」という質問文47が表示される。なお、本実施形態では、質問は複数回行われる。図4において質問文47の上側に表示される「質問1」とは、1つ目の質問であることを示している。図4に示すような画面が表示されたことに応じて、プレイヤは、質問に答える形でマイク33に対して音声を入力する。このように、質問に対して回答を行う形式でプレイヤに音声入力を行わせることによって、ゲーム装置10は、音声を入力する作業をプレイヤに意識させずに行わせることができる。例えば、50音の各文字を順にプレイヤに入力させる方法も考えられるが、この方法ではプレイヤが入力を面倒に感じるおそれがある。また、本実施形態では、ゲーム装置10は、質問を画面に表示することによって上記通知を行ったが、他の実施形態では、質問を音声出力することによって上記通知を行ってもよい。また、ゲーム装置10は、質問に対して回答を行う形式以外にも、例えば、所定の単語をプレイヤに音声入力させる指示を行うようにしてもよい。
【0041】
図3の説明に戻り、上記通知が行われた後、ゲーム装置10は、音声データ格納処理(図8のステップS13参照)を実行する。音声データ格納処理として、まず、音声入力の取得処理が実行される。すなわち、ゲーム装置10はマイク33に対する音声入力を取得する。これによって、入力音声バッファ41には上記入力音声データが格納される。本実施形態では、入力音声バッファ41は、所定時間長の音声信号に相当するデータ量の音声データを格納可能な大きさに設定される。なお、図3に示すように、所定時間は例えば1フレーム時間(1/60秒)とする。したがって、入力音声バッファ41には、1フレーム分の音声信号に相当する音声データが格納される。また、入力音声バッファ41の内容は、マイク33によって所定時間長の音声信号が取得される度に逐次更新される。以下では、入力音声バッファ41に格納される1フレーム分の入力音声データを1つの入力音声データとする。
【0042】
次に、音声データ格納処理として、ゲーム装置10は、選出音声データを格納する処理を実行する。すなわち、音声入力の取得処理の結果、入力音声バッファ41に1フレーム分の入力音声データが格納されると、ゲーム装置10は、所定の選出条件を満たす入力音声データを選出音声データとして選出音声バッファ42に格納する。具体的には、ゲーム装置10は、入力音声データが上記選出条件を満たすか否かを判定する。ここで、選出条件とは、キャラクタの声の効果音に用いるのに適当であるか否かを判定するための条件である。本実施形態において、選出条件は、次の条件aおよび条件bがともに満たされることである。
(条件a):振幅(ボリューム)が所定の閾値V1以上となる部分が存在すること。
(条件b):条件aを満たす入力音声データが所定の下限回数(本実施形態では6回とする)連続して取得されること。
以下、図5を用いて、選出条件を入力音声データに適用した場合の具体例を説明する。
【0043】
図5は、選出条件を説明するための図である。図5に示すグラフは、プレイヤによって入力された音声信号の波形を示し、当該グラフの横軸は時間[t]を示し、縦軸は振幅[V]を示す。また、図5において、その内部に数字が付されたブロックは1つの入力音声データを示し、当該数字は、入力音声データが取得された順番を示す。
【0044】
図5において、第1番目から第8番目の入力音声データは、上記選出条件を満たしている。したがって、第1番目から第8番目の入力音声データは選出音声データとして選出音声バッファ42に格納される。また、第9番目の入力音声データは、上記条件aを満たさないので選出されない。また、第10番目および第11番目の入力音声データは、上記条件aを満たすものの、第12番目の入力音声データが上記条件aを満たさないので、上記条件bを満たさない。したがって、第10番目および第11番目の入力音声データは選出されない。また、第12番目の入力音声データは上記条件aを満たさないので選出されない。
【0045】
なお、本実施形態では、条件aは音声データにより表される音声信号の振幅に関する条件であったが、他の実施形態においては、条件aに代えて、音声信号の振幅の大きさに関する変数(振幅値や振幅の平均値を含む)に関する条件を用いてもよい。つまり、音声データにより表される音声信号のボリュームが効果音の再生に用いるのに十分であるか否かを判定するものであれば、どのような条件を用いてもよい。例えば、条件aに代えて、音声信号の振幅の平均値が所定値以上となることを条件として用いてもよい。また、他の実施形態においては、選出条件は、音声信号の振幅の大きさに関する変数に関する条件を少なくとも含むものであればよい。
【0046】
なお、他の実施形態においては、条件bに代えて、次の条件b’を用いるようにしてもよい。
(条件b’):上記下限回数連続して取得される入力音声データに、条件aを満たさない入力音声データが0個または1個含まれること。
図5の例で言えば、第1番目から第11番目の入力音声データには、条件aを満たさない入力音声データ(第9番目の入力音声データ)が1つのみ含まれるので、第1番目から第11番目の入力音声データは条件b’を満たす。したがって、第1番目から第11番目の入力音声データは選出音声データとして選出される。上記条件bを採用した場合に、選出音声データの音声信号が短くなりすぎる場合には、条件b’を採用することが効果的である。
【0047】
上記選出条件を満たすと判定された入力音声データは、選出音声データとして選出音声バッファ42に格納される。ここでは、上記条件bを満たすと判定された一連の入力音声データを、1つの選出音声データとする。図5に示す例で言えば、第1番目から第8番目の入力音声データが1つの選出音声データとして格納される。
【0048】
また、選出音声データの格納処理において、上記条件aを満たす入力音声データが所定の上限回数(本実施形態では20回とする)連続して取得された場合、ゲーム装置10は、当該連続して取得された入力音声データを1つの選出音声データとして選出音声バッファ42に格納する。つまり、ゲーム装置10は、1つの選出音声データの長さが上記上限回数に等しい個数の入力音声データの長さ以下となるように、選出音声データを区切って格納する。例えば、条件aを満たす入力音声データが30回連続して取得された場合、ゲーム装置は、最初に取得された20個の入力音声データを1つの選出音声データとして格納するとともに、後で取得された10個の入力音声データを1つの選出音声データとして格納する。ここで、1つの選出音声データが長くなると、1つの選出音声データが意味のある音声を表してしまう(例えば、1つの単語を表してしまう)ことがある。本実施形態のゲームではキャラクタが架空の言語を話すことを想定しているので、キャラクタの話し声の中に意味のある単語が含まれていると、ゲームの想定に反することになる。そこで、本実施形態では、選出音声データを区切って格納することによって、1つの選出音声データが長くなりすぎないようにしている。これによって、キャラクタの話し声として再生される音声を無意味なものにすることができる。
【0049】
ゲーム装置10は、上記音声データ格納処理において、入力音声を取得する処理、および、選出音声データを格納する処理を、所定の終了条件が満たされるまで繰り返す。終了条件とは、1回の質問に対する音声入力の取得を終了するための条件である。本実施形態において、終了条件は、1回の質問に対する音声入力として十分な量の選出音声データを取得することができたか、または、1回の質問に対するプレイヤの音声入力が終了したと判断されるかのいずれかに該当することである。具体的には、終了条件は、次の条件cおよび条件dのいずれかが満たされたことである。
(条件c):今回の質問に対する音声入力によって選出音声データが所定個数取得されたこと。
(条件d):少なくとも1つの選出音声データが選出音声バッファ42に格納されている状態において上記条件aを満たさない入力音声データが所定回数(本実施形態では、45回)連続して取得されたこと。
上記終了条件が満たされた場合、ゲーム装置10は、上記音声データ格納処理を終了する。なお、図3の例では、1回の音声データ格納処理において、選出音声データ51〜56という6つの選出音声データが選出音声バッファ42に格納されている。
【0050】
なお、他の実施形態においては、上記条件cに代えて、今回の質問に対する音声入力によって取得された選出音声データの合計が所定のデータ量となったことを条件としてもよい。また、他の実施形態においては、条件dにおいて、「少なくとも1つの選出音声データが選出音声バッファ42に格納されていること」を条件から外してもよい。
【0051】
上記音声データ格納処理を終了すると、ゲーム装置10は、音声データ選出処理を行う(図8のステップS14参照)。音声データ選出処理は、選出音声データの中から、効果音を生成するのに適した音声データを選出する処理である。選出された音声データは、合成用音声データとして合成用音声バッファ43に格納される。図3の例では、選出音声データ51〜56のうちで、選出音声データ52,54,および56という3つの選出音声データが合成用音声データとして選出されている。なお、合成用音声データを選出するための基準については後述する(図10のステップS41〜S45参照)。
【0052】
合成用音声データを選出すると、ゲーム装置10は、効果音を生成するために十分な量の合成用音声データが取得されたか否かを判定する。ここで、「効果音を生成するために十分な量の合成用音声データが取得された」とは、具体的には、条件eおよび条件fのいずれかが満たされたことである。
(条件e):合成用音声バッファ43に格納されている合成用音声データの数が所定個数以上になったこと。
(条件f):合成用音声バッファ43に格納されている合成用音声データが所定のデータ量以上となったこと。
なお、他の実施形態においては、条件eおよび条件fのいずれか一方のみを用いてもよい。
【0053】
上記の判定の結果、十分な量の合成用音声データが取得された場合、ゲーム装置10は、質問の提示を終了する。一方、十分な量の合成用音声データが取得されていない場合、ゲーム装置10は、次の質問を提示し、その後、上記音声データ格納処理および音声データ選出処理を実行する。そして、十分な量の合成用音声データが取得されるまで、質問の提示を続ける。なお、予め用意された個数の質問を全て提示した場合、最初に提示された質問が再度提示される。なお、図3では、2回目以降の質問に対する音声データ格納処理および音声データ選出処理の結果、3つの合成用音声データ57〜59が合成用音声バッファ43に格納されている。
【0054】
質問の提示を終了した後、ゲーム装置10は、ゲーム処理を行ってゲームを進行させる。そして、キャラクタが話をするタイミングでキャラクタの話し声の効果音を再生する。効果音を再生する際、ゲーム装置10は、合成用音声バッファ43に格納されている合成用音声データの中からいくつかをランダムに選出する。図3の例においては、合成用音声バッファ43に格納されている6つの合成用音声データ52,54,56−59のうち、最初に合成用音声データ57が選択され、2番目に合成用音声データ59が選択され、3番目に合成用音声データ56が選択されている。ゲーム装置10は、さらに、合成用音声データを再生するために用いるシーケンスを選択する。そして、選出した各合成用音声データに対して当該シーケンスに従って変調等の処理を行った後、音声として出力する。なお、図3に示すように、再生音声としては複数の合成用音声データがつなげて再生される。合成用音声データの再生順はランダムに決定され、合成用音声バッファ43に格納されている順とは無関係である。以上のようにして、合成用音声データを用いた効果音の再生が行われる。
【0055】
以上のように、本実施形態においては、キャラクタの話し声を表す効果音を、プレイヤによって入力された音声を用いて生成することができる。また、入力音声データを選出音声データとして選出するか否かをリアルタイムに判定し、選出されない入力音声データをバッファに保存しないようにしている。これによって、入力音声バッファの記憶領域を低減することができ、ゲーム装置10のメモリを効率的に使用することができる。
【0056】
さらに、本実施形態では、選出音声データを区切って格納することによって、1つの合成用音声データの長さを20フレーム分以下の長さにすることができる。これによって、1つの合成用音声データに含まれる音声を言葉として無意味なものにすることができるので、効果音として再生する音声を言葉として無意味なものにすることができる。したがって、本実施形態によれば、プレイヤによって入力された音声を用いて、架空の言語を話しているようなゲームの効果音を容易に生成することができる。
【0057】
次に、ゲーム装置10において行われるゲーム処理の詳細を説明する。まず、ゲーム処理において用いられる主なデータについて図6を用いて説明する。図6は、ゲーム装置10のRAM24に記憶される主なデータを示す図である。図6に示すように、RAM24のプログラム記憶領域60には、ゲームプログラム61が記憶される。ゲームプログラム61は、ゲーム処理プログラム62、質問出力プログラム63、音声取得プログラム64、選出条件判定プログラム65、選出音声データ格納プログラム66、終了判定プログラム67、合成用音声データ格納プログラム68、および、音声出力プログラム69を含む。
【0058】
ゲーム処理プログラム62は、所定のゲーム処理を実行するためのプログラムである(図7のステップS4)。質問出力プログラム63は、プレイヤに対して音声入力を促すための質問を出力するためのプログラムである(図8のステップS12)。音声取得プログラム64は、マイク33に対して入力された所定時間長の音声信号を表す音声データを当該所定時間長の音声信号毎に繰り返し取得するためのプログラムである(図9のステップS21)。選出条件判定プログラム65は、音声取得プログラム64によって音声データが取得される度に、取得された音声データが上記選出条件を満たすか否かを判定するためのプログラムである(図9のステップS22およびS30)。選出音声データ格納プログラム66は、選出条件を満たすと判定された音声データのみを選出音声データとして上記選出音声バッファ42に保存するためのプログラムである(図9のステップS27およびS32)。終了判定プログラム67は、上記終了条件が満たされたか否かを判定するためのプログラムである(図9のステップS29およびS37)。合成用音声データ格納プログラム68は、選出音声データのうちからいくつかの選出音声データを所定の基準に従って選出して上記合成用音声バッファ43に保存するためのプログラムである(図8のステップS14)。音声出力プログラム69は、ゲームキャラクタが話す様子を表すゲーム画像が表示されているタイミングにおいて、合成用音声データの少なくとも一部を用いてゲームキャラクタの声の効果音を出力するためのプログラムである(図7のステップS7)。
【0059】
また、RAM24のデータ記憶領域40には、上記入力音声バッファ41、上記選出音声バッファ42、上記合成用音声バッファ43、およびシーケンス記憶領域44が含まれる。なお、RAM24には、図6に示すデータの他、ゲームに登場するキャラクタの画像データや、後述する第1〜第5カウンタを示すデータ等、ゲーム処理に必要なデータが記憶される。
【0060】
入力音声バッファ41には上記入力音声データが記憶される。選出音声バッファ42には上記選出音声データが記憶される。合成用音声バッファ43には、上記合成用音声データが記憶される。シーケンス記憶領域44は、シーケンスデータを記憶するための記憶領域である。シーケンス記憶領域44には、少なくとも1つのシーケンスデータ(図6では、シーケンスデータ44aおよび44b)が記憶される。シーケンスデータは、合成用音声データを再生するために用いるシーケンスを示す。
【0061】
次に、ゲーム装置10において行われるゲーム処理の詳細を、図7〜図11を用いて説明する。図7は、ゲーム装置10において実行されるゲーム処理の流れを示すフローチャートである。ゲーム装置10の電源が投入されると、ゲーム装置10のCPUコア21は、図示しないブートROMに記憶されている起動プログラムを実行し、RAM24等の各ユニットが初期化される。そして、メモリカード17に格納されたゲームプログラムがRAM24に読み込まれ、CPUコア21によって当該ゲームプログラムの実行が開始される。図7に示すフローチャートは、以上の処理が完了した後に実行されるゲーム処理を示すフローチャートである。
【0062】
まず、ステップS1において、ゲーム処理の初期設定が行われる。例えば、ゲーム空間を構築する処理や、キャラクタに関する各種パラメータの初期値を設定する処理等が行われる。ステップS1の後、ゲームが開始され、以降のステップS2〜S8の処理が実行されることによってゲームが進行していく。
【0063】
ステップS2において、CPUコア21は、プレイヤの音声を取得するための音声取得処理を行うか否かを判定する。すなわち、ゲーム中において、音声取得処理を行うタイミングが到来したか否かを判定する。なお、音声取得処理を行うタイミングはどのようなタイミングであってもよい。例えば、ゲーム開始前に音声取得処理を行うようにしてもよいし、ゲーム中において所定の条件が満たされたときに音声取得処理を行うようにしてもよい。ステップS2の判定において、音声取得処理を行うと判定された場合、ステップS3の処理が実行される。一方、音声取得処理を行わないと判定された場合、ステップS3の処理がスキップされてステップS4の処理が実行される。
【0064】
ステップS3においては、音声取得処理が実行される。音声取得処理は、プレイヤに音声を入力させることによって当該音声を取得する処理である。以下、図8を用いて音声取得処理の詳細を説明する。
【0065】
図8は、図7に示すステップS3の音声取得処理の詳細を示すフローチャートである。音声取得処理においては、まずステップS11において、CPUコア21は音声取得処理の初期設定を行う。すなわち、音声取得処理において用いる第1〜第5カウンタの値を初期化する。ここで、第1カウンタC1は、現在格納中の選出音声データの長さを示す。第1カウンタC1=nである場合、選出音声データの長さは入力音声データn個分の長さとなる。第2カウンタC2は、1つの質問に対する音声入力によって取得された選出音声データの数を示す。第3カウンタC3は、音声入力がないと判断された入力音声データ(すなわち、条件aを満たさない入力音声データ)が連続して取得された回数を示す。第4カウンタC4は、合成用音声バッファ43に格納された合成用音声データの数を示す。第5カウンタC5は、次に出力すべき質問の番号を示す。なお、予め用意される複数の質問には、1から順に番号が付されているものとする。ステップS11においては、第1カウンタC1〜第4カウンタC4の値は、それぞれ“0”に設定される。また、第5カウンタC5の値は、“1”に設定される。
【0066】
ステップS12において、CPUコア21は、質問出力プログラム63を実行することによって、質問を第1LCD11または第2LCD12に表示させる。表示される質問は、第5カウンタC5の値により示される番号が付された質問である。質問が表示されたことに応じて、プレイヤは、マイク33に対して回答を音声で入力する。なお、プレイヤは、自身の声を入力する以外にも、例えば楽器の音を入力するようにしてもよい。なお、質問を表示した後、第5カウンタC5の値はインクリメント(1増加)される。また、第2カウンタC2がリセットされ、C2の値は“0”になる。
【0067】
続くステップS13において、音声データ格納処理が実行される。音声データ格納処理は、プレイヤによって入力された音声を表す音声データをRAM24のバッファに格納する処理である。以下、図9を用いて、音声データ格納処理の詳細を説明する。
【0068】
図9は、図8に示すステップS13の音声データ格納処理の詳細を示すフローチャートである。音声データ格納処理では、まずステップS21において、CPUコア21は、音声取得プログラム64を実行することによって、マイク33から入力された1フレーム分の音声信号に相当する音声データを取得する。すなわち、当該音声データが入力音声バッファ41に格納される。なお、今回のステップS21で新たに取得された音声データは、前回のステップS21で入力音声バッファ41に格納された音声データに上書きして入力音声バッファ41に格納される。
【0069】
ステップS22において、CPUコア21は、選出条件判定プログラム65を実行することによって、ステップS21で取得された入力音声データが上記条件aを満たすか否かを判定する。すなわち、入力音声データにおいて、振幅(ボリューム)が所定の閾値V1以上となる部分が存在するか否かを判定する。判定の結果、入力音声データが条件aを満たすと判定される場合、ステップS23の処理が実行される。一方、入力音声データが条件aを満たさないと判定される場合、後述するステップS30の処理が実行される。
【0070】
ステップS23において、CPUコア21は、第1カウンタC1をインクリメントする。続くステップS24において、CPUコア21は、入力音声データを選出音声バッファ42に追加して格納する。ステップS23およびS24の処理によって、条件aを満たす入力音声データが選出音声バッファに格納されるとともに、格納された数がカウントされる。なお、ステップS24の時点で選出音声バッファ42に格納された入力音声データは、処理の都合上一時的に格納されたにすぎず、選出音声データとして確定したものではない。つまり、ステップS24で選出音声バッファ42に格納された入力音声データは、後述するステップS34において削除されることがある。
【0071】
ステップS25において、CPUコア21は、第1カウンタC1が上限回数(=20)となったか否かを判定する。ステップS25の処理は、上記条件aを満たす入力音声データが上限回数だけ連続して取得されたか否かを判定するための処理である。判定の結果、第1カウンタC1が上限回数となったと判定される場合、ステップS26の処理が実行される。一方、第1カウンタC1が上限回数となっていないと判定される場合、ステップS21の処理が再度実行される。
【0072】
ステップS26においては、第2カウンタC2がインクリメントされる。このとき、第3カウンタC3がリセットされ、C3の値は“0”になる。続くステップS27において、CPUコア21は、選出音声データ格納プログラム66を実行することによって、選出音声バッファ42の最後からC1個(カウンタC1の値に等しい個数)分の音声データを1個の選出音声データに設定する。ステップS27によって、1つの選出音声データが選出されたことが確定され、当該選出された音声データが選出音声データとして保存される。続くステップS28において、第1カウンタC1がリセットされ、C1の値は“0”になる。
【0073】
ステップS29において、CPUコア21は、終了判定プログラム67を実行することによって、上記条件cが満たされるか否かを判定する。すなわち、今回の質問(ステップS12)に対する音声入力によって選出音声データが所定個数取得されたか否かを判定する。この判定は、具体的には、第2カウンタC2が上記所定個数に等しい数を示すか否かによって行うことができる。判定の結果、条件cが満たされる場合、すなわち、第2カウンタC2が上記所定個数に等しい数となる場合、CPUコア21は、音声データ格納処理を終了する。一方、条件cが満たされない場合、すなわち、第2カウンタC2が上記所定個数に等しい数となっていない場合、ステップS21の処理が再度実行される。
【0074】
一方、ステップS30においては、CPUコア21は、選出条件判定プログラム65を実行することによって、ステップS21で取得された入力音声データが上記条件bを満たすか否かを判定する。すなわち、上記条件aを満たす入力音声データが前述の下限回数だけ連続して取得されたか否かが判定される。ステップS30の判定は、第1カウンタC1の値を参照することによって行うことができる。すなわち、第1カウンタC1が下限回数(=6)以上である場合、条件bが満たされたと判定し、第1カウンタC1が下限回数よりも小さい場合、条件bが満たされていないと判定することができる。判定の結果、入力音声データが条件bを満たす場合、ステップS31の処理が実行される。一方、入力音声データが条件bを満たさない場合、後述するステップS34の処理が実行される。
【0075】
ステップS31〜S33においては、ステップS26〜S28と同様、ステップS24で一時的に格納されていた音声データが選出音声データとして確定される。すなわち、ステップS31においては、第2カウンタC2がインクリメントされる。このとき、第3カウンタC3がリセットされ、C3の値は“0”になる。続くステップS32において、CPUコア21は、選出音声データ格納プログラム66を実行することによって、選出音声バッファ42の最後からC1個分の音声データを1個の選出音声データに設定する。ステップS32によって、1つの選出音声データが選出されたことが確定され、当該選出された音声データが選出音声データとして保存される。ステップS33において、第1カウンタC1がリセットされ、C1の値は“0”になる。
【0076】
一方、ステップS34においては、CPUコア21は、最後からC1個分の音声データを選出音声バッファ42から削除する。当該C1個分の音声データは、上記条件bを満たさないため、選出音声バッファ42に保存しないからである。つまり、ステップS34においては、ステップS24で選出音声バッファ42に一時的に格納されていた音声データが削除される。なお、C1=0の場合、音声データは選出音声バッファ42から削除されない。
【0077】
ステップS35において、CPUコア21は、第2カウンタC2が“0”か否かを判定する。ステップS35の判定処理は、今回の質問によって選出音声データが選出音声バッファ42に保存されているか否かを判定するための処理である。すなわち、第2カウンタC2が“0”であることは、今回の質問によって選出音声データが選出音声バッファ42にまだ保存されていないことを意味する。判定の結果、第2カウンタC2が“0”である場合、ステップS21の処理が再度実行される。一方、第2カウンタC2が“0”でない場合、ステップS36の処理が実行される。
【0078】
ステップS36においては、第3カウンタがインクリメントされる。続くステップS37において、CPUコア21は、終了判定プログラム67を実行することによって、第3カウンタが所定値となったか否かを判定する。ステップS37は、上記条件dが満たされるか否かを判定するための処理である。判定の結果、第3カウンタが所定値となった場合、すなわち、上記条件dが満たされた場合、CPUコア21は音声データ格納処理を終了する。一方、第3カウンタが所定値となっていない場合、ステップS21の処理が再度実行される。
【0079】
以上に示した音声データ格納処理によって、取得された入力音声データをリアルタイムで処理することができる。すなわち、1フレーム分の入力音声データが取得される(ステップS21)度に、条件aを満たすか否かが判定される(ステップS22)。そして、入力音声データが条件aを満たす場合には、当該入力音声データが一時的に選出音声バッファに格納される(ステップS24)。入力音声データが選出音声バッファに一時的に格納される処理は、条件aを満たす入力音声データが取得される限り続けられる。その後、条件aを満たさない入力音声データが取得される(ステップS22で否定)と、条件bが満たされるか否かが判定される(ステップS30)。条件bが満たされる場合、取得された入力音声データが選出音声データとして保存される(ステップS32)。また、条件aを満たす入力音声データが取得され続けた結果、取得回数が上記上限回数に達した場合にも(ステップS25で肯定)、取得された入力音声データが選出音声データとして保存される(ステップS27)。以上の処理によって、取得された入力音声データをリアルタイムで処理して、選出音声データのみを保存することができる。
【0080】
また、CPUコア21は、上記ステップS29およびS37によって、終了条件が満たされたか否かを判定する。具体的には、ステップS29の判定処理によって、上記条件cが満たされたか否かを判定し、ステップS37の判定処理によって、上記条件dが満たされたか否かを判定する。これによって、質問に回答したプレイヤに余計な待ち時間を与えることなく、質問形式での音声入力作業をスムーズに進めることができる。
【0081】
図8の説明に戻り、ステップS13の次のステップS14において、CPUコア21が合成用音声データ格納プログラム68を実行することによって、音声データ選出処理が実行される。音声データ選出処理は、選出音声バッファ42に格納された選出音声データから、効果音に用いるのにより適した音声データを選出する処理である。以下、図10を用いて、音声データ選出処理の詳細を説明する。
【0082】
図10は、図8に示すステップS14の音声データ選出処理の詳細を示すフローチャートである。音声データ選出処理では、まずステップS41において、CPUコア21は、選出音声バッファ42に格納されている選出音声データ毎に振幅(ボリューム)の平均を算出する。続くステップS42において、選出音声データ毎に音声波形の長さを算出する。続くステップS43において、選出音声データ毎に音声信号がピーク値を取る数(ピーク数)を算出する。ステップS41〜S43の処理は、音声信号の特徴を示す情報を算出する処理である。
【0083】
ステップS44において、CPUコア21は、ステップS41〜S43で算出された各情報に基づいて各選出音声データのスコアを算出する。スコアの算出方法はどのような方法であってもよいが、スコアは、ステップS41〜S43で算出された値が大きいほどスコアの値が大きくなるように算出される。
【0084】
ステップS45において、CPUコア21は、選出音声データのうちからいくつかの選出音声データを所定の基準に従って選出して合成用音声バッファ43に保存する。具体的には、ステップS44で算出されたスコアが大きい選出音声データの上位3つを、合成用音声バッファ43に格納する音声データとして選出する。すなわち、上位3つの選出音声データを合成用音声データとして合成用音声バッファ43に格納する。なお、選出音声バッファ42に格納されている選出音声データの数が3つ以下である場合、すべての選出音声データが選出される。
【0085】
なお、上記ステップS45において、本実施形態では、上位3つの選出音声データを選出するものとしたが、選出する数はいくつであってもよい。また、他の実施形態においては、CPUコア21は、スコアが所定値以上となる選出音声データのみを選出するようにしてもよい。また、本実施形態では、合成用音声データを選出する基準として、振幅の平均、音声波形の長さ、およびピーク数という3つの情報から算出されるスコアを用いた。ここで、他の実施形態では、上記3つの情報のうちの少なくとも1つを上記基準として用いてもよいし、当該3つの情報以外の情報を用いて算出される変数を上記基準として用いてもよい。
【0086】
ステップS46において、CPUコア21は、合成用音声バッファ43に追加した音声データの数を第4カウンタに加算する。これによって、第4カウンタの値は、合成用音声バッファ43に格納されている合成用音声データの数を表すこととなる。続くステップS47において、CPUコア21は、選出音声バッファ42をクリアする。このように、選出音声バッファ42は、1回の質問に対する音声データの取得が終了する度にクリアされる。したがって、選出音声バッファ42として必要なメモリ領域を低減することができ、メモリを効率良く使用することができる。以上のステップS47の後、CPUコア21は音声データ選出処理を終了する。
【0087】
図8の説明に戻り、ステップS15およびS16においては、効果音を生成するために十分な量の合成用音声データが取得されたか否かが判定される。すなわち、ステップS15においては、上記条件eが満たされたか否かが判定される。すなわち、CPUコア21は、合成用音声バッファ43に格納されている合成用音声データの数が所定個数以上になったか否かを判定する。この判定は、第4カウンタの値を参照することによって行うことができる。すなわち、第4カウンタの値が上記所定個数を超えている場合、合成用音声データの数が所定個数以上になったと判定することができる。逆に、第4カウンタの値が上記所定個数を超えていない場合、合成用音声データの数が所定個数以上になっていないと判定することができる。ステップS14の判定の結果、合成用音声データの数が所定個数以上になったと判定される場合、CPUコア21は音声取得処理を終了する。一方、合成用音声データの数が所定個数以上になっていないと判定される場合、ステップS16の処理が実行される。
【0088】
ステップS16においては、上記条件fが満たされたか否かが判定される。すなわち、CPUコア21は、合成用音声バッファ43に格納されている合成用音声データの合計データ量が所定のデータ量以上となったか否かを判定する。判定の結果、合成用音声データが所定のデータ量以上となったと判定される場合、CPUコア21は音声取得処理を終了する。一方、合成用音声データが所定のデータ量以上となっていないと判定される場合、ステップS17の処理が実行される。
【0089】
ステップS17においては、CPUコア21は、今回行った質問が最後の質問であるか否かを判定する。すなわち、ステップS12で表示された質問の番号が、最後の番号であるか否かを判定する。なお、この判定は、上記第5カウンタの値を参照することによって行うことができる。ステップS17の判定の結果、今回行った質問が最後の質問であると判定される場合、ステップS18の処理が実行される。一方、今回行った質問が最後の質問でないと判定される場合、ステップS12の処理が再度実行される。
【0090】
ステップS18においては、CPUコア21は、次の行うべき質問が最初の質問となるように設定する。具体的には、上記第5カウンタの値を“1”に設定する。これによって、次に実行されるステップS12においては、質問番号が“1”である質問、すなわち、最初の質問が再度表示されることとなる。ステップS18の後、ステップS12の処理が再度実行される。以上で、音声取得処理の説明を終了する。
【0091】
図7の説明に戻り、ステップS3の次のステップS4において、CPUコア21は、ゲーム処理プログラム62を実行することによって、ゲーム処理を実行する。具体的には、CPUコア21は、タッチパネル15および/または各操作スイッチ部14に対して行われた操作に応じて、ゲーム空間内のキャラクタを動作させる処理等を実行する。続くステップS5において、CPUコア21は、ステップS4で実行されたゲーム処理の結果に基づくゲーム画像を第1LCD11および第2LCD12に表示させる。以上のステップS4およびS5が繰り返されることによって、ゲームが進行していく。
【0092】
ステップS6において、CPUコア21は、キャラクタの話し声を表す効果音を出力するタイミングが到来したか否かを判定する。このタイミングとは、例えば、キャラクタが会話をするシーンが開始されるタイミングである。ステップS6の判定の結果、当該タイミングが到来したと判定される場合、ステップS7の処理が実行される。一方、当該タイミングが到来していないと判定される場合、ステップS7の処理がスキップされてステップS8の処理が実行される。
【0093】
ステップS7においては、CPUコア21が音声出力プログラム69を実行することによって、音声効果音出力処理が実行される。音声効果音出力処理は、上記合成用音声データを用いて効果音を出力する処理である。以下、図11を用いて、音声効果音出力処理の詳細を説明する。
【0094】
図11は、図7に示すステップS7の音声効果音出力処理の詳細を示すフローチャートである。音声効果音出力処理では、まずステップS51において、CPUコア21は、乱数を発生させる。ここで発生される乱数は、後述するステップS53で用いられる。
【0095】
ステップS52において、合成用音声データを再生するための音声再生シーケンスが選択される。すなわち、CPUコア21は、RAM24のシーケンス記憶領域44に記憶されている各シーケンスデータのうち1つを選択する。ここで、選択すべきシーケンスは、例えばゲームの状況に基づいて決定されてもよいし、合成用音声データの内容に基づいて決定されてもよい。
【0096】
ステップS53において、CPUコア21は、合成用音声バッファ43から合成用音声データを乱数に基づいてランダムに選択しつつ、選択した合成用音声データをシーケンスに基づく処理を行って再生する。なお、当該処理としては、種々の処理が考えられるが、例えば、各音声データについて変調を行う処理や、各音声データについてフェードイン・フェードアウトを行う処理や、音声信号の振幅値が小さい音声データについて振幅値を所定数倍する処理等が考えられる。以上のステップS53によって、キャラクタが架空の言語を話しているかのような効果音を再生することができる。ステップS53の後、CPUコア21は音声効果音出力処理を終了する。音声効果音出力処理の後、図7に示すステップS8の処理が実行される。
【0097】
図7の説明に戻り、ステップS8において、CPUコア21は、ゲームを終了するか否かを判定する。具体的には、ゲームをクリアしたか否かや、ゲームオーバーとなったか否か、プレイヤによるゲームの終了指示が行われたか否か等が判定される。判定の結果、ゲームを終了しないと判定された場合、ステップS2の処理が再度実行される。以降、ゲームを終了するまで、ステップS2〜S8の処理が繰り返される。一方、ゲームを終了すると判定された場合、CPUコア21は、図7に示す処理を終了する。
【0098】
以上のように、本実施形態によれば、ゲーム装置10は、質問に対する回答をプレイヤに行わせることによって、プレイヤの声を用いたプレイヤキャラクタの話し声の効果音を容易に生成することができる。すなわち、プレイヤに煩雑な音声入力作業を行わせなくとも、キャラクタがあたかも架空の言語を話しているかのような効果音を生成することができる。
【産業上の利用可能性】
【0099】
本発明は、プレイヤによって入力された音声を用いてゲームの効果音を容易に生成すること等を目的として、例えばゲームプログラムおよびゲーム装置として利用することが可能である。
【図面の簡単な説明】
【0100】
【図1】本発明の一実施形態に係るゲーム装置の外観図
【図2】ゲーム装置の内部構成図
【図3】本実施形態におけるゲーム処理の概要を説明する図
【図4】質問が表示された画面の一例を示す図
【図5】選出条件を説明するための図
【図6】ゲーム装置10のRAM24に記憶される主なデータを示す図
【図7】ゲーム装置10において実行されるゲーム処理の流れを示すフローチャート
【図8】図7に示すステップS3の音声取得処理の詳細を示すフローチャート
【図9】図8に示すステップS13の音声データ格納処理の詳細を示すフローチャート
【図10】図8に示すステップS14の音声データ選出処理の詳細を示すフローチャート
【図11】図7に示すステップS7の音声効果音出力処理の詳細を示すフローチャート
【符号の説明】
【0101】
10 ゲーム装置
11 第1LCD
12 第2LCD
15 タッチパネル
17 メモリカード
21 CPUコア
24 RAM
30a,30b スピーカ
33 マイク
41 入力音声バッファ
42 選出音声バッファ
43 合成用音声バッファ

【特許請求の範囲】
【請求項1】
音声入力手段と、音声出力手段と、表示手段と、記憶手段とを備えるゲーム装置のコンピュータにおいて実行されるゲームプログラムであって、
プレイヤに対して音声入力を促すための通知を行う通知ステップと、
前記通知ステップの後、前記音声入力手段に対して入力された所定時間長の音声信号を表す音声データを当該所定時間長の音声信号毎に繰り返し取得する取得ステップと、
前記取得ステップにおいて前記音声データが取得される度に、取得された音声データが所定の選出条件を満たすか否かを判定する判定ステップと、
前記判定ステップにおいて前記選出条件を満たすと判定された音声データのみを選出音声データとして前記記憶手段に保存する第1記憶制御ステップと、
前記ゲームキャラクタが話す様子を表すゲーム画像が前記表示手段に表示されているタイミングにおいて、前記選出音声データの少なくとも一部を用いてゲームキャラクタの声を表す効果音を前記音声出力手段から出力させる音声出力ステップとを前記コンピュータに実行させる、ゲームプログラム。
【請求項2】
前記第1記憶制御ステップにおいて、前記コンピュータは、前記選出音声データを前記記憶手段の第1領域に記憶させ、
前記ゲームプログラムは、前記選出音声データのうちからいくつかの選出音声データを所定の基準に従って選出して前記記憶手段の第2領域に保存する第2記憶制御ステップをさらに前記コンピュータに実行させ、
前記音声出力ステップにおいて、前記コンピュータは、前記第2領域に記憶されている選出音声データの少なくとも一部を用いて前記効果音を生成する、請求項1に記載のゲームプログラム。
【請求項3】
前記通知ステップは複数回実行され、
前記ゲームプログラムは、新たな通知ステップが実行される前に、前回の通知ステップの実行後から当該新たな通知ステップの実行前までの間に前記第1領域に記憶された音声データを削除する削除ステップを前記コンピュータにさらに実行させる、請求項2に記載のゲームプログラム。
【請求項4】
前記ゲームプログラムは、前記通知ステップが実行された後、通知ステップの実行後において前記記憶手段に記憶された選出音声データが所定量以上となったか否かを判定する終了判定ステップを前記コンピュータにさらに実行させ、
前記取得ステップは、前記終了判定ステップにおける判定結果が肯定となったことを条件として音声データの取得を終了する、請求項1に記載のゲームプログラム。
【請求項5】
前記ゲームプログラムは、前記通知ステップが実行された後、通知ステップの実行後において所定個数の音声データについて連続して前記判定ステップにおける判定結果が否定となったか否かを判定する終了判定ステップを前記コンピュータにさらに実行させ、
前記取得ステップは、前記終了判定ステップにおける判定結果が肯定となったことを条件として音声データの取得を終了する、請求項1に記載のゲームプログラム。
【請求項6】
前記選出条件は、前記取得された音声データにより表される音声信号の振幅の大きさに関する変数が所定値以上となることである、請求項1に記載のゲームプログラム。
【請求項7】
前記選出条件は、前記取得された音声データにより表される音声信号の振幅の大きさに関する変数が所定値以上となる音声データが所定の下限回数以上連続して取得されたことである、請求項1に記載のゲームプログラム。
【請求項8】
前記第1記憶制御ステップにおいて、前記コンピュータは、前記取得された音声データにより表される音声信号の振幅の大きさに関する変数が所定値以上となる音声データが所定の上限回数だけ連続して取得されたとき、当該取得された上限回数に等しい個数の音声データを1つの選出音声データとして前記記憶手段に記憶させる、請求項1または請求項7に記載のゲームプログラム。
【請求項9】
前記通知ステップにおいて、前記コンピュータは、プレイヤに対する質問を前記表示手段または前記音声出力手段に出力する、請求項1に記載のゲームプログラム。
【請求項10】
音声入力手段と、音声出力手段と、表示手段と、記憶手段とを備えるゲーム装置であって、
プレイヤに対して音声入力を促すための通知を行う通知手段と、
前記通知の後、前記音声入力手段に対して入力された所定時間長の音声信号を表す音声データを当該所定時間長の音声信号毎に繰り返し取得する取得手段と、
前記取得ステップにおいて前記音声データが取得される度に、取得された音声データが所定の選出条件を満たすか否かを判定する判定手段と、
前記判定ステップにおいて前記選出条件を満たすと判定された音声データのみを選出音声データとして前記記憶手段に保存する記憶制御手段と、
前記ゲームキャラクタが話す様子を表すゲーム画像が前記表示手段に表示されているタイミングにおいて、前記選出音声データの少なくとも一部を用いてゲームキャラクタの声の効果音を前記音声出力手段から出力させる音声出力制御手段とを備える、ゲーム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate