(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-06
(45)【発行日】2024-08-15
(54)【発明の名称】ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法
(51)【国際特許分類】
A63F 13/54 20140101AFI20240807BHJP
A63F 13/525 20140101ALI20240807BHJP
【FI】
A63F13/54
A63F13/525
(21)【出願番号】P 2022193114
(22)【出願日】2022-12-01
【審査請求日】2023-05-22
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】弁理士法人小笠原特許事務所
(74)【代理人】
【識別番号】100130269
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】佐藤 功一
【審査官】三村 拓哉
(56)【参考文献】
【文献】特開2004-195210(JP,A)
【文献】特開2009-246600(JP,A)
【文献】特開2012-045202(JP,A)
【文献】特開2007-236833(JP,A)
【文献】ゲームにおける室内空間を対象とした音響技術,日本音響学会誌,第77巻 第10号,一般社団法人日本音響学会,2021年10月01日,650-657
【文献】[CDEC2017]『NieR:Automata』の世界を彩る効果音はどのように実装されていたのか?デザインコンセプトとその仕組みについて,INSIDEウェブサイト[onlne],2017年09月04日,[2024年02月27日検索], <URL: https:/www.inside-games.jp/article/2017/09/04/109538.html>,特に本文、図面を参照
【文献】反射や残響をコントロールしてVRの音をリアルにする Steam Audio SDK のベータ版がリリース,SmartHomeウェブサイト[online],2017年02月24日,[2024年02月29日検索], <URL: https://home.kingsoft.jp/news/app/vrinside/88517.html>,特に本文、図面を参照
【文献】[ゼルダの伝説 BoW やりこみ100%]ハイラルの走り方 第133話(白髪のライネル,ウライト湖,ショダ・サーの祠,フロリア大滝,フロリダ湖の岩ロック,コログ692),YouTube[online][video],2018年12月25日,[2024年01月01日検索], <URL: https://www.youtube.com/watch?=1JuiGVvL9uk>,特に、動画時間[07:00]-[11:05]を参照
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00-13/98
(57)【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータに、
仮想空間内において、仮想マイクの位置を制御させ、
前記仮想空間内に配置され、第1の音声が関連付けられた仮想的な第1の音源について、
所定形状の第1の判定領域と前記仮想マイクとの距離に応じて減衰するように、前記第1の音声の音量を設定させ、
前記第1の判定領域の前面に沿って配置され、当該前面の横幅よりも幅が細く、一部が当該前面の上側に向かって突出した形状の第2の判定領域と、前記仮想マイクとの位置関係に基づいて、前記第1の音源に関する遮蔽の判定を行わせ、
前記遮蔽の判定の結果に基づいて、遮蔽されている場合においてさらに減衰するように前記第1の音声の前記音量を設定させ、
前記第1の音声を、設定された前記音量に基づいて出力させる、
ゲームプログラム。
【請求項2】
前記第1の判定領域と前記仮想マイクとの距離は、前記第1の判定領域上における、前記仮想マイクに最も近い点と、前記仮想マイクの位置との距離である、請求項1記載のゲームプログラム。
【請求項3】
前記コンピュータに、
前記仮想空間内において、前記仮想マイクの位置に基づいた基準点と、前記第2の判定領域の前記基準点に最も近い点との間に、障害オブジェクトが存在するか否かを判定させ、当該障害オブジェクトが存在すると判定された場合に前記第1の音源が遮蔽されていると判定させる、請求項2記載のゲームプログラム。
【請求項4】
前記コンピュータに、
前記仮想空間内において、前記仮想マイクの位
置と、前記第2の判定領域の前記
仮想マイクに最も近い点との間に、障害オブジェクトが存在するか否かを判定させ、当該障害オブジェクトが存在すると判定された場合に、
さらに前記仮想マイクと、前記第2の判定領域の前記仮想マイクに最も近い点との間に、所定範囲内で前記障害オブジェクトを迂回する経路があるか否かを判定させ、
当該経路があると判定された場合は、第1の度合いで前記第1の音源が遮蔽されていると判定させ、
当該経路が無いと判定された場合は、前記第1の度合いよりも高い第2の度合いで前記第1の音源が遮蔽されていると判定させ、
判定された遮蔽の度合いに基づいて減衰するよう前記音量を設定させる、請求項2記載のゲームプログラム。
【請求項5】
前記コンピュータに、
前記迂回する経路が無いと判定された場合にさらに、
前記
仮想マイクの位置に基づいた基準点の位置と、
前記第2の判定領域の前記基準点に最も近い点
の位置とが、前記仮想空間内に予め設定された屋内を示す位置であるか否かを判定させ、いずれか一方のみが屋内を示す位置である場合に、前記第2の度合いよりも高い第3の度合いで前記第1の音源が遮蔽されていると判定させる、請求項4記載のゲームプログラム。
【請求項6】
前記第1の判定領域は、複数の面を有する立体形状であって、
前記第2の判定領域は、前記第1の判定領域のいずれかの面に沿った平面形状である、請求項3記載のゲームプログラム。
【請求項7】
前記仮想空間内には、前記第1の音源に対応するオブジェクトが配置され、
前記第1の判定領域は、前記第1の音源に対応するオブジェクトに沿って配置され、
前記第2の判定領域は、前記第1の判定領域よりも細い幅で、かつ前記仮想空間内においてオブジェクトが配置されていない位置に向かって突出した形状である、
請求項3記載のゲームプログラム。
【請求項8】
前記仮想空間内には、前記第1の音源に対応する滝オブジェクトが配置され、
前記第1の判定領域は、前記滝オブジェクトに沿って配置され、
前記第2の判定領域は、前記第1の判定領域の、前記滝オブジェクトの水面側の面に沿って配置され、滝の幅方向に関して前記第1の判定領域よりも細い幅で、かつ前記滝オブジェクトの上側に向かって突出した平面形状である、請求項3記載のゲームプログラム。
【請求項9】
前記コンピュータにさらに、
前記第1の判定領域の形状に基づいて、前記第2の判定領域を生成させる、請求項6から8のいずれか記載のゲームプログラム。
【請求項10】
前記コンピュータにさらに、
前記滝オブジェクトの形状に基づいて、前記第1の判定領域を生成させ、
当該第1の判定領域の形状に基づいて、前記第2の判定領域を生成させる、
請求項8記載のゲームプログラム。
【請求項11】
前記コンピュータにさらに、
前記仮想空間内の仮想カメラの位置を制御させ、
前記仮想マイクの位置を、前記仮想空間内の仮想カメラの位置に設定させる、
請求項1記載のゲームプログラム。
【請求項12】
前記コンピュータにさらに、
前記第1の判定領域と、前記仮想マイクとの距離に基づいて、前記第1の音声に第1のフィルタを適用する強さを設定させ、
前記第2の判定領域と、前記仮想マイクとの位置関係に基づいた、前記第1の音源に関する前記遮蔽の判定の結果に基づいて、遮蔽されている場合において、さらに前記第1のフィルタが強く適用されるよう前記強さを設定させ、または、第2のフィルタを適用する強さを設定させ、
前記第1の音声にフィルタを適用して、前記音量に基づいて出力させる、
請求項1記載のゲームプログラム。
【請求項13】
前記コンピュータにさらに、
前記第1の判定領域と、前記仮想マイクとの位置関係に基づいて、前記第1の音声の定位を算出させ、
設定された定位に基づいて前記第1の音声を出力させる、
請求項1記載のゲームプログラム。
【請求項14】
プロセッサを備えたゲームシステムであって、
前記プロセッサは、
仮想空間内において、仮想マイクの位置を制御し、
前記仮想空間内に配置され、第1の音声が関連付けられた仮想的な第1の音源について、
所定形状の第1の判定領域と前記仮想マイクとの距離に応じて減衰するように、前記第1の音声の音量を設定し、
前記第1の判定領域の前面に沿って配置され、当該前面の横幅よりも幅が細く、一部が当該前面の上側に向かって突出した形状の第2の判定領域と、前記仮想マイクとの位置関係に基づいて、前記第1の音源に関する遮蔽の判定を行い、
前記遮蔽の判定の結果に基づいて、遮蔽されている場合においてさらに減衰するように前記第1の音声の前記音量を設定し、
前記第1の音声を、設定された前記音量に基づいて出力する、
ゲームシステム。
【請求項15】
前記第1の判定領域と前記仮想マイクとの距離は、前記第1の判定領域上における、前記仮想マイクに最も近い点と、前記仮想マイクの位置との距離である、請求項14記載のゲームシステム。
【請求項16】
前記
プロセッサは、
前記仮想空間内において、前記仮想マイクの位置に基づいた基準点と、前記第2の判定領域の前記基準点に最も近い点との間に、障害オブジェクトが存在するか否かを判定し、当該障害オブジェクトが存在すると判定した場合に前記第1の音源が遮蔽されていると判定する、請求項15記載のゲームシステム。
【請求項17】
前記
プロセッサは、
前記仮想空間内において、前記仮想マイクの位
置と、前記第2の判定領域の前記
仮想マイクに最も近い点との間に、障害オブジェクトが存在するか否かを判定し、当該障害オブジェクトが存在すると判定した場合に、
さらに前記仮想マイクと、前記第2の判定領域の前記仮想マイクに最も近い点との間に、所定範囲内で前記障害オブジェクトを迂回する経路があるか否かを判定し、
当該経路があると判定した場合は、第1の度合いで前記第1の音源が遮蔽されていると判定し、
当該経路が無いと判定した場合は、前記第1の度合いよりも高い第2の度合いで前記第1の音源が遮蔽されていると判定し、
判定された遮蔽の度合いに基づいて減衰するよう前記音量を設定する、請求項15記載のゲームシステム。
【請求項18】
前記
プロセッサは、
前記迂回する経路が無いと判定した場合にさらに、
前記
仮想マイクの位置に基づいた基準点の位置と、
前記第2の判定領域の前記基準点に最も近い点
の位置とが、前記仮想空間内に予め設定された屋内を示す位置であるか否かを判定し、いずれか一方のみが屋内を示す位置である場合に、前記第2の度合いよりも高い第3の度合いで前記第1の音源が遮蔽されていると判定する、請求項17記載のゲームシステム。
【請求項19】
前記第1の判定領域は、複数の面を有する立体形状であって、
前記第2の判定領域は、前記第1の判定領域のいずれかの面に沿った平面形状である、請求項16記載のゲームシステム。
【請求項20】
前記仮想空間内には、前記第1の音源に対応するオブジェクトが配置され、
前記第1の判定領域は、前記第1の音源に対応するオブジェクトに沿って配置され、
前記第2の判定領域は、前記第1の判定領域よりも細い幅で、かつ前記仮想空間内においてオブジェクトが配置されていない位置に向かって突出した形状である、
請求項16記載のゲームシステム。
【請求項21】
前記仮想空間内には、前記第1の音源に対応する滝オブジェクトが配置され、
前記第1の判定領域は、前記滝オブジェクトに沿って配置され、
前記第2の判定領域は、前記第1の判定領域の、前記滝オブジェクトの水面側の面に沿って配置され、滝の幅方向に関して前記第1の判定領域よりも細い幅で、かつ前記滝オブジェクトの上側に向かって突出した平面形状である、請求項16記載のゲームシステム。
【請求項22】
前記
プロセッサはさらに、
前記第1の判定領域の形状に基づいて、前記第2の判定領域を生成する、請求項19から21のいずれか記載のゲームシステム。
【請求項23】
前記
プロセッサはさらに、
前記滝オブジェクトの形状に基づいて、前記第1の判定領域を生成し、
当該第1の判定領域の形状に基づいて、前記第2の判定領域を生成する、
請求項21記載のゲームシステム。
【請求項24】
前記
プロセッサはさらに、
前記仮想空間内の仮想カメラの位置を制御
し、
前記仮想マイクの位置を、前記仮想空間内の仮想カメラの位置に設定
する、
請求項14記載のゲーム
システム。
【請求項25】
前記
プロセッサはさらに、
前記第1の判定領域と、前記仮想マイクとの距離に基づいて、前記第1の音声に第1のフィルタを適用する強さを設定し、
前記第2の判定領域と、前記仮想マイクとの位置関係に基づいた、前記第1の音源に関する前記遮蔽の判定の結果に基づいて、遮蔽されている場合において、さらに前記第1のフィルタが強く適用されるよう前記強さを設定し、または、第2のフィルタを適用する強さを設定し、
前記第1の音声にフィルタを適用して、前記音量に基づいて出力さす、
請求項14記載のゲームシステム。
【請求項26】
前記
プロセッサはさらに、
前記第1の判定領域と、前記仮想マイクとの位置関係に基づいて、前記第1の音声の定位を算出し、
設定された定位に基づいて前記第1の音声を出力する、
請求項14記載のゲームシステム。
【請求項27】
プロセッサを備えた情報処理装置であって、
前記プロセッサは、
仮想空間内において、仮想マイクの位置を制御し、
前記仮想空間内に配置され、第1の音声が関連付けられた仮想的な第1の音源について、
所定形状の第1の判定領域と前記仮想マイクとの距離に応じて減衰するように、前記第1の音声の音量を設定し、
前記第1の判定領域の前面に沿って配置され、当該前面の横幅よりも幅が細く、一部が当該前面の上側に向かって突出した形状の第2の判定領域と、前記仮想マイクとの位置関係に基づいて、前記第1の音源に関する遮蔽の判定を行い、
前記遮蔽の判定の結果に基づいて、遮蔽されている場合においてさらに減衰するように前記第1の音声の前記音量を設定し、
前記第1の音声を、設定された前記音量に基づいて出力する、
ゲーム装置。
【請求項28】
前記第1の判定領域と前記仮想マイクとの距離は、前記第1の判定領域上における、前記仮想マイクに最も近い点と、前記仮想マイクの位置との距離である、請求項27記載のゲーム装置。
【請求項29】
前記
プロセッサは、
前記仮想空間内において、前記仮想マイクの位置に基づいた基準点と、前記第2の判定領域の前記基準点に最も近い点との間に、障害オブジェクトが存在するか否かを判定させ、当該障害オブジェクトが存在すると判定された場合に前記第1の音源が遮蔽されていると判定する、請求項28記載のゲーム装置。
【請求項30】
前記
プロセッサは、
前記仮想空間内において、前記仮想マイクの位
置と、前記第2の判定領域の前記
仮想マイクに最も近い点との間に、障害オブジェクトが存在するか否かを判定し、当該障害オブジェクトが存在すると判定した場合に、
さらに前記仮想マイクと、前記第2の判定領域の前記仮想マイクに最も近い点との間に、所定範囲内で前記障害オブジェクトを迂回する経路があるか否かを判定し、
当該経路があると判定された場合は、第1の度合いで前記第1の音源が遮蔽されていると判定し、
当該経路が無いと判定された場合は、前記第1の度合いよりも高い第2の度合いで前記第1の音源が遮蔽されていると判定し、
判定された遮蔽の度合いに基づいて減衰するよう前記音量を設定する、請求項28記載のゲーム装置。
【請求項31】
前記
プロセッサは、
前記迂回する経路が無いと判定した場合にさらに、
前記
仮想マイクの位置に基づいた基準点の位置と、
前記第2の判定領域の前記基準点に最も近い点
の位置とが、前記仮想空間内に予め設定された屋内を示す位置であるか否かを判定し、いずれか一方のみが屋内を示す位置である場合に、前記第2の度合いよりも高い第3の度合いで前記第1の音源が遮蔽されていると判定する、請求項30記載のゲーム装置。
【請求項32】
情報処理装置を制御するコンピュータが実行する音声処理方法であって、
前記コンピュータに、
仮想空間内において、仮想マイクの位置を制御させ、
前記仮想空間内に配置され、第1の音声が関連付けられた仮想的な第1の音源について、
所定形状の第1の判定領域と前記仮想マイクとの距離に応じて減衰するように、前記第1の音声の音量を設定させ、
前記第1の判定領域の前面に沿って配置され、当該前面の横幅よりも幅が細く、一部が当該前面の上側に向かって突出した形状の第2の判定領域と、前記仮想マイクとの位置関係に基づいて、前記第1の音源に関する遮蔽の判定を行わせ、
前記遮蔽の判定の結果に基づいて、遮蔽されている場合においてさらに減衰するように前記第1の音声の前記音量を設定させ、
前記第1の音声を、設定された前記音量に基づいて出力させる、
ゲーム処理方法。
【請求項33】
前記第1の判定領域と前記仮想マイクとの距離は、前記第1の判定領域上における、前記仮想マイクに最も近い点と、前記仮想マイクの位置との距離である、請求項32記載のゲーム処理方法。
【請求項34】
前記コンピュータに、
前記仮想空間内において、前記仮想マイクの位置に基づいた基準点と、前記第2の判定領域の前記基準点に最も近い点との間に、障害オブジェクトが存在するか否かを判定させ、当該障害オブジェクトが存在すると判定された場合に前記第1の音源が遮蔽されていると判定させる、請求項33記載のゲーム処理方法。
【請求項35】
前記コンピュータに、
前記仮想空間内において、前記仮想マイクの位
置と、前記第2の判定領域の前記
仮想マイクに最も近い点との間に、障害オブジェクトが存在するか否かを判定させ、当該障害オブジェクトが存在すると判定された場合に、
さらに前記仮想マイクと、前記第2の判定領域の前記仮想マイクに最も近い点との間に、所定範囲内で前記障害オブジェクトを迂回する経路があるか否かを判定させ、
当該経路があると判定された場合は、第1の度合いで前記第1の音源が遮蔽されていると判定させ、
当該経路が無いと判定された場合は、前記第1の度合いよりも高い第2の度合いで前記第1の音源が遮蔽されていると判定させ、
判定された遮蔽の度合いに基づいて減衰するよう前記音量を設定させる、請求項33記載のゲーム処理方法。
【請求項36】
前記コンピュータに、
前記迂回する経路が無いと判定された場合にさらに、
前記
仮想マイクの位置に基づいた基準点の位置と、
前記第2の判定領域の前記基準点に最も近い点
の位置とが、前記仮想空間内に予め設定された屋内を示す位置であるか否かを判定させ、いずれか一方のみが屋内を示す位置である場合に、前記第2の度合いよりも高い第3の度合いで前記第1の音源が遮蔽されていると判定させる、請求項35記載のゲーム処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、スピーカへ音声出力する音声制御処理に関する。
【背景技術】
【0002】
従来から、仮想空間内に配置されている大きな音源、例えば、川オブジェクトから発せられる音を表現するゲームが知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
仮想3次元空間内に配置される音源についての音声表現を行う際に、仮想マイクから見て音源が遮蔽されている関係にある場合、その音源からの音声について、こもったような音の聞こえ方となるように、音量やフィルタを適用することが考えられる。
【0005】
ここで、上記のような川のオブジェクトについて、仮想マイクから見て遮蔽されているか否かの遮蔽判定を行う場合、仮想マイクから一番近い川の一点に基づいて遮蔽判定を行うことが考えられる。その結果、当該一番近い点が仮想マイクから見ると遮蔽されている場合、川の音が遮音されているとして、こもったような音声表現を行うことになる。しかしながら、例えば画面上において、川の大半は遮蔽されずに映っているにも関わらず、仮想マイクに一番近い点が遮蔽されている関係となることによって、川全体としてこもったような音声表現が行われる場合があり得、そのような場合には画面上での見た目に対する音声の違和感や不自然さをプレイヤに与える可能性がある。
【0006】
それ故に、本開示の目的は、音源の遮蔽判定を行う際に、不自然な遮蔽判定が行われないようにできるゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理方法を提供することである。
【課題を解決するための手段】
【0007】
上記目的を達成するために、例えば以下のような構成例が挙げられる。
【0008】
(構成1)
構成1は、情報処理装置のコンピュータに、以下の処理を実行させる音声処理プログラムである。まず、仮想空間内において、仮想マイクの位置を制御させる。次に、仮想空間内に配置され、第1の音声が関連付けられた仮想的な第1の音源について、所定形状の第1の判定領域と仮想マイクとの距離に応じて減衰するように、第1の音声の音量を設定させると共に、第1の判定領域と異なる形状であり、かつ一部が第1の判定領域の外にあるか、第1の判定領域より細い幅であるかの少なくともいずれかを満たす形状の第2の判定領域と、仮想マイクとの位置関係に基づいて、第1の音源に関する遮蔽の判定を行わせ、当該遮蔽の判定の結果に基づいて、遮蔽されている場合においてさらに減衰するように第1の音声の音量を設定させる。そして、第1の音声を、設定された当該音量に基づいて出力させる。
【0009】
上記構成例によれば、ある音源に関する遮蔽の判定を、第1の判定領域よりも細い幅の第2の判定領域を用いて行う。そのため、音源の端が局部的に遮蔽されることで、音源全体が遮蔽されていると判定されるような、不自然な判定結果となることを抑制できる。また、上記遮蔽の判定を、その領域の一部が第1の判定領域外にある第2の判定領域に基づいて判定している。そのため、このような第1の判定領域外となる領域の存在によって、音源が遮蔽されていると判定されにくくなる。これにより、様々な方向から音源を見た場合に、遮蔽されていないという判定結果を得られやすくなる。
【0010】
(構成2)
構成2は、上記構成1において、第1の判定領域と仮想マイクとの距離は、第1の判定領域上における、仮想マイクに最も近い点と、仮想マイクの位置との距離であってもよい。
【0011】
上記構成例によれば、第1の判定領域を用いて遮蔽の判定を行う場合に比べて、より適切な遮蔽判定が可能となる。例えば、第1の判定領域における一番近い点を基準にして遮蔽判定を行うと、遮蔽されていない部分があるにも関わらず、全体として遮蔽されていると判定される場合があるが、当該構成例によれば、このように判定されてしまうことを抑制できる。
できる。
【0012】
(構成3)
構成3は、上記構成2において、コンピュータに、仮想空間内において、仮想マイクの位置に基づいた基準点と、第2の判定領域の基準点に最も近い点との間に、障害オブジェクトが存在するか否かを判定させてもよい。そして、当該障害オブジェクトが存在すると判定された場合に第1の音源が遮蔽されていると判定させてもよい。
【0013】
上記構成例によれば、遮蔽の判定については、仮想マイクの位置に基づく基準点を用いる。これにより、状況に応じた、より柔軟で適切な遮蔽判定が可能となる。
【0014】
(構成4)
構成4は、構成3または構成4において、コンピュータに、仮想空間内において、仮想マイクの位置に基づいた基準点と、第2の判定領域の基準点に最も近い点との間に、障害オブジェクトが存在するか否かを判定させ、当該障害オブジェクトが存在すると判定された場合に、さらに仮想マイクと、第2の判定領域の前記仮想マイクに最も近い点との間に、所定範囲内で障害オブジェクトを迂回する経路があるか否かを判定させてもよい。その結果、当該経路があると判定された場合は、第1の度合いで第1の音源が遮蔽されていると判定させ、当該経路が無いと判定された場合は、上記第1の度合いよりも高い第2の度合いで第1の音源が遮蔽されていると判定させてもよい。そして、判定された遮蔽の度合いに基づいて減衰するよう音量を設定させてもよい。
【0015】
上記構成例によれば、音の回折を考慮した音声表現ができ、より違和感のない音声表現ができる。
【0016】
(構成5)
構成5は、上記構成4において、コンピュータに、迂回する経路が無いと判定された場合にさらに、基準点の位置と、基準点に最も近い点とが、仮想空間内に予め設定された屋内を示す位置であるか否かを判定させ、いずれか一方のみが屋内を示す位置である場合に、第2の度合いよりも高い第3の度合いで第1の音源が遮蔽されていると判定させてもよい。
【0017】
上記構成例によれば、仮想マイクと音源との関係が、一方が屋内で一方が屋外であるような関係である場合を考慮した音声表現ができる。
【0018】
(構成6)
構成6は、上記構成3から構成5のいずれかにおいて、第1の判定領域は、複数の面を有する立体形状であって、第2の判定領域は、第1の判定領域のいずれかの面に沿った平面形状であってもよい。
【0019】
上記構成例によれば、ある音源において音声が発せられていると考えられるような面を遮蔽判定に利用できる。これにより、画面に表示される画像の見た目に対して違和感の少ない音声表現を行うことができる。
【0020】
(構成7)
構成7は、上記構成3から構成5のいずれかにおいて、仮想空間内には、第1の音源に対応するオブジェクトが配置され、第1の判定領域は、第1の音源に対応するオブジェクトに沿って配置され、第2の判定領域は、第1の判定領域よりも細い幅で、かつ仮想空間内においてオブジェクトが配置されていない位置に向かって突出した形状であってもよい。
【0021】
上記構成例によれば、音源の端が局部的に遮蔽されることで、音源全体が遮蔽されていると判定されることを抑制できる。また、突出した形状部分を利用することで、様々な方向から音源を見た場合に、遮蔽されていないという判定結果を得られやすくなる。これにより、画面に表示される画像の見た目に対して、不自然に音がこもって聞こえるような状況となることを抑制し、違和感の少ない音声表現を行うことができる。
【0022】
(構成8)
構成8は、上記構成3から構成5のいずれかにおいて、仮想空間内には、第1の音源に対応する滝オブジェクトが配置され、第1の判定領域は、滝オブジェクトに沿って配置され、第2の判定領域は、第1の判定領域の、滝オブジェクトの水面側の面に沿って配置され、滝の幅方向に関して第1の判定領域よりも細い幅で、かつ滝オブジェクトの上側に向かって突出した平面形状であってもよい。
【0023】
上記構成例によれば、滝の音について、より適切な音声表現が可能となる。
【0024】
(構成9)
構成9は、上記構成6から構成8のいずれかにおいて、コンピュータにさらに、第1の判定領域の形状に基づいて、第2の判定領域を生成させてもよい。
【0025】
上記構成例によれば、例えばゲームカートリッジ等において、第2の判定領域についての情報を予め記憶する必要が無いため、記憶容量を節約できる。また、様々な形状の第1の判定領域に応じて、第2の判定領域を柔軟に設定できる。
【0026】
(構成10)
構成10は、上記構成8において、コンピュータにさらに、滝オブジェクトの形状に基づいて、第1の判定領域を生成させ、当該第1の判定領域の形状に基づいて、第2の判定領域を生成させてもよい。
【0027】
(構成11)
構成11は、上記構成1から構成10のいずれかにおいて、コンピュータにさらに、仮想空間内の仮想カメラの位置を制御させ、仮想マイクの位置を、仮想空間内の仮想カメラの位置に設定させてもよい。
【0028】
上記構成例によれば、仮想カメラと仮想マイクとが同じ位置となる。そのため、例えば1人称視点の画面において、見た目に対する音声の聞こえ方について違和感を生じさせない処理が可能となる。
【0029】
(構成12)
構成12は、上記構成1から構成10のいずれかにおいて、コンピュータにさらに、第1の判定領域と、仮想マイクとの距離に基づいて、第1の音声に第1のフィルタを適用する強さを設定させ、第2の判定領域と、仮想マイクとの位置関係に基づいた、第1の音源に関する遮蔽の判定の結果に基づいて、遮蔽されている場合において、さらに第1のフィルタが強く適用されるよう強さを設定させ、または、第2のフィルタを適用する強さを設定させ、第1の音声にフィルタを適用して、音量に基づいて出力させてもよい。
【0030】
上記構成例によれば、仮想マイクと音源との距離・遮蔽度合いを反映して、所定の音声効果を付与する各種のフィルタを適用できる。これにより、さらに違和感の少ない音声表現が可能となる。
【0031】
(構成13)
構成13は、上記構成1から構成10のいずれかにおいて、コンピュータにさらに、第1の判定領域と、仮想マイクとの位置関係に基づいて、第1の音声の定位を算出させ、設定された定位に基づいて第1の音声を出力させてもよい。
【0032】
上記構成例によれば、第1の判定領域と仮想マイクとの位置関係に基づき、音が聞こえてくる位置を設定する。そのため、画面に表示される見た目と、音が聞こえてくる位置との関係について、違和感のない音声表現ができる。
【発明の効果】
【0033】
本開示によれば、巨大な音源の一部分が仮想マイクから見て遮蔽されているような場合でも、音源全体が遮蔽されているものとして扱われることを抑制でき、より自然な音声表現が可能となる。
【図面の簡単な説明】
【0034】
【
図1】ゲーム装置2の内部構成の一例を示すブロック図
【
図7】滝音源オブジェクトについて説明するための図
【
図8】滝音源オブジェクトについて説明するための図
【
図10】記憶部84に記憶される各種データの一例を示すメモリマップ
【
図11】本実施形態に係るゲーム処理の詳細を示すフローチャート
【
図12】本実施形態に係るゲーム処理の詳細を示すフローチャート
【発明を実施するための形態】
【0035】
以下、一実施形態について説明する。
【0036】
[情報処理装置のハードウェア構成]
まず、本実施形態にかかる情報処理を実行するための情報処理装置について説明する。当該情報処理装置は、例えばスマートフォン、据置型または携帯型のゲーム装置、タブレット端末、携帯電話、パーソナルコンピュータ、ウェアラブル端末等である。また、本実施形態にかかる情報処理は、上記のようなゲーム装置等と、所定のサーバとから構成されるゲームシステムにも適用可能である。本実施形態では、据置型ゲーム装置(以下、単にゲーム装置と呼ぶ)を情報処理装置の一例として説明する。また、ゲーム処理を情報処理の一例として説明する。
【0037】
図1は、本実施形態に係るゲーム装置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)等の内部記憶媒体であってもよいし、図示しないスロットに装着される外部記憶媒体等を利用する構成でもよい。
【0038】
また、ゲーム装置2は、ゲーム装置2がコントローラ4と有線または無線通信を行うためのコントローラ通信部86を備える。なお、図示は省略するが、コントローラ4には、十字キーやABXYボタン等の各種のボタン、および、アナログスティック等が設けられている。
【0039】
また、ゲーム装置2には、画像音声出力部87を介して表示部5(例えば液晶モニタ等)およびスピーカ6が接続される。プロセッサ81は、例えば、上記の情報処理の実行によって生成した画像を、画像音声出力部87を介して表示部5に出力する。また、プロセッサ81は、生成した音声信号を、画像音声出力部87を介してスピーカ6に出力する。
【0040】
[本実施形態における処理の概要]
次に、本実施形態にかかる音声処理の概要を説明する。まず、本実施形態では、仮想3次元空間(以下、仮想ゲーム空間と呼ぶ)内で、プレイヤキャラクタオブジェクト(以下、プレイヤキャラクタと呼ぶ)を操作するゲームを想定する。そして、音声に関する処理も、仮想3次元空間であることを前提に処理される。すなわち、仮想3次元空間に配置されている音源オブジェクト(以下、単に音源と呼ぶ)と仮想マイクとの位置関係に基づき、音量やフィルタ量が設定される。本実施形態では距離による減衰と、遮蔽度合いを考慮した設定処理が行われる。具体的には、まず、仮想マイクの近くにある音源よりも、遠くに離れている音源からの音の方が音量が小さく聞こえるように、音量やフィルタ量が設定される。すなわち、音量が距離減衰するような処理が行われる。本実施形態では、当該処理のことを「距離減衰処理」と呼ぶ。さらに、仮想マイクからみて音源が遮蔽されているような場合、例えば、壁を隔てた隣の部屋から聞こえるような音は、その音がこもって聞こえるよう音量やフィルタ量が設定される。このような音がこもるシミュレーションのことを、本実施形態では「遮蔽効果処理」と呼ぶ。また、その他、例えば洞窟内等の閉鎖された空間内において、音声に反射や残響(リバーブ)の効果を加える処理等も行われる。このように、3次元空間に配置された仮想的な音源から発せられる音声について、上記のような処理を施した上で、最終的にスピーカ等に出力する音声が生成されることになる。
【0041】
本実施形態で説明する処理は、このような音声処理に関するものである。より具体的には、対象となる音源が、「滝」等の、プレイヤキャラクタまたは仮想マイクに対して巨大なスケールを有する1つの音源である場合を想定した音声処理であって、特に、このような巨大音源についての遮蔽効果処理に関するものである。
【0042】
上記遮蔽効果処理に関して、本実施形態では、「遮蔽されているか否か」の判定を、いわゆる「レイキャスト」の手法で行う。具体的には、まず、仮想マイクから、判定対象とする音源において最も仮想マイクに近い点(以下、最近傍点と呼ぶ)に向けて透明な直線(レイ)が飛ばされる。そして、当該直線が所定の障害オブジェクト(以下、障害物と呼ぶ)に遮られた場合、「遮蔽されている」と判定される。換言すれば、当該直線上に何らかの障害物が存在するか否かが判定され、存在している場合は、遮蔽されていると判定される。
【0043】
ここで、
図2のゲーム画面例で示すような状況を想定する。
図2では、3人称視点のゲーム画面が表示されている。また、プレイヤキャラクタの前方方向に滝オブジェクトが表示されている。当該滝オブジェクトは、プレイヤキャラクタと比べると巨大なオブジェクトであるとする。
図2では、プレイヤキャラクタは、滝を見下ろすことができるような位置にいる。また、
図2の状況では、滝オブジェクトの前面(以下、滝面と呼ぶ)について、画面の手前側となる滝面の一部については壁オブジェクトに隠れて見えないが、滝面の大部分は視認できるような状況である。また、当該滝オブジェクトの周辺は、開放空間(屋外)であるとする。
【0044】
ここで、滝オブジェクトと、これに関連付けられている音源オブジェクト(以下、滝音源オブジェクト)とについて補足説明する。本実施形態では、滝オブジェクトと同じ位置に、不可視の滝音源オブジェクトが配置されている。当該滝音源オブジェクトは、滝オブジェクト全体を内包するような立方体または直方体のオブジェクトであり、本実施形態では、滝オブジェクトと同じ大きさの、縦長形状の直方体のオブジェクトであるとする。
【0045】
上記のような滝音源オブジェクトの存在を前提として、上述した遮蔽の判定を行うことを考える。具体的には、遮蔽判定のために、仮想マイクから滝音源オブジェクトの最近傍点に向けて直線を飛ばすことを想定する。また、本実施形態では、仮想マイクの位置は仮想カメラと同じ位置にあるとする。そのため、実質的には、上記最近傍点が仮想カメラから「見えている」か否かを判定することと同義となる。この場合、
図3および
図4に示すように、仮想マイクから見た滝音源オブジェクトの最近傍点は、壁オブジェクトに隠されているような位置関係になる。
【0046】
上記のような位置関係においては、上記仮想マイクから飛ばした直線も当該壁オブジェクトに遮られることになり、滝音源オブジェクトは遮蔽されている状態であると判定されることになる。その一方で、
図2で示されるように、滝面の大部分は視認できる状況である。つまり、滝音源オブジェクトについて、画面上では遮蔽されていない部分があるにもかかわらず、滝音源オブジェクト全体が遮蔽されていると判定されてしまうことになる。その結果、滝音源オブジェクトの音(以下、滝音と呼ぶ)は、こもったような音として表現されることになる。しかしながら、このような滝面の大部分は視認できる状況であるにも関わらず滝の音がこもったように聞こえてくると、表示されている画面の見た目に対する違和感や、視覚と聴覚の不一致感をプレイヤに与える虞がある。つまり、仮想マイクから見たときに、滝のような巨大な音源オブジェクトの一部に過ぎない最近傍点が障害物に遮蔽されているからといって、その音源オブジェクトの全体が遮蔽されていると扱うと、逆にプレイヤに違和感を与えるような状況がある。なお、滝音源オブジェクトおよび壁の形状は、
図2や
図3のように接する形状に限られず、後述の
図7のように、大きめの形状の滝音源オブジェクトが設定されて一部が壁に埋没するように設定される場合もあり得る。もしくは、壁の一部が滝音源オブジェクトに埋没するように設定されるような場合もあり得る。その場合も
図2の状況において最近傍点が壁に遮蔽されることになる。
【0047】
そこで、本実施形態では、以下のような音声制御処理を行う。まず、上記滝音源オブジェクトについて、遮蔽判定に用いる「遮蔽判定用領域」というものを生成する。
図5に、滝音源オブジェクトと、当該遮蔽判定用領域との一例を示す。
図5では、縦長の直方体形状である滝音源オブジェクトと、縦長の平面形状である遮蔽判定用領域とが示されている。当該遮蔽判定用領域は、滝音源オブジェクトの前面、すなわち、滝の水面側の面と同じ位置に配置されている。なお、当該配置位置については、滝音源オブジェクトの前面に沿うようにして配置されていれば、多少前後にずれた位置に配置されていてもよい。また、遮蔽判定用領域の大きさについて見ると、基本的には、滝音源オブジェクトの前面の形状をベースとした形状であるが、横幅が音源オブジェクトの幅より細い幅となっている。すなわち、遮蔽判定用領域は、音源オブジェクトの前面の横幅を少し縮めた形状となっている。さらに、遮蔽判定用領域の下辺についても、音源オブジェクトの下辺を上方向に少し縮めた形状となっている。換言すれば、遮蔽判定用領域の縦幅の下の部分だけ、音源オブジェクトの縦幅より少し細くした形状となっている。一方、遮蔽判定用領域の上辺側は、音源オブジェクトの上辺の位置からさらに上側に向かって少し突出した形状となっている。換言すれば、遮蔽判定用領域の一部分が滝音源オブジェクトの前面の外にあるような形状となっている。総じて言えば、遮蔽判定用領域の形状は、音源オブジェクトの前面の形状を一回り小さくしつつ、上方向のみ、音源オブジェクトの上辺からさらに上に少し突出した形状となっている。そして、本実施形態では、このような形状を有する遮蔽判定用領域を用いて、上記の遮蔽の判定を行うようにしている。具体的には、仮想マイクから、当該遮蔽判定用領域における最近傍点に延びる直線が途中で遮られるか否かを見ることで、遮蔽されているか否かを判定する。
【0048】
図6に、上記
図2の状況における上記遮蔽判定用領域の位置関係を示す。
図6では、遮蔽判定用領域を点線で示している。上記のように、遮蔽判定用領域の横幅は音源オブジェクトよりも細くなっている。そのため、プレイヤキャラクタの頭部位置にある仮想マイクから遮蔽判定用領域の最近傍点に延びる直線は、途中で壁オブジェクト等に遮られることなく、当該最近傍点に到達できる。その結果、滝音源オブジェクトは「遮蔽されていない」と判定されることになる。
【0049】
このように、本実施形態では、遮蔽判定用領域の幅を音源オブジェクトの幅より細い幅とする。これにより、仮想マイクの位置が、滝音源オブジェクトの左右または下側付近の近傍位置にある場合において、滝音源オブジェクトが「遮蔽されていない」と判定されやすくなる。上記の例では、不可視の滝音源オブジェクトと可視の滝オブジェクトの大きさを同じにする場合を例示しているが、滝音源オブジェクトの大きさを、滝オブジェクト全体が覆えるように、滝オブジェクトよりも一回り大きく設定することもあり得る。また、一般的に、滝の左右と下には何らかの地形がある場合が多いと考えられる。これらのことから、滝音源オブジェクトの配置について、例えば
図7に示すような配置関係となることがあり得る。
図7は、滝音源オブジェクトの左右端と下端部分が地形オブジェクトにめり込んでいるような配置関係であることを示している。このような場合に、仮想マイクから滝音源オブジェクトの最近傍点を用いて遮蔽判定を行うと、このような地形に埋め込まれた位置が上記最近傍点となることがある。その結果、必然的に最近傍点が障害物に遮蔽されている状態となり、滝面の大部分が見えるような状況であるにもかかわらず「遮蔽されている」と判定されてしまうことになる。この点、本実施形態のような遮蔽判定用領域を用いることで、「遮蔽されていない」と判定されやすくなる。これにより、上記
図2のような状況下でも、滝音が不自然にこもったような音になることを抑制できる。
【0050】
次に、上記遮蔽判定用領域の上端部分を少し突出させた形状としている理由、効果について説明する。まず、
図8に示すような状況を想定する。
図8は、滝オブジェクトとこれに隣接する地形オブジェクトや川オブジェクトを側面から見た場合の断面を示す模式図である。
図8では、プレイヤキャラクタおよび仮想マイクが、滝の上流側の所定の位置、例えば、滝面にある程度近く、かつ、川のすぐ側となるような地表部分上の位置にいる場合を想定している。いわば、滝の裏側方向であって、滝の上端にある程度近い位置に仮想マイクがあるような状況である。このような位置関係の場合、仮想マイクに対する滝音源オブジェクトの最近傍点を用いて遮蔽判定を行うと、
図8で示すように、仮想マイクから延びる直線が川オブジェクト等によって遮られてしまう状況が発生し得る。その結果、滝音源オブジェクトは遮蔽されていると判定され、滝音がこもった音で表現されてしまう。この場合、ゲーム画面上では滝面こそ直接には見えてはないものの、滝の上端に近い位置にいるような状況であるため、滝の音がこもったように聞こえることは、却ってプレイヤに違和感を与えかねない。そこで、本実施形態では、遮蔽判定用領域の形状を、上記のように滝音源オブジェクトの上方向に少し延ばしたような形状としている。これにより、
図9に示すように、仮想マイクから遮蔽判定用領域における最近傍点への直線が遮られにくくなる。その結果、「遮蔽されていない」と判定され、滝音がこもったような音で表現されることを抑制できる。換言すれば、上記のように上方向に少し突出させた形状は、「遮蔽されている」と判定されにくくするための形状であるともいえる。
【0051】
上述したような遮蔽判定用領域の最近傍点を用いて遮蔽判定を行うことで、ゲーム画像として表示される内容に対して違和感が少ない、より自然な滝音の表現が可能となる。
【0052】
[本実施形態のゲーム処理の詳細]
次に、
図10~
図12を参照して、本実施形態におけるゲーム処理についてより詳細に説明する。
【0053】
[使用データについて]
まず、本ゲーム処理で利用される各種データに関して説明する。
図10は、ゲーム装置2の記憶部84に記憶される各種データの一例を示すメモリマップである。記憶部84には、プログラム記憶領域301およびデータ記憶領域303が含まれている。プログラム記憶領域301には、ゲーム処理プログラム302が記憶される。また、データ記憶領域303には、プレイヤキャラクタデータ304、仮想カメラデータ305、仮想マイクデータ306、滝オブジェクトデータ307、滝音源オブジェクトデータ308、操作データ312等が記憶される。
【0054】
ゲーム処理プログラム302は、上述したような音声制御を含むゲーム処理を実行するためのプログラムである。
【0055】
プレイヤキャラクタデータ304は、上記プレイヤキャラクタに関するデータである。プレイヤキャラクタデータ304には、仮想空間内におけるプレイヤキャラクタの位置や姿勢を示す情報や、その外観を示す情報等が含まれる。
【0056】
仮想カメラデータ305は、仮想カメラの現在の位置・姿勢・画角等を指定するデータである。プレイヤキャラクタの位置やプレイヤの操作内容に基づき、仮想カメラデータ305の内容が設定される。
【0057】
仮想マイクデータ306は、仮想マイクの位置を示すためのデータであり、当該位置を示す情報が少なくとも含まれる。
【0058】
滝オブジェクトデータ307は、上記の滝オブジェクトについてのデータである。滝オブジェクトデータ307には、仮想空間内で配置される位置や、滝オブジェクトの大きさ、形状、外観等を示す情報が含まれている。
【0059】
滝音源オブジェクトデータ308は、上記滝音源オブジェクトに関するデータである。滝音源オブジェクトデータ308は、音声ソース309、配置位置情報310、形状情報311を少なくとも含む。音声ソース309は、再生される音声の元となる音声データである。配置位置情報310は、仮想ゲーム空間内における滝音源オブジェクトの配置位置を示すデータである。形状情報311は、滝音源オブジェクトの形状、大きさを示す情報である。直接的に形状を示す情報であってもよいし、滝オブジェクトの形状に対する相対位置や大きさの倍率を示す情報であってもよい。
【0060】
操作データ312は、コントローラ4に対して行われた操作の内容を示すデータである。本実施形態では、十字キー等のボタンに対する押下状態や、コントローラ4に設けられているアナログスティックに対する入力状態を示すデータが含まれる。当該操作データ312の内容は、コントローラ4からの信号に基づき、所定の周期で更新される。
【0061】
その他、記憶部84には、上記以外の各種オブジェクト、滝音源以外の各種音源オブジェクト等、ゲーム処理で用いられる各種のデータが記憶される。
【0062】
[プロセッサ81が実行する処理の詳細]
次に、本実施形態にかかるゲーム処理の詳細について説明する。なお、ここでは主に、上記のような滝音源オブジェクトに係る音声の制御に関する処理について説明し、その他のゲーム処理については、詳細な説明は割愛する。
【0063】
図11および
図12は、本実施形態に係るゲーム処理の詳細を示すフローチャートである。本実施形態では、1以上のプロセッサが1以上のメモリに記憶された上記プログラムを読み込んで実行することにより、当該フローチャートが実現される。当該図で示すステップS1~S16の処理ループは、1フレーム毎に繰り返し実行されるものとする。また、当該フローチャートは、処理過程の単なる一例にすぎない。そのため、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判定ステップで利用される閾値も、単なる一例であり、必要に応じて他の値を採用してもよい。
【0064】
図11において、まず、ステップS1で、プロセッサ81は、滝オブジェクトおよび滝音源オブジェクトを仮想空間内に配置する。ここでは、双方とも同じ位置に配置されるものとする。
【0065】
次に、ステップS2で、プロセッサ81は、上記遮蔽判定用領域を、滝音源オブジェクトの前面側の形状に基づいて生成する。例えば、プロセッサ81は、滝音源オブジェクトの前面側の形状について、横方向と下方向のスケールを0.75倍にし、上方向のスケールを1.1倍にした面形状の領域を遮蔽判定用領域として生成する。そして、プロセッサ81は、当該遮蔽判定用領域を、滝音源オブジェクトの前面に沿うようにして配置する。
【0066】
なお、上記ステップS1およびS2の処理が行われるタイミングはどのようなタイミングでもよい。例えば、プレイヤキャラクタの移動に伴い、仮想カメラの撮像範囲に滝オブジェクトが含まれるようになるタイミング、またはその少し前のタイミングで、上記滝オブジェクトおよび滝音源オブジェクトのデータが記憶部84に読み込まれてもよい。そして、このタイミングで、当該データに基づいて生成された滝オブジェクトおよび滝音源オブジェクトが仮想空間内に配置されてもよい。さらに、滝音源オブジェクトの配置に併せて、上記遮蔽判定用領域が生成されればよい。
【0067】
次に、ステップS3で、プロセッサ81は、操作データ312に基づき、プレイヤキャラクタの移動制御を行う。さらに、プロセッサ81は、移動後のプレイヤキャラクタの位置に基づき、仮想カメラおよび仮想マイクの位置を決定する。例えば、仮想カメラの位置として、プレイヤキャラクタの後方に所定距離離れた位置が決定される。また、仮想マイクの位置として、仮想カメラと同じ位置が決定される。そして、プロセッサ81は、当該決定した位置に仮想カメラおよび仮想マイクを移動させる。
【0068】
次に、ステップS4で、プロセッサ81は、滝音についての距離減衰値を算出する。具体的には、プロセッサ81は、仮想マイクと上記滝音源オブジェクトにおける最近傍点との直線距離に基づき、滝音の音量の減衰値を算出する。後述の処理で、当該距離減衰値に基づいて滝音の最終的な出力音量が決められることになる。本実施形態では、当該距離が大きい、すなわち、遠くに離れているほど、音量が小さくなるように距離減衰値が算出される。
【0069】
次に、遮蔽効果処理が行われる。この処理では、「透過損失値」というものが求められる。透過損失値とは、発音された音声に対してどのくらい遮蔽されているのかという遮蔽度合いを示す値である。本実施形態では、透過損失値は”0.0”から”1.0”の範囲内の値であるとする。また、”1.0”のほうが遮蔽度合いが高いことを示す。最終的には、上記距離減衰値に基づき減衰された音量を、さらに当該透過損失値に基づいて減衰させるような処理が行われる。具体的には、以下のような処理が行われる。
【0070】
まず、ステップS5で、プロセッサ81は、音源から発せられた音声が直線的に仮想マイクに届くような状況か否かを判定するための遮蔽判定を行う。具体的には、プロセッサ81は、仮想マイクの位置から遮蔽判定用領域に延びる直線が、何らかの障害物によって遮られるか否かを判定する。換言すれば、プロセッサ81は、当該直線上に何らかの障害物が存在するか否かを判定する。当該判定の結果、遮られていない場合は(ステップS5でNO)、ステップS6で、プロセッサ81は、透過損失値を”0.0”と決定する。その後、後述するステップS12に処理が進められる。
【0071】
一方、上記直線が遮られている場合は(ステップS5でYES)、ステップS7で、プロセッサ81は、回折経路を探索し、回折経路の有無を判定する。つまり、直線的に音声が仮想マイクに届かない場合でも、障害物を迂回するようにして音声が仮想マイクに届くような経路があるか否かを判定する。そのため、まず、プロセッサ81は、音源から発せられた音声が仮想マイクに到達するために、仮想3次元空間内を回り込んでくる回折経路を探索する。なお、当該回折経路の探索手法はどのようなものでもよい。たとえば、探索の結果所定距離以内で到達できる経路が存在するか否かが判定される。当該探索の結果、回折経路が有った場合は、回折経路があると判定される(ステップS7でYES)。この場合は、ステップS8で、プロセッサ81は、透過損失値を”0.2”と決定する。その後、後述するステップS12に処理が進められる。
【0072】
一方、回折経路が無かった場合は(ステップS7でNO)、ステップS9で、プロセッサ81は、仮想マイクと、遮蔽判定用領域との位置関係が「閉塞状態」であるか否かを判定する。本実施形態において、閉塞状態とは、仮想マイクと、滝音源オブジェクトおよび遮蔽判定用領域とのいずれか一方が「屋内」、他方が「屋外」にいるような状態のことである。例えば、プレイヤキャラクタおよび仮想マイクが、滝の近くにある小屋の中にいる状態であって、当該小屋の中が、扉や窓が閉じられている閉鎖空間であるような場合、屋内にいる状況である。そして、小屋の外にある滝は屋外にあることになる。このように、いずれか一方のみが屋内である状態は、閉塞状態となる。なお、本例の場合は「滝」という巨大な音源オブジェクトを例にしているため、「滝」が屋内にある状態は考えにくいが、仮に、音源が屋内にあり、プレイヤキャラクタが屋外にいるというような関係の場合も閉塞状態になり得る。つまり、仮想マイクと音源が、同じ屋内同士、または屋外同士となるような関係であれば閉塞状態とならず、一方が屋内で他方が屋外、あるいは、一方が屋内A、他方はこれとは異なる屋内B、のように違う屋内にいるような場合に、閉塞状態となり得る。
【0073】
上記のような閉塞状態の判定手法については、どのような手法でもよいが、本実施形態では、例えば次のような判定を行う。まず、予め、仮想空間を所定の大きさの立方体で区切っておき、各立方体に、その空間部分が「屋内」か「屋外」かを示す屋内外情報をもたせておく。次に、プレイヤキャラクタの現在位置と、当該屋内外情報に基づき、プレイヤキャラクタの位置が屋内に該当するか否かを判定する。次に、上記遮蔽判定用領域の最近傍点の位置と、上記屋内外情報に基づき、当該最近傍点の位置が屋内に該当するか否かを判定する。そして、プレイヤキャラクタの位置、および、上記最近傍点の位置に対応する屋内外情報が異なる場合は、閉塞状態であると判定する。
【0074】
上記ステップS9の判定の結果、上記閉塞状態の場合は(ステップS9でYES)、ステップS11で、プロセッサ81は、透過損失値を”1.0”と決定する。一方、閉塞状態ではない場合は(ステップS9でNO)、ステップS10で、プロセッサ81は、透過損失値を”0.5”と決定する。
【0075】
次に、
図12のステップS12で、プロセッサ81は、上記距離減衰値、および、透過損失値に基づき、滝音の音量およびフィルタ量を決定する。具体的には、まず、プロセッサ81は、上記距離減衰値に基づき、滝音の暫定音量および暫定フィルタ量を設定する。
例えば、距離減衰値が高いほど音量が小さくなり、フィルタ量が大きくなるような所定のグラフを用いて、暫定音量および暫定フィルタ量を決めてもよい。これにより、仮想マイクと滝音源オブジェクトとの距離に応じて音量を減衰させることになる。さらに、プロセッサ81は、当該暫定音量および暫定フィルタ量を、上記透過損失値に基づいてさらに減衰させることで、最終的な滝音の音量およびフィルタ量を設定する。例えば、透過損失値が高いほど、音量が小さく、フィルタ量が大きくなるようなグラフを用いて、最終的な滝音の音量およびフィルタ量を決めてもよい。これにより、上記のような遮蔽判定用領域に基づいた滝音源オブジェクトの遮蔽状況を、滝音の音量およびフィルタ量に反映させることになる。
【0076】
次に、ステップS13で、プロセッサ81は、上記設定された音量およびフィルタ量に基づき、滝音を生成する。この際、プロセッサ81は、仮想マイクと滝音源オブジェクトとの位置関係に基づき、滝音の定位も算出する。そして、プロセッサ81は、この定位が反映されるように滝音を生成する。
【0077】
次に、ステップS14で、プロセッサ81は、滝音源オブジェクト以外の音源に係る音声を適宜生成する。そして、プロセッサ81は、上記滝音と、その他の音声とを合成することで、最終的な出力音声を生成する。
【0078】
次に、ステップS15で、プロセッサ81は、上記出力音声をスピーカ6等に出力する。また、詳細説明は省略するが、仮想カメラに基づき生成されたゲーム画像の出力処理も、当該音声出力に併せて行われる。
【0079】
次に、ステップS16で、プロセッサ81は、ゲーム処理終了のための条件が満たされたか否かを判定する。例えば、プレイヤによるゲーム終了指示操作があったか否か等である。当該条件が満たされていない場合は(ステップS16でNO)、プロセッサ81は、上記ステップS1に戻り、処理を繰り返す。一方、当該条件が満たされた場合は(ステップS16でYES)、プロセッサ81は、当該ゲーム処理を終了する。
【0080】
以上で、本実施形態に係るゲーム処理の詳細説明を終了する、
【0081】
このように、本実施形態では、音源オブジェクト自体における最近傍点を上記のような遮蔽判定に用いる際に、当該音源オブジェクトの遮蔽状況の判定を、上記のような形状を有する遮蔽判定用領域を用いて行っている。そして、当該遮蔽判定用領域は、滝音源オブジェクトの前面よりも細い幅となっている。これにより、滝音源オブジェクトの端の部分が局部的に遮蔽されるような状況下において、滝音源オブジェクト全体が遮蔽されている、という不自然な判定結果となることを抑制することができる。
【0082】
また、上記遮蔽判定用領域の上側は滝音源オブジェクトの前面外に突出するような形状である。これにより、滝の上流側に仮想マイクがある場合等で、「遮蔽されていない」と判定されやすくなる。また、上記の例では上方向に突出した形状を例示しているが、上方に限らず、他の方向について、滝音源オブジェクトの前面外に突出するような形状であってもよい。この場合も、例えば当該突出方向側の近傍に仮想マイクがある場合に、上記と同様に「遮蔽されていない」と判定されやすくなる。
【0083】
[変形例]
なお、上記実施形態では、仮想マイクの位置の例として、仮想カメラと同じ位置にある場合を例示した。そして、遮蔽判定について、この仮想マイクの位置と上記遮蔽判定用領域における最近傍点とを結ぶ直線を用いて判定する例を挙げた。換言すれば、仮想カメラと遮蔽判定用領域における最近傍点とを結ぶ直線を用いていた。この点、他の実施形態では、遮蔽判定を行う際に、仮想カメラおよび仮想マイクとは異なる位置を「基準点」として判定してもよい。つまり、遮蔽判定に用いる位置と、上記距離減衰値等の算出に用いる位置とが異なっていてもよい。いわば、遮蔽判定専用の仮想マイクを別途用意するようなものである。例えば、プレイヤキャラクタの頭部の中点となる位置を、仮想カメラの高さと同じ位置まで変化させた位置を上記基準点としてもよい。そして、この基準点から、上記遮蔽判定用領域における最近傍点に延びる直線上に障害物が存在するか否かを判定してもよい。
【0084】
また、上記実施形態では、遮蔽判定用領域を滝音源オブジェクトの前面に沿って配置する例を挙げた。他の実施形態では、前面に限らず、滝音源オブジェクトの他の面に沿って遮蔽判定用領域を配置してもよい。この場合も、遮蔽判定用領域の形状は、当該他の面の形状に基づいて決定されればよい。
【0085】
また、上記実施形態では、滝音源オブジェクトについては、その形状等を定義したデータを予め用意している例を挙げた。この点、他の実施形態では、例えば、滝オブジェクトのデータが読み込まれたタイミングで、当該滝オブジェクトの形状に基づいて上記のような滝音源オブジェクトが生成され、滝オブジェクトと同じ位置に配置されるように構成してもよい。そして、当該生成された滝音源オブジェクトの形状に基づいて、上記遮蔽判定用領域が生成されてもよい。また、さらに他の実施形態では、音源オブジェクトとは別に、音源オブジェクトと同じ形状の判定用領域が生成されてもよい。そして、上記遮蔽判定以外の、例えば上記距離減衰値や定位の算出については、当該判定用領域を用いるようにしてもよい。
【0086】
また、上記実施形態では、上記遮蔽判定用領域を遮蔽判定に用いる音源の例として「滝」を挙げた。これに限らず、音源オブジェクトにおける上記最近傍点を遮蔽判定に用いると、不自然に全体が遮蔽されていると判定されてしまうような巨大な音源オブジェクト全般について、本実施形態に係る処理は有効である。例えば、大きな「川」等についても適用可能である。
【0087】
また、上記実施形態では、遮蔽判定用領域の形状について、横幅、および、縦幅の下辺部分が滝音源オブジェクトの前面より細く、かつ、上辺部分は外に突出しているという形状を例示した。この点、他の実施形態では、ゲーム内容やマップデザイン等に応じて、いずれか一方だけを備える形状としてもよい。例えば、遮蔽判定用領域の形状として、横幅と下辺部分の幅は細いが、上辺部分は突出していないような形状でもよい。あるいは、上辺部分は突出しているが、横幅や縦幅の下辺部分については滝音源オブジェクトの全面と同じ幅である形状でもよい。
【0088】
また、上記実施形態では、透過損失値としては、”0.0”、”0.2”、”0.5”、”1.0”の4つの値のいずれかが設定されるような処理を例示した。この点につき、プレイヤキャラクタの移動に伴い、透過損失値が遷移するような状況下では、これらの値の中間値を補間して上記音量およびフィルタ量を算出してもよい。例えば、”0.2”となるような状況から、プレイヤキャラクタが移動することによって、透過損失値が”0.5”となるような状況に変化する場合を想定する。この場合、透過損失値が”0.2”の場合の音量・フィルタ量から、透過損失値が”0.5の場合の音量・フィルタ量に即時に変化させずに、例えば0.7秒程度の時間をかけて、透過損失値を補間しながら音量・フィルタ量を徐々に変化させてもよい。これにより、滝音の聞こえ方が急激に変化することでプレイヤに違和感を与えることを抑制できる。
【0089】
また、上記実施形態においては、ゲーム処理にかかる一連の処理を単一のゲーム装置2で実行される場合を説明した。他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。さらには、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。また、いわゆるクラウドゲーミングの構成としてもよい。例えば、ゲーム装置2は、プレイヤの操作を示す操作データを所定のサーバに送り、当該サーバにおいて各種ゲーム処理が実行され、その実行結果が動画・音声としてゲーム装置2にストリーミング配信されるような構成としてもよい。
【符号の説明】
【0090】
2 ゲーム装置
4 コントローラ
5 表示部
6 スピーカ
81 プロセッサ
84 記憶部
87 画像音声出力部