(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-12
(54)【発明の名称】仮想メタバースにおける空間化オーディオチャット
(51)【国際特許分類】
H04N 21/233 20110101AFI20240705BHJP
H04S 5/00 20060101ALI20240705BHJP
H04N 21/24 20110101ALI20240705BHJP
H04L 67/131 20220101ALI20240705BHJP
H04L 51/04 20220101ALN20240705BHJP
【FI】
H04N21/233
H04S5/00
H04N21/24
H04L67/131
H04L51/04
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024501886
(86)(22)【出願日】2022-07-15
(85)【翻訳文提出日】2024-02-29
(86)【国際出願番号】 US2022037236
(87)【国際公開番号】W WO2023288034
(87)【国際公開日】2023-01-19
(32)【優先日】2021-07-15
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520317055
【氏名又は名称】ロブロックス・コーポレーション
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ヒテッシュ・チュハブラ
(72)【発明者】
【氏名】フィリップ・クラヴェル
(72)【発明者】
【氏名】プラメン・ドラゴーゾフ
(72)【発明者】
【氏名】ジョセフ・ローレンス・ゴルボック
(72)【発明者】
【氏名】パーマー・ノエル・ホーゲン
(72)【発明者】
【氏名】サンディープ・カヌムリ
(72)【発明者】
【氏名】パヴェル・パブロフ
(72)【発明者】
【氏名】スラヴォミール・ストルメツキ
(72)【発明者】
【氏名】ジョシュア・レイ・テイラー
(72)【発明者】
【氏名】フレデリック・ウィリアム・ウミンガー
【テーマコード(参考)】
5C164
5D162
【Fターム(参考)】
5C164FA22
5C164GA07
5C164MA07S
5C164MB43S
5C164PA46
5C164SB04P
5C164SB41P
5C164SC11S
5C164UB90S
5C164YA08
5C164YA21
5D162AA05
5D162BA06
5D162CA04
5D162CC08
(57)【要約】
本明細書に記載の実装は、仮想体験において空間化オーディオを提供するための方法、システム、およびコンピュータ可読媒体に関する。空間化オーディオは、たとえば、ボイスおよび/またはビデオチャットなどの音声コミュニケーションにおいて使用されてよい。チャットは、クライアントデバイスまたはオンライン体験プラットフォームにおいて組み合わされ、特定のユーザに向けられる空間化オーディオを含んでよい。個々のオーディオストリームは、複数のアバターおよびその他のオブジェクトから収集され、目標ユーザに基づいて組み合わされてよい。オーディオは、仮想体験において豊かで没入感のあるオーディオストリームを提供するために背景および/または環境音も含んでよい。
【特許請求の範囲】
【請求項1】
仮想メタバースにおける空間化オーディオのコンピュータによって実施される方法であって、
複数のユーザのうちの第1のユーザから前記仮想メタバースのメタバースプレイスに関連するオーディオを受信する要求を受信するステップであって、前記第1のユーザがユーザデバイスに関連付けられ、前記複数のユーザが前記メタバースプレイス内の複数のアバターのそれぞれのアバターに関連付けられる、ステップと、
前記メタバースプレイスに関連するデータモデルを取り出すステップであって、前記データモデルが、前記メタバースプレイスに適用される1つまたは複数の物理法則を表す1つまたは複数の空間パラメータを含む、ステップと、
前記データモデルからアバター情報およびシーン情報を抽出するステップであって、前記アバター情報が、前記第1のユーザに関連する第1のアバターを含む前記メタバースプレイス内の前記複数のアバターの位置、速度、または方向のうちの1つまたは複数を含み、前記シーン情報が、前記メタバースプレイス内の前記第1のアバターに仮想的に近接する遮蔽、残響、または仮想的な壁のうちの1つまたは複数を含む、ステップと、
空間化オーディオストリームを作成するために、前記アバター情報および前記シーン情報に基づいて前記複数のユーザの各ユーザから受信されたそれぞれのオーディオストリームを変換し、前記1つまたは複数の空間パラメータに基づいて前記それぞれのオーディオストリームのうちの少なくとも1つの1つまたは複数のオーディオ特性を変換するステップと、
組み合わされた空間化オーディオストリームを作成するために前記空間化オーディオストリームを組み合わせるステップと、
前記組み合わされた空間化オーディオストリームを前記ユーザデバイスに提供するステップと
を含む、コンピュータによって実施される方法。
【請求項2】
前記空間パラメータが、アバター間の距離に基づいてオーディオを減衰させるための距離減衰パラメータを含む、請求項1に記載のコンピュータによって実施される方法。
【請求項3】
前記複数のユーザの各ユーザから受信された前記それぞれのオーディオストリームが、マイクロフォンデバイスにおいて受け取られたモノラルオーディオを含み、前記組み合わされた空間化オーディオストリームがステレオオーディオを含む、請求項1に記載のコンピュータによって実施される方法。
【請求項4】
前記組み合わされた空間化オーディオストリームが、各ユーザのモノラルオーディオをそれぞれのユーザのアバターの位置に置くことによって生成されるステレオオーディオを含む、請求項3に記載のコンピュータによって実施される方法。
【請求項5】
前記組み合わされた空間化オーディオストリームが、前記第1のユーザ以外の前記複数のユーザのうちのユーザから受信された前記オーディオストリームに基づく空間オーディオと背景オーディオとを含み、前記背景オーディオが、
前記第1のユーザとは異なるその他のユーザから受信されたオーディオ、および
前記メタバースプレイス内のアバターの動きに基づいて生成されたオーディオ
のうちの1つまたは複数に基づいて生成される、請求項1に記載のコンピュータによって実施される方法。
【請求項6】
前記複数のユーザの各ユーザから受信された優先順位付けされたオーディオストリームのセットを決定するステップをさらに含み、それぞれのオーディオストリームを変換するステップが、前記空間化オーディオストリームを作成するために優先順位付けされたオーディオストリームの前記セットを変換することをさらに含む、」請求項1に記載のコンピュータによって実施される方法。
【請求項7】
優先順位付けされたオーディオストリームの前記セットを決定するステップが、
前記メタバースプレイス内のアバターの近接性、前記メタバースプレイス内のアバターの速度、前記メタバースプレイス内のアバターの方向、前記メタバースプレイス内のアバターに近接する仮想オブジェクト、前記ユーザデバイスの能力、または前記第1のユーザのユーザプリファレンスのうちの1つまたは複数に基づいて前記複数のユーザの各ユーザから受信されたオーディオストリームを優先順位付けすることを含む、請求項6に記載のコンピュータによって実施される方法。
【請求項8】
受け取るアバターにより近いアバターに関連するオーディオストリームが、前記受け取るアバターからより遠いアバターに関連するオーディオストリームよりも優先され、受け取るアバターの方に向けられたアバターに関連するオーディオストリームが、受け取るアバターから遠ざかる方に向けられたアバターに関連するオーディオストリームよりも優先され、受け取るアバターに向かって移動しているアバターに関連するオーディオストリームが、受け取るアバターから遠ざかるように移動しているアバターに関連するオーディオストリームよりも優先される、請求項7に記載のコンピュータによって実施される方法。
【請求項9】
仮想メタバースにおいて空間化オーディオを提供するコンピュータによって実施される方法であって、
複数のユーザのうちの第1のユーザから、前記仮想メタバースのメタバースプレイスに関連するオーディオを受信する要求を受信するステップであって、前記第1のユーザが、ユーザデバイスに関連付けられ、前記複数のユーザが、前記メタバースプレイス内の複数のアバターのそれぞれのアバターに関連付けられる、ステップと、
前記複数のユーザの各ユーザから受信された優先順位付けされたオーディオストリームのセットを決定するステップと、
空間化オーディオストリームを作成するために、優先順位付けされたオーディオストリームの前記セットを変換するステップと、
組み合わされた空間化オーディオストリームを作成するために前記空間化オーディオストリームを組み合わせるステップと、
前記組み合わされた空間化オーディオストリームを前記ユーザデバイスに提供するステップと
を含む、コンピュータによって実施される方法。
【請求項10】
優先順位付けされたオーディオストリームの前記セットを決定するステップが、
前記メタバースプレイス内のアバターの近接性、前記メタバースプレイス内のアバターの速度、前記メタバースプレイス内のアバターの方向、前記メタバースプレイス内のアバターに近接する仮想オブジェクト、前記ユーザデバイスの能力、または前記第1のユーザのユーザプリファレンスのうちの1つまたは複数に基づいて、前記複数のユーザの各ユーザから受信されたオーディオストリームを優先順位付けすることを含む、請求項9に記載のコンピュータによって実施される方法。
【請求項11】
受け取るアバターにより近いアバターに関連するオーディオストリームが、前記受け取るアバターからより遠いアバターに関連するオーディオストリームよりも優先され、受け取るアバターの方に向けられたアバターに関連するオーディオストリームが、受け取るアバターから遠ざかる方に向けられたアバターに関連するオーディオストリームよりも優先され、受け取るアバターに向かって移動しているアバターに関連するオーディオストリームが、受け取るアバターから遠ざかるように移動しているアバターに関連するオーディオストリームよりも優先される請求項10に記載のコンピュータによって実施される方法。
【請求項12】
システムであって、
命令が記憶されたメモリと、
前記メモリに結合された処理デバイスであって、前記メモリにアクセスするように構成され、前記命令が、前記処理デバイスによって実行されるときに前記処理デバイスに、
複数のユーザのうちの第1のユーザから、仮想メタバースのメタバースプレイスに関連するオーディオを受信する要求を受信することであって、前記第1のユーザが、ユーザデバイスに関連付けられ、前記複数のユーザが、前記メタバースプレイス内の複数のアバターのそれぞれのアバターに関連付けられる、ことと、
前記メタバースプレイスに関連するデータモデルを取り出すことであって、前記データモデルが、前記メタバースプレイスに適用される1つまたは複数の物理法則を表す1つまたは複数の空間パラメータを含む、ことと、
前記データモデルからアバター情報およびシーン情報を抽出することであって、前記アバター情報が、前記第1のユーザに関連する第1のアバターを含む前記メタバースプレイス内の前記複数のアバターの位置、速度、または方向のうちの1つまたは複数を含み、前記シーン情報が、前記メタバースプレイス内の前記第1のアバターに仮想的に近接する遮蔽、残響、または仮想的な壁のうちの1つまたは複数を含む、ことと、
空間化オーディオストリームを作成するために、前記アバター情報および前記シーン情報に基づいて前記複数のユーザの各ユーザから受信されたそれぞれのオーディオストリームを変換し、前記1つまたは複数の空間パラメータに基づいて前記それぞれのオーディオストリームのうちの少なくとも1つの1つまたは複数のオーディオ特性を変換することと、
組み合わされた空間化オーディオストリームを作成するために前記空間化オーディオストリームを組み合わせることと、
前記組み合わされた空間化オーディオストリームを前記ユーザデバイスに提供することと
を含む動作を実行させる、システム。
【請求項13】
前記空間パラメータが、アバター間の距離に基づいてオーディオを減衰させるための距離減衰パラメータを含む、請求項12に記載のシステム。
【請求項14】
前記複数のユーザの各ユーザから受信された前記それぞれのオーディオストリームが、マイクロフォンデバイスにおいて受け取られたモノラルオーディオを含み、前記組み合わされた空間化オーディオストリームがステレオオーディオを含む、請求項12に記載のシステム。
【請求項15】
前記組み合わされた空間化オーディオストリームが、各ユーザのモノラルオーディオをそれぞれのユーザのアバターの位置に置くことによって生成されるステレオオーディオを含む、請求項14に記載のシステム。
【請求項16】
前記組み合わされた空間化オーディオストリームが、前記第1のユーザ以外の前記複数のユーザのうちのユーザから受信された前記オーディオストリームに基づく空間オーディオと、背景オーディオとを含み、前記背景オーディオが、
前記第1のユーザとは異なるその他のユーザから受信されたオーディオ、および
前記メタバースプレイス内のアバターの動きに基づいて生成されたオーディオ
のうちの1つまたは複数に基づいて生成される、請求項12に記載のシステム。
【請求項17】
前記動作が、
前記複数のユーザの各ユーザから受信された優先順位付けされたオーディオストリームのセットを決定することをさらに含み、それぞれのオーディオストリームを変換することが、前記空間化オーディオストリームを作成するために、優先順位付けされたオーディオストリームの前記セットを変換することをさらに含む、請求項12に記載のシステム。
【請求項18】
優先順位付けされたオーディオストリームの前記セットを決定することが、
前記メタバースプレイス内のアバターの近接性、前記メタバースプレイス内のアバターの速度、前記メタバースプレイス内のアバターの方向、前記メタバースプレイス内のアバターに近接する仮想オブジェクト、前記ユーザデバイスの能力、または前記第1のユーザのユーザプリファレンスのうちの1つまたは複数に基づいて、前記複数のユーザの各ユーザから受信されたオーディオストリームを優先順位付けすることを含む、請求項17に記載のシステム。
【請求項19】
受け取るアバターにより近いアバターに関連するオーディオストリームが、前記受け取るアバターからより遠いアバターに関連するオーディオストリームよりも優先され、受け取るアバターの方に向けられたアバターに関連するオーディオストリームが、関連するオーディオストリームよりも優先される、請求項18に記載のシステム。
【請求項20】
前記複数のユーザの各ユーザから受信された前記それぞれのオーディオストリームを変換するように構成された空間化オーディオマネージャと、
前記組み合わされた空間化オーディオストリームを前記ユーザデバイスに提供する前に、前記ユーザデバイスにおいて非空間化オーディオを無効にするように構成されたオーディオデバイスオーバーライドモジュールと
をさらに含む、請求項12に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年7月15日に出願した、SPATIALIZED AUDIO CHAT IN A VIRTUAL METAVERSEと題した米国仮出願第63/222,304号の優先権の利益を主張するものであり、その内容全体は、参照により本明細書に組み込まれる。
【0002】
実施形態は、概して、コンピュータデバイスを介したオーディオ出力に関し、より詳細には、仮想メタバースのメタバースプレイス(metaverse place)のような仮想没入環境において空間化オーディオを提供するための方法、システム、およびコンピュータ可読媒体に関する。
【背景技術】
【0003】
コンピュータオーディオ(たとえば、コンピュータデバイスのユーザ間のチャット)は、そのチャットがリスニングデバイスまたはマイクロフォンから受信されるときにモノラルまたはステレオオーディオが提供されることから成ることが多い。提供されるオーディオは、概して、フィルタリングされていないかまたは最小限にフィルタリングされ、チャットに参加しているユーザを表す2体のアバターの実際の仮想的位置にかかわらず、無味乾燥または直接的に聞こえる場合がある。したがって、仮想体験がより視覚没入感を増すにつれて、提供されるオーディオの単純な性質は、没入体験の妨げになり、および/または没入体験を損ない、たとえば、ユーザを体験から抜け出させてしまうことになる。
【0004】
本明細書において与えられる背景技術の説明は、本開示の文脈を提示することを目的とする。この背景技術の節で説明される範囲のここに名前を挙げられた発明者の研究と、それ以外で出願時に従来技術として認定されない可能性がある説明の態様とは、明示的にも暗黙的にも本開示の従来技術として認められない。
【発明の概要】
【課題を解決するための手段】
【0005】
本出願の実装は、仮想メタバースにおいて空間化オーディオを提供することに関する。
【0006】
一態様によれば、仮想メタバースにおける空間化オーディオのコンピュータによって実施される方法であって、複数のユーザのうちの第1のユーザから、仮想メタバースのメタバースプレイスに関連するオーディオを受信する要求を受信するステップであって、第1のユーザが、ユーザデバイスに関連付けられ、複数のユーザが、メタバースプレイス内の複数のアバターのそれぞれのアバターに関連付けられる、ステップと、メタバースプレイスに関連するデータモデルを取り出すステップであって、データモデルが、メタバースプレイスに適用される1つまたは複数の物理法則を表す1つまたは複数の空間パラメータを含む、ステップと、データモデルからアバター情報およびシーン情報を抽出するステップであって、アバター情報が、第1のユーザに関連する第1のアバターを含むメタバースプレイス内の複数のアバターの位置、速度、または方向のうちの1つまたは複数を含み、シーン情報が、メタバースプレイス内の第1のアバターに仮想的に近接する遮蔽、残響(reverberation)、または仮想的な壁のうちの1つまたは複数を含む、ステップと、空間化オーディオストリームを作成するために、アバター情報およびシーン情報に基づいて複数のユーザの各ユーザから受信されたそれぞれのオーディオストリームを変換し、1つまたは複数の空間パラメータに基づいてそれぞれのオーディオストリームのうちの少なくとも1つの1つまたは複数のオーディオ特性を変換するステップと、組み合わされた空間化オーディオストリームを作成するために空間化オーディオストリームを組み合わせるステップと、組み合わされた空間化オーディオストリームをユーザデバイスに提供するステップとを含む、コンピュータによって実施される方法が開示される。
【0007】
コンピュータによって実施される方法の様々な実装が、本明細書において説明される。
【0008】
一部の実装において、空間パラメータは、アバター間の距離に基づいてオーディオを減衰させるための距離減衰パラメータを含む。
【0009】
一部の実装において、複数のユーザの各ユーザから受信されたそれぞれのオーディオストリームは、マイクロフォンデバイスにおいて受け取られたモノラルオーディオを含み、組み合わされた空間化オーディオストリームは、ステレオオーディオを含む。
【0010】
一部の実装において、組み合わされた空間化オーディオストリームは、各ユーザのモノラルオーディオをそれぞれのユーザのアバターの位置に置くことによって生成されるステレオオーディオを含む。
【0011】
一部の実装において、組み合わされた空間化オーディオストリームは、複数のユーザのうちの、第1のユーザ以外のユーザから受信されたオーディオストリームに基づく空間オーディオと、背景オーディオとを含み、背景オーディオは、第1のユーザとは異なるその他のユーザから受信されたオーディオ、およびメタバースプレイス内のアバターの動きに基づいて生成されたオーディオのうちの1つまたは複数に基づいて生成される。
【0012】
一部の実装において、コンピュータによって実施される方法は、複数のユーザの各ユーザから受信された優先順位付けされたオーディオストリームのセットを決定するステップをさらに含み、それぞれのオーディオストリームを変換するステップは、空間化オーディオストリームを作成するために、優先順位付けされたオーディオストリームのセットを変換することをさらに含む。
【0013】
一部の実装において、優先順位付けされたオーディオストリームのセットを決定するステップは、メタバースプレイス内のアバターの近接性、メタバースプレイス内のアバターの速度、メタバースプレイス内のアバターの方向、メタバースプレイス内のアバターに近接する仮想オブジェクト、ユーザデバイスの能力、または第1のユーザのユーザプリファレンスのうちの1つまたは複数に基づいて、複数のユーザの各ユーザから受信されたオーディオストリームを優先順位付けすることを含む。
【0014】
一部の実装においては、受け取るアバターにより近いアバターに関連するオーディオストリームが、受け取るアバターからより遠いアバターに関連するオーディオストリームよりも優先され、受け取るアバターの方に向けられたアバターに関連するオーディオストリームが、受け取るアバターから遠ざかる方に向けられたアバターに関連するオーディオストリームよりも優先され、受け取るアバターに向かって移動しているアバターに関連するオーディオストリームが、受け取るアバターから遠ざかるように移動しているアバターに関連するオーディオストリームよりも優先される。
【0015】
別の態様によれば、仮想メタバースにおいて空間化オーディオを提供するコンピュータによって実施される方法であって、複数のユーザのうちの第1のユーザから、仮想メタバースのメタバースプレイスに関連するオーディオを受信する要求を受信するステップであって、第1のユーザが、ユーザデバイスに関連付けられ、複数のユーザが、メタバースプレイス内の複数のアバターのそれぞれのアバターに関連付けられる、ステップと、複数のユーザの各ユーザから受信された優先順位付けされたオーディオストリームのセットを決定するステップと、空間化オーディオストリームを作成するために、優先順位付けされたオーディオストリームのセットを変換するステップと、組み合わされた空間化オーディオストリームを作成するために空間化オーディオストリームを組み合わせるステップと、組み合わされた空間化オーディオストリームをユーザデバイスに提供するステップとを含む、コンピュータによって実施される方法が開示される。
【0016】
コンピュータによって実施される方法の様々な実装が、本明細書において説明される。
【0017】
一部の実装において、優先順位付けされたオーディオストリームのセットを決定するステップは、メタバースプレイス内のアバターの近接性、メタバースプレイス内のアバターの速度、メタバースプレイス内のアバターの方向、メタバースプレイス内のアバターに近接する仮想オブジェクト、ユーザデバイスの能力、または第1のユーザのユーザプリファレンスのうちの1つまたは複数に基づいて、複数のユーザの各ユーザから受信されたオーディオストリームを優先順位付けすることを含む。
【0018】
一部の実装においては、受け取るアバターにより近いアバターに関連するオーディオストリームが、受け取るアバターからより遠いアバターに関連するオーディオストリームよりも優先され、受け取るアバターの方に向けられたアバターに関連するオーディオストリームが、受け取るアバターから遠ざかる方に向けられたアバターに関連するオーディオストリームよりも優先され、受け取るアバターに向かって移動しているアバターに関連するオーディオストリームが、受け取るアバターから遠ざかるように移動しているアバターに関連するオーディオストリームよりも優先される。
【0019】
別の態様によれば、命令を記憶させたメモリと、メモリに結合された処理デバイスであって、メモリにアクセスするように構成された、処理デバイスとを含み、命令が、処理デバイスによって実行されるときに処理デバイスに、複数のユーザのうちの第1のユーザから、仮想メタバースのメタバースプレイスに関連するオーディオを受信する要求を受信することであって、第1のユーザが、ユーザデバイスに関連付けられ、複数のユーザが、メタバースプレイス内の複数のアバターのそれぞれのアバターに関連付けられる、受信することと、メタバースプレイスに関連するデータモデルを取り出すことであって、データモデルが、メタバースプレイスに適用される1つまたは複数の物理法則を表す1つまたは複数の空間パラメータを含む、取り出すことと、データモデルからアバター情報およびシーン情報を抽出することであって、アバター情報が、第1のユーザに関連する第1のアバターを含むメタバースプレイス内の複数のアバターの位置、速度、または方向のうちの1つまたは複数を含み、シーン情報が、メタバースプレイス内の第1のアバターに仮想的に近接する遮蔽、残響、または仮想的な壁のうちの1つまたは複数を含む、抽出することと、空間化オーディオストリームを作成するために、アバター情報およびシーン情報に基づいて複数のユーザの各ユーザから受信されたそれぞれのオーディオストリームを変換し、1つまたは複数の空間パラメータに基づいてそれぞれのオーディオストリームのうちの少なくとも1つの1つまたは複数のオーディオ特性を変換することと、組み合わされた空間化オーディオストリームを作成するために空間化オーディオストリームを組み合わせることと、組み合わされた空間化オーディオストリームをユーザデバイスに提供することとを含む動作を実行させるシステムが開示される。
【0020】
システムの様々な実装が、本明細書において説明される。
【0021】
一部の実装において、空間パラメータは、アバター間の距離に基づいてオーディオを減衰させるための距離減衰パラメータを含む。
【0022】
一部の実装において、複数のユーザの各ユーザから受信されたそれぞれのオーディオストリームは、マイクロフォンデバイスにおいて受け取られたモノラルオーディオを含み、組み合わされた空間化オーディオストリームは、ステレオオーディオを含む。
【0023】
一部の実装において、組み合わされた空間化オーディオストリームは、各ユーザのモノラルオーディオをそれぞれのユーザのアバターの位置に置くことによって生成されるステレオオーディオを含む。
【0024】
一部の実装において、組み合わされた空間化オーディオストリームは、複数のユーザのうちの、第1のユーザ以外のユーザから受信されたオーディオストリームに基づく空間オーディオと、背景オーディオとを含み、背景オーディオは、第1のユーザとは異なるその他のユーザから受信されたオーディオ、およびメタバースプレイス内のアバターの動きに基づいて生成されたオーディオのうちの1つまたは複数に基づいて生成される。
【0025】
一部の実装において、動作は、複数のユーザの各ユーザから受信された優先順位付けされたオーディオストリームのセットを決定することをさらに含み、それぞれのオーディオストリームを変換することは、空間化オーディオストリームを作成するために、優先順位付けされたオーディオストリームのセットを変換することをさらに含む。
【0026】
一部の実装において、優先順位付けされたオーディオストリームのセットを決定することは、メタバースプレイス内のアバターの近接性、メタバースプレイス内のアバターの速度、メタバースプレイス内のアバターの方向、メタバースプレイス内のアバターに近接する仮想オブジェクト、ユーザデバイスの能力、または第1のユーザのユーザプリファレンスのうちの1つまたは複数に基づいて、複数のユーザの各ユーザから受信されたオーディオストリームを優先順位付けすることを含む。
【0027】
一部の実装においては、受け取るアバターにより近いアバターに関連するオーディオストリームが、受け取るアバターからより遠いアバターに関連するオーディオストリームよりも優先され、受け取るアバターの方に向けられたアバターに関連するオーディオストリームが、関連するオーディオストリームよりも優先される。
【0028】
一部の実装において、システムは、複数のユーザの各ユーザから受信されたそれぞれのオーディオストリームを変換するように構成された空間化オーディオマネージャと、組み合わされた空間化オーディオストリームをユーザデバイスに提供する前に、ユーザデバイスにおいて非空間化オーディオ(non-spatialized audio)を無効にするように構成されたオーディオデバイスオーバーライドモジュールとをさらに含む。
【0029】
別の態様によれば、非一時的コンピュータ可読媒体が提供される。処理デバイスによる実行に応答して処理デバイスに、仮想メタバースのメタバースプレイスに関連するデータモデルを取り出すことであって、データモデルが、メタバースプレイスに適用される物理法則のグループを表す1つまたは複数の空間パラメータを含む、取り出すことと、複数のユーザのうちの第1のユーザからメタバースプレイスに参加する要求を受信することであって、第1のユーザが、第1のアバターおよびユーザデバイスに関連付けられ、複数のユーザが、メタバースプレイス内の複数のアバターに関連付けられる、受信することと、要求に応答してデータモデルからアバター情報およびシーン情報を抽出することであって、アバター情報が、メタバースプレイス内の第1のアバターおよび複数のアバターの位置、速度、または方向のうちの1つまたは複数を含み、シーン情報が、第1のアバターに仮想的に近接する遮蔽、残響、または仮想的な壁のうちの1つまたは複数を含む、抽出することと、空間パラメータを使用して、アバター情報およびシーン情報に基づいて、複数のユーザの各ユーザから受信したそれぞれのオーディオストリームを変換することであって、空間化オーディオストリームを作成するために1つまたは複数のオーディオ特性を修正することを含む、変換することと、組み合わされた空間化オーディオストリームを作成するために空間化オーディオストリームを組み合わせることと、組み合わされた空間化オーディオストリームをユーザデバイスに提供することとを含む動作を実行させる命令を記憶させた非一時的コンピュータ可読媒体。
【0030】
非一時的コンピュータ可読媒体の様々な実装が、本明細書において説明される。
【0031】
さらに別の態様によれば、システム、方法、および非一時的コンピュータ可読媒体の一部、特徴、および実装の詳細は、個々の構成要素または特徴のいくつかまたは一部を省略および/または修正し、追加の構成要素もしくは特徴、および/またはその他の修正を含むいくつかの態様を含む追加の態様を形成するために組み合わされる場合があり、すべてのそのような修正は、本開示の範囲内である。
【図面の簡単な説明】
【0032】
【
図1】一部の実装による、仮想メタバースにおいて空間化オーディオチャットを提供するための例示的なネットワーク環境の図である。
【
図2A】一部の実装による、仮想メタバースにおいて空間化オーディオチャットを提供するための例示的なネットワーク環境の図である。
【
図2B】一部の実装による、仮想メタバースにおいて空間化オーディオチャットを提供するための例示的なネットワーク環境の図である。
【
図3】一部の実装による、仮想メタバースにおいて空間化オーディオストリームを優先順位付けするための例示的なネットワーク環境の図である。
【
図4】一部の実装による、仮想体験内の例示的な3次元メタバースプレイスを示す図である。
【
図5】一部の実装による、仮想体験内の例示的な3次元メタバースプレイスを示す図である。
【
図6】一部の実装による、仮想メタバースにおいて空間化オーディオチャットを提供するための例示的な方法の流れ図である。
【
図7】一部の実装による、仮想メタバースにおいて空間化オーディオストリームを優先順位付けするための例示的な方法の流れ図である。
【
図8】一部の実装による、本明細書において説明される1つまたは複数の特徴を実装するために使用されてよい例示的なコンピューティングデバイスを示すブロック図である。
【発明を実施するための形態】
【0033】
本明細書において説明される1つまたは複数の実装は、オンラインゲームプラットフォームに関連する空間化オーディオに関する。特徴は、仮想メタバースのメタバースプレイス内の仮想オブジェクト、アバター、およびその他のアイテムに関連する位置、速度、および/またはその他の要因に基づいて空間化オーディオストリームを自動的に優先順位付けすることと、空間化オーディオを提供することとを含み得る。
【0034】
本明細書において説明される特徴は、たとえば、オンライン体験プラットフォームまたはオンラインゲームプラットフォームなどのオンラインプラットフォームに接続されたクライアントデバイスにおいて出力するための空間化オーディオを提供する。オンラインプラットフォームは、それに関連する複数のメタバースプレイスを有する仮想メタバースを提供してよい。ユーザに関連する仮想アバターは、メタバースプレイスを移動し、メタバースプレイスと、ならびにメタバースプレイス内のアイテム、キャラクタ、その他のアバター、およびオブジェクトとインタラクションすることができる。アバターは、より没入感があり楽しい体験を提供する空間化オーディオを体験しながら、あるメタバースプレイスから別のメタバースプレイスに移動することができる。複数のユーザ(たとえば、または複数のユーザに関連するアバター)からの空間化オーディオストリームが、アバターおよびキャラクタの位置、速度、動き、およびアクション、ならびにクライアントデバイスの帯域幅、処理、およびその他の能力を考慮に入れながら、豊かなオーディオが提供され得るように、多くの要因に基づいて優先順位付けすることが可能である。
【0035】
異なるオーディオストリームを優先順位付けし、組み合わせることによって、組み合わされた空間化オーディオストリームが、クライアントデバイスにおいて出力するために提供されることが可能であり、その組み合わされたオーディオストリームは、仮想没入体験を損なうことなく、豊かなユーザ体験、空間化オーディオを提供するための計算回数の削減、および帯域幅の削減を提供する。さらに、空間オーディオアプリケーションプログラミングインターフェース(API)が定義され、その空間オーディオAPIは、ユーザおよび開発者がほとんどすべてのオンライン体験のために空間化オーディオを実装することを可能にし、それによって、ユーザおよび開発者のより低い技術的熟練度を要求しながら、没入感のあるオーディオを有する高品質のオンライン仮想体験、ゲーム、メタバースプレイス、およびその他のインタラクションの生成を可能にする。
【0036】
オンライン体験プラットフォームおよびオンラインゲームプラットフォーム(「ユーザ生成コンテンツプラットフォーム」または「ユーザ生成コンテンツシステム」とも呼ばれる)は、ユーザが互いにインタラクションするための様々な方法を提供する。たとえば、オンライン体験プラットフォームのユーザは、オンラインプラットフォーム内でゲームまたはその他のコンテンツまたはリソース(たとえば、キャラクタ、グラフィックス、ゲームプレイのためおよび/または仮想メタバース内で使用するためのアイテムなど)を作成する場合がある。
【0037】
オンライン体験プラットフォームのユーザは、メタバースプレイス、ゲーム、またはゲーム作成において共通の目標に向かって協力する、様々な仮想アイテム(たとえば、インベントリアイテム(inventory item)、ゲームアイテムなど)を共有する、オーディオチャット(たとえば、空間化オーディオチャット)に参加する、互いに電子メッセージを送信するといったことを行う場合がある。オンライン体験プラットフォームのユーザは、その他のユーザとインタラクションし、たとえば、キャラクタ(アバター)またはその他のゲームオブジェクトおよびメカニズムを含むゲームをプレイする場合がある。オンライン体験プラットフォームは、プラットフォームのユーザが互いにコミュニケーションすることを可能にする場合もある。たとえば、オンライン体験プラットフォームのユーザは、(たとえば、空間化オーディオを用いたボイスチャットによる)ボイスメッセージ、テキストメッセージング、(たとえば、空間化オーディオを含む)ビデオメッセージング、または上記のものの組合せを使用して互いにコミュニケーションする場合がある。一部のオンライン体験プラットフォームは、仮想3次元環境、またはメタバース内でリンクされた複数の環境を提供することができ、それらの環境内で、ユーザは、互いにインタラクションするか、またはオンラインゲームをプレイすることができる。
【0038】
オンライン体験プラットフォームの娯楽的価値(entertainment value)を高めるのに役立つために、プラットフォームは、ユーザデバイスにおいて再生するための豊かなオーディオを提供することができる。オーディオは、たとえば、異なるユーザからの異なるオーディオストリームおよび背景オーディオを含み得る。本明細書において説明される様々な実装によれば、異なるオーディオストリームが、空間化オーディオストリームに変換され得る。空間化オーディオストリームは、たとえば、クライアントデバイスにおいて再生するために組み合わされた空間化オーディオストリームを提供するために組み合わされる場合がある。さらに、没入感のある空間化オーディオを引き続き提供しながら、帯域幅が削減されるように、優先順位付けされたオーディオストリームが提供される場合がある。さらに、現実感のある背景雑音/エフェクトもユーザに対して再生されるように、背景オーディオストリームが空間化オーディオと組み合わされる場合がある。さらに、周囲の媒質(空気、水、その他など)、残響、反射、穴のサイズ、壁の密度、天井の高さ、出入り口、廊下、オブジェクトの配置、非プレイヤーオブジェクト/キャラクタ、およびその他の特性などのメタバースプレイスの特性が、オンライン仮想体験内の現実感および没入感を高めるために空間化オーディオおよび/または背景オーディオを作成するのに利用される。
【0039】
図1~
図3:システムアーキテクチャ
図1は、本開示の一部の実装による例示的なネットワーク環境100を示す。ネットワーク環境100(本明細書においては「システム」とも呼ばれる)は、オンライン体験プラットフォーム102、第1のクライアントデバイス110、第2のクライアントデバイス116(本明細書においては「クライアントデバイス110/116」と総称される)を含み、これらすべてはネットワーク122を介して接続される。オンライン体験プラットフォーム102は、とりわけ、ゲームエンジン104、1つまたは複数のゲーム105、空間化オーディオAPI106、およびデータストア108を含み得る。クライアントデバイス110は、ゲームアプリケーション112を含むことができ、クライアントデバイス116は、ゲームアプリケーション118を含むことができる。ユーザ114および120は、それぞれ、クライアントデバイス110および116を使用して、オンライン体験プラットフォーム102、およびオンライン体験プラットフォーム102を利用するその他のユーザとインタラクションすることができる。
【0040】
ネットワーク環境100は、例示のために提供される。一部の実装において、ネットワーク環境100は、
図1に示されたのと同じまたは異なる方法で構成された同じ、より少ない、より多い、または異なる要素を含む場合がある。
【0041】
一部の実装において、ネットワーク122は、パブリックネットワーク(たとえば、インターネット)、プライベートネットワーク(たとえば、ローカルエリアネットワーク(LAN)もしくは広域ネットワーク(WAN))、有線ネットワーク(たとえば、イーサネットネットワーク)、ワイヤレスネットワーク(たとえば、802.11ネットワーク、Wi-Fi(登録商標)ネットワーク、もしくはワイヤレスLAN(WLAN))、セルラネットワーク(たとえば、ロングタームエボリューション(LTE)ネットワーク)、ルータ、ハブ、スイッチ、サーバコンピュータ、またはこれらの組合せを含む場合がある。
【0042】
一部の実装において、データストア108は、非一時的コンピュータ可読メモリ(たとえば、ランダムアクセスメモリ)、キャッシュ、ドライブ(たとえば、ハードドライブ)、フラッシュドライブ、データベースシステム、またはデータを記憶することができる別のタイプの構成要素もしくはデバイスであってよい。また、データストア108は、複数のコンピューティングデバイス(たとえば、複数のサーバコンピュータ)に広がる場合もある複数のストレージ構成要素(たとえば、複数のドライブまたは複数のデータベース)を含んでよい。
【0043】
一部の実装において、オンライン体験プラットフォーム102は、1つまたは複数のコンピューティングデバイスを有するサーバ(たとえば、クラウドコンピューティングシステム、ラックマウントサーバ、サーバコンピュータ、物理サーバのクラスタ、仮想サーバなど)を含み得る。一部の実装において、サーバは、オンライン体験プラットフォーム102に含まれるか、独立したシステムであるか、または別のシステムもしくはプラットフォームの一部であってよい。
【0044】
一部の実装において、オンライン体験プラットフォーム102は、オンライン体験プラットフォーム102上で動作を実行し、ユーザにオンライン体験プラットフォーム102へのアクセスを提供するために使用されてよい(ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータなどの)1つまたは複数のコンピューティングデバイス、データストア(たとえば、ハードディスク、メモリ、データベース)、ネットワーク、ソフトウェア構成要素、および/またはハードウェア構成要素を含んでよい。また、オンライン体験プラットフォーム102は、ユーザにオンライン体験プラットフォーム102によって提供されるコンテンツへのアクセスを提供するために使用されてよいウェブサイト(たとえば、1つもしくは複数のウェブページ)またはアプリケーションバックエンドソフトウェアを含んでよい。たとえば、ユーザ114/120は、クライアントデバイス110/116上のゲームアプリケーション112/118を使用してオンライン体験プラットフォーム102にアクセスする場合がある。
【0045】
一部の実装において、オンライン体験プラットフォーム102は、ユーザ間のつながりを提供するある種のソーシャルネットワーク、またはユーザ(たとえば、エンドユーザもしくはコンシューマ)がオンライン体験プラットフォーム102を介してその他のユーザとコミュニケーションすることを可能にするある種のユーザ生成コンテンツシステムを含んでよく、コミュニケーションは、ボイスチャット(たとえば、空間化オーディオを用いるもしくは用いない同期および/もしくは非同期音声コミュニケーション)、ビデオチャット(たとえば、空間化オーディオを用いるもしくは用いない同期および/もしくは非同期ビデオコミュニケーション)、またはテキストチャット(たとえば、同期および/もしくは非同期のテキストに基づくコミュニケーション)を含んでよい。
【0046】
本開示の一部の実装において、「ユーザ」は、1人の個人として表される場合がある。しかし、本開示のその他の実装は、「ユーザ」(たとえば、作成ユーザ)がユーザのセットまたは自動化されたソースによって制御されるエンティティ(entity)であることを包含する。たとえば、ユーザ生成コンテンツシステム内のコミュニティまたはグループとして連合した個人ユーザのセットが、「ユーザ」とみなされる場合がある。
【0047】
一部の実装において、オンライン体験プラットフォーム102は、仮想ゲームプラットフォームである場合がある。たとえば、ゲームプラットフォームは、ネットワーク122を介してクライアントデバイス110/116を使用してゲーム(たとえば、ユーザ生成ゲームまたは他のゲーム)にアクセスするかまたはゲームとインタラクションしてよいユーザのコミュニティにシングルプレイヤーゲームまたはマルチプレイヤーゲームを提供する場合がある。一部の実装において、ゲーム(本明細書においては「ビデオゲーム」、「オンラインゲーム」、「メタバースプレイス」、または「仮想体験」とも呼ばれる)は、たとえば、2次元(2D)ゲーム、3次元(3D)ゲーム(たとえば、3Dユーザ生成ゲーム)、仮想現実(VR)ゲーム、または拡張現実(AR)ゲームである場合がある。一部の実装において、ユーザは、ゲームおよびゲームアイテムを検索し、1つまたは複数のゲームにおいてその他のユーザと一緒にゲームプレイに参加する場合がある。一部の実装において、ゲームは、ゲームのその他のユーザと一緒にリアルタイムでプレイされる場合がある。同様に、一部のユーザが、ゲームのその他のユーザとのリアルタイムのボイスまたはビデオチャットに参加する場合がある。本明細書において説明されるように、リアルタイムのボイスまたはビデオチャットは、空間化オーディオを含んでよい。
【0048】
一部の実装においては、オンライン体験プラットフォーム102および/もしくは空間化オーディオAPI106の代わりに、またはオンライン体験プラットフォーム102および/もしくは空間化オーディオAPI106に加えて、その他のコラボレーションプラットフォームが、本明細書において説明される特徴とともに使用され得る。たとえば、ソーシャルネットワーキングプラットフォーム、購入プラットフォーム、メッセージングプラットフォーム、作成プラットフォームなどが、没入感のある空間化オーディオがゲーム外のユーザに提供されるように空間オーディオの特徴とともに使用され得る。
【0049】
一部の実装において、ゲームプレイは、ゲーム(たとえば、105)内の、クライアントデバイス(たとえば、110および/または116)を使用する1人もしくは複数のプレイヤーのインタラクション、またはクライアントデバイス110もしくは116のディスプレイもしくはその他の出力デバイス上のインタラクションの表現を指す場合がある。一部の実装において、ゲームプレイは、その代わりに、仮想体験またはメタバースプレイス内でのインタラクションを指し、一部のゲームと似ていない、異なる、または同じ目的を含む場合がある。さらに、「プレイヤー」と呼ばれるが、用語「アバター」、「ユーザ」、および/またはその他の用語が、オンライン仮想体験に関与するおよび/またはオンライン仮想体験とインタラクションするユーザを指すために使用される場合がある。
【0050】
1つまたは複数のゲーム105が、オンライン体験プラットフォームによって提供される。一部の実装において、ゲーム105は、エンティティにゲームコンテンツ(たとえば、デジタルメディアアイテム)を提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して実行またはロードされることが可能である電子ファイルを含み得る。一部の実装においては、ゲームアプリケーション112/118が、ゲームエンジン104に関連して実行されてよく、ゲーム105が、ゲームエンジン104に関連してレンダリングされてよい。一部の実装において、ゲーム105は、規則の共通のセットまたは共通の目標を有する場合があり、ゲーム105の仮想環境は、規則の共通のセットまたは共通の目標を共有する。一部の実装においては、異なるゲームが、互いに異なる規則または目標を有する場合がある。特に「ゲーム」またはゲーム関連と呼ばれるが、ゲームアプリケーション112/118、ゲーム105、およびゲームエンジン104は、仮想体験アプリケーション112/118、仮想体験105、および/または仮想体験エンジン104とも呼ばれる場合があることが留意される。
【0051】
一部の実装において、ゲームおよび/または仮想体験は、1つまたは複数の環境(本明細書においては「ゲーム環境」、「メタバースプレイス」、または「仮想環境」とも呼ばれる)を有してよく、複数の環境が、リンクされてよい。環境の例は、3次元(3D)環境である可能性がある。ゲーム105または仮想体験の1つまたは複数の環境は、本明細書においては集合的に「世界」、「ゲーム世界」、「仮想世界」、「ユニバース」、または「メタバース」と呼ばれる場合がある。世界の例は、ゲーム105の3Dメタバースプレイスである可能性がある。たとえば、ユーザは、第1のユーザと異なる別のユーザによって作成された別のメタバースプレイスにリンクされるメタバースプレイスを構築する場合がある。仮想体験のキャラクタは、隣接するメタバースプレイスに入るために仮想的な境界を越える場合がある。さらに、仮想的な境界の近くに立っているアバターが、隣接するメタバースプレイスから発せられる音の少なくとも一部を含む空間化オーディオを聞いてよいように、音、テーマ音楽、および/または背景音楽も、仮想的な境界を越える場合がある。このようにして、空間化オーディオは、現実世界の環境との音の伝播の類似性を表す仮想的なオーディオを含む、完全な没入体験を可能にする可能性がある。
【0052】
3D環境または3D世界は、コンテンツを表す幾何学データの3次元表現を使用する(または少なくとも、幾何学データの3D表現が使用されるか否かにかかわらず3Dコンテンツに見えるようにコンテンツを提示する)グラフィックスを使用することが留意されてよい。2D環境または2D世界は、ゲームコンテンツを表す幾何学データの2次元表現を使用するグラフィックスを使用する。
【0053】
一部の実装において、オンライン体験プラットフォーム102は、1つまたは複数のゲーム105をホストすることができ、クライアントデバイス110/116のゲームアプリケーション112/118を使用してユーザがゲーム105とインタラクションする(たとえば、ゲーム、ゲーム関連コンテンツ、またはその他のコンテンツを検索する)ことを許可し得る。オンライン体験プラットフォーム102のユーザ(たとえば、114および/または120)は、ゲーム105をプレイするか、ゲーム105を作成するか、ゲーム105とインタラクションするか、もしくはゲーム105を構築する、ゲーム105を検索する、その他のユーザとコミュニケーションする、ゲーム105のオブジェクト(たとえば、本明細書においては「アイテム」もしくは「ゲームオブジェクト」もしくは「仮想ゲームアイテム」とも呼ばれる)を作成し、構築する、および/またはオブジェクトを検索する場合がある。たとえば、ユーザ生成仮想アイテムを生成する際、ユーザは、とりわけ、キャラクタ、キャラクタのための装飾、インタラクティブゲームのための1つもしくは複数の仮想環境を作成するか、またはゲーム105内で使用される構造物を構築する場合がある。
【0054】
一部の実装において、ユーザは、プラットフォーム内通貨(たとえば、仮想的な通貨)などのゲームの仮想ゲームオブジェクトを買うか、売るか、またはオンライン体験プラットフォーム102のその他のユーザと取引する場合がある。一部の実装において、オンライン体験プラットフォーム102は、ゲームアプリケーション(たとえば、112)にゲームコンテンツを送信する場合がある。一部の実装において、ゲームコンテンツ(本明細書においては「コンテンツ」とも呼ばれる)は、オンライン体験プラットフォーム102またはゲームアプリケーションに関連する任意のデータまたはソフトウェア命令(たとえば、ゲームオブジェクト、ゲーム、ユーザ情報、ビデオ、画像、コマンド、メディアアイテムなど)を指す場合がある。
【0055】
一部の実装において、ゲームオブジェクト(たとえば、本明細書においては「アイテム」または「オブジェクト」または「仮想ゲームアイテム」とも呼ばれる)は、オンライン体験プラットフォーム102のゲームアプリケーション105またはクライアントデバイス110/116のゲームアプリケーション112もしくは118において使用されるか、作成されるか、共有されるか、またはそうでなければ描写されるオブジェクトを指す場合がある。たとえば、ゲームオブジェクトは、パーツ、モデル、キャラクタ、ツール、武器、衣類、建物、乗り物、通貨、植物相、動物相、上述のものの構成要素(たとえば、建物の窓)などを含む場合がある。
【0056】
ゲーム105をホストするオンライン体験プラットフォーム102は、限定ではなく例示を目的として提供されることが留意されてよい。一部の実装において、オンライン体験プラットフォーム102は、1人のユーザから1人または複数のその他のユーザへのコミュニケーションメッセージを含み得る1つまたは複数のメディアアイテムをホストする場合がある。メディアアイテムは、デジタルビデオ、デジタルムービー、デジタル写真、デジタル音楽、オーディオコンテンツ、メロディー、ウェブサイトコンテンツ、ソーシャルメディアの最新情報、電子ブック、電子雑誌、デジタル新聞、デジタルオーディオブック、電子ジャーナル、ウェブブログ、リアルシンプルシンジケーション(RSS: real simple syndication)フィード、電子漫画、ソフトウェアアプリケーションなどを含み得るがこれらに限定されない。一部の実装において、メディアアイテムは、エンティティにデジタルメディアアイテムを提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して実行またはロードされることが可能である電子ファイルであってよい。
【0057】
一部の実装において、ゲーム105は、特定のユーザまたはユーザの特定のグループに関連付けられる場合があり(たとえば、非公開のゲーム)、またはオンライン体験プラットフォーム102のユーザに広く利用され得るようにされる場合がある(たとえば、公開されたゲーム)。オンライン体験プラットフォーム102が1つまたは複数のゲーム105を特定のユーザまたはユーザのグループに関連付ける一部の実装において、オンライン体験プラットフォーム102は、ユーザアカウント情報(たとえば、ユーザ名およびパスワードなどのユーザアカウント識別子)を使用して特定のユーザをゲーム105に関連付ける場合がある。同様に、一部の実装において、オンライン体験プラットフォーム102は、開発者アカウント情報(たとえば、ユーザ名およびパスワードなどの開発者アカウント識別子)を使用して特定の開発者または開発者のグループをゲーム105に関連付ける場合がある。
【0058】
一部の実装において、オンライン体験プラットフォーム102またはクライアントデバイス110/116は、ゲームエンジン104またはゲームアプリケーション112/118を含んでよい。ゲームエンジン104は、ゲームアプリケーション112/118と同様のゲームアプリケーションを含み得る。一部の実装において、ゲームエンジン104は、ゲーム105の展開または実行のために使用されてよい。たとえば、ゲームエンジン104は、特徴の中でもとりわけ、2D、3D、VR、もしくはARグラフィックスのためのレンダリングエンジン(「レンダラ」)、物理エンジン、衝突検出エンジン(および衝突応答(collision response))、サウンドエンジン、空間化オーディオマネージャ/エンジン、オーディオミキサー、オーディオサブスクリプションエクスチェンジ(audio subscription exchange)、オーディオサブスクリプション論理(audio subscription logic)、オーディオサブスクリプションプライオリタイザ(audio subscription prioritizer)、リアルタイムコミュニケーションエンジン、スクリプティング機能、アニメーションエンジン、人工知能エンジン、ネットワーキング機能、ストリーミング機能、メモリ管理機能、スレッディング機能、シーングラフ機能、または映画製作技術(cinematics)のためのビデオサポートを含む場合がある。ゲームエンジン104の構成要素は、ゲームを計算し、レンダリングするのを助けるコマンド(たとえば、レンダリングコマンド、衝突コマンド、物理コマンドなど)を生成し、オーディオを変換してよい(たとえば、モノラルまたはステレオサウンドを空間化オーディオストリームに変換するなどしてよい)。一部の実装において、クライアントデバイス110/116のゲームアプリケーション112/118は、それぞれ、独立して、オンライン体験プラットフォーム102のゲームエンジン104と協力して、またはそれら両方の組合せで働く場合がある。
【0059】
一部の実装においては、オンライン体験プラットフォーム102とクライアントデバイス110/116との両方が、ゲームエンジン(それぞれ104、112、および118)を実行する。ゲームエンジン104を使用するオンライン体験プラットフォーム102は、一部のもしくはすべてのゲームエンジンの機能を実行する(たとえば、物理コマンド、レンダリングコマンド、空間化オーディオコマンドなどを生成する)か、または一部のもしくはすべてのゲームエンジンの機能をクライアントデバイス110のゲームエンジン104にオフロードする場合がある。一部の実装において、各ゲーム105は、オンライン体験プラットフォーム102において実行されるゲームエンジンの機能とクライアントデバイス110および116において実行されるゲームエンジンの機能との間の異なる比率を有していてよい。
【0060】
たとえば、オンライン体験プラットフォーム102のゲームエンジン104が、少なくとも2つのゲームオブジェクトの間の衝突が存在する場合に物理コマンドを生成するために使用される場合がある一方、(たとえば、レンダリングコマンドを生成する、または空間化オーディオストリームを組み合わせる)さらなるゲームエンジンの機能は、クライアントデバイス110にオフロードされる場合がある。一部の実装において、オンライン体験プラットフォーム102において実行されるゲームエンジンの機能とクライアントデバイス110において実行されるゲームエンジンの機能との比率は、ゲームプレイの条件に基づいて(たとえば、動的に)変更されてよい。たとえば、ゲーム105のゲームプレイに参加するユーザの数が閾値の数を超える場合、オンライン体験プラットフォーム102は、クライアントデバイス110または116によって前に実行された1つまたは複数のゲームエンジンの機能を実行する場合がある。
【0061】
たとえば、ユーザは、クライアントデバイス110および116上でゲーム105をプレイしている場合があり、オンラインゲームプラットフォーム102に制御命令(たとえば、右、左、上、下などのユーザ入力、ユーザ選択、またはキャラクタ位置および速度情報など)を送信する場合がある。クライアントデバイス110および116から制御命令を受信した後、オンライン体験プラットフォーム102は、制御命令に基づいてクライアントデバイス110および116にゲームプレイ命令(たとえば、グループゲームプレイに参加するキャラクタの位置および速度情報、またはレンダリングコマンド、衝突コマンド、空間化オーディオコマンドなどのコマンド)を送信してよい。たとえば、オンライン体験プラットフォーム102は、クライアントデバイス110および116のためのゲームプレイ命令を生成するために制御命令通りに(たとえば、ゲームエンジン104を使用して)1つまたは複数の論理的な動作を実行してよい。その他の場合、オンライン体験プラットフォーム102は、1つのクライアントデバイス110からゲーム105に参加するその他のクライアントデバイス(たとえば、116)に制御命令のうちの1つまたは複数を渡してよい。クライアントデバイス110および116は、ゲームプレイ命令を使用し、クライアントデバイス110および116のディスプレイ上に提示するためにゲームプレイをレンダリングしてよい。また、クライアントデバイス110および116は、ゲームプレイ命令を使用して、クライアントデバイス110および116のオーディオ出力デバイスにおいて出力するために、空間化オーディオストリームを作成し、修正し、および/または組み合わせてよい。
【0062】
一部の実装において、制御命令は、ユーザのキャラクタのゲーム内アクションを示す命令を指す場合がある。たとえば、制御命令は、右、左、上、下などのゲーム内アクションを制御するためのユーザ入力、ユーザ選択、ジャイロスコープの位置および向きデータ、力センサーデータなどを含んでよい。制御命令は、キャラクタ位置および速度情報を含んでよい。一部の実装において、制御命令は、オンライン体験プラットフォーム102に直接送信される。その他の実装において、制御命令は、クライアントデバイス110から別のクライアントデバイス(たとえば、116)に送信される場合があり、別のクライアントデバイスが、ローカルのゲームエンジン104を使用してゲームプレイ命令を生成する。制御命令は、別のユーザからの音声コミュニケーションメッセージまたはその他の音をオーディオデバイス(たとえば、スピーカ、ヘッドフォンなど)で再生する命令を含む場合がある。
【0063】
一部の実装において、ゲームプレイ命令は、クライアントデバイス110(または116)がマルチプレイヤーゲームなどのゲームのゲームプレイをレンダリングすることを可能にする命令を指す場合がある。ゲームプレイ命令は、ユーザ入力(たとえば、制御命令)、キャラクタ位置および速度情報、またはコマンド(たとえば、物理コマンド、レンダリングコマンド、衝突コマンドなど)のうちの1つまたは複数を含む場合がある。本明細書においてより詳細に説明されるように、キャラクタ位置および速度情報は、現実世界における音の伝播を表す空間化オーディオストリームが別のキャラクタのために作成され得るように、その別のキャラクタに関連する適切な頭部伝達関数(HRTF)を決定するために使用されてよい。関連するHRTF、位置情報、速度情報、Baum-Welch(BW)アルゴリズムデータ、仮想聴覚ディスプレイ(VAD: virtual auditory display)データ、および/またはその他のデータが、オンライン体験プラットフォーム102によってデータストア108に記憶される場合がある。
【0064】
一部の実装において、キャラクタ(または広くゲームオブジェクト)は、ユーザが編集するのを支援するために自動的に結合する構成要素から構築され、構成要素のうちの1つまたは複数は、ユーザによって選択される場合がある。1つまたは複数のキャラクタ(本明細書においては「アバター」または「モデル」とも呼ばれる)が、ユーザに関連付けられる場合があり、ユーザは、ゲーム105とのユーザのインタラクションを容易にするためにキャラクタを制御してよい。一部の実装において、キャラクタは、体のパーツ(たとえば、頭、髪の毛、腕、足など)およびアクセサリ(たとえば、Tシャツ、眼鏡、装飾的な画像、ツールなど)などの構成要素を含んでよい。一部の実装において、カスタマイズ可能なキャラクタの体のパーツは、とりわけ、頭部タイプ、体のパーツタイプ(腕、足、胴体、および手)、顔タイプ、髪タイプ、ならびに皮膚タイプを含む。一部の実装において、カスタマイズ可能なアクセサリは、衣類(たとえば、シャツ、ズボン、ハット、靴、眼鏡など)、武器、またはその他のツールを含む。
【0065】
一部の実装において、ユーザは、キャラクタの縮尺(たとえば、高さ、幅、もしくは奥行き)またはキャラクタの構成要素の縮尺も制御する場合がある。一部の実装において、ユーザは、キャラクタのプロポーション(たとえば、ブロック状(blocky)、解剖学的(anatomical)など)を制御する場合がある。一部の実装においては、キャラクタが、キャラクタゲームオブジェクト(たとえば、体のパーツなど)を含まない場合があるが、ユーザは、ゲームとのユーザのインタラクションを容易にするために、(キャラクタゲームオブジェクトなしで)キャラクタを制御する場合があることが留意されてよい(たとえば、レンダリングされたキャラクタゲームオブジェクトが存在しないが、ユーザがゲーム内アクションを制御するためにやはりキャラクタを制御するパズルゲーム)。
【0066】
一部の実装において、体のパーツなどの構成要素は、ブロック、円柱、球などの基本的な幾何学形状、またはくさび、円環、チューブ、溝形(channel)などの何らかのその他の基本的な形状である場合がある。一部の実装においては、クリエイターモジュールが、オンライン体験プラットフォーム102のその他のユーザによる閲覧または使用のために、ユーザのキャラクタを公開する場合がある。一部の実装において、キャラクタ、その他のゲームオブジェクト、ゲーム105、またはゲーム環境を作成すること、修正すること、またはカスタマイズすることは、ユーザインターフェース(たとえば、開発者インターフェース)を使用して、スクリプティングによってもしくはスクリプティングによらず(またはアプリケーションプログラミングインターフェース(API)によってもしくはAPIによらず)ユーザにより実行される場合がある。限定ではなく例示を目的として、キャラクタは、人型ロボットの形態を有するものとして説明されることが留意されてよい。キャラクタは、乗り物、動物、無生物のオブジェクト、またはその他の創造的な形態などの任意の形態を有する場合があることがさらに留意されてよい。
【0067】
一部の実装において、オンライン体験プラットフォーム102は、ユーザによって作成されたキャラクタをデータストア108に記憶する場合がある。一部の実装において、オンライン体験プラットフォーム102は、ゲームエンジン104、ゲーム105、および/またはクライアントデバイス110/116を介してユーザに提示されてよいキャラクタカタログおよびゲームカタログを保持する。一部の実装において、ゲームカタログは、オンライン体験プラットフォーム102に記憶されたゲームの画像を含む。加えて、ユーザは、選択されたゲームに参加するためにキャラクタカタログからキャラクタ(たとえば、ユーザまたはその他のユーザによって作成されたキャラクタ)を選択する場合がある。キャラクタカタログは、オンライン体験プラットフォーム102に記憶されたキャラクタの画像を含む。一部の実装において、キャラクタカタログ内のキャラクタのうちの1つまたは複数は、ユーザによって作成されたかまたはカスタマイズされた可能性がある。一部の実装において、選択されたキャラクタは、キャラクタの構成要素のうちの1つまたは複数を定義するキャラクタ設定を有する場合がある。
【0068】
一部の実装において、ユーザのキャラクタは、構成要素の構成を含むことが可能であり、構成要素の構成および外観ならびにより広くキャラクタの外観は、キャラクタ設定によって定義される場合がある。一部の実装において、ユーザのキャラクタのキャラクタ設定は、少なくとも部分的にユーザによって選択されてよい。その他の実装において、ユーザは、デフォルトキャラクタ設定またはその他のユーザによって選択されたキャラクタ設定を有するキャラクタを選択する場合がある。たとえば、ユーザは、予め定義されたキャラクタ設定を有するデフォルトキャラクタをキャラクタカタログから選択する場合があり、さらに、ユーザは、キャラクタ設定の一部を変更すること(たとえば、カスタマイズされたロゴ付きのシャツを追加すること)によってデフォルトキャラクタをカスタマイズする場合がある。キャラクタ設定は、オンライン体験プラットフォーム102によって特定のキャラクタに関連付けられてよい。
【0069】
一部の実装において、クライアントデバイス110または116は、パーソナルコンピュータ(PC)、モバイルデバイス(たとえば、ラップトップ、モバイル電話、スマートフォン、タブレットコンピュータ、またはネットブックコンピュータ)、ネットワークに接続されたテレビ、ゲームコンソールなどのコンピューティングデバイスをそれぞれ含んでよい。一部の実装において、クライアントデバイス110または116は、「ユーザデバイス」とも呼ばれる場合がある。一部の実装において、1つまたは複数のクライアントデバイス110または116は、いつでもオンライン体験プラットフォーム102に接続してよい。クライアントデバイス110または116の数は、限定ではなく例示として与えられることが留意されてよい。一部の実装においては、任意の数のクライアントデバイス110または116が使用されてよい。
【0070】
一部の実装において、各クライアントデバイス110または116は、ゲームアプリケーション112または118のインスタンスをそれぞれ含んでよい。1つの実装において、ゲームアプリケーション112または118は、ゲーム、体験、もしくはその他のコンテンツを検索するか、オンライン体験プラットフォーム102によってホストされる仮想体験の仮想的なキャラクタを制御するか、またはゲーム105、画像、ビデオアイテム、ウェブページ、ドキュメントなどのコンテンツを見るもしくはアップロードするなど、ユーザがオンライン体験プラットフォーム102を使用し、オンライン体験プラットフォーム102とインタラクションすることを可能にしてよい。一例において、ゲームアプリケーションは、ウェブサーバによって提供されるコンテンツ(たとえば、仮想環境内の仮想的なキャラクタなど)にアクセスするか、そのようなコンテンツを取り出すか、提示するか、またはナビゲートすることができるウェブアプリケーション(たとえば、ウェブブラウザと連携して動作するアプリケーション)であってよい。別の例において、ゲームアプリケーションは、クライアントデバイス110または116のローカルにインストールされ、実行され、ユーザがオンライン体験プラットフォーム102とインタラクションすることを可能にするネイティブアプリケーション(たとえば、モバイルアプリケーション、アプリ、またはゲームプログラム)であってよい。ゲームアプリケーションは、ユーザに対してコンテンツ(たとえば、ウェブページ、ユーザインターフェース、メディアビュワー、オーディオストリーム)をレンダリングするか、表示するか、または提示する場合がある。実装において、ゲームアプリケーションは、ウェブページに埋め込まれる埋め込みメディアプレイヤーも含む場合がある。
【0071】
本開示の態様によれば、ゲームアプリケーション112/118は、ユーザがコンテンツを構築し、作成し、編集し、オンライン体験プラットフォーム102にアップロードし、オンライン体験プラットフォーム102とインタラクションする(たとえば、オンライン体験プラットフォーム102によってホストされるゲーム105をプレイする)ためのオンライン体験プラットフォームアプリケーションであってよい。したがって、ゲームアプリケーション112/118は、オンライン体験プラットフォーム102によってクライアントデバイス110または116に提供されてよい。別の例において、ゲームアプリケーション112/118は、サーバからダウンロードされるアプリケーションである場合がある。
【0072】
一部の実装において、ユーザは、ゲームアプリケーションを介してオンライン体験プラットフォーム102にログインする場合がある。ユーザは、ユーザアカウント情報(たとえば、ユーザ名およびパスワード)を提供することによってユーザアカウントにアクセスする場合があり、ユーザアカウントは、オンライン体験プラットフォーム102の1つまたは複数のゲーム105に参加するために利用可能な1つまたは複数のキャラクタに関連付けられる。
【0073】
概して、オンライン体験プラットフォーム102によって実行されるものとして説明される機能は、その他の実装において、適宜、クライアントデバイス110もしくは116またはサーバによって実行されることも可能である。加えて、特定の構成要素に帰せられる機能が、一緒に動作する異なるまたは複数の構成要素によって実行されることが可能である。また、オンライン体験プラットフォーム102は、適切なアプリケーションプログラミングインターフェース(API)を通じてその他のシステムまたはデバイスに提供されるサービスとしてアクセスされることが可能であり、したがって、ウェブサイトにおける使用に限定されない。
【0074】
一部の実装において、オンライン体験プラットフォーム102は、空間化オーディオAPI106を含んでよい。一部の実装において、空間化オーディオAPI106は、ソフトウェア構成要素が通信し、および/またはデータを提供/受信することを可能にする関数呼び出しの形態でユーザおよび/または開発者に機能を提供するコンピュータが実行可能なコードの一式である場合がある。空間化オーディオAPIは、空間化オーディオに関連する複数の定義されたソフトウェア機能を含み、それらのソフトウェア機能は、ユーザ作成コンテンツにおいて空間化オーディオ機能を有効にするために開発者によって使用されることが可能であり、ユーザデバイスにおけるオーディオ再生に関連する任意の機能を含み得る。
【0075】
少なくとも1つの実装において、空間化オーディオAPI106は、空間化オーディオを可能にする多くの機能、イベント、およびプロパティを含む。たとえば、空間化オーディオAPI106は、音声チャネルを作成することおよび破棄することを含む機能を含み得る。これらの機能は、特定のサーバに関連する新しい音声チャネルの作成、および/または同じメタバースプレイスのサーバの間で共有されるグローバル音声チャネルの作成を可能にする場合がある。機能は、以前に作成された音声チャネルの削除/破棄も可能にする場合がある。
【0076】
空間化オーディオAPI106は、プレイヤーを追加することおよび削除すること、ならびに音声チャネルに関連するプレイヤーを取り出すことを含む機能も含み得る。これらの機能は、所与の1人のプレイヤーもしくは複数のプレイヤーを特定の音声チャネルに追加すること、プレイヤーを特定の音声チャネルから削除すること、および/またはメタバースプレイス内の音声チャネルに関連するプレイヤーのリストを取り出すことを可能にする場合がある。一部の実装においては、プレイヤーが音声チャネルに参加するおよび/または音声チャネルを離脱するときにイベントが引き起こされるように、これらの機能によってイベントがトリガされる場合がある。
【0077】
空間化オーディオAPI106は、特定のプレイヤーに関連付けられない音声チャネルを作成することを含む機能も含み得る。このようにして、これらの機能は、非プレイヤーキャラクタ、オブジェクト、およびその他の仮想アイテムが空間化オーディオストリームにおいて使用される音を発することを可能にし得る。たとえば、メタバースプレイス内の特定の位置を有する機能するジュークボックスを表すかのように音を発するスピーカオブジェクトが、作成され得る。その後、スピーカオブジェクトの近傍のアバターは、スピーカオブジェクトからの音を含む変換されたオーディオストリームを含む空間化オーディオストリームを受信してよい。非プレイヤーキャラクタ、オブジェクト、およびその他の仮想アイテムによって生み出された音も、背景オーディオストリームに組み込まれてよい。この背景オーディオストリームは、いくつかの(たとえば、1つまたは複数の)その他のアバターまたはプレイヤーキャラクタによって生み出された音も含み得る。
【0078】
空間化オーディオAPI106は、音の伝播に関連するパラメータまたはプロパティを含むプロパティも含み得る。このようにして、プロパティは、伝播媒質(たとえば、水、空気、その他など)、音源(たとえば、プレイヤーまたは非プレイヤー音源)、(たとえば、音源のボリュームを表す)音量、減衰距離(たとえば、音が減衰し始める距離)、音が聞こえる最大距離(たとえば、アバターがこの距離よりも離れている場合、このオーディオストリームは空間化された組合せ(spatialized combination)に含められない)、(たとえば、特定のロールオフ(roll off)モードに関する)線形または対数の音のロールオフ、再生のラウドネス(loudness)、(たとえば、音声チャネルの)接続状態、ミュート状態(たとえば、プレイヤーまたは音源がミュートされている場合)、およびその他のプロパティなどのプロパティを含み得る。
【0079】
空間化オーディオAPI106は、ユーザ作成コンテンツおよび/またはゲームにおいて豊かで没入感のある空間化オーディオが使用されることを可能にする追加の機能、変数、プロパティ、および/またはパラメータをさらに含み得る。以降、空間化オーディオAPI106を利用して空間化オーディオ(または組み合わされた空間化オーディオストリーム)を提供することに関するオンライン体験プラットフォーム102の動作が、
図2Aおよび
図2Bを参照してより完全に説明される。
【0080】
図2Aは、一部の実装による、仮想メタバースにおいて空間化オーディオチャットを提供するための例示的なネットワーク環境200(たとえば、ネットワーク環境100のサブセット)の図である。ネットワーク環境200は、例示のために提供される。一部の実装において、ネットワーク環境200は、
図2Aに示されたのと同じまたは異なる方法で構成された同じ、より少ない、より多い、または異なる要素を含む場合がある。
【0081】
図2Aに示されたように、オンライン体験プラットフォーム102は、ユーザオーディオストリーム232がクライアントデバイス110から受信され(たとえば、システムオーディオ入力216からの信号230)、組み合わされた空間化オーディオストリーム250が(たとえば、システムオーディオ出力214を通じて)クライアントデバイス110において出力するために提供されるように、(たとえば、図示されていないネットワーク122を介して)クライアントデバイス110と通信してよい。
【0082】
オンライン体験プラットフォーム102は、
図1に示された構成要素に加えて、メディアサーバ202およびデータモデル206を含んでよい。クライアントデバイス110は、
図1に示された構成要素に加えて、オーディオミキサー204、空間化オーディオマネージャ205、およびサウンドエンジン260を含んでよい。
【0083】
概して、メディアサーバ202は、ネットワーク環境100の構成要素を接続し、それらの構成要素間でオーディオストリーム(またはその他のデータ)を伝達するように構成された特定用途向けに構築された論理サーバである。メディアサーバ202は、たとえば、クライアントデバイスとオンラインゲームサーバ102との間およびその逆のリアルタイム通信を容易にする場合がある。
【0084】
オーディオミキサー204は、空間化オーディオストリームに変換するために、複数のプレイヤーまたは非プレイヤーオブジェクトからのオーディオストリームを抽出するように構成されたソフトウェアモジュールであってよい。オーディオミキサー204は、オーディオミキサーオーバーライド構成要素208、エコーキャンセリング構成要素210、および/またはオーディオデバイスモジュールオーバーライド構成要素212を含んでよい。
【0085】
オーディオミキサーオーバーライド構成要素208は、空間化オーディオが可能にされるように、オンライン体験プラットフォーム102によって提供された基礎的なオーディオをオーバーライドするように構成されてよい。たとえば、オーディオミキサーオーバーライド構成要素208は、ユーザオーディオストリーム234はもちろん、空間化オーディオ出力250のコピー251も受信し、個々のオーディオストリーム238を空間化オーディオマネージャ205に提供し、典型的なオーディオストリーム236を出力として提供してよい。このようにして、オーディオミキサーオーバーライド構成要素208が初期化されない場合、クライアントデバイス110は、通常の非空間化オーディオ239を提供するように機能してよい。同様に、オーディオミキサーオーバーライド構成要素が初期化される(たとえば、空間化オーディオが特定のゲーム105のためにオンライン体験プラットフォーム102またはクライアントデバイス110において可能にされる)場合、空間化(spatialization)変換のための個々のオーディオストリーム238が、空間化オーディオマネージャ205に提供される。
【0086】
エコーキャンセリング構成要素210は、オーディオストリームからエコーおよび/またはその他の望ましくない音声アーティファクト(sound artifact)を打ち消すように構成されてよい。(たとえば、オーディオストリーム236に基づいてエコーキャンセリングされた)フィルタリングされた出力232が、エコーキャンセリング構成要素210からメディアサーバ202に提供されてよい。このようにして、エコーキャンセリング構成要素210は、高品質オーディオストリームの提供を支援するフィルタまたはその他の機能を確立してよい。
【0087】
オーディオデバイスモジュールオーバーライド構成要素212は、標準的なシステムオーディオ(たとえば、オンライン体験プラットフォーム102またはクライアントデバイス110のための空間化オーディオが可能にされていない場合)の代わりに空間化オーディオが出力されるように、クライアントデバイス110のシステムオーディオ出力をオーバーライドおよび/または無効化するように構成されてよい。オーディオデバイスモジュールオーバーライド構成要素212は、そうではなく、空間化オーディオが可能にされないときは、通常のオーディオ239を出力してよい。
【0088】
空間化オーディオマネージャ205は、空間化オーディオAPI106および関連するソフトウェア機能を使用して、1つまたは複数のユーザオーディオストリーム238を入力し、ストリームを空間化オーディオストリーム242に変換するように構成されたソフトウェア構成要素であってよい。たとえば、空間化オーディオマネージャ205は、それぞれの個々のユーザオーディオストリーム238を、新しい個々の空間化オーディオストリーム242に変換してよい。代替的に、空間化オーディオマネージャ205は、個々のユーザオーディオストリーム238を、クライアントデバイス110における空間化変換のための別の構成要素に提供する場合がある。
【0089】
さらに、それぞれの個々のユーザオーディオストリーム238は、それぞれのアバターに関連する物理コマンドおよび/またはアクションコマンドを増強するために使用されてもよい。このようにして、それぞれの個々のユーザオーディオストリーム238は、ユーザのより現実感のあるおよび/または没入感のある体験を生み出すために、オーディオと同期される顔のアニメーションを実装するために使用され得る。たとえば、顔のアニメーションが空間化オーディオに同期されるとき、ユーザが音を出しているアバターを特定することを可能にする目に見える顔の動きも持ちながら、距離による減衰が実現され、それによって、ユーザ体験をさらに向上させる。同様に、個々のオーディオストリーム238および/または空間化オーディオストリーム242は、感情および/または意図を抽出するために解釈される場合がある。このようにして、顔のアニメーションが、ユーザ体験をさらに向上させるために抽出され得る。
【0090】
さらに、それぞれの個々のユーザオーディオストリーム238は、オンライン体験プラットフォーム102上のユーザの抑制(moderation)のために使用され得る。たとえば、それぞれの個々のオーディオストリームはすでに分離されているので、暴言または汚い言葉が、関連するユーザにより簡単に関連付けられ得る。その後、(API106を通じた)「ミュート」機能または音声チャネルからの削除機能の呼び出しが、虐待行為に関連するユーザを効果的に抑制するために使用されてよい。抑制は、自動抑制ツールが発声行動、抑揚、叫び声を分析し、および/または自然言語処理技術を利用して虐待行為を特定し、関連するユーザを自動的に抑制することを可能にするために機械学習技術に拡張可能および/または適応可能である場合がある。
【0091】
データモデル206は、オーディオ変換に関連する複数の空間パラメータを含んでよい。たとえば、データモデル206は、メタバースプレイスに適用される物理法則のグループを表す1つまたは複数の空間パラメータを含んでよい。物理法則は、現実世界の音の伝播環境を表すかもしくは模倣する場合があり、誇張された現実世界の音の伝播環境を表す場合があり、および/または新たに定義された音の伝播環境を表す場合がある。音の伝播パラメータは、開発者がパラメータに特定の値を割り振ることによって、公開された空間化オーディオAPI106を通じて定義される場合がある。たとえば、異なる伝播媒質、ロールオフオーディオパラメータ、距離減衰機能/パラメータ、および/または反射パラメータが、定義される場合がある。同様に、ボリュームパラメータ、最小/最大可聴パラメータ、および/または伝播パラメータが、定義される場合がある。
【0092】
データモデル206は、開発者によって提供されたアバターおよび/またはシーン情報と、メタバースプレイス内でのアバターの実際の位置取りとをさらに含む場合がある。アバター情報は、メタバースプレイス内のアバターの位置、速度、または方向のうちの1つまたは複数を含み得る。シーン情報は、メタバースプレイス内のアバターに仮想的に近接する遮蔽、残響、仮想オブジェクト、非プレイヤーオブジェクト、開口部、オリフィス(orifice)、反射面、仮想的な天井、仮想的な床、仮想的な廊下、仮想的な出入り口、および/または仮想的な壁のうちの1つまたは複数を含み得る。シーン情報は、周辺環境の媒質(たとえば、水、空気、その他など)に関連する情報も含む場合がある。この情報/データは、メタバースプレイス内の各アバターに基づいて(たとえば、個別化された空間、アバター、およびシーン情報信号244として)分離され、空間化オーディオマネージャ205および/またはそれぞれのクライアントデバイス110/116による変換のために提供されてよい。
【0093】
その後、複数の空間化オーディオストリーム246が、クライアントデバイス110において出力するために、サウンドエンジン260(または代替的に、空間化オーディオマネージャ205および/もしくはゲームエンジン104)によって、組み合わされた空間化オーディオストリーム250へと組み合わされてよい。サウンドエンジン260は、音響効果エンジンおよび/またはオーディオエフェクト専用のゲームエンジン104の一部分を含む、任意の好適なサウンドエンジンを含んでよい。少なくとも1つの実装において、サウンドエンジン260は、独自仕様のオーディオエフェクトエンジンである。その他の実装において、サウンドエンジン260は、デジタルエフェクトエンジンまたはゲームエンジンである場合がある。
【0094】
以降、代替的なネットワーク環境275が、
図2Bを参照して説明される。
図2Bは、一部の実装による、仮想メタバースにおいて空間化オーディオチャットを提供するための例示的なネットワーク環境275(たとえば、ネットワーク環境100のサブセット)の図である。ネットワーク環境275は、例示のために提供される。一部の実装において、ネットワーク環境275は、
図2Bに示されたのと同じまたは異なる方法で構成された同じ、より少ない、より多い、または異なる要素を含む場合がある。
【0095】
図2Bに示されたように、オンライン体験プラットフォーム102は、ユーザオーディオストリーム232がクライアントデバイス110から受信され(たとえば、システムオーディオ入力216からの信号230)、組み合わされた空間化オーディオストリーム250が(たとえば、システムオーディオ出力214を通じて)クライアントデバイス110において出力するために提供されるように、(たとえば、図示されていないネットワーク122を介して)クライアントデバイス110と通信してよい。ネットワーク環境200の構成要素および/または部分と同じ付番をされたネットワーク環境275の構成要素および/または部分は、簡潔にするために、本明細書において繰り返し説明されないことが留意される。
【0096】
図2Aに示されたオンライン体験プラットフォーム102と同様のオンライン体験プラットフォーム102は、メディアサーバ202およびデータモデル206を含んでよい。
図2Aに示されたクライアントデバイス110と同様のクライアントデバイス110は、オーディオミキサー204および空間化オーディオマネージャ205を含んでよい。しかし、
図2Aの配置とは対照的に、空間化オーディオマネージャ205は、ゲームエンジン104から受信されたデータ、個々のオーディオストリーム238、ならびに個別化された空間、アバター、およびシーン情報信号244(たとえば、組み合わされた信号276)に従って、出力250を提供してよい。このようにして、空間化オーディオマネージャ205は、その中に組み込まれたまたは実装されたサウンドエンジンの機能を含んでよい。代替的に、スタンドアロンの1つのサウンドエンジン構成要素または複数のサウンドエンジン構成要素が、空間化オーディオ出力250を提供するために使用される場合がある。
【0097】
このようにして、空間化オーディオマネージャ205は、ゲームエンジン104およびデータモデル206から受信されたデータに基づいて、組み合わされた空間化オーディオストリーム250を提供する。たとえば、空間化オーディオマネージャ205は、(たとえば、オーディオシンクにおいて組み合わされた)空間、アバター、およびシーン情報信号244に基づく新しい個々の空間化オーディオストリーム276として、それぞれの個々のユーザオーディオストリーム238を受信してよい。
【0098】
図2Aおよび
図2Bを参照して上で説明されたように、複数の空間化オーディオストリーム246/276(または個々の非空間化オーディオストリーム238)が、特定のクライアントデバイス110において出力するための組み合わされた空間化オーディオストリーム250を生成するために組み合わされてよい。任意の特定の仮想メタバースプレイスまたは仮想環境において利用可能な場合によっては極めて多い数のオーディオストリームを考慮して、一部の実装は、オーディオストリームの優先順位付けを提供する。オーディオストリームの優先順位付け(オーディオストリームへの「サブスクリプション(subscription)」と呼ばれることもある)は、(たとえば、利用可能なすべてのストリームと比較して)優先順位付けされたストリームの削減されたセットが空間化オーディオストリームに変換されることを可能にする。ストリームのこの削減されたセットは、組み合わされた空間化オーディオストリームを生成するための計算サイクルの削減、システムリソースの使用量の削減、エネルギーの節約、および帯域幅の使用量の削減を含む技術的な利点および効果を提供する。
【0099】
以降、空間化オーディオAPI106ならびに利用可能なアバターおよびシーンデータを利用する、空間化オーディオストリームの優先順位付けが、
図3を参照してより完全に説明される。
【0100】
図3は、一部の実装による、仮想メタバースにおいて空間化オーディオストリームを有線順位付けするための例示的なネットワーク環境300(たとえば、ネットワーク環境100のサブセット)の図である。ネットワーク環境300は、例示のために提供される。一部の実装において、ネットワーク環境300は、
図3に示されたのと同じまたは異なる方法で構成された同じ、より少ない、より多い、または異なる要素を含む場合がある。
【0101】
図3に示されたように、メディアサーバ202およびクライアントデバイス110は、公開されたオーディオストリーム330がクライアントデバイス110から受信され、優先順位付けされたオーディオストリーム350のセットがクライアントデバイス110において変換し、組み合わせ、出力するために提供されるように、(たとえば、図示されていないネットワーク122を介して)通信してよい。一部の実装において、優先順位付けされたオーディオストリーム350は、クライアントデバイス110ではなくオンライン体験プラットフォーム102において変換され、組み合わされる場合があることが留意される。すべてのそのような修正は、本開示の範囲内である。
【0102】
クライアントデバイス110は、
図1および
図2A~
図2Bに示された構成要素に加えて、リアルタイム通信モジュール302およびサブスクリプション論理(subscription logic)312を含んでよい。メディアサーバ202は、
図1および
図2A~
図2Bに示された構成要素に加えて、リアルタイム通信モジュール306、サブスクリプションエクスチェンジ構成要素(subscription exchange component)304、およびサブスクリプションプライオリタイザ(subscription prioritizer)310を含んでよい。
【0103】
リアルタイム通信モジュール302/306は、それぞれ、クライアントデバイス110およびメディアサーバ202においてインスタンス化された、リアルタイム通信サーバのソフトウェア構成要素またはインスタンスであってよい。少なくとも1つの実装において、リアルタイム通信モジュール302/306は、公開されたWebRTC API(図示せず)によって実装されたWebRTCサーバのインスタンスである。リアルタイム通信モジュール302/306は、接続された各クライアントデバイスからの公開されたストリーム330と、接続された各クライアントデバイスへの優先順位付けされたオーディオストリーム350のセットとを渡すように構成される。
【0104】
サブスクリプションエクスチェンジ構成要素304は、リアルタイム通信モジュール306/302から、頭部伝達関数(HRTF)および/またはBaum-Welch(BW)隠れマルコフモデルの少なくとも一部の推定値332/333を受信し、オーディオストリームのセットを、クライアントデバイスに出力するためのセット331/351へと優先順位付けするように構成されたソフトウェア構成要素である。
【0105】
サブスクリプションプライオリタイザ310は、データモデル206から適切なおよび/または関連する空間パラメータ336を取り出し、空間化オーディオAPI106からいくつかのサブスクリプション要求(subscription request)334を取り出す。空間パラメータおよびサブスクリプション要求を使用して、サブスクリプションプライオリタイザは、利用可能なオーディオストリームを優先順位付けされたセット350へと優先順位付けする。優先順位付けは、たとえば、メタバースプレイス内のアバターの近接性、メタバースプレイス内のアバターの速度、メタバースプレイス内のアバターの方向、メタバースプレイス内のアバターに近接する仮想オブジェクト、ユーザデバイスの能力、帯域幅の可用性、メディアサーバ202への接続数、空間化オーディオを使用するユーザの総数、および/またはクライアントデバイス110に関連するユーザのユーザプリファレンスを含む多数の要因に基づき得る。さらなる要因は、(たとえば、メディアサーバ202とクライアントデバイス110との間の)利用可能な帯域幅、(たとえば、メディアサーバ202、クライアントデバイス110、および/または組合せの)利用可能な処理能力、(たとえば、メディアサーバ202、クライアントデバイス110、および/または組合せの)利用可能なメモリ、ならびにその他の要因を含み得る。
【0106】
サブスクリプション要求は、特定のユーザの特定のアバターに関する空間パラメータ340に基づいて個々のサブスクリプション要求338を発行するように構成されたサブスクリプション論理312に基づく。このようにして、それぞれの個々のクライアントデバイスは、その関連するアバターおよび空間パラメータ340と、たとえば、HRTFパラメータ、BW隠れマルコフモデルパラメータ、および/またはVADパラメータを含む場合があるその他の要因342とに基づいて、異なるサブスクリプション要求338を発行する。
【0107】
上述のように、優先順位付けされたストリームのセットは、アバター、アイテム、オブジェクト、およびメタバースプレイスのその他の特徴に関連する複数の空間パラメータ、ならびに計算リソース、ストレージリソース、帯域幅リソース、およびその他のリソースに基づく場合がある。以降、空間化オーディオに関連する態様の例が、
図4および
図5を参照して提供される。
【0108】
図4および
図5:メタバースプレイスにおける空間化オーディオの例
図4および
図5は、一部の実装による、オンライン仮想体験内のメタバースプレイス400およびメタバースプレイス500などの例示的な仮想環境を示す図である。メタバースプレイス400は、第1のアバター402、第2のアバター404、および第3のアバター406を含む。アバター(402~406)は、それぞれのユーザによって制御されるアバター、および/またはオンライン体験プラットフォーム102の自動制御下にあるアバター(たとえば、コンピュータ生成キャラクタ)を含み得る。
【0109】
アバター402~406に加えて、メタバースプレイス400は、第1の仮想オブジェクト408、第2の仮想オブジェクト410、第3の仮想オブジェクト412、および第4の仮想オブジェクト422を含む。仮想オブジェクトは、とりわけ、建物、建物の構成要素(たとえば、壁、窓、ドアなど)、水域(池、川、湖、海など)、家具、機械、乗り物、植物、動物などを表し得る。仮想オブジェクト(408~412)は、材料タイプ(たとえば、金属、木、布、石など)、メタバースプレイス400内のオブジェクトの位置、オブジェクトのサイズ、オブジェクトの形状、またはオブジェクトの音特性(たとえば、オブジェクトが発する環境音(ambient sound)、音がどれだけ頻繁に発せられるか、音のボリュームなど)などの1つまたは複数のオブジェクトの特性に対応する関連するデータまたはメタデータを含み得る。
【0110】
オブジェクトの音特性は、オブジェクトタイプ、オブジェクトのサイズ、オブジェクトの形状、またはオブジェクトの位置に基づき得る。たとえば、大人の大型犬を表すオブジェクトは、大型で(オブジェクトのサイズ)、キャラクタに対して所与の位置にいる(オブジェクトの位置)大人の犬(オブジェクトタイプ)に典型的な音特性を有していてよい。音特性は、サウンドファイル(たとえば、コンピュータ生成音または録音された音)によって提供され得る、オブジェクトが発する環境音(たとえば、吠え声)を含み得る。さらに、音特性は、オブジェクトが音を出す頻度(たとえば、犬がどれだけ頻繁に吠えるか)および環境音のボリューム(たとえば、所与の距離において犬の吠え声がどれだけ大きいか)を含み得る。オブジェクトの環境音のボリュームは、その後、オーディオ空間化プロセスの一部として修正され得る(たとえば、犬の吠え声は、キャラクタに近い犬に関してはより大きくされることが可能であり、キャラクタからさらに遠い犬に関してはより小さくされることが可能である)。
【0111】
図4に示された例において、オブジェクトは、家具、または建物の一部を含み得る。たとえば、仮想オブジェクト408は、メタバースプレイス間の出入り口または仮想的な境界であることが可能である。仮想オブジェクト410および仮想オブジェクト412は、壁であることが可能である。仮想オブジェクト422は、小さなテーブルまたはその他の仮想的な家具であってよい。
【0112】
アバター402は、音の経路414および416によって示されるように、話し、シミュレートされた音を発していることが可能である。音の経路414に沿ったアバター402の声は、アバター406の左から来ており、音の経路416は、仮想的な出入り口408を通ってアバター404の右から来ている。アバター402とアバター406との間の音の経路は、概ね直接的であり、一方、アバター402からアバター404への音の経路は、音の経路416によって示されるように、部分的に壁410および412で反射される。
【0113】
さらに、環境音が、テーブル422によって発せられ得る。たとえば、テーブルは、テーブル上に音を発しているスピーカまたはその他のオブジェクトを含む可能性がある。環境音は、音の経路418および419によって示される。一部の実装において、環境音は、風、雨、音楽、機械、動物、アイテムの動き、歩みなどの音を含む場合がある。環境音は、静止しているかまたは環境内を移動している場合があるオブジェクト(たとえば、車)から発せられる音も含む場合がある。環境音は、その他のアバターが環境400および/もしくは環境400内のオブジェクトを移動させるかまたは環境400および/もしくは環境400内のオブジェクトとインタラクションすることによって生み出された音も含む場合がある。
【0114】
動作中、本明細書において説明されるオーディオ空間化技術の実装は、
図4に示された例示的なメタバースプレイスに基づいて、以下の動作、すなわち、1)話しているアバターに対するそれぞれの受け取るアバター(たとえば、404または406)の位置に基づくアバター(たとえば、アバター402)の音声コミュニケーションの空間化、2)仮想環境内の任意のオブジェクト(たとえば、408、410、412、または422)に基づく音声コミュニケーションのオーディオ空間化、および3)仮想環境内の環境音(たとえば、オブジェクト410によって発せられる音)のオーディオ空間化のうちの1つまたは複数を実行する可能性がある。
【0115】
ここで
図5に目を向けると、メタバースプレイス500の上から見下ろした図が示される。示されるように、アバター502、504、506、および508の簡略化された模式図は、アバター502に関して測定された距離半径525を含む。この例において、アバター502は、空間化オーディオを要求するユーザを表す場合があり、距離半径525は、オーディオストリームの優先順位付けに使用されるパラメータまたは設定である場合がある。
【0116】
さらに示されるように、アバター位置および速度データ541、561、および581が、それぞれのアバターから発せられる矢印によって表される。この例において、アバター502に関連するユーザデバイスは、アバター504および506に関連する優先順位付けされたオーディオストリームと、半径525内の任意のオブジェクトまたは非プレイヤーアイテムに関連する環境音とを受信してよい。しかし、アバター508が矢印581によって示されるように半径525に接近し続けるならば、アバター508に関連するデータも、優先順位付けされるように準備されてよい。代替的に、計算リソースが許す場合、またはその他のパラメータが許す場合、リソースまたはその他の優先順位付けパラメータが変わる(たとえば、追加のアバターがアバター502に接近する、計算リソースの使用量が閾値を超えて増加する、背景オーディオなどの追加のオーディオストリームがより高く優先順位付けされるなど)まで、アバター508に関連するデータも優先順位付けされたオーディオストリームに含まれる場合がある。
【0117】
このようにして、豊かで没入感のあるオーディオが引き続きクライアントデバイスに効果的に提供されながらコンピューティングリソースが削減されるように、利用可能なオーディオストリームのサブセットが優先順位付けされる。
【0118】
以降、空間化オーディオストリームの作成およびオーディオストリームの優先順位付けのより詳細な検討が、
図6および
図7を参照して提供される。
【0119】
図6:空間化オーディオストリームを作成するための例示的な方法
図6は、一部の実装による、メタバースプレイスにおいて空間化オーディオを作成するための例示的な方法600の流れ図である。一部の実装において、方法600は、たとえば、サーバシステム、たとえば、
図1に示されたオンライン体験プラットフォーム102上で実施され得る。一部の実装において、方法600の一部またはすべては、
図1に示された1つもしくは複数のクライアントデバイス110および116などのシステムで、および/またはサーバシステムと1つもしくは複数のクライアントシステムとの両方で実施され得る。説明される例において、実施するシステムは、1つまたは複数のプロセッサまたは処理回路と、データベースまたはその他のアクセス可能なストレージなどの1つまたは複数のストレージデバイスとを含む。一部の実装においては、1つまたは複数のサーバおよび/またはクライアントの異なる構成要素が、方法600の異なるブロックまたはその他の部分を実行し得る。方法600は、ブロック602において開始してよい。
【0120】
ブロック602において、仮想メタバースのメタバースプレイスに関連するオーディオを受信する要求が、(たとえば、複数のユーザのうちの第1のユーザから)受信されてよい。たとえば、クライアントデバイス110(ユーザデバイスとも呼ばれる)が、第1のユーザに関連付けられる場合がある。第1のユーザは、第1のアバターに関連付けられる。さらに、複数のユーザが、メタバースプレイス内の複数のアバター(たとえば、メタバースプレイスに関与するその他のアバター)に関連付けられ得る。ブロック602は、後にブロック604が続く。
【0121】
ブロック604において、メタバースプレイスに関連するデータモデルが取り出される。たとえば、データモデル206は、データストア108に記憶される場合がある。データモデルは、メタバースプレイスに適用される物理法則のグループ(たとえば、1つまたは複数)を表す1つまたは複数の空間パラメータを含み得る。これらの物理法則は、空間的効果を高めるために(地球上で適用され得る物理法則と比較して)誇張されることが可能であり、または空間的効果をほんのわずかに実施するために減衰される場合がある。音の伝播のパラメータおよび基礎となる物理法則は、上述の空間化オーディオAPI106を通じて調整および/または変更される場合がある。ブロック604は、後にブロック606が続く。
【0122】
ブロック606において、アバター情報およびシーン情報が、要求に応答して、データモデルから抽出される。たとえば、要求は、特定のクライアントデバイスと、したがって、特定のアバターとに関連付けられてよい。このように、抽出されたアバター情報は、特定のアバター、およびメタバースプレイス内の特定のアバターに近接する複数のアバターの位置、速度、または方向のうちの1つまたは複数を含む。同様に、シーン情報は、特定のアバターに仮想的に近接する遮蔽、残響、仮想オブジェクト、非プレイヤーオブジェクト、開口部、オリフィス、反射面、仮想的な天井、仮想的な床、および/または仮想的な壁のうちの1つまたは複数を含む。ブロック606は、後にブロック608が続く。
【0123】
ブロック608において、複数のユーザの各ユーザから受信されたそれぞれのオーディオストリームが、抽出された空間パラメータを使用して変換される。変換は、アバター情報およびシーン情報に基づく。変換は、空間化オーディオストリームを作成するために1つまたは複数のオーディオ特性を修正することを含み得る。たとえば、データモデルにおいて定義されたアバター間の距離に基づいてオーディオを減衰させるための距離減衰パラメータに基づく減衰が、オーディオ特性を変更するために使用されてよい。同様に、(たとえば、「フェード(fading)」または「ロール(rolling)」効果を使用する)オーディオのロールイン(rolling in)またはロールアウト(rolling out)が、オーディオ特性を変更するために実施されてよい。さらに、ボリュームの上昇、ボリュームの低下、ドップラーシフト、残響、もしくは反射が提供されてよく、および/またはその他の特性が変更されてよい。このようにして、変換は、メタバースプレイス内のそれぞれの個々のアバターおよび/または仮想オブジェクト/アイテムのための空間化オーディオストリームを出力する。ブロック608は、後にブロック610が続く。
【0124】
ブロック610において、空間化オーディオストリームが、組み合わされた空間化オーディオストリームを作成するために組み合わされる。組合せは、オンライン体験プラットフォーム102で、クライアントデバイス110/116で、および/またはオンライン体験プラットフォームとクライアントデバイスとの組合せによって実行される場合がある。一部の実装において、組合せは、優先順位付けされたオーディオストリームのセットのみに関して実行される場合がある。その他の実装においては、利用可能なオーディオストリームのサブセットが、メタバースプレイス内のアバターへの近接性または閾値の距離に基づいて変換される。変換されるオーディオストリームの数に関するその他の変更および制限も可能であり、そのような変更は本開示の範囲内である。
【0125】
少なくとも1つの実装によれば、背景オーディオのストリームも、組み合わされた空間化オーディオストリームを作成するために空間化オーディオストリームと組み合わされる。たとえば、多数の参加者を背景の雑音/しゃべりにミキシングする背景または「特殊」ストリームが、より現実感のある体験を提供する場合がある。たとえば、50人が話している部屋において、アバターが、すぐ近くにいるいくつかのアバターと会話をしている場合がある。近接した参加者からのオーディオが最も明瞭であってよいが、アバターの周りには背景のしゃべりもある(たとえば、純粋な無音は現実感がないであろう)。したがって、背景ストリームが、比較的簡素な方法で残りの50体のアバターからの全体的な背景のしゃべりを含むように予めミキシングされてよい(たとえば、すべての参加者への組み合わされたストリームによって使用される、すべての参加者からの均一な背景ストリーム)。このようにして、背景オーディオは、第1のユーザとは異なるその他のユーザから受信されたオーディオ、メタバースプレイス内でのアバターの動きに基づいて生成されたオーディオ、および/または全体的なもしくは「特殊な」背景ストリームのうちの1つまたは複数に基づいて生成され得る。ブロック610は、後にブロック612が続く。
【0126】
ブロック612において、組み合わされた空間化オーディオストリームが、ユーザデバイスに接続されたオーディオ出力デバイス、たとえば、スピーカまたはヘッドフォンのセットを通じて出力するためにユーザデバイスに提供される。一部の実装において、空間化オーディオストリームは、仮想現実ヘッドセット、拡張現実ヘッドセット、ヘッドマウントデバイスなどのオーディオ出力デバイスを介して提供される場合がある。
【0127】
ブロック602~612は、上で説明されたのと異なる順序で実行される(もしくは繰り返される)ことが可能であり、および/または1つもしくは複数のブロックが、省略されることが可能である。たとえば、データ抽出(ブロック604~606)は、オーディオ変換および組合せ(ブロック608~612)とは独立して実行されてよい。さらに、要求の受信、関連データの抽出、およびオーディオの変換は、一部の実装においては、並行して、または異なる構成要素によって実行されてよい。
【0128】
以降、ストリームの優先順位付けのより詳細な検討が、
図7を参照して提供される。
【0129】
図7:空間化オーディオストリームを優先順位付けするための例示的な方法
図7は、一部の実装による、分類に基づいてユーザにコンテンツを提供するための例示的な方法700の流れ図である。一部の実装において、方法700は、たとえば、サーバシステム、たとえば、
図1に示されたオンライン体験プラットフォーム102上で実施され得る。一部の実装において、方法700の一部またはすべては、
図1に示された1つもしくは複数のクライアントデバイス110および116などのシステムで、および/またはサーバシステムと1つもしくは複数のクライアントシステムとの両方で実施され得る。説明される例において、実施するシステムは、1つまたは複数のプロセッサまたは処理回路と、データベースまたはその他のアクセス可能なストレージなどの1つまたは複数のストレージデバイスとを含む。一部の実装においては、1つまたは複数のサーバおよび/またはクライアントの異なる構成要素が、方法700の異なるブロックまたはその他の部分を実行し得る。方法700は、ブロック702において開始してよい。
【0130】
ブロック702において、仮想メタバースのメタバースプレイスに関連するオーディオを受信する要求が、(たとえば、複数のユーザのうちの第1のユーザから)受信されてよい。たとえば、クライアントデバイス110が、第1のユーザに関連付けられる場合がある。第1のユーザは、第1のアバターに関連付けられる。さらに、複数のユーザが、メタバースプレイス内の複数のアバター(たとえば、メタバースプレイスに関与するアバター)に関連付けられ得る。ブロック702は、後にブロック704が続く。
【0131】
ブロック704において、優先順位付けされたオーディオストリームのセットが、第1のユーザに関して決定される。優先順位付けされたオーディオストリームのセットは、メタバースプレイス内の複数のユーザの各ユーザから受信されたすべてのオーディオストリームおよびその他のすべてのオーディオストリーム(たとえば、環境音、非プレイヤーキャラクタ/アイテムの音など)のランク付けされたサブセットである。優先順位付けは、たとえば、(たとえば、
図5に示された)閾値の距離および/または閾値の半径に基づいてよい。
【0132】
優先順位付けは、メタバースプレイス内のアバターの近接性、メタバースプレイス内のアバターの速度、メタバースプレイス内のアバターの方向、メタバースプレイス内のアバターに近接する仮想オブジェクト、ユーザデバイスの能力、または第1のユーザのユーザプリファレンスにも基づく場合がある。たとえば、優先順位付けは、アバターが目標のアバターに向かって移動していること、アバターが目標のアバターの方を向いていること、およびその他の同様の優先順位付けパラメータを考慮に入れてよい。
【0133】
優先順位付けは、クライアントデバイスの処理リソースおよび/または能力にも基づく場合がある。たとえば、優先順位付けは、特定の数の空間化オーディオストリームを扱うのに十分なリソースが存在するかどうかを判定するために、メモリの使用量、ディスクの使用量、帯域幅の可用性、プロセッサの使用量、およびその他のリソースの使用量を考慮に入れてよい。そのとき、優先順位付けは、競合または閾値を超えるさらなるリソースの利用を回避するために特定の数のストリームが優先順位付けされるように、ストリームを優先順位付けしてよい。
【0134】
優先順位付けは、メディアサーバの処理リソースおよび/または能力にも基づく場合がある。たとえば、優先順位付けは、特定の数の空間化オーディオストリームを扱うのに十分なリソースが存在するかどうかを判定するために、メモリの使用量、ストレージの使用量、帯域幅の可用性、プロセッサの使用量、アクティブな接続の数、非アクティブな接続の数、ユーザの総数、およびその他のリソースの使用量を考慮に入れてよい。そのとき、優先順位付けは、競合または閾値を超えるさらなるリソースの利用を回避するために特定の数のストリームが優先順位付けされるように、ストリームを優先順位付けしてよい。
【0135】
優先順位付けは、オンライン体験プラットフォームの処理リソースおよび/または能力にも基づく場合がある。たとえば、優先順位付けは、特定の数の空間化オーディオストリームを扱うのに十分なリソースが存在するかどうかを判定するために、メモリの使用量、ストレージの使用量、帯域幅の可用性、プロセッサの使用量、アクティブな接続の数、非アクティブな接続の数、ユーザの総数、アクティブなオンライン体験の数、およびその他のリソースの使用量を考慮に入れてよい。そのとき、優先順位付けは、競合または閾値を超えるさらなるリソースの利用を回避するために特定の数のストリームが優先順位付けされるように、ストリームを優先順位付けしてよい。
【0136】
優先順位付けの根拠に関するその他の変更も可能であり、本開示の範囲内である。ブロック704は、後にブロック706が続く。
【0137】
ブロック706において、優先順位付けされたオーディオストリームのそれぞれのオーディオストリームが、抽出された空間パラメータを使用して変換される。変換は、アバター情報およびシーン情報に基づく。変換は、空間化オーディオストリームを作成するために1つまたは複数のオーディオ特性を修正することを含み得る。たとえば、データモデルにおいて定義されたアバター間の距離に基づいてオーディオを減衰させるための距離減衰パラメータに基づく減衰が、オーディオ特性を変更するために使用されてよい。同様に、オーディオのロールインまたはロールアウトが、オーディオ特性を変更するために実施されてよい。さらに、ボリュームの上昇、ボリュームの低下、ドップラーシフト、残響、反射、およびその他の特性が、変更されてよい。このようにして、変換は、優先順位付けされたオーディオストリームに関連付けられるそれぞれの個々のアバターおよび/または仮想オブジェクト/アイテムのための空間化オーディオストリームを出力する。ブロック706は、後にブロック708が続く。
【0138】
ブロック708において、空間化オーディオストリームが、組み合わされた空間化オーディオストリームを作成するために組み合わされる。組合せは、オンライン体験プラットフォーム102で、クライアントデバイス110/116で、および/またはオンライン体験プラットフォームとクライアントデバイスとの組合せによって実行される場合がある。上述のように、特殊または背景オーディオストリームも、空間化オーディオ出力に環境および/または背景オーディオを提供するために組み合わされる場合がある。組合せは、優先順位付けされたオーディオストリームのセットのみに関して実行される場合がある。ブロック708は、後にブロック710が続く。
【0139】
ブロック710において、組み合わされた空間化オーディオストリームが、ユーザデバイスに接続されたオーディオ出力デバイス、たとえば、スピーカまたはヘッドフォンのセットを通じて出力するためにユーザデバイスに提供される。
【0140】
ブロック702~710は、上で説明されたのと異なる順序で実行される(もしくは繰り返される)ことが可能であり、および/または1つもしくは複数のブロックが、省略されることが可能である。方法600および/または700は、サーバ(たとえば、102)および/またはクライアントデバイス(たとえば、110もしくは116)上で実行され得る。さらに、方法600および700の一部は、任意の所望の実装に従って、組み合わされ、順番にまたは並行して実行される場合がある。
【0141】
上述のように、システム、方法、およびコンピュータ可読媒体は、仮想体験において空間化オーディオを提供してよい。堅牢な空間化オーディオAPIを提供することによって、開発者は、開発者が作成するほぼすべての仮想体験に空間化オーディオを使用する可能性がある。空間化オーディオAPIで増強された典型的なバーチャル体験の没入感の質は、豊かなユーザ体験を提供し、ユーザエンゲージメントを高め、(たとえば、オーディオの位置を通じて)直感的なフィードバックを提供し、空間化オーディオを実装する複雑さを大幅に減らす。
【0142】
以降、
図1~
図3に示された異なるデバイスを実装するために使用されてよい様々なコンピューティングデバイスのより詳細な説明が、
図8を参照して提供される。
【0143】
図8は、一部の実装による、本明細書において説明された1つまたは複数の特徴を実装するために使用されてよい例示的なコンピューティングデバイス800のブロック図である。一例において、デバイス800は、コンピュータデバイス(たとえば、
図1の102、110、および/または116)を実装し、本明細書において説明される適切な方法の実装を実行するために使用されてよい。コンピューティングデバイス800は、任意の好適なコンピュータシステム、サーバ、またはその他の電子もしくはハードウェアデバイスであることが可能である。たとえば、コンピューティングデバイス800は、メインフレームコンピュータ、デスクトップコンピュータ、ワークステーション、ポータブルコンピュータ、または電子デバイス(ポータブルデバイス、モバイルデバイス、セル電話、スマートフォン、タブレットコンピュータ、テレビ、TVセットトップボックス、携帯情報端末(PDA)、メディアプレイヤー、ゲームデバイス、ウェアラブルデバイスなど)であることが可能である。一部の実装において、デバイス800は、プロセッサ802、メモリ804、入力/出力(I/O)インターフェース806、およびオーディオ/ビデオ入力/出力デバイス814(たとえば、ディスプレイスクリーン、タッチスクリーン、ディスプレイゴーグルまたは眼鏡、オーディオスピーカ、ヘッドフォン、マイクロフォンなど)を含む。
【0144】
プロセッサ802は、プログラムコードを実行し、デバイス800の基本動作を制御するための1つまたは複数のプロセッサおよび/または処理回路であることが可能である。「プロセッサ」は、データ、信号、またはその他の情報を処理する任意の好適なハードウェアおよび/またはソフトウェアシステム、メカニズム、または構成要素を含む。プロセッサは、汎用中央演算処理装置(CPU)、複数の処理ユニット、機能を実現するための専用回路を有するシステム、またはその他のシステムを含んでよい。処理は、特定の地理的場所に限定されるまたは時間的な制限を有するとは限らない。たとえば、プロセッサは、「リアルタイム」、「オフライン」、「バッチモード」などでそのプロセッサの機能を実行する場合がある。処理の一部は、異なる(または同じ)処理システムによって異なる時間に異なる場所で実行される場合がある。コンピュータは、メモリと通信する任意のプロセッサであってよい。
【0145】
メモリ804は、プロセッサ802によるアクセスのために概してデバイス800内に設けられ、プロセッサによる実行のために命令を記憶するのに好適であり、プロセッサ802と分けて配置されたおよび/またはプロセッサ802と統合された任意の好適なプロセッサ可読ストレージ媒体、たとえば、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能読み出し専用メモリ(EEPROM)、フラッシュメモリなどであってよい。メモリ804は、オペレーティングシステム808、アプリケーション810、および関連するデータ812を含む、プロセッサ802によってサーバデバイス800上で動作するソフトウェアを記憶することができる。一部の実装において、アプリケーション810は、プロセッサ802が本明細書において説明された機能、たとえば、
図6および
図7の方法の一部もしくはすべてを実行することを可能にする命令を含み得る。
【0146】
たとえば、メモリ804は、オンライン体験プラットフォーム(たとえば、102)またはメタバースプレイス内で空間化オーディオを優先順位付けするおよび/または提供するためのソフトウェア命令を含み得る。メモリ804内のソフトウェアのいずれも、代替的に、任意のその他の好適な記憶場所またはコンピュータ可読媒体に記憶され得る。さらに、メモリ804(および/またはその他の接続されたストレージデバイス)は、本明細書において説明された特徴において使用される命令およびデータを記憶することができる。メモリ804および任意のその他のタイプのストレージ(磁気ディスク、光ディスク、磁気テープ、またはその他の有形の媒体)は、「ストレージ」または「ストレージデバイス」とみなされ得る。
【0147】
I/Oインターフェース806は、サーバデバイス800とその他のシステムおよびデバイスとのインターフェースを取ることを可能にするための機能を提供することができる。たとえば、ネットワーク通信デバイス、ストレージデバイス(たとえば、メモリおよび/またはデータストア108)、ならびに入力/出力デバイスは、インターフェース806を介して通信することができる。一部の実装において、I/Oインターフェースは、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナなど)および/または出力デバイス(ディスプレイデバイス、スピーカデバイス、プリンタ、モニタなど)を含むインターフェースデバイスに接続し得る。
【0148】
図示を容易にするために、
図8は、プロセッサ802、メモリ804、I/Oインターフェース806、ソフトウェアブロック808および810、ならびにデータベース812の各々に関して1つのブロックを示す。これらのブロックは、1つまたは複数のプロセッサもしくは処理回路、オペレーティングシステム、メモリ、I/Oインターフェース、アプリケーション、および/またはソフトウェアモジュールを表す場合がある。その他の実装において、デバイス800は、示された構成要素のすべてを有するわけではない可能性があり、および/または本明細書に示された要素の代わりにもしくは本明細書に示された要素に加えてその他のタイプの要素を含むその他の要素を有する可能性がある。オンライン体験プラットフォーム102が本明細書の一部の実装において説明されたように動作を実行するものとして説明されているが、オンライン体験プラットフォーム102もしくは同様のシステムの任意の好適な構成要素もしくは構成要素の組合せまたはそのようなシステムに関連する任意の好適な1つのプロセッサもしくは複数のプロセッサが、説明された動作を実行する場合がある。
【0149】
ユーザデバイスが、本明細書において説明された特徴を実装するおよび/または本明細書において説明された特徴とともに使用されることも可能である。例示的なユーザデバイスは、デバイス800と同様のいくつかの構成要素、たとえば、プロセッサ802、メモリ804、およびI/Oインターフェース806を含むコンピュータデバイスであることが可能である。クライアントデバイスに好適なオペレーティングシステム、ソフトウェア、およびアプリケーションが、メモリに備えられ、プロセッサによって使用され得る。クライアントデバイスのためのI/Oインターフェースは、ネットワーク通信デバイスならびに入力および出力デバイス、たとえば、音をキャプチャするためのマイクロフォン、画像もしくはビデオをキャプチャするためのカメラ、音を出力するためのオーディオスピーカデバイス、画像もしくはビデオを出力するためのディスプレイデバイス、またはその他の出力デバイスに接続され得る。たとえば、オーディオ/ビデオ入力/出力デバイス814内のディスプレイデバイスは、本明細書において説明されるように画像の前および後処理を表示するためにデバイス800に接続される(または含まれる)ことが可能であり、そのようなディスプレイデバイスは、任意の好適なディスプレイデバイス、たとえば、LCD、LED、またはプラズマディスプレイスクリーン、CRT、テレビ、モニタ、タッチスクリーン、3-Dディスプレイスクリーン、プロジェクタ、またはその他の視覚表示デバイスを含み得る。一部の実装は、オーディオ出力デバイス、たとえば、テキストをしゃべる音声出力または合成を提供し得る。
【0150】
本明細書に記載の方法、ブロック、および/または動作は、適宜、示されたもしくは説明されたのと異なる順序で実行される、および/またはその他のブロックもしくは動作と同時に(部分的にもしくは完全に)実行されることが可能である。一部のブロックまたは動作は、データのある部分のために実行され、たとえば、データの別の部分のために後で再び実行されることが可能である。説明されたブロックおよび動作のすべてが、様々な実装で実行されるとは限らない。一部の実装において、ブロックおよび動作は、複数回、異なる順序で、および/または方法の中で異なるときに実行されることが可能である。
【0151】
一部の実装において、方法の一部またはすべては、1つまたは複数のクライアントデバイスなどのシステム上で実施され得る。一部の実装において、本明細書に記載の1つまたは複数の方法は、たとえば、サーバシステム上で、および/またはサーバシステムとクライアントシステムとの両方で実施され得る。一部の実装においては、1つまたは複数のサーバおよび/またはクライアントの異なる構成要素が、方法の異なるブロック、動作、またはその他の部分を実行し得る。
【0152】
本明細書において説明された1つまたは複数の方法(たとえば、方法600および/または700)は、コンピュータ上で実行され得るコンピュータプログラム命令またはコードによって実装されることが可能である。たとえば、コードは、1つまたは複数のデジタルプロセッサ(たとえば、マイクロプロセッサまたはその他の処理回路)によって実施されることが可能であり、非一時的コンピュータ可読媒体(たとえば、ストレージ媒体)、たとえば、半導体またはソリッドステートメモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、硬質磁気ディスク、光ディスク、ソリッドステートメモリドライブなどを含む磁気式、光学式、電磁式、または半導体ストレージ媒体を含むコンピュータプログラム製品に記憶されることが可能である。プログラム命令は、たとえば、サーバ(たとえば、分散型システムおよび/またはクラウドコンピューティングシステム)から配信されるサービスとしてのソフトウェア(SaaS)の形態で電子信号に含まれ、電子信号として提供されることも可能である。代替的に、1つまたは複数の方法は、ハードウェア(論理ゲートなど)に、またはハードウェアとソフトウェアとの組合せに実装され得る。例示的なハードウェアは、プログラミング可能なプロセッサ(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、複合プログラマブルロジックデバイス)、汎用プロセッサ、グラフィックスプロセッサ、特定用途向け集積回路(ASIC)などであることが可能である。1つまたは複数の方法は、システム上で実行されるアプリケーションの一部もしくは構成要素として、またはその他のアプリケーションおよびオペレーティングシステムと連携して実行されるアプリケーションもしくはソフトウェアとして実行され得る。
【0153】
本明細書において説明された1つまたは複数の方法は、任意のタイプのコンピューティングデバイス上で実行され得るスタンドアロンのプログラム、ウェブブラウザ上で実行されるプログラム、モバイルコンピューティングデバイス(たとえば、セル電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス(腕時計、腕章、装身具、帽子、ゴーグル、眼鏡など)、ラップトップコンピュータなど)上で実行されるモバイルアプリケーション(「アプリ」)内で実行され得る。一例においては、クライアント/サーバアーキテクチャが、使用されることが可能であり、たとえば、(クライアントデバイスとしての)モバイルコンピューティングデバイスが、サーバデバイスにユーザ入力データを送信し、出力するための(たとえば、表示するための)最終出力データをサーバから受信する。別の例においては、すべての計算が、モバイルコンピューティングデバイス上のモバイルアプリ(および/またはその他のアプリ)内で実行され得る。別の例においては、計算が、モバイルコンピューティングデバイスと1つまたは複数のサーバデバイスとの間に分けられ得る。
【0154】
説明がその特定の実装に関連して述べられたが、これらの特定の実装は例示的であるに過ぎず、限定的でない。例において示された概念は、その他の例および実装に適用される場合がある。
【0155】
本明細書において検討された特定の実装がユーザデータ(たとえば、ユーザのデモグラフィックス(demographics)、プラットフォーム上のユーザの行動データ、ユーザの検索履歴、購入および/または閲覧されたアイテム、プラットフォーム上のユーザの交友関係など)を取得または使用する場合がある状況において、ユーザは、そのような情報が収集、記憶、または使用されるかどうか、およびどのようにして収集、記憶、または使用されるかを制御するための選択肢を提供される。すなわち、本明細書において検討された実装は、明示的なユーザの認可を受け、適用され得る規制を遵守した上で、ユーザ情報を収集、記憶、および/または使用する。
【0156】
ユーザは、プログラムまたは特徴がプログラムまたは特徴に関連するその特定のユーザまたはその他のユーザについてのユーザ情報を収集するかどうかを制御することを可能にされる。情報が収集されるべきである各ユーザは、情報が収集されるかどうかおよび情報のどの部分が収集されるべきであるかに関するパーミッションまたは認可を与えるための、そのユーザに関連する情報収集の制御をユーザが行使することを可能にする選択肢を(たとえば、ユーザインターフェースを介して)提示される。さらに、特定のデータが、個人を特定できる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で修正される場合がある。一例として、ユーザのアイデンティティ(identity)が、個人を特定できる情報が決定され得ないように、(たとえば、仮名、数値などを使用した置換によって)修正される場合がある。別の例として、ユーザの地理的位置が、より大きな地域(たとえば、都市、郵便番号、州、国など)に一般化される場合がある。
【0157】
本開示において説明された機能ブロック、動作、特徴、方法、デバイス、およびシステムは、当業者に知られているようにシステム、デバイス、および機能ブロックの異なる組合せに統合されるかまたは分けられる場合があることに留意されたい。任意の好適なプログラミング言語およびプログラミング技術が、特定の実装のルーチンを実装するために使用されてよい。異なるプログラミング技術、たとえば、手続き型またはオブジェクト指向プログラミング技術が、使用される場合がある。ルーチンは、単一の処理デバイスまたは複数のプロセッサ上で実行される場合がある。ステップ、動作、または計算が特定の順序で提示される場合があるが、順序は異なる特定の実装において変更されてよい。一部の実装では、本明細書において逐次的であるものとして示された複数のステップまたは動作が、同時に実行される場合がある。
【符号の説明】
【0158】
100 ネットワーク環境
102 オンライン体験プラットフォーム
104 ゲームエンジン、仮想体験エンジン
105 ゲーム、仮想体験、ゲームアプリケーション
106 空間オーディオAPI、空間化オーディオAPI
108 データストア
110/116 クライアントデバイス
110 第1のクライアントデバイス
112 ゲームアプリケーション、仮想体験アプリケーション
114 ユーザ
116 第2のクライアントデバイス
118 ゲームアプリケーション、仮想体験アプリケーション
120 ユーザ
122 ネットワーク
200 ネットワーク環境
202 メディアサーバ
204 オーディオミキサー
205 空間化オーディオマネージャ
206 データモデル
208 オーディオミキサーオーバーライド構成要素
210 エコーキャンセリング構成要素
212 オーディオデバイスモジュールオーバーライド構成要素
214 システムオーディオ出力
216 システムオーディオ入力
230 信号
232 ユーザオーディオストリーム、フィルタリングされた出力
234 ユーザオーディオストリーム
236 典型的なオーディオストリーム
238 個々のオーディオストリーム
239 通常の非空間化オーディオ、非空間化オーディオストリーム
242 空間化オーディオストリーム
244 空間、アバター、およびシーン情報信号
246 空間化オーディオストリーム
250 組み合わされた空間化オーディオストリーム、空間化オーディオ出力
251 空間化オーディオ出力のコピー
260 サウンドエンジン
275 代替的なネットワーク環境
276 組み合わされた信号
300 ネットワーク環境
302 リアルタイム通信モジュール
304 サブスクリプションエクスチェンジ構成要素
306 リアルタイム通信モジュール
310 サブスクリプションプライオリタイザ
312 サブスクリプション論理
330 公開されたオーディオストリーム
331 セット
332 頭部伝達関数(HRTF)および/またはBaum-Welch(BW)隠れマルコフモデルの少なくとも一部の推定値
333 頭部伝達関数(HRTF)および/またはBaum-Welch(BW)隠れマルコフモデルの少なくとも一部の推定値
334 サブスクリプション要求
336 空間パラメータ
338 サブスクリプション要求
340 空間パラメータ
342 その他の要因
350 優先順位付けされたオーディオストリーム、優先順位付けされたセット
351 セット
400 メタバースプレイス
402 第1のアバター
404 第2のアバター
406 第3のアバター
408 第1の仮想オブジェクト、仮想的な出入り口
410 第2の仮想オブジェクト、壁
412 第3の仮想オブジェクト、壁
414 音の経路
416 音の経路
418 音の経路
419 音の経路
422 第4の仮想オブジェクト、テーブル
500 メタバースプレイス
502 アバター
504 アバター
506 アバター
508 アバター
525 距離半径
541 アバター位置および速度データ
561 アバター位置および速度データ
581 アバター位置および速度データ
600 方法
700 方法
800 コンピューティングデバイス
802 プロセッサ
804 メモリ
806 入力/出力(I/O)インターフェース
808 オペレーティングシステム
810 アプリケーション
812 関連するデータ、データベース
814 オーディオ/ビデオ入力/出力デバイス
【国際調査報告】