(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-19
(54)【発明の名称】クライアント-サーバネットワーキングのためのコントローラ状態管理
(51)【国際特許分類】
G06F 3/01 20060101AFI20240312BHJP
A63F 13/422 20140101ALI20240312BHJP
A63F 13/426 20140101ALI20240312BHJP
A63F 13/67 20140101ALI20240312BHJP
G06F 3/04886 20220101ALN20240312BHJP
【FI】
G06F3/01 510
A63F13/422
A63F13/426
A63F13/67
G06F3/04886
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023553751
(86)(22)【出願日】2022-03-09
(85)【翻訳文提出日】2023-10-24
(86)【国際出願番号】 US2022019651
(87)【国際公開番号】W WO2022192474
(87)【国際公開日】2022-09-15
(32)【優先日】2021-03-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】511214439
【氏名又は名称】バンジー, インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ティミンズ,ルーク
(72)【発明者】
【氏名】ペン,グレゴリー
【テーマコード(参考)】
5E555
【Fターム(参考)】
5E555AA16
5E555AA27
5E555AA76
5E555BA20
5E555BB08
5E555BB20
5E555BC09
5E555BD07
5E555BE17
5E555CA15
5E555CB12
5E555DB32
5E555DD02
5E555EA19
5E555EA20
5E555FA00
(57)【要約】
本明細書に記載するのは、コントローラと別の電子装置との間で状態データを伝送するための技法である。実施形態では、かかる技法は、アバタによって行われる第1のアクションに関係する入力をユーザ装置において受信すること、受信した入力から生成される第1の1組の状態データを第1の通信チャネル上で第2の電子装置に提供すること、及びアバタによって行われる第2のアクションに関係するユーザの意図を明らかにすることを含み得る。ユーザの意図に基づき、第1の1組の状態データと異なり、入手可能な全ての状態データよりも少ない状態データを含む第2の1組の状態データを生成することができる。第2の1組の状態データは第2の通信チャネル上で第2の装置に提供することができ、修正済みアクションをアバタに行わせる。
【特許請求の範囲】
【請求項1】
アバタによって行われる第1のアクションに関係するユーザ装置のユーザからの入力を前記ユーザ装置において受信すること、
前記受信した入力から生成される第1の1組の状態データを第1の通信チャネル上で第2の電子装置に提供すること、
前記受信した入力に基づいて前記第1のアクションと異なる前記アバタによって行われる第2のアクションに関係するユーザの意図を明らかにすること、
前記ユーザの意図に基づいて、前記第1の1組の状態データと異なり、入手可能な全ての状態データよりも少ない状態データを含む第2の1組の状態データを生成すること、
前記第2の1組の状態データを前記第1の通信チャネルと異なる第2の通信チャネル上で前記第2の電子装置に提供すること、並びに
前記第1の及び第2の1組の状態データに基づいて前記第1のアクションと異なる修正済みアクションを前記アバタに行わせること
を含む、方法。
【請求項2】
前記ユーザの意図が、前記第1のアクションが前記アバタによって行われることを妨げる中断を含む、請求項1に記載の方法。
【請求項3】
前記ユーザの意図が前記アバタによって行われる前記第1のアクションに対する修正を含む、請求項2に記載の方法。
【請求項4】
前記ユーザの意図が、前記アバタによって行われる前記第1のアクションの後で行われる第2のアクションを含む、請求項2に記載の方法。
【請求項5】
前記第1の1組の状態データが1組の所定のデータ値を含む、請求項1に記載の方法。
【請求項6】
前記第2の1組の状態データが前記ユーザの意図に基づいて選択される1組のデータ値を含む、請求項1に記載の方法。
【請求項7】
前記第2の1組の状態データが入力ベクトル、入力偏位、又は入力変化のうちの少なくとも1つの何らかの組み合わせを含む、請求項6に記載の方法。
【請求項8】
前記ユーザの意図が前記ユーザ装置のユーザに関する過去の使用データに基づいて明らかにされる、請求項1に記載の方法。
【請求項9】
前記ユーザの意図が訓練済みの機械学習モデルに前記入力を与えることによって明らかにされる、請求項1に記載の方法。
【請求項10】
プロセッサと、
前記プロセッサによって実行されるとき、少なくとも
アバタによって行われる第1のアクションに関係するユーザ装置のユーザからの入力を前記ユーザ装置において受信すること、
前記受信した入力から生成される第1の1組の状態データを第1の通信チャネル上で第2の電子装置に提供すること、
前記受信した入力に基づいて前記第1のアクションと異なる前記アバタによって行われる第2のアクションに関係するユーザの意図を明らかにすること、
前記ユーザの意図に基づいて、前記第1の1組の状態データと異なり、入手可能な全ての状態データよりも少ない状態データを含む第2の1組の状態データを生成すること、
前記受信した入力から生成される第2の1組の状態データを前記第1の通信チャネルと異なる第2の通信チャネル上で前記第2の電子装置に提供すること、並びに
前記第1の及び第2の1組の状態データに基づいて前記第1のアクションと異なる修正済みアクションを前記アバタに行わせること
を前記ユーザ装置に行わせる命令を含むメモリと
を含む、ユーザ装置。
【請求項11】
前記ユーザ装置がビデオゲーム内のアバタを操作するために使用されるコントローラを含む、請求項10に記載のユーザ装置。
【請求項12】
前記コントローラがタッチスクリーンディスプレイを有する仮想コントローラを含む、請求項11に記載のユーザ装置。
【請求項13】
前記入力が前記コントローラ上に実装される1つ又は複数の入力機構に関連する、請求項11に記載のユーザ装置。
【請求項14】
前記第2の電子装置がゲーム機を含む、請求項10に記載のユーザ装置。
【請求項15】
前記第2の電子装置がサーバ計算装置を含む、請求項10に記載のユーザ装置。
【請求項16】
前記第2の1組の状態データは前記第1のアクションを行った後で第2のアクションを前記アバタに行わせるために前記第2の電子装置によって使用される、請求項10に記載のユーザ装置。
【請求項17】
前記第2の1組の状態データは前記アバタによって行われる前記第1のアクションを修正するために前記第2の電子装置によって使用される、請求項10に記載のユーザ装置。
【請求項18】
アバタによって行われる第1のアクションに関係するユーザ装置のユーザからの入力を前記ユーザ装置において受信すること、
前記受信した入力から生成される第1の1組の状態データを第1の通信チャネル上で第2の電子装置に提供すること、
前記受信した入力に基づいて前記第1のアクションと異なる前記アバタによって行われる第2のアクションに関係するユーザの意図を明らかにすること、
前記ユーザの意図に基づいて、前記第1の1組の状態データと異なり、入手可能な全ての状態データよりも少ない状態データを含む第2の1組の状態データを生成すること、
前記第2の1組の状態データを前記第1の通信チャネルと異なる第2の通信チャネル上で前記第2の電子装置に提供すること、並びに
前記第1の及び第2の1組の状態データに基づいて前記第1のアクションと異なる修正済みアクションを前記アバタに行わせること
を含む行為を実行時に1つ又は複数の計算装置に集合的に行わせるコンピュータ実行可能命令を集合的に記憶する、非一時的コンピュータ可読媒体。
【請求項19】
前記ユーザの意図が、前記アバタによって行われている前記第1のアクションを妨げる中断、前記アバタによって行われる前記第1のアクションに対する修正、又は前記アバタによって行われる前記第1のアクションの後で行われる第2のアクションのうちの1つを含む、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記第1の1組の状態データが1組の所定のデータ値を含み、前記第2の1組の状態データが前記ユーザの意図に基づいて選択される1組のデータ値を含む、請求項18に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【0001】
背景
[0001] コンピュータ及びビデオゲーム並びに汎用オペレーティングシステムによって使用されるような現代のコンピュータコントローラシステムは、オンラインゲームのためにクライアントマシンとサーバマシンとの間の要求内のコントローラデータをネットワーク化する様々な技法を採用する。米国特許第8,632,409号及び米国特許第8,823,701号に記載されているように、一人称視点のゲーム(例えばDESTINY及びDESTINY 2シリーズ)用のコンピュータ又はコンソール/サーバ通信について複雑なネットワーキングソリューションが存在する。しかし、コントローラデータのネットワーク化を実装することにおける固有の問題は、一人称視点とは対照的にアイソメトリックなゲームエンジンを検討するとき、及び計算力のより大きいシェアがクライアント側とは対照的にサーバ側である計算環境を検討するとき異なる。従って、シンクライアントゲーム及び多様な視点のゲームをサポートするための改善されたネットワーキング実装が求められている。
【発明の概要】
【0002】
概要
[0002] コントローラと別の電子装置(例えばサーバ又はコンソール)との間の通信を促進するための技法を本明細書に示す。かかる技法では、ユーザ入力が受信されると、第1の1組の状態データが第1の通信チャネルを介してコントローラによって提供され得る。コントローラは、受信したユーザ入力に基づいてユーザの予測される意図を明らかにすることができる。ユーザの予測される意図に基づき、第2の1組の状態データが第2の通信チャネルを介してコントローラによって提供される。
【0003】
[0003] 一実施形態では、ユーザ装置によって実行されるものとして方法が開示され、この方法は、コントローラ装置においてコントローラ装置のユーザからのタッチ入力を受信すること、受信したタッチ入力から生成される第1の1組の状態データを第1の通信チャネル上で第2の電子装置に提供すること、受信したタッチ入力に基づいてユーザの意図を明らかにすること、ユーザの意図に基づいて第2の1組の状態データを生成すること、及び受信したタッチ入力から生成される第2の1組の状態データを第1の通信チャネルと異なる第2の通信チャネル上で第2の電子装置に提供することを含む。
【0004】
[0004] 一実施形態は、タッチスクリーンディスプレイと、プロセッサと、プロセッサによって実行されるとき、少なくともユーザ装置のユーザからのタッチ入力を受信すること、受信したタッチ入力から生成される第1の1組の状態データを第1の通信チャネル上で第2の電子装置に提供すること、受信したタッチ入力に基づいてユーザの意図を明らかにすること、ユーザの意図に基づいて第2の1組の状態データを生成すること、及び受信したタッチ入力から生成される第2の1組の状態データを第1の通信チャネルと異なる第2の通信チャネル上で第2の電子装置に提供することを計算装置に行わせる命令を含むメモリとを含む、計算システムを対象とする。
【0005】
[0005] 一実施形態は、コントローラ装置においてコントローラ装置のユーザからのタッチ入力を受信すること、受信したタッチ入力から生成される第1の1組の状態データを第1の通信チャネル上で第2の電子装置に提供すること、受信したタッチ入力に基づいてユーザの意図を明らかにすること、ユーザの意図に基づいて第2の1組の状態データを生成すること、及び受信したタッチ入力から生成される第2の1組の状態データを第1の通信チャネルと異なる第2の通信チャネル上で第2の電子装置に提供することを含む行為を実行時に1つ又は複数の計算装置に集合的に行わせるコンピュータ実行可能命令を集合的に記憶する、非一時的コンピュータ可読媒体を対象とする。
【0006】
[0006] 一実施形態は、アバタによって行われる第1のアクションに関係するユーザ装置のユーザからの入力をユーザ装置において受信し、受信した入力から生成される第1の1組の状態データを第1の通信チャネル上で第2の電子装置に提供し、受信した入力に基づいて第1のアクションと異なるアバタによって行われる第2のアクションに関係するユーザの意図を明らかにするための方法を対象とする。この方法は、ユーザの意図に基づいて、第1の1組の状態データと異なり、入手可能な全ての状態データよりも少ない状態データを含む第2の1組の状態データを生成すること、第2の1組の状態データを第1の通信チャネルと異なる第2の通信チャネル上で第2の電子装置に提供すること、並びに第1の及び第2の1組の状態データに基づいて第1のアクションと異なる修正済みアクションをアバタに行わせることを更に含み得る。ユーザの意図は、アバタによって行われている第1のアクションを妨げる中断、アバタによって行われる第1のアクションに対する修正、又はアバタによって行われる第1のアクションの後で行われる第2のアクションの何れかを含み得る。第1の1組の状態データは1組の所定のデータ値を含むことができ、第2の1組の状態データは受信された入力から推論され、第1の1組の状態データということを伝送するためにより少ない帯域幅を必要とし得る、ユーザの意図に基づいて選択される1組のデータ値を含むことができる。
【0007】
[0007] 上記の内容は他の特徴及び実施形態と共に、以下の明細書、添付の特許請求の範囲、及び添付図面を参照するときより明らかになる。この特許が範囲として含む本発明の実施形態は、この概要ではなく添付の特許請求の範囲によって定められる。この概要は本発明の様々な態様の高度な概略であり、以下の詳細な説明の節の中で更に記載する概念の幾つかを紹介する。この概要は特許請求の範囲に記載する内容の重要な又は必須の特徴を識別することは意図せず、特許請求の範囲に記載する内容の範囲を決定するために分離して使用されることも意図しない。本内容は、この特許の全明細書、任意の又は全ての図面、及び各請求項の適切な部分を参照することによって理解すべきである。
【0008】
図面の簡単な説明
[0008] 添付図面に関して詳細な説明を記載する。図中、参照番号の先頭の数字はその参照番号が初めて登場する図面を識別する。異なる図面内で同じ参照番号を使用することは同様の又は同一のアイテム又は特徴を示す。
【図面の簡単な説明】
【0009】
【
図1】[0009]本開示の様々な実施形態による、仮想コントローラが使用可能なサービス環境を示す単純化したシステム図である。
【
図2】[0010]実施形態による、オンラインゲームのためにクライアントマシンとサーバマシンとの間でコントローラデータをネットワーク化するための手法を実装することができる、仮想コントローラを含む環境の説明のための例を示す。
【
図3】[0011]実施形態による、仮想化された物理コントローラの実装をサポートする計算システムアーキテクチャの様々なコンポーネントを示すブロック図である。
【
図4】[0012]実施形態による、タッチ入力を受信することに応答して修正済みアクションを実行するためのプロセスを示すブロック図を示す。
【
図5】[0013]オンラインゲームのためにクライアントマシンとサーバマシンとの間でコントローラデータをネットワーク化するためのプロセスの一例を示すプロセスフロー図である。
【
図6】[0014]実施形態による、電子装置間で状態データを伝えるためのプロセスフローの一例を示す流れ図を示す。
【発明を実施するための形態】
【0010】
詳細な説明
[0015] 以下の説明では様々な実施形態を記載する。この説明では実施形態の完全な理解を与えるために特定の構成及び詳細を記載する。しかし、それらの特定の詳細なしに実施形態を実践できることも当業者に明らかになる。更に、記載する実施形態を不明瞭にしないためによく知られている特徴を省略し又は簡略化する場合がある。
【0011】
[0016] 本明細書の実施形態は、コントローラ(例えば仮想コントローラ)と共に使用するための通信プロトコルを実装するための技法を対象とする。とりわけ本技法は、使用される帯域幅を最小限に抑えながらコントローラとサーバとの間で追加の状態データを伝達することを対象とする。かかる技法では、典型的な動きデータが第1の通信チャネル上で伝達される。加えて、次のユーザのアクションに最も関係する可能性が高い状態データを識別するためにユーザの「意図」がコントローラによって明らかにされる。予測される意図に基づき、コントローラは第2の通信チャネルを介してその意図に関係する1組の状態データを伝達することができる。
【0012】
[0017] 従来のクライアント-サーバネットワーキングモデル(例えばTribes Networking Model(https://www.gamedevs.org/uploads/tribes-networking-model.pdf)に基づく公開済みのUnreal 3ネットワーキングの文献https://docs.unrealengine.com/udk/Three/NetworkingOverview.html参照)では、同期的なマルチプレーヤエクスペリエンスを一緒に経験したい1組の所与のマシンについて、「クライアント」マシンに伝送される正式な(authoritative)ネットワーク化された「状態」(例えばアバタの位置及び健康状態、ゲームのスコア等)を有する1つのマシン(「サーバ」)がある。
【0013】
[0018] 「クライアント」マシンが自らの操作するアバタを(正式な更新済みの状態をマルチプレーヤエクスペリエンスで接続されている全てのクライアントに送信する)「サーバ」上で動かすには、「動き要求」がプレーヤの入力(例えばコントローラ及びボタンの状態)から構築され、「動き要求」はクライアントのマシン上で直ちに実行される(「クライアント側予測」と呼ばれ、入力を応答的だと感じさせるように自らがローカルに操作するアバタの状態をクライアントが非正式に変更することを可能にする)。
【0014】
[0019] 「動き要求」の結果として生じる状態の一部は捕捉され(例えば動きが行われた後のアバタの終了位置)、「動き要求」と共に「サーバ」に伝送される。次いでサーバはアバタの正式な状態に対して「動き要求」を実行し、結果として生じる状態を比較する。結果として生じる状態がクライアントの送信内容と一致する場合、その動きが「許可」され、サーバが肯定応答を送信し、その動きが許可されない場合サーバはアバタの正式な状態を含む「訂正」をクライアントに送信する。
【0015】
[0020] 本開示の実施形態は、従来のシステムに勝る幾つかの利点を提供する。とりわけ上記のネットワーキングモデルの多くの標準実装では、「動き要求」の状態は基本操作(例えば動き)を行うのに十分な「生の」アナログ入力状態を含むが、任意の高度な操作を行うのに十分な生データは概して欠いている。多くの事例において、クライアントとサーバとの間で伝達される状態データは実装される「ゲームエンジン」に基づいてしばしば制限される。実例として、Unreal Engine 4の実装はアバタの加速度ベクトルを含み、かかる加速度ベクトルはアナログサムスティックの状態から導出されるが、その加速度ベクトル以外の状態はしばしば失われる。本開示の実施形態は、帯域幅限界を守りながら追加の状態データを伝達する能力を提供する。
【0016】
[0021] 多くのプラットフォームにわたるユーザに対してコントロールをアクセス可能にすることは、実装を複数のコントローラの種類に、カスタマイズ可能なコントローラに、更には仮想コントローラ(例えばコントローラに埋め込まれる又はコントローラを置換するタッチスクリーン装置)に容易に変換することができるように、典型的には任意の個別のコントローラから実装を分離することを含む。例えば物理的なボタンがない平面型画面上に実装されるゲームでは、プレーヤの意図はほぼ不定の範囲の潜在的入力に結び付けられ得る。一定のアバタのアクション及び動きをプレーヤの願望に対して応答的だと感じさせるために、例えば或る方向にどの程度強くジェスチャを行っているのかについてのプレーヤの入力(例えば自分のアバタの動きの方向と反対方向に素早くスワイプすること)は「意図」の観点から重要である。しかし、かかる情報を含む状態データはクライアント装置とサーバとの間の通信に含まれないことが多い。その場合、システムは完全な状態データを与えられた場合に可能であるやり方ではユーザ入力に対して正確に応答することができない。一部の事例では、サーバに伝送するために多岐にわたる異なる状態データがクライアントによって入手可能にされ得るが、送信可能なデータ量は帯域幅に基づいて制限される可能性がある。
【0017】
[0022] 本開示の実施形態は、ユーザ入力に対する一層の応答性を可能にする追加の状態データをクライアントからサーバに提供できる点で従来のシステムよりも有利な場合がある。実例として、伝達される追加の状態データの一部の非限定的な例は、入力ベクトル、入力偏位、入力変化、又は他の任意の適切な状態データを含み得る。
【0018】
[0023] 本開示では以下の用語を定義する。
【0019】
[0024] 入力ベクトル-2Dベクトルに変換され、有損失のアナログ値を平滑化するために使用可能な内部及び外部「デッドゾーン」と共に処理される「生」の仮想ジョイスティック入力値。
【0020】
[0025] 入力偏位-入力ベクトルの大きさ。
【0021】
[0026] 入力変化-過去の入力を覚えておくことにより、入力の一定のパターン又は急変を時間と共に追跡することができる。例えばユーザ入力の素早い変化に基づいて「Uターン」が仮想コントローラ上で検出される場合、それ自体で入力として追跡可能な入力の変化のパラメータを計算するために第1の入力及び第2の入力を追跡し使用することができる。第1の入力と第2の入力との間の変化の方向及び大きさ等、入力変化は追加のベクトルとして記憶することができる。方向以外の入力変化のパターンも追跡することができる。例えば或るボタンを押すことと別のボタンを押すこととの間の素早い変化を追加の入力として追跡することができ、又は第2のボタン押しの挙動を過去に登録したボタン入力又はボタン入力のパターンに基づいて修正することができる。
【0022】
[0027] 物理コントローラとは対照的に仮想コントローラは、その上に制御入力機構の少なくとも一部が仮想的にインスタンス化される任意の適切な電子装置であり得る。例えば仮想コントローラは、ボタン又は他の入力機構を提示するように構成されるタッチスクリーンディスプレイを含み得る。タッチスクリーンディスプレイ上でのユーザのタッチは仮想コントローラの使用中に検出され得る。検出されたユーザのタッチ位置が提示されたボタンの位置に対応する場合、そのボタンを活性化することができる。
【0023】
[0028] 追加の状態を受信することは、知覚されるユーザの意図に基づいてサーバが動きアクションを調節することを可能にする。例えば「ユーザが出っ張りにつかまりたいか?」に関する判定を行うことができる。この種のユーザの意図を判定するための従来の手法はアバタの動きの方向又は向きのベクトルのようなデータを使用し得るが、かかる手法はとりわけ状態データが失われている場合にプレーヤの意図を読み間違えることがある。本開示の脈絡ベースの手法を使用し、実際の仮想ジョイスティックの状態(例えば「プレーヤがちょうど自分の親指を出っ張りに向けてスナップしたところだ」)を使用してプレーヤが自分のアバタに出っ張りをつかませたいことを推論し、プレーヤにとってより直感的、応答的、快適で寛大な操作スキームを生み出す。
【0024】
[0029]
図1は、本開示の様々な実施形態による、仮想コントローラが使用可能なサービス環境100を示す単純化したシステム図である。サービス環境100は少なくとも1つのサーバ101を含み、少なくとも1つのサーバ101は、少なくとも1つのプロセッサ103及びサービス環境の動作を促進するための命令をソフトウェアとして記憶している非一時的メモリ105を含む。サーバ101は、典型的には個々のローカルユーザネットワーク131、141(例えば消費者又は商業ローカルエリアネットワーク、WIFIネットワーク等)と共に動作する任意の適切な数のユーザ所有クライアント装置133、143とネットワーク121(例えばインターネット又はローカルネットワーク)を介して接続される。
【0025】
[0030] サーバ101は、サーバ101とクライアント装置133、143との間のネットワークをモニタする任意の適切な数の制御サービス111、例えば独自のプロセッサ113及びメモリ115を有するネットワーク接続計算システムに接続することもできる。一部の実施形態では、サーバ101が商業規模で動作している1つ又は複数のサーバ、例えばデータセンタ又はサーバファームであり得る。クライアント装置133、143は、これだけに限定されないが消費者のパーソナルコンピュータ、ビデオゲーム機、ローカル画面上で提示するためにサーバ101からのビデオコンテンツをストリームするように動作可能なシンクライアント装置、又はスマートフォン、タブレット等のモバイル装置を含み得る。クライアント装置133、143は任意の適切な数のコントローラ、例えばコントローラ135、137、145、147に接続し得る。
【0026】
[0031] 各コントローラ(例えばコントローラ135)は、その個々のクライアント装置133と通信するための接続性ハードウェア及びプロトコルを有するハードウェア装置(例えばコンソール固有のコントローラ、横断的に対応したコントローラ、又は仮想コントローラ)であり得る。一部の実施形態によれば、コントローラ135はシンクライアント装置又はタッチスクリーン装置上で動作する仮想化されたコントローラ、例えばタッチスクリーンスマートフォン、タブレット、又はタッチ対応パネルを有するコンソール様のコントローラとすることができる。例えばクライアント装置133がシンクライアント装置又はモバイル装置である一部の更なる実施形態によれば、コントローラ135はクライアント装置に組み込まれる仮想化されたコントロールを有するタッチスクリーンであり得る。或いはクライアント装置133がシンクライアント装置でも、コントローラ135はクライアント装置と物理的に又は無線で接続するように構成されるハードウェアコントローラであり得る。一部の実施形態によれば、クライアント装置133及びサーバ101が同じハードウェア上で動作することができ、例えばクライアント装置がサーバ上の仮想インスタンスとして実行される。
【0027】
[0032] 本明細書に記載の方法は、
図1に記載したサービス環境100等のサービス環境と共にクライアント装置上で実装することができる。本方法は、画面上のアバタの向き及び動きの両方を操作する仮想コントローラの任意配置の脈絡で更に機能し得る。
【0028】
[0033] 明瞭にするために、一定数のコンポーネントを
図1に示す。但し、本開示の実施形態は各コンポーネントの複数を含み得ることが理解されよう。加えて本開示の一部の実施形態は、
図1に示したコンポーネントの全てよりも少ない又は多いコンポーネントを含み得る。加えて、
図1のコンポーネントは任意の適切な通信プロトコルを使用して任意の適切な通信媒体(インターネットを含む)によって通信し得る。
【0029】
[0034]
図2は、実施形態による、オンラインゲームのためにクライアントマシンとサーバマシンとの間でコントローラデータをネットワーク化するための手法を実装することができる、仮想コントローラを含む環境200の説明のための例を示す。この手法の例を可能にするために任意の適切なサービス環境又はシステム、例えば
図1のサービス環境100を使用することができる。
【0030】
[0035] 様々な実施形態によれば、プレーヤによるコントローラの操縦によってプレーヤ入力を受信することができる(201)。クライアント装置はゲーム内のアバタの動き又はアクションをシミュレートし始めることができ、プレーヤ入力に応答して最終位置(即ち「動き」)等、その結果生じる情報を生成する(202)。応答的なアクションをシミュレートすることと共に、システムはプレーヤ入力及び/又は入力によって指定される、その結果生じる「動き」も保存する(203)。
【0031】
[0036] 最初の動きの後に後続の動きを行うことができ、後続の動きも同じように反復的に保存される。サービスは入力の強度、例えば「送信時間」又は「send dT」をモニタし、強度が閾値未満の場合、サービスは入力のパラメータを変数、即ち保留中の動きとしてキャッシュに入れることができる(204)。後続の動きも閾値を下回った場合、保留中の動き変数を追加又は置き換えることができる。
【0032】
[0037] 入力の強度が閾値を上回る場合、サービスは古い動きがメモリ内にあるかどうかをクエリし、ある場合、サーバによる受信(208)のために古い動きを伝送する(205)。古い動きがメモリ内にない場合、サービスは保留中の動きがメモリ内にあるかどうかをクエリする。ある場合、サービスはサーバによる受信(208)のために新たな動き及び保留中の動きの両方を送信する(206)。さもなければサービスは新たな動きをサーバに送信する(207)。
【0033】
[0038] サーバによる動き命令の受信時(208)に、サーバ側のサービスがプレーヤ入力(201)を実行してプレーヤのゲーム内のアバタの正式な状態を明らかにし、その正式な状態を「動き」(即ちプレーヤ入力(201)の結果に関するクライアント生成情報(203))と比較する。正式な状態が動きと一致する場合(即ち動きが有効である場合)、サーバが「動き」を肯定応答し(209)、肯定応答の受信時にクライアント装置は最後に肯定応答された動きを保存し(211)、最後に肯定応答された動きに先行する動きをメモリから除去する(212)。
【0034】
[0039] 正式な状態がゲーム内のアバタのクライアント生成状態と一致しない場合、サーバがクライアント生成状態に対する調節を計算し(210)、クライアント装置にその調節を伝達する(213)。次いでクライアント装置は、正式な状態とクライアント生成状態とが一致するように動きをリプレイする(214)。
【0035】
[0040]
図3は、実施形態による、仮想化された物理コントローラの実装をサポートする計算システムアーキテクチャの様々なコンポーネントを示すブロック図である。このシステムアーキテクチャは、少なくとも1つのコントローラ302を含み得る。一部の実施形態では、コントローラ302が1つ又は複数のサーバ304と通信することができ、サーバ304は
図1に関して記載したサーバ101の一例であり得る。一部の実施形態では、1つ又は複数のサーバ101がコントローラ302のためのバックエンドサポートを提供し得る。例えば一部の事例では、コントローラ302によって行われるものとして記載した処理の少なくとも一部がサーバ101によって代わりに実行され得る。一部の実施形態では、コントローラ302がクライアント装置306と通信することができる。クライアント装置306は、
図1に関して上記で記載したクライアント装置133又は143の一例であり得る。一部の実施形態では、クライアント装置306が表示装置308と更に通信することができる。本明細書に記載のコンポーネントのそれぞれは、ネットワーク310上の接続によって通信することができる。
【0036】
[0041] コントローラ302は、本明細書に記載の操作の少なくとも一部を実行するように構成され、ユーザがソフトウェアアプリケーションと対話することを可能にするように構成される任意の適切な計算装置を含み得る。一部の実施形態では、コントローラはタッチスクリーン機能を有するモバイル装置(例えばスマートフォン又はタブレット)であり得る。コントローラ302は、通信インタフェース312、1つ又は複数のプロセッサ314、メモリ316、及びハードウェア318を含み得る。通信インタフェース312は、コントローラ302が他のネットワーク化された装置との間でデータを送受信することを可能にする無線及び/又は有線の通信コンポーネントを含み得る。ハードウェア318は、追加のユーザインタフェース、データ通信、又はデータ記憶ハードウェアを含み得る。例えばユーザインタフェースは、少なくとも1つの出力装置320(例えばビジュアルディスプレイ、オーディオスピーカ、及び/又は触覚フィードバック装置)及び1つ又は複数のデータ入力装置322を含み得る。データ入力装置322は、これだけに限定されないがキーパッド、キーボード、マウス装置、ジェスチャを受け付けるタッチスクリーン、マイクロホン、音声又は言語認識装置、及び他の任意の適切な装置のうちの1つ又は複数の組み合わせを含み得る。
【0037】
[0042] メモリ316は、コンピュータ記憶媒体等のコンピュータ可読媒体を使用して実装され得る。コンピュータ可読媒体は少なくとも2種類のコンピュータ可読媒体、即ちコンピュータ記憶媒体及び通信媒体を含む。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータ等の情報を記憶するための任意の方法又は技術によって実装される任意の適切な揮発性及び不揮発性の脱着可能及び脱着不能媒体を含む。コンピュータ記憶媒体は、これだけに限定されないがRAM、DRAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)又は他の光学記憶域、磁気カセット、磁気テープ、磁気ディスク記憶域又は他の磁気記憶装置、又は計算装置によるアクセスのための情報を記憶するために使用可能な他の任意の非伝送媒体を含む。対照的に、搬送波又は他の伝送機構等、通信媒体は変調データ信号内のコンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを具体化し得る。
【0038】
[0043] コントローラの1つ又は複数のプロセッサ314及びメモリ316は、1つ又は複数のソフトウェアモジュール及びデータストアを含む機能を実装することができる。かかるソフトウェアモジュールは、特定のタスクを実行し又は特定のデータ型を実装するためにプロセッサ314によって実行されるルーチン、プログラム命令、オブジェクト、及び/又はデータ構造を含み得る。より具体的には、メモリ316は、ユーザのあり得る意図を予測し、その後別の装置に提供される追加の状態データを識別するように構成されるモジュール(例えば状態選択モジュール324)を含み得る。
【0039】
[0044] 加えてメモリ316は、様々なデータストアを含み得る。例えばメモリ316は、予測モデル326並びに過去のユーザ入力/アクションデータ(例えば使用データ328)を保つことができる。この例では、予測モデルは受信したユーザ入力をユーザのあり得る意図と相関させるように訓練されている訓練済みの機械学習モデルであり得る。一部の事例では、かかる予測モデルはユーザに関する過去のユーザ入力/アクションデータに基づいて訓練され得る。
【0040】
[0045] 状態選択モジュール324は、プロセッサ314と共に、ユーザのあり得る意図を予測するように構成され得る。予測される意図に基づき、状態選択モジュール324は予測される意図に関連する追加の状態データ(例えばまだ提供されていない状態データ)を識別するように構成され得る。次いで状態選択モジュール324は、通信チャネルを介して追加の状態データを別の電子装置に伝達するように構成され得る。一部の事例では、これは初期状態データが提供されている既存の通信チャネルとは別の通信チャネルを作成することを含み得る。
【0041】
[0046] サーバ304は、サーバ304に起因する操作の少なくとも一部を実行するように構成される任意の計算装置を含み得る。サーバ304は、1つ又は複数の汎用コンピュータ、専用サーバコンピュータ(例としてPC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント式サーバ等を含む)、サーバファーム、サーバクラスタ、又は他の任意の適切な構成及び/又は組み合わせで構成され得る。サーバ304は、仮想オペレーティングシステムを実行する1つ又は複数の仮想マシン、又はコンピュータのための仮想記憶装置を保つために仮想化可能な論理記憶装置の1つ又は複数の柔軟なプール等、仮想化を伴う他の計算アーキテクチャを含み得る。例えばサーバ304は、クラウド内にホストされる仮想マシン又はソフトウェアコンテナ形式の仮想計算装置を含み得る。
【0042】
[0047] サーバ304は、1つ又は複数のプロセッサ330及びメモリ332を含み得る。コントローラの1つ又は複数のプロセッサ330及びメモリ332は、1つ又は複数のソフトウェアモジュール及びデータストアを含む機能を実装することができる。かかるソフトウェアモジュールは、特定のタスクを実行し又は特定のデータ型を実装するためにプロセッサ330によって実行されるルーチン、プログラム命令、オブジェクト、及び/又はデータ構造を含み得る。より具体的には、メモリ332は、ゲーム状態データを追跡し、コントローラ302にゲーム状態データを提供するように構成されるゲームエンジン334を含み得る。
【0043】
[0048] ゲームエンジン334は、1つ又は複数のプレーヤのアバタと仮想環境との間の対話を促進するように構成されるソフトウェア命令を含み得る。一部の事例では、ソフトウェア命令は、少なくとも入力システム336及びアクション管理モジュール338を含む幾つかの異なるコンポーネントで構成され得る。
【0044】
[0049] 入力システム336は、コントローラから1組の所定の状態データを受信し、その1組の所定の状態データを行うためのコントローラに関連するアバタのアクション(例えば動き)に変換するように構成されるゲームエンジンのコンポーネントであり得る。一部の実施形態では、1組の所定の状態データがその上で伝送され得る第1のアクティブ通信チャネル340がコントローラ302とサーバ304との間で保たれ得る。
【0045】
[0050] アクション管理モジュール338は、コントローラから追加の状態データを受信し、完了すべき1つ又は複数のアクションをその状態データに基づいて決定するように構成されるゲームエンジンのコンポーネントであり得る。追加の状態データは、第2の通信チャネル342を介してコントローラから受信され得る。一部の実施形態では、アクション管理モジュールは、入力サブシステム336によって実行されるように指示されるアクションを変える又は強化するように構成され得る。例えばアバタによって行われるアクションの種類(例えば動き、攻撃等)は入力サブシステムによって受信される1組の所定の状態データに基づいて決定され得るのに対し、そのアクションの程度又は量はアクション管理モジュール338によって受信される追加の状態データに基づいて決定され得る。
【0046】
[0051] 実例として、入力サブシステムに提供される1組の所定の状態データが、アバタによって行われる動きに起因する入力ベクトルを含む例を検討されたい。この例では、追加の状態データは方向性のパッドに加えられる圧力の量、及び/又は対話の速度を示し得る。この例では、入力サブシステムによって示される動きが、動きの速さ又は速度に基づいて調節され得る。
【0047】
[0052] クライアント装置306は、コントローラ302から入力を受信し、その入力に基づいてアクションを行うように構成される任意の適切な計算装置を含み得る。一部の実施形態では、クライアント装置はゲーム機等のゲームシステムとすることができ、かかるゲームシステムはソフトウェアアプリケーション(例えばコンピュータゲーム)内のアバタ又はキャラクタを操作するためにそのそれぞれが使用され得る入力を幾つかのコントローラから受信することができる。サーバ304内に含まれているものとして幾つかのコンポーネント(例えばゲームエンジン334)を記載するが、かかるコンポーネントは実際は代わりにクライアント装置に含まれてもよいことに留意すべきである。その場合、サーバに起因する機能がクライアント装置によって代わりに実行されてもよく、それらの事例ではクライアント装置がサーバの等価物になることを当業者なら理解されよう。
【0048】
[0053]
図4は、実施形態による、タッチ入力を受信することに応答して修正済みアクションを実行するためのプロセスを示すブロック図を示す。プロセス400は、
図3において上記で説明したシステムによって実行することができる。例えばこのプロセスの第1の部分はコントローラ(例えばコントローラ302)によって実行されてもよく、このプロセスの第2の部分はサーバ(例えばサーバ304)によって実行され得る。一部の事例では、コントローラは仮想物理コントローラが実装されているユーザ装置であり得る。
【0049】
[0054] 402で、プロセス400はユーザからタッチ入力を受信することを含み得る。タッチ入力は、ボタン又は他の入力機構の選択を含み得る。一部の事例では、タッチ入力に関する程度又は量を検出することができる。例えばユーザのタッチの速度、圧力の量、及び/又は入力機構の中心からの距離を検出することができる。
【0050】
[0055] 404で、プロセス400は1組の所定の状態データをサーバに提供することを含み得る。一部の実施形態では、1組の所定の状態データが第1の通信チャネル上でサーバに伝送され得る。例えば一部の事例では、1組の所定の状態データが方向を含む入力ベクトルを含み得る。
【0051】
[0056] 406で、プロセス400はアバタによって行われるアクションの種類を決定することを含み得る。一部の事例では、アクションの種類は受信されるタッチ入力の種類に基づいてアバタによって行われる1組の利用可能なアクションから選択され得る。一部の事例では、アクションの種類は1組の所定の状態データに依存し得る。例えば1組の所定の状態データは、移動方向を示す入力ベクトルを含み得る。この例では、アクションの種類は指示された方向への動きとして識別され得る。
【0052】
[0057] 408で、プロセス400はユーザのあり得る意図を予測することを含み得る。一部の事例では、受信されるユーザ入力に関連する要因(例えば程度又は量)に基づき、予測されるユーザのあり得る意図を明らかにすることができる。例えば幾つかの異なるユーザの意図のそれぞれは、様々な要因に関する値域に対応し得る。一部の実施形態では、ユーザのタッチ入力をユーザの意図と相関させるように訓練されている機械学習モデルに受信したタッチ入力を与えることによってユーザの意図を明らかにすることができる。一部の事例では、ユーザの意図はアクションの強化又は修正されたバージョンを行うことであり得る。一部の事例では、ユーザの意図は現在行われているアクションに続くその後のアクションを行うことであり得る。かかる事例では、その後のアクションは、受信されるユーザのタッチ入力をユーザが与えた後でそのアクションを行うユーザの傾向に基づいて予測することができる。
【0053】
[0058] 410で、プロセス400はユーザの予測される意図に関係する追加の状態データを識別することを含み得る。例えばユーザの意図が或るアクションを行う意図だと判定される場合、このプロセスはその意図に関連するアクションに関係しているものとして示される1つ又は複数のデータ値を識別することを含み得る。データ値は、404でサーバに与えられない、受信されるタッチ入力から生成される状態データを表し得る。例えばユーザによって与えられるタッチ入力を検出すると、そのタッチ入力から様々な状態データを生成することができる。かかる状態データの一部の非限定的な例は、タッチ入力によって示される方向、タッチ入力の速度、タッチ入力にわたる速さの変化(例えばスワイプ内の減速又は加速)、タッチ入力にわたる方向の変化、又はタッチ入力に関連する他の任意の適切な要因を含み得る。
【0054】
[0059] 412で、プロセス400は406で決定したアクションを修正することを含み得る。例えばプロセス400の406でアバタによって或る動きアクションが行われると決定される場合、412で、追加の受信した状態データに基づいてその動きアクションを修正することができる。例えば典型的な動きを行うと(例えば406で)決定すると、特殊な動きを代わりに行うべきであることを追加の状態データが代わりに示し得る。この例では、典型的な動きが行われる場合と同じ方向で行われながら、特殊な動きが典型的な動きを置換することができる。414で、プロセス400は修正済みアクションを実行することを含み得る。
【0055】
[0060]
図5は、オンラインゲームのためにクライアントマシンとサーバマシンとの間でコントローラデータをネットワーク化するためのプロセス500の一例を示すプロセスフロー図である。プロセス500は、
図1に関して記載したサービス環境100等のサービス環境又はシステムの制御下で実行され得る。
【0056】
[0061] 様々な実施形態によれば、プロセス500は501で、ゲームクライアント装置上のコントローラをプレーヤが操縦することによる第1のプレーヤ入力を受信することを含む。次いで502で、ゲームシステムは典型的にはサーバと最初に同期することなしに、第1のプレーヤ入力に基づくゲーム内のアバタによる第1のアクションをシミュレートする。次いで503で、システムはコントローラを操縦することによる第2のプレーヤ入力を受信することができる。
【0057】
[0062] 504で入力が既定の期間内に受信されると、506でシステムは第1の入力及び第2の入力に基づいて予測入力を生成することができる。この予測入力は、コントローラによって受信される生の入力値の素早い変化が入力のように追跡され、メモリ内に記憶される点で何れの個々の入力の結果とも異なる。次いで507で、システムは予測入力に基づくゲーム内のアバタによる第2のアクションをシミュレートすることができ、第2のアクションは第1の入力及び第2の入力を逐次的に実行することだけに基づいてシミュレートされるアクションと異なり得る。しかし504で第1の入力及び第2の入力が定められた期間内に受信されない場合、505でシステムは入力を別々に及び連続して処理することができる。
【0058】
[0063]
図6は、実施形態による、電子装置間で状態データを伝えるためのプロセスフロー600の一例を示す流れ図を示す。プロセス600は、ユーザ入力に基づいて活性化データを生成するように構成される計算装置によって実行され得る。例えばプロセス600は、
図3に関して上記で記載したコントローラ302等、ユーザとソフトウェアアプリケーションとの間の対話を促進することができるコントローラによって実行され得る。一部の実施形態では、かかるソフトウェアアプリケーションはユーザがプレーするビデオゲームであり、ビデオゲーム内のアバタを操作するためにコントローラが使用される。一部の事例では、コントローラがタッチスクリーンディスプレイを有する仮想コントローラである。
【0059】
[0064] 602で、プロセス600はユーザからタッチ入力を受信することを含む。一部の実施形態では、タッチ入力はアバタによって行われるアクションに関係する。一部の実施形態では、タッチ入力はコントローラ上に実装される1つ又は複数の入力機構に関連する。
【0060】
[0065] 604で、プロセス600は第1の1組の状態データを第1の通信チャネル上で第2の電子装置に提供することを含み、第1の1組の状態データは受信されるタッチ入力から生成される。一部の実施形態では、第1の1組の状態データが1組の所定のデータ値を含む。第2の電子装置は、サーバ計算装置又はゲーム機等の任意の適切な電子装置であり得る。
【0061】
[0066] 606で、プロセス600は受信したタッチ入力に基づいてユーザの意図を明らかにすることを含む。一部の実施形態では、ユーザの意図はアバタによって行われるアクションに対する修正を含む。一部の実施形態では、ユーザの意図はアバタによって行われるアクションの後で行われる第2のアクションを含む。一部の実施形態では、ユーザの意図はユーザ装置のユーザに関する過去の使用データに基づいて明らかにされる。一部の事例では、ユーザの意図は訓練済みの機械学習モデルにタッチ入力を与えることによって明らかにされる。
【0062】
[0067] 608で、プロセス600は明らかにしたユーザの意図に基づいて第2の1組の状態データを生成することを含む。一部の実施形態では、第2の1組の状態データはユーザの意図に基づいて選択される1組のデータ値を含む。一部の実施形態では、第2の1組の状態データは入力ベクトル、入力偏位、又は入力変化のうちの少なくとも1つの何らかの組み合わせを含む。
【0063】
[0068] 610で、プロセス600は第1の通信チャネルと異なる第2の通信チャネル上で第2の電子装置に第2の1組の状態データを提供することを含む。一部の実施形態では、第2の1組の状態データはアバタによって行われるアクション又はアクションの修正を決定するために第2の電子装置によって使用される。
【0064】
[0069] 本明細書に記載の方法は仮想コントローラ、即ち容易にカスタマイズされるコントローラボタンのレイアウトを提供するタッチスクリーン又はタッチスクリーン様の機能を使用するコントローラを対象とする。一部の実施形態によれば、タッチスクリーンは、ゲーム機、パーソナルコンピュータ、タブレット、スマートフォン、シンクライアント装置(例えば画面にプラグで接続されたUSB又はHDMI装置)等のゲーム装置とインタフェースする物理的な手持ち式コントローラの少なくとも一部である。一部の実施形態によれば、タッチスクリーンは、ゲーム機、パーソナルコンピュータ、タブレット、スマートフォン、シンクライアント装置(例えば画面にプラグで接続されたUSB又はHDMI装置)等のゲーム装置とインタフェースするコントローラの顕著な特徴である。一部の実施形態によれば、コントローラは、モバイル装置又はタブレットをゲーム機、パーソナルコンピュータ、シンクライアント装置(例えば画面にプラグで接続されたUSB又はHDMI装置)等のゲーム装置又は他の適切なゲーム装置に接続するイネーブリングソフトウェアと共にモバイル装置又はタブレットで構成される。一部の更なる実施形態によれば、タッチスクリーンがゲーム機、パーソナルコンピュータ、タブレット、又はスマートフォン等のゲーム装置のタッチ対応画面である。
【0065】
[0070] 本明細書及び図面は制限的な意味ではなく例示的な意味で考えるべきである。但し、添付の特許請求の範囲に記載の本開示のより広範な趣旨及び範囲から逸脱することなしに様々な修正及び変更を加えることができることが明白になる。
【0066】
[0071] 他の改変形態も本開示の趣旨に含まれる。従って開示した技法は様々な修正及び代替的構造に影響されやすいが、例示するその一定の実施形態が図示されており、上記で詳細に説明されている。但し、開示した特定の形式に本発明を限定することは意図せず、逆に意図は添付の特許請求の範囲の中で定める本発明の趣旨及び範囲に含まれる全ての修正、代替的構造、及び等価物を対象として含むことだと理解すべきである。
【0067】
[0072] 開示した実施形態を記載する文脈における(とりわけ添付の特許請求の範囲の文脈における)「a」及び「an」及び「the」という用語並びに同様の指示対象の使用は、本明細書で別段の指示がない限り又は文脈によって明確に矛盾しない限り単数形及び複数形の両方を含むように解釈すべきである。「comprising(~を備える)」、「having(~を有する)」、「including(~を含む)」、及び「containing(~を包含する)」という用語は、別段の定めがない限り非制限的な用語(即ち「including, but not limited to(~を含むが、それだけに限定されない)」を意味する)として解釈すべきである。「connected(接続された)」という用語は、何らかの介在物がある場合でも部分的に又は完全に含まれる、付加される、又は結合されるものとして解釈すべきである。本明細書での値域の列挙は、本明細書で別段の指示がない限りその範囲内に収まる各々の別個の値に個々に言及する簡単な方法として役立つことを単に意図し、各々の別個の値は本明細書で個々に列挙されているかのように本明細書に組み込まれる。本明細書に記載する全ての方法は、本明細書で別段の指示がない限り或いは文脈によって明確に矛盾しない限り任意の適切な順序で実行することができる。本明細書で与える任意の及び全ての例又は例示的な言語(例えば「such as(~等)」)の使用は、別様に主張されない限り、単に本発明の実施形態をより十分に解明することを意図し、本発明の範囲を制限することはない。本発明を実践するために特許請求の範囲に記載されていない任意の要素が必須であることを示すものとして、本明細書の如何なる言語も解釈すべきではない。
【0068】
[0073] 本発明を実行するための本発明者らに知られている最良の形態を含め、本開示の好ましい実施形態を本明細書に記載した。上記の説明を読んだとき、それらの好ましい実施形態の改変形態が当業者に明らかになり得る。本発明者らは当業者が必要に応じてかかる改変形態を用いることを予期し、本発明が本明細書に具体的に記載するのとは別様に実践されることを意図する。従って本発明は、適用される法律によって認められる、本明細書に添付した特許請求の範囲に列挙する内容の全ての修正及び等価物を含む。更に、本明細書で別段の指示がない限り或いは文脈によって明確に矛盾しない限り、そのあり得る全ての改変形態における上記の要素の如何なる組み合わせも本発明に包含される。
【実施例】
【0069】
[0074] 以下、本発明の態様の理解を促進するために更なる実施例を記載する。
【0070】
[0075] 実施例A.アバタによって行われる第1のアクションに関係するユーザ装置のユーザからの入力をユーザ装置において受信すること、
受信した入力から生成される第1の1組の状態データを第1の通信チャネル上で第2の電子装置に提供すること、
受信した入力に基づいて第1のアクションと異なるアバタによって行われる第2のアクションに関係するユーザの意図を明らかにすること、
ユーザの意図に基づいて、第1の1組の状態データと異なり、入手可能な全ての状態データよりも少ない状態データを含む第2の1組の状態データを生成すること、
第2の1組の状態データを第1の通信チャネルと異なる第2の通信チャネル上で第2の電子装置に提供すること、並びに
第1の及び第2の1組の状態データに基づいて第1のアクションと異なる修正済みアクションをアバタに行わせること
を含む、方法。
【0071】
[0076] 実施例B.ユーザの意図が、第1のアクションがアバタによって行われることを妨げる中断を含む、先行する実施例に記載の方法。
【0072】
[0077] 実施例C.ユーザの意図がアバタによって行われる第1のアクションに対する修正を含む、先行する実施例の何れか1つに記載の方法。
【0073】
[0078] 実施例D.ユーザの意図が、アバタによって行われる第1のアクションの後で行われる第2のアクションを含む、先行する実施例の何れか1つに記載の方法。
【0074】
[0079] 実施例E.第1の1組の状態データが1組の所定のデータ値を含む、先行する実施例の何れか1つに記載の方法。
【0075】
[0080] 実施例F.第2の1組の状態データがユーザの意図に基づいて選択される1組のデータ値を含む、先行する実施例の何れか1つに記載の方法。
【0076】
[0081] 実施例G.第2の1組の状態データが入力ベクトル、入力偏位、又は入力変化のうちの少なくとも1つの何らかの組み合わせを含む、先行する実施例の何れか1つに記載の方法。
【0077】
[0082] 実施例H.ユーザの意図がユーザ装置のユーザに関する過去の使用データに基づいて明らかにされる、先行する実施例の何れか1つに記載の方法。
【0078】
[0083] 実施例I.ユーザの意図が訓練済みの機械学習モデルに入力を与えることによって明らかにされる、先行する実施例の何れか1つに記載の方法。
【0079】
[0084] 実施例J.プロセッサと、
プロセッサによって実行されるとき、少なくとも
アバタによって行われる第1のアクションに関係するユーザ装置のユーザからの入力をユーザ装置において受信すること、
受信した入力から生成される第1の1組の状態データを第1の通信チャネル上で第2の電子装置に提供すること、
受信した入力に基づいて第1のアクションと異なるアバタによって行われる第2のアクションに関係するユーザの意図を明らかにすること、
ユーザの意図に基づいて、第1の1組の状態データと異なり、入手可能な全ての状態データよりも少ない状態データを含む第2の1組の状態データを生成すること、
第2の1組の状態データを第1の通信チャネルと異なる第2の通信チャネル上で第2の電子装置に提供すること、並びに
第1の及び第2の1組の状態データに基づいて第1のアクションと異なる修正済みアクションをアバタに行わせること
をユーザ装置に行わせる命令を含むメモリと
を含む、ユーザ装置。
【0080】
[0085] 実施例K.ユーザ装置がビデオゲーム内のアバタを操作するために使用されるコントローラを含む、先行する実施例に記載のユーザ装置。
【0081】
[0086] 実施例L.コントローラがタッチスクリーンディスプレイを有する仮想コントローラを含む、先行する実施例の何れか1つに記載のユーザ装置。
【0082】
[0087] 実施例M.入力がコントローラ上に実装される1つ又は複数の入力機構に関連する、先行する実施例の何れか1つに記載のユーザ装置。
【0083】
[0088] 実施例N.第2の電子装置がゲーム機を含む、先行する実施例の何れか1つに記載のユーザ装置。
【0084】
[0089] 実施例O.第2の電子装置がサーバ計算装置を含む、先行する実施例の何れか1つに記載のユーザ装置。
【0085】
[0090] 実施例P.第2の1組の状態データは第1のアクションを行った後で第2のアクションをアバタに行わせるために第2の電子装置によって使用される、先行する実施例の何れか1つに記載のユーザ装置。
【0086】
[0091] 実施例Q.第2の1組の状態データはアバタによって行われる第1のアクションを修正するために第2の電子装置によって使用される、先行する実施例の何れか1つに記載のユーザ装置。
【0087】
[0092] 実施例R.アバタによって行われる第1のアクションに関係するユーザ装置のユーザからの入力をユーザ装置において受信すること、
受信した入力から生成される第1の1組の状態データを第1の通信チャネル上で第2の電子装置に提供すること、
受信した入力に基づいて第1のアクションと異なるアバタによって行われる第2のアクションに関係するユーザの意図を明らかにすること、
ユーザの意図に基づいて、第1の1組の状態データと異なり、入手可能な全ての状態データよりも少ない状態データを含む第2の1組の状態データを生成すること、
第2の1組の状態データを第1の通信チャネルと異なる第2の通信チャネル上で第2の電子装置に提供すること、並びに
第1の及び第2の1組の状態データに基づいて第1のアクションと異なる修正済みアクションをアバタに行わせること
を含む行為を実行時に1つ又は複数の計算装置に集合的に行わせるコンピュータ実行可能命令を集合的に記憶する、非一時的コンピュータ可読媒体。
【0088】
[0093] 実施例S.ユーザの意図が、アバタによって行われている第1のアクションを妨げる中断、アバタによって行われる第1のアクションに対する修正、又はアバタによって行われる第1のアクションの後で行われる第2のアクションのうちの1つを含む、先行する実施例に記載の非一時的コンピュータ可読媒体。
【0089】
[0094] 実施例T.第1の1組の状態データが1組の所定のデータ値を含み、第2の1組の状態データがユーザの意図に基づいて選択される1組のデータ値を含む、先行する実施例の何れか1つに記載の非一時的コンピュータ可読媒体。
【0090】
結論
[0095] 本内容を特徴及び方法論的行為に固有の言語で記載してきたが、添付の特許請求の範囲で定めた内容は本明細書に記載した特定の特徴又は行為に必ずしも限定されないことを理解すべきである。むしろ、特定の特徴及び行為は特許請求の範囲を実装する例示的形式として開示した。
【手続補正書】
【提出日】2023-10-24
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
アバタによって行われる第1のアクションに関係するユーザ装置のユーザからの入力を前記ユーザ装置において受信すること、
前記受信した入力から生成される第1の1組の状態データを第1の通信チャネル上で第2の電子装置に提供すること、
前記受信した入力に基づいて前記第1のアクションと異なる前記アバタによって行われる第2のアクションに関係するユーザの意図を明らかにすること、
前記ユーザの意図に基づいて、前記第1の1組の状態データと異なり、入手可能な全ての状態データよりも少ない状態データを含む第2の1組の状態データを生成すること、
前記第2の1組の状態データを前記第1の通信チャネルと異なる第2の通信チャネル上で前記第2の電子装置に提供すること、並びに
前記第1の及び第2の1組の状態データに基づいて前記第1のアクションと異なる修正済みアクションを前記アバタに行わせること
を含む、方法。
【請求項2】
前記ユーザの意図が、
前記第1のアクションが前記アバタによって行われることを妨げる中断、
前記アバタによって行われる前記第1のアクションに対する修正、又は
前記アバタによって行われる前記第1のアクションの後で行われる第2のアクション
を含む、請求項1に記載の方法。
【請求項3】
前記第1の1組の状態データが1組の所定のデータ値を含む、請求項1に記載の方法。
【請求項4】
前記第2の1組の状態データが前記ユーザの意図に基づいて選択される1組のデータ値を含む、請求項1に記載の方法。
【請求項5】
前記第2の1組の状態データが入力ベクトル、入力偏位、又は入力変化のうちの少なくとも1つの何らかの組み合わせを含む、請求項4に記載の方法。
【請求項6】
前記ユーザの意図が、
前記ユーザ装置のユーザに関する過去の使用データに基づいて、又は
訓練済みの機械学習モデルに前記入力を与えることによって
明らかにされる、請求項1に記載の方法。
【請求項7】
プロセッサと、
前記プロセッサによって実行されるとき、少なくとも
アバタによって行われる第1のアクションに関係するユーザ装置のユーザからの入力を前記ユーザ装置において受信すること、
前記受信した入力から生成される第1の1組の状態データを第1の通信チャネル上で第2の電子装置に提供すること、
前記受信した入力に基づいて前記第1のアクションと異なる前記アバタによって行われる第2のアクションに関係するユーザの意図を明らかにすること、
前記ユーザの意図に基づいて、前記第1の1組の状態データと異なり、入手可能な全ての状態データよりも少ない状態データを含む第2の1組の状態データを生成すること、
前記受信した入力から生成される第2の1組の状態データを前記第1の通信チャネルと異なる第2の通信チャネル上で前記第2の電子装置に提供すること、並びに
前記第1の及び第2の1組の状態データに基づいて前記第1のアクションと異なる修正済みアクションを前記アバタに行わせること
を前記ユーザ装置に行わせる命令を含むメモリと
を含む、ユーザ装置。
【請求項8】
前記ユーザ装置がビデオゲーム内のアバタを操作するために使用されるコントローラを含む、請求項7に記載のユーザ装置。
【請求項9】
前記コントローラがタッチスクリーンディスプレイを有する仮想コントローラを含む、請求項8に記載のユーザ装置。
【請求項10】
前記入力が前記コントローラ上に実装される1つ又は複数の入力機構に関連する、請求項8に記載のユーザ装置。
【請求項11】
前記第2の電子装置がゲーム機又はサーバ計算装置を含む、請求項7に記載のユーザ装置。
【請求項12】
前記第2の1組の状態データは、
前記第1のアクションを行った後で第2のアクションを前記アバタに行わせるために、又は
前記アバタによって行われる前記第1のアクションを修正するために
前記第2の電子装置によって使用される、請求項7に記載のユーザ装置。
【請求項13】
アバタによって行われる第1のアクションに関係するユーザ装置のユーザからの入力を前記ユーザ装置において受信すること、
前記受信した入力から生成される第1の1組の状態データを第1の通信チャネル上で第2の電子装置に提供すること、
前記受信した入力に基づいて前記第1のアクションと異なる前記アバタによって行われる第2のアクションに関係するユーザの意図を明らかにすること、
前記ユーザの意図に基づいて、前記第1の1組の状態データと異なり、入手可能な全ての状態データよりも少ない状態データを含む第2の1組の状態データを生成すること、
前記第2の1組の状態データを前記第1の通信チャネルと異なる第2の通信チャネル上で前記第2の電子装置に提供すること、並びに
前記第1の及び第2の1組の状態データに基づいて前記第1のアクションと異なる修正済みアクションを前記アバタに行わせること
を含む行為を実行時に1つ又は複数の計算装置に集合的に行わせるコンピュータ実行可能命令を集合的に記憶する、非一時的コンピュータ可読媒体。
【請求項14】
前記ユーザの意図が、前記アバタによって行われている前記第1のアクションを妨げる中断、前記アバタによって行われる前記第1のアクションに対する修正、又は前記アバタによって行われる前記第1のアクションの後で行われる第2のアクションのうちの1つを含む、請求項13に記載の非一時的コンピュータ可読媒体。
【請求項15】
前記第1の1組の状態データが1組の所定のデータ値を含み、前記第2の1組の状態データが前記ユーザの意図に基づいて選択される1組のデータ値を含む、請求項13に記載の非一時的コンピュータ可読媒体。
【国際調査報告】