IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 任天堂株式会社の特許一覧

特許7252998情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
<>
  • 特許-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図1
  • 特許-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図2
  • 特許-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図3
  • 特許-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図4
  • 特許-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図5
  • 特許-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図6
  • 特許-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図7
  • 特許-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図8
  • 特許-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図9
  • 特許-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図10
  • 特許-情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-28
(45)【発行日】2023-04-05
(54)【発明の名称】情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
(51)【国際特許分類】
   A63F 13/54 20140101AFI20230329BHJP
   A63F 13/5255 20140101ALI20230329BHJP
   A63F 13/55 20140101ALI20230329BHJP
   G06F 3/16 20060101ALI20230329BHJP
   H04S 7/00 20060101ALI20230329BHJP
【FI】
A63F13/54
A63F13/5255
A63F13/55
G06F3/16 540
H04S7/00 300
【請求項の数】 20
(21)【出願番号】P 2021041184
(22)【出願日】2021-03-15
(65)【公開番号】P2022141054
(43)【公開日】2022-09-29
【審査請求日】2022-01-27
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】谷輪 宏之
【審査官】池田 剛志
(56)【参考文献】
【文献】特開2018-007175(JP,A)
【文献】特開2004-195210(JP,A)
【文献】特開2018-130282(JP,A)
【文献】特開2002-263371(JP,A)
【文献】特開2011-250311(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00-13/98
A63F 9/24
H01S 1/00- 7/00
(57)【特許請求の範囲】
【請求項1】
複数のスピーカへ音声出力可能な情報処理装置のコンピュータに、
音声が関連付けられた仮想音源が配置された仮想空間内において、仮想マイクの位置を制御させ、
前記仮想マイクから前記仮想音源までの相対的な距離と相対的な方向に基づいて、出力する前記音声の音量設定と、前記複数のスピーカへの出力バランスのバランス設定をさせ、
設定された前記音量と前記出力バランスに基づいて前記複数のスピーカへ前記音声を出力させ、
前記仮想マイクが、前記仮想空間内において所定の基準よりも大きく移動した場合に、当該仮想マイクの移動から所定期間の間、
前記相対的な距離に関して、移動前の前記相対的な距離から移動後の前記相対的な距離まで前記所定期間をかけて変化させる第1の補間と、
前記相対的な方向に関して、移動前の前記相対的な方向から移動後の前記相対的な方向まで前記所定期間をかけて変化させる第2の補間とをそれぞれ行わせ、
前記第1の補間に基づいて設定された前記相対的な距離と、前記第2の補間に基づいて設定された前記相対的な方向に基づいた、前記音量設定および前記バランス設定を行わせる、情報処理プログラム。
【請求項2】
前記第1の補間および前記第2の補間は、線形補間である、請求項1記載の情報処理プログラム。
【請求項3】
前記所定の基準は、仮想空間内において、単位時間における移動距離が所定の距離となることである、請求項1または2のいずれか記載の情報処理プログラム。
【請求項4】
前記コンピュータに更に、
操作入力に基づいて仮想カメラを制御させ、
前記仮想マイクの位置を、前記仮想カメラの注視点の位置に基づいて制御させる、
請求項1から3のいずれか記載の情報処理プログラム。
【請求項5】
前記コンピュータに更に、
前記操作入力に基づいて、プレイヤキャラクタオブジェクトを制御させ、
前記仮想カメラの注視点を、前記プレイヤキャラクタオブジェクトの位置に基づいて制御させ、
前記プレイヤキャラクタオブジェクトが前記仮想空間内において第1のオブジェクトが配置された位置にいる場合に、前記操作入力に基づいて、前記プレイヤキャラクタオブジェクトを前記仮想空間内に配置された第2のオブジェクトの位置に移動させる、
請求項4記載の情報処理プログラム。
【請求項6】
複数のスピーカへ音声出力可能な情報処理装置であって、
音声が関連付けられた仮想音源が配置された仮想空間内において、仮想マイクの位置を制御する制御手段と、
前記仮想マイクから前記仮想音源までの相対的な距離と相対的な方向に基づいて、出力する前記音声の音量設定と、前記複数のスピーカへの出力バランスのバランス設定を行う設定手段と、
設定された前記音量と前記出力バランスに基づいて前記複数のスピーカへ前記音声を出力する出力手段とを備え、
前記設定手段は、前記仮想マイクが、前記仮想空間内において所定の基準よりも大きく移動した場合に、当該仮想マイクの移動から所定期間の間は、
前記相対的な距離に関して、移動前の前記相対的な距離から移動後の前記相対的な距離まで前記所定期間をかけて変化させる第1の補間と、
前記相対的な方向に関して、移動前の前記相対的な方向から移動後の前記相対的な方向まで前記所定期間をかけて変化させる第2の補間とをそれぞれ行い、
前記第1の補間に基づいて設定された前記相対的な距離と、前記第2の補間に基づいて設定された前記相対的な方向に基づいた、前記音量設定および前記バランス設定を行う、情報処理装置。
【請求項7】
前記第1の補間および前記第2の補間は、線形補間である、請求項6記載の情報処理装置。
【請求項8】
前記所定の基準は、仮想空間内において単位時間における移動距離が所定の距離となることである、請求項6または7のいずれか記載の情報処理装置。
【請求項9】
前記情報処理装置は、
操作入力に基づいて、仮想カメラを制御させる仮想カメラ制御手段を更に備え、
前記制御手段は、前記仮想マイクの位置を、前記仮想カメラの注視点の位置に基づいて制御する、請求項6から8のいずれか記載の情報処理装置。
【請求項10】
前記情報処理装置は、
前記操作入力に基づいて、プレイヤキャラクタオブジェクトを制御させるプレイヤオブジェクト制御手段を更に備え、
前記仮想カメラ制御手段は、前記仮想カメラの注視点を、前記プレイヤキャラクタオブジェクトの位置に基づいて制御し、
前記プレイヤオブジェクト制御手段は、前記プレイヤキャラクタオブジェクトが前記仮想空間内において第1のオブジェクトが配置された位置にいる場合に、前記操作入力に基づいて、前記プレイヤキャラクタオブジェクトを前記仮想空間内に配置された第2のオブジェクトの位置に移動させる、請求項9記載の情報処理装置。
【請求項11】
複数のスピーカへ音声出力可能な情報処理システムであって、
音声が関連付けられた仮想音源が配置された仮想空間内において、仮想マイクの位置を制御する制御手段と、
前記仮想マイクから前記仮想音源までの相対的な距離と相対的な方向に基づいて、出力する前記音声の音量設定と、前記複数のスピーカへの出力バランスのバランス設定を行う設定手段と、
設定された前記音量と前記出力バランスに基づいて前記複数のスピーカへ前記音声を出力する出力手段とを備え、
前記設定手段は、前記仮想マイクが、前記仮想空間内において所定の基準よりも大きく移動した場合に、当該仮想マイクの移動から所定期間の間は、
前記相対的な距離に関して、移動前の前記相対的な距離から移動後の前記相対的な距離まで前記所定期間をかけて変化させる第1の補間と、
前記相対的な方向に関して、移動前の前記相対的な方向から移動後の前記相対的な方向まで前記所定期間をかけて変化させる第2の補間とをそれぞれ行い、
前記第1の補間に基づいて設定された前記相対的な距離と、前記第2の補間に基づいて設定された前記相対的な方向に基づいた、前記音量設定および前記バランス設定を行う、情報処理システム。
【請求項12】
前記第1の補間および前記第2の補間は、線形補間である、請求項11記載の情報処理システム。
【請求項13】
前記所定の基準は、仮想空間内において単位時間における移動距離が所定の距離となることである、請求項11または12のいずれか記載の情報処理システム。
【請求項14】
前記情報処理システムは、
操作入力に基づいて、仮想カメラを制御させる仮想カメラ制御手段を更に備え、
前記制御手段は、前記仮想マイクの位置を、前記仮想カメラの注視点の位置に基づいて制御する、請求項11から13のいずれか記載の情報処理システム。
【請求項15】
前記情報処理システムは、
前記操作入力に基づいて、プレイヤキャラクタオブジェクトを制御させるプレイヤオブジェクト制御手段を更に備え、
前記仮想カメラ制御手段は、前記仮想カメラの注視点を、前記プレイヤキャラクタオブジェクトの位置に基づいて制御し、
前記プレイヤオブジェクト制御手段は、前記プレイヤキャラクタオブジェクトが前記仮想空間内において第1のオブジェクトが配置された位置にいる場合に、前記操作入力に基づいて、前記プレイヤキャラクタオブジェクトを前記仮想空間内に配置された第2のオブジェクトの位置に移動させる、請求項14記載の情報処理システム。
【請求項16】
複数のスピーカへ音声出力可能な情報処理装置のコンピュータに実行させる情報処理方法であって、
前記コンピュータに、
音声が関連付けられた仮想音源が配置された仮想空間内において、仮想マイクの位置を制御させ、
前記仮想マイクから前記仮想音源までの相対的な距離と相対的な方向に基づいて、出力する前記音声の音量設定と、前記複数のスピーカへの出力バランスのバランス設定をさせ、
設定された前記音量と前記出力バランスに基づいて前記複数のスピーカへ前記音声を出力させ、
前記仮想マイクが、前記仮想空間内において所定の基準よりも大きく移動した場合、当該仮想マイクの移動から所定期間の間は、
前記相対的な距離に関して、移動前の前記相対的な距離から移動後の前記相対的な距離まで前記所定期間をかけて変化させる第1の補間と、
前記相対的な方向に関して、移動前の前記相対的な方向から移動後の前記相対的な方向まで前記所定期間をかけて変化させる第2の補間とをそれぞれ行わせ、
前記第1の補間に基づいて設定された前記相対的な距離と、前記第2の補間に基づいて設定された前記相対的な方向に基づいた、前記音量設定および前記バランス設定を行わせる、情報処理方法。
【請求項17】
前記第1の補間および前記第2の補間は、線形補間である、請求項16記載の情報処理方法。
【請求項18】
前記所定の基準は、仮想空間内において単位時間における移動距離が所定の距離となることである、請求項16または17のいずれか記載の情報処理方法。
【請求項19】
前記コンピュータに更に、
操作入力に基づいて、仮想カメラを制御させ、
前記仮想マイクの位置を、前記仮想カメラの注視点の位置に基づいて制御させる、
請求項16から18のいずれか記載の情報処理方法。
【請求項20】
前記コンピュータに更に、
前記操作入力に基づいて、プレイヤキャラクタオブジェクトを制御させ、
前記仮想カメラの注視点を、前記プレイヤキャラクタオブジェクトの位置に基づいて制御させ、
前記プレイヤキャラクタオブジェクトが前記仮想空間内において第1のオブジェクトが配置された位置にいる場合に、前記操作入力に基づいて、前記プレイヤキャラクタオブジェクトを前記仮想空間内に配置された第2のオブジェクトの位置に移動させる、
請求項19記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のスピーカへ音声出力する音声制御処理に関する。
【背景技術】
【0002】
従来から、仮想的な音源と仮想マイクとの距離に基づいて、出力音声の音量等を制御する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【文献】特許6147486号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、上記の技術においては、リスナ(仮想マイク)と音源との相対的な位置関係が急激に変化した場合、音声出力について急激な変化が発生し、ユーザに違和感を与える可能性があった。
【0005】
それ故に、本発明の目的は、リスナと音源との相対的な位置関係が急激に変化しても、音声出力について急激な変化を緩和できる情報処理プログラム、情報処理装置、情報処理システム、情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、例えば以下のような構成例が挙げられる。
【0007】
構成例の一例は、複数のスピーカへ音声出力可能な情報処理装置のコンピュータに実行させる情報処理プログラムである。情報処理プログラムは、コンピュータに、音声が関連付けられた仮想音源が配置された仮想空間内において、仮想マイクの位置を制御させ、仮想マイクから仮想音源までの相対的な距離と相対的な方向に基づいて、出力する音声の音量設定と、複数のスピーカへの出力バランスのバランス設定をさせ、設定された音量と出力バランスに基づいて複数のスピーカへ音声を出力させる。ここで、仮想マイクが、仮想空間内において所定の基準よりも大きく移動した場合に、当該仮想マイクの移動から所定期間の間は、相対的な距離に関して、移動前の相対的な距離から移動後の相対的な距離まで所定期間をかけて変化させる第1の補間と、相対的な方向に関して、移動前の相対的な方向から移動後の相対的な方向まで上記所定期間をかけて変化させる第2の補間とをそれぞれ行わせ、更に、第1の補間に基づいて設定された相対的な距離と、第2の補間に基づいて設定された相対的な方向に基づいた、上記音量設定およびバランス設定を行わせる。
【0008】
上記構成例によれば、リスナと音源との相対的な位置関係が急激に変化しても、音声出力について急激な変化を緩和できる。
【0009】
他の構成例として、第1の補間および前記第2の補間は、線形補間であってもよい。
【0010】
上記構成例によれば、簡易な処理で補間処理が可能となり、処理負荷を軽減することができる。
【0011】
他の構成例として、所定の基準は、仮想空間内において、単位時間における移動距離が所定の距離となることでもよい。
【0012】
上記構成例によれば、仮想空間内で、例えば仮想マイクが瞬間的に所定の距離以上移動した場合でも、音声出力について急激な変化を緩和できる。
【0013】
他の構成例として、コンピュータに更に、操作入力に基づいて仮想カメラを制御させ、仮想マイクの位置を、仮想カメラの注視点の位置に基づいて制御させてもよい。
【0014】
他の構成例として、コンピュータに更に、操作入力に基づいて、プレイヤキャラクタオブジェクトを制御させ、仮想カメラの注視点を、プレイヤキャラクタオブジェクトの位置に基づいて制御させてもよい。そして、プレイヤキャラクタオブジェクトが仮想空間内において第1のオブジェクトが配置された位置にいる場合に、操作入力に基づいて、プレイヤキャラクタオブジェクトを仮想空間内に配置された第2のオブジェクトの位置に移動させてもよい。
【0015】
上記構成例によれば、プレイヤオブジェクトと仮想音源との相対的な位置関係が大きく変化した場合でも、当該仮想音源に係る音声出力についての急激な変化を緩和できる。
【発明の効果】
【0016】
本実施形態によれば、リスナと音源との相対的な位置関係が急激に変化した場合でも、音声出力についての急激な変化を緩和できる。
【図面の簡単な説明】
【0017】
図1】本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図
図2】本体装置2の内部構成の一例を示すブロック図
図3】本実施形態に係る仮想空間を俯瞰した模式図
図4】本実施形態に係るゲーム画面の一例
図5】本実施形態に係るゲーム画面の一例
図6】本実施形態の制御の原理を説明するための図
図7】本実施形態の制御の原理を説明するための図
図8】本体装置2の記憶部84に記憶される各種データの一例を示すメモリマップ
図9】音源オブジェクトデータ305のデータ構成の一例
図10】本ゲーム処理の詳細を示すフローチャート
図11】補間処理の詳細を示すフローチャート
【発明を実施するための形態】
【0018】
以下、一実施形態について説明する。
【0019】
まず、本実施形態にかかる情報処理を実行するための情報処理システムについて説明する。本実施形態では、情報処理システムの一例として、ゲームシステムを例として説明する。このゲームシステムはどのようなものでもよいが、図1に、一例として本例で用いるゲームシステムの外観図を示す。図1で示すゲームシステム1は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。また、本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる。なお、図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12と、ステレオスピーカである左スピーカ88Lおよび右スピーカ88Rとを備える。左コントローラ3および右コントローラ4は、プレイヤが入力を行うための操作部を備える装置である。
【0020】
図2は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部84に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。なお、記憶部84は、例えば、フラッシュメモリやDRAM(Dynamic Random Access Memory)等の内部記憶媒体であってもよいし、図示しないスロットに装着される外部記憶媒体等を利用する構成でもよい。
【0021】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用する場合において、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0022】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0023】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0024】
本体装置2は、コーデック回路87、左スピーカ88Lおよび右スピーカ88Rを備える。コーデック回路87は、左スピーカ88L、右スピーカ88R、および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、左スピーカ88L、右スピーカ88R、および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0025】
なお、図示は省略するが、本体装置2で生成された画像や音声については、所定の出力端子を介して、外部モニタ/外部スピーカに出力することも可能である。
【0026】
[コントローラについて]
また、図示は省略するが、左コントローラ3、右コントローラ4は、それぞれ、本体装置2との間で通信を行う通信制御部を備えている。本体装置2に左コントローラ3および右コントローラ4を装着した状態では、上記左側端子17および右側端子21を介した有線通信が可能である。また、本体装置2と左コントローラ3および右コントローラ4とを別体として利用する場合は、上記端子を介さない無線通信で本体装置2と通信を行うことが可能である。通信制御部は、コントローラの各入力部から、入力に関する情報(具体的には、操作に関する情報)を取得する。そして、通信制御部は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0027】
[本実施形態における処理の概要]
次に、本実施形態における処理の動作概要を説明する。本実施形態で想定する処理は、主に音声制御に関する処理である。具体的には、仮想3次元空間(以下、単に仮想空間と呼ぶ)内で仮想マイクと仮想音源との位置関係が急激に大きく変化した場合に、当該変化前と変化後でユーザに与える可能性がある聴覚的な違和感を軽減する処理が実行される。
【0028】
以下で説明する本実施形態の処理の説明において想定する、上記仮想空間内での仮想マイクと仮想音源との位置関係の一例を図3に示す。図3は、仮想空間を俯瞰したものを示す模式図である。図3では、プレイヤキャラクタオブジェクト(以下、プレイヤオブジェクト)101、仮想音源(以下、単に音源と呼ぶ)102、第1ワープポイント103、第2ワープポイント104とが示されている。
【0029】
プレイヤオブジェクト101は、ユーザの操作対象となるオブジェクトである。プレイヤオブジェクト101は、ユーザの移動操作に基づいて、仮想空間内を移動することが可能である。また、当該プレイヤオブジェクト101は、仮想マイク(リスナ)としての役割も有している。すなわち、図示はしないが、当該プレイヤオブジェクト101の位置に合わせて仮想マイクも配置されている。
【0030】
また、本実施形態では、ゲーム画面は、3人称視点での3次元画像で表示される。そして、仮想カメラの注視点はプレイヤオブジェクト101の位置になるよう設定される。また、プレイヤオブジェクト101が移動した場合、プレイヤオブジェクト101に注視点が追従するように仮想カメラが制御される。
【0031】
音源102は、所定の音声データと関連付けられたオブジェクトである。音源102は、仮想空間内において当該音声データに基づく音声を出力する。
【0032】
第1ワープポイント103および第2ワープポイント104は、仮想空間内における移動手段の一種である。また、第1ワープポイント103および第2ワープポイント104の存在する位置は、仮想空間内において所定の距離以上離れた位置となっている。そして、プレイヤオブジェクト101が第1ワープポイント103の位置に移動し、当該第1ワープポイント103に乗ると、第2ワープポイント104の位置にほぼ瞬時に(例えば1フレーム分の時間で)移動できる。また、これとは逆に、第2ワープポイント104の位置から第1ワープポイント103の位置へ移動することも可能である。つまり、ワープポイントを使うことで、所定の単位時間において、プレイヤオブジェクト101の通常の移動速度では移動できないような所定の距離を移動することが可能となる。また、本実施形態では、当該所定の距離は、本実施形態で説明する処理を適用しなければ、音の聞こえ方が急激に変化してしまう程度に離れている距離であるとする。以下では、仮想空間内において、所定の単位時間における移動距離が、所定の距離以上となる移動のことを「瞬間移動」と呼ぶ。また、説明を簡略化するため、本実施形態では、移動距離が所定距離未満の瞬間移動は発生しないものとする。
【0033】
図4および図5に、当該瞬間移動に係る移動前と移動後のゲーム画面の一例を示す。図4では、プレイヤオブジェクト101から見て、右斜め前方に第1ワープポイント103が表示されている。更に、同じくプレイヤオブジェクト101から見て右斜め前方であり、第1ワープポイント103よりも更に遠方となる位置に、音源102が表示されている、更に、当該音源102の奥側に、第2ワープポイント104も表示されている。
【0034】
図4の状態で、プレイヤオブジェクト101が移動して第1ワープポイント103の上に乗ると、第2ワープポイント104の位置に瞬間移動し、図5のような画面が表示される。図5では、プレイヤオブジェクト101の近傍であって、左斜め後ろとなる方向に音源102が表示されている状態である。つまり、プレイヤオブジェクト101と音源102の位置関係については、プレイヤオブジェクト101から見た音源102の位置が、右斜め前の遠方となる位置から左斜め後ろのプレイヤオブジェクト101の近傍の位置に(ほぼ瞬時に)変化することになる。換言すれば、プレイヤオブジェクト101から音源102までの相対的な距離(以下、音源距離と呼ぶ)、および、プレイヤオブジェクト101から見た音源102の存在する相対的な方向(以下、音源方向と呼ぶ)が、上記瞬間移動の前後で急激に変化することになる。
【0035】
ここで、このような位置関係の急激な変化が、音源102から音声が出力されている最中に起こった場合、当該音源102からの音声の聞こえ方についても急激な変化が発生し、その結果、ユーザに聴覚的な違和感を与える可能性がある。例えば、音声についてのエフェクト処理として、距離に応じて音をぼかすような処理を行っている場合を想定する。この場合、上記のように音源102とプレイヤオブジェクト101との間の距離が急激に変化することで、ぼやけ気味に聞こえていた音声が急にクリアな音声で聞こえてくる等の、不自然なエフェクト処理が行われる可能性がある。その結果、ユーザに違和感を与える虞がある。
【0036】
そこで、本実施形態では、音声の出力中に上記のようなプレイヤオブジェクト101(仮想マイク)と音源102との相対的位置関係の急激な変化が起こった場合でも、以下のような制御処理を行うことで、ユーザに与える聴覚的な違和感を軽減している。
【0037】
次に、本実施形態における制御の原理について説明する。図6および図7は、本実施形態にかかる音声制御の原理を説明するための図である。図6は、瞬間移動前のプレイヤオブジェクト101および音源102との相対的な位置関係(上記図4の状態に対応)を示す模式図である。図6では、プレイヤオブジェクト101の右上(仮想空間座標系でいうと右斜め前方)に音源102が存在している。ここで、音源距離については、プレイヤオブジェクト101と音源102との中点を結ぶ直線の長さとして示されている。図6の例では、当該音源距離は10であるとする。また、音源方向については、本実施形態の説明では「角度」として把握する。具体的には、仮想空間座標系のz軸正方向を、0°である基準角度として、ここから時計回りに360°の範囲内の角度で、音源方向を示す。図6の例では、プレイヤオブジェクト101から見て30°の方向に音源102が存在しているものとする。
【0038】
次に、図7は、瞬間移動後のプレイヤオブジェクト101および音源102との相対的な位置関係を示す模式図である(上記図5の状態に対応)。図7は、プレイヤオブジェクト101の左下(仮想空間座標系でいうと左斜め後方)に音源102が存在している状態である。また、図7において、音源距離は2であり、音源方向は200°の方向であるとする。
【0039】
本実施形態では、瞬間移動が行われた場合、瞬間移動前と瞬間移動後における音源102の位置について補間を行う。具体的には、移動前の音源距離から移動後の音源距離まで、所定期間(以下、補間期間と呼ぶ)かけて徐々に変化していくような第1の補間が行われる。更に、移動前の音源方向から移動後の音源方向まで、補間期間かけて徐々に変化していくような第2の補間が行われる。この補間に係る音源距離および音源方向に基づくと、例えば図7の「補間位置」として示す位置が算出可能である。その結果、瞬間移動前に音源102があった相対的な位置から、補間位置を経由するように時計回りに旋回して現在の音源102の相対的な位置に移動するような軌道で音源102が移動したかのような音声表現が可能となる。つまり、瞬間移動が発生してから上記補間期間の間は、実際の音源102の存在位置ではなく、上記補間位置に音源102が存在するものとして、出力音声の音量の決定、および、右スピーカ88Rおよび左スピーカ88Lの出力バランスの設定を行う。なお、以下の説明では、1秒を30フレームで処理する場合を想定し、上記補間期間は10フレーム分の期間である場合を想定して説明する。
【0040】
より具体的な補間手法の一例を示すと、まず、音源距離については、移動前の音源距離10が、10フレームかけて徐々に音源距離2となるように第1の補間が行われる。図6および図7の例で言うと、瞬間移動前後の音源距離の差分(距離8)を10分割し、毎フレーム、音源距離が0.8ずつ縮まるような補間となる。
【0041】
同様に、音源方向(角度)についても、移動前の30°の方向から移動後の200°の方向に、10フレームかけて徐々に変化するような第2の補間が行われる。図7の例で言うと、瞬間移動前後の音源方向の差分(170°)を10分割し、音源方向(角度)が毎フレーム17°ずつ増えていくような補間となる。
【0042】
このような制御により、補間期間において、プレイヤオブジェクト101を中心とした時計回りの旋回軌道(図7の補間位置を通過するような軌道)で音源102が移動したような音声表現ができ、音声出力の急激な変化を緩和できる。これにより、プレイヤオブジェクト101(仮想マイク)の瞬間移動に伴ってユーザに与える聴覚的な違和感を軽減できる。
【0043】
なお、本実施形態では、瞬間移動前後の音源102の相対的な位置を単純に直線で結ぶような軌道とはせず、プレイヤオブジェクト101を中心として旋回するような軌道となるような補間を行っている。これは、次のような理由による。仮に、瞬間移動前後の位置を直線で結ぶような軌跡で補間すると(換言すれば、音源距離と音源方向とを考慮しない補間)、図7の場合では、音源102がプレイヤオブジェクト101の位置を通過するような軌道になる。その結果、プレイヤオブジェクト101と音源102との位置が一時的に重なる関係になり得る。このような重なりのタイミングでは、一時的に当該音源に係る音声の音量が非常に大きくなり、却ってユーザに与える違和感を増してしまうことになる。そのため、本実施形態では、音源距離と音源方向とを別々に補間する制御を行い、その結果、上記のように旋回するような軌道になるようにしている。
【0044】
なお、上記図7の例では右回り(時計回り)で補間位置が旋回するような軌道を示しているが、旋回方向は左回り(反時計回り)としてもよい。どちらの場合でも、違和感を軽減できる効果は得られるため、旋回方向についてはゲーム内容等に応じて適宜設定すればよい。
【0045】
[本実施形態のゲーム処理の詳細]
以下、本実施形態におけるゲーム処理についてより詳細に説明する。
【0046】
[使用データについて]
まず、本実施形態に係る処理にて用いられる各種データに関して説明する。図8は、本体装置2の記憶部84に記憶される各種データの一例を示すメモリマップである。本体装置2の記憶部84には、ゲームプログラム301、操作データ302、プレイヤオブジェクトデータ303、音源オブジェクトデータ305、算出用距離306、算出用方向307、補間フラグ308、直前位置データ309、補間用距離データ310、補間用方向データ311等が記憶されている。
【0047】
ゲームプログラム301は、本実施形態にかかるゲーム処理を実行するためのプログラムである。
【0048】
操作データ302は、上記左コントローラ3および右コントローラ4から得られるデータであり、プレイヤの操作内容を示すデータである。当該操作データ302には、各コントローラが有する各種ボタンの押下状態を示すデータやアナログスティックに対する操作内容を示すためのデータ等が含まれている。
【0049】
プレイヤオブジェクトデータ303は、上記プレイヤオブジェクト101に関するデータであり、その外観を示すデータや、当該プレイヤオブジェクトの仮想空間内における現在位置を示すデータ等が含まれている。
【0050】
音源オブジェクトデータ305は、上記音源102に関するデータであり、それぞれの音源102に対応する音源オブジェクトデータ305が複数記憶される。図8では、音源オブジェクトデータ#n(nは1から始まる整数とする)と示している。各音源オブジェクトデータ305には、図9で示されるようなデータが含まれる。図9は、各音源オブジェクトデータ305のデータ構成の一例である。音源オブジェクトデータ305には、音源オブジェクトID321、原音声データ322、音量パラメータ323、バランスパラメータ324等が含まれる。音源オブジェクトID321は、各音源オブジェクトを一意に識別するためのIDである。原音声データ322は、その音源オブジェクトが発する音声を定義したデータである。例えば、音源オブジェクトが「洗濯機」であれば、洗濯機が発する動作音等をサンプリングした音声データである。換言すれば、当該音源オブジェクトに関連づけられた音声とも言える。音量パラメータ323は、その音源オブジェクトが発する音声の音量を示すパラメータである。また、バランスパラメータ324は、その音源オブジェクトが発する音声について、左スピーカ88Lと右スピーカ88Rとの左右の出力バランスを示すパラメータである。その他、図示は省略するが、その音源オブジェクトが発する音声の音質を定義する音質パラメータや、その音源オブジェクトの外観を示すデータ等も音源オブジェクトデータ305に含まれている。
【0051】
図8に戻り、算出用距離306および算出用方向307は、出力する音声の音量および左スピーカ88Lと右スピーカ88Rとの左右の出力バランスを設定するために用いられるパラメータである。基本的には、プレイヤオブジェクト101から音源102の現在位置までの音源距離が上記算出用距離306となり、プレイヤオブジェクト101から音源102の現在位置までの音源方向を示す角度が上記算出用方向307となる。但し、上記補間期間中においては、上述したような補間による音源距離および音源方向が用いられることになる。
【0052】
補間フラグ308は、後述する処理において、現在が上記補間期間中であるか否かを判定するためのフラグである。補間期間中は補間フラグ308にオンが設定される。また、補間フラグ308の初期値はオフである。
【0053】
直前位置データ309は、仮想空間内におけるプレイヤオブジェクト101の1フレーム前の位置を示すデータである。
【0054】
補間用距離データ310は、上述した補間期間内の各フレームでの上記音源距離を示すデータである。本実施形態では、補間期間として10フレーム分の期間を例とするため、補間用距離データ310には、各フレームでの音源距離を示す合計10のデータが含まれることになる。
【0055】
補間用方向データ311は、上述した補間期間内の各フレームでの上記音源方向を示すデータである。上記補間用距離データ310と同様、本実施形態では各フレームでの音源方向を示す合計10のデータが含まれることになる。
【0056】
その他、図示は省略するが、仮想カメラを制御するためのパラメータ等、ゲーム処理に必要な各種のデータも記憶部84に記憶される。
【0057】
[プロセッサ81が実行する処理の詳細]
次に、図10図11のフローチャートを参照して、本実施形態にかかるゲーム処理の詳細を説明する。以下の説明では、主に(上述の瞬間移動発生時の)音源102に関する制御を中心に説明し、その他のゲーム処理についての詳細な説明は割愛する。
【0058】
図10は、本ゲーム処理の詳細を示すフローチャートである。まず、ステップS1で、プロセッサ81は、プレイヤオブジェクト101の動作制御を行う。具体的には、プロセッサ81は、まず、プレイヤオブジェクト101の仮想空間内における現在の位置座標を直前位置データ309として記憶部84に記憶する。次に、プロセッサ81は、操作データ302を取得する。更に、プロセッサ81は、操作データ302で示される操作内容を判定する。その内容がプレイヤオブジェクト101の移動指示であれば、プロセッサ81は、その指示内容に基づき、プレイヤオブジェクト101を仮想空間内で移動させる制御を行う。また、移動指示が行われていない場合でも、プロセッサ81は、プレイヤオブジェクト101が上記ワープポイントの上に位置しているか否かを判定する。そして、位置している場合は、プロセッサ81は、当該ワープポイントに対応づけられた仮想空間内の所定の位置にプレイヤオブジェクト101を「瞬間移動」させる処理も行う。そして、プロセッサ81は、プレイヤオブジェクト101の位置に仮想マイクを配置する。つまり、プレイヤオブジェクト101の移動制御に伴って仮想カメラの位置も制御されることになる。
【0059】
次に、ステップS2で、プロセッサ81は、上記瞬間移動が発生したか否かを判定する。本実施形態では、現在のフレームにおけるプレイヤオブジェクト101の位置と、直前位置データ309で示される1フレーム前の位置とが所定の閾値以上離れている場合、プロセッサ81は、瞬間移動が発生したと判定する。つまり、1フレームの間で所定の閾値を越える移動が発生したか否かを見ることで、瞬間移動が発生したか否かが判定される。なお、この「1フレーム前」は一例であり、数フレーム前の位置を基準として判定するようにしてもよい。当該判定の結果、瞬間移動が発生していない場合は(ステップS2でNO)、ステップS3に処理が進められる。一方、瞬間移動が発生した場合は(ステップS2でYES)、ステップS3で、プロセッサ81は、補間処理を実行する。この処理は、上述したような、瞬間移動前の位置から瞬間移動後の位置までに係る上記音源距離および音源方向をそれぞれ補間するための処理である。
【0060】
図11は、上記補間処理の詳細を示すフローチャートである。図11において、まず、ステップS21で、プロセッサ81は、補間フラグ308をオンに設定する。
【0061】
次に、ステップS22で、プロセッサ81は、上述した第1の補間を行う。具体的にはプロセッサ81は、直前位置データ309を参照し、1フレーム前のプレイヤオブジェクト101と音源102との音源距離(以下、直前距離)と、プレイヤオブジェクト101の現在位置と音源102との音源距離(以下、現在距離)とについて、補間期間のフレーム数分の補間値を算出する。本実施形態の例では、直前距離が徐々に現在距離に近づいていくように、10フレーム分の補間値が算出される。なお、補間値の算出手法はどのような手法でもよいが、例えば、上記図6および図7の例でいうと、直前距離(本例では10)と現在距離(本例では2)とを線形補間することで、補間値となる距離を算出してもよい。そして、プロセッサ81は、このように算出した10フレーム分の補間値を補間用距離データ310として記憶する。
【0062】
次に、ステップS23で、プロセッサ81は、上述した第2の補間を行う。具体的には、プロセッサ81は、直前位置データ309を参照し、1フレーム前のプレイヤオブジェクト101と音源102との音源方向(以下、直前方向)と、プレイヤオブジェクト101の現在位置と音源102との音源方向(以下、現在方向)とについて、補間期間のフレーム数分の補間値を算出する。本実施形態の例では、直前方向の(角度)が徐々に現在方向(の角度)に近づいていくように、10フレーム分の補間値が算出される。上記図6および図7の例でいうと、直前方向(本例では20°)と現在方向(本例では200°)とを線形補間することで、補間値となる角度を算出してもよい。そして、プロセッサ81は、このように算出した10フレーム分の補間値を補間用方向データ311として記憶する。
【0063】
次に、ステップS24で、プロセッサ81は、後述の処理で用いる変数nに1を設定する。なお、当該変数nは、補間期間中における各フレームの番号(何フレーム目か)を示すための変数である。本実施形態の例では、補間期間が10フレームである場合を例としているため、当該変数が取り得る値も1~10の範囲内の値となる。以上で、補間処理は終了する。
【0064】
図10に戻り、次に、ステップS4で、プロセッサ81は、補間フラグ308を参照し、現在が補間期間中であるか否かを判定する。当該判定の結果、補間期間中ではない場合は(ステップS4でNO)、ステップS5で、プロセッサ81は、プレイヤオブジェクト101の現在位置から音源102までの音源距離を算出し、算出用距離306として記憶部84に記憶する。
【0065】
更に、ステップS6で、プロセッサ81は、プレイヤオブジェクト101の現在位置から見た音源102の音源方向を算出し、算出用方向307として記憶部84に記憶する。
【0066】
次に、ステップS7で、プロセッサ81は、算出用距離306および算出用方向307に基づいて、実際に出力する音声であるゲーム音声に係る音量パラメータ323、および、バランスパラメータ324を設定する。
【0067】
次に、ステップS8で、プロセッサ81は、上記設定内容に基づいてゲーム音声を生成する。また、プロセッサ81は、現フレームにおける上記処理以外の各種ゲーム処理の結果を反映した画像であるゲーム画像も生成する。より具体的には、プロセッサ81は、プレイヤオブジェクト101の移動に基づいて、仮想カメラの位置や向き、画角を設定する(例えば仮想カメラがプレイヤオブジェクト101に追従するような制御を行う)。また、プロセッサ81は、仮想カメラの注視点がプレイヤオブジェクト101の位置となるよう設定する。更に、プロセッサ81は、上記処理以外の各種ゲーム処理の結果が反映された仮想空間を当該仮想カメラで撮像することで、ゲーム画像を生成する。そして、プロセッサ81は、当該生成したゲーム音声およびゲーム画像を出力する。その後、上記ステップS1に戻り、処理が繰り返される。
【0068】
次に、上記ステップS4の判定の結果、補間期間中である場合(ステップS4でYES)について説明する。この場合、まず、ステップS9で、プロセッサ81は、補間用距離データ310を参照し、補間期間中のnフレーム目に係る補間用距離の値を取得する。そして、プロセッサ81は、当該補間用距離の値を算出用距離306として記憶部84に記憶する。
【0069】
次に、ステップS10で、プロセッサ81は、補間用方向データ311を参照し、補間期間中のnフレーム目に係る補間用方向の値(角度)を取得する。そして、プロセッサ81は、当該補間用方向の値を算出用方向307として記憶部84に記憶する。
【0070】
次に、ステップS11で、プロセッサ81は、上記変数nに1を加算する。
【0071】
次に、ステップS12で、プロセッサ81は、上記変数nが10以上であるか否かを判定することで、補間期間に入ってから10フレームが経過したか否かを判定する。つまり、プロセッサ81は、補間期間が終了したか否かを判定する。当該判定の結果、10フレーム経過した場合は(ステップS12でYES)、ステップS13で、プロセッサ81は、補間フラグ308にオフを設定する。そして、プロセッサ81は、上記ステップS7に処理を進める。一方、まだ10フレーム経過していない場合は(ステップS12でNO)、プロセッサ81は、上記ステップS13の処理は行わずに、上記ステップS7に処理を進める。これにより、補間期間中は、上記図7で示したような補間位置に基づいた音声出力制御が行われることになる。
【0072】
以上で、本実施形態に係るゲーム処理の詳細説明は終了する。
【0073】
このように、本実施形態では、プレイヤオブジェクト101(仮想マイク)と音源102との位置関係について上記瞬間移動のような急激な変化が発生した場合、プレイヤオブジェクト101から音源102までの上記音源距離と、プレイヤオブジェクト101から見た音源102のある方向である上記音源方向とのそれぞれについて、変化発生前から変化発生後まで所定期間かけて変化するように補間している。そして、上記変化の発生後、当該所定期間中は、この補間内容に基づいて、出力する音声の音量およびスピーカの出力バランスの設定を行っている。これにより、音声出力中の音源102と仮想マイクとの位置関係が急激に変化した場合でも、音声出力の急激な変化を緩和して、ユーザに与える聴覚的な違和感を軽減することができる。
【0074】
[変形例]
【0075】
なお、上記実施形態では、補間値に関して、補間期間の一例である10フレーム分の値を算出し、各フレームにおける値として記憶部84に記憶する例を挙げた。他の実施形態では、補間期間中における1フレーム毎の変化量だけを算出して記憶しておき、上記ステップS9やS10の処理では、補間用距離や補間用方向を記憶部84から取得する代わりに、当該変化量に基づいて補間期間中の各フレームにおける算出用距離306および算出用方向307を算出するようにしてもよい。また、更に他の実施形態では、瞬間移動の発生時に上記ステップS3で示した補間処理を行うのではなく、補間期間中の毎フレームの処理において、上記補間用距離および補間用方向を算出するような処理としてもよい(例えば上記ステップS9やS10の処理で補間用距離および補間用方向を算出してもよい)。
【0076】
また、上記瞬間移動を行うトリガに関して、本実施形態では上述したワープポイントの上に乗るだけで瞬間移動する例で説明した。他の実施形態では、このような態様に限らず、瞬間移動を行うための別途の操作を要求してもよい。例えばワープポイントに乗った状態で、更に、所定の操作が行われたことで瞬間移動を行うようにしてもよい。また、その他、ワープポイントのような「乗る」ことができないオブジェクトを上記ワープポイント相当のものとして用いてもよい。この場合は、当該オブジェクトに近づいた状態で所定の操作が行われたことに応じて、上記のような瞬間移動を行ってもよい。
【0077】
また、上記実施形態では、プレイヤオブジェクト101が瞬間移動する場合を例に挙げた。この他、プレイヤオブジェクト101ではなく音源102のほうが、所定の単位時間内(例えば1フレーム)に所定距離以上移動した場合でも、上述した処理は適用可能である。この場合も、プレイヤオブジェクト101と音源102との相対的な位置関係が急激に変化する状態といえるからである。
【0078】
また、上記実施形態では、音声を出力するスピーカ(ステレオスピーカ)が2つである場合を例示した。これに限らず、3つ以上のスピーカ、例えばサラウンドスピーカ等に適用することも可能である。この場合も、上記補間期間中は、各スピーカの音量や出力バランスの設定を上記補間した音源距離および音源方向に基づいて行えばよい。
【0079】
また、上記実施形態では、ゲームシステムにおけるゲーム処理に適用する場合を例に挙げたが、ゲーム処理に限るものではなく、仮想3次元空間における音声制御を行う情報処理全般について、上記のような処理は適用可能である。例えば、ゲーム的な要素のないVRコンテンツ等にも適用可能である。
【0080】
また、上記実施形態においては、ゲーム処理にかかる一連の処理が単一の装置において実行される場合を説明したが、他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。更には、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。
【符号の説明】
【0081】
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
12 ディスプレイ
81 プロセッサ
84 記憶部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11