(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-21
(45)【発行日】2023-08-29
(54)【発明の名称】電子ゲームにおけるカメラビューの変更
(51)【国際特許分類】
A63F 13/5258 20140101AFI20230822BHJP
A63F 13/55 20140101ALI20230822BHJP
【FI】
A63F13/5258
A63F13/55
(21)【出願番号】P 2022507474
(86)(22)【出願日】2019-09-17
(86)【国際出願番号】 US2019051518
(87)【国際公開番号】W WO2021025709
(87)【国際公開日】2021-02-11
【審査請求日】2022-03-18
(32)【優先日】2019-08-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520317055
【氏名又は名称】ロブロックス・コーポレーション
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】パーカー・シー・ステビンズ
【審査官】岸 智史
(56)【参考文献】
【文献】特開2005-310020(JP,A)
【文献】特開2018-112789(JP,A)
【文献】特開2014-235596(JP,A)
【文献】特開2003-334380(JP,A)
【文献】米国特許第09972122(US,B1)
【文献】米国特許出願公開第2018/0276874(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24、13/00-13/98
(57)【特許請求の範囲】
【請求項1】
電子ゲームにおいてレンダリングされる3次元(3D)世界のカメラビューを変更するための方法であって、
前記3D世界にレンダリングされた第1のグラフィックオブジェクトのトラバーサルの速度および方向を判定するステップと、
トラバーサルの前記方向に沿って位置付けられた第2のグラフィックオブジェクトを特定するステップと、
トラバーサルの前記方向に沿った前記第1のグラフィックオブジェクトのトラバーサル中に、前記第2のグラフィックオブジェクトが現在のカメラビュー内で前記第1のグラフィックオブジェクトを少なくとも閾値のレベルだけ遮蔽するかどうかを判定するステップと、
前記第2のグラフィックオブジェクトによる前記第1のグラフィックオブジェクトの遮蔽が少なくとも前記閾値のレベルを超えるとの判定に応じて、前記第1のグラフィックオブジェクトに向かって前方に前記カメラビューを移動させることによって前記第2のグラフィックオブジェクトによる前記遮蔽を回避するために、前記第1のグラフィックオブジェクトの前記現在のカメラビューを変更するステップと、
前記第2のグラフィックオブジェクトによる前記遮蔽が前記閾値のレベル未満であるとの判定に応じて、前記現在のカメラビューを維持するステップとを含
み、
前記第1のグラフィックオブジェクトが少なくとも前記閾値のレベルだけ遮蔽されるかどうかを判定するステップは、前記第2のグラフィックオブジェクトによって遮蔽される前記第1のグラフィックオブジェクトの外形の量と、前記トラバーサルの速度を用いて判定するステップを含む、
方法。
【請求項2】
前記第1のグラフィックオブジェクトが、前記電子ゲームのプレイヤーに関連するアバターを含み、前記第1のグラフィックオブジェクトのトラバーサルの前記速度および前記方向が、前記プレイヤーによって制御可能である請求項1に記載の方法
。
【請求項3】
前記第2のグラフィックオブジェクトによる前記遮蔽を回避するために前記第1のグラフィックオブジェクトに向かって前方に前記カメラビューを移動させた後、前記第1のグラフィックオブジェクトがトラバーサルの前記方向に沿って前記第2のグラフィックオブジェクトを通過したことに応じて、前記カメラビューを前記第1のグラフィックオブジェクトから離れて後方に移動させるステップをさらに含む請求項1に記載の方法。
【請求項4】
第1のグラフィックオブジェクトが前記第2のグラフィックオブジェクトの後ろに位置付けられている間、またはトラバーサルの前記方向に沿って前記第2のグラフィックオブジェクトの直ぐ後に位置付けられ、前記第1のグラフィックオブジェクトを少なくとも前記閾値のレベルだけ遮蔽する第3のグラフィックオブジェクトの特定に応じて、前記第1のグラフィックオブジェクトに向かって前方に移動される前記カメラビューを維持するステップをさらに含む請求項1に記載の方法。
【請求項5】
前記第2のグラフィックオブジェクトが少なくとも半透明のグラフィックオブジェクトであり、前記半透明のグラフィックオブジェクトを通して、前記第1のグラフィックオブジェクトが前記現在のカメラビュー内で可視である場合、前記第2のグラフィックオブジェクトによる前記遮蔽が、前記閾値のレベル未満である請求項1に記載の方法。
【請求項6】
プロセッサによる実行に応じて前記プロセッサに、
電子ゲームの3次元(3D)世界にレンダリングされた第1のグラフィックオブジェクトのトラバーサルの速度および方向を判定する動作と、
トラバーサルの前記方向に沿って位置付けられた第2のグラフィックオブジェクトを特定する動作と、
トラバーサルの前記方向に沿った前記第1のグラフィックオブジェクトのトラバーサル中に、前記第2のグラフィックオブジェクトが現在のカメラビュー内で前記第1のグラフィックオブジェクトを少なくとも閾値のレベルだけ遮蔽するかどうかを判定する動作と、
前記第2のグラフィックオブジェクトによる前記第1のグラフィックオブジェクトの遮蔽が少なくとも前記閾値のレベルを超えるとの判定に応じて、前記第1のグラフィックオブジェクトに向かう前方への前記カメラビューの移動によって前記第2のグラフィックオブジェクトによる前記遮蔽を回避するために、前記第1のグラフィックオブジェクトの前記現在のカメラビューを変更する動作と、
前記第2のグラフィックオブジェクトによる前記遮蔽が前記閾値のレベル未満であるとの判定に応じて、前記現在のカメラビューを維持する動作とを含む動作を実行させるかまたは前記動作の実行を制御させる命令を記憶させた非一時的コンピュータ可読媒体
であって、
前記第1のグラフィックオブジェクトが閾値のレベルだけ遮蔽されるかどうかを判定する前記動作は、前記第2のグラフィックオブジェクトによって遮蔽される前記第1のグラフィックオブジェクトの外形の量と、前記トラバーサルの前記速度を用いて判定する動作を含む、
非一時的コンピュータ可読媒体。
【請求項7】
前記第1のグラフィックオブジェクトが、前記電子ゲームのプレイヤーに関連するアバターを含み、前記第1のグラフィックオブジェクトのトラバーサルの前記速度および前記方向が、前記プレイヤーによって制御可能である請求項
6に記載の非一時的コンピュータ可読媒体
。
【請求項8】
前記動作が、
前記カメラビューが前記第2のグラフィックオブジェクトによる前記遮蔽を回避するために前記第1のグラフィックオブジェクトに向かって前方に移動した後、前記第1のグラフィックオブジェクトがトラバーサルの前記方向に沿って前記第2のグラフィックオブジェクトを通過したことに応じて、前記カメラビューを前記第1のグラフィックオブジェクトから離れて後方に移動させる動作をさらに含む請求項
6に記載の非一時的コンピュータ可読媒体。
【請求項9】
前記動作が、
第1のグラフィックオブジェクトが前記第2のグラフィックオブジェクトの後ろに位置付けられている間、またはトラバーサルの前記方向に沿って前記第2のグラフィックオブジェクトの直ぐ後に位置付けられ、前記第1のグラフィックオブジェクトを少なくとも前記閾値のレベルだけ遮蔽する第3のグラフィックオブジェクトの特定に応じて、前記第1のグラフィックオブジェクトに向かって前方に移動される前記カメラビューを維持する動作をさらに含む請求項
6に記載の非一時的コンピュータ可読媒体。
【請求項10】
前記第2のグラフィックオブジェクトが少なくとも半透明のグラフィックオブジェクトであり、前記半透明のグラフィックオブジェクトを通して、前記第1のグラフィックオブジェクトが前記現在のカメラビュー内で可視である場合、前記第2のグラフィックオブジェクトによる前記遮蔽が、前記閾値のレベル未満である請求項
6に記載の非一時的コンピュータ可読媒体。
【請求項11】
ユーザインターフェースと、
前記ユーザインターフェース、およびゲームアプリケーションを記憶させたメモリに結合されたプロセッサであって、前記ゲームアプリケーションが、前記プロセッサによる実行に応じて、前記プロセッサに電子ゲームの3次元(3D)世界のカメラビューを前記ユーザインターフェース上に提示させ、前記ゲームアプリケーションが、前記プロセッサに、
前記3D世界にレンダリングされた第1のグラフィックオブジェクトのトラバーサルの速度および方向を判定する動作、
トラバーサルの前記方向に沿って位置付けられた第2のグラフィックオブジェクトを特定する動作、
トラバーサルの前記方向に沿った前記第1のグラフィックオブジェクトのトラバーサル中に、前記第2のグラフィックオブジェクトが現在のカメラビュー内で前記第1のグラフィックオブジェクトを少なくとも閾値のレベルだけ遮蔽するかどうかを判定する動作、
前記第2のグラフィックオブジェクトによる前記第1のグラフィックオブジェクトの遮蔽が少なくとも前記閾値のレベルを超えるとの判定に応じて、前記第1のグラフィックオブジェクトに向かう前方への前記カメラビューの移動によって前記第2のグラフィックオブジェクトによる前記遮蔽を回避するために、前記第1のグラフィックオブジェクトの前記現在のカメラビューを変更する動作、ならびに
前記第2のグラフィックオブジェクトによる前記遮蔽が前記閾値のレベル未満であるとの判定に応じて、前記現在のカメラビューを維持する動作を含む動作を実行させるかまたは前記動作の実行を制御させるために前記プロセッサによってさらに実行可能である、プロセッサとを含む装置
であって、
前記第1のグラフィックオブジェクトが少なくとも閾値のレベルだけ遮蔽されるかどうかを判定する前記動作は、前記第2のグラフィックオブジェクトによって遮蔽される前記第1のグラフィックオブジェクトの外形の量と、前記トラバーサルの速度を用いて判定する動作を含む、
装置。
【請求項12】
前記第1のグラフィックオブジェクトが、前記電子ゲームのプレイヤーに関連するアバターを含み、前記第1のグラフィックオブジェクトのトラバーサルの前記速度および前記方向が、前記プレイヤーによって制御可能である請求項
11に記載の装置
。
【請求項13】
前記カメラビューが前記第2のグラフィックオブジェクトによる前記遮蔽を回避するために前記第1のグラフィックオブジェクトに向かって前方に移動した後、前記ゲームアプリケーションが、前記プロセッサに、
前記第1のグラフィックオブジェクトがトラバーサルの前記方向に沿って前記第2のグラフィックオブジェクトを通過したことに応じて、前記カメラビューを前記第1のグラフィックオブジェクトから離れて後方に移動させる動作を実行させるかまたは前記移動させる動作の実行を制御させるために前記プロセッサによってさらに実行可能である請求項
11に記載の装置。
【請求項14】
前記ゲームアプリケーションが、前記プロセッサに、
第1のグラフィックオブジェクトが前記第2のグラフィックオブジェクトの後ろに位置付けられている間、またはトラバーサルの前記方向に沿って前記第2のグラフィックオブジェクトの直ぐ後に位置付けられ、前記第1のグラフィックオブジェクトを少なくとも前記閾値のレベルだけ遮蔽する第3のグラフィックオブジェクトの特定に応じて、前記第1のグラフィックオブジェクトに向かって前方に移動される前記カメラビューを維持する動作を実行させるかまたは前記維持する動作の実行を制御させるために前記プロセッサによってさらに実行可能である請求項
11に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、コンピュータベースのゲームに関し、より詳細には、ただし、非排他的に、電子ゲームにおいてカメラビューを提示するための方法、システム、およびコンピュータ可読媒体に関する。
【背景技術】
【0002】
一部のオンラインゲームプラットフォームは、ユーザ(たとえば、プレイヤー)が3次元(3D)世界の中で自分のアバターをナビゲートすることを可能にする。マウス、キーボード、またはユーザのクライアントデバイスに設けられたその他の入力メカニズムを使用して、ユーザは、自分のアバターが3D世界の建物、野原、森、公園、山、およびその他の環境を走ること、歩くこと、登ること、飛ぶことなどを制御することができ、木、壁、柱、雲、およびその他の構造物/オブジェクトなどの様々な要素が、3D世界の中で視覚的なグラフィック表現としてレンダリングされる。
【0003】
概して、3D世界は、アバターが3D世界をある地点から別の地点までトラバースする(traverse)ときにライブカメラがアバターを追いかけているかのようにカメラビュー内に提示される。しかし、多くの電子ゲームのカメラビューは、多くのユーザにとって煩わしい不快な不連続性および破壊的な視覚効果でいっぱいであることが多い。
【発明の概要】
【課題を解決するための手段】
【0004】
第1の態様によれば、電子ゲームにおいてレンダリングされる3次元(3D)世界のカメラビューを変更するための方法が、提供される。方法は、3D世界にレンダリングされた第1のグラフィックオブジェクトのトラバーサル(traersal)の速度および方向を判定するステップと、トラバーサルの方向に沿って位置付けられた第2のグラフィックオブジェクトを特定するステップと、トラバーサルの方向に沿った第1のグラフィックオブジェクトのトラバーサル中に、第2のグラフィックオブジェクトが現在のカメラビュー内で第1のグラフィックオブジェクトを少なくとも閾値のレベルだけ遮蔽するかどうかを判定するステップと、第2のグラフィックオブジェクトによる第1のグラフィックオブジェクトの遮蔽が少なくとも閾値のレベルを超えるとの判定に応じて、第1のグラフィックオブジェクトに向かって前方にカメラビューを移動させることによって第2のグラフィックオブジェクトによる遮蔽を回避するために、第1のグラフィックオブジェクトの現在のカメラビューを変更するステップと、第2のグラフィックオブジェクトによる遮蔽が閾値のレベル未満であるとの判定に応じて、現在のカメラビューを維持するステップとを含む。
【0005】
別の態様によれば、プロセッサによる実行に応じてプロセッサに動作を実行させるかまたは動作の実行を制御させる命令を記憶させた非一時的コンピュータ可読媒体が、提供される。動作は、電子ゲームの3次元(3D)世界にレンダリングされた第1のグラフィックオブジェクトのトラバーサルの速度および方向を判定する動作と、トラバーサルの方向に沿って位置付けられた第2のグラフィックオブジェクトを特定する動作と、トラバーサルの方向に沿った第1のグラフィックオブジェクトのトラバーサル中に、第2のグラフィックオブジェクトが現在のカメラビュー内で第1のグラフィックオブジェクトを少なくとも閾値のレベルだけ遮蔽するかどうかを判定する動作と、第2のグラフィックオブジェクトによる第1のグラフィックオブジェクトの遮蔽が少なくとも閾値のレベルを超えるとの判定に応じて、第1のグラフィックオブジェクトに向かう前方へのカメラビューの移動によって第2のグラフィックオブジェクトによる遮蔽を回避するために、第1のグラフィックオブジェクトの現在のカメラビューを変更する動作と、第2のグラフィックオブジェクトによる遮蔽が閾値のレベル未満であるとの判定に応じて、現在のカメラビューを維持する動作とを含む。
【0006】
さらに別の態様によれば、ユーザインターフェースと、ユーザインターフェースおよびゲームアプリケーションを記憶させたメモリに結合されたプロセッサであって、ゲームアプリケーションが、プロセッサによる実行に応じて、プロセッサに電子ゲームの3次元(3D)世界のカメラビューをユーザインターフェース上に提示させ、ゲームアプリケーションが、プロセッサに動作を実行させるかまたは動作の実行を制御させるためにプロセッサによってさらに実行可能である、プロセッサとを含む装置が、提供される。動作は、3D世界にレンダリングされた第1のグラフィックオブジェクトのトラバーサルの速度および方向を判定する動作と、トラバーサルの方向に沿って位置付けられた第2のグラフィックオブジェクトを特定する動作と、トラバーサルの方向に沿った第1のグラフィックオブジェクトのトラバーサル中に、第2のグラフィックオブジェクトが現在のカメラビュー内で第1のグラフィックオブジェクトを少なくとも閾値のレベルだけ遮蔽するかどうかを判定する動作と、第2のグラフィックオブジェクトによる第1のグラフィックオブジェクトの遮蔽が少なくとも閾値のレベルを超えるとの判定に応じて、第1のグラフィックオブジェクトに向かう前方へのカメラビューの移動によって第2のグラフィックオブジェクトによる遮蔽を回避するために、第1のグラフィックオブジェクトの現在のカメラビューを変更する動作と、第2のグラフィックオブジェクトによる遮蔽が閾値のレベル未満であるとの判定に応じて、現在のカメラビューを維持する動作とを含む。
【図面の簡単な説明】
【0007】
【
図1A】3D世界をトラバースするアバターの例示的なカメラビューの図であり、カメラビューは前方に移動しなかった。
【
図1B】
図1Aの3D世界をトラバースするアバターのトップビュー(top view)の図である。
【
図2A】3D世界をトラバースするアバターの別の例示的なカメラビューの図であり、カメラビューは前方に移動し、それから後方に移動した。
【
図2B】
図2Aの3D世界をトラバースするアバターのトップビューの図である。
【
図3】一部の実装による、電子ゲームにおいてカメラビューを変更するべきかどうかを判定するために使用されてよい例示的なパラメータを示す図である。
【
図4】一部の実装による、
図1A、
図1B、
図2A、および
図2Bのカメラビューを提供することができる、オンラインゲームのための例示的なシステムアーキテクチャの図である。
【
図5】一部の実装による、電子ゲームにおいてカメラビューを変更するための方法を示す流れ図である。
【
図6】一部の実装による例示的なコンピューティングデバイスを示すブロック図である。
【発明を実施するための形態】
【0008】
以下の詳細な説明において、本明細書の一部をなす添付の図面に対する参照がなされる。図面において、概して、同様の符号は、文脈がそうでないことを示さない限り、同様の構成要素を特定する。詳細な説明、図面、および請求項に記載の例示的な実施形態は、限定的であるように意図されていない。本明細書において提示される対象の精神または範囲を逸脱することなく、その他の実施形態が利用される場合があり、その他の変更がなされる場合がある。本明細書において全体的に説明され、図に図示される本開示の態様は、多種多様な異なる構成で配置され、置き換えられ、組み合わされ、分割され、設計されることが可能であり、それらの構成のすべては、本明細書において想定されている。
【0009】
「一実施形態」、「実施形態」、「例示的な実施形態」などの本明細書における言及は、説明された実施形態が特定の特徴、構造、または特性を含む可能性があるが、あらゆる実施形態が特定の特徴、構造、または特性を含むとは限らない可能性があることを示す。その上、そのような語句は、必ずしも同じ実施形態への言及であるとは限らない。さらに、特定の特徴、構造、または特性が実施形態に関連して説明されるとき、そのような特徴、構造、または特性は、明示的に説明されているか否かにかかわらずその他の実施形態に関連して実現される場合がある。
【0010】
本開示は、発生する遮蔽のレベルに応じて(カメラビュー内でのアバターの遮蔽を回避するために)選択的にカメラビューをアバターに向かって前方に移動させることによって電子ゲームにおける上述の欠点に対処する。カメラビューを静止したままにするべきか、カメラビューを前方に移動させるべきか、またはカメラビューを後方に移動させるべきかは、電子ゲームの3次元(3D)世界をアバターがトラバースする速度および方向、遮蔽が強い遮蔽(hard occlusion)であるかどうか、遮蔽が弱い遮蔽(soft occlusion)であるかどうか、またはその他の要因などのいくつかの要因に依存し得る。
【0011】
たとえば、(壁またはその他の不透明なグラフィックオブジェクトなどの)強い遮蔽は、壁がカメラビューから取り除かれ、したがって、アバターのカメラビューを遮蔽しないように、カメラビューを前方に移動させる場合がある。(透明な窓、またはアバターを部分的にのみ遮蔽する少なくとも半透明な構造物/オブジェクトなどの)弱い遮蔽は、弱い遮蔽の後ろでアバターが動いているのを見られ得るように、カメラビューが静止したままにされるようにする場合がある(たとえば、カメラビューは前方に移動されない)。
【0012】
アバターが3D世界内をトラバースするときのアバターの方向および速度は、カメラビューを変更するべきかどうかを判定するために使用され得る。たとえば、トラバーサルの方向および速度がアバターに強い遮蔽の後ろを通過させると、たとえば、ゲームアプリケーションによって判定される場合、カメラビューは、(アバターの遮蔽されていないカメラビューを提供するために)トラバーサルの方向に垂直な方向に、アバターに向かって前方に移動される。別の例として、トラバーサルの方向および速度がアバターに弱い遮蔽の後ろを通過させると、たとえば、ゲームアプリケーションによって判定される場合、ゲームアプリケーションは、アバターが弱い遮蔽の後ろをトラバースするときにカメラビューがアバターが部分的に遮蔽されているのを見せるように、カメラビューを静止したままである(トラバーサルの方向に垂直な方向に、アバターに向かって前方に移動しない)ように制御することができる。
【0013】
アバターのトラバーサルの速度および/または潜在的な遮蔽の量も、カメラビューを変更するべきかどうかを判定するための要素/閾値として使用され得る。一例として、ゲームアプリケーションは、アバターが(壁などの)強い遮蔽の後ろを素早くトラバースすると判定し得る。したがって、たとえ壁がアバターを最大100%の遮蔽によって遮蔽する可能性があっても、アバターは、100%の遮蔽が、たとえば、数秒未満の短い期間発生する場合があるような十分な速度で動いている可能性がある。そのような場合、完全な遮蔽の持続時間が、たとえば、カメラを高速で移動させるよりもゲームの滑らかなビューをレンダリングするために許容可能であると判定されてよく、したがって、ゲームアプリケーションは、遮蔽を回避するためにカメラビューを前方に移動させなくてよい。別の例においては、アバターが、アバターを部分的にのみ遮蔽する(たとえば10%だけの遮蔽などの)弱い遮蔽(細いポールなど)の後ろで一時停止/停止する場合がある--そのような場合、部分的な遮蔽の持続時間は、数秒を超える場合があり、したがって、ゲームアプリケーションは、アバターの完全な(遮蔽されていない)ビューを提供するためにカメラビューを前方に移動させてよい。
【0014】
上のおよびその他の態様の詳細は、
図1A、
図1B、
図2A、および
図2Bを参照することによってさらに理解され得る。まず、
図1Aは、電子ゲームの3D世界をトラバースするアバター102のカメラビュー100の例である。カメラビュー100は、たとえば、3D世界内でアバター102の動きに追従する(たとえば、動きに沿ってパンする)ようにクライアントデバイスのユーザインターフェース上でレンダリングされるサイドビュー(side view)であってよい。本明細書において示され、説明されるカメラビューは、カメラビューを生成するためおよび異なるビューを生成するために3D世界のどこにでも位置付けられ得る「仮想カメラ」によって提供されてよい。仮想カメラの位置も、更新/変更され得る。
【0015】
一部の実装において、アバター102は、電子ゲームをプレイするためにクライアントデバイスを操作しているプレイヤー/ユーザを表すグラフィックオブジェクトであってよい。電子ゲームをプレイしている間、アバター102は、1つまたは複数の矢印104によって表されるように、3D世界を左から右にトラバースしている(たとえば、歩いているまたは走っている)。アバター102がカメラビュー100内を左から右に移動するとき、アバター102のその後の位置は、
図1A(およびその他の図)に、アバター102の複数の破線表現によって示される。
【0016】
カメラビュー100は、アバター102が、最初に、実質的に平坦な経路106に沿って、左から右方向にトラバースしていることを示す。平坦な経路106は、3D世界の(x-y座標によって表現される可能性がある)平面領域上にいてよい。また、アバター102は、左から右にトラバースし続けるとき、3D世界の(x-y-z座標によって表現される可能性がある)斜面108を登るために高度を変えてよい。
【0017】
アバター102に加えて、複数のグラフィックオブジェクトが、3D世界内にレンダリングされてよい。たとえば、グラフィックオブジェクトは、経路106および斜面108に沿って存在する木110、112、および114であることが可能である。木110、112、および114は、それぞれの木の幹116、118、および120を有していてよい。別のグラフィックオブジェクトは、斜面108の上端の(建物の壁などの)壁122であってよい。
【0018】
木110、112、および114は、それぞれの木の幹116、118、および120を有していてよく、これらの木の幹116、118、および120は、アバターが木の幹116、118、および120の各々の後ろを通過するときに木の幹116、118、および120がアバター102を完全に遮蔽しないような比較的細い外形を有する。したがって、木の幹116、118、および120の各々は、アバター102の少なくとも一部が可視であることを可能にする「弱い」遮蔽と考えられてよい。したがって、たとえば、
図1Aにおいては、アバター102の身体の他の部分が木の幹116、118、および120によって遮蔽される一方で、(頭部、四肢、または胴体の一部など)アバター102の身体の一部は、カメラビュー100内で可視のままである場合がある。下で
図3に関連してさらに詳細に説明されるように、遮蔽の量および/または持続時間が、(たとえば、木の幹116、118、および120がカメラビュー100内でアバター102の一部を遮蔽する
図1Aに示されるように)カメラビュー100を静止したままにすべきかどうか、またはアバター102が木の幹116、118、および120の後ろをトラバースするときにアバター102の遮蔽されていないビューを示すために、カメラビュー100をアバター102と木の幹116、118、および120との間の位置まで前方に移動させるかどうかを判定するために使用されてよい。
【0019】
図1Bは、
図1Aの3D世界をトラバースするアバター102のトップビューである。一実施形態において、
図1Bのトップビューは、電子ゲームのプレイ中にユーザが俯瞰平面ビュー(overhead planar view)または鳥瞰ビュー(bird's eye view)を選択した場合などに、電子ゲームにおいてレンダリングされるカメラビュー150であり得る。
図1Aのカメラビュー100に示されたグラフィックオブジェクトの場所に対応して、
図1Bのカメラビュー150は、アバター102および破線で描かれたアバター102のその後の位置、アバター102のトラバーサルの方向を示す矢印104、木110、112、および114、ならびに壁122を示す。
【0020】
図1Bは、木110が張り出した枝124を持ち、その下をアバター102が通過することを示す。
図1Aのカメラビュー100と同様に、
図1Bのカメラビュー150は、アバター102のその他の部分が枝124の下で可視のままである一方で、アバター102が枝124の下をトラバースするときにアバター102の一部を遮蔽する弱い遮蔽として枝124が扱われるように、静止したままであった。アバター102のより大きな部分を(および/または遮蔽のより長い持続時間の間)遮蔽したであろう、(より太い枝、雲、幹線道路の高架橋などの)枝124よりも大きな外形を有するグラフィックオブジェクトが存在する場合、カメラビュー150は、アバター102がカメラビュー内で遮蔽されていないように、そのようなグラフィックオブジェクトとアバター102との「間」にカメラビューを移動させるために変更される可能性がある。
【0021】
図1Aおよび
図1Bに示されるように、アバター102は、壁122に近づいている。アバター102が壁122の後ろをトラバースしている間、カメラビュー100が変化しないままである場合、アバター102は、壁122によって完全に遮蔽される。したがって、壁122は、アバター102を完全に遮蔽する強い遮蔽であると考えられ得る。したがって、一実施形態は、アバター102が壁122の後ろに位置付けられている間、壁122がアバター102を遮蔽しないように、カメラビューを変更する。
図2Aおよび
図2Bは、この態様をさらに詳細に示す。
【0022】
特に、
図2Aは、アバター102が壁122の後ろを(今度もまた矢印104およびアバター102の破線表現によって示されるように)トラバースしているカメラビュー200であり、カメラビュー200は、
図1Aのカメラビュー100に比べて前方に移動した。したがって、
図2Aにおいては、カメラビュー200をレンダリングするカメラが、壁122とアバター102との間の位置まで(アバター102に向かって、矢印104に垂直な方向に)前方に移動される(たとえば、アバター102のより近くに移動した)。このようにして、壁122は、カメラビュー200から消え(たとえば、取り除かれ)、したがって、もはやアバター102を遮蔽しない。また、
図2Aに示されるように、アバター102は、拡大されたサイズでレンダリングされているものとして示されるが、これは、カメラビュー200がアバター102のより近くにズームインしたことを表す。
【0023】
図2Bのトップビューにおけるアバター102の対応する位置に示されるように、壁122自体は、存在したままであり、アバター102は、壁122の後ろを引き続きトラバースしている。上で説明されたようにおよび
図1Aに示されているものと比較して、カメラビュー200は、壁122を越えて前方に移動されたので、今や壁122を除外しており、それによって、カメラビュー200内で壁122がアバター102を遮蔽することを防止する。
【0024】
図2Aおよび
図2Bの例において、アバター102は、壁122の後をトラバースし続け、窓枠206に取り付けられた窓202および204を含む壁122の一部に到達する。窓202および204ならびに窓枠206は、アバター102が窓202および204ならびに窓枠206の後ろをトラバースするときにアバター102の一部が可視であることを可能にする弱い遮蔽と考えられ得る。たとえば、窓202および204は、透明または半透明である場合があり、窓枠206は、アバター102の外形に比べてより狭い外形を有している場合がある。
【0025】
図2Aは、カメラビュー200に比べて後方に(アバター102から離れ、トラバーサルの方向に垂直な方向に)移動したカメラビュー250を生成するカメラをさらに示す。つまり、カメラビュー250を生成するカメラは、窓202および204ならびに窓枠206の前にあるように、今やその元の位置に戻った。アバター102は、今や、カメラビュー200における拡大されたサイズに比べてサイズがより小さくなり(その元のサイズに戻り)、アバター102が窓202および204ならびに窓枠206の後ろをトラバースするとき、アバター102は、部分的に可視であるかまたは部分的に遮蔽される。
【0026】
図3は、一部の実装による、電子ゲームにおいてカメラビューを変更するべきかどうかを判定するために使用されてよい例示的なパラメータを示す図である。
図3に示される様々なグラフィック要素およびその他の情報は、理解をさらに助けるためおよび一貫性を保つために、
図1A、
図1B、
図2A、および
図2Bと同様にラベル付けされる。
【0027】
図1Bおよび
図2Bと同様に、
図3は、3D世界のトップビューを表す。3D世界およびそこに含まれるグラフィック要素は、一例としてx-y-z座標系300によってレイアウトされてよいが、グラフィック要素の相対的な場所および位置を特定するためのその他の種類の座標系および技術が、異なる実施形態において使用されてよい。
図3において、x-y座標軸は、図の紙面上にあり、一方、z座標は、図の紙面に垂直な軸上にある。説明を簡単にするために、アバター102は、以降で、矢印104の方向にx軸に沿ってのみトラバースしており、y座標およびz座標に沿ってx軸から外れてトラバースしていないものとして示され、説明される。3D世界内のアバター102のこの1次元的なトラバーサルは、単なる例であり、プレイヤー/ユーザは、アバター102を座標系300内の任意の方向にナビゲートしてよい--x軸に沿ったアバター102の1次元的な移動に関連する以下の説明は、y軸およびz軸に沿ったアバター102のその他の移動にも適用され得る--ことが理解される。
【0028】
アバター102は、ディスプレイ画面上の1秒あたりのピクセル数または測定のその他の単位で測定される可能性がある特定の速度vでx軸に沿ってトラバースしている。任意の所与の時間的段階で、アバター102の位置は、座標系300の点A、A1、A2、A3、A4などにおいて特定される場合がある。点A、A1、A2、A3、A4などは、アバター102を貫く中心軸、(指先などの)アバターの端、または座標系300におけるアバター102の瞬間的な位置を特定するのに十分な、アバター102の体のグラフィック表現上のその他の場所に対応する場合がある。また、3D世界内のその他のグラフィック要素の位置が、座標系300内の1つまたは複数の点B~Hによって表される場合がある。たとえば、木114の木の幹120の位置は、木の幹120の中心のz軸に沿った点Cにおいて定義される場合がある。代替的または追加的に、木の幹120の端の境界は、点BおよびDにおいて特定される場合がある。さらに代替的または追加的に、木の幹120のz軸に沿った点Cが、木の幹120の場所を特定するために使用されてよく、その他の構成情報が、木の幹120の一定のまたは変化する端を特定するために使用され得る(点Cおよび木の幹120のz軸に沿ったその他の点から測定される、ピクセルを単位とする半径など)。
【0029】
類似の方法で、壁122の端は、点EおよびFに位置付けられる場合があり、窓202の端は、点FおよびGに位置付けられる場合があり、窓枠206の端は、点GおよびHに位置付けられる場合がある。点A~Hに対応する特定の座標およびその他のサイズ/場所の情報が、3D世界の各グラフィック要素のプロパティ/構成情報として記憶され得る。
【0030】
図1Aおよび
図2Aのカメラビュー100、200、および250は、
図3にも破線で表されている。まずカメラビュー100に関連して始まり、アバター102が点Aから点A1に向かって、それから点A2に向かってトラバースしていると判定される。点BまたはCに対応するx座標の前(たとえば、その左)の領域において、ゲームアプリケーションは、アバター102を遮蔽するグラフィックオブジェクトが存在しないと判定し、したがって、カメラビュー100は、変更されないままにされる。
【0031】
アバター102が点BまたはCに対応するx座標に近づくとき、たとえば、グラフィックオブジェクト(たとえば、木114)がアバター102のトラバーサルの経路の近傍にあり、アバター102を遮蔽すると、ゲームアプリケーション(またはゲームエンジン)によって判定される。しかし、ゲームアプリケーションは、アバター102が(最大の量の遮蔽が存在する可能性がある点Cのx座標に対応する)点A1に到達したとき、アバター102が完全には遮蔽されないおよび/またはほんの一瞬だけ遮蔽されるとさらに判定する。たとえば、最大の量の遮蔽は、アバター102の外形の50%未満、または何らかのその他の閾値未満である可能性がある。たとえば、木の幹120の直径の点Bと点Dとの間の長さが、アバター102の可視の外形の長さよりもずっと短い可能性があり、したがって、最大の量の遮蔽は、アバター102の可視の外形の50%未満である可能性がある。50%の閾値の量は、例であり、電子ゲームのためにその他の閾値の量または範囲に構成され得る。その他の閾値またはそれらの組合せが、使用されてよい。たとえば、カメラビューを変更するべきかどうかを判定するための閾値は、持続時間(たとえば、0.5秒以下の遮蔽)、または遮蔽の時間と量との組合せ(たとえば、0.5秒よりも長い間の60%以上の遮蔽など)に基づき得る。この例において、ゲームアプリケーションは、遮蔽の量がカメラビューの変更のための閾値を満たさないので、カメラビュー100を変更されないままにする(たとえば、カメラビューを前方に移動させない)。
【0032】
一部の実施形態においては、遮蔽の持続時間が、カメラビューを変更するべきかどうかを判定するための追加的または代替的なパラメータとして使用され得る。たとえば、一部の実装の木の幹120は、アバター102の外形の50%よりも多く、おそらくは最大で100%の遮蔽までも遮蔽するように十分に幅が広い場合がある。しかし、遮蔽の持続時間が1秒または電子ゲームのために設定される可能性がある時間のその他の閾値のレベル未満であるようにアバター102の速度vが十分に高い場合、ゲームアプリケーションは、カメラビュー100を変更しない場合がある(たとえば、カメラビュー100は、静止したままにされ、前方に移動されない)。この根拠は、一時的な遮蔽よりもユーザインターフェースとして快適でない高レベルの動きをするカメラビューを提供する可能性があるカメラの前後方向の急速な動きに比べて、遮蔽の持続時間が十分に短いことである。
【0033】
別の例において、木の幹120(またはその他のグラフィックオブジェクト)によって引き起こされる遮蔽の量は、アバターが部分的に遮蔽されている間に、ユーザがアバター102を一時停止するかまたはアバター102の速度vを下げると決めたことを除いて、50%以下である可能性がある。したがって、遮蔽の持続時間は、1秒または電子ゲームに設定されるその他の閾値の時間の量を超える可能性がある。そのような状況において、ゲームアプリケーションは、カメラビューをアバター102に向かって前方に移動させるようにカメラビューを変更することができ、それによって、アバター102が一時停止されるかまたはゆっくりと動いている間、アバター102の遮蔽されていないビューを提供する。
【0034】
図3について続けると、アバター102は、トラバースを続け、点A2に到達した。点A2は、点Eのx座標の直前に、ちょうど点Eのx座標に、または点Eのx座標の直後にあることが可能である。この状況において、ゲームアプリケーションは、アバター102のトラバーサルの速度vおよび方向がアバター102を壁122の後ろに配置すると判定する。また、ゲームアプリケーションは、構成情報から、壁122が点Eと点Fとの間でアバター102を完全に遮蔽する強い遮蔽をすることを知る。したがって、ゲームアプリケーションは、アバター102が点EおよびFに対応するx座標間をトラバースしている間(たとえば、アバター102が点A3にいる間)、壁122とアバター102の間にカメラビューを移動させるためにカメラビューがカメラビュー100からカメラビュー200に変更されるように、カメラの位置を変更する。
【0035】
その後、アバター102が点Fのx座標に近づくか、ちょうど点Fのx座標にいるか、または点Fのx座標をたった今通過したとき、ゲームアプリケーションは、トラバーサルの方向および速度が弱い遮蔽である窓202および窓枠206の後ろをアバター102に通過させると判定する。したがって、ゲームアプリケーションは、カメラ位置を変更してカメラビュー200からカメラビュー250に変更することができ、それによって、カメラビューをその元の位置まで後方に移動させる。したがって、アバター102は、点Fと点Gとの間では窓202の後ろで完全に可視であり、点Gと点Hの間では部分的に遮蔽される。カメラビュー100、150、250などを提供するためのカメラの前方および後方への移動は、遷移中に遮蔽しているグラフィックオブジェクトをレンダリングすることを回避する「急に切り替わる(jerky)ズーム」であってよく、またはカメラビューが遮蔽しているグラフィックオブジェクトを滑るように通過する比較的滑らかな遷移であってよい。遷移の種類は、開発者および/またはプレイヤーの構成の設定に基づいて実装ごとに変わり得る。
【0036】
したがって、カメラビュー250は、点Gと点Hとの間で窓枠206によって引き起こされる弱い遮蔽の後ろでアバター102が一時停止するのかまたは減速するのかに応じてカメラビュー250をおそらく変更することを含め、上述のカメラビュー100と類似したものであることが可能である。
【0037】
図1A、
図1B、
図2A、
図2B、および
図3は、x方向の動きを示すが、アバターが、ユーザの入力に基づいて任意の方向、たとえば、x-y方向、y-z方向、またはx-y-z方向に動いてよいことは理解されるであろう。たとえば、(たとえば、キーボード上で単一の矢印キーが押されること、単一の方向のジェスチャ入力などによって示される)横方向の動きが、単一の方向に沿った動きを含む場合がある。別の例においては、(たとえば、2つの垂直な矢印キー、たとえば、左および上が同時に押されること、「飛び跳ねる」ジェスチャなどによって示される)組合せ動作が、2つ以上の方向の動きを含む場合がある。異なる実装において、カメラビューを生成するカメラは、動きの主たる方向に概して垂直な方向に位置付けられてよく、たとえば、アバターがユーザインターフェース内で左から右に移動するとき、カメラは、アバターを表示する画面に垂直な方向に位置付けられてよい。異なる実装において、3D世界内でのアバターの動きは、ゲームの開発者によって指定された規則によって統制されてよい。一部の実装において、ゲーム内の各グラフィックオブジェクトは、対応するプロパティ、たとえば、寸法、透明度、色、テクスチャなどとともにデータストアに記憶される場合がある。
【0038】
図4は、一部の実装による、
図1A、
図1B、
図2A、および
図2Bのカメラビューを提供することができる、オンラインゲームのための例示的なシステムアーキテクチャの図である。オンラインゲームプラットフォーム(「ユーザ生成コンテンツプラットフォーム」または「ユーザ生成コンテンツシステム」とも呼ばれる)は、ユーザが電子ゲームをプレイしている間などにユーザが互いにインタラクションするための様々な方法を提供する。たとえば、オンラインゲームプラットフォームのユーザは、共通の目標に向かって一緒に働く、様々な仮想的なゲームアイテムを共有する、互いに電子メッセージを送信するなどする場合がある。オンラインゲームプラットフォームのユーザは、ユーザが電子ゲームのレンダリングされた3D世界の中をナビゲートすることができる上述のアバター102のようなキャラクタを使用してゲームをプレイする場合がある。
【0039】
また、オンラインゲームプラットフォームは、プラットフォームのユーザがアバターを作成し、アニメーションさせることを可能にし、ユーザが3D世界に配置するためのその他のグラフィックオブジェクトを作成することを可能にする場合がある。たとえば、オンラインゲームプラットフォームのユーザは、アバター102を作成、デザイン、およびカスタマイズし、壁122、窓202、およびその他のグラフィックオブジェクトを3D世界内に作成、デザイン、および挿入することを可能にされる場合がある。
【0040】
図4において、例示的なシステムアーキテクチャ400(本明細書においては「システム」とも呼ばれる)は、オンラインゲームプラットフォーム402、第1のクライアントデバイス410(本明細書においては概して「クライアントデバイス410」と呼ばれる)、および少なくとも1つの第2のクライアントデバイス416を含む。オンラインゲームプラットフォーム402は、とりわけ、ゲームエンジン404および1つまたは複数の電子ゲーム406を含み得る。システムアーキテクチャ400は、1つの可能な実装の説明のために提供される。その他実装において、システムアーキテクチャ400は、
図4に示されたのと同じまたは異なる方法で構成された同じ、より少ない、より多い、または異なる要素を含んでよい。
【0041】
オンラインゲームプラットフォーム402とクライアントデバイス410/416との間、および/またはシステムアーキテクチャ400のその他の要素の間の通信のために、通信ネットワーク422が使用されてよい。ネットワーク422は、パブリックネットワーク(たとえば、インターネット)、プライベートネットワーク(たとえば、ローカルエリアネットワーク(LAN)もしくは広域ネットワーク(WAN))、有線ネットワーク(たとえば、イーサネットネットワーク)、ワイヤレスネットワーク(たとえば、802.11ネットワーク、Wi-Fiネットワーク、もしくはワイヤレスLAN(WLAN))、セルラネットワーク(たとえば、ロングタームエボリューション(LTE)ネットワーク)、ルータ、ハブ、スイッチ、サーバコンピュータ、またはこれらの組合せを含んでよい。
【0042】
クライアントデバイス410は、ゲームアプリケーション412および1つまたは複数のユーザインターフェース414(たとえば、オーディオ/ビデオ入力/出力デバイス)を含み得る。クライアントデバイス416は、ゲームアプリケーション420およびユーザインターフェース418(たとえば、オーディオ/ビデオ入力/出力デバイス)を含み得る。オーディオ/ビデオ入力/出力デバイスは、マイクロフォン、スピーカ、ヘッドフォン、ディスプレイデバイスなどのうちの1つまたは複数を含み得る。
【0043】
システムアーキテクチャ400は、1つまたは複数のストレージデバイス424をさらに含んでよい。ストレージデバイス424は、たとえば、オンラインゲームプラットフォーム402内にあるか、または(
図4に示されるように)ネットワーク422を介してオンラインゲームプラットフォーム402に通信可能なように結合されたストレージデバイスであってよい。ストレージデバイス424は、たとえば、ゲームエンジン404またはゲームアプリケーション412/420によってゲーム406内でレンダリングされるグラフィックオブジェクトと、(上述の座標情報、サイズ寸法などの)グラフィックオブジェクトの構成/プロパティ情報とを記憶してよい。一部の実施形態において、ストレージデバイス424は、ゲーム406内でレンダリングされるグラフィックオブジェクトを提供する別個のコンテンツ配信ネットワークの一部であることが可能である。たとえば、ゲームアプリケーション412は、ゲームをプレイしている最中に提示するために、ストレージデバイス424に記憶されたグラフィックオブジェクトをプルしてよい(またはストレージデバイス424にプッシュさせてよい)。
【0044】
一部の実装において、ストレージデバイス424は、非一時的コンピュータ可読メモリ(たとえば、ランダムアクセスメモリ)、キャッシュ、ドライブ(たとえば、ハードドライブ)、フラッシュドライブ、データベースシステム、またはデータおよびその他の内容を記憶することができる別の種類の構成要素もしくはデバイスであってよい。また、ストレージデバイス424は、複数のコンピューティングデバイス(たとえば、複数のサーバコンピュータ)に広がる場合もある複数のストレージ構成要素(たとえば、複数のドライブまたは複数のデータベース)を含んでよい。
【0045】
一部の実装において、オンラインゲームプラットフォーム402は、1つまたは複数のコンピューティングデバイスを有するサーバ(たとえば、クラウドコンピューティングシステム、ラックマウントサーバ、サーバコンピュータ、物理サーバのクラスタなど)を含み得る。一部の実装において、サーバは、オンラインゲームプラットフォーム402に含まれるか、独立したシステムであるか、または別のシステムもしくはプラットフォームの一部であってよい。
【0046】
一部の実装において、オンラインゲームプラットフォーム402は、オンラインゲームプラットフォーム402上で動作を実行し、ユーザにオンラインゲームプラットフォーム402へのアクセスを提供するために使用されてよい(ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータなどの)1つまたは複数のコンピューティングデバイス、データストア(たとえば、ハードディスク、メモリ、データベース)、ネットワーク、ソフトウェア構成要素、および/またはハードウェア構成要素を含んでよい。また、オンラインゲームプラットフォーム402は、ユーザにオンラインゲームプラットフォーム402によって提供されるコンテンツへのアクセスを提供するために使用されてよいウェブサイト(たとえば、ウェブページ)またはアプリケーションバックエンドソフトウェアを含んでよい。たとえば、ユーザは、クライアントデバイス410上のゲームアプリケーション412を使用してオンラインゲームプラットフォーム402にアクセスしてよい。
【0047】
一部の実装において、オンラインゲームプラットフォーム402は、ユーザ間のつながりを提供するある種のソーシャルネットワーク、またはユーザ(たとえば、エンドユーザもしくはコンシューマ)がオンラインゲームプラットフォーム402上でその他のユーザとコミュニケーションすることを可能にするある種のユーザ生成コンテンツシステムであってよく、コミュニケーションは、音声チャット(たとえば、同期および/もしくは非同期音声コミュニケーション)、ビデオチャット(たとえば、同期および/もしくは非同期ビデオコミュニケーション)、またはテキストチャット(たとえば、同期および/もしくは非同期のテキストに基づくコミュニケーション)を含んでよい。本開示の一部の実装において、「ユーザ」は、1人の個人として表される場合がある。しかし、本開示のその他の実装は、「ユーザ」(たとえば、作成ユーザ)が1組のユーザによって制御されるエンティティ(entity)または自動化されたソースであることを包含する。たとえば、ユーザ生成コンテンツシステム内のコミュニティまたはグループとして連合した1組の個人ユーザが、「ユーザ」とみなされる場合がある。
【0048】
一部の実装において、オンラインゲームプラットフォーム402は、仮想ゲームプラットフォームである場合がある。たとえば、ゲームプラットフォームは、ネットワーク422を介してクライアントデバイス410を使用してゲームにアクセスするかまたはゲームとインタラクションしてよいユーザのコミュニティにシングルプレイヤーゲームまたはマルチプレイヤーゲームを提供する場合がある。一部の実装において、ゲーム(本明細書においては「ビデオゲーム」、「オンラインゲーム」、または「仮想ゲーム」とも呼ばれる)は、たとえば、2次元(2D)ゲーム、3次元(3D)ゲーム(たとえば、3Dのユーザによって生成されたゲーム)、仮想現実(VR)ゲーム、または拡張現実(AR)ゲームであってよい。一部の実装において、ユーザは、その他のユーザとともにゲームプレイに参加する場合がある。一部の実装において、ゲームは、ゲームのその他のユーザと一緒にリアルタイムでプレイされる場合がある。
【0049】
一部の実装において、ゲームプレイは、ゲーム(たとえば、ゲーム406)内のクライアントデバイス(たとえば、クライアントデバイス410および/もしくは416)を使用する1人もしくは複数のプレイヤーのインタラクション、またはクライアントデバイス410もしくは416のディスプレイもしくはその他のユーザインターフェース(たとえば、ユーザインターフェース414/418)上のインタラクションの提示を指す場合がある。
【0050】
一部の実装において、ゲーム406は、エンティティにゲームコンテンツ(たとえば、デジタルメディアアイテム)を提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して実行またはロードされることが可能である電子ファイルを含み得る。一部の実装においては、ゲームアプリケーション412が、ゲームエンジン404に関連して実行される場合があり、ゲーム406が、ゲームエンジン404に関連してレンダリングされる場合がある。一部の実装において、ゲーム406は、共通の1組の規則または共通の目標を有する場合があり、ゲーム406の環境は、共通の1組の規則または共通の目標を共有する。一部の実装において、異なるゲームは、互いに異なる規則または目標を有する場合がある。
【0051】
一部の実装において、ゲームは、(本明細書においては「ゲーム環境」または「仮想環境」とも呼ばれる)1つまたは複数の環境を有する場合があり、複数の環境が、リンクされる場合がある。環境の例は、3D環境である可能性がある。ゲーム406の1つまたは複数の環境は、本明細書においては集合的に「世界」または「ゲーム世界」または「仮想世界」または「ユニバース」と呼ばれる場合がある。世界の例は、上述の
図1A、
図1B、
図2A、
図2B、および
図3に示されたような、ゲーム406の3D世界である可能性がある。たとえば、ユーザは、別のユーザによって作成された別の仮想環境にリンクされる仮想環境を構築してよい。仮想ゲームのキャラクタは、隣接する仮想環境に入るために仮想的な境界を越える場合がある。
【0052】
3D環境または3D世界は、ゲームコンテンツを表す幾何学データの3次元表現を提供する(または少なくとも、幾何学データの3D表現が使用されるか否かにかかわらず3Dコンテンツに見えるようにゲームコンテンツを提示する)グラフィックスを使用することが留意されてよい。2D環境または2D世界は、ゲームコンテンツを表す幾何学データの2次元表現を提供するグラフィックスを使用する。
【0053】
一部の実装において、オンラインゲームプラットフォーム402は、1つまたは複数のゲーム406をホストすることができ、クライアントデバイス410のゲームアプリケーション412を使用してユーザがゲーム406とインタラクションすることを可能にし得る。オンラインゲームプラットフォーム402のユーザは、ゲーム406をプレイするか、ゲーム406を作成するか、ゲーム406とインタラクションするか、もしくはゲーム406を構築する、その他のユーザとコミュニケーションする、および/またはゲーム406のオブジェクト(たとえば、本明細書においては「アイテム」もしくは「ゲームオブジェクト」もしくは「仮想ゲームアイテム」もしくは「グラフィックオブジェクト」とも呼ばれる)を作成し、構築する場合がある。たとえば、ユーザ生成仮想アイテムを生成する際、ユーザは、とりわけ、キャラクタ、キャラクタのためのアニメーション、キャラクタのための装飾、インタラクティブゲームのための1つもしくは複数の仮想環境を作成するか、またはゲーム406内で使用される構造物を構築する場合がある。一部の実装において、ユーザは、プラットフォーム内通貨(たとえば、仮想的な通貨)などのゲームの仮想ゲームオブジェクトを買うか、売るか、またはオンラインゲームプラットフォーム402のその他のユーザと取引する場合がある。一部の実装において、オンラインゲームプラットフォーム402は、ゲームアプリケーション(たとえば、ゲームアプリケーションは412)にゲームコンテンツを送信してよい。一部の実装において、ゲームコンテンツ(本明細書においては「コンテンツ」とも呼ばれる)は、オンラインゲームプラットフォーム402またはゲームアプリケーションに関連する任意のデータまたはソフトウェア命令(たとえば、ゲームオブジェクト、ゲーム、ユーザ情報、ビデオ、画像、コマンド、メディアアイテムなど)を指す場合がある。一部の実装において、ゲームオブジェクト(たとえば、本明細書においては「アイテム」または「オブジェクト」または「仮想ゲームアイテム」とも呼ばれる)は、オンラインゲームプラットフォーム402のゲーム406またはクライアントデバイス410/416のゲームアプリケーション412もしくは420において使用されるか、作成されるか、共有されるか、またはそうでなければ示されるオ
ブジェクトを指す場合がある。たとえば、ゲームオブジェクトは、パーツ、モデル、キャラクタまたは(顔、腕、唇などのような)その構成要素、ツール、武器、衣類、建物、乗り物、通貨、植物相、動物相、上述のものの構成要素(たとえば、建物の窓)などを含んでよい。
【0054】
ゲーム406をホストするオンラインゲームプラットフォーム406は、説明を目的として与えられることが留意されてよい。一部の実装において、オンラインゲームプラットフォーム402は、1人のユーザから1人または複数のその他のユーザへのコミュニケーションメッセージを含み得る1つまたは複数のメディアアイテムをホストする場合がある。メディアアイテムは、デジタルビデオ、デジタルムービー、デジタル写真、デジタル音楽、オーディオコンテンツ、メロディー、ウェブサイトコンテンツ、ソーシャルメディアの最新記事、電子ブック、電子雑誌、デジタル新聞、デジタルオーディオブック、電子ジャーナル、ウェブブログ、リアルシンプルシンジケーション(RSS: real simple syndication)フィード、電子漫画、ソフトウェアアプリケーションなどを含み得るがこれらに限定されない。一部の実装において、メディアアイテムは、エンティティにデジタルメディアアイテムを提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して実行またはロードされることが可能である電子ファイルであってよい。
【0055】
一部の実装において、ゲーム406は、特定のユーザまたはユーザの特定のグループに関連付けられる場合があり(たとえば、非公開のゲーム)、またはオンラインゲームプラットフォーム402のユーザに広く利用され得るようにされる場合がある(たとえば、公開されたゲーム)。オンラインゲームプラットフォーム402が1つまたは複数のゲーム406を特定のユーザまたはユーザのグループに関連付ける一部の実装において、オンラインゲームプラットフォーム402は、ユーザアカウント情報(たとえば、ユーザ名およびパスワードなどのユーザアカウント識別子)を使用して特定のユーザをゲーム406に関連付ける場合がある。
【0056】
一部の実装において、オンラインゲームプラットフォーム402またはクライアントデバイス410/416は、ゲームエンジン404またはゲームアプリケーション412/420を含んでよい。一部の実装において、ゲームエンジン404は、ゲーム406の開発または実行のために使用されてよい。たとえば、ゲームエンジン404は、特徴の中でもとりわけ、2D、3D、VR、もしくはARグラフィックスのためのレンダリングエンジン(「レンダラ」)、物理エンジン、衝突検出エンジン(および衝突応答(collision response))、サウンドエンジン、スクリプティング機能、アニメーションエンジン、人工知能エンジン、ネットワーキング機能、ストリーミング機能、メモリ管理機能、スレッディング機能、シーングラフ機能、または映画製作技術(cinematics)のためのビデオサポートを含んでよい。ゲームエンジン404の構成要素は、ゲームを計算し、レンダリングするのを助けるコマンド(たとえば、レンダリングコマンド、衝突コマンド、アニメーションコマンド、物理コマンドなど)を生成してよい。一部の実装において、クライアントデバイス410/416のゲームアプリケーション412/418は、それぞれ、独立して、オンラインゲームプラットフォーム402のゲームエンジン404と協力して、またはそれら両方の組合せで働く場合がある。
【0057】
一部の実装においては、オンラインゲームプラットフォーム402とクライアントデバイス410/416との両方が、ゲームエンジンまたはゲームアプリケーション(それぞれ404、412、420)を実行する。ゲームエンジン404を使用するオンラインゲームプラットフォーム402は、一部のもしくはすべてのゲームエンジンの機能を実行する(たとえば、上述のカメラビューへの変更を制御することを含め、物理コマンド、アニメーションコマンド、レンダリングコマンドなどを生成する)か、または一部のもしくはすべてのゲームエンジンの機能をクライアントデバイス410のゲームアプリケーション412にオフロードする場合がある。一部の実装において、各ゲーム406は、オンラインゲームプラットフォーム402において実行されるゲームエンジンの機能とクライアントデバイス410および416において実行されるゲームエンジンの機能との間の異なる比率を有してよい。
【0058】
たとえば、オンラインゲームプラットフォーム402のゲームエンジン404が、少なくとも2つのゲームオブジェクトの間の衝突が存在する場合に物理コマンドを生成するために使用される場合がある一方、さらなるゲームエンジンの機能(たとえば、カメラビューを変更することを含む、レンダリングコマンドの生成)は、クライアントデバイス410にオフロードされる場合がある。一部の実装において、オンラインゲームプラットフォーム402において実行されるゲームエンジンの機能とクライアントデバイス410において実行されるゲームエンジンの機能との比率は、ゲームプレイの条件に基づいて(たとえば、動的に)変更されてよい。たとえば、特定のゲーム406のゲームプレイに参加するユーザの数が閾値の数を超える場合、オンラインゲームプラットフォーム402は、クライアントデバイス410または416によって前に実行された1つまたは複数のゲームエンジンの機能を実行する場合がある。
【0059】
たとえば、ユーザは、クライアントデバイス410および416上でゲーム406をプレイしている可能性があり、オンラインゲームプラットフォーム402に制御命令(たとえば、右、左、上、下、ユーザ選択、またはキャラクタ位置および速度情報など)を送信する可能性がある。クライアントデバイス410および416から制御命令を受信した後、オンラインゲームプラットフォーム402は、制御命令に基づいてクライアントデバイス410および416にゲームプレイ命令(たとえば、グループゲームプレイに参加するキャラクタの位置および速度情報、またはレンダリングコマンド、衝突コマンドなどのコマンド)を送信してよい。たとえば、オンラインゲームプラットフォーム402は、クライアントデバイス410および416のためのゲームプレイ命令を生成するために制御命令に関して(たとえば、ゲームエンジン404を使用して)1つまたは複数の論理的な動作を実行してよい。その他の場合、オンラインゲームプラットフォーム402は、1つのクライアントデバイス410からゲーム406に参加するその他のクライアントデバイス(たとえば、クライアントデバイス416)に制御命令のうちの1つまたは複数を渡してよい。クライアントデバイス410および416は、ゲームプレイ命令を使用し、上述の調整可能なカメラビューを含め、クライアントデバイス410および416のディスプレイ上に提示するためにゲームプレイをレンダリングしてよい。
【0060】
一部の実装において、制御命令は、ユーザのキャラクタのゲーム内アクションを示す命令を指す場合がある。たとえば、制御命令は、右、左、上、下、ユーザ選択、ジャイロスコープの位置および向きデータ、力センサデータなどの、ゲーム内アクションを制御するためのユーザ入力を含んでよい。制御命令は、キャラクタ位置および速度情報を含んでよい。一部の実装において、制御命令は、オンラインゲームプラットフォーム402に直接送信される。その他の実装において、制御命令は、クライアントデバイス410から別のクライアントデバイス(たとえば、クライアントデバイス416)に送信される場合があり、別のクライアントデバイスが、ローカルのゲームエンジンアプリケーション420を使用してゲームプレイ命令を生成する。制御命令は、オーディオデバイス(たとえば、スピーカ、ヘッドフォンなど)で別のユーザからの音声コミュニケーションメッセージまたはその他の音、たとえば、本明細書において説明されるようにオーディオ空間化(audio spatialization)技術を使用して生成された音声コミュニケーションまたはその他の音を再生するための命令を含んでよい。
【0061】
一部の実装において、ゲームプレイ命令は、クライアントデバイス110がマルチプレイヤーゲームなどのゲームのゲームプレイをレンダリングすることを可能にする命令を指す場合がある。ゲームプレイ命令は、ユーザ入力(たとえば、制御命令)、キャラクタ位置および速度情報、またはコマンド(たとえば、物理コマンド、アニメーションコマンド、レンダリングコマンド、衝突コマンドなど)のうちの1つまたは複数を含んでよい。
【0062】
一部の実装において、クライアントデバイス410または416は、パーソナルコンピュータ(PC)、モバイルデバイス(たとえば、ラップトップ、モバイル電話、スマートフォン、タブレットコンピュータ、またはネットブックコンピュータ)、ネットワークに接続されたテレビ、ゲームコンソールなどのコンピューティングデバイスをそれぞれ含んでよい。一部の実装において、クライアントデバイス410または416は、「ユーザデバイス」とも呼ばれる場合がある。一部の実装において、1つまたは複数のクライアントデバイス410または416は、いつでもオンラインゲームプラットフォーム402に接続する可能性がある。クライアントデバイス410または416の数は、限定ではなく例示として与えられることが留意されてよい。一部の実装においては、任意の数のクライアントデバイス410または416が使用される場合がある。
【0063】
一部の実装において、各クライアントデバイス410または416は、ゲームアプリケーション412または420のインスタンスをそれぞれ含んでよい。1つの実装において、ゲームアプリケーション412または420は、オンラインゲームプラットフォーム402によってホストされる仮想ゲームの仮想的なキャラクタを制御するか、またはゲーム406、画像、ビデオアイテム、ウェブページ、ドキュメントなどのコンテンツを見るもしくはアップロードするなど、ユーザがオンラインゲームプラットフォーム402を使用し、オンラインゲームサーバ402とインタラクションすることを可能にしてよい。一例において、ゲームアプリケーションは、ウェブサーバによって提供されるコンテンツ(たとえば、仮想環境内の仮想的なキャラクタなど)にアクセスするか、そのようなコンテンツを取り出すか、提示するか、またはナビゲートすることができるウェブアプリケーション(たとえば、ウェブブラウザと連携して動作するアプリケーション)であってよい。別の例において、ゲームアプリケーションは、クライアントデバイス410または416のローカルにインストールされ、実行され、ユーザがオンラインゲームプラットフォーム402とインタラクションすることを可能にするネイティブアプリケーション(たとえば、モバイルアプリケーション、アプリ、またはゲームプログラム)であってよい。ゲームアプリケーションは、ユーザに対してコンテンツ(たとえば、ウェブページ、メディアビュワー)をレンダリングするか、表示するか、または提示する場合がある。実装において、ゲームアプリケーションは、ウェブページに埋め込まれる埋め込みメディアプレイヤー(たとえば、Flash(登録商標)プレイヤー)も含む場合がある。
【0064】
本開示の態様によれば、ゲームアプリケーション412/420は、ユーザがコンテンツを構築し、作成し、編集し、オンラインゲームプラットフォーム402にアップロードし、オンラインゲームプラットフォーム402とインタラクションする(たとえば、オンラインゲームプラットフォーム402によってホストされるゲーム406をプレイする)ためのオンラインゲームプラットフォームアプリケーションであってよい。したがって、ゲームアプリケーション412/420は、オンラインゲームプラットフォーム402によってクライアントデバイス410または416に提供されてよい。別の例において、ゲームアプリケーションは、サーバからダウンロードされるアプリケーションである場合がある。
【0065】
一部の実装において、ユーザは、ゲームアプリケーションを介してオンラインゲームプラットフォーム402にログインする場合がある。ユーザは、ユーザアカウント情報(たとえば、ユーザ名およびパスワード)を提供することによってユーザアカウントにアクセスする場合があり、ユーザアカウントは、オンラインゲームプラットフォーム402の1つまたは複数のゲーム406に参加するために利用可能な1つまたは複数のキャラクタに関連付けられる。
【0066】
概して、オンラインゲームプラットフォーム402によって実行されるものとして1つの実装において説明される機能は、その他の実装において、適宜、クライアントデバイス410もしくは416またはサーバによって実行されることも可能である。加えて、特定の構成要素に帰せられる機能が、一緒に動作する異なるまたは複数の構成要素によって実行されることが可能である。また、オンラインゲームプラットフォーム402は、適切なアプリケーションプログラミングインターフェース(API)を通じてその他のシステムまたはデバイスに提供されるサービスとしてアクセスされることが可能であり、したがって、ウェブサイトにおける使用に限定されない。
【0067】
図5は、一部の実装による、電子ゲームにおいてカメラビューを変更するための方法500を示す流れ図である。簡単にするために、方法500の様々な動作は、ゲームアプリケーション412が動作を実行する文脈で説明される。しかし、
図4に関連して上で既に説明されたように、動作の一部は、代替的または追加的に、ゲームプラットフォーム402においてゲームエンジン404によってすべてまたは一部が実行されてよい。例示的な方法500は、ブロック502から514などの1つまたは複数のブロックによって示される1つまたは複数の動作を含む可能性がある。本明細書において説明される方法500および/または任意のその他のプロセスの様々なブロックは、所望の実施に基づいて、より少ないブロックに組み合わされる、追加のブロックに分割される、さらなるブロックによって補足される、および/または削除される場合がある。
【0068】
図5の方法500は、
図1A、
図1B、
図2A、
図2B、および
図3に示された要素に関連して本明細書において説明され得る。一実施形態において、方法500の動作は、パイプライン化された逐次的な方法で実行されてよい。その他の実施形態において、一部の動作は、順不同、並列などで実行される場合がある。
【0069】
ブロック502(「アバターのトラバーサルの方向および速度を判定する」)において、ユーザは、3D世界内でアバター102などのグラフィックオブジェクトを動かすことを含め、電子ゲームをプレイしている。ゲームアプリケーション412は、3D世界内でのアバター102のトラバーサルの(1秒あたりのピクセル数などの)速度および(座標系300に沿った特定の方向などの)方向を特定する。ブロック502は、後にブロック504が続く場合がある。
【0070】
ブロック504(「トラバーサルの方向に沿ったグラフィックオブジェクトを特定する」)において、ゲームアプリケーション412は、トラバーサルの方向に沿って位置付けられたグラフィックオブジェクトを特定するために、アバター102のトラバーサルの方向を電子ゲームの設定/プロパティ情報と比較する。たとえば、
図1Aおよび
図3において、グラフィックオブジェクトは、ゲームアプリケーション412がアバター102のトラバーサルの方向に沿って位置付けられていると判定する座標系300の座標を有する木の幹120または壁122である可能性がある。ブロック504は、後にブロック506が続く場合がある。
【0071】
ブロック506(「グラフィックオブジェクトがアバターを閾値のレベルを超えて遮蔽する?」)において、ゲームアプリケーション412は、グラフィックオブジェクトが現在のカメラビューにおいてアバター102を遮蔽するかどうかと、遮蔽する場合にはどの程度遮蔽するかとを判定する。たとえば、ゲームアプリケーション412が、グラフィックオブジェクトが現在のカメラビューにおいてアバター102を遮蔽するように、アバター102が(
図1Aおよび
図2Aに示されたような)グラフィックオブジェクトの後ろをトラバースしていることになると判定してよい。潜在的な遮蔽が存在する場合、ゲームアプリケーション412は、遮蔽のレベルを閾値のレベルに対して参照することによって遮蔽のレベルを判定する。
【0072】
たとえば、閾値のレベルが50%の遮蔽(またはなんらかのその他の閾値のレベル)に設定されている上で与えられた例のように、閾値のレベルは量の閾値である可能性がある。50%未満の遮蔽は、弱い遮蔽とみなされることが可能であり、一方、50%を超える遮蔽は、強い遮蔽とみなされることが可能である。ゲームアプリケーション412が比較する閾値は、アバターのトラバーサルの速度が遮蔽を短い持続時間の間だけ発生させるのかまたは相対的により長い持続時間の間発生させるのかなど、時間の閾値であってもよい。
【0073】
ブロック506において、ゲームアプリケーション412が閾値のレベルが超えられないと判定する場合(ブロック506において「NO」)、ゲームアプリケーション412は、ブロック507(「既存のカメラビューを維持する」)においてカメラビューを変更しない。たとえば、カメラビューは、カメラビューからグラフィックオブジェクトを取り除くような方法でアバター102に向かって前方に移動されない。ブロック507は、後にブロック502が続く場合がある。
【0074】
しかし、ブロック506において、ゲームアプリケーション412が閾値のレベルが超えられると判定する場合(ブロック506において「YES」)、ゲームアプリケーション412は、ブロック508(「アバターに向かって前方にカメラビューを移動させることによって遮蔽を回避するためにカメラビューを変更する」)においてカメラビューを変更する。たとえば、
図2Aに示されたように、壁122がカメラビューから取り除かれ、拡大された遮蔽されていないアバター102がカメラビュー内にレンダリングされるように、カメラビューは、壁122とアバター102との間の位置まで前方に移動される。ブロック508は、後にブロック510が続く場合がある。
【0075】
ブロック510(「閾値のレベルがまだ超えられている?」)において、ゲームアプリケーション412は、カメラビューが元の位置まで後方に移動される場合に、遮蔽がまだ閾値を超えたままであるかどうかを判定する。たとえば、アバター102がまだ壁122の後ろをトラバースしている間は、カメラビューが以前のカメラビューに戻される(後方に移動される)場合、閾値が引き続き超えられ(ブロック510において「YES」)、したがって、ゲームアプリケーションは、ブロック512(「既存のカメラビューを維持する」)において既存のカメラビューを変更されないままにする。別の例においては、アバター102が壁122を通過した可能性があり、すぐに、遮蔽が閾値を超える結果となるさらなるグラフィックオブジェクトに遭遇した(ブロック510において別の「YES」)--このような状況において、ゲームアプリケーション412は、カメラビューをアバター102から離れて後方に移動させるよりも、さらなるグラフィックオブジェクトをカメラビューから除外するために既存のカメラビューを維持し続ける。ブロック512は、後にブロック510が続く場合がある。
【0076】
しかし、ブロック510において、遮蔽に関する閾値のレベルがもはや超えられていない場合(ブロック510において「NO」)、ブロック514(「アバターから離れて後方にカメラビューを移動させることによって以前のカメラビューに戻る」)において、カメラビューは、アバター102から離れて後方に移動するように再び変更されてよい。たとえば、アバター102は、今や壁122を通過した可能性があり、グラフィックオブジェクトが存在しないか、またはグラフィックオブジェクトが存在するが、遮蔽の閾値のレベルを満たさない経路に沿ってトラバースしている。この状況において、カメラビューは、カメラビューがアバター102に向かって前方に移動されない以前の位置に戻ることができる。
【0077】
それから、方法500は、ブロック502に戻って、アバター102のトラバーサルの速度および方向の監視を継続する。方法500は、アバター102が3D世界を移動し続けるとき、繰り返され得る。
【0078】
図6は、本明細書において説明された1つまたは複数の特徴を実装するために使用されてよい例示的なコンピューティングデバイス600のブロック図である。
図4のクライアントデバイス410および416ならびに/またはゲームプラットフォーム402は、
図6のコンピューティングデバイス600の形態で提供されてよい。一例において、コンピューティングデバイス600は、本明細書において説明された方法を実行するために使用されてよい。コンピューティングデバイス600は、任意の好適なコンピュータシステム、サーバ、またはその他の電子もしくはハードウェアデバイスであることが可能である。たとえば、コンピューティングデバイス600は、メインフレームコンピュータ、デスクトップコンピュータ、ワークステーション、ポータブルコンピュータ、または電子デバイス(ポータブルデバイス、モバイルデバイス、セル電話、スマートフォン、タブレットコンピュータ、テレビ、TVセットトップボックス、携帯情報端末(PDA)、メディアプレイヤー、ゲームデバイス、ウェアラブルデバイスなど)であることが可能である。一部の実装において、デバイス600は、プロセッサ602、メモリ604、入力/出力(I/O)インターフェース606、およびオーディオ/ビデオ入力/出力デバイス614を含む。
【0079】
プロセッサ602は、プログラムコードを実行し、コンピューティングデバイス600の基本動作を制御するための1つまたは複数のプロセッサおよび/または処理回路であることが可能である。「プロセッサ」は、データ、信号、またはその他の情報を処理する任意の好適なハードウェアおよび/またはソフトウェアシステム、メカニズム、または構成要素を含む。プロセッサは、汎用中央演算処理装置(CPU)、複数の処理ユニット、機能を実現するための専用回路を有するシステム、またはその他のシステムを含んでよい。処理は、特定の地理的場所に限定されるまたは時間的な制限を有するとは限らない。たとえば、プロセッサは、「リアルタイム」、「オフライン」、「バッチモード」などでそのプロセッサの機能を実行する場合がある。処理の一部は、異なる(または同じ)処理システムによって異なる時間に異なる場所で実行される場合がある。コンピュータは、メモリと通信する任意のプロセッサであってよい。
【0080】
メモリ604は、プロセッサ602によるアクセスのためにコンピューティングデバイス600内に設けられてよく、プロセッサによる実行のために命令を記憶するのに好適であり、プロセッサ602と分けて置かれたおよび/またはプロセッサ602と統合された任意の好適なプロセッサ可読ストレージ媒体、たとえば、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能読み出し専用メモリ(EEPROM)、フラッシュメモリなどであってよい。メモリ604は、オペレーティングシステム608、1つまたは複数のアプリケーション610、およびその関連するデータ612を含む、プロセッサ602によってコンピューティングデバイス600上で実行され得るソフトウェアを記憶することができる。アプリケーション610は、ゲームアプリケーション412/420またはゲームエンジン404を具現化するために使用され得る。一部の実装において、アプリケーション610は、プロセッサ602による実行に応じて、カメラビューを変更するべきかどうかを判定し、それから、それに応じてカメラビューを変更することに関連して本明細書において説明された動作をプロセッサ602が実行するかまたはそれらの動作の実行を制御することを可能にする命令を含み得る。
【0081】
メモリ604内のソフトウェアのいずれも、代替的に、任意のその他の好適な記憶場所またはコンピュータ可読媒体に記憶され得る。さらに、メモリ604(および/またはその他の接続されたストレージデバイス)は、本明細書において説明された特徴において使用される命令およびデータを記憶することができる。メモリ604および任意のその他の種類のストレージ(磁気ディスク、光ディスク、磁気テープ、またはその他の有形の媒体)は、「ストレージ」または「ストレージデバイス」とみなされ得る。
【0082】
I/Oインターフェース606は、コンピューティングデバイス600とその他のシステムおよびデバイスとのインターフェースを取ることを可能にするための機能を提供することができる。たとえば、ネットワーク通信デバイス、ストレージデバイス、および入力/出力デバイスは、I/Oインターフェース606を介してコンピューティングデバイス600と通信することができる。一部の実装において、I/Oインターフェース606は、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナなど)および/または出力デバイス(ディスプレイデバイス、スピーカデバイス、プリンタ、モニタなど)を含むインターフェースデバイスに接続することができ、それらのインターフェースデバイスは、集合的に、少なくとも1つのオーディオ/ビデオ入力/出力デバイス614として示される。
【0083】
オーディオ/ビデオ入力/出力デバイス614は、オーディオメッセージを入力として受け取るために使用され得るオーディオ入力デバイス(たとえば、マイクロフォンなど)、オーディオ出力デバイス(たとえば、スピーカ、ヘッドフォンなど)、ならびに/または上述の例示的なカメラビューなどのグラフィカルなおよび視覚的な出力を提供するために使用され得るディスプレイデバイスを含むことが可能である。
【0084】
図示を容易にするために、
図6は、プロセッサ602、メモリ604、I/Oインターフェース606、アプリケーションの610などの各々に関して1つのブロックを示す。これらのブロックは、1つまたは複数のプロセッサもしくは処理回路、オペレーティングシステム、メモリ、I/Oインターフェース、アプリケーション、および/またはソフトウェアモジュールを表す場合がある。その他の実装において、デバイス600は、示された構成要素のすべてを有するわけではない可能性があり、および/または本明細書に示された要素の代わりにもしくは本明細書に示された要素に加えてその他の種類の要素を含むその他の要素を有する可能性がある。
【0085】
ユーザデバイスが、本明細書において説明された特徴を実装するおよび/または本明細書において説明された特徴とともに使用されることも可能である。例示的なユーザデバイスは、コンピューティングデバイス600と同様のいくつかの構成要素、たとえば、プロセッサ602、メモリ604、およびI/Oインターフェース606を含むコンピュータデバイスであることが可能である。クライアントデバイスに好適なオペレーティングシステム、ソフトウェア、およびアプリケーションが、メモリに備えられ、プロセッサによって使用され得る。クライアントデバイスのためのI/Oインターフェースは、ネットワーク通信デバイスならびに入力および出力デバイス、たとえば、音をキャプチャするためのマイクロフォン、画像もしくはビデオをキャプチャするためのカメラ、音を出力するためのオーディオスピーカデバイス、画像もしくはビデオを出力するためのディスプレイデバイス、またはその他の出力デバイスに接続され得る。たとえば、オーディオ/ビデオ入力/出力デバイス614内のディスプレイデバイスは、本明細書において説明されるように画像の前および後処理を表示するためにデバイス600に接続される(または含まれる)ことが可能であり、そのようなディスプレイデバイスは、任意の好適なディスプレイデバイス、たとえば、LCD、LED、またはプラズマディスプレイスクリーン、CRT、テレビ、モニタ、タッチスクリーン、3-Dディスプレイスクリーン、プロジェクタ、またはその他の視覚表示デバイスを含み得る。一部の実装は、オーディオ出力デバイス、たとえば、テキストをしゃべる音声出力または合成を提供し得る。
【0086】
本明細書において説明された1つまたは複数の方法(たとえば、方法500)は、コンピュータ上で実行され得るコンピュータプログラム命令またはコードによって実装されることが可能である。たとえば、コードは、1つまたは複数のデジタルプロセッサ(たとえば、マイクロプロセッサまたはその他の処理回路)によって実施されることが可能であり、非一時的コンピュータ可読媒体(たとえば、ストレージ媒体)、たとえば、半導体またはソリッドステートメモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、硬質磁気ディスク、光ディスク、ソリッドステートメモリドライブなどを含む磁気式、光学式、電磁式、または半導体ストレージ媒体を含むコンピュータプログラム製品に記憶されることが可能である。プログラム命令は、たとえば、サーバ(たとえば、分散型システムおよび/またはクラウドコンピューティングシステム)から配信されるサービスとしてのソフトウェア(SaaS)の形態で電子信号に含まれ、電子信号として提供されることも可能である。代替的に、1つまたは複数の方法は、ハードウェア(論理ゲートなど)に、またはハードウェアとソフトウェアとの組合せに実装され得る。例示的なハードウェアは、プログラミング可能なプロセッサ(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、複合プログラマブルロジックデバイス)、汎用プロセッサ、グラフィックスプロセッサ、特定用途向け集積回路(ASIC)などであることが可能である。1つまたは複数の方法は、システム上で実行されるアプリケーションの一部もしくは構成要素として、またはその他のアプリケーションおよびオペレーティングシステムと連携して実行されるアプリケーションもしくはソフトウェアとして実行され得る。
【0087】
本明細書において説明された1つまたは複数の方法は、任意の種類のコンピューティングデバイス上で実行され得るスタンドアロンのプログラム、ウェブブラウザ上で実行されるプログラム、モバイルコンピューティングデバイス(たとえば、セル電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス(腕時計、腕章、装身具、帽子、ゴーグル、眼鏡など)、ラップトップコンピュータなど)上で実行されるモバイルアプリケーション(「アプリ」)内で実行され得る。一例においては、クライアント/サーバアーキテクチャが、使用されることが可能であり、たとえば、(クライアントデバイスとしての)モバイルコンピューティングデバイスが、サーバデバイスにユーザ入力データを送信し、出力するための(たとえば、表示するための)最終出力データをサーバから受信する。別の例においては、すべての計算が、モバイルコンピューティングデバイス上のモバイルアプリ(および/またはその他のアプリ)内で実行され得る。別の例においては、計算が、モバイルコンピューティングデバイスと1つまたは複数のサーバデバイスとの間に分けられ得る。
【0088】
説明がその特定の実装に関連して説明されたが、これらの特定の実装は例示的であるに過ぎず、限定的でない。例において示された概念は、その他の例および実装に適用される場合がある。
【0089】
本開示において説明された機能ブロック、動作、特徴、方法、デバイス、およびシステムは、当業者に知られているようにシステム、デバイス、および機能ブロックの異なる組合せに統合されるかまたは分けられる場合があることに留意されたい。任意の好適なプログラミング言語およびプログラミング技術が、特定の実装のルーチンを実装するために使用されてよい。異なるプログラミング技術、たとえば、手続き型またはオブジェクト指向プログラミング技術が、使用される場合がある。ルーチンは、単一の処理デバイスまたは複数のプロセッサ上で実行される場合がある。ステップ、動作、または計算が特定の順序で示される場合があるが、順序は異なる特定の実装において変更されてよい。一部の実装では、本明細書において逐次的であるものとして示された複数のステップまたは動作が、同時に実行される場合がある。
【符号の説明】
【0090】
100 カメラビュー
102 アバター
104 矢印
106 経路
108 斜面
110 木
112 木
114 木
116 木の幹
118 木の幹
120 木の幹
122 壁
124 枝
150 カメラビュー
200 カメラビュー
202 窓
204 窓
206 窓枠
250 カメラビュー
300 x-y-z座標系
400 システムアーキテクチャ
402 オンラインゲームプラットフォーム
404 ゲームエンジン
406 電子ゲーム
410 第1のクライアントデバイス
412 ゲームアプリケーション
414 ユーザインターフェース
416 第2のクライアントデバイス
418 ユーザインターフェース
420 ゲームアプリケーション
422 通信ネットワーク
424 ストレージデバイス
500 方法
600 コンピューティングデバイス
602 プロセッサ
604 メモリ
606 入力/出力(I/O)インターフェース
608 オペレーティングシステム
610 アプリケーション
612 データ
614 オーディオ/ビデオ入力/出力デバイス