(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-02
(45)【発行日】2024-08-13
(54)【発明の名称】マークアップフリーレッジグラブ
(51)【国際特許分類】
A63F 13/55 20140101AFI20240805BHJP
A63F 13/577 20140101ALI20240805BHJP
G06T 19/00 20110101ALI20240805BHJP
【FI】
A63F13/55
A63F13/577
G06T19/00 A
(21)【出願番号】P 2023551983
(86)(22)【出願日】2022-03-10
(86)【国際出願番号】 US2022019682
(87)【国際公開番号】W WO2022192493
(87)【国際公開日】2022-09-15
【審査請求日】2023-10-20
(32)【優先日】2021-03-10
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】511214439
【氏名又は名称】バンジー, インコーポレイテッド
(74)【代理人】
【識別番号】100105924
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】ティミンズ,ルーク
【審査官】鈴木 崇雅
(56)【参考文献】
【文献】米国特許出願公開第2015/0273333(US,A1)
【文献】米国特許出願公開第2003/0032478(US,A1)
【文献】米国特許出願公開第2014/0179430(US,A1)
【文献】米国特許出願公開第2013/0079140(US,A1)
【文献】韓国公開特許第10-2018-0119002(KR,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00-98
A63F 9/24
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
仮想空間内のアバターがユーザの制御下で前記仮想空間を通過する間に、前記アバターに近接して位置する少なくとも1つの障害物を、前記アバターが前記少なくとも1つの障害物の閾値距離内にあることを検出したことに応答して特定することと、
前記アバターに関連する進行ベクトルに実質的に垂直である前記障害物上の少なくとも1つの面を特定することと、
前記少なくとも1つの面の一部分に沿って延びるリップと前記リップの上方の後退エリアとを含む窪みを、前記少なくとも1つの面上で特定することと、
前記窪みが
、前記アバターが相互作用可能な直交片であるレッジであることを、前記後退エリアの1つ以上の特性に少なくとも部分的に基づいて決定することと、
前記アバターと前記窪みとの1つ以上の相互作用を可能にするように構成された
場所の印であるアンカーポイントを前記リップに生成することと、
を含む、方法。
【請求項2】
前記少なくとも1つの面は、前記少なくとも1つの面と前記進行ベクトルとの間の角度が所定の値の範囲内にある場合に前記進行ベクトルに実質的に垂直であり、
前記進行ベクトルは、前記アバターの現在の軌道と関連付けられているか、又は、前記ユーザから受信された情報から生成される入力ベクトルと関連付けられている、請求項1
に記載の方法。
【請求項3】
前記アバターの前記現在の軌道によって前記アバターが前記仮想空間のプレイ可能エリアを離れることになることを検出し、前記検出に応答して前記アバターを前記アンカーポイントと相互作用させることを更に含む、請求項2
に記載の方法。
【請求項4】
前記障害物は、前記アバターが落下し得るエッジを含み、
前記障害物上の前記少なくとも1つの面は、前記エッジに沿った面を含む、請求項1
に記載の方法。
【請求項5】
前記後退エリアの前記1つ以上の特性は、少なくとも前記後退エリアの前記少なくとも1つの面に対する角度を含む、請求項1
に記載の方法。
【請求項6】
前記窪みの高さを決定することを更に含み、
前記高さは、閾値高さよりも大きい場合に前記窪みがレッジであると判定され、
前記閾値高さは、前記アバターに関連する高さ値に基づいている、請求項1
に記載の方法。
【請求項7】
前記後退エリアの1つ以上の追加の特性に少なくとも部分的に基づいて前記窪みを分類することをさらに含む、請求項1
に記載の方法。
【請求項8】
前記1つ以上の相互作用は、ユーザデバイスにより生成された前記窪みの分類によって異なる、請求項7
に記載の方法。
【請求項9】
前記窪みは、ある高さ範囲内にあることによって、前記少なくとも1つの面上で特定され、
前記高さ範囲は、垂直最小高さ及び垂直最大高さを含む、請求項1
に記載の方法。
【請求項10】
前記アバターは、ユーザデバイスの前記ユーザにより制御されているオブジェクトを含む、請求項1の方法。
【請求項11】
前記アバターの近傍の全ての障害物に対して、前記少なくとも1つの障害物を特定するために衝突チェックが実行される、請求項1
に記載の方法。
【請求項12】
前記方法は、ユーザデバイス上で実行されるビデオゲーム内で実行される、請求項1
に記載の方法。
【請求項13】
前記窪みは、前記少なくとも1つの面を上から下までスキャンすることによって前記少なくとも1つの面上で特定される、請求項1
に記載の方法。
【請求項14】
プロセッサと、メモリと、を備えたユーザデバイスであって、
前記メモリは、前記プロセッサを用いて実行されるときに、前記ユーザデバイスに少なくとも、請求項1から13の何れか
一項に記載の方法を行わせる命令を含む、ユーザデバイス。
【請求項15】
請求項1から13の何れか一項
に記載の方法を、実行時に1つ以上のコンピューティングデバイスにまとめて行わせるコンピュータ実行可能命令をまとめて記憶する、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【0001】
[0001] ゲームは人口の大部分に人気のある娯楽である。ゲームの人気が上昇し続けるとき、ゲーム開発者はゲームを面白く娯楽的なものにする新たな方法に目を向け続ける。そのようなゲーム開発者による1つの比較的最近の慣例は、プレイヤーが(例えばマップエディタなどを介して)独自のレベルを設計できるようにすることである。これによってプレイヤーは他のプレイヤーにより制作された様々なコンテンツを体験できる一方、コンテンツ制作者はレベル設計に慣れていないことが多く、彼らのコンテンツを適切に精査しないことがある。これにより、独立のコンテンツ制作者により制作されたコンテンツが、基礎となるゲームに起因し得る問題を引き起こす可能性がある。
【発明の概要】
【0002】
[0002] 本明細書には、アバターにより使用されるレッジを検出及びマークするための技術が示されている。これらの技術は、ゲームマップ内のレッジの動的な検出及びマーキングを、マップがプレイされている間に可能にする。そのような技術は、エラー低減(特にユーザ生成マップが実装されるとき)及びアバター能力のより多くのカスタマイズをもたらすことがある。
【0003】
[0003] 一実施形態では、仮想空間内でアバターに近接して位置する少なくとも1つの障害物を特定すること、アバターに関連する進行ベクトルに実質的に垂直である障害物上の少なくとも1つの面を特定すること、リップとリップの上方の後退エリアとを含む窪みを少なくとも1つの面上で特定すること、窪みがレッジであることを後退エリアの1つ以上の特性に少なくとも部分的に基づいて決定すること、及び、アバターと窪みとの1つ以上の相互作用を可能にするように構成されたアンカーポイントをリップに生成すること、を含む方法が、ユーザデバイスによって実行されることが開示される。
【0004】
[0004] ある実施形態が、タッチスクリーンディスプレイと、プロセッサと、メモリと、を備えたコンピューティングシステムであって、メモリが、プロセッサを用いて実行されるときに、コンピューティングデバイスに、少なくとも仮想空間内でアバターに近接して位置する少なくとも1つの障害物を特定すること、アバターに関連する進行ベクトルに実質的に垂直である障害物上の少なくとも1つの面を特定すること、リップとリップの上方の後退エリアとを含む窪みを少なくとも1つの面上で特定すること、窪みがレッジであることを後退エリアの1つ以上の特性に少なくとも部分的に基づいて決定すること、及び、アバターと窪みとの1つ以上の相互作用を可能にするように構成されたアンカーポイントをリップに生成すること、を行わせる命令を含むコンピューティングシステムを対象とする。
【0005】
[0005] ある実施形態が、仮想空間内でアバターに近接して位置する少なくとも1つの障害物を特定すること、アバターに関連する進行ベクトルに実質的に垂直である障害物上の少なくとも1つの面を特定すること、リップとリップの上方の後退エリアとを含む窪みを少なくとも1つの面上で特定すること、窪みがレッジであることを後退エリアの1つ以上の特性に少なくとも部分的に基づいて決定すること、及び、アバターと窪みとの1つ以上の相互作用を可能にするように構成されたアンカーポイントをリップに生成すること、を含む行為を、実行時に1つ以上のコンピューティングデバイスにまとめて行わせるコンピュータ実行可能命令をまとめて記憶する非一時的コンピュータ可読媒体を対象とする。
【0006】
[0006] 上記は、他の特徴及び実施形態と共に、以下の明細書、特許請求の範囲、及び添付の図面を参照することでより明らかになるであろう。この特許によりカバーされる本発明の実施形態は、この概要ではなく、以下の特許請求の範囲によって定義される。この概要は本発明の様々な態様の高レベルの概要であり、以下の詳細な説明のセクションで更に説明される概念の一部を紹介する。この概要は、請求項に規定される主題の重要な又は必須の特徴を特定することを意図するものではなく、請求項に規定される主題の範囲を決定するために単独で使用されることを意図するものでもない。主題は、この特許の明細書全体、任意の又は全ての図面及び各請求項の適切な部分を参照することによって理解されるべきである。
【図面の簡単な説明】
【0007】
[0007] 詳細な説明は、添付の図を参照して説明される。図では、参照番号の最も左の数字は、参照番号が最初に現れる図を特定する。異なる図における同じ参照番号の使用は、類似又は同一の項目又は特徴を示している。
【0008】
【
図1】[0008] 本開示の様々な実施形態に係る、仮想コントローラが使用され得るサービス環境を示す簡略化されたシステム図である。
【
図2A】[0009] レッジがアバターよりも大きいキューブの上部の周囲を取り巻く簡単な例を示す。
【
図2B】[0010] 少なくとも一部の実施形態に係る簡単なエッジ検出例を示す。
【
図2C】[0011] 一部の実施形態に係るエッジ検出が特定の領域内で可能であるより複雑な構造物を示す。
【
図2D】[0012] 一部の実施形態に係るより複雑な構造物の他のエリアに焦点を合わせる。
【
図2E】[0013] 一部の実施形態に係るレッジが検出されないより複雑な構造物の第1のエリアセットに焦点を合わせる。
【
図2F】[0014] 一部の実施形態に係るレッジが検出されないより複雑な構造物の第2のエリアセットに焦点を合わせる。
【
図3】[0015] 実施形態に係るマークアップフリーレッジ特定の実装をサポートするコンピューティングシステムアーキテクチャの様々なコンポーネントを示すブロック図である。
【
図4】[0016] 実施形態に係る障害物上にレッジを特定するためのプロセスのグラフィック図を示す。
【
図5】[0017] 実施形態に従って特定され得る例示的なレッジのグラフィック図を示す。
【
図6】[0018] 一部の実施形態に係る障害物上にレッジを動的に検出及びマークするためのプロセスを示すブロック図を示す。
【
図7】[0019] 実施形態に係るレッジ検出を行うための例示的なプロセスフローを示す。
【
図8】[0020] 実施形態に係るアバターとレッジとの相互作用を動的に促進するための例示的なプロセスフローを示す流れ図を示す。
【発明を実施するための形態】
【0009】
[0021] 以下の説明では、様々な実施形態が説明される。説明を目的として、実施形態の完全な理解を提供するために特定の構成及び詳細が示される。しかしながら、特定の詳細なしに実施形態を実施し得ることも当業者にとって明らかであろう。更に、説明される実施形態を曖昧にしないように、公知の特徴が省略又は簡易化されることがある。
【0010】
[0022] 本明細書の実施形態は、コンテンツ内の幾何学的構造物を検出するための方法及びシステムを対象とする。具体的には、本明細書に記載の方法及びシステムは、「レッジ」、すなわち3dアバターが相互作用する(例えばくっついて落下を防ぐ)ことができるレベルジオメトリの直交片を検出及び/又は分類することを対象とする。これらの方法は、レッジを構成するものの明示的なコンテンツマークアップを用いない「レッジ」検出を可能にする、換言すれば、コンテンツ制作者が、システムがほぼ全ての現存のゲームプラットフォーム上で必要とされる特別なマークアップを用いずに3dアバターがしがみつくことができるジオメトリを検出することを知りながら、任意の3dジオメトリをゲームレベルに配置することを許可する。これらの方法はまた、レッジ検出及びレッジにくっつきたいというプレイヤーの意図を検出する方法を含む。
【0011】
[0023] 本開示の実施形態は、従来のシステムに勝る複数の利点を提供する。穴を飛び越えたり高いプラットフォームに飛び乗ったりしたい(重力の影響を受けた)3Dアバターが存在するゲームにおける1つの共通の問題は、「ジャンプを失敗」しやすいことである。プレイヤーはジャンプが早過ぎたり、ジャンプの高さが十分でなかったりことがあるために、プレイヤーがプラットフォームの上にわずかに飛び乗れず、代わりに足が壁にぶつかって滑り落ちて死ぬという苦い経験をする。
【0012】
[0024] この問題を解決するために、多くのゲームはプレイヤーのアバターがジャンプを「失敗した」場合にレッジに「ぶら下がる」又は「くっつく」ことを可能にする「レッジシステム」を実装する。レベルを作成するときにコンテンツ制作者にとって困難なことは、様々な高さ及び能力(走る速度、ジャンプ高さなど)のアバターを用いて走り回りジャンプする楽しいプラットフォーム体験を可能にする様々なレベルジオメトリ(プラットフォーム高さ、穴、壁角度)をいち早く試したがることが多いことである。人は「ジオメトリのこの交わりはアバターがしがみつくべきレッジである」と簡単に言うことができるが、任意の3dジオメトリを認識し、いつアバターがくっつくのが安全かを知ることができるアルゴリズムを有することは重要である。ほとんどのゲームは、コンテンツ制作者にアバターにより掴まれることが意図されるジオメトリを「マークアップする」ことを強要することによってこれを解決する。ただしこれは時間がかかり、レベルジオメトリの変更がマークアップを無効にする可能性がある(例えばキューブを移動させることが「レッジ」としてフラグが立てられた領域を覆い隠す可能性がある)。マークアップなしで機能する解決策が好ましい。また、プレイヤーは自分のアバターがレッジに「掴まる」タイミングを制御したいと思う。
【0013】
[0025] 本開示の実施形態は、仮想空間における障害物上のレッジの動的検出を提供する。換言すれば、本開示は、レッジが事前にマークアップされる必要なくアバターにより相互作用され得る様々なオブジェクト/障害物上のレッジを特定することができるシステムを対象とする。そのようなシステムは、比較的初心者のユーザもレベル生成に関与できるという点でマークアップを必要とするシステムよりも有利である。また、レッジを動的に検出及びマークすることによって、システムはゲーム体験をカスタマイズすることができる。例えば各アバターの属性がレッジを特定及びマークするのに使用されることがあり、その結果、様々なレッジが各アバターに動的にマップされることがある。この例では、より浅い窪みがより小さいアバターのために特定されることがある一方、より深い窪みがより背が高いアバターのために特定されることがある。このように、システムは、同じマップをプレイする2人の異なる人に対しても、従来のシステムよりはるかに多くのゲームプレイのカスタマイズを提供する。
【0014】
[0026]
図1は、本開示の様々な実施形態に係る、仮想コントローラが使用され得るサービス環境100を示す簡略化されたシステム図である。サービス環境100は、少なくとも1つのサーバ101を備え、サーバ101は、少なくとも1つのプロセッサ103と、サービス環境の動作を容易にするための命令をソフトウェアとして記憶する非一時的メモリ105と、を備える。サーバ101は、一般的には対応するローカルユーザネットワーク131、141(例えば、民生用又は商用ローカルエリアネットワーク、WIFIネットワークなど)で動作する任意の適切な数のユーザ所有のクライアントデバイス133、143と、ネットワーク121(例えば、インターネット又はローカルネットワーク)を介して接続されている。
【0015】
[0027] サーバ101はまた、サーバ101及びクライアントデバイス133、143との間のネットワークを監視する任意の適切な数の制御サービス111、例えば独自のプロセッサ113及びメモリ115を備えたネットワーク接続されたコンピューティングシステムに接続することができる。一部の実施形態では、サーバ101は、商業規模、例えばデータセンター又はサーバファームで稼働する1つ以上のサーバである可能性がある。クライアントデバイス133、143は、民生パーソナルコンピュータ、ビデオゲームコンソール、ローカル画面に提示するためにサーバ101からビデオコンテンツをストリーミングするように動作可能なシンクライアントデバイス、又はスマートフォン、タブレットなどのモバイルデバイスなどを含む可能性がある。クライアントデバイス133、143は、任意の適切な数のコントローラ、例えばコントローラ135、137、145、147に接続することができる。
【0016】
[0028] 各コントローラ(例えばコントローラ135)は、その対応するクライアントデバイス133と通信するための接続ハードウェア及びプロトコルを備えたハードウェアデバイス(例えば、コンソール固有のコントローラ、相互に互換性のあるコントローラ、又は仮想コントローラ)である可能性がある。一部の実施形態によれば、コントローラ135は、シンクライアントデバイス又はタッチスクリーンデバイス上で動作する仮想化コントローラ、例えばタッチスクリーン式のスマートフォン、タブレットでシミュレートされるコントローラ、又はタッチ対応パネルを備えたコンソール状のコントローラである可能性がある。一部の更なる実施形態によれば、例えばクライアントデバイス133がシンクライアントデバイス又はモバイルデバイスである場合に、コントローラ135は、クライアントデバイスに組み込まれる仮想化制御手段を備えたタッチスクリーンである可能性がある。代替的には、クライアントデバイス133がシンクライアントデバイスである場合でも、コントローラ135は、クライアントデバイスに物理的に又は無線で接続するように構成されたハードウェアコントローラである可能性がある。一部の実施形態によれば、クライアントデバイス133及びサーバ101は同じハードウェア上で動作することができ、例えばクライアントデバイスはサーバ上で仮想インスタンスとして実行される。
【0017】
[0029] 本明細書に記載の方法は、
図1に記載のサービス環境100などのサービス環境と関連するクライアントデバイス上で実施される可能性がある。方法は更に、画面上でのアバターの向き及び移動の両方を制御する仮想コントローラの任意配置との関連で機能する可能性がある。
【0018】
[0030] 明確にするために、
図1には一定数のコンポーネントが示されている。ただし、本開示の実施形態が各コンポーネントの2つ以上を備え得ることが理解される。また、本開示の一部の実施形態は、
図1に示すコンポーネントの全てより少ない又は多いコンポーネントを備えることがある。また、
図1のコンポーネントは、(インターネットを含む)任意の適切な通信媒体を介して、任意の適切な通信プロトコルを使用して通信を行うことがある。
【0019】
[0031]
図2は、実施形態に係るレッジ検出が実装され得る環境200の例示的な例を示している。検出可能なレッジ及び検出不能なレッジの例示的な例が
図2Aから
図2Fに示される。
【0020】
[0032]
図2Aは、レッジ201がアバター202よりも大きいキューブの上部の周囲を取り巻く簡単な例200aを示している。キューブは平らな上部及び垂直壁を有する。
【0021】
[0033]
図2Bは、少なくとも一部の実施形態に係る簡単なエッジ検出例を示している。この例ではキューブは、可能性がある場合にアバター202がよじ登ることができる平らな上部を有する。したがってキューブの側面のそれぞれは、この例ではレッジと判定されることになる。
【0022】
[0034]
図2Cは、一部の実施形態に係るエッジ検出が特定の領域内で可能であるより複雑な構造物を示している。
図2Cでは、エッジ検出が領域203内で可能である。図に示すように、構造物の上部は領域203内で平らである場合があり、その領域内でエッジを検出することが可能である。
【0023】
[0035]
図2Dは、一部の実施形態に係るより複雑な構造物の他のエリアに焦点を合わせている。
図2Dに示すように、構造物のレッジのない部分(例えば204)はレッジとして検出することができない。
【0024】
[0036]
図2Eは、一部の実施形態に係るレッジが検出されないより複雑な構造物の第1のエリアセットに焦点を合わせている。
図2Eに示すように、構造物の垂直面の角度が急過ぎる部分(例えば205)をレッジとして検出することができない。
【0025】
[0037]
図2Eは、一部の実施形態に係るレッジが検出されないより複雑な構造物の第2のエリアセットに焦点を合わせている。
図2Fに示すように、構造物の水平面角が大きすぎる部分(例えば206)をレッジとして検出することができない。
【0026】
[0038] レッジ検出のためのプロセスは、(プレイヤーのアバターの向きベクトルではなく)プレイヤーの入力ベクトルを見ることから始まることがある。これによってシステムは、過去のアクションの結果だけではなくプレイヤーの意図(例えば「プレイヤーは可能性のあるレッジの方向を指し示すのにコントローラを使用しているか?」)を定めることができる。次にシステムは、プレイヤーのアバターの速度を見て、その上向きの速度がある閾値よりも小さいかどうか(例えば「プレイヤーのアバターはジャンプの頂点にあるか又はこれを超えているか?」)を判定する。
【0027】
[0039] 次いでこのシステムは、プレイヤーのアバター位置から始まりプレイヤーの入力方向の特定の距離のところで終わる衝突チェック(例えば球体衝突試験)(「アバターとプレイヤーが移動したい方向との間に何か硬いものがあるか」)を行うことがある。システムが何か(「壁」)を確認した場合に、システムは衝突点の位置を見て、入力ベクトルとアバターから壁衝突位置へのベクトルとの間の角度を試験する(「アバターの位置に直交し得る壁ではなく、入力ベクトルの方向にある壁のみを探す」)。次にシステムは、許容誤差について壁衝突法線の角度を試験する(「この壁面は壁とみなすには急過ぎるか?」)ことがある。発見した壁がそれらの試験に合格した場合、システムは第2のスイープ球体衝突チェックを行うことがあり、今度は衝突チェックの開始位置(最初はプレイヤーのアバター位置)と混乱した壁衝突点の両方を下方に少しだけオフセットする。この第2の衝突チェックは、システムが壁とみなすだけ壁面が十分に大きいことを保証する。システムは、この新しい壁位置に対して以前と同じ落下面試験を行うことがある。
【0028】
[0040] 第2の衝突チェック及び落下面試験に合格した場合、システムは、最初の壁衝突点の上方の高い所から始まり下方に移動する最終衝突試験(例えばスイープ球体)を行うことがある。これによってシステムがレッジの「上部」を見つけることが可能になる。システムは、上昇が急過ぎて掴まることができないかどうかを確かめるために衝突位置の法線を試験することがある。それらの全ての試験に合格した場合、システムは、3dアバターが壁に「くっつく」ための「アンカーポイント」を構築することがある。このポイントはアバターの3dサイズに基づいてカスタマイズされる。最終試験として、システムは、システムが「短いレッジ」が掴まれるのを防ぎたいことがあるときに十分な距離を確保するためにアンカーポイントから床までレイ試験を行うことがある。有利には、これらの方法は、システムが任意の向きで任意の3dオブジェクト(キューブ、ランプ、壁など)から構成されるレベルを処理し、プレイヤーがアバターを用いて掴まることを望むことがあるレッジを検出することを可能にする。
【0029】
[0041]
図3は、実施形態に係るマークアップフリーレッジ特定の実装をサポートするコンピューティングシステムアーキテクチャの様々なコンポーネントを示すブロック図である。システムアーキテクチャは少なくとも1つのコントローラ302を備えることがある。一部の実施形態では、コントローラ302は、
図1に関して説明したサーバ101の一例であり得る1つ以上のサーバ304と通信状態にあることがある。一部の実施形態では、1つ以上のサーバ101は、コントローラ302へのバックエンドサポートを行うことがある。例えば、コントローラ302により実行されているとされる処理の少なくとも一部分が、場合によっては代わりにサーバ101によって実行されることがある。一部の実施形態では、コントローラ302はクライアントデバイス306と通信状態にあることがある。クライアントデバイス306は、
図1に関連して以上で説明したクライアントデバイス133又は143の一例である場合がある。一部の実施形態では、クライアントデバイス306は、ディスプレイ330と更に通信状態にあることがある。本明細書に記載のコンポーネントのそれぞれは、ネットワーク310を通じた接続を介して通信状態にあることがある。
【0030】
[0042] コントローラ302は、本明細書に記載の動作の少なくとも一部を実行するように構成され、かつユーザがソフトウェアアプリケーションと対話できるように構成された任意の適切なコンピューティングデバイスを含むことがある。一部の実施形態では、コントローラは、タッチスクリーン機能を有するモバイルデバイス(例えば、スマートフォン又はタブレット)である場合がある。
【0031】
[0043] サーバ304は、これによって生じる動作の少なくとも一部を実行するように構成された任意のコンピューティングデバイスを備える可能性がある。サーバ304は、1つ以上の汎用コンピュータ、専門化されたサーバコンピュータ(例としてPC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウントサーバなどを含む)、サーバファーム、サーバクラスタ、又は任意の他の適切な構成及び/又は組み合わせから構成されることがある。サーバ304は、仮想オペレーティングシステムを動作させる1つ以上の仮想マシン、又はコンピュータの仮想記憶デバイスを維持するために仮想化され得る論理記憶デバイスの1つ以上の可撓性プールなどの仮想化を伴う他のコンピューティングアーキテクチャを備える可能性がある。例えばサーバ304は、クラウドにホスティングされている仮想マシン又はソフトウェアコンテナの形をした仮想コンピューティングデバイスを備えることがある。
【0032】
[0044] クライアントデバイス306は、コントローラ302から入力を受信しその入力に基づいてアクションを実行するように構成された任意の適切なコンピューティングデバイスを含むことがある。一部の実施形態では、クライアントデバイスは、それぞれがソフトウェアアプリケーション(例えばコンピュータゲーム)内のアバター又はキャラクタを制御するのに使用され得る複数のコントローラから入力を受信し得るゲーミングコンソールなどのゲーミングシステムである場合がある。一部の例では、クライアントデバイス306がコントローラ302でもあり得ることに留意すべきである。例えば携帯電話機が、モバイルゲームを実行するときにクライアントデバイス及びコントローラの両方の役割を果たすことがある。
【0033】
[0045] 上記のように、システムアーキテクチャは、本明細書に記載の様々な技術を用いてマークアップフリーレッジ特定の実装をサポートすることができる。そのような技術は、コントローラ302、サーバ304、又はクライアントデバイス306の任意の組み合わせに実装されることがある。したがって本技術は本明細書においてユーザデバイス308に実装されるものとして説明されることになる。当業者は、そのようなユーザデバイスが図示されるコントローラ302、サーバ304、又はクライアントデバイス306の1つ以上を備え得ることを認識するであろう。
【0034】
[0046] ユーザデバイス308は、通信インターフェイス312と、1つ以上のプロセッサ314と、メモリ316と、ハードウェア318と、を備えることがある。通信インターフェイス312は、コントローラ302が他のネットワークデバイスとの間でデータを送受信することを可能にする無線及び/又は有線の通信コンポーネントを備えることがある。ハードウェア318は、追加のユーザインターフェイス、データ通信、又はデータストレージハードウェアを含むことがある。例えばユーザインターフェイスは、少なくとも1つの出力デバイス320(例えば、ビジュアルディスプレイ、音声スピーカ、及び/又は触覚フィードバックデバイス)と、1つ以上のデータ入力デバイス322とを備えることがある。データ入力デバイス322は、キーパッド、キーボード、マウスデバイス、及び/又はジェスチャを受け付けるタッチスクリーン、マイクロフォン、発話又は音声認識デバイス、及び任意の他の適切なデバイスのうちの1つ以上の組み合わせなどを含むことがある。
【0035】
[0047] メモリ316は、コンピュータストレージ媒体などのコンピュータ可読媒体を使用して実装されることがある。コンピュータ可読媒体は、少なくとも2つのタイプのコンピュータ可読媒体、すなわちコンピュータストレージ媒体及び通信媒体を含む。コンピュータストレージ媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、又はその他のデータなどの情報の記憶のためのいずれかの方法又は技術で実装される任意の適切な揮発性及び不揮発性、取外し可能及び取外し不能な媒体が含まれる。コンピュータ記憶媒体には、RAM、DRAM、ROM、EEPROM、フラッシュメモリもしくはその他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)もしくはその他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくはその他の磁気記憶デバイス、又はコンピューティングデバイスがアクセスする情報を記憶するのに使用され得るいずれかのその他の非伝送媒体などが含まれる。これに対して、通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又はその他のデータを、搬送波などの変調データ信号、又は他の伝送機構において具現化することがある。
【0036】
[0048] コントローラの1つ以上のプロセッサ314及びメモリ316は、1つ以上のソフトウェアモジュール及びデータストアを含む機能を実装することがある。そのようなソフトウェアモジュールは、ルーチン、プログラム命令、オブジェクト、及び/又は特定のタスクを実行するもしくは特定のデータタイプを実装するためにプロセッサ314により実行されるデータ構造を含むことがある。より具体的には、メモリ316は、障害物上のレッジを、それらの障害物とアバターとの相互作用を促進するために特定及び/又は分類するように構成されるモジュール(例えばレッジ検出モジュール324)を備えることがある。
【0037】
[0049] また、メモリ316は様々なデータストアを含むことがある。例えばメモリ316は、アバターの1つ以上の属性に関するデータ(例えばアバターデータ326)及び1つ以上の障害物を含むエリアのレイアウトに関するデータ(例えばマップデータ328)を保持することがある。
【0038】
[0050] レッジ検出モジュール324は、プロセッサ314と連携して、ゲームマップ内の障害物上のアバターとの相互作用が可能な1つ以上のレッジを特定するように構成されることがある。一部の例では、ゲームマップはユーザ生成マップである場合がある。一部の実施形態では、これは、アバターと1つ以上のオブジェクトとの潜在的な衝突を、アバターの現在の軌道及び/又は(例えば受信入力ベクトルに基づいて決定される)意図した軌道並びに1つ以上の障害物位置に基づいて検出することを含む。
【0039】
[0051] アバターと障害物との潜在的な衝突を検出するときに、レッジ検出モジュール324は、アバターと相互作用され得るその障害物上の1つ以上のレッジを動的に特定及びマークするように構成されることがある。これはまず、障害物のある面がアバターがその面と衝突することになるベクトルに比較的垂直であるかどうかを判定することを含むことがある。その面がアバターの移動に比較的垂直である場合に、レッジ検出モジュール324は、その面の後方に延びる部分を特定することに基づいてその面の1つ以上の窪みを特定するように構成されることがある。1つ以上の窪みが特定されるという条件で、レッジ検出モジュール324は、窪みがレッジであるかどうかを窪みの位置及び窪みの上方のエリアの角度に基づいて判定するように構成されることがある。レッジを特定するときに、レッジ検出モジュール324は、アバターがそのレッジと相互作用する(例えば、そのレッジからぶら下がる又はそのレッジに登る)ことができるように、そのレッジを(例えばアンカーポイントによって)マークするように構成されることがある。
【0040】
[0052]
図4は、実施形態に係る障害物上のレッジを特定するためのプロセスのグラフィック図を示している。プロセス400は、
図3について以上で説明したコントローラ302などの仮想物理コントローラが実装されたユーザデバイス上で実行されることがある。
【0041】
[0053] プロセス400において、アバター402の進行経路が障害物404と一致するという決定がなされることがある。一部の例では、進行経路はアバターの現在の軌道に関連するベクトルに基づいて決定されることがある。一部の例では、進行経路は、ユーザにより提供される入力に関連して生成される入力ベクトルに基づいて決定されることがある。例えばユーザは、方向パッドを介してアバターが進む速度及び方向を示すことがある。次いで進行経路に沿った位置を含む領域が、複数の障害物とその障害物が(少なくとも部分的に)その領域内にあるかどうかを判定するために比較されることがある。1つ以上の障害物が少なくとも部分的にその領域内にあると判定したときに、その障害物との差し迫った衝突が検出されることがある。一部の実施形態では、計算要件を減らすために、アバターの所定の距離内に位置する障害物のみが差し迫った衝突があるかどうかチェックされることがある。これらの実施形態の一部において、所定の距離はアバターの現在の速度に基づいて決定されることがある。例えば衝突チェックは、低速で進んでいるアバターよりも高速で進んでいるアバターの場合により遠くにある障害物について実行されることがある。
【0042】
[0054] 障害物404との差し迫った衝突を検出したときに、その障害物の1つ以上の面にレッジがあるかどうかがチェックされることがある。一部の実施形態では、障害物の1つ以上の面は、アバターと障害物との予測衝突点のある所定の距離内でチェックされることがある。一部の実施形態では、そのようなチェックは、アバターがアバターの進行方向と関連付けられたベクトル408に関連して障害物の面に対応する平面に衝突する可能性がある角406を特定することから始まることがある。そのようなチェックにおいて、その角が所定の角度範囲内にあるかどうかについて判定がなされることがある。例えば、角406がベクトル408の法線の±10度以内にあるかどうかについて判定がなされることがある。換言すれば、角406が80度~100度であるかどうかについて判定がなされることがある。一部の実施形態では、その面は凹凸がある場合があり、角406が照合され得る平面はその面の平均垂直度に対応することがある。
【0043】
[0055] 角406が閾値角度内にあるとの判定をなすときに、レッジ検出プロセスは、面に1つ以上の窪み410を特定することから開始することがある。窪みは、面が閾値量だけ後退する(例えば面が所定の角度以上で後退する)面上のリップとして特定されることがある。一部の実施形態では、面の一部分は、面が垂直方向のある距離にわたって所定の水平距離だけ後退する場合にのみ窪みとして特定されることがある。一部の実施形態では、潜在的な窪みが窪みとみなされるために後退する必要がある水平距離は複数の要因に依存していることがある。例えば水平距離はアバターのサイズに依存していることがあり、その結果、大きいアバターよりも小さいアバターの場合に窪みが特定される可能性が高くなる。
【0044】
[0056] 一部の実施形態では、例えば必要とされる計算を減らすために、高さ範囲412内にある面の一部分のみが、窪みがあるかどうかチェックされることがある。そのような例では、範囲は、それより下では面の窪みの有無がチェックされない垂直最小高さ、及びそれより上では面の窪みの有無がチェックされない垂直最大高さを含むことがある。一部の実施形態では、高さ範囲412の1つ以上の値がアバターに関連する要因に依存している。例えば、高さ範囲412の垂直最小高さ及び/又は垂直最大高さが、アバターに関連する高さ及び/又は到達値に依存していることがある。このように、背が低いアバターとは対照的に背が高いアバターについて、ある面上により高い位置の窪みが特定されることがある。
【0045】
[0057] 1つ以上の窪みが潜在的なレッジと特定されると、窪みがレッジであるかどうかについて判定がなされることがある。一部の実施形態では、これは、面に対する窪みの上方のエリアの角414が所定の範囲内にあるかどうかを判定することを含む。この例では、窪みの上方のエリアが面の垂直部分に対して85~95度の角度で横たわる場合に及びその場合にのみ、窪みがレッジであると判定されることがある。一部の実施形態では、窪みの上方のエリアが障害物の面から少なくとも閾値距離416だけ後ろに延びる場合に、窪みがレッジであると判定されることがある。一部の実施形態では、閾値距離416はアバターの1つ以上の特徴に依存していることがある。例えば閾値距離416はアバターに関連する幅に依存していることがある。一部の実施形態では、レッジの上方のエリアは、レッジの上方の空間体積を含むことがあり、その結果、空間に含まれる障害物は、窪みをレッジとみなすべきかどうかに影響を及ぼすことがある。レッジが特定されると、レッジにアンカーポイントが取り付けられることがあり、その結果、アバターがアンカーポイントを介してレッジと相互作用することができる。
【0046】
[0058] 一部の実施形態では、特定されたレッジが特定のタイプのレッジに分類されることがある。一部の例では、レッジの高さ418(例えばレッジの「床」からの距離)がレッジを分類するのに使用されることがある。例えばレッジの高さが高さ閾値を上回る場合、レッジはハンギング(hanging)レッジに分類されることがある一方、レッジの高さが高さ閾値を下回る場合、レッジはクライミング(climbing)レッジに分類されることがある。一部の実施形態では、レッジの分類は閾値距離416に依存していることもある。例えばレッジの上方のエリアが閾値距離416よりも短い場合、レッジはハンギングレッジに分類されることがある一方、レッジの上方のエリアが閾値距離416よりも長い場合、レッジはクライミングレッジに分類されることがある。実施形態では、アバターのレッジとの相互作用がレッジの分類に依存することがある。例えばアバターがレッジに接近するときに、レッジがハンギングレッジである場合はハンギングアクションを、レッジがクライミングレッジである場合はクライミングアクションをアバターに行わせることがある。
【0047】
[0059]
図5は、実施形態に従って特定され得る例示的なレッジのグラフィック図を示している。具体的には、
図5はアバター502が落下し得るエッジであるレッジを示す。
【0048】
[0060] 図示するように、アバター502が、アバターが現在進んでいる方向を示す進行ベクトル504と関連付けられている。この例では、エッジ506がアバターに近接した(例えばアバターの閾値距離内の)障害物として検出されることがある。エッジ506(すなわち障害物)は、少なくとも1つの面508と関連付けられていることがある。一部の実施形態では、エッジは、アバターがそのエッジを超えると、又はアバターが近い将来そのエッジを超えると予測されるときに検出されることがある。
【0049】
[0061] 一部の実施形態では、進行ベクトル504と少なくとも1つの面508の間の角510がある角度範囲内にあるかどうかについて判定がなされることがある。例えば、進行ベクトルが少なくとも1つの面を表す平面に対して90度の角度である又は90度の角度のある所定の範囲内にあるという意味で角510が比較的垂直であるかどうかについて判定がなされることがある。一部の実施形態では、角512がある閾値範囲内にあるかどうかについて判定が更になされることがある。例えばエッジは、エッジの上方の表面が比較的水平である(例えば実質的に接地面と一直線になっている)場合にレッジとして扱われることがある。
【0050】
[0062] 図示するように、この例で説明されるケースにおけるレッジは、アバターの足元に又はアバターの下方に位置することがある。また、そのようなレッジはアバターの後ろに位置することがある。そのようなレッジを検出したときに、そのようなレッジに特有の1つ以上のアクションがアバターに利用可能になることがある。例えば、そのようなレッジ上に置かれたアンカーポイントと相互作用するようにとの命令を受けたときに、アバターが落ちるときにアバターを回転させレッジに掴まらせることがある。
【0051】
[0063]
図6は、一部の実施形態に係る障害物上のレッジを動的に検出及びマークするためのプロセスを示すブロック図を示している。例示的なプロセス600の一部もしくは全て(本明細書に記載の任意の他のプロセス、又はそれらの変形例及び/もしくは組み合わせ)は、実行可能命令で構成された1つ以上のコンピュータシステムの制御下で実行されることがあり、コード(例えば、実行可能命令、1つ以上のコンピュータプログラム又は1つ以上のアプリケーション)として実装されることがある。プロセス600は、
図3に示したユーザデバイス308などの任意の適切なデバイスによって実行される可能性がある。
【0052】
[0064] 602において、プロセス600は、制御されているオブジェクト(例えばアバター)の経路で検出された障害物を監視することを含む。オブジェクトの経路は、オブジェクトの現在の軌道、受信したユーザ入力、又は両者の一部の組み合わせから決定されるベクトルである場合がある。一部の実施形態では、1つ以上の障害物は、オブジェクトの経路に関連するベクトルがオブジェクトの現在の位置に一致するか又は重なる場合にオブジェクトの経路内にあると判定されることがある。一部の実施形態では、オブジェクトの所定の距離内にある各障害物は、オブジェクトの経路内にあるかどうかを判定するために(例えば周期的に)チェックされることがある。障害物が経路に一致する位置にあるとの判定がなされる場合に、604において障害物はオブジェクト経路内にあることが検出される。
【0053】
[0065] 606において、プロセスは、オブジェクトと障害物の衝突角が閾値の範囲内にあるかどうかを判定することを含む。具体的には、オブジェクトの進行のベクトルが障害物の面を表す平面に実質的に垂直であるかどうかについて判定がなされることがある。比較的垂直とみなされるには、オブジェクトの進行のベクトルは、面に対して90度に事前に定義された閾値分散をプラスマイナスした角度をなすべきである。例えば衝突角は、オブジェクトの進行のベクトルが直角の±10度(例えば80~100度)で面に衝突することになる場合にオブジェクトの面に実質的に垂直であるとみなされることがある。この例では、オブジェクトの進行のベクトルが障害物の面に85度の角度で衝突する可能性があると判定される場合に、衝突角は実質的に垂直(すなわち閾値の範囲内)であると判定される。衝突角が閾値の範囲内にない(例えば606からの「No」)と判定するときに、プロセス600は、進行の経路内にあると判定される各障害物について繰り返されることがある。他の障害物が検出されなかった場合は、プロセスは602における障害物を監視することに戻ることがある。
【0054】
[0066] 衝突角が閾値範囲内にある(例えば606からの「Yes」)と判定したときに、プロセス600は、608において1つ以上の窪みを検出することを含むことがある。一部の実施形態では、これは、障害物の面のジオメトリを、面が後退する面の1つ以上のセグメントを検出するために解析することを含む。一部の実施形態では、所定の垂直距離にわたって少なくともある閾値水平距離だけ後退する面の一部分についてのみ窪みの検出が行われることがある。実施形態では、窪みは、面の一部分を沿って延びるリップと、水平方向に少なくともある所定の距離だけ後退するリップの上方の後退エリアと、を少なくとも含むことがある。
【0055】
[0067] 610において、プロセス600は、窪みの上方のエリアの角度が適切な角度の閾値範囲内にあるかどうかを判定することを含むことがある。例えば、そのエリアの角度が比較的水平である(すなわち地面と平行に延びている)という決定がなされることがある。この例では、適切な角度が、(例えば窪みのリップにおける)面から約90度、又は仮想空間の接地レベルを表す「床」に平行に延びる平面の10度以内の角度である場合がある。窪みの上方のエリアの角度が閾値範囲内にない(例えば610からの「No」)と判定したときに、プロセス600は、障害物上で検出される各窪みについて繰り返されることがある。他の窪みが検出されなかった場合は、プロセスは602における障害物を監視することに戻ることがある。
【0056】
[0068] 窪みの上方のエリアの角度が閾値範囲内にある(例えば610からの「Yes」)と判定したときに、プロセス600は、612において窪みをレッジに分類することに進むことがある。一部の実施形態では、プロセスは更に、レッジを特定のタイプのレッジに分類することがある。例えばレッジは、窪みの1つ以上の属性に応じて登ることが可能な(climbable)レッジ又はぶら下がり可能な(hangable)レッジに分類されることがある。一部の実施形態では、これは、レッジの上方のオープンエリアを計算し、そのようなエリアがアバターを支え得るかどうかを(例えばレッジ及びアバターの幅や高さに基づいて)判定することを含むことがある。一部の例では、これは更に、追加の障害物が窪みの上方にあるかどうかを判定することを含むことがある。
【0057】
[0069] 窪みがレッジに分類され(一部の例では、特定のタイプのレッジに分類され)ると、プロセス600は、614においてレッジのためのアンカーポイントを生成することを含むことがある。アンカーポイントは、アバターが相互作用し得る場所の印である。具体的には、レッジのために生成されるアンカーポイントは、アバターがアンカーポイントでレッジ関連のアクションを行うことを可能にすることがある。一部の実施形態では、複数のそのようなアンカーポイントは、窪みのリップに沿って様々な間隔で配置されることがある。したがって、アバターがアンカーポイントに接近するとき、そのアンカーポイントは検出され、そのアンカーポイントと関連付けられたアクションがアバターによって行われることがある。
【0058】
[0070] アバターにより特定のアンカーポイントに関して行われるアクションがアバターによって異なり得ることに留意すべきである。一部の実施形態では、レッジを検出及び分類するためにプロセス600により用いられる情報はアバターの属性によって異なることがある。例えばより大きいアバターは、窪みの上方により大きいエリアを、その窪みがレッジに分類されるように必要とすることがある。このように、プレイヤーがプレイしているときにレッジ検出を動的に実行できるだけでなく、アバターの属性/能力に基づいてアバターによって異なった対応をするためにマップが作られることもある。
【0059】
[0071]
図7は、実施形態に係るレッジ検出を行うための例示的なプロセスフロー700を示している。プロセス700は、
図3に示したユーザデバイス308などの任意の適切なデバイスによって実行される可能性がある。
【0060】
[0072] 様々な実施形態によれば、プロセス700は、701においてプレイヤーのアバターの仮想空間における移動を制御するように構成されたプレイヤー入力の方向に対応する入力ベクトルを、ゲームシステムによって受信することを含む。次いでシステムは、702においてアバターの初期位置で第1の衝突チェックを行い、プレイヤー入力の方向に壁が存在することを確認するために入力ベクトルに基づいてプレイヤー入力の方向に所定距離のところで終了する。壁がプレイヤー入力の方向に存在することを確認したことに応答して、703において入力ベクトルとアバターから壁に沿った衝突位置へのベクトルとの間の角度チェックが行われて、アバターが壁に衝突することになるか確認する。アバターが壁に衝突することになることを確認したことに応答して、304において壁の険しさが事前に定義された範囲内にあることを確認するために、壁に沿った衝突位置における壁の垂直角度の許容誤差試験が行われる。壁の険しさが事前に定義された範囲内にあることを確認したことに応答して、システムはプレイヤーアバターの出発位置を下方にオフセットし、衝突位置を下方にオフセットして、705において衝突位置における壁の高さが最小高さを上回ることを確認するための第2の衝突チェックを行う。壁の高さが最小高さを上回ることを確認したことに応答して、システムは、706において衝突位置に対応するレッジの上部を特定するために衝突位置の上方の高い所から始まり下方に移動する第3の衝突試験を行う。レッジの上部が特定されたときに、707においてレッジの上部の法線が、レッジの角度がラッチをサポートするために事前に定義された許容可能な角度の範囲内にあるかどうかを判定するために計算される。レッジの角度が事前に定義された許容可能な角度の範囲内にある場合に、システムは、708においてレッジの上部においてアバターを壁にくっつけるためのアンカーポイントを生成する。
【0061】
[0073]
図8は、実施形態に係るアバターとレッジとの相互作用を動的に促進するための例示的なプロセスフロー800を示す流れ図を示している。プロセス800は、ユーザ入力に基づいてアクティベーションデータを生成するように構成されるコンピューティングデバイスによって実行されることがある。例えばプロセス800は、ユーザとソフトウェアアプリケーションとの相互作用を促進することができるコントローラ、例えば
図3に関して以上で説明したコントローラ302によって実行されることがある。一部の実施形態では、そのようなソフトウェアアプリケーションはユーザによりプレイされるビデオゲームである。
【0062】
[0074] 802において、プロセス800は、仮想空間内でアバターに近接して位置する少なくとも1つの障害物を特定することを含む。一部の実施形態では、アバターは、ユーザデバイスのユーザにより制御されているオブジェクト(例えばキャラクタ)である。実施形態では、アバターの近傍の(例えば所定の距離内にある)全ての障害物に対して衝突チェックが実行されて少なくとも1つの障害物を特定する。一部の実施形態では、仮想空間は、ビデオゲームに実装される仮想マップ、例えばユーザ生成ゲームマップを含む。一部の実施形態では、障害物は、アバターが落下し得るエッジであり、障害物上の少なくとも1つの面はエッジに沿った面を含む。
【0063】
[0075] 804において、プロセス800は、アバターに関連する進行ベクトルに実質的に垂直である障害物上の少なくとも1つの面を特定することを含む。一部の実施形態では、進行ベクトルはアバターの現在の軌道と関連付けられている。一部の実施形態では、進行ベクトルは、ユーザから受信された情報から生成される入力ベクトルと関連付けられている。少なくとも1つの面は、少なくとも1つの面と進行ベクトルとの間の角度が所定の値の範囲内にある場合に、進行ベクトルに実質的に垂直であると判定されることがある。
【0064】
[0076] 806において、プロセス800は、リップ及びリップの上方の後退エリアを含む窪みを少なくとも1つの面上で特定することを含む。一部の実施形態では、窪みは、ある高さ範囲内にあることによって少なくとも1つの面上で特定される。これらの実施形態の少なくとも一部において、高さ範囲は垂直最小高さ及び垂直最大高さを含む。
【0065】
[0077] 一部の実施形態では、プロセス800は、窪みの高さを決定することを更に含み、窪みは、高さが閾値高さよりも大きい場合にレッジであると判定される。そのような実施形態では、閾値高さは、アバターに関連する高さ値に基づいて決定されることがある。
【0066】
[0078] 808において、プロセス800は、窪みがレッジであることを、後退エリアの1つ以上の特性に少なくとも部分的に基づいて決定することを含む。一部の実施形態では、後退エリアの1つ以上の特性は、少なくとも後退エリアの少なくとも1つの面に対する角度を含む。
【0067】
[0079] 810において、プロセス800は、アバターと窪みとの1つ以上の相互作用を可能にするように構成されたアンカーポイントをリップに生成することを含む。一部の実施形態では、プロセス800は更に、後退エリアの1つ以上の追加の特性に少なくとも部分的に基づいて窪みを分類することを含む。これらの実施形態では、アバターと窪みとの1つ以上の相互作用は、窪みの分類によって異なることがある。
【0068】
[0080] 本明細書に記載の方法は、仮想コントローラ、すなわち容易にカスタマイズできるコントローラボタンレイアウトを提供するためのタッチスクリーン又はタッチスクリーンのような機能を使用するコントローラを対象とする。一部の実施形態によれば、タッチスクリーンは、ゲーミングコンソール、パーソナルコンピュータ、タブレット、スマートフォン、シンクライアントデバイス(例えばスクリーンにプラグインされるUSB又はHDMIデバイス)のようなゲーミングデバイスとインターフェイスする物理的な携帯コントローラの少なくとも一部分である。一部の実施形態によれば、タッチスクリーンは、ゲーミングコンソール、パーソナルコンピュータ、タブレット、スマートフォン、シンクライアントデバイス(例えばスクリーンにプラグインされるUSB又はHDMIデバイス)のようなゲーミングデバイスとインターフェイスするコントローラの主要な特徴である。一部の実施形態によれば、コントローラは、モバイルデバイス又はタブレットをゲーミングコンソール、パーソナルコンピュータ、シンクライアントデバイス(例えばスクリーンにプラグインされるUSB又はHDMIデバイス)のようなゲーミングデバイスに接続する実行可能なソフトウェアと連携するモバイルデバイス又はタブレットから構成される。一部の更なる実施形態によれば、タッチスクリーンは、ゲーミングコンソール、パーソナルコンピュータ、タブレット、又はスマートフォンのようなゲーミングデバイスのタッチ対応スクリーンである。
【0069】
[0081] 明細書及び図面は、限定的な意味ではなく例示的な意味で見なされるべきである。しかしながら、添付の特許請求の範囲に記載する本開示のより広い趣旨及び範囲から逸脱することなく、本明細書に対する様々な修正及び変更が行われ得ることは明らかであろう。
【0070】
[0082] 他の変形例が本開示の趣旨の範囲内にある。したがって、開示される技術は、様々な修正例及び代替的な構成の影響を受けやすいが、開示される技術のいくつかの図解される実施形態は、図面に示されており、以上で詳細に説明されている。しかしながら、本発明を開示される特定の形態(複数可)に限定する意図はないが、反対に、意図は、添付の特許請求の範囲に定義されるように、本発明の趣旨及び範囲内に入る全ての修正例、代替的な構成及び同等物を網羅することであることが理解されるべきである。
【0071】
[0083] 開示される実施形態を説明する文脈(とりわけ、以下の特許請求の範囲の文脈)における用語「a」及び「an」及び「the」、並びに同様の参照対象の使用は、別様に本明細書に示されない限り、又は文脈によって明らかに矛盾しない限り、単数形及び複数形の両方を網羅すると解釈されるべきである。「備える(comprising)」、「有する(having)」、「含む(including)」、及び「含有する(containing)」という用語は、別様に記述されない限り、制限のない用語(open-ended term)(すなわち、「含むが、これに限定されない」を意味する)として解釈されるべきである。「接続された」という用語は、介在する何かが存在する場合でも、部分的又は全体的に中に含まれるか、取り付けられるか、又は一緒に接合されるものとして解釈されるべきである。本明細書の値の範囲の列挙は、別様に本明細書に示されない限り、単に範囲内に入る各別個の値を個別に参照する略式方法として役立つことを意図するものであり、各別個の値は、本明細書に個別に列挙されたものとして本明細書に組み込まれる。本明細書に記載される全ての方法は、別様に本明細書に示されない限り、又は別様に文脈によって明らかに矛盾しない限り、任意の好適な順序で実施される可能性がある。本明細書に提供される任意の及びすべての実施例、又は例示的な言い回し(例えば、「などの」)の使用は、単に本発明の実施形態をよりよく明らかにすることを意図するものであり、別様に請求されない限り、本発明の範囲に限定を課さない。本明細書のいかなる言い回しも、本発明の実施に不可欠なものとして任意の特許請求されない要素を示すように解釈されるべきではない。
【0072】
[0084] 本発明者らに知られている本発明を行うための最良のモードを含む、本開示の好ましい実施形態が本明細書に記載されている。これらの好ましい実施形態の変形例は、前述の説明を読むことで当業者に明らかになることがある。発明者らは、当業者がかかる変形例を適切に採用することを期待し、かつ発明者らは、本明細書に具体的に記載される以外の方法で本発明を実施することを意図している。したがって、本発明は、適用法によって許可された場合に、本明細書に添付される特許請求の範囲に列挙される主題の全ての修正例及び同等物を含む。更に、それらの全ての可能な変形例における上記の要素の任意の組み合わせは、別様に本明細書に示されない限り、又は別様に文脈によって明らかに矛盾しない限り本発明によって包含される。
【0073】
[0085] 以下において、本発明の態様の理解を容易にするために更なる例を記載する。
【0074】
[0086] 例A.仮想空間内のアバターがユーザの制御下で仮想空間を通過する間に、アバターに近接して位置する少なくとも1つの障害物を、アバターが少なくとも1つの障害物の閾値距離内にあることを検出したことに応答して特定すること、
アバターに関連する進行ベクトルに実質的に垂直である障害物上の少なくとも1つの面を特定すること、
リップとリップの上方の後退エリアとを含む窪みを、少なくとも1つの面上で特定すること、
窪みがレッジであることを、後退エリアの1つ以上の特性に少なくとも部分的に基づいて決定すること、及び
アバターと窪みとの1つ以上の相互作用を可能にするように構成されたアンカーポイントをリップに生成すること、
を含む、方法。
【0075】
[0087] 例B.少なくとも1つの面が、少なくとも1つの面と進行ベクトルとの間の角度が所定の値の範囲内にある場合に進行ベクトルに実質的に垂直である、例A又は先行もしくは後続の例のいずれかの方法。
【0076】
[0088] 例C.進行ベクトルがアバターの現在の軌道と関連付けられている、例A又は先行もしくは後続の例のいずれかの方法。
【0077】
[0089] 例D.アバターの現在の軌道によってアバターが仮想空間のプレイ可能エリアを離れることになることを検出し、検出に応答してアバターをアンカーポイントと相互作用させることを更に含む、例A又は先行もしくは後続の例のいずれか。
【0078】
[0090] 例E.進行ベクトルが、ユーザから受信された情報から生成される入力ベクトルと関連付けられている、例A又は先行もしくは後続の例のいずれか。
【0079】
[0091] 例F.障害物が、アバターが落下し得るエッジを含み、障害物上の少なくとも1つの面がエッジに沿った面を含む、例A又は先行もしくは後続の例のいずれか。
【0080】
[0092] 例G.後退エリアの1つ以上の特性が、少なくとも後退エリアの少なくとも1つの面に対する角度を含む、例A又は先行もしくは後続の例のいずれか。
【0081】
[0093] 例H.窪みの高さを決定することを更に含み、高さが閾値高さよりも大きい場合に窪みがレッジであると判定される、例A又は先行もしくは後続の例のいずれか。
【0082】
[0094] 例I.閾値高さがアバターに関連する高さ値に基づいている、例H又は先行もしくは後続の例のいずれか。
【0083】
[0095] 例J.プロセッサとメモリとを備えたユーザデバイスであって、メモリが、プロセッサを用いて実行されるときに、
ユーザデバイスに少なくとも、ユーザの制御下にあるアバターが仮想空間を通過する間に、少なくとも1つの障害物を、アバターが少なくとも1つの障害物の閾値距離内にあることを検出したことに応答して特定すること、
アバターに関連する進行ベクトルに実質的に垂直である障害物上の少なくとも1つの面を特定すること、
リップとリップの上方の後退エリアとを含む窪みを、少なくとも1つの面上で特定すること、
窪みがレッジであることを、後退エリアの1つ以上の特性に少なくとも部分的に基づいて決定すること、及び、
アバターと窪みとの1つ以上の相互作用を可能にするように構成されたアンカーポイントをリップに生成すること、
を行わせる命令を含む、ユーザデバイス。
【0084】
[0096] 例K.命令が更に、ユーザデバイスに後退エリアの1つ以上の追加の特性に少なくとも部分的に基づいて窪みを分類させる、例J又は先行もしくは後続の例のいずれか。
【0085】
[0097] 例L.1つ以上の相互作用が窪みの分類によって異なる、例J又は先行もしくは後続の例のいずれか。
【0086】
[0098] 例M.窪みがある高さ範囲内にあることによって少なくとも1つの面上で特定される、例J又は先行もしくは後続の例のいずれか。
【0087】
[0099] 例N.高さ範囲が垂直最小高さ及び垂直最大高さを含む、例M又は先行もしくは後続の例のいずれか。
【0088】
[00100] 例O.アバターが、ユーザデバイスのユーザにより制御されているオブジェクトを含む、例J又は先行もしくは後続の例のいずれか。
【0089】
[00101] 例P.アバターの近傍の全ての障害物に対して、少なくとも1つの障害物を特定するために衝突チェックが実行される、例J又は先行もしくは後続の例のいずれか。
【0090】
[00102] 例Q.命令がユーザデバイス上で実行されるビデオゲームを含む、例J又は先行もしくは後続の例のいずれか。
【0091】
[00103] 例R.仮想空間内のアバターがユーザの制御下で仮想空間を通過する間に、アバターに近接して位置する少なくとも1つの障害物を、アバターが少なくとも1つの障害物の閾値距離内にあることを検出したことに応答して特定すること、
アバターに関連する進行ベクトルに実質的に垂直である障害物上の少なくとも1つの面を特定すること、
リップとリップの上方の後退エリアとを含む窪みを、少なくとも1つの面上で特定すること、
窪みがレッジであることを、後退エリアの1つ以上の特性に少なくとも部分的に基づいて決定すること、及び、
アバターと窪みとの1つ以上の相互作用を可能にするように構成されたアンカーポイントをリップに生成すること、
を含む行為を、実行時に1つ以上のコンピューティングデバイスにまとめて行わせるコンピュータ実行可能命令をまとめて記憶する、非一時的コンピュータ可読媒体。
【0092】
[00104] 例S.少なくとも1つの面が、少なくとも1つの面と進行ベクトルとの間の角度が所定の値の範囲内にある場合に進行ベクトルに実質的に垂直であり、進行ベクトルが、アバターの現在の軌道又はユーザから受信した情報から生成される入力ベクトルと関連付けられている、例R又は先行もしくは後続の例のいずれか。
【0093】
[00105] 例T.窪みが、少なくとも1つの面を上から下までスキャンすることによって少なくとも1つの面上で特定される、例S又は先行もしくは後続の例のいずれか。
【0094】
結び
[00106] 主題は、特徴及び方法論的行為に固有の言語で説明されてきたが、添付の特許請求の範囲で定義される主題は、必ずしも上記の特定の特徴又は行為に限定されないことを理解されたい。むしろ上記特定の特徴及び行為は、特許請求の範囲を実施する例示的な形態として開示されている。