(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-10
(45)【発行日】2024-06-18
(54)【発明の名称】3次元(3D)環境用の統合された入出力(I/O)
(51)【国際特許分類】
G06T 19/00 20110101AFI20240611BHJP
G06T 13/20 20110101ALI20240611BHJP
G06T 13/40 20110101ALI20240611BHJP
G06F 3/04815 20220101ALI20240611BHJP
G06F 3/01 20060101ALI20240611BHJP
A63F 13/52 20140101ALI20240611BHJP
A63F 13/428 20140101ALI20240611BHJP
A63F 13/40 20140101ALI20240611BHJP
【FI】
G06T19/00 300A
G06T13/20 500
G06T13/40
G06F3/04815
G06F3/01 510
A63F13/52
A63F13/428
A63F13/40
【外国語出願】
(21)【出願番号】P 2022029442
(22)【出願日】2022-02-28
【審査請求日】2022-04-26
(32)【優先日】2021-03-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520317055
【氏名又は名称】ロブロックス・コーポレーション
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】デイヴィッド・ビー・バシュッキ
(72)【発明者】
【氏名】フィリップ・クラヴェル
(72)【発明者】
【氏名】モルガン・クレメンス・タッカー
【審査官】▲高▼橋 真之
(56)【参考文献】
【文献】特開2004-274550(JP,A)
【文献】特開2012-063921(JP,A)
【文献】特開2003-037826(JP,A)
【文献】特開2004-266746(JP,A)
【文献】米国特許出願公開第2021/0012770(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
G06T 13/20
G06T 13/40
G06F 3/04815
G06F 3/01
A63F 13/52
A63F 13/428
A63F 13/40
(57)【特許請求の範囲】
【請求項1】
3次元(3D)環境を動作させるための方法であって、
第1のユーザから第1の入力信号を受信し、前記第1の入力信号を使用して前記3D環境における前記第1のユーザを表す第1のアバターを動画化するステップであって、前記第1のアバターの前記動画化が、前記第1のユーザから前記第1の入力信号が受信される第1の入力モードと、前記第1の入力信号によって提供される感情情報と
、前記第1のユーザと少なくとも第2のユーザとの関係性に関する情報を含むユーザプロファイル情報とに少なくとも部分的に基づく、ステップと、
前記第1のユーザおよび
前記少なくとも第2のユーザに前記3D環境を提示するステップであって、前記第1のユーザおよび前記少なくとも第2のユーザへの前記3D環境の提示が、前記第1のユーザおよび前記少なくとも第2のユーザによって選択されるそれぞれの第1の出力モードに基づく、ステップと、
前記第1のユーザの位置の変化に応じて、前記第1のユーザの入力モードを前記第1の入力モードから第2の入力モードに変更するステップと、を含み、
前記第2の入力モードへの前記変更は、前記第1のユーザのクライアントデバイス内のツールによって、前記第1のユーザが、前記第1の入力モードが制限される環境に移動したことを検出することを含む、
方法。
【請求項2】
前記第1のユーザの前記第2の入力モードへの前記変更は、前記第2のユーザの前記第1の出力モードを介して前記第2のユーザに提示される前記3D環境では検出不能である、請求項1に記載の方法。
【請求項3】
前記第1のユーザの前記位置の前記変化に応じて、前記第1のユーザの前記第1の出力モードを前記第1の出力モードから第2の出力モードに変更するステップをさらに含む、請求項1に記載の方法。
【請求項4】
前記第1の入力モードは、テキストのみ、音声のみ、音声付きのカメラトラッキング、およびテキスト付きのカメラトラッキングのうちの1つを含み、前記第1の出力モードは、テキストのみ、音声のみ、音声付きのアバター動画、およびテキスト付きのアバター動画のうちの1つを含む、請求項1に記載の方法。
【請求項5】
前記3D環境は、3D環境プラットフォームによって実現され、入力モードおよび出力モードは、前記第1および第2のユーザのクライアントデバイスの機能、または前記第1のユーザおよび前記少なくとも第2のユーザの位置のうちの少なくとも一方に基づいて前記3D環境プラットフォームによって選択可能である、請求項1に記載の方法。
【請求項6】
入力モードおよび出力モードは、前記第1のユーザおよび前記少なくとも第2のユーザによって選択可能である、請求項1に記載の方法。
【請求項7】
前記少なくとも第2のユーザによって選択された前記第1の出力モードは、前記第1のアバターの提示について前記第1のユーザによって選択された設定を無効にする、請求項1に記載の方法。
【請求項8】
プロセッサによる実行に応じて、前記プロセッサに3次元(3D)環境についての動作を実行させるかまたは前記3D環境についての動作の実行を制御させる命令が記憶された非一時的コンピュータ可読媒体であって、前記動作は、
第1のユーザから第1の入力信号を受信し、前記第1の入力信号を使用して前記3D環境における前記第1のユーザを表す第1のアバターを動画化する動作であって、前記第1のアバターの前記動画化が、前記第1のユーザから前記第1の入力信号が受信される第1の入力モードと、前記第1の入力信号によって提供される感情情報と
、前記第1のユーザと少なくとも第2のユーザとの関係性に関する情報を含むユーザプロファイル情報とに少なくとも部分的に基づく、動作と、
前記第1のユーザおよび
前記少なくとも第2のユーザに前記3D環境を提示する動作であって、前記第1のユーザおよび前記少なくとも第2のユーザへの前記3D環境の提示が、前記第1のユーザおよび前記少なくとも第2のユーザによって選択されるそれぞれの第1の出力モードに基づく、動作と、
前記第1のユーザの位置の変化に応じて、前記第1のユーザの入力モードを前記第1の入力モードから第2の入力モードに変更する動作とを含み、
前記第2の入力モードへの前記変更は、前記第1のユーザのクライアントデバイス内のツールによって、前記第1のユーザが、前記第1の入力モードが制限される環境に移動したことを検出することを含む、
非一時的コンピュータ可読媒体。
【請求項9】
前記第1のユーザの前記第2の入力モードへの前記変更は、前記第2のユーザの前記第1の出力モードを介して前記第2のユーザに提示される前記3D環境では検出不能である、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項10】
前記動作は、
前記第1のユーザの前記位置の前記変化に応じて、前記第1のユーザの前記第1の出力モードを前記第1の出力モードから第2の出力モードに変更する動作をさらに含む、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項11】
前記第1の入力モードは、テキストのみ、音声のみ、音声付きのカメラトラッキング、およびテキスト付きのカメラトラッキングのうちの1つを含み、前記第1の出力モードは、テキストのみ、音声のみ、音声付きのアバター動画、およびテキスト付きのアバター動画のうちの1つを含む、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項12】
前記3D環境は、3D環境プラットフォームによって実現され、入力モードおよび出力モードは、前記第1および第2のユーザのクライアントデバイスの機能、または前記第1のユーザおよび前記少なくとも第2のユーザの位置のうちの少なくとも一方に基づいて前記3D環境プラットフォームによって選択可能である、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項13】
入力モードおよび出力モードは、前記第1のユーザおよび前記少なくとも第2のユーザによって選択可能である、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項14】
前記少なくとも第2のユーザによって選択された前記第1の出力モードは、前記第1のアバターの提示について前記第1のユーザによって選択された設定を無効にする、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項15】
プロセッサと、
前記プロセッサに結合された非一時的コンピュータ可読媒体であって、前記プロセッサによる実行に応じて、前記プロセッサに3次元(3D)環境についての動作を実行させるかまたは前記3D環境についての動作の実行を制御させる命令が記憶された非一時的コンピュータ可読媒体とを備える装置であって、前記動作は、
第1のユーザから第1の入力信号を受信し、前記第1の入力信号を使用して前記3D環境における前記第1のユーザを表す第1のアバターを動画化する動作であって、前記第1のアバターの前記動画化が、前記第1のユーザから前記第1の入力信号が受信される第1の入力モードと、前記第1の入力信号によって提供される感情情報と
、前記第1のユーザと少なくとも第2のユーザとの関係性に関する情報を含むユーザプロファイル情報とに少なくとも部分的に基づく、動作と、
前記第1のユーザおよび
前記少なくとも第2のユーザに前記3D環境を提示する動作であって、前記第1のユーザおよび前記少なくとも第2のユーザへの前記3D環境の提示が、前記第1のユーザおよび前記少なくとも第2のユーザによって選択されるそれぞれの第1の出力モードに基づく、動作と、
前記第1のユーザの位置の変化に応じて、前記第1のユーザの入力モードを前記第1の入力モードから第2の入力モードに変更する動作とを含み、
前記第2の入力モードへの前記変更は、前記第1のユーザのクライアントデバイス内のツールによって、前記第1のユーザが、前記第1の入力モードが制限される環境に移動したことを検出することを含む、
装置。
【請求項16】
前記第1のユーザの前記第2の入力モードへの前記変更は、前記第2のユーザの前記第1の出力モードを介して前記第2のユーザに提示される前記3D環境では検出不能である、請求項15に記載の装置。
【請求項17】
前記動作は、
前記第1のユーザの前記位置の前記変化に応じて、前記第1のユーザの前記第1の出力モードを前記第1の出力モードから第2の出力モードに変更する動作をさらに含む、請求項15に記載の装置。
【請求項18】
前記第1の入力モードは、テキストのみ、音声のみ、音声付きのカメラトラッキング、およびテキスト付きのカメラトラッキングのうちの1つを含み、前記第1の出力モードは、テキストのみ、音声のみ、音声付きのアバター動画、およびテキスト付きのアバター動画のうちの1つを含む、請求項15に記載の装置。
【請求項19】
前記3D環境は、3D環境プラットフォームによって実現され、入力モードおよび出力モードは、前記第1および第2のユーザのクライアントデバイスの機能、もしくは前記第1のユーザおよび前記少なくとも第2のユーザの位置のうちの少なくとも一方に基づいて前記3D環境プラットフォームによって選択可能である、または前記入力モードおよび前記出力モードは、前記第1のユーザおよび前記少なくとも第2のユーザによって選択可能である、請求項15に記載の装置。
【請求項20】
前記少なくとも第2のユーザによって選択された前記第1の出力モードは、前記第1のアバターの提示について前記第1のユーザによって選択された設定を無効にする、請求項15に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して3次元(3D)環境における通信に関し、より詳細には、限定はしないが、3D環境において複数の入出力(I/O)モードを実現するための方法、システム、およびコンピュータ可読媒体に関する。
【背景技術】
【0002】
オンラインビデオ会議は一般に、参加者、参加者のアバター、または参加者の他のグラフィカル表現のサムネールまたはフルスクリーンビデオ画像を提示するユーザインターフェースを使用する。そのようなビデオ会議は、完全に没入できるエクスペリエンスを参加者に与えない。
【0003】
たとえば、参加者が単に表示画面を他の参加者の「フローティングヘッド」および基本的な音声とともに視聴する場合、ユーザ/参加者が会話に対する参加意識や関心を十分に維持することは困難である。
【0004】
さらに、参加者の環境および/または参加者のユーザデバイスによって与えられる入出力の種類によって、参加者がオンライン会議に効果的に参加するのが困難になることがある。たとえば、ある参加者のユーザデバイス上にカメラがない場合があり、したがって、他の出席者は、その参加者を見ることができない。
【発明の概要】
【課題を解決するための手段】
【0005】
第1の態様によれば、3次元(3D)環境を動作させるための方法が提供される。この方法は、第1のユーザから第1の入力信号を受信し、第1の入力信号を使用して3D環境における第1のユーザを表す第1のアバターを動画化するステップであって、第1のアバターの動画化が、第1のユーザから第1の入力信号が受信される第1の入力モードと、第1の入力信号によって提供される感情情報とに少なくとも部分的に基づく、ステップと、第1のユーザおよび少なくとも第2のユーザに3D環境を提示するステップであって、第1のユーザおよび少なくとも第2のユーザへの3D環境の提示が、第1のユーザおよび少なくとも第2のユーザによって選択されるそれぞれの第1の出力モードに基づく、ステップと、第1のユーザの位置の変化に応じて、ユーザの入力モードを第1の入力モードから第2の入力モードに変更するステップとを含む。
【0006】
別の態様によれば、プロセッサによる実行に応じて、プロセッサに3次元(3D)環境についての動作を実行させるかまたは3D環境についての動作の実行を制御させる命令が記憶された非一時的コンピュータ可読媒体が提供される。この動作は、第1のユーザから第1の入力信号を受信し、第1の入力信号を使用して3D環境における第1のユーザを表す第1のアバターを動画化する動作であって、第1のアバターの動画化が、第1のユーザから第1の入力信号が受信される第1の入力モードと、第1の入力信号によって提供される感情情報とに少なくとも部分的に基づく、動作と、第1のユーザおよび少なくとも第2のユーザに3D環境を提示する動作であって、第1のユーザおよび少なくとも第2のユーザへの3D環境の提示が、第1のユーザおよび少なくとも第2のユーザによって選択されるそれぞれの第1の出力モードに基づく、動作と、第1のユーザの位置の変化に応じて、ユーザの入力モードを第1の入力モードから第2の入力モードに変更する動作とを含む。
【0007】
さらに別の態様によれば、プロセッサと、プロセッサに結合された非一時的コンピュータ可読媒体であって、プロセッサによる実行に応じて、プロセッサに3次元(3D)環境についての動作を実行させるかまたは3D環境についての動作の実行を制御させる命令が記憶された非一時的コンピュータ可読媒体とを含み、動作が、第1のユーザから第1の入力信号を受信し、第1の入力信号を使用して3D環境における第1のユーザを表す第1のアバターを動画化する動作であって、第1のアバターの動画化が、第1のユーザから第1の入力信号が受信される第1の入力モードと、第1の入力信号によって提供される感情情報とに少なくとも部分的に基づく、動作と、第1のユーザおよび少なくとも第2のユーザに3D環境を提示する動作であって、第1のユーザおよび少なくとも第2のユーザへの3D環境の提示が、第1のユーザおよび少なくとも第2のユーザによって選択されるそれぞれの第1の出力モードに基づく、動作と、第1のユーザの位置の変化に応じて、ユーザの入力モードを第1の入力モードから第2の入力モードに変更する動作とを含む装置が提供される。
【図面の簡単な説明】
【0008】
【
図1】いくつかの実装形態による例示的な3D環境を示す図である。
【
図2】いくつかの実装形態による
図1の3D環境においてユーザに対して有効化されることがある例示的な入力モードおよび出力モードを示す図である。
【
図3】いくつかの実装形態による入力モードとしてのビデオの例を示す図である。
【
図4】いくつかの実装形態による、ユーザの位置に基づく入出力モードの変化の例を示す図である。
【
図5】いくつかの実装形態による入出力モードについての様々なユーザ選好の例を示す図である。
【
図6】いくつかの実装形態による、3D環境および動画化された3Dアバターを変化する入出力モードとともに提供することができる3D環境プラットフォームを含む例示的なシステムアーキテクチャの図である。
【
図7】いくつかの実装形態による、変化する入出力モードを使用して3D環境を動作させるための方法を示すフローチャートである。
【
図8】いくつかの実装形態による例示的なコンピューティングデバイスを示すブロック図である。
【発明を実施するための形態】
【0009】
以下の詳細な説明では、本明細書の一部を形成する添付の図面を参照する。図面では、特に文脈によって示されない限り、同様の記号は一般に同様の構成要素を示す。詳細な説明、図面、および特許請求の範囲において説明する例示的な実施形態は、限定的なものではない。本明細書で提示する主題の趣旨または範囲から逸脱せずに他の実施形態が利用されてもよく、他の変更がなされてもよい。本明細書で概略的に説明しかつ図示する本開示の態様は、様々な異なる構成として配置、置換え、組合せ、分離、および設計を行うことができ、これらの構成はすべて、本明細書において企図される。
【0010】
本明細書における「一実施形態」、「実施形態」、「例示的な実施形態」などの参照は、説明する実施形態が、特定の特徴、構造、または特性を含む場合があることを示すが、あらゆる実施形態が特定の特徴、構造、または特性を含むとは限らない。さらに、そのような句が必ずしも同じ実施形態を指すとは限らない。さらに、特定の特徴、構造、または特性についてある実施形態に関連して説明するとき、明示的に説明するかどうかにかかわらず、そのような特徴、構造、または特性が他の実施形態に関連して実施されることがある。
【0011】
本明細書で説明する実施形態は、複数の入力モードおよび複数の出力モードをサポートする3次元(3D)アバターを提示するためのシステムおよび方法を提供することによって上記および他の欠点に対処する。3Dアバターは、仮想現実(VR)会議、拡張現実(AR)設定、オンラインゲーム、または1つまたは複数の3Dアバターによって3D環境内で表される1人または複数のユーザを含むことがある他の種類の3D環境などの、様々な種類の3D環境において提示されてもよい。本明細書で説明するVR会議の例では、様々なユーザがそれぞれの選択したモードを介してVR会議に参加し、システムは、モード間の相互運用性を有効化してユーザ間の単一の共有仮想会議セッションを作成する。
【0012】
システムは、3D環境(VR会議など)における各々のそれぞれのユーザ/参加者用の3Dアバターを生成し、それぞれのユーザによって与えられるかまたはそれぞれのユーザから検知される入力に基づいて各アバターを動画化する。その場合、他のユーザは、3D環境における動画化されたアバターを実際の対面設定に参加している場合と同様に視聴することができる。各ユーザは、ユーザが3D環境においてどのように表されるか(たとえば、音声付きの動画化された3Dアバター、音声のみ、テキストのみ、画像、もしくは他のフォーマット、またはそれらの組合せ)を制御してもよい。さらに、各ユーザは、3D環境においてそのユーザに対して他のユーザ/参加者がどのように提示されるかを制御してもよい。たとえば、第1のユーザは、3D環境において第2のユーザのテキストを読み取ることだけを望む場合があり、第2のユーザの動画化された3Dアバターを見ることも、または第2のユーザからの音声を聞くことも望まず、したがって、第1のユーザに提示される3D環境は、第2のユーザが発言したときには必ず第2のユーザのテキストのみを第1のユーザに表示することになる。
【0013】
次に、様々な他の例示的な特徴および実装形態について説明する。
【0014】
まず、
図1を参照するとわかるように、いくつかの実装形態による例示的な3D環境が100に概略的に示されている。3D環境100は、3Dオブジェクトを有するコンピュータ生成画像を含んでもよい。
図1の例では、3D環境100は、ユーザA、ユーザB、ユーザC、およびユーザDと呼ばれる4人の参加者(出席者)を有する仮想現実(VR)会議を含む。3D環境100は、拡張現実(AR)プラットフォームまたは他の種類の3Dプラットフォームなどの他のプラットフォームを介して提供されてもよい。そのような3Dプラットフォームでは、3Dキャラクタを使用して、会議に出席している実際の人を表すことができる(3Dキャラクタの外見は選択可能/カスタム化可能である)。3Dキャラクタまたは他の3Dオブジェクトを使用して、会議に実際には存在しない人または物を表してもよい(たとえば、3Dキャラクタを空いている椅子の上に配置して出席していない人を表すこと、物理的に存在しないテーブルを会議用のグラフィカル3Dオブジェクトとして生成することなどが可能である。)。
【0015】
3D環境プラットフォーム200(たとえば、
図2を参照されたい)は、VR会議における各々のそれぞれのユーザ/参加者用の3Dアバターを生成し、それぞれのユーザによって与えられるかまたはそれぞれのユーザから検知される入力に基づいて各3Dアバターを動画化する。したがって、ユーザ同士は互いに地理的に遠く離れている場合があるが、各ユーザは3D環境100においてある方法で(たとえば、3Dアバターとして)表されてもよい。したがって、各ユーザは、VR会議における動画化された3Dアバターを、実際の対面会議に参加している場合と同様に視聴することができる。
【0016】
3D環境において提示される3Dアバターは、それぞれのユーザによって選択される任意の形態をとることができる。たとえば、
図1のユーザA、ユーザC、およびユーザDは、それらのユーザの3Dアバターが人間の形態をとることを選択している。人間の形態は、ユーザの実際の物理的な外見を模倣することができ、またはユーザは自分/アバター用の異なる外見を選択することができる(たとえば、有名な俳優/女優の似顔絵を有するかまたはある他の実際の人もしくは想像上の人の外見を有するアバターを選択する)。さらに、ユーザBなどのように、ユーザは必ずしも人間とは限らない外見(たとえば、
図1に示す宇宙人、動物、または他の有生もしくは無生の物体)を選択することができる。
【0017】
さらに、3D環境プラットフォーム200は、第2のユーザが3D環境100においてどのように第1のユーザに提示されるかを第1のユーザが制御するのを可能にしてもよい。たとえば、ユーザCは、ユーザBによって選択された宇宙人の外見を好まない場合がある。したがって、3D環境プラットフォーム200は、宇宙人の外見を人間の外見で無効にする機能をユーザCに与えてもよい。したがって、ユーザCのみに提示される3D環境100は、ユーザBを人間の形態で示し、一方、他のすべてのユーザは、3D環境100における会議のそれぞれの提示においてユーザBを宇宙人の形態で見る。
【0018】
図1に示す例示的な会議では、ユーザCによる発言が、音声フォーマットではなくまたは音声フォーマットに加えて、バブルテキストフォーマット102などのテキストとして提示される。ユーザCは、自分の発言がテキストとして他のユーザに提示されることを選択している場合があり、ならびに/または他のユーザのうちの1人は、3D環境100における会議のユーザのそれぞれの提示においてユーザCの発言がテキストとして提示されることを選択している場合がある。
【0019】
図1に示すVR会議の例示的なビューは、特定のユーザに提示される場合がある形態および内容を表す。たとえば、ユーザAは、参加者がすべて動画化された3Dアバターとして表されるようにユーザAの選好を設定していることがあり、この場合、3Dアバターのうちの少なくともいくつかはその発話出力について音声を提供する。ユーザAおよび/またはユーザCはさらに、音声出力の代わりにまたは音声出力に加えて、ユーザC用のテキスト出力を提供するように選好を設定している場合がある。したがって、
図1は、この例においてユーザAに提示される会議の形態および内容を示すが、他のユーザの各々は、ユーザの様々な入力モードおよび出力モードに応じて、それぞれこれらの他のユーザに提供される会議について異なる形態および内容を有する場合がある。たとえば、他のユーザのうちの1人は、「音声のみ」の出力モードを設定している場合があり、したがって、そのようなユーザには、他の会議参加者から音声出力が提供され、他のユーザのテキストまたは3D動画は提供されない。
【0020】
ユーザが3D環境について提供する入力モードの種類には、限定はしないが、テキスト、音声、カメラトラッキングを介したビデオとテキスト、カメラトラッキングを介したビデオと音声、および他のフォーマットが含まれる。ユーザに利用可能な出力モード(たとえば、3D環境におけるユーザに他の参加者を提示する方法)の種類の例には、限定はしないが、テキスト、音声、3Dアバター動画と音声、3Dアバター動画とテキスト(テキストバブルを含む)、静止画像とテキストおよび/または音声、ならびに他のフォーマットが含まれる。いくつかの実施形態によれば、上記のことに加えて、ユーザは、自分が会議の間他の参加者にどのように提示されるかについて音声の種類を選択することもできる(たとえば、ユーザの実際の声、他の人の声、漫画の声、または他の合成音声など)。
【0021】
図1に示すようなVR会議は、考えられる実装形態の一例に過ぎない。3D環境において実施される他の例では、必ずしも複数のユーザ間の会議が関与するとは限らず、3D環境における3Dアバターによって単一のユーザが表されることがある。3Dアバターによって生成される動作/音声/外見は、ユーザによって使用される入力モード(たとえば、テキスト入力、カメラ入力など)に基づいて制御されてもよく、3Dアバターを他のユーザ(これらのユーザ自身の3Dアバターが3D環境に関与/存在しているとは限らない)に提示する方法は、このユーザによって選択されるかまたはこれらの他のユーザによって選択される出力モード(たとえば、3D環境における3Dアバターの単なる表示と組み合わされるかまたはそのような表示に代わる、テキスト、音声、言語選好などと)によって制御することができる。
【0022】
たとえば、3Dゲーム環境における電子ゲームのユーザ/プレーヤは、そのゲームに関与する唯一のプレーヤであってもよい。ゲーム内のユーザの3Dアバターの発話音声、動きなどは、ユーザによって提供される入力モード(テキスト、声、カメラなど)に基づく。一方、他のユーザは、3Dゲーム環境にアクセスしてもよく(必ずしもゲームを行わなくてもよい)、ゲームにおけるプレーヤの進行/ゲームプレーを観測することができ、これらの他のユーザは、プレーヤの3Dアバターを見て、プレーヤによって発されたテキストを読み、プレーヤによって発された音声を聞き、ならびに/またはこれらの他のユーザによって選択された何らかの他の出力モードによって提示される(ならびに/またはプレーヤがゲームの間自分の3Dアバターを他のユーザにどのように提示するかを制御することを望む場合は、プレーヤによって指定された出力モードによって提示される)ことによりそのような進行/ゲームプレーを観測することができる。
【0023】
別の例では、単一のユーザ(3Dアバター)は、オンライン講義を提示する3D環境においてアバターでは表されない学生視聴者にオンライン講義を行う教師であってもよい。各学生は、出力モードを制御することができ、それによって、学生はテキストを読むこと、音声を聞くこと、テキストと音声の両方を受信すること、教師の3D動画を音声および/またはテキストとともに視聴することなどを選択することができる。
【0024】
図2は、いくつかの実装形態による、
図1の3D環境100においてユーザに対して有効化されることがある例示的な入力モードおよび出力モードを示す。各ユーザに対して有効化される入力モードおよび/または出力モードは、ユーザが指定した設定、ユーザのクライアントデバイスの機能、ユーザの環境もしくは他の条件(たとえば、ユーザの位置、ユーザが運転もしくは歩行のようなある活動に従事しているかどうか)、および/もしくは他のパラメータ、またはそれらの組合せに基づくことがある。
図2(
図1と縦に並ぶものと見なされてもよい)では、ユーザA~ユーザDの各々がそれぞれのクライアントデバイス202~208を操作し、それによって、
図1の3D環境100において開かれるセッションの過程の間3D環境プラットフォーム200と通信する。
【0025】
図2の様々な例によれば、ユーザAは、音声とビデオの入力モード(およびおそらくはテキストなどの他の追加の入力モード)をサポートするクライアントデバイス202を操作している。たとえば、ユーザAのクライアントデバイス202は、ユーザAの言葉を取り込むためのマイクロフォンと、ユーザAのライブビデオを取り込むためのカメラとを有してもよい。したがって、音声およびビデオは、ユーザAによって好ましい入力モードとして明示的に選択されてもよく、またはそのような入力モードは、クライアントデバイス202によって自動的に選択されてもよい。いくつかの実装形態では、3D環境プラットフォーム200は、クライアントデバイス202の機能を検出することによってそのような入力モードを選択してもよく、ユーザAには、3D環境プラットフォーム200またはクライアントデバイス202によって選択された入力モードを受け入れるかまたは無効にするためのオプションが与えられてもよい。
【0026】
出力モードに関しては、クライアントデバイス202は、音声および3D動画(およびおそらくテキストなどの追加の他の出力モード)をサポートする。したがって、そのような出力モードが(たとえば、ユーザA、クライアントデバイス202、および/または3D環境プラットフォーム200によって)クライアントデバイス202に対して有効化されるとき、ユーザAは、
図1の3D環境100からの3D動画を(付随の音声とともに)見ることができる。
【0027】
したがって、クライアントデバイス202(および/または
図2における他のクライアントデバイスのうちの少なくともいくつか)は、3D環境100を、音声、テキスト、または他の出力フォーマットとともに表示画面上に出力としてレンダリングすることができ、ユーザ入力(たとえば、声、顔の表情、体の動き、感情など)を得る(たとえば、受信する、検知する、および/または解釈する)入力モードをサポートすることもできる、ハードウェアおよびソフトウェア一式がインストールされた、スマート電話、ラップトップコンピュータもしくはデスクトップコンピュータ、VRヘッドギア、または他の電子通信機器であってもよい。そのようなクライアントデバイスは、ユーザが選択的にいくつかの入出力モードを有効化し他の入出力モードを無効化するのを可能にする機能を備えてもよい。たとえば、ユーザAは、会議の間音声出力を無効化することを選択してもよく、それによって、ユーザAが見る3D環境100にはテキストのみが表示される。
【0028】
さらに、クライアントデバイス202(および/または
図2における他のクライアントデバイスのうちの少なくともいくつか)は、クライアントデバイスの環境条件、位置、動き/向きなどを決定することができる全地球測位システム(GPS)ツール、バイオメトリックセンサ、環境センサなどの他のツールを備えてもよい。そのようなツールおよび様々な入出力モードを使用して3D環境100の形態および内容(会議の過程の間など)を選択しその後修正する方法について以下でさらに説明する。
【0029】
ユーザBのクライアントデバイス204は、入力モードとして音声を有効化しており、出力モード用に音声および3D動画を有効化している。たとえば、クライアントデバイス204は、ユーザBを撮影するためのカメラを有さないことがあり(したがって、ユーザBは3D環境100におけるユーザBの3Dアバター用に宇宙人の外見を選択している)、またはカメラが無効化されている/選択されていない場合があるが、クライアントデバイス204は、3D環境100において使用されるユーザBの音声を取り込むための有効なマイクロフォンを有する。出力モードについては、クライアントデバイス204は、音声および3D動画が有効化されており、それによって、ユーザBは、3D環境100において動画化されたアバターを視聴することができる。
【0030】
ユーザCのクライアントデバイス206は、入力モードとしてテキストを有効化しており、出力モード用にテキストおよび3D動画を有効化している。たとえば、クライアントデバイス206は、ユーザCを撮影するためのカメラを有さないことがあり(またはカメラが無効化されている/選択されていないことがあり)、かつクライアントデバイス206は、マイクロフォンを有さないことがある(またはマイクロフォンが無効化されている/選択されていないことがある)が、クライアントデバイス206は、ユーザCが3D環境100において使用される入力を提供するために操作できる有効なテキスト入力ツール(たとえば、キーボード)を有する。出力モードについては、クライアントデバイス206は、テキストおよび3D動画が有効化されており(ただし、音声は有効化されていない)、それによって、ユーザCは、3D環境100においてアバターを見ることができ、アバター同士の対話を(聞くのではなく、テキストを介して)読むことができる。音声が有効化されない、クライアントデバイス206について
図2に示す入出力モードは、たとえば、ユーザCが、会議に参加するのを望んでいるが、ユーザCが、図書館または大きな声での会話が妨げられる他の位置に存在するときに使用されてもよい。
【0031】
ユーザDのクライアントデバイス208は、入力モードとして音声およびビデオを有効化しており、出力モード用に音声のみを有効化している。たとえば、ユーザDは、会議に参加している間自動車を運転している場合がある。ユーザDの入力を取り込むために、かつ安全上の理由から、クライアントデバイス206についてはテキスト入力が無効化されている。しかし、ユーザDの画像およびユーザDの発言は、それぞれクライアントデバイス208のカメラおよびマイクロフォンによる入力として安全に取り込むことができる。同様に、クライアントデバイス208の出力モードは、ユーザDが運転している間に会議から出力されるテキスト出力または3D動画によってユーザDの気をそらすのを防止するために音声のみとして設定されることがある。
【0032】
次に、さらなる例示的な特徴および実装形態について説明する。
【0033】
図3は、いくつかの実装形態による入力モードとしてのビデオの例を示す。
図2のクライアントデバイス208をコンテキストに使用すると、クライアントデバイス208のカメラ300は、体の動き(ユーザDが発言するときのユーザDの口/唇の動きを含む)を追跡し/取り込み、これに応じて、3D環境プラットフォーム200は、カメラによって取り込まれた動きに基づいてVR環境100におけるユーザDのアバターを動画化する。ユーザDが、(挙手するかまたは口/唇の動きもしくは他のボディキューを開始することなどによって)発言を望む場合、カメラ300は、「挙手」または口/唇の動きもしくは他のボディキューを取り込み、3D環境プラットフォーム200はそのような体の動きを有する3Dアバター(ユーザDの3Dアバターが挙手している
図1において104に示す3Dアバターなど)を動画化し、それによって、ユーザDが発言することを望んでいることを他の参加者に知らせ、それによって、会議中の割り込みまたは同時発言を回避もする。
【0034】
上記の例は、「挙手」のユーザ動作が、概して、ユーザDが質問することを望むことを示すと推定される例を示す。3D環境プラットフォーム200は、ユーザDによる以下の例示的な動作のうちの1つまたは複数を3Dアバターの対応する「挙手」動画に(リアルタイムでまたはほぼリアルタイムで)変換/マップすることができる。ユーザDが、物理的に挙手し、この動きがカメラ300によって取り込まれる。ユーザDが、3D環境プラットフォーム200によって解析/検出され、ユーザDの発言するための要求として解釈される「申し訳ありません、、、」または「待ってください、、、」または「お待ちください、、、」などのテキストおよび入力フレーズを介して対話する。ユーザDは現在、黙っており、話し始め「申し訳ありません、、、」と言う、など。(質疑応答などの)3D仮想会議シナリオでは、ユーザDの挙手は、現在発言している(他の)ユーザに、誰かが発言を望んでいることを知らせ、それによって、他のユーザ/発言者は間を置いてユーザDが発言するのを可能にすることができる。
【0035】
テキストから感情を検出することの代わりにまたはそれに加えて、画像および/または音声処理を実行してユーザの感情を検知することもできる。たとえば、ユーザDが「頭にきている」と言った場合、クライアントデバイス200のマイクロフォンが音声を取り込む間、カメラ300はその顔の表情またはユーザDの赤くなった顔を検出し、(クライアントデバイス208および/または3D環境プラットフォーム200において)音声に対して音声処理が実行され、感情状態を示す音声ボリュームにおけるピークが検出される。クライアントデバイス208におけるバイオメトリックセンサ302はまた、同じく感情状態を示す体温、心拍、または血圧の上昇を検出することができる。この検出された情報が(クライアントデバイス208および/または3D環境プラットフォーム200において)処理され、ユーザDが本当に怒っているかどうか(または代替的に冗談であるか)が判定され、それに応じてユーザDの3Dアバターを(
図3において304に示すように)感情を表すように(たとえば、「頭にきている」という大きい声と唇の動きを伴う怒った顔の表情)リアルタイムにまたはほぼリアルタイムに動画化することができる。いくつかの実施形態では、ユーザDはまた、3D環境プラットフォーム200および/またはクライアントデバイス208における処理において感情が誤って解釈された場合の無効化機能をクライアントデバイス208に備えている。
【0036】
前述のように、3D環境100における対話(たとえば、会議)の過程の間すべての参加者/ユーザが(カメラや表示画面など)すべての形態の入出力モードにアクセスしてもよいとは限らない。さらに、いくつかの入出力モードは、3D環境において実施される会議/セッションの一部の間利用できなくなるかまたは実施不能になることがある。
【0037】
たとえば、
図4は、ある環境(たとえば、ある位置)またはユーザの他の状態に基づく入出力モードの変更の例を示す。
図4の例には(スマートフォンまたは他の種類のモバイルデバイスの形態の)クライアントデバイス202を有するユーザAが使用される。400において、ユーザAは、自宅にいてVR会議に参加し、カメラ/マイクロフォンをビデオおよび音声入力に使用し、クライアントデバイス202の表示画面を使用して他の参加者の3D動画を見る(また、クライアントデバイス202のマイクロフォンを使用して他の参加者の音声を聞く)場合がある。
【0038】
402において、ユーザAは、自宅から歩いて出て、自動車に乗り込み、運転を開始する。3D環境プラットフォーム200は、ユーザAが歩いて自動車に乗り込み、運転していることを検知し(たとえば、クライアントデバイス202に設置された加速度計、GPSツールなどを介して判定される)、カメラが現在、(たとえば、ユーザAが運転の間、カメラを見るのではなく走行方向を見ていることに起因して)実施不能な入力モードである場合があり、したがって、クライアントデバイス202が、カメラを無効化し、その代わりにユーザAからの音声を入力モードとして使用する(かつ音声入力を使用して、3D環境100において他の参加者に提示されるユーザAのアバターを動画化する)場合があると判定する。3D環境プラットフォーム200は、運転中のテキスト作成が危険であることに起因して、テキストを入力モードとして無効化することもある。
【0039】
ユーザは、402における運転中にクライアントデバイス202の表示画面を安全に見ることができないので、3D環境プラットフォーム200は、他の参加者の対話をユーザAにクライアントデバイス202の表示画面を介してテキストまたはビデオとして提示するのではなく音声(たとえば、他の参加者の実際の声および/または合成音声)として提示する場合がある。いくつかの実施形態では、他の参加者は一般に、
図4における402~404の全時間にわたってユーザAの動画化された3Dアバターを見続ける場合があり、ユーザAが自宅から出て運転していることがわからないことがある(たとえば、他の参加者は、ユーザAが自宅環境と運転環境との間を移動するときの3Dアバターの動画の実質的な変化に気づかず、ユーザの入力モードの変更が他の参加者には検出不能である場合がある)。いくつかの実施形態では、ユーザAは実際には、自分(ユーザA)が家から歩いて出て現在は運転していることを他のユーザに肯定的に示すことを望む場合がある。したがって、他のユーザに3D環境のそれぞれの提示で表示される、ユーザAの3Dアバターは、3Dアバターが歩いていること、運転していることなどを示すように適切に動画化されてもよい。
【0040】
404において、ユーザAは自動車から出て、音声が妨げられる静かな図書館に入る。そのような場合、3D環境プラットフォーム200は、GPSおよびその他の位置/地図ソースを使用して、ユーザが図書館に入ったと判定し、出力モード(たとえば、他の参加者をクライアントデバイス202におけるユーザAにどのように提示するか)を音声(402で使用された)からテキストを含む3D動画に変更し(たとえば、音声テキスト変換を使用する)、404では音声なし、またはテキストのみになる。また、3D環境100についてのユーザAの入力モードは、音声(402で使用された)から404でテキストに変更され、ユーザAが図書館の領域内にいる間3D環境100における他のユーザとの通信にテキストの使用を可能にする場合がある。感情または体の動きを表す語を解析することなど、3D環境プラットフォーム200によるテキストの解析によって、他の参加者が見るユーザAの3Dアバターにおける対応する動きを作成することができる。
【0041】
図4は、ユーザAの位置/環境に応じた入出力モードの変更を示す。3Dセッションの間ユーザAのことを視聴する他の参加者の入出力モードが変更されることもある。たとえば、3D環境プラットフォーム200は、受信側ユーザ(ユーザA以外の参加者)の位置の変化を検出してもよく、その受信側ユーザについての入出力モードを自動的に調整することができる。引き続き
図4における本例について説明する。ユーザAの3Dアバターの視聴者(受信側ユーザ)は、暗い劇場のような画面/電話を見ることが不適切である場合がある環境に歩いて入ることがある。したがって、受信側ユーザが劇場に歩いて入ったことを検出した3D環境プラットフォーム200は、出力モードを自動的にユーザAのアバターの視覚提示(たとえば、表示画面上の3D動画)から音声(受信側ユーザがヘッドフォンを介して個別に聞くことができる)に変更する。
【0042】
図4の前述の例では、3D環境プラットフォーム200がユーザの環境に応じて自動的に入出力モードを変更するシナリオについて説明した。他の実施形態では、入出力モードおよび他の提示態様は、ユーザ選好に基づくことができる。
図5は、いくつかの実装形態による入出力モードについての様々なユーザ選好の例を示す。
【0043】
たとえば、ユーザは、クライアントデバイス500を使用して入出力モードについての選好を入力/設定してもよい。
図5の例では、ユーザは、502では様々な入力モードのうちのいずれか、504では自分自身をどのように他の参加者/出席者/ユーザに対して提示することを望むか、506では、他の参加者/出席者/ユーザを自分に対してどのように提示するか(たとえば、出力モード)を選択してもよい。
【0044】
502で選択可能な入力モードに関して、ユーザはテキストのみを介して入力を提供することを好み(「テキスト」におけるX選択によって示される)、他の考えられる選択肢として、選好なし、音声、ビデオ、または何らかの他の入力モードを指定してもよい。502における入力モードならびに/または504および506における出力モードについて選択可能オプションが与えられてもよい。たとえば、ユーザは、ユーザのクライアントデバイス500のキーボードを使用して電子ゲームを行うことがある。キーボードはゲームを行うために使用されるので、キーボードをユーザがゲーム中に友人とのテキスト作成に利用することはできない。したがって、ユーザは、選択可能オプションを有効化してもよく(またはクライアントデバイス500が、キーボードをテキスト作成に利用できないことを検出したことに応じて、このオプションを自動的に有効化してもよい)、それによって、クライアントデバイス500は、マイクロフォンを入力デバイスとしてアクティブ化して(ユーザによるテキスト作成の代わりに)ユーザから音声を受信する。その場合、ゲーム中にユーザの音声をクライアントデバイス500の表示画面上にテキストとして表示し、併せて友人からのテキストを表示する(たとえば、ユーザが友人からのテキストを出力モードとして選択した場合)ことができる。代替的に、または追加として、ユーザまたは友人が音声を出力モードとして選択したかどうか、クライアントデバイス500上のユーザのスピーカが有効化されている/利用可能であるかどうかなどに応じて、友人からのメッセージを音声を介してユーザに提示してもよい。
【0045】
ユーザは、504においてユーザを他の参加者にどのように提示するかに関して特定の選好を有さないことがあり(「選好なし」におけるX選択によって示される)、この場合、他の考えられる選択肢には、テキスト、音声、および動画化されたアバターが含まれる(さらなる準選択肢として実物の似顔絵または宇宙人などの他の画像がある)。したがって、502においてテキストが入力モードとして選択されると、3D環境プラットフォーム200は、テキスト-音声を使用してユーザのテキストを、他のユーザに提示される音声付きの動画化された3Dアバターに変換することができる。
【0046】
506において、ユーザは出力モード、具体的には、他の参加者の各々をクライアントデバイス500を介してユーザに提示し得る方法を指定することができる。他のユーザ(参加者)ごとに、ユーザは、選好なし、テキスト、音声、動画化された3Dアバターを指定することができる(さらなる準選択肢には、実物の似顔絵または宇宙人などの他の画像がある)。したがって、他の参加者のうちの1人がテキストのみを使用して自分自身を提示することを選択した場合、クライアントデバイス500のユーザは、この出力モードを無効化する/テキストの代わりに音声など、何らかの他のフォーマットに変更することが可能であってもよい。
【0047】
同様に、クライアントデバイス500の特定のユーザが、504において自分を他のユーザにどのように提示するかに関して「選好なし」(またはおそらく何らかの他のフォーマット)を選択しているので、他の参加者は、バブルテキスト付きの動画化されたアバター、音声、合成音声付きの宇宙人の画像を使用した動画化された3Dアバター、または他のフォーマットを使用してそのユーザのことを視聴することを好む場合がある。
【0048】
別のシナリオでは、ユーザは、3D環境100におけるセッションがパーティであるか、それともビジネス会議であるかに応じてユーザのアバターの外見を変更することを望む場合がある。したがって、ユーザは504においてパーティの間他の参加者によって見られるよりカジュアルなアバターの外見を(たとえば、選択肢他の画像の下のライブラリから)選択することができ、ビジネス会議の間より形式張ったアバターの外見(たとえば、スーツを着たユーザ)を選択することができる。ビジネス会議の間、仮想ホワイトボードまたはプレゼンテーション用スライド資料集などの他の3Dオブジェクトをレンダリングすることもできる。
【0049】
いくつかの実施形態では、ユーザプロファイル情報を使用して、3D環境100におけるセッションの間アバターおよび他の3Dオブジェクトの外見およびコンテキストをカスタマイズして、セッションの間より適切で共通する/共有されるエクスペリエンスを作成してもよい。たとえば、参加者のユーザプロファイルが、ユーザが10代であることを示す場合、および追加の情報が、3D環境100におけるセッションがクラス会であることを示す場合、3D環境プラットフォーム200は、クラス会に適切なコンテンツレーティングを実現する(たとえば、成人向けの題材を編集すること、非教室関連3Dオブジェクトを除外することなど)ように環境およびアバターを調整することができる。
【0050】
ある参加者が友人であることを示すプロファイル情報を3D環境プラットフォーム200が使用してそれぞれの3Dアバターを駆動する動画を決定してもよい。たとえば、友人間の体の動きは、見知らぬ人または仕事上の同僚間の体の動きとは異なる。3D環境プラットフォーム200は、そのようなプロファイル情報および他の情報を使用して、参加者と3D環境100において開かれるセッション(たとえば、VR会議)のコンテキストとの関係に応じて3Dアバターを適切に動画化してもよい。
【0051】
ユーザプロファイル情報は、ユーザに関する履歴情報を含むことができる。履歴情報は、前の3D環境セッションにおけるユーザの他のユーザとの対話(たとえば、パーティ、ビジネス、教育、怒り、運転、テキスト作成など)を含むことができる。それぞれに異なるユーザについてそれぞれに異なる履歴パターンが出現する場合があり、そのような履歴情報を使用してユーザの3Dアバターをどのように動画化するか推定または予測すること、次の3Dセッションについて環境/設定を選択することなどを行うことができる。
【0052】
ユーザプロファイル情報のアクセスおよび使用は、ユーザによって制御することができる。たとえば、実施形態では、3D環境および3Dアバターの生成に関連してユーザのプロファイル情報の使用を防止または限定する機能がユーザに与えられる。プロファイル情報を使用するためにユーザ許可が必要になることがあり、ユーザはさらに、使用されてもよいプロファイル情報の種類およびプロファイル情報が使用を許可される期間を指定してもよい。ユーザが他のユーザに関する位置および/またはその他の情報を判定することを制限することもできる。
【0053】
上記および任意の他のアバターまたは環境カスタム化(
図5に示すようなカスタム化および/またはユーザプロファイル情報を伴うカスタム化)をリアルタイムに実行することができる。他の実装形態では、3D環境プラットフォーム200は、ユーザについての入力モードおよび/または出力モードを設定することができ、ユーザは必ずしも入力/出力モードについて好ましい選択を行うとは限らない。
【0054】
いくつかの例示的な実装形態では、3Dアバターに関する対応する動画化(または他の種類の出力)を生成するために様々な他のユーザ動作および/またはユーザ特性を推定することができる。たとえば、3D環境プラットフォーム200によってユーザの音声特性(音色、音量など)を調べて、ユーザの入力をのんびりとしたものそれとも切迫したものを示す出力に変換する必要があるかどうか、それぞれに異なる言語間の翻訳を行う必要があるかどうか(たとえば、音声および/またはテキストにおける英語からフランス語への翻訳またはその逆の翻訳)を判定することができる。3D環境プラットフォーム200によって対応する出力に変換できる他の種類の動作には、ユーザが沈黙すること(その場合にユーザの3Dアバターが3Dアバターの顔の上の猿ぐつわまたはチャックなどの「沈黙」状態を示すこと)、ユーザがカメラをオフにし、他の入力が利用できない場合、ユーザの3Dアバターが、ユーザが入力モードを利用できないことを示すように非動画化状態またはあるデフォルト状態になること、ユーザがコーヒーをすすり、ユーザの3Dアバターが、ビデオ入力に基づいてすする様をまねし、またはすする音声を検出したことに基づいてすする様をシミュレートすること、ユーザが鼻をかみ、システムが、この動作が3Dアバターによって表すには不適切であると認識することなどを含めることができる。したがって、これらの様々な例では、3D環境プラットフォーム200は、ある動作は「ノイズ」であるか、または場合によっては意味が不十分であり、無視するかまたは何らかの方法で表すことができるかどうかを判定するためのプロセス/アルゴリズムを実行することができる。
【0055】
いくつかの実施形態では、3Dセッションの間の信号および情報は、デフォルトで3D環境プラットフォーム200および/またはクライアントデバイスによって暗号化される。たとえば、音声は、クライアントデバイスにおいて暗号化し、3D環境プラットフォーム200のサーバにおいて復号された後で3Dセッションの間他のユーザに中継することができる。
【0056】
録画も可能である。3Dセッションを3D環境プラットフォーム200および/またはクライアントデバイスによって録画し、後で復号および視聴できるように暗号化形態で記憶することができる。
【0057】
図6は、いくつかの実装形態による、前述のように3D環境(3D環境100など)および動画化された3Dアバターを変化する入出力モードとともに提供することができる3D環境プラットフォーム(3D環境プラットフォーム200など)を含む例示的なシステムアーキテクチャの図である。3D環境プラットフォーム200(オンラインゲーミングプラットフォーム602を含むかまたはオンラインゲーミングプラットフォーム602と連動してもよい)は、「ユーザ生成コンテンツプラットフォーム」または「ユーザ生成コンテンツシステム」とも呼ばれ、ユーザ同士が、電子ゲームを行っているかまたはオンライン仮想会議を実施している間などに、互いに対話するための様々な方法をユーザに提供する。たとえば、オンラインゲーミングプラットフォーム602のユーザは、共通の目標に向かって協働すること、様々な仮想ゲーミングアイテムを共有すること、電子メッセージを互いに送ることなどを行ってもよい。3D環境プラットフォーム200のユーザは、電子ゲームにおいてレンダリングされる3D世界をナビゲートすること、仮想3D会議に参加することなど、上述の3Dアバターなどのキャラクタを使用することによって、3D環境100において対話してもよい。
【0058】
3D環境プラットフォーム200は、プラットフォームのユーザが、3D環境100に配置すべき他のグラフィカルオブジェクトを作成するのを可能にするだけでなく、アバターを作成し動画化するのを可能にしてもよい。たとえば、3D環境プラットフォーム200のユーザは、アバターを作成し、設計し、カスタム化し、かつ3D環境100において他の3Dオブジェクトを作成し、設計し、挿入するのを可能にしてもよい。
【0059】
図6では、例示的なシステムアーキテクチャ600(本明細書では「システム」とも呼ばれる)は、3D環境プラットフォーム200(オンラインゲーミングプラットフォーム602、仮想現実(VR)プラットフォーム、拡張現実(AR)プラットフォーム、オンライン会議プラットフォーム、および/または他の種類のコンテンツプラットフォームもしくは共同プラットフォームを含んでもよい)と、複数のクライアントデバイス604a~604c(本明細書では一般に「クライアントデバイス604」と呼ばれる)と、3D環境プラットフォーム200の一部を形成してもよい複数のサーバ606aおよび606b(本明細書では一般に「サーバ606」と呼ばれる)と、外部システム608とを含む。システムアーキテクチャ600は、1つの考えられる実装形態を例示するために与えられている。他の実装形態では、システムアーキテクチャ600は、
図6に示すのと同様にまたは異なるように構成された同じ要素、より少ない要素、より多い要素、または異なる要素を含んでもよい。
【0060】
通信ネットワーク610は、システムアーキテクチャ600内の様々な要素間の通信に使用されてもよい。ネットワーク610は、パブリックネットワーク(たとえば、インターネット)、プライベートネットワーク(たとえば、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN))、有線ネットワーク(たとえば、イーサネットネットワーク)、無線ネットワーク(たとえば、802.11ネットワーク、Wi-Fiネットワーク、もしくは無線LAN(WLAN))、セルラネットワーク(たとえば、long term evolution (LTE)ネットワーク)、ルータ、ハブ、スイッチ、サーバコンピュータ、またはそれらの組合せを含んでもよい。
【0061】
クライアントデバイス604(前述のクライアントデバイス202~208のいずれかによって具体化されてもよい)は、3Dアプリケーション(ゲームアプリケーションを含む)と1つまたは複数のユーザインターフェース(たとえば、音声/ビデオ入出力デバイス)とを含むことができる。音声/ビデオ入出力デバイスは、カメラ、マイクロフォン、スピーカ、ヘッドフォン、表示デバイスなどの1つまたは複数を含むことができる。さらに、クライアントデバイス604は、センサ、加速度計、顔/感情認識ソフトウェア、カメラ、GPSツール、ならびにユーザに関連する入力、環境/位置、および他の特性もしくは条件の解釈に関連して使用できる様々な他のハードウェアおよびソフトウェア構成要素(処理要素を含む)を含んでもよい。たとえば、クライアントデバイス604内の処理要素は、暗号化を実行し、入力モードと出力モードとの間で遷移し、3Dセッションをサポートするための他の動作を実行するための1つまたは複数のプロセッサだけでなく、ユーザの感情を判定するために使用される音声およびグラフィカルプロセッサを含んでもよい。クライアントデバイス604におけるセンサは、加速度計、バイオメトリックセンサなどを含んでもよい。いくつかの実装形態では、サーバ606における処理負荷を低減させるようにクライアントデバイス604によって多数の処理動作が実行される。たとえば、クライアントデバイス604における処理要素は、センサによって提供されるデータと組み合わされて、ユーザの感情状態を判定し、感情状態を有するアバターを自動化し、生成されたアバターを3D環境100において提示できるようにサーバ606に送ることができる。
【0062】
クライアントデバイス604は、モバイルスマートフォン、ゲーミングコンソール、VRヘッドセット、デスクトップもしくはラップトップコンピュータ、または他のコンピューティングデバイスを含むことができる。特定のユーザによって使用されるクライアントデバイスの種類に応じて、たとえば、VRヘッドセットによって最大忠実度を実現し、デスクトップ/ラップトップコンピュータによって中間忠実度を実現し、テキスト/音声専用機能を有する電話によって最小忠実度を実現することができる。
【0063】
クライアントデバイス604は、ネットワーク610を介して、第1のサーバ606aなどのサーバ606と通信する。第1のサーバ606aは、復号/暗号化、クライアントデバイス604からの信号(たとえば、音声、ビデオ、テキストなど)の受信および処理、処理済みの信号の3D環境プラットフォーム200、たとえば、VR会議を生成し、次いで生成されたVR会議を(動画化されたアバターまたは他の選択された出力モードとともに)クライアントデバイス604に提示するVR会議プラットフォームへの提供などの動作を実行する。
【0064】
外部システム608は、測位情報をクライアントデバイス604および/または第1のサーバ606aもしくは他のサーバに提供するGPSシステムまたは他の外部情報源とすることができる。
【0065】
第2のサーバ606bは、ビジネス論理、プロファイル情報、および3D環境プラットフォーム200によって提示される3D環境をカスタム化するために使用できるその他のデータを記憶し処理することができる。たとえば、第2のサーバ606bは、各クライアントデバイス604にどの特定の入出力モードを使用すべきかを判定するだけでなく、プロファイル情報を使用して、参加しているユーザを3D環境100における(形式張ったビジネス設定とは異なる)形式張らないソーシャル設定において提示すべきであるかどうかを判定することができる。
【0066】
サーバ606は、1つまたは複数のストレージデバイスを含んでもよい。ストレージデバイスは、たとえば、3D環境プラットフォーム200またはローカルにクライアントデバイス604にインストールされたアプリケーションによって3D環境100においてレンダリングされたグラフィカルオブジェクトを記憶するとともに、グラフィカルオブジェクトの構成/特性情報(位置、色、テクスチャなど)を記憶してもよい。いくつかの実施形態では、ストレージデバイスは、3D環境プラットフォーム200によってレンダリングされたグラフィカルオブジェクトを提供する別個のコンテンツ配送ネットワークの一部とすることができる。たとえば、3D環境プラットフォーム200は、3Dセッションの過程の間提示されるようにストレージデバイスに記憶されたグラフィカルオブジェクトをプルしても(またはプッシュしておいても)よい。
【0067】
一実装形態では、ストレージデバイスは、非一時的コンピュータ可読メモリ(たとえば、ランダムアクセスメモリ)、キャッシュ、ドライブ(たとえば、ハードドライブ)、フラッシュドライブ、データベースシステム、またはデータおよびその他のコンテンツを記憶することができる別の種類の構成要素もしくはデバイスであってもよい。ストレージデバイスは、複数のコンピューティングデバイス(たとえば、複数のサーバコンピュータ)にまたがってもよい複数のストレージ構成要素(たとえば、複数のドライブまたは複数のデータベース)を含んでもよい。
【0068】
いくつかの実装形態では、3D環境プラットフォーム200は、1つまたは複数のコンピューティングデバイス(たとえば、クラウドコンピューティングシステム、ラックマウントサーバ、サーバコンピュータ、物理サーバのクラスタなど)を有するサーバを含むことができる。いくつかの実装形態では、サーバ(サーバ606など)は、3D環境プラットフォーム200に含まれてもよく、独立システムであってもよく、または別のシステムもしくはプラットフォームの一部であってもよい。
【0069】
いくつかの実装形態では、3D環境プラットフォーム200は、3D環境プラットフォーム200上で動作を実行し、ユーザが3D環境プラットフォーム200にアクセスできるようにするために使用されてもよい、1つまたは複数のコンピューティングデバイス(ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータなど)、データストア(たとえば、ハードディスク、メモリ、データベース)、ネットワーク、ソフトウェア構成要素、および/またはハードウェア構成要素を含んでもよい。3D環境プラットフォーム200は、ユーザが、3D環境プラットフォーム200によってオンラインで提供されるコンテンツにアクセスできるようにするために使用されてもよいウェブサイト(たとえば、ウェブページ)またはアプリケーションバックエンドソフトウェアを含んでもよい。たとえば、ユーザは、クライアントデバイス604上にインストールされたアプリケーションを使用して3D環境プラットフォーム200にアクセスしてもよい。
【0070】
いくつかの実装形態では、3D環境プラットフォーム200は、ユーザ同士の間の接続を可能にするソーシャルネットワークの一種であってもよく、またはユーザ(たとえば、エンドユーザまたは消費者)が3D環境プラットフォーム200上の他のユーザと通信するのを可能にするユーザ生成コンテンツシステムの一種であってもよく、この場合、通信は、音声チャット(たとえば、同期および/もしくは非同期音声通信)、ビデオチャット(たとえば、同期および/もしくは非同期ビデオ通信)、またはテキストチャット(たとえば、同期および/もしくは非同期テキストベース通信)を含んでもよい。本開示のいくつかの実装形態では、「ユーザ」は単一の個人として表されてもよい。しかし、本開示の他の実装形態は、一群のユーザまたは自動化されたソースによって制御されるエンティティである「ユーザ」(たとえば、作成側ユーザ)を包含する。たとえば、ユーザ生成コンテンツシステムにおけるコミュニティまたはグループとして連合する一群の個人ユーザを「ユーザ」と見なしてもよい。
【0071】
いくつかの実装形態では、3D環境プラットフォーム200は仮想ゲーミングプラットフォーム(たとえば、ゲーミングプラットフォーム602)であってもよい。たとえば、ゲーミングプラットフォームは、ネットワーク610を介してクライアントデバイス604を使用してゲームにアクセスするかまたはゲームと対話することがあるユーザのコミュニティに単一プレーヤゲームまたはマルチプレーヤゲームを提供してもよい。3D環境プラットフォーム200がゲームを提供するいくつかの実装形態では、ゲーム(本明細書では「ビデオゲーム」、「オンラインゲーム」、または「仮想ゲーム」などとも呼ばれる)は、たとえば、2次元(2D)ゲーム、3次元(3D)ゲーム(たとえば、3Dユーザ生成ゲーム)、仮想現実(VR)ゲーム、または拡張現実(AR)ゲームであってもよい。いくつかの実装形態では、ユーザは、他のユーザとのゲームプレーに参加してもよい。いくつかの実装形態では、ゲームはそのゲームの他のユーザとリアルタイムに行われてもよい。
【0072】
いくつかの実装形態では、ゲームプレーは、ゲーム内でのクライアントデバイス(たとえば、クライアントデバイス604a~604c)を使用した1人または複数のプレーヤの対話、またはクライアントデバイス604のディスプレイもしくは他のユーザインターフェース上での対話の提示を指すことがある。
【0073】
いくつかの実装形態では、ゲームまたは他の3D実装形態は、あるエンティティにゲームコンテンツ(たとえば、デジタルメディアアイテム)を提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して実行またはロードすることができる電子ファイルを含んでもよい。
【0074】
3D環境または3D世界が、ゲームコンテンツなどのオブジェクトを表す幾何学的データの3次元表現を実現する(または幾何学的データの3D表現が使用されるかどうかにかかわらず少なくともオブジェクトを3Dコンテンツに見えるように提示する)グラフィックスを使用することに留意されたい。2D環境または2D世界は、オブジェクト/コンテンツの幾何学的データ表現の2次元表現を実現するグラフィックスを使用する。
【0075】
いくつかの実装形態では、3D環境プラットフォーム200は、1つもしくは複数のゲームまたは他の種類の3Dセッションをホストすることができ、ユーザがクライアントデバイス604上にインストールされたアプリケーションを使用して3Dセッションと対話するのを可能にすることができる。3D環境プラットフォーム200のユーザは、3D環境においてプレーし、3D環境を作成し、3D環境と対話し、もしくは3D環境を構築し、他のユーザと通信し、ならびに/または3D環境用のオブジェクト(たとえば、本明細書では「アイテム」もしくは「オブジェクト」もしくは「仮想ゲームアイテム」もしくは「グラフィカルオブジェクト」とも呼ばれる)を作成し構築してもよい。たとえば、ユーザ生成仮想アイテムを生成する際、ユーザは特に、キャラクタ、キャラクタ用の動画、キャラクタ用の装飾、対話型3Dセッション用の1つもしくは複数の仮想環境を作成するか、または3D環境100において使用される構造を構築してもよい。いくつかの実装形態では、ユーザは、3D環境プラットフォーム200の他のユーザと、プラットフォーム内通貨(たとえば、仮想通貨)などの3D仮想オブジェクトの売買または取引を行ってもよい。いくつかの実装形態では、3D環境プラットフォーム200は3Dコンテンツをアプリケーション(たとえば、ゲームアプリケーションまたは仮想会議アプリケーション)に送信してもよい。いくつかの実装形態では、3Dコンテンツ(本明細書では「コンテンツ」とも呼ばれる)は、3D環境プラットフォーム200に関連する任意のデータまたはソフトウェア命令(たとえば、ゲームオブジェクト、ゲーム、ユーザ情報、ビデオ、画像、コマンド、メディアアイテムなど)を指すことがある。いくつかの実装形態では、3Dオブジェクト(たとえば、本明細書では「アイテム」または「オブジェクト」または「仮想ゲームアイテム」とも呼ばれる)は、3D環境プラットフォーム200の3D環境100において使用され、作成され、共有され、または他の方法で示されるオブジェクトを指すことがある。たとえば、3Dオブジェクトは、その一部、モデル、キャラクタ、またはその構成要素(顔、腕、唇など)、道具、武器、衣服、建物、乗り物、通貨、植物、動物、それらの構成要素(たとえば、建物の窓)などを含んでもよい。
【0076】
3D環境100をホストする3D環境プラットフォーム200は、例示のために与えられていることに留意されたい。いくつかの実装形態では、3D環境プラットフォーム200は、1人のユーザから1人または複数の他のユーザへの通信メッセージを含むことができる1つまたは複数のメディアアイテムをホストしてもよい。メディアアイテムには、限定はしないが、デジタルビデオ、デジタル映画、デジタル写真、デジタル音楽、音声コンテンツ、メロディー、ウェブサイトコンテンツ、ソーシャルメディアアップデート、電子書籍、電子雑誌、デジタル新聞、デジタルオーディオブック、電子ジャーナル、ウェブブログ、リアルシンプルシンジケーション(RSS)フィード、電子コミックブック、ソフトウェアアプリケーションなどを含めることができる。いくつかの実装形態では、メディアアイテムは、あるエンティティにデジタルメディアアイテムを提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して実行またはロードすることができる電子ファイルであってもよい。
【0077】
いくつかの実装形態では、3D環境100は、特定のユーザまたはユーザの特定のグループ(たとえば、プライベートゲーム)に関連付けられてもよく、または3D環境プラットフォーム200のユーザに対して幅広く利用可能にされてもよい(たとえば、公的3D環境)。いくつかの実装形態では、3D環境プラットフォーム200が1つまたは複数の3D環境を特定のユーザまたはユーザのグループに関連付け、3D環境プラットフォーム200は、特定のユーザをユーザアカウント情報(たとえば、ユーザ名およびパスワードなどのユーザアカウント識別子)を使用して3D環境に関連付けてもよい。
【0078】
いくつかの実装形態では、3D環境プラットフォーム200またはクライアントデバイス604はアプリケーションを含んでもよい。いくつかの実装形態では、そのようなアプリケーションは、3D環境の開発または実行に使用されてもよい。たとえば、アプリケーションは、特に、2D、3D、VR、またはARグラフィックス用のレンダリングエンジン(「レンダラ」)、物理エンジン、衝突検出エンジン(および衝突応答)、サウンドエンジン、スクリプト機能、アニメーションエンジン、人工知能エンジン、ネットワーキング機能、ストリーミング機能、メモリ管理機能、スレッディング機能、シーングラフ機能、または映画用のビデオサポートを含んでもよい。アプリケーションの構成要素は、3D環境を算出しレンダリングするのを助けるコマンド(たとえば、レンダリングコマンド、衝突コマンド、アニメーションコマンド、物理コマンドなど)を生成してもよい。いくつかの実装形態では、クライアントデバイス604のアプリケーションは、互いに独立して働いてもよく、3D環境プラットフォーム200と協働してもよく、または互いに組み合わされてもよい。
【0079】
いくつかの実装形態では、3D環境プラットフォーム200とクライアントデバイス604の両方が、(エンジンを含む)アプリケーションを実行する。エンジンを使用する3D環境プラットフォーム200は、いくつかまたはすべての機能を実行する(たとえば、上述の入出力モードの変更を制御することを含め、物理コマンド、アニメーションコマンド、レンダリングコマンドなどを生成する)か、またはいくつかもしくはすべての機能をクライアントデバイス604にオフロードしてもよい。いくつかの実装形態では、各3D環境は、3D環境プラットフォーム200上で実行されるエンジン機能と、クライアントデバイス604上で実行される機能との間に異なる比を有してもよい。
【0080】
ユーザは、クライアントデバイス604に対する制御を使用して3D環境において対話してもよく、3D環境プラットフォーム200に制御命令(たとえば、ユーザ入力)を送ってもよい。3D環境プラットフォーム200は、クライアントデバイス604から制御命令を受信した後、制御命令に基づいて命令または情報をクライアントデバイス604に送ってもよい。他の例では、3D環境プラットフォーム200は、制御命令のうちの1つもしくは複数をあるクライアントデバイス604aから、3Dセッションに参加している他のクライアントデバイス(たとえば、クライアントデバイス604b)に渡してもよい。クライアントデバイス604aおよび604bは、命令を使用して、上述のように入出力モードを有効化することを含め、3D環境をクライアントデバイス604aおよび604bのディスプレイ上に提示されるようにレンダリングしてもよい。
【0081】
いくつかの実装形態では、ユーザは、ユーザデバイス上のアプリケーションを介して3D環境プラットフォーム200にログインしてもよい。ユーザは、ユーザアカウント情報(たとえば、ユーザ名およびパスワード)を提供することによってユーザアカウントにアクセスしてもよく、この場合、ユーザアカウントは、3D環境プラットフォーム200によって実現される1つまたは複数の3D環境に参加するのに利用可能な1つまたは複数のキャラクタに関連付けられる。
【0082】
一般に、様々な実装形態において3D環境プラットフォーム200によって実行されるものとして説明した機能は、他の実装形態では適切な場合には、クライアントデバイス604またはサーバによって実行することもできる。さらに、特定の構成要素に起因する機能は、一緒に動作するそれぞれに異なる構成要素または複数の構成要素によって実行することができる。オンライン3D環境プラットフォーム200は、適切なアプリケーションプログラミングインターフェース(API)を介して他のシステムまたはデバイスに提供されるサービスとしてアクセスすることもでき、したがって、ウェブサイトでの使用に限定されない。
【0083】
図7は、いくつかの実装形態による、変化する入出力モードを使用して3D環境(3D環境100など)を動作させるための方法700を示すフローチャートである。説明を簡単にするために、方法700における様々な動作については、3D環境プラットフォーム200が各動作を実行する文脈で説明する。しかし、
図6に関して上記で説明したように、いくつかの動作は、代替的に、または追加として、全体または部分的に、クライアントデバイス604によって実行されてもよい。例示的な方法700は、ブロック702~710などの1つまたは複数のブロックによって示される1つまたは複数の動作を含んでもよい。方法700および/または本明細書で説明する任意の他のプロセスの様々なブロックは、所望の実装形態に基づいて、互いに組み合わせてより少ない数のブロックとし、追加のブロックとして分割し、さらなるブロックを補完し、ならびに/または削除してもよい。
【0084】
図7の方法700は、本明細書では
図1~
図6に示す要素を参照しながら説明することができる。一実施形態では、方法700の動作は、パイプライン式に連続的に実行されてもよい。他の実施形態では、いくつかの動作は、順不同で実行すること、並列に実行することなどが可能である。
【0085】
ブロック702(「第1のユーザから第1の入力信号を受信する。第1の入力信号は、第1の入力モードを介して受信される」)、3D環境プラットフォーム200は、第1のユーザ(クライアントデバイス202におけるユーザAなど)から入力信号を受信する。入力信号は、クライアントデバイス202の第1の入力モードを介して受信される。たとえば、入力モードがビデオおよび音声である場合、第1の入力信号は、カメラ200によって取り込まれたユーザの画像およびマイクロフォンによって取り込まれたユーザの音声を含む。第1の入力信号は、ユーザAの感情を導き出すことのできるユーザAの画像/音声などの感情情報を含んでもよく、または第1の入力信号は、処理要素によって導き出されるユーザの感情を含んでもよい。ブロック702の後にブロック704が実行されてもよい。
【0086】
ブロック704(「第1の入力信号を使用して3D環境における第1のユーザを表す第1のアバターを動画化する」)において、3D環境プラットフォーム200は、第1の入力信号を使用してユーザAの3Dアバターを動画化する。たとえば、第1の入力信号は、ユーザが「頭にきている」と言っている音声情報を含んでもよく、第1の入力信号は、さらにユーザAが怒っていることを示す感情情報を含んでもよい。したがって、3D環境プラットフォーム200は、第1の入力信号からのそのような情報を使用してユーザAの3Dアバターの唇/口/体を動画化して怒りを模倣し、怒った声/荒らげた声で「頭にきている」と言うとともに、3Dアバターの顔を赤らめる。ブロック704の後にブロック706が実行されてもよい。
【0087】
ブロック706(「出力モードに基づいて3D環境を第1のユーザおよび少なくとも第2のユーザに提示する」)、3D環境プラットフォーム200は、3D環境(ユーザAの動画化された3Dアバターおよびその他のユーザを有する)を第1のユーザおよび3D環境100における任意の他のユーザ/参加者に提示する。この提示は、各ユーザに対して有効化される出力モードに基づいてもよい。たとえば、1人のユーザは、このユーザの出力モードとしてテキストのみを有効化していてもよく、したがって、「頭にきている」テキストが提示されており、音声および/または3D動画は提示されていない。様々な他のユーザはそれぞれ、テキストのみ、音声のみ、音声付きのアバター動画、およびテキスト付きのアバター動画など、それらのユーザについて選択された他の出力モードを有してもよい。ブロック706の後にブロック708が実行されてもよい。
【0088】
ブロック708(「第1のユーザの位置が変化したか」)において、3D環境プラットフォーム200は、第1のユーザの位置が変化したかどうかを判定する。変化していない場合(ブロック708における「いいえ」)、3D環境100の提示は、ユーザAに対する3D環境100の現在の形態/内容を有するブロック706に続く。
【0089】
しかし、ブロック708において、ユーザAの位置が変化した場合(ブロック708における「はい」)、3D環境プラットフォーム200は、ブロック710(「ユーザの入力モードを第1の入力モードから第2の入力モードに変更する」)においてユーザAの入力モードを適切に変更する。たとえば、前述の
図4を参照するとわかるように、ユーザAが運転している間、ユーザAが図書館にいる間などにユーザAの入力モードを変更してもよい。ユーザAについての出力モードは、ブロック710において変更してもよい。
【0090】
方法700は次いで、ブロック702~ブロック708と同様に進行する。
【0091】
図8は、本明細書で説明する1つまたは複数の特徴を実施するために使用されてもよい例示的なコンピューティングデバイス800のブロック図である。クライアントデバイス604(クライアントデバイス202~208を含む)および/または3D環境プラットフォーム200は、
図8のコンピューティングデバイス800の形態で設けられてもよい。一例では、コンピューティングデバイス800は、本明細書で説明する方法を実施するために使用されてもよい。コンピューティングデバイス800は、任意の適切なコンピュータシステム、サーバ、または他の電子デバイスまたはハードウェアデバイスとすることができる。たとえば、コンピューティングデバイス800は、メインフレームコンピュータ、デスクトップコンピュータ、ワークステーション、ポータブルコンピュータ、または電子デバイス(ポータブルデバイス、モバイルデバイス、携帯電話、スマートフォン、タブレットコンピュータ、テレビジョン、TVセットトップボックス、携帯情報端末(PDA)、メディアプレーヤ、ゲームデバイス、ウエアラブルデバイスなど)とすることができる。いくつかの実装形態では、デバイス800は、プロセッサ802と、メモリ804と、入出力(I/O)インターフェースおよびツール806と、入出力(I/O)デバイス814とを含む。
【0092】
プロセッサ802は、プログラムコードを実行し、コンピューティングデバイス800の基本動作を制御するための1つまたは複数のプロセッサおよび/または処理回路とすることができる。「プロセッサ」は、データ、信号、または他の情報を処理する任意の適切なハードウェアおよび/またはソフトウェアシステム、機構、または構成要素を含む。プロセッサは、汎用中央演算処理装置(CPU)を有するシステム、複数の処理ユニット、機能を実現するための専用回路、または他のシステムを含んでもよい。処理は、特定の地理的位置に限定する必要はなく、時間的な制限を有する必要もない。たとえば、プロセッサはその機能を「リアルタイム」、「オフライン」、「バッチモード」などで実施してもよい。処理の各部分は、それぞれに異なる時間およびそれぞれに異なる位置で、それぞれに異なる(または同じ)処理システムによって実行されてもよい。コンピュータは、メモリと通信する任意のプロセッサであってもよい。
【0093】
メモリ804は、プロセッサ802によってアクセスされるようにコンピューティングデバイス800内に設けられてもよく、プロセッサによって実行される命令を記憶するのに適しており、プロセッサ802から離れた位置に配置され、ならびに/またはプロセッサ802と一体化された、任意の適切なプロセッサ可読記憶媒体、たとえば、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的消去可能読取り専用メモリ(EEPROM)、フラッシュメモリなどであってもよい。メモリ804は、プロセッサ802によってコンピューティングデバイス800上で実行可能なソフトウェアを記憶することができ、オペレーティングシステム808と、1つまたは複数のアプリケーション810と、それに関連するデータ812とを含む。アプリケーション810は、3D環境プラットフォーム200と協働して3Dアバターを有する3D環境を生成するとともに、本明細書で説明する様々な入出力モードを有効化するために使用することができる。いくつかの実装形態では、アプリケーション810は、プロセッサ802による実行に応じて、プロセッサ802が、3D環境において入出力モードを使用することに関して本明細書で説明する動作を実行するかまたは動作の実行を制御するのを可能にする命令を含むことができる。
【0094】
代替的に、メモリ804におけるソフトウェアのいずれかを任意の他の適切なストレージ位置またはコンピュータ可読媒体上に記憶することができる。さらに、メモリ804(および/または他の接続されたストレージデバイス)は、本明細書で説明する特徴において使用される命令およびデータを記憶することができる。メモリ804および任意の他の種類のストレージ(磁気ディスク、光ディスク、磁気テープ、または他の有形媒体)を「ストレージ」または「ストレージデバイス」と見なすことができる。
【0095】
入出力インターフェースおよびツール806は、コンピューティングデバイス800と他のシステムおよびデバイスとのインターフェースをとるのを可能にするための機能を提供することができる。たとえば、ネットワーク通信デバイス、ストレージデバイス、および入出力デバイスは、入出力インターフェースおよびツール806を介してコンピューティングデバイス800と通信することができる。いくつかの実装形態では、入出力インターフェースおよびツール806は、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナなど)および/または出力デバイス(ディスプレイデバイス、スピーカデバイス、プリンタ、モータなど)を含むインターフェースデバイスに接続することができ、入力デバイスおよび/または出力デバイスは、少なくとも1つの入出力デバイス618として集合的に示されている。ツール806は、コンピューティングデバイス800の他の構成要素またはコンピューティングデバイス800の外部の構成要素と通信してもよいGPSツール、センサツール、加速度計などをさらに含んでもよい。
【0096】
入出力デバイス814は、音声メッセージを入力として受信するために使用できる音声入力デバイス(たとえば、マイクロフォンなど)、音声出力デバイス(たとえば、スピーカ、ヘッドフォンなど)、および/または上述のグラフィカル出力および視覚出力を提供するために使用できる表示デバイスを含むことができる。入出力デバイス814は、キーボード、カメラ、および本明細書で説明する様々な入出力モードを実現することができるその他のデバイスを含むこともできる。
【0097】
図示を容易にするために、
図8は、プロセッサ802、メモリ804、入出力インターフェースおよびツール806、アプリケーション810などの各々について1つのブロックを示す。これらのブロックは、1つまたは複数のプロセッサまたは処理回路、オペレーティングシステム、メモリ、入出力インターフェース、アプリケーション、および/またはソフトウェアモジュールを表してもよい。他の実施形態では、デバイス600は、図示の構成要素のすべてを有するとは限らず、ならびに/または図示する要素の代わりにまたは図示する要素に加えて他の種類の要素を含む他の要素を含んでもよい。
【0098】
ユーザデバイスも本明細書で説明する特徴を実現することができ、および/または本明細書で説明する特徴とともに使用することができる。例示的なユーザデバイスは、コンピューティングデバイス800と同様のいくつかの構成要素、たとえば、プロセッサ802、メモリ804、および入出力インターフェースおよびツール806を含むコンピュータデバイスとすることができる。クライアントデバイスに適したオペレーティングシステム、ソフトウェア、およびアプリケーションをメモリに設け、プロセッサによって使用することができる。クライアントデバイス用の入出力インターフェースは、ネットワーク通信デバイス、ならびに入力デバイスおよび出力デバイス、たとえば、音声を取り込むためのマイクロフォン、画像もしくはビデオを取り込むためのカメラ、音声を出力するためのオーディオスピーカデバイス、画像もしくはビデオを出力するための表示デバイス、またはその他の出力デバイスに接続することができる。音声/ビデオ入出力デバイス814内の表示デバイスは、たとえば、本明細書で説明するように前処理され後処理された画像を表示するためにデバイス800に接続する(デバイス800に含める)ことができ、そのような表示デバイスは、任意の適切な表示デバイス、たとえば、LCD、LED、またはプラズマ表示画面、CRT、テレビジョン、モニタ、タッチスクリーン、3D表示画面、プロジェクタ、または他の視覚表示デバイスを含むことができる。いくつかの実装形態は、テキストを発話する音声出力デバイス、たとえば、音声出力または合成デバイスを実現することができる。
【0099】
本明細書で説明する1つまたは複数の方法(たとえば、方法700)は、コンピュータプログラム命令またはコードによって実施することができ、コンピュータプログラム命令またはコードはコンピュータ上で実行することができる。たとえば、コードは、1つまたは複数のデジタルプロセッサ(たとえば、マイクロプロセッサまたは他の処理回路)によって実施することができ、非一時的コンピュータ可読媒体(たとえば、記憶媒体)、たとえば、磁気記憶媒体、光学記憶媒体、電磁気記憶媒体、または半導体メモリもしくは固体メモリ、磁気テープ、取り外し可能コンピュータディスケット、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、フラッシュメモリ、剛体磁気ディスク、光ディスク、固体メモリドライブなどを含む半導体記憶媒体を含むコンピュータプログラム製品上に記憶することができる。プログラム命令は、たとえば、サーバ(たとえば、分散システムおよび/またはクラウドコンピューティングシステム)から配送されるソフトウェアアズアサービス(SaaS)の形態で、電子信号に含め、かつ電子信号として提供することもできる。代替的に、1つまたは複数の方法をハードウェアとして実装するか(論理ゲートなど)、またはハードウェアとソフトウェアの組合せとして実装することができる。例示的なハードウェアは、プログラム可能なプロセッサ(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、結合プログラム可能論理回路)、汎用プロセッサ、グラフィックスプロセッサ、特定用途向け集積回路(ASIC)などとすることができる。1つまたは複数の方法は、システム上で動作するアプリケーションの一部もしくは構成要素として実行するか、または他のアプリケーションおよびオペレーティングシステムと連動するアプリケーションもしくはソフトウェアとして実行することができる。
【0100】
本明細書で説明する1つまたは複数の方法は、任意の種類のコンピューティングデバイス上で実行することができるスタンドアロンプログラム、ウェブブラウザ上で実行されるプログラム、モバイルコンピューティングデバイス(たとえば、携帯電話、スマートフォン、タブレットコンピュータ、ウエアラブルデバイス(腕時計、腕飾り、宝石、帽子、ゴーグル、眼鏡など)、ラップトップコンピュータ)上で実行されるモバイルアプリケーション(「app」)において実行することができる。一例では、クライアント/サーバアーキテクチャを使用することができ、たとえば、モバイルコンピューティングデバイス(クライアントデバイスとして)は、ユーザ入力データをサーバデバイスに送り、出力される(たとえば、表示される)最終出力データをサーバから受信する。別の例では、すべての計算をモバイルコンピューティングデバイス上のモバイルapp(および/または他のapp)内で実行することができる。別の例では、計算をモバイルコンピューティングデバイスと1つまたは複数のサーバデバイスとの間で分割することができる。
【0101】
特定の実装形態について説明したが、これらの特定の実装形態は、例示的なものに過ぎず、制限的なものではない。例示された概念は、他の例および実装形態に適用されてもよい。
【0102】
本開示で説明した機能ブロック、動作、特徴、方法、デバイス、およびシステムを当業者に公知のシステム、デバイス、および機能ブロックの異なる組合せとして一体化するかまたは分割してもよいことに留意されたい。任意の適切なプログラミング言語およびプログラミング技法を使用して特定の実装形態のルーチンを実施してもよい。様々なプログラミング技法、たとえば、手続き型プログラミングまたはオブジェクト指向プログラミングを使用してもよい。ルーチンは、単一の処理デバイス上で実行されてもよく、または複数のプロセッサ上で実行されてもよい。ステップ、動作、または計算は特定の順序で提示されることがあるが、それぞれに異なる特定の実装形態では順序が変更されてもよい。いくつかの実装形態では、本明細書で連続的に示されている複数のステップまたは動作が同時に実行されてもよい。
【符号の説明】
【0103】
100 3D環境
102 バブルテキストフォーマット
200 3D環境プラットフォーム
202~208 クライアントデバイス
300 カメラ
302 バイオメトリックセンサ
304 3Dアバター
500 クライアントデバイス
602 オンラインゲーミングプラットフォーム
604a~604c クライアントデバイス
606a 第1のサーバ
606b 第2のサーバ
608 外部システム
610 ネットワーク
618 入出力デバイス
800 コンピューティングデバイス
802 プロセッサ
804 メモリ
806 入出力インターフェースおよびツール
808 オペレーティングシステム
810 アプリケーション
812 データ
814 入出力デバイス