JP2012230135A - 音楽演奏用プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法 - Google Patents

音楽演奏用プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法 Download PDF

Info

Publication number
JP2012230135A
JP2012230135A JP2011096551A JP2011096551A JP2012230135A JP 2012230135 A JP2012230135 A JP 2012230135A JP 2011096551 A JP2011096551 A JP 2011096551A JP 2011096551 A JP2011096551 A JP 2011096551A JP 2012230135 A JP2012230135 A JP 2012230135A
Authority
JP
Japan
Prior art keywords
posture change
change amount
volume
string
music performance
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.)
Granted
Application number
JP2011096551A
Other languages
English (en)
Other versions
JP5812663B2 (ja
Inventor
Yuki Tsuji
勇旗 辻
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.)
Nintendo Co Ltd
Original Assignee
Nintendo 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 Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2011096551A priority Critical patent/JP5812663B2/ja
Priority to US13/222,428 priority patent/US8586852B2/en
Publication of JP2012230135A publication Critical patent/JP2012230135A/ja
Application granted granted Critical
Publication of JP5812663B2 publication Critical patent/JP5812663B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/46Volume control
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/02Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
    • G10H1/06Circuits for establishing the harmonic content of tones, or other arrangements for changing the tone colour
    • G10H1/14Circuits for establishing the harmonic content of tones, or other arrangements for changing the tone colour during execution
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2220/00Input/output interfacing specifically adapted for electrophonic musical tools or instruments
    • G10H2220/155User input interfaces for electrophonic musical instruments
    • G10H2220/201User input interfaces for electrophonic musical instruments for movement interpretation, i.e. capturing and recognizing a gesture or a specific kind of movement, e.g. to control a musical instrument
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2220/00Input/output interfacing specifically adapted for electrophonic musical tools or instruments
    • G10H2220/155User input interfaces for electrophonic musical instruments
    • G10H2220/391Angle sensing for musical purposes, using data from a gyroscope, gyrometer or other angular velocity or angular movement sensing device
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2220/00Input/output interfacing specifically adapted for electrophonic musical tools or instruments
    • G10H2220/155User input interfaces for electrophonic musical instruments
    • G10H2220/395Acceleration sensing or accelerometer use, e.g. 3D movement computation by integration of accelerometer data, angle sensing with respect to the vertical, i.e. gravity sensing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2220/00Input/output interfacing specifically adapted for electrophonic musical tools or instruments
    • G10H2220/155User input interfaces for electrophonic musical instruments
    • G10H2220/441Image sensing, i.e. capturing images or optical patterns for musical purposes or musical control purposes
    • G10H2220/455Camera input, e.g. analyzing pictures from a video camera and using the analysis results as control data

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

【課題】ユーザの動きに基づいて発音する音楽演奏用プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法において、自然な音量制御を行うことを提供する。
【解決手段】音楽演奏装置のコンピュータを、コントローラの姿勢または動きに関する角速度に基づいて、コントローラのフレームあたり姿勢変化量を取得する姿勢変化量取得部101と、姿勢変化量に応じて、音量を決定するための音量パラメータを設定する音量パラメータ設定部102と、音量パラメータに応じた音量の音声信号を出力する音声信号出力部106と、として機能させるための音楽演奏用プログラムとした。
【選択図】図9

Description

本発明は、ユーザの動きに基づいて発音する音楽演奏用プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法に関する。
従来、人間の手や足等の動作状態を検出して楽音を制御する楽音制御装置が提案されている(特許文献1を参照)。特許文献1には、加速度センサが設けられたスティックの振りの強さ、即ち加速度センサから出力される加速度信号の信号レベルに応じて、音高または音量の何れかを変えるようにしてもよいことが示されている。
特開昭63−191195号公報
従来、楽器のシミュレーションにおいて、加速度センサによって検出された加速度に基づいて発音を制御する技術がある。しかし、例えば発音体を擦ることによって発音する楽器では、発音体を擦る動きが、正の加速度が検出されない動きであっても発音される。正の加速度が検出されない動きとは、例えば、等速運動や減速運動等である。
即ち、発音体を擦ることによって発音する楽器において、発音体を擦る動きの加速度と音量とは必ずしも対応関係を有さない。このため、従来の加速度に基づいた音量制御で、発音体を擦ることによって発音する楽器のシミュレーションを行う際に、ユーザの動きに応じた、自然な音量制御を行うことは困難であった。
本発明は、上記した問題に鑑み、ユーザの動きに基づいて発音する音楽演奏用プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法において、自然な音量制御を行うことを課題とする。
本発明では、上記課題を解決するために、以下の手段を採用した。即ち、本発明は、所定の対象の動きに基づいて音声を出力するための音楽演奏装置のコンピュータを、前記所定の対象の姿勢または動きに関する測定情報に基づいて、前記所定の対象の所定間隔での姿勢変化量を取得する姿勢変化量取得手段と、前記姿勢変化量に応じて、音量を決定するための音量パラメータを設定する音量パラメータ設定手段と、前記音量パラメータに応じた音量の音声信号を出力する音声信号出力手段と、として機能させるための音楽演奏用プログラムである。
なお、本発明は、発音体を擦ることによって発音する発音装置のシミュレーションに用いることが出来る。発音体を擦ることによって発音する発音装置としては、例えば、弓を用いて弦を擦ることによって発音する擦弦楽器等がある。このような発音装置において、発音体は、擦られることによって振動し、発音する。本発明において、動きが測定される所定の対象は、例えば、擦弦楽器の弓に見立てられたコントローラやユーザの手である。本発明では、このような所定の対象の動きに関する測定情報に基づいて、所定の対象の所定間隔(例えば、単位時間)での姿勢変化量を取得し、姿勢変化量に応じた音量パラメー
タを設定する。
なお、測定情報を得るための手段としては、例えば、コントローラに内蔵されたセンサ等があるが、本発明において、所定の対象の動きを測定するための手段は、コントローラに内蔵されたセンサ等に限定されない。例えば、カメラ等のセンサを用いてユーザの手の動きを撮像し、ユーザの手の動きに関する測定情報を得ることとしてもよい。
また、所定間隔での姿勢変化量としては、例えば、所定の対象の角速度や、所定の対象の回転運動の成分を示すベクトル等を用いることが出来る。本発明によれば、このような姿勢変化量に基づいて音量パラメータを設定することで、発音体を擦ることによって発音する発音装置のシミュレーションにおいて、自然な音量制御を行うことが出来る。なお、姿勢変化量として角速度を用いる場合には、測定情報として得られた角速度をそのまま用いることとしてもよい。
また、前記姿勢変化量取得手段は、前記測定情報に基づいて、現実空間に定義された座標系に対する、前記所定の対象の所定間隔での姿勢変化量が算出されることで、前記姿勢変化量を取得してもよい。
例えば、所定の対象の姿勢を定義する3軸のうちの少なくとも何れかが、現実空間に定義された座標系の各成分についてどれだけ移動したかを算出することで、姿勢変化量を取得することが出来る。
また、前記姿勢変化量取得手段は、現実空間に定義された前記座標系の軸に対する、前記所定の対象の姿勢変化量を複数取得し、前記音量パラメータ設定手段は、前記姿勢変化量取得手段によって取得された複数の前記姿勢変化量のうち、値が大きい順に上位2つ以上の姿勢変化量に基づいて、前記音量パラメータを設定してもよい。
所定の対象の姿勢の変化がより大きく反映された上位2つ以上の姿勢変化量を用いることで、仮に一部の姿勢変化量が飽和した場合にも、音量パラメータの取得のために適切な姿勢変化量を得ることが出来る。例えば、前記姿勢変化量取得手段は、現実空間に定義された前記座標系のうちの2つの軸に対する、前記所定の対象の姿勢を定義するための2つの軸の姿勢変化量を、軸の組み合わせ毎に4つ取得し、前記音量パラメータ設定手段は、前記姿勢変化量取得手段によって取得された4つの前記姿勢変化量のうち、値が大きい順に上位2つの姿勢変化量に基づいて、前記音量パラメータを設定してもよい。
また、前記姿勢変化量取得手段は、前記姿勢変化量として、所定の期間内に複数回取得された姿勢変化量の平均値を取得してもよい。
所定の期間内に複数回取得された姿勢変化量の平均値が取得されることによって、ユーザの意図しない動きの影響を低減させた姿勢変化量を得ることが出来る。
また、前記音量パラメータ設定手段は、前記姿勢変化量と前記音量パラメータとの対応関係を定めた情報に基づいて前記音量パラメータを設定し、前記姿勢変化量と前記音量パラメータとの対応関係を定めた情報において、前記姿勢変化量の変化に対する前記音量パラメータの変化の勾配の傾向は、該姿勢変化量の範囲ごとに異なってもよい。
このようにすることで、シミュレーション対象の発音装置に応じた、自然な音量変化を提供することが可能となる。
また、前記音楽演奏用プログラムは、前記コンピュータを、前記測定情報に基づいて、
所定の方向における角加速度の正負が逆転したと判定された場合に、前記音声信号出力手段による音声信号の出力を所定時間止めるかまたは前記音声信号出力手段による音声信号の出力音量を下げる、出力音量制御手段として更に機能させるためのものであってもよい。
このようにすることで、ユーザの引き返し動作等に伴って音量に変化を持たせ、ユーザに対して実際に発音装置を操作しているような感覚を持たせることが出来る。
また、前記音楽演奏装置は、略同一方向に張られた複数の弦を有する弦楽器をシミュレートするものであり、前記コンピュータを、現在発音の対象となっている弦が前記複数の弦のうちの何れであるかを指定する弦指定情報を保持する弦指定情報保持手段と、前記測定情報に基づいて、前記複数の弦が張られた方向を軸とする周方向への角加速度が所定の閾値を越えたと判定された場合に、前記弦指定情報によって指定される弦を変更する弦変更手段と、として更に機能させるためのものであってもよい。
このようにすることで、ユーザは、シミュレーション対象の弦楽器等において実際に移弦する場合の動きに近い操作で移弦を行い、発音される音の高さを変更することが出来る。
また、前記所定の対象は、ユーザによって操作される、ジャイロセンサを内蔵したコントローラであり、前記測定情報は、前記ジャイロセンサを用いて計測された角速度または角加速度であってもよい。
なお、コントローラがユーザによって操作される場合の操作の態様は限定されない。ユーザは、例えば、コントローラを把持する、装着する、等の態様でコントローラを操作することが出来る。
更に、本発明は、音楽演奏装置、該音楽演奏装置を含む音楽演奏システム、またはコンピュータによって実行される音楽演奏方法としても把握することが可能である。また、本発明は、上記説明したプログラムをコンピュータその他の装置、機械等が読み取り可能な記録媒体に記録したものでもよい。ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。
本発明によれば、ユーザの動きに基づいて発音する音楽演奏用プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法において、自然な音量制御を行うことが可能となる。
実施形態に係るゲームシステムの外観図である。 実施形態に係るゲーム装置の機能ブロック図である。 実施形態に係るコントローラの外観構成を示す斜視図である。 実施形態に係るコントローラの外観構成を示す斜視図である。 実施形態に係るサブユニットの上筐体を外した状態を示す斜視図である。 実施形態に係る入力装置の構成を示すブロック図である。 実施形態に係る入力装置を用いてゲーム操作するときの状態を概説する図である。 実施形態に係るバイオリンのシミュレート機能を利用する際に用いられる、ローカル座標系およびこれに対するコントローラ座標系の動きを示す概略図である。 実施形態に係るゲーム装置の機能構成およびデータ構成を示す図である。 実施形態に係るシミュレート処理の流れを示すフローチャートである。 実施形態に係る音高更新処理の流れを示すフローチャートである。 実施形態に係る指定弦更新処理の流れを示すフローチャートAである。 実施形態に係る指定弦更新処理の流れを示すフローチャートBである。 実施形態に係る押弦位置更新処理の流れを示すフローチャートである。 実施形態に係るボウイング更新処理の流れを示すフローチャートAである。 実施形態に係るボウイング更新処理の流れを示すフローチャートBである。 実施形態に係る音量更新処理の流れを示すフローチャートである。 実施形態において、姿勢変化量と音量パラメータとの関係を表したマップを示す図である。 実施形態に係る音声信号出力処理の流れを示すフローチャートである。
以下、本発明を、発音装置のシミュレーションを行うゲーム装置として実施する場合の実施の形態を、図面に基づいて説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態に応じた具体的構成が適宜採用されてもよい。
<システムの構成>
[ゲームシステムの全体構成]
図1を参照して、本発明の一実施形態に係るゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置3、光ディスク4、入力装置7、およびマーカ部6を含む。本システムは、入力装置7を用いたゲーム操作に基づいてゲーム装置3でゲーム処理を実行するものである。
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるためのゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されているゲームプログラムを読み出して実行することによってゲーム処理を実行する。
ゲーム装置3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ2の画面の周辺(図1では画面の上側)には、マーカ部6が設置される。マーカ部6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部6はゲーム装置3に接続されており、ゲーム装置3はマーカ部6が備える各赤外LEDの点灯を制御することが可能である。
入力装置7は、自機に対して行われた操作の内容を示す操作データをゲーム装置3に与えるものである。本実施形態では、入力装置7はコントローラ5とサブユニット76とを含む。詳細は後述するが、入力装置7は、コントローラ5に対してサブユニット76が着
脱可能に接続されている構成である。コントローラ5とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。
[ゲーム装置3の内部構成]
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムLSI11の内部構成については後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。
また、システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声信号を生成する。
上述のように生成された画像データおよび音声信号は、AV−IC15によって読み出される。AV−IC15は、読み出した画像データを、AVコネクタ16を介してテレビ2に出力するとともに、読み出した音声信号を、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。
入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11
aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、およびメモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
入出力プロセッサ11aは、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
また、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23および無線コントローラモジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
さらに、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、ゲーム装置3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
[入力装置7の構成]
次に、図3から図5を参照して、入力装置7について説明する。図3は、入力装置7の外観構成を示す斜視図である。図4は、コントローラ5の外観構成を示す斜視図である。図3は、コントローラ5の上側後方から見た斜視図であり、図4は、コントローラ5を下側前方から見た斜視図である。
コントローラ5は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。ユーザ
は、コントローラ5に設けられたボタンを押下すること、および、コントローラ5自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。
ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字ボタン32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、および電源ボタン32hが設けられる。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。ホームボタン32fおよび電源ボタン32hは、その上面がハウジング31の上面に埋没している。これによって、ユーザがホームボタン32fまたは電源ボタン32hを誤って押下することを防止することができる。
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、コントローラ5に他の機器(例えば、サブユニット76や他のコントローラ)を接続するために利用される。また、ハウジング31の後面におけるコネクタ33の両側には、上記他の機器が容易に離脱することを防止するために係止穴33aが設けられている。
ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5には、他のメインコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をユーザに通知したり、コントローラ5の電池残量をユーザに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
また、コントローラ5は撮像情報演算部35(図6)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、コントローラ5に内蔵されるスピーカ(図示は省略する)からの音を外部に放出するための音抜き孔31aが形成されている。
また、コントローラ5は、コントローラ5の加速度(重力加速度を含む)を検出する加速度センサ37(図6を参照)、およびコントローラ5の3軸回りの角速度を検知するジャイロセンサ(図6に示す2軸ジャイロセンサ55および1軸ジャイロセンサ56)を内蔵する。
次に、図1および図5を参照して、サブユニット76について説明する。なお、図5は、サブユニット76の上筐体(ハウジング77の一部)を外した状態を示す斜視図である。
サブユニット76は、例えばプラスチック成型によって形成されたハウジング77を有している。ハウジング77は、全体として大人や子供の片手で把持可能な大きさである。
ハウジング77の上面に、方向指示手段であるスティック78aが設けられる。スティック78aは、ハウジング77の上面から突出した傾倒可能なスティックを倒すことによって、傾倒方向に応じて操作信号を出力する操作部である。例えば、ユーザがスティック
先端を360°任意の方向に傾倒することによって任意の方向や位置を指定することができ、仮想ゲーム世界に登場するユーザキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。なお、スティック78aの代わりに十字キーを設けても良い。
サブユニット76のハウジング77の前面に、複数の操作ボタン(Cボタン78dおよびZボタン78e)が設けられる。操作ボタン78dおよび78eは、ユーザがボタン頭部を押下することによって、それぞれの操作ボタン78dおよび78eに割り当てられた操作信号を出力する操作部である。これら操作ボタン78dおよび78eは、ゲーム装置3が実行するゲームプログラムに応じてそれぞれの機能が割り当てられる。
ハウジング77の内部には基板が固設されており、当該基板の上主面上にスティック78aおよび加速度センサ761等が設けられる。そして、これらは、基板等に形成された配線(図示せず)を介して接続ケーブル79と接続されている。
なお、図3から図5に示したコントローラ5およびサブユニット76の形状や、各操作ボタンの形状、センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。また、本実施形態では、撮像手段による撮像方向はZ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。
図6は、入力装置7(コントローラ5およびサブユニット76)の構成を示すブロック図である。コントローラ5は、操作部32(各操作ボタン32a〜32i)、コネクタ33、撮像情報演算部35、通信部36、加速度センサ37、761およびジャイロセンサ55、56を備えている。コントローラ5は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置3へ送信するものである。
操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を示す操作ボタンデータを通信部36のマイコン42へ出力する。
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ5の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、テレビ2の表示画面近傍に配置されるマーカ部6のマーカ6Rおよび6Lは、テレビ2の前方に向かって赤外光を出力する赤外LEDで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、マーカ6Rおよび6Lの画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象(マーカ6Rおよび
6L)の位置を算出する。画像処理回路41は、算出された位置を示す座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ5自体の向き(傾斜角度)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ5の向きや位置を算出することができる。
なお、他の実施形態においては、コントローラ5は画像処理回路41を備えていない構成であってもよく、撮像画像自体がコントローラ5からゲーム装置3へ送信されてもよい。このとき、ゲーム装置3は、画像処理回路41と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。
加速度センサ37は、コントローラ5の加速度(重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。例えば、3軸または2軸の加速度センサは、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能である種類のものでもよい。なお、加速度センサ37は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、入力装置7(コントローラ5)を基準に設定されるXYZ座標系(以下、「コントローラ座標系」と称する)における3次元のベクトル(ax,ay,az)として表される。以下では、加速度センサ37によって検出される3軸に関する各加速度値を各成分とするベクトルを加速度ベクトルと呼ぶ。
加速度センサ37が検出した加速度(加速度ベクトル)を示すデータ(加速度データ)は、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き(傾斜角度)や動きに対応して変化するので、ゲーム装置3は加速度データを用いてコントローラ5の向きや動きを算出することができる。
2軸ジャイロセンサ55および1軸ジャイロセンサ56は、3軸(本実施形態では、コントローラ座標系のXYZ軸)周りの角速度を検出し、検出した角速度を示すデータ(角速度データ)をコントローラ5へ送信する。
2軸ジャイロセンサ55は、X軸周りの角速度およびY軸周りの(単位時間あたりの)角速度を検出する。また、1軸ジャイロセンサ56は、Z軸周りの(単位時間あたりの)角速度を検出する。なお、本明細書では、コントローラ5の撮像方向(Z軸正方向)を基準として、Z軸周り、X軸周り、Y軸周りの回転方向を、それぞれ、ロール方向、ピッチ方向、ヨー方向と呼ぶ。すなわち、2軸ジャイロセンサ55は、ピッチ方向(X軸周りの回転方向)およびヨー方向(Y軸周りの回転方向)の角速度を検出し、1軸ジャイロセンサ56は、ロール方向(Z軸周りの回転方向)の角速度を検出する。
なお、本実施形態では、3軸回りの角速度を検出するために、2軸ジャイロセンサ55
と1軸ジャイロセンサ56とを用いる構成としたが、他の実施形態においては、3軸回りの角速度を検出することができればよく、用いるジャイロセンサの数および組み合わせはどのようなものであってもよい。
また、本実施形態では、各ジャイロセンサ55および56が角速度を検出する3つの軸は、加速度センサ37が加速度を検出する3つの軸(XYZ軸)と一致するように設定される。ただし、他の実施形態においては、各ジャイロセンサ55および56が角速度を検出する3つの軸と、加速度センサ37が加速度を検出する3つの軸とは一致しなくてもよい。
ジャイロセンサ55および56で検出された角速度を示すデータは、マイコン54に出力される。したがって、マイコン54には、XYZ軸の3軸回りの角度速度を示すデータが入力されることになる。マイコン54は、上記3軸回りの角速度を示すデータを角速度データとしてプラグ53を介してコントローラ5へ送信する。なお、マイコン54からコントローラ5への送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。
本実施形態では、ゲーム装置3は、加速度データおよび角速度データに基づいて入力装置7(コントローラ5)の姿勢を判断する。入力装置7の姿勢は、例えば、入力装置7が存在する空間の所定位置を基準としたxyz座標系(以下、「ローカル座標系」と称する)の座標値によって表される。ここでは、図1に示されるように、xyz座標系は、入力装置7がマーカ部6の正面に位置することを前提とし、入力装置7の位置からマーカ部6を向く方向をz軸正方向とし、鉛直上向き(重力方向の逆方向)をy軸正方向とし、入力装置7の位置からマーカ部6を見た場合の左方向をx軸正方向とした座標系であるとする。また、ここでは、入力装置7(コントローラ5)を基準としたX軸、Y軸、Z軸が、それぞれx軸、y軸、z軸の向きと一致するときの入力装置7の姿勢を基準姿勢と呼ぶことにする。入力装置7の姿勢は、基準姿勢からZ軸方向を基準としてロール方向(Z軸周り)、ピッチ方向(X軸周り)、ヨー方向(Y軸周り)にそれぞれ入力装置7を回転させた場合のxyz座標系における姿勢である。
通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。また、マイコン42はコネクタ33に接続されている。サブユニット76から送信されてくるデータは、コネクタ33を介してマイコン42に入力される。
サブユニット76は、上述した操作部78および加速度センサ761を備えており、接続ケーブル79とコネクタ791およびコネクタ33とを介して、マイコン42と接続されている。そして、サブユニット76に設けられた操作部78からの操作信号(サブキーデータ)および加速度センサ761からの加速度信号(サブ加速度データ)は、接続ケーブル79を介して、マイコン42に出力される。
コントローラ5の説明に戻り、操作部32、撮像情報演算部35、加速度センサ37、761およびジャイロセンサ55、56からマイコン42へ出力されたデータ、ならびに、サブユニット76からマイコン42へ送信されてきたデータは、一時的にメモリ43に格納される。これらのデータは、上記操作データとしてゲーム装置3へ送信される。すなわち、マイコン42は、ゲーム装置3の無線コントローラモジュール19への送信タイミングが到来すると、メモリ43に格納されている操作データを無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標
)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ5から送信される。微弱電波信号はゲーム装置3側の無線コントローラモジュール19で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、取得した操作データとゲームプログラムとに基づいて、ゲーム処理を行う。なお、通信部36から無線コントローラモジュール19への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ5の通信部36は、例えば1/200秒に1回の割合で各操作データをゲーム装置3の無線コントローラモジュール19へ出力する。
[ゲーム処理の概要]
次に、図7および図8を参照して、上記ゲームシステム1において実行されるゲームの概要について説明する。
図7は、本実施形態に係るゲームシステム1によって提供されるバイオリンのシミュレート機能を利用する際の、ユーザによる入力装置7の操作方法を示す概略図である。本実施形態において実行されるゲームでは、ゲーム処理の一部として、ユーザによる操作に応じて音声を出力するためのバイオリンのシミュレート機能を提供する。ユーザは、コントローラ5をバイオリンの弓に見立てて操作することで、あたかもバイオリンを実際に演奏するような感覚で、操作に応じた音声をスピーカ2aから出力させることが出来る。即ち、本実施形態では、コントローラ5が仮想の弓となる。そして、この仮想の弓としてのコントローラ5を用いて仮想の弦を擦るボウイング動作がコントローラ5に内蔵された各種センサで検出されて、単位時間あたりの姿勢変化量が算出され、この姿勢変化量に応じた音量パラメータが決定される。ボウイング動作には、図7に示された方向へコントローラ5を動かす、ストロークおよび移弦の動きが含まれる。なお、バイオリンのような擦弦楽器では、演奏者は、弦に対して弓を垂直に動かす意識で演奏を行うことが通常であるが、実際には回転運動が検出されるため、弓の動きを、仮想の弓であるコントローラ5の姿勢変化量や、角速度に基づいて検出することが可能である。
また、本実施形態では、ボウイング動作がコントローラ5に内蔵された各種センサで検出されて、移弦の動作が検出され、ユーザは、あたかも実際のバイオリンにおいて移弦を行っているかのような感覚で、移弦を行うことが出来る。更に、本実施形態では、サブユニット76が仮想の指板となり、この仮想の指板としてのサブユニット76に設けられたボタン78a、78dおよび78eの押下状態に基づいて、ユーザは、あたかも実際のバイオリンにおいて押弦を行っているかのような感覚で、音高を変更することが出来る。
図8は、本実施形態に係るバイオリンのシミュレート機能を利用する際に用いられる、ローカル座標系(xyz座標系)およびこれに対するコントローラ座標系(XYZ座標系)の動きを示す概略図である。本実施形態では、コントローラ5の前面(Y軸方向)がユーザ側に向いた状態(即ち、予め約90度ロールした状態)でユーザに把持される。このため、ユーザがコントローラ5を把持してユーザの体を軸にストロークを行う動作は、主にピッチ方向への動作として検出され、ユーザがコントローラを把持してコントローラ5の先端を上下に傾ける移弦動作は、ヨー方向(バイオリンの弦が張られた方向を軸とする周方向)への動作として検出される。また、本実施形態において、このようなストロークの動きは、先述の通りピッチ方向への動作となる。このため、ストロークの動きは、コントローラ座標系のY軸およびZ軸の姿勢がローカル座標系に対して変化する動きとして表現可能である。また、先述の通りコントローラ5は予め約90度ロールした状態でユーザに把持されるため、ストロークの動きは、ローカル座標系においては主としてx成分およ
びz成分に反映される動きとなる(図8に示されたコントローラ座標系とローカル座標系との対応関係を参照)。このため、図15を用いて後述する音量更新処理では、コントローラ座標系のY軸およびZ軸の夫々の姿勢変化量が、ローカル座標系におけるx成分およびz成分を用いて表される(後述する姿勢変化量dirY_x、dirY_z、dirZ_xおよびdirZ_zを参照)。
[ゲーム装置の機能構成]
図9は、本実施形態に係るゲーム装置3の機能構成およびデータ構成を示す図である。図9に示される各機能部(姿勢変化量取得部101、音量パラメータ設定部102、弦指定情報保持部103、弦変更部104、出力音量制御部105および音声信号出力部106)は、例えば、光ディスク4に格納されるゲームプログラムを読み出して内部メインメモリ11eまたは外部メインメモリ12に展開し、CPU10、DSP11cおよびGPU11b等が実行することによって実現される機能の一部である。即ち、本実施形態に係るゲーム装置3は、ゲームプログラムを実行することによって、本発明に係る発音装置のシミュレーションを行う音楽演奏装置として動作する。
姿勢変化量取得部101は、操作データのうち、特にコントローラ5の動きに関するデータ(測定情報)に基づいて、現実空間に定義されたローカル座標系(xyz座標系)に対する、コントローラ5の姿勢を示す基準となるX軸、Y軸、Z軸の、単位時間あたり(本実施形態では、フレームあたり)の変化量を算出することで、コントローラ5の単位時間あたりの姿勢変化量を取得する。ここで、姿勢変化量取得部101は、ローカル座標系の軸(本実施形態では、X軸およびZ軸)と、コントローラ5の姿勢を示す基準となる軸(本実施形態では、Y軸およびZ軸)との組み合わせ毎に分解された複数の姿勢変化量を取得する。算出される姿勢変化量の詳細については、後述する。
なお、本実施形態では、姿勢変化量取得部101は、音量パラメータを設定するために参照される姿勢変化量として、所定の期間(本実施形態では、16フレーム)内に取得された姿勢変化量の平均値を取得する。なお、本実施形態では、ジャイロセンサ55、56から取得される測定値にばらつきが生じることを考慮して、姿勢変化量の平均値を算出し、これを参照することとしているが、参照される姿勢変化量は、平均値に限定されない。
音量パラメータ設定部102は、単位時間(フレーム)あたり姿勢変化量に応じて、発音装置からの発音の音量を決定するための音量パラメータを設定する。音量パラメータ設定部102は、姿勢変化量と音量パラメータとの対応関係を定めたマップを参照することで、姿勢変化量に応じた音量パラメータを取得し、設定する。なお、姿勢変化量と音量パラメータとの関係を表したマップについては、図16を用いて後述する。但し、音量パラメータは、姿勢変化量と音量パラメータとの対応関係を定めた関係式を用いて算出されてもよい。具体的には、姿勢変化量取得部101および音量パラメータ設定部102は、図15を用いて後述する音量更新処理を実行することによって、音量パラメータを設定する。
なお、本実施形態において、音量パラメータ設定部102は、姿勢変化量取得部101によって取得された複数の姿勢変化量のうち、姿勢変化量が大きい順において上位2つ以上の姿勢変化量に基づいて、音量パラメータを設定する。
弦指定情報保持部103は、現在発音の対象となっている弦が何れの弦であるかを指定する弦指定パラメータを保持する。そして、弦変更部104は、操作データに基づいて、弦を軸とする周方向(コントローラのヨー方向)への角加速度が閾値を越えたと判定された場合に、弦指定パラメータによって指定される弦を変更する。具体的には、弦変更部104は、図12Aおよび図12Bを用いて後述する指定弦更新処理を実行することによっ
て、弦指定パラメータによって指定される弦を変更する。
出力音量制御部105は、操作データに基づいて、ピッチ方向における角加速度の正負が逆転したと判定された場合に、音声信号出力部106による音声信号の出力を所定時間止めるかまたは音声信号出力部106による音声信号の出力音量を下げる。このようにすることで、ユーザが引き返し動作を行った際に、一旦音声の出力が止まるか音量が下がることとなる。引き返し動作とは、弦楽器において往復するストロークの動作を行おうとしたときに、ストロークの方向を切り換えるために行われる動作である。通常、引き返し動作が行われる際には、ユーザは、それまで行っていた方向へのストロークを終了させるための減速を行うため、角加速度の正負が逆転する。即ち、本実施形態によれば、ユーザによって行われた引き返しが検出され、一旦音声の出力が止まるか音量が下がることとなるため、ユーザに対して、実際にバイオリンを弾いているような感覚を与えることが出来る。具体的には、出力音量制御部105は、図14Aおよび図14Bを用いて後述するボウイング更新処理および図17を用いて後述する音声信号出力処理を実行することによって、引き返し動作の際の出力音量制御を行う。
なお、先述の通り、本実施形態において、コントローラ5は約90度ロールした状態でユーザに把持される(図8を参照)。そして、バイオリンは通常の構えにおいて弦が略水平になり、ストロークの際にはユーザの体を軸として弓が回転運動する。このため、本実施形態では、ピッチ方向への角加速度の正負によって引き返し動作を検出している。但し、シミュレーション対象の擦弦楽器によって弓の構え方および回転方向は異なるため、引き返し動作の検出のために正負の逆転が判定される回転方向は、シミュレーションの対象に応じて適宜設定されてよい。
音声信号出力部106は、音量パラメータ等の設定内容に応じた音量の音声信号を出力する。具体的には、音声信号出力部106は、図17を用いて後述する音声信号出力処理を実行することによって、音量パラメータ等の設定内容に応じた音量の音声信号を出力する。
[ゲーム装置のデータ構成]
次に、図9を参照して、本実施形態に係るシミュレート処理において用いられる各種データについて説明する。内部メインメモリ11eまたは外部メインメモリ12には、ストローク状態、ストロークパワー、弦指定パラメータ、音量パラメータ、音高パラメータおよびサウンドラベル等の各種データが保持される。
ストローク状態は、ユーザによるストロークの状態を示す情報である。バイオリンのボウイングには、UPストロークおよびDOWNストロークがある。本実施形態では、図7および図8に示された姿勢において、ユーザがコントローラ5を把持した手を自分の体に近づけるようにして行うストロークをUPストローク、ユーザがコントローラ5を把持した手を自分の体から遠ざけるようにして行うストロークをDOWNストローク、と称する。バイオリンは、UPストロークおよびDOWNストロークが交互に繰り返されることによって演奏される。ストローク状態には、初期化のための値である「ストロークなし」の他、現在のストローク状態を示す「UPストローク」、「DOWNストローク」、「UPtoDOWNストローク」および「DOWNtoUPストローク」が設定され得る。ここで、UPtoDOWNストロークとは、ストローク状態がUPストロークからDOWNストロークに移行する間に設定されるストローク状態であり、DOWNtoUPストロークとは、ストローク状態がDOWNストロークからUPストロークに移行する間に設定されるストローク状態である。ストローク状態は、後述する初期化処理において、「ストロークなし」で初期化される。
ストロークパワーは、シミュレーション対象の発音装置(本実施形態では、バイオリン)の音色を設定する際に参照される情報である。本実施形態では、ストロークパワーに応じたサウンドラベルを再生することで、弓を引く勢いに応じた音色を有する音声信号を出力することを可能としている。ストロークパワーには、「弱」または「強」が設定され得る。ストロークパワーは、後述する初期化処理において、「弱」で初期化される。
弦指定パラメータは、バイオリンの4本の弦のうちのどの弦が発音の対象となっているか(即ち、仮想の弓がどの弦に当たっているか)を示す情報である。バイオリンには、低音弦から順にG線、D線、A線、E線が張られるため、弦指定パラメータには、これらの4本の弦を識別可能な情報が設定される。なお、本実施形態において、弦指定パラメータは、G線を示す値として0(ゼロ)、D線を示す値として5、A線を示す値として10、E線を示す値として15が用いられる。このため、弦指定パラメータに5加算することで、1弦ぶん高音弦側に移弦し、弦指定パラメータから5減算することで、1弦ぶん低音弦側に移弦することとなる。但し、弦指定パラメータにおいて各弦を指定する方法には、各弦を示すフラグ等、その他の方法が採用されてもよい。弦指定パラメータは、後述する初期化処理において、A線を示す値(本実施形態では、「10」)で初期化される。
音量パラメータは、出力される音声信号の音量を指定するための情報である。本実施形態において、音量パラメータは、無音を示す0.0000から最大音量を示す1.0000までの間の値を取り得る。音量パラメータは、後述する初期化処理において、0.0000(無音)で初期化される。
音高パラメータは、出力される音声信号の音高を指定するための情報である。また、本実施形態において、音高パラメータは、バイオリンのA線を開放状態で発音させた場合の音高(440または442Hz)を0(ゼロ)として、半音上昇する毎に1増加、半音下降する毎に1減少する値をとる。音高パラメータは、初期化処理において、0(ゼロ)で初期化される。
サウンドラベルは、ゲーム装置3から出力される音声の音色を決定するための音波形のデータである。サウンドラベルには、ストロークパワー「弱」に対応する音色を表現するための音波形、またはストロークパワー「強」に対応する音色を表現するための音波形が設定可能である。サウンドラベルは、後述する初期化処理において、ストロークパワー「弱」に対応するサウンドラベルで初期化される。
更に、内部メインメモリ11eまたは外部メインメモリ12には、移弦準備フラグ、音量制御フラグおよび引き返しフラグを含む各種フラグが保持される。移弦準備フラグとは、移弦の準備段階にあるか否かを示すためのフラグである。音量制御フラグは、引き返し動作の際に音量が小さくなる効果を実施させるために、音声信号出力処理において参照されるフラグである。また、引き返しフラグは、ストローク中に引き返し動作が検出されたことを示すためのフラグである。各種フラグは、後述する初期化処理において、OFFで初期化される。
<処理の流れ>
次に、本実施形態において実行される処理の流れを、フローチャートを用いて説明する。なお、本実施形態に係るフローチャートに示された処理の具体的な内容および処理順序は、本発明を実施するための一例である。具体的な処理内容および処理順序は、本発明の実施の形態に応じて適宜選択されてよい。
[シミュレート処理]
図10は、本実施形態に係るシミュレート処理の流れを示すフローチャートである。本
実施形態に係るシミュレート処理は、ゲーム装置3によって実行されるゲームプログラムに基づくゲームの一部として実行される。
ステップS001からステップS003では、初期化処理が行われる。CPU10は、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記録される操作データ、本シミュレート処理に用いられる各種変数、本シミュレート処理の実行状態を管理するための情報、および本シミュレート処理において用いられる各種フラグを初期化する(ステップS001)。また、CPU10は、本シミュレート処理において出力される音声信号を生成するために参照される、音量パラメータ、音高パラメータおよびサウンドラベルを初期化する(ステップS002)。初期化の具体的な内容は、データ構成の説明において先述した通りであるため、説明を省略する。
更に、ゲーム装置3は、ユーザに対して、コントローラ5を弓に見立ててバイオリンを演奏する姿勢をとるよう案内する。ユーザが演奏する姿勢をとると(図7を参照)、CPU10は、そのコントローラ位置を初期位置として、現実空間における位置姿勢を示す基準となるローカル座標系を定義し、このローカル座標系と、コントローラ5の位置姿勢を示すコントローラ座標系との対応関係を取得する(ステップS003)。ローカル座標系とコントローラ座標系との対応関係は、コントローラ5から取得された操作データに基づいて算出可能である。その後、処理はステップS004へ進む。
なお、本フローチャートに示された処理は、60フレーム/秒で分割されたフレーム単位で繰り返し実行されることで、操作データに従って音声信号を出力するバイオリンのシミュレート処理である。このため、以下に説明するステップS004からステップS009までの処理は、フレーム毎に実行される。
ステップS004では、コントローラ5から入力される操作データが更新される。CPU10は、コントローラ5およびサブユニット76に設けられた各操作ボタン32a〜32i、78e、78d、およびスティック78aの状態、画像処理回路41によって算出されたマーカ座標、加速度センサ37によって検出された加速度、およびジャイロセンサ55、56を用いて計測された角速度等の、コントローラ5に設けられた各種センサによる操作データを取得し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域を更新する。その後、処理はステップS005へ進む。
ステップS005では、コントローラ5の三次元姿勢に係る情報(以下、「姿勢関連情報」と称する)が更新される。CPU10は、ステップS004において更新されたコントローラ5からの入力内容(操作データ)に基づいて、コントローラ5の、ローカル座標に対する三次元姿勢、コントローラ5のヨー方向、ピッチ方向、ロール方向の夫々に係る角加速度および角加速度変化量を算出し、メモリ上に保持されているコントローラ5の姿勢関連情報を更新する。例えば、CPU10は、ジャイロセンサ55、56によって取得されて更新されたコントローラ5のヨー方向、ピッチ方向、ロール方向の夫々に係る角速度に基づいて、ヨー方向、ピッチ方向、ロール方向の夫々に係る角加速度および角加速度変化量を算出する。なお、角加速度および角速度変化量は、ジャイロセンサ55、56から取得された角速度のみに基づいて算出されてもよいし、その他加速度センサ37から取得された情報等を用いて補正されてもよい。その後、処理はステップS006へ進む。
ステップS006では、音高更新処理が実行される。CPU10は、ステップS004において更新された操作データおよびステップS005において更新された姿勢関連情報に基づいて、出力される音声信号の音高を指定するための音高パラメータを更新する。音高更新処理の具体的な内容については、図11から図13に示すフローチャートを用いて後述する。その後、処理はステップS007へ進む。
ステップS007では、ボウイング更新処理が実行される。CPU10は、ステップS004において更新された操作データおよびステップS005において更新された姿勢関連情報に基づいて、弦楽器の演奏におけるユーザの手の動きの状態を示すストローク状態、および引き返しに伴う音量制御フラグを更新する。ボウイング更新処理の具体的な内容については、図14Aおよび図14Bに示すフローチャートを用いて後述する。その後、処理はステップS008へ進む。
ステップS008では、音量更新処理が実行される。CPU10は、ステップS004において更新された操作データおよびステップS005において更新された姿勢関連情報に基づいて、出力される音声信号の音量を指定するための音量パラメータを更新する。音量更新処理の具体的な内容については、図15に示すフローチャートを用いて後述する。その後、処理はステップS009へ進む。
ステップS009では、音声信号出力処理が実行される。CPU10は、ステップS006からステップS008の処理において設定された各種情報に基づいて、音声信号を生成し、出力する。音声信号出力処理の具体的な内容については、図17に示すフローチャートを用いて後述する。
ステップS009に示された音声信号出力処理が終了すると、その後、処理はステップS010へ進む。ステップS010では、本フローチャートに示されたシミュレート処理を終了するか否かが判定され、シミュレート処理を終了すると判定された場合、本フローチャートに示された処理は終了する。一方、シミュレート処理を終了しないと判定された場合、処理はステップS004へ進む。即ち、本実施形態に係るシミュレート処理では、ステップS004からステップS009までの処理が、ユーザからの終了指示等が受け付けられるまで繰り返し実行される。なお、先述の通り、本フローチャートのステップS004からステップS009までの処理は、フレーム毎に実行される。
次に、図10のステップS006からステップS009に示された、音高更新処理、ボウイング更新処理、音量更新処理、および音声信号出力処理の詳細を、図11から図17のフローチャートを用いて説明する。
[音高更新処理]
図11は、本実施形態に係る音高更新処理の流れを示すフローチャートである。本実施形態に係る音高更新処理は、指定弦更新処理および押弦位置更新処理を含む。指定弦更新処理において、CPU10は、ジャイロセンサ55、56等を用いて検出されたコントローラ5の動き等に基づいて、バイオリンの4本の弦のうちのどの弦が発音の対象となっているかを示す弦指定パラメータを更新する(ステップS101)。そして、押弦位置更新処理において、CPU10は、押弦位置を示すサブユニット76のボタンの押下状態等に基づいて、発音の対象となっている弦のどの位置が押弦されているかを判定し、音高パラメータを更新する(ステップS102)。その後、本フローチャートに示された処理は終了する。なお、指定弦更新処理の詳細については、図12Aおよび図12Bを参照して、押弦位置更新処理の詳細については、図13を参照して後述する。
図12Aおよび図12Bは、本実施形態に係る指定弦更新処理の流れを示すフローチャートである。
ステップS201では、移弦準備フラグの状態が判定される。CPU10は、移弦準備フラグを参照することで、現在の状態が移弦の準備段階であるか否かを判定する。移弦準備フラグがOFFであった場合、処理はステップS202へ進む。移弦準備フラグがON
であった場合、処理はステップS206へ進む。
先述の通り、移弦準備フラグとは、移弦の準備段階にあるか否かを示すためのフラグである。本実施形態では、ユーザによる移弦を示唆する動きが検出された際に、即座に移弦を行うことなく、移弦準備フラグを用いて、移弦の準備段階を設けることとしている。実際のバイオリンが演奏される場合、移弦によって発音される音が変わるのは、移弦後のストロークが始まったタイミングであり、ユーザによる移弦の動きが検出されて即座に音を変化させてしまうと、発音の流れが不自然となる。このため、本実施形態では、移弦後の引き返しストロークが始まったタイミングで自然に発音が開始する感覚をユーザに与えるために、移弦の動きが検出されたタイミングでは移弦の準備のみを行い(移弦準備フラグON)、次フレーム以降で発音される音を変化させることとしている。
ステップS202およびステップS203では、Aボタン32dの押下状態が所定のフレーム数以上継続しているか否かが判定される。CPU10は、ステップS201において移弦準備フラグがOFFであると判定されたことを受けて、シミュレート処理のステップS004において更新された操作データを参照することで、Aボタン32dが押下されている状態であるか否かを判定する(ステップS202)。そして、Aボタン32dが押下されていないと判定された場合、本フローチャートに示された処理は終了する。また、Aボタン32dが押下されていると判定された場合、CPU10は、現在の押下状態が何フレーム数継続しているかを示す押下状態継続フレーム数を参照し、所定の閾値(例えば、60フレーム)と比較することで、Aボタン32dの押下状態が、所定のフレーム数以上継続しているか否かを判定する(ステップS203)。より具体的には、内部メインメモリ11eまたは外部メインメモリ12に用意されたカウンタに、Aボタン32dの押下状態が継続されている間、1フレームにつき1カウントアップするカウンタを用意する方法等を用いて、Aボタン32dの押下状態継続フレーム数を計測する。このカウンタは、Aボタン32dの押下状態が解除された時点で0(ゼロ)に初期化される。Aボタン32dの押下状態が、所定のフレーム数以上継続していると判定された場合、本フローチャートに示された処理は終了する。一方、Aボタン32dの押下状態が所定のフレーム数以上継続していないと判定された場合、処理はステップS204へ進む。
即ち、本実施形態では、Aボタン32dが押されているときのみ移弦の処理を実行することで、ユーザの意図しない移弦を防止することとしている(ステップS202)。但し、Aボタン32dが所定時間以上押下されている場合には、ユーザがAボタン32dを押しっぱなしにしている(誤操作)と判断し、Aボタン32dが押されていても移弦の処理を実行しない(ステップS203)。なお、移弦を明示的に許可する操作(本実施形態では、Aボタン32dを押下する操作)は省略されてもよい。移弦を明示的に許可する操作が省略される場合、コントローラ5の動きのみで移弦が実行されるため、ユーザに対して、より現実に近いシミュレーションを提供することが出来る。
ステップS204では、コントローラ5の動きに基づいて、ユーザが移弦のための動きを行っているか否かが判定される。CPU10は、シミュレート処理のステップS005において更新された、コントローラ5のピッチ方向の角加速度変化量およびヨー方向の角加速度を参照することで、
(1)ピッチ方向の角加速度変化量の正負が前フレームと比較して逆転したか否かを判定し、更に、
(2)ヨー方向の角加速度が所定の範囲となったか否かを判定する。
本実施形態では、(1)ピッチ方向の角加速度変化量の正負が前フレームと比較して逆転したか否かを判定することによって、ユーザによる、引き返しのための減速を行おうとする動きが検出され、(2)ヨー方向の角加速度が所定の範囲となったか否かを判定する
ことによって、ユーザによる、弦を変更する動きが検出される。ヨー方向の角加速度が所定の範囲となったか否かの判定においては、例えば、ヨー方向の角加速度が−0.5以下となった場合に、高音弦へ移弦するための動作が行われていると判定される。一方、ヨー方向の角加速度が0.3以上となった場合には、低音弦へ移弦するための動作が行われていると判定される。
ここで、ピッチ方向の角加速度変化量の正負が前フレームと比較して逆転し、且つ、ヨー方向の角加速度が所定の範囲となったと判定された場合、CPU10は、ユーザが移弦のための動きを行っていると判定する。ユーザが移弦のための動きを行っていると判定された場合、処理はステップS205へ進む。ユーザが移弦のための動きを行っていないと判定された場合、本フローチャートに示された処理は終了する。
ステップS205では、移弦準備フラグがONに設定される。CPU10は、ステップS204において、ユーザが移弦のための動きを行っていると判定されたことを受けて、移弦準備フラグをONに設定する。その後、本フローチャートに示された処理は終了する。本ステップにおいて移弦準備フラグがONに設定されることによって、次フレームにおいて本フローチャートに示された指定弦更新処理が実行された場合に、ステップS201に示された判定において処理はステップS206へ進み、実際の移弦(弦指定パラメータを更新する処理)が実行される。
ステップS206では、移弦に伴うユーザの引き返し動作が終了したか否かが判定される。CPU10は、ステップS201において移弦準備フラグがONであると判定されたことを受けて、シミュレート処理のステップS005において更新された、コントローラ5のピッチ方向の角加速度を参照し、移弦に伴う引き返し動作が終了したか否かを判定する。より具体的には、CPU10は、コントローラ5のピッチ方向の角加速度が、0(ゼロ)を含む所定の範囲内にある場合には、引き返し動作が終了したと判定する。一方、CPU10は、コントローラ5のピッチ方向の角加速度が、0(ゼロ)を含む所定の範囲内にない場合には、引き返し動作が未だ終了していない(引き返し動作中である)と判定する。ユーザの引き返し動作が終了したと判定された場合、処理はステップS207へ進む。ユーザの引き返し動作が終了していないと判定された場合、本フローチャートに示された処理は終了する。即ち、本実施形態に係る指定弦更新処理では、ユーザによる移弦の動きが検出されて移弦準備フラグがONとなった後も、ユーザの引き返し動作が終了するまでは、実際の移弦を行わないこととしている。このようにすることで、ユーザに対して、実際の弦楽器を演奏する場合に近い感覚を与えることが出来る。
ステップS207では、ユーザによる移弦動作が、現在発音の対象となっている弦から見て高音弦側への移弦動作であるか、低音弦側への移弦動作であるかが判定される。CPU10は、シミュレート処理のステップS005において更新された、コントローラ5のヨー方向の角加速度を参照することで、ユーザの移弦動作が、現在発音の対象となっている弦から見て高音弦側への移弦動作であるか、低音弦側への移弦動作であるかを判定する。本実施形態に示す例では、左方向へのヨーが正の値で示され、右方向へのヨーが負の値で示される。先述の通り、本実施形態では、コントローラ5が90度傾いた状態(90度ロールした状態)でユーザに把持され、ユーザから見てコントローラ5の先端を上下に傾ける動作がヨー方向への動作となる。そして、バイオリンでは、通常通りユーザが左手に楽器を持ち、右手に弓を持って構えた場合、弓の先端寄りに低音弦が、基端寄りに高音弦が張られている。このため、ヨーの値が負である場合(コントローラ5の先端を上に傾ける動作である場合)、ユーザの移弦動作は、高音弦側への移弦動作であると判定され、ヨーの値が正である場合(コントローラ5の先端を下に傾ける動作である場合)、ユーザの移弦動作は、低音弦側への移弦動作であると判定される。高音弦側への移弦動作であると判定された場合、処理はステップS208へ進む。一方、低音弦側への移弦動作であると
判定された場合、処理はステップS210へ進む。
ステップS208およびステップS209では、高音弦側への移弦が実行される。CPU10は、弦指定パラメータを参照することで、現在発音の対象となっている弦が最高音弦(バイオリンにあっては、E線)であるか否かを判定する(ステップS208)。ここで、現在発音の対象となっている弦が最高音弦であると判定された場合、これ以上高音弦側への移弦は出来ないため、移弦は行われず、処理はステップS212へ進む。一方、現在発音の対象となっている弦が最高音弦ではないと判定された場合、CPU10は、弦指定パラメータに、現在発音の対象となっている弦より1弦分高音弦側の弦を示す値を設定する(ステップS209)。その後、処理はステップS212へ進む。
ステップS210およびステップS211では、低音弦側への移弦が実行される。CPU10は、弦指定パラメータを参照することで、現在発音の対象となっている弦が最低音弦(バイオリンにあっては、G線)であるか否かを判定する(ステップS210)。ここで、現在発音の対象となっている弦が最低音弦であると判定された場合、これ以上低音弦側への移弦は出来ないため、移弦は行われず、処理はステップS212へ進む。一方、現在発音の対象となっている弦が最低音弦ではないと判定された場合、CPU10は、弦指定パラメータに、現在発音の対象となっている弦より1弦分低音弦側の弦を示す値を設定する(ステップS211)。その後、処理はステップS212へ進む。
ステップS212では、移移弦準備フラグがOFFに設定される。CPU10は、移弦が実行されたか(ステップS209またはステップS211)、または移弦が出来ないと判定(ステップS208またはステップS210)されたことを受けて、移弦準備フラグをOFFに設定する。その後、本フローチャートに示された処理は終了する。
図13は、本実施形態に係る押弦位置更新処理の流れを示すフローチャートである。
ステップS301からステップS307では、現在発音の対象となっている弦に基づいて、当該弦に応じた音高パラメータが設定される。CPU10は、弦指定パラメータを参照することで、現在発音の対象となっている弦を判定し、判定の結果に応じて音高パラメータを設定する。具体的には、CPU10は、弦指定パラメータがG線を示す値である場合、音高パラメータに−14を設定し(ステップS301およびステップS302)、弦指定パラメータがD線を示す値である場合、音高パラメータに−7を設定し(ステップS303およびステップS304)、弦指定パラメータがA線を示す値である場合、音高パラメータに0(ゼロ)を設定し(ステップS305およびステップS306)、弦指定パラメータがE線を示す値である場合、音高パラメータに+7を設定する(ステップS307)。その後、処理はステップS308へ進む。
ステップS308からステップS313では、ユーザの押弦操作に基づいて、音高パラメータが変更される。CPU10は、シミュレート処理のステップS004において更新された操作データを参照することで、Zボタン78e、Cボタン78d、およびスティック78aの何れかが押下されている状態であるか否かを判定する。CPU10は、Zボタン78eが押下されている場合、音高パラメータに5または6加算し(ステップS308およびステップS309)、Cボタン78dが押下されている場合、音高パラメータに3または4加算し(ステップS310およびステップS311)、スティック78aに0以外の値がある場合、音高パラメータに1または2加算する(ステップS312およびステップS313)。何れのボタンも押下されていない場合(ステップS312において「No」に分岐した場合)には、音高パラメータの変更は行われない。なお、本実施形態において、音高パラメータには、演奏に用いられるキーおよびスケールに応じた値が加算される。CPU10は、予め設定されたキーおよびスケールを参照して、音高パラメータに加
算される値が、上記ステップS308からステップS313の説明において示された値の何れであるかを決定する。例えば、ゲーム内で流れる楽曲に合わせて演奏を行う場合、自動的に当該楽曲の調性(キーおよびモード)に合わせた設定がなされてよい。その後、本フローチャートに示された処理は終了する。
なお、フローチャートから把握される通り、押弦操作のためのボタンには優先順位が存在する。即ち、押弦のためのボタンが複数押下されている場合、実際の楽器においてより高音側の押弦箇所に従って音高が決定されるのと同様、より大きな値が音高パラメータに加算されるボタンが優先されて、音高パラメータが決定される。このため、ユーザは、実際の楽器演奏に近い感覚でプレイできる。また、
[ボウイング更新処理]
図14Aおよび図14Bは、本実施形態に係るボウイング更新処理の流れを示すフローチャートである。
ステップS401およびステップS402では、ボウイング更新処理において用いられる、ピッチ方向の角加速度の平均値(以下、「平均角加速度ACC_AVE2」と称する)および角加速度変化量の平均値(以下、「平均角加速度変化量V_AVE8」と称する)が取得される。CPU10は、シミュレート処理のステップS005において更新された、コントローラ5のピッチ方向の角加速度を2フレーム分取得し、その平均を算出する(ステップS401)。また、CPU10は、シミュレート処理のステップS005において更新された、コントローラ5のピッチ方向の角加速度変化量を8フレーム分取得し、その平均を算出する(ステップS402)。なお、本実施形態では、ジャイロセンサ55、56から取得される測定値にばらつきが生じることを考慮して、平均角加速度ACC_AVE2および平均角加速度変化量V_AVE8を算出し、これを参照することとしているが、参照される角加速度および角加速度変化量は、平均値に限定されない。その後、処理はステップS403へ進む。
ステップS403からステップS413では、現在のストローク状態および角加速度に基づいて、ストローク状態が更新される。CPU10は、現在のストローク状態、およびステップS401で算出された平均角加速度ACC_AVE2に基づいて、ストローク状態を更新する。本実施形態において、UPストローク中は、ピッチ方向の角速度が負の値で示され、DOWNストローク中は、ピッチ方向の角速度が正の値で示される。このため、UPストローク中にユーザが手を動かす速さを落とす動きや、実際にDOWNストロークを開始して手を動かす早さを上げる動きは、正の角加速度として表れる。また、DOWNストローク中にユーザが手を動かす速さを落とす動きや、実際にUPストロークを開始して手を動かす早さを上げる動きは、負の角加速度として表れる。
このことから、現在のストローク状態がUPストロークに設定されており、且つ平均角加速度ACC_AVE2が正である場合、CPU10は、UPストローク中にユーザがDOWNストロークに向けた動きを始めたと判断し、ストローク状態をUPtoDOWNストロークに設定する(ステップS403、S407およびS408)。また、現在のストローク状態がDOWNストロークに設定されており、且つ平均角加速度ACC_AVE2が負である場合、CPU10は、DOWNストローク中にユーザがUPストロークに向けた動きを始めたと判断し、ストローク状態をDOWNtoUPストロークに設定する(ステップS404、S409およびS410)。その後、処理はステップS414へ進む。
また、CPU10は、現在のストローク状態がUPtoDOWNストロークに設定されており、且つ平均角加速度ACC_AVE2が正である場合、ユーザがDOWNストロークを始めたと判断出来るため、ストローク状態をDOWNストロークに設定する(ステッ
プS405、S411およびS412)。また、CPU10は、現在のストローク状態がDOWNtoUPストロークに設定されており、且つ平均角加速度ACC_AVE2が負である場合、ユーザがUPストロークを始めたと判断出来るため、ストローク状態をUPストロークに設定する(ステップS406およびS413)。その後、処理はステップS420へ進む。
なお、現在のストローク状態がUPストロークに設定されており、且つ平均角加速度ACC_AVE2が正でない場合、UPストロークが継続されていると判断出来るため、CPU10は、ストローク状態を更新しない(ステップS407の「No」)。同様に、現在のストローク状態がDOWNストロークに設定されており、且つ平均角加速度ACC_AVE2が負でない場合、DOWNストロークが継続されていると判断出来るため、CPU10は、ストローク状態を更新しない(ステップS409の「No」)。ストローク状態が更新されなかった場合、処理はステップS416へ進む。
即ち、本実施形態に示された処理において、ストローク状態は、ユーザの動きに応じて、「UPストローク→UPtoDOWNストローク→DOWNストローク→DOWNtoUPストローク→UPストローク・・・」の順に設定される。このようにして、本実施形態では、バイオリンを演奏する際のボウイングの動きが取得される。
但し、現在のストローク状態がUPtoDOWNストロークに設定されているが、平均角加速度ACC_AVE2が正でない場合、CPU10は、ストローク状態をUPストロークに戻す設定を行う(ステップS411およびS413)。同様に、現在のストローク状態がDOWNtoUPストロークに設定されているが、平均角加速度ACC_AVE2が負でない場合、CPU10は、ストローク状態をDOWNストロークに戻す設定を行う(ステップS406およびS412)。その後、処理はステップS420へ進む。
ステップS414からステップS416では、前回の引き返し処理完了からの経過時間に基づいて、引き返しフラグが設定される。本実施形態において、ピッチ方向の角加速度は、60フレーム/秒で分割されたフレーム毎に更新されるため、ユーザの意図しない手の動きによって、平均角加速度ACC_AVE2の正負が頻繁に入れ替わる可能性がある。このため、CPU10は、ユーザの意図しない手の細かい動きによって生じる平均角加速度ACC_AVE2の正負の入れ替わりを、引き返し動作と誤判定することを防止するため、前回の引き返し処理完了から3フレーム以上が経過しているか否かを判定する(ステップS414)。なお、前回の引き返し処理完了は、例えば、後述するステップS608において、音量制御フラグがOFFに設定されたタイミングとすることが出来る。そして、前回の引き返し処理完了から3フレーム以上が経過していると判定された場合、CPU10は、引き返しフラグをONに設定する(ステップS415)。一方、前回の引き返しから3フレーム以上が経過していないと判定された場合、CPU10は、引き返しフラグをOFFに設定する(ステップS416)。また、CPU10は、ステップS407またはステップS409における判定の結果、ストローク状態が更新されなかった場合にも、引き返しフラグをOFFに設定する(ステップS416)。その後、処理はステップS417へ進む。
ステップS417からステップS419では、平均角加速度変化量V_AVE8に基づいて、ストロークパワーが設定される。CPU10は、ステップS402で算出された平均角加速度変化量V_AVE8に基づいて、ストロークパワーを設定する。引き返し動作の際の平均角加速度変化量V_AVE8は、ユーザによる引き返し動作の勢いの程度を示す。このため、CPU10は、平均角加速度変化量V_AVE8を所定の閾値(例えば、0.04)と比較し(ステップS417)、平均角加速度変化量V_AVE8が所定の閾値を超えている場合、ストロークパワーに「強」を設定する。一方、CPU10は、平均
角加速度変化量V_AVE8が所定の閾値を超えていない場合、ストロークパワーに「弱」を設定する。その後、本フローチャートに示された処理は終了する。
ステップS420およびステップS421では、引き返しフラグの内容に応じて、音量制御フラグが設定される。CPU10は、前フレームにおいてボウイング更新処理が実行された際に設定された引き返しフラグを参照し(ステップS420)、引き返しフラグがONに設定されている場合、音量制御フラグをONに設定する(ステップS421)。一方、引き返しフラグがONに設定されている場合、音量制御フラグは設定されない(ステップS420の「No」)。その後、本フローチャートに示された処理は終了する。
なお、本実施形態では、過渡的なストローク状態として、UPtoDOWNストロークおよびDOWNtoUPストロークを設定し、ストローク状態の移行を管理することとしているが、実施の形態によっては、UPtoDOWNストロークおよびDOWNtoUPストロークは用いられなくてもよい。この場合、ストローク状態は、ユーザの動きに応じて「UPストローク→DOWNストローク→UPストローク・・・」の順に設定される。UPtoDOWNストロークおよびDOWNtoUPストロークが設定されない場合、CPU10は、毎フレーム、またはストローク状態が変更されたフレームの次フレームにおいて、引き返しフラグを参照し、引き返しフラグの内容に応じて、音量制御フラグを設定する。
[音量更新処理]
図15は、本実施形態に係る音量更新処理の流れを示すフローチャートである。
ステップS501では、ローカル座標系における、コントローラ5の姿勢変化量が更新される。CPU10は、シミュレート処理のステップS004において更新された、コントローラ5のヨー方向、ピッチ方向、ロール方向の夫々に係る角速度に基づいて、ローカル座標系における、コントローラ5の姿勢変化量を算出する。この算出は、フレーム毎に更新された最新の角速度に基づいて、毎フレーム行われる。
具体的には、CPU10は、コントローラ座標系のY軸およびZ軸の夫々が1フレーム間に移動した移動量を、ローカル座標系におけるベクトルで表すことで、単位時間あたりのコントローラ5の姿勢変化量を算出する。但し、本実施形態に係る音量更新処理において、コントローラ5の姿勢は、コントローラ座標系のY軸およびZ軸のみで定義され、コントローラ5の姿勢変化量は、ローカル座標系のx成分およびz成分についてのみ算出される。この姿勢変化量は、コントローラ5のヨー方向、ピッチ方向、ロール方向の夫々に係る角速度に基づいて算出できる。
即ち、本実施形態において、CPU10は、コントローラ座標系のY軸の姿勢変化量として、ローカル座標系におけるx成分の姿勢変化量dirY_xと、ローカル座標系におけるz成分の姿勢変化量dirY_zと、を算出し、コントローラ座標系のZ軸の姿勢変化量として、ローカル座標系におけるx成分の姿勢変化量dirZ_xと、ローカル座標系におけるz成分の姿勢変化量dirZ_zと、を算出する。即ち、本実施形態では、姿勢変化量として、姿勢変化量dirY_x、dirY_z、dirZ_xおよびdirZ_zの4値が算出される。例えば、コントローラ座標系のY軸上の点(0,1,0)およびZ軸上の点(0,0,1)がローカル座標系において移動した量を、ローカル座標系上のベクトル(本実施形態では、x成分およびz成分のみ)で表し、これを姿勢変化量とすることが出来る。その後、処理はステップS502へ進む。なお、本実施形態では、姿勢変化量として、姿勢変化量dirY_x、dirY_z、dirZ_xおよびdirZ_zを算出して音量パラメータを取得するための情報としているが、他の実施形態では、角速度と音量パラメータとを関連付けておき、ジャイロセンサから取得される角速度自体に
基づいて音量パラメータを取得する方法が採用されてもよい。
なお、本実施形態では、姿勢変化量として、姿勢変化量dirY_x、dirY_z、dirZ_xおよびdirZ_zの4値を算出することとしているが、これは、バイオリンの演奏におけるストロークでは、ローカル座標系におけるx成分およびz成分に反映される動き(コントローラ5のY軸およびZ軸の姿勢変化)が主であり、ローカル座標系において主にy成分に反映される動き(コントローラ5のX軸の姿勢変化)は小さいためである(但し、移弦の動きは除く)。このため、姿勢変化量として算出されるローカル座標の成分およびコントローラ5の軸の組み合わせは、本実施形態に示された4値に限定されない。姿勢変化量は、シミュレーションの対象に応じて適宜採用されることが好ましく、また、ローカル座標系のxyz成分の全てと、コントローラ5のXYZ軸の全てとの組み合わせ(即ち、9値)について算出されてもよい。
ステップS502では、音量パラメータの取得に用いる姿勢変化量として「最大姿勢変化量2値」の平均姿勢変化量MM_AVE16が算出される。CPU10は、ステップS501において算出された姿勢変化量dirY_x、dirY_z、dirZ_xおよびdirZ_zのうち、値の大きい方から2値を積算することで、「最大姿勢変化量2値」を算出する。ボウイング中に、コントローラ5の動きが所定の条件を満たした場合(例えば、コントローラ5の動きがある軸に対して平行に近い動きになった場合等)、一部の姿勢変化量が飽和する(姿勢変化量が得られない)ことがある。本実施形態によれば、異なる軸および成分に係る複数の姿勢変化量を合わせることによって、一部の姿勢変化量が飽和した場合にも、音量パラメータの取得のために適切な姿勢変化量を得ることが出来る。
なお、ここで算出された「最大姿勢変化量2値」は、算出されたフレームを識別可能な情報に関連付けて、内部メインメモリ11eまたは外部メインメモリ12に、少なくとも16フレームの間保持される。そして、CPU10は、現在処理中のフレームを含む最近16フレームにおいて算出された「最大姿勢変化量2値」を平均することで、平均姿勢変化量MM_AVE16を算出する。なお、本実施形態では、ジャイロセンサ55、56から取得される測定値にばらつきが生じることを考慮して、姿勢変化量の平均値を算出し、これを参照することとしているが、音量パラメータの取得のために参照される姿勢変化量は、平均値に限定されない。また、本実施形態では、上位2値を合計することとしているが、ある特定の成分に係る姿勢変化量が飽和することを回避するためには、異なる成分に係る複数の姿勢変化量が合計されればよく、2値に限定されない。例えば、算出された全ての姿勢変化量を合計することとしてもよい。その後、処理はステップS503へ進む。
ステップS503では、姿勢変化量に基づいて、ゲーム装置3から出力される音声信号の音量を決定するための音量パラメータが設定される。CPU10は、ステップS502において、音量パラメータの取得に用いる姿勢変化量として算出された平均姿勢変化量MM_AVE16に応じた音量パラメータを取得し、設定する。平均姿勢変化量MM_AVE16は、コントローラ5の姿勢変化量に基づく値であり、且つ、平均化されることによって、ユーザの意図しない動きの影響を低減させた値となっている。このため、本実施形態によれば、ユーザの意図に沿った、自然な音量パラメータを設定することが可能となる。その後、本フローチャートに示された処理は終了する。
図16は、本実施形態において、姿勢変化量と音量パラメータとの関係を表したマップを示す図である。本実施形態において、平均姿勢変化量MM_AVE16に応じた音量パラメータは、図16に示したマップを参照することによって取得される。本実施形態において、音量パラメータは、音波形のデータを、音量を低減させることなく出力する場合の値(最大音量、最大振幅値)を1.0000とした、音量に対する割合を示すパラメータである。姿勢変化量(平均姿勢変化量MM_AVE16)と音量パラメータとの対応関係
を定めたマップにおいて、姿勢変化量の変化に対する音量パラメータの変化の勾配の傾向は、姿勢変化量の範囲ごとに異なる。図16に示す例によれば、姿勢変化量が十分に小さい(図16に示す例で0.5未満)場合は、仮にストロークが検出されていたとしても音量パラメータは無音(0.0000)に設定され、姿勢変化量が十分に大きい(図16に示す例で6.0以上)場合には、音量パラメータは最大音量(1.0000)に設定される。また、姿勢変化量が比較的小さい(図16に示す例で0.5以上2.0以下)場合には、姿勢変化量の増加に伴って指数関数的に大きな音量パラメータが設定されるが、姿勢変化量がバイオリンの演奏における中程度の変化量である(図16に示す例で2.0より大で且つ4.0未満)場合には、姿勢変化量の増加に伴う音量パラメータの増加量は緩やかになる。そして、姿勢変化量が比較的大きい(図16に示す例で4.0以上6.0未満)場合には、姿勢変化量の増加に伴う音量パラメータの変化は、勾配が小さく且つリニアな変化となる。このため、本実施形態によれば、ボウイングの速度が比較的遅い段階では滑らかに音が立ち上がり、ボウイングの速度が十分に速くなると音量の上限が訪れる、自然な音量変化を提供できる。
なお、本実施形態では、マップを参照して、平均姿勢変化量MM_AVE16に対応する音量パラメータを取得する方法について説明したが、このような方法に変えて、CPU10は、姿勢変化量と音量パラメータとの対応関係を定めた関係式を用いて、平均姿勢変化量MM_AVE16に応じた音量パラメータを算出することとしてもよい。この場合、姿勢変化量の範囲毎に、姿勢変化量の変化に対する音量パラメータの変化の勾配の傾向が異なる関係式を用いることで、自然な音量変化を提供することが出来る。
[音声信号出力処理]
図17は、本実施形態に係る音声信号出力処理の流れを示すフローチャートである。
ステップS601では、Bボタン32iの状態が判定される。CPU10は、シミュレート処理のステップS004において更新された操作データを参照することで、Bボタン32iが押下されている状態であるか否かを判定する。Bボタン32iが押下されていると判定された場合、処理はステップS602へ進む。一方、Bボタン32iが押下されていないと判定された場合、処理はステップS607へ進む。
ここで、Bボタン32iは、音声信号の出力を指示するためのボタンとして用いられる。Bボタン32iが押下されている間のみ音声信号を出力することで、ユーザが演奏をする意図無くコントローラ5を動かした場合に、音声信号が出力されてしまうことを防止することが出来る。また、本実施形態に係るゲーム装置3において、Bボタン32iは、ユーザが右手でコントローラ5を把持した場合に、右手の人差し指で押下される位置に設けられているため、バイオリンを演奏するときに近い姿勢をユーザにとらせることが出来る。
ステップS602では、音量制御フラグの状態が判定される。CPU10は、音量制御フラグを参照することで、ボウイングにおける引き返し動作が行われているか否かを判定する。先述の通り、音量制御フラグは、引き返し動作の際に音量が小さくなる効果を出すためのフラグであり、音量制御フラグはボウイング更新処理のステップS421においてONに設定される。音量制御フラグがONである、即ち、ボウイングにおける引き返し動作が行われていると判定された場合、処理はステップS608へ進む。一方、音量制御フラグがOFFである、即ち、ボウイングにおける引き返し動作が行われていないと判定された場合、処理はステップS603へ進む。
ステップS603からステップS606では、上述した音高更新処理、ボウイング更新処理、音量更新処理、および音声信号出力処理において設定された設定内容に従って、音
声信号が出力される。CPU10は、サウンドラベルを、ストロークパワーに応じたサウンドラベルに更新する(ステップS603)。即ち、後述するステップS606では、ステップS603において設定されたサウンドラベルに基づいて音声信号が生成および出力される。また、CPU10は、出力音量に、音量更新処理において設定された音量パラメータの値を設定し(ステップS604)、出力音高に、音高更新処理において設定された音高パラメータの値を設定する(ステップS605)。そして、ステップS603において設定されたサウンドラベル、ステップS604において設定された出力音量、ステップS605において設定された出力音高に基づいてDSP11cによって生成された音声信号が出力され(ステップS606)、音声信号に従った音声が、スピーカ2aから出力される。その後、本フローチャートに示された処理は終了する。
ステップS607では、音声信号の出力停止が行われる。CPU10は、ステップS601においてBボタン32iが押下されていないと判定されたことを受けて、ゲーム装置3からの音声信号の出力を停止する。なお、この出力停止は、6フレームかけてのフェードアウトを伴う。CPU10は、6フレームかけて徐々に音声信号の音量を下げ、ゲーム装置3からの音声信号の出力を停止する。その後、本フローチャートに示された処理は終了する。
ステップS608では、ユーザの引き返し動作に伴う引き返し処理が実行される。CPU10は、ステップS602において音量制御フラグがONである、即ち、ボウイングにおける引き返し動作が行われていると判定されたことを受けて、ゲーム装置3からの音声信号の出力を停止する。このようにすることで、ユーザの引き返し動作に伴って音量に変化を持たせ、ユーザに対して実際にバイオリンを演奏しているような感覚を与えることが出来る。なお、この出力停止は、3フレームかけてのフェードアウトを伴う。CPU10は、3フレームかけて徐々に音声信号の音量を下げ、ゲーム装置3からの音声信号の出力を停止する。また、CPU10は、ユーザの引き返し動作に伴う引き返し処理が実行されたことを受けて、音量制御フラグをOFFに設定する。
なお、本実施形態に係るシミュレーション処理において用いられる姿勢変化量の成分は、バイオリンをシミュレーション対象とする場合に好適なものであり、シミュレーション処理において用いられる姿勢変化量の成分は、本実施形態において示されたものに限定されない。シミュレーション処理において用いられる姿勢変化量の成分は、シミュレーション対象の発音装置において採用される発音体の配置や、発音体を擦る動きの方向等に応じて適宜決定されてよい。シミュレーションの対象となる発音装置は、その他の発音装置であってもよく、例えば、チェロ等のその他の擦弦楽器を、シミュレーションの対象とすることが出来る。
また、本実施形態では、コントローラに内蔵されたジャイロセンサ等を用いて角速度等を測定し、コントローラの姿勢変化量を取得する実施の形態について説明したが、本発明の実施にあたり、所定の対象の動きを測定するための手段は、コントローラに設けられたセンサ類に限定されない。例えば、他の実施の形態として、カメラ等のセンサを用いてユーザの手の動きを測定し、測定結果からユーザの手の姿勢変化量を取得することとしてもよい。
1 ゲームシステム
3 ゲーム装置
5 コントローラ
7 入力装置
76 サブユニット
101 姿勢変化量取得部
102 音量パラメータ設定部
103 弦指定情報保持部
104 弦変更部
105 出力音量制御部
106 音声信号出力部

Claims (12)

  1. 所定の対象の動きに基づいて音声を出力するための音楽演奏装置のコンピュータを、
    前記所定の対象の姿勢または動きに関する測定情報に基づいて、前記所定の対象の所定間隔での姿勢変化量を取得する姿勢変化量取得手段と、
    前記姿勢変化量に応じて、音量を決定するための音量パラメータを設定する音量パラメータ設定手段と、
    前記音量パラメータに応じた音量の音声信号を出力する音声信号出力手段、
    として機能させるための音楽演奏用プログラム。
  2. 前記姿勢変化量取得手段は、前記測定情報に基づいて、現実空間に定義された座標系に対する、前記所定の対象の所定間隔での姿勢変化量が算出されることで、前記姿勢変化量を取得する、
    請求項1に記載の音楽演奏用プログラム。
  3. 前記姿勢変化量取得手段は、現実空間に定義された前記座標系の軸に対する、前記所定の対象の姿勢変化量を複数取得し、
    前記音量パラメータ設定手段は、前記姿勢変化量取得手段によって取得された複数の前記姿勢変化量のうち、値が大きい順に上位2つ以上の姿勢変化量に基づいて、前記音量パラメータを設定する、
    請求項2に記載の音楽演奏用プログラム。
  4. 前記姿勢変化量取得手段は、現実空間に定義された前記座標系のうちの2つの軸に対する、前記所定の対象の姿勢を定義するための2つの軸の姿勢変化量を、軸の組み合わせ毎に4つ取得し、
    前記音量パラメータ設定手段は、前記姿勢変化量取得手段によって取得された4つの前記姿勢変化量のうち、値が大きい順に上位2つの姿勢変化量に基づいて、前記音量パラメータを設定する、
    請求項3に記載の音楽演奏用プログラム。
  5. 前記姿勢変化量取得手段は、前記姿勢変化量として、所定の期間内に複数回取得された姿勢変化量の平均値を取得する、
    請求項1から4の何れか一項に記載の音楽演奏用プログラム。
  6. 前記コンピュータを、
    前記測定情報に基づいて、所定の方向における角加速度の正負が逆転したと判定された場合に、前記音声信号出力手段による音声信号の出力を所定時間止めるかまたは前記音声信号出力手段による音声信号の出力音量を下げる、出力音量制御手段として更に機能させるための、
    請求項1から5の何れか一項に記載の音楽演奏用プログラム。
  7. 前記音量パラメータ設定手段は、前記姿勢変化量と前記音量パラメータとの対応関係を定めた情報に基づいて前記音量パラメータを設定し、
    前記姿勢変化量と前記音量パラメータとの対応関係を定めた情報において、前記姿勢変化量の変化に対する前記音量パラメータの変化の勾配の傾向は、該姿勢変化量の範囲ごとに異なる、
    請求項1から6の何れか一項に記載の音楽演奏用プログラム。
  8. 前記音楽演奏装置は、略同一方向に張られた複数の弦を有する弦楽器をシミュレートするものであり、
    前記コンピュータを、
    現在発音の対象となっている弦が前記複数の弦のうちの何れであるかを指定する弦指定情報を保持する弦指定情報保持手段と、
    前記測定情報に基づいて、前記複数の弦が張られた方向を軸とする周方向への角加速度が所定の閾値を越えたと判定された場合に、前記弦指定情報によって指定される弦を変更する弦変更手段、
    として更に機能させるための、請求項1から7の何れか一項に記載の音楽演奏用プログラム。
  9. 前記所定の対象は、ユーザによって操作される、ジャイロセンサを内蔵したコントローラであり、
    前記測定情報は、前記ジャイロセンサを用いて計測された角速度または角加速度である、
    請求項1から8の何れか一項に記載の音楽演奏用プログラム。
  10. 所定の対象の動きに基づいて音声を出力するための音楽演奏装置であって、
    前記所定の対象の姿勢または動きに関する測定情報に基づいて、前記所定の対象の所定間隔での姿勢変化量を取得する姿勢変化量取得手段と、
    前記姿勢変化量に応じて、音量を決定するための音量パラメータを設定する音量パラメータ設定手段と、
    前記音量パラメータに応じた音量の音声信号を出力する音声信号出力手段と、
    を備える音楽演奏装置。
  11. 所定の対象の動きに基づいて音声を出力するための音楽演奏システムであって、
    前記所定の対象の姿勢または動きに関する測定情報に基づいて、前記所定の対象の所定間隔での姿勢変化量を取得する姿勢変化量取得手段と、
    前記姿勢変化量に応じて、音量を決定するための音量パラメータを設定する音量パラメータ設定手段と、
    前記音量パラメータに応じた音量の音声信号を出力する音声信号出力手段と、
    を備える音楽演奏システム。
  12. 所定の対象の動きに基づいて音声を出力するための音楽演奏装置のコンピュータが、
    前記所定の対象の姿勢または動きに関する測定情報に基づいて、前記所定の対象の所定間隔での姿勢変化量を取得する姿勢変化量取得ステップと、
    前記姿勢変化量に応じて、音量を決定するための音量パラメータを設定する音量パラメータ設定ステップと、
    前記音量パラメータに応じた音量の音声信号を出力する音声信号出力ステップと、
    を実行する音楽演奏方法。
JP2011096551A 2011-04-22 2011-04-22 音楽演奏用プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法 Active JP5812663B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011096551A JP5812663B2 (ja) 2011-04-22 2011-04-22 音楽演奏用プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法
US13/222,428 US8586852B2 (en) 2011-04-22 2011-08-31 Storage medium recorded with program for musical performance, apparatus, system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011096551A JP5812663B2 (ja) 2011-04-22 2011-04-22 音楽演奏用プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法

Publications (2)

Publication Number Publication Date
JP2012230135A true JP2012230135A (ja) 2012-11-22
JP5812663B2 JP5812663B2 (ja) 2015-11-17

Family

ID=47020252

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011096551A Active JP5812663B2 (ja) 2011-04-22 2011-04-22 音楽演奏用プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法

Country Status (2)

Country Link
US (1) US8586852B2 (ja)
JP (1) JP5812663B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019078943A (ja) * 2017-10-26 2019-05-23 株式会社河合楽器製作所 パラメータ制御装置及び制御方法
US12008288B2 (en) 2019-02-25 2024-06-11 Sony Semiconductor Solutions Corporation Audio signal processing device based on orientation

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5812663B2 (ja) * 2011-04-22 2015-11-17 任天堂株式会社 音楽演奏用プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法
JP6044099B2 (ja) 2012-04-02 2016-12-14 カシオ計算機株式会社 姿勢検出装置、方法及びプログラム
JP2013213744A (ja) * 2012-04-02 2013-10-17 Casio Comput Co Ltd 姿勢検出装置、方法及びプログラム
US8878043B2 (en) * 2012-09-10 2014-11-04 uSOUNDit Partners, LLC Systems, methods, and apparatus for music composition
US20170344113A1 (en) * 2015-01-19 2017-11-30 Kurv Music Ltd. Hand-held controller for a computer, a control system for a computer and a computer system
GB2535210A (en) * 2015-02-13 2016-08-17 Ben-Ari Tal Controller for a sound generator
GB2611021B (en) * 2021-08-27 2024-06-26 Little People Big Noise Ltd Gesture-based audio syntheziser controller
CN115048026A (zh) * 2022-06-14 2022-09-13 陕西理工大学 人机交互的交响乐队弦乐组乐器演奏方法、装置及设备
CN115048025A (zh) * 2022-06-14 2022-09-13 陕西理工大学 人机交互的传统弓拉弦鸣乐器演奏方法、装置及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08305355A (ja) * 1995-05-09 1996-11-22 Yamaha Corp 自動演奏制御装置
JP2002341865A (ja) * 2001-05-11 2002-11-29 Yamaha Corp オーディオ信号生成装置、オーディオ信号生成システム、オーディオシステム、オーディオ信号生成方法、プログラムおよび記録媒体
JP2006053167A (ja) * 2004-07-14 2006-02-23 Rarugo:Kk 電子楽器装置および仮想楽器の演奏方法並びに仮想楽器の演奏処理のプログラムおよびそのプログラムを記録した記録媒体
JP2007293191A (ja) * 2006-04-27 2007-11-08 Nintendo Co Ltd 音出力プログラムおよび音出力装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63191195A (ja) 1987-02-03 1988-08-08 ヤマハ株式会社 楽音制御装置
EP1130570B1 (en) * 2000-01-11 2007-10-10 Yamaha Corporation Apparatus and method for detecting performer's motion to interactively control performance of music or the like
JP4694705B2 (ja) * 2001-02-23 2011-06-08 ヤマハ株式会社 楽音制御システム
JP3867515B2 (ja) * 2001-05-11 2007-01-10 ヤマハ株式会社 楽音制御システムおよび楽音制御装置
JP4626087B2 (ja) * 2001-05-15 2011-02-02 ヤマハ株式会社 楽音制御システムおよび楽音制御装置
US20060191401A1 (en) * 2003-04-14 2006-08-31 Hiromu Ueshima Automatic musical instrument, automatic music performing method and automatic music performing program
JP5351373B2 (ja) * 2006-03-10 2013-11-27 任天堂株式会社 演奏装置および演奏制御プログラム
WO2009052032A1 (en) * 2007-10-19 2009-04-23 Sony Computer Entertainment America Inc. Scheme for providing audio effects for a musical instrument and for controlling images with same
JP5316818B2 (ja) * 2010-10-28 2013-10-16 カシオ計算機株式会社 入力装置およびプログラム
JP5812663B2 (ja) * 2011-04-22 2015-11-17 任天堂株式会社 音楽演奏用プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08305355A (ja) * 1995-05-09 1996-11-22 Yamaha Corp 自動演奏制御装置
JP2002341865A (ja) * 2001-05-11 2002-11-29 Yamaha Corp オーディオ信号生成装置、オーディオ信号生成システム、オーディオシステム、オーディオ信号生成方法、プログラムおよび記録媒体
JP2006053167A (ja) * 2004-07-14 2006-02-23 Rarugo:Kk 電子楽器装置および仮想楽器の演奏方法並びに仮想楽器の演奏処理のプログラムおよびそのプログラムを記録した記録媒体
JP2007293191A (ja) * 2006-04-27 2007-11-08 Nintendo Co Ltd 音出力プログラムおよび音出力装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019078943A (ja) * 2017-10-26 2019-05-23 株式会社河合楽器製作所 パラメータ制御装置及び制御方法
JP7020862B2 (ja) 2017-10-26 2022-02-16 株式会社河合楽器製作所 パラメータ制御装置及び制御方法
US12008288B2 (en) 2019-02-25 2024-06-11 Sony Semiconductor Solutions Corporation Audio signal processing device based on orientation

Also Published As

Publication number Publication date
JP5812663B2 (ja) 2015-11-17
US20120266739A1 (en) 2012-10-25
US8586852B2 (en) 2013-11-19

Similar Documents

Publication Publication Date Title
JP5812663B2 (ja) 音楽演奏用プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法
JP4679431B2 (ja) 音出力制御プログラムおよび音出力制御装置
US8246460B2 (en) Game system
JP4757089B2 (ja) 音楽演奏プログラムおよび音楽演奏装置
CN202398092U (zh) 操作装置和操作系统
JP5173174B2 (ja) ゲーム装置、ゲームプログラム、ゲームシステム、およびゲーム処理方法
JP4988273B2 (ja) ゲームプログラムおよびゲーム装置
CN102600613B (zh) 游戏系统、操作装置以及游戏处理方法
JP5731734B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
CN102462960A (zh) 操作装置和操作系统
JP2009536765A (ja) 加速度計データに基づいて、振りの衝撃の時期および/または振りの強度を検出するシステムおよび方法
JP2009172010A (ja) 情報処理プログラムおよび情報処理装置
CN103325363A (zh) 演奏装置及方法
CN106652656A (zh) 利用虚拟乐器学习和演奏的方法、装置以及使用其的眼镜或头盔
JP5902919B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、情報処理方法
JP2008119345A (ja) ゲームプログラムおよびゲーム装置
US8352267B2 (en) Information processing system and method for reading characters aloud
JP5848520B2 (ja) 音楽演奏プログラム、音楽演奏装置、音楽演奏システム、および音楽演奏方法
JP5147351B2 (ja) 音楽演奏プログラム、音楽演奏装置、音楽演奏システムおよび音楽演奏方法
JP5036010B2 (ja) 音楽演奏プログラム、音楽演奏装置、音楽演奏システム、および音楽演奏方法
JP3926830B2 (ja) ゲーム装置および情報記憶媒体
JP2010104721A (ja) ゲーム制御プログラム、ゲーム制御方法およびゲーム装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150330

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150901

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150915

R150 Certificate of patent or registration of utility model

Ref document number: 5812663

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250