(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-10
(45)【発行日】2023-10-18
(54)【発明の名称】テクスチャ操作を使用するアニメーション化された顔
(51)【国際特許分類】
G06T 13/80 20110101AFI20231011BHJP
【FI】
G06T13/80 B
(21)【出願番号】P 2021577058
(86)(22)【出願日】2019-09-18
(86)【国際出願番号】 US2019051799
(87)【国際公開番号】W WO2021002882
(87)【国際公開日】2021-01-07
【審査請求日】2022-02-22
(32)【優先日】2019-07-03
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520317055
【氏名又は名称】ロブロックス・コーポレーション
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ディーパック・チャンドラセカレン
(72)【発明者】
【氏名】スティーブン・ジョーブ
(72)【発明者】
【氏名】ヴィンス・ダミリオ
【審査官】▲高▼橋 真之
(56)【参考文献】
【文献】特開2007-156945(JP,A)
【文献】特開2008-052628(JP,A)
【文献】特開2005-018305(JP,A)
【文献】米国特許出願公開第2016/0148411(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 13/80
(57)【特許請求の範囲】
【請求項1】
目、眉毛、鼻、および口のうちの少なくとも1つを含む顔の2次
元画像をアニメーション化する方法であって、前記方法が、
複数のセルを備える格子配列を定義するステップであって、前記複数のセルのうちの特定のセルが、アニメーション化されるべき前記顔の特徴に対応し、前記アニメーション化されるべき特徴が、前記目を表す第1のグラフィカル要素、前記鼻を表す第2のグラフィカル要素、および前記口を表す第3のグラフィカル要素のうちの少なくとも1つを含む、ステップと、
前記アニメーション化されるべき顔の前記特徴をアニメーション層内に配置するステップと、
前記顔の静的特徴を含む最下層の上に前記アニメーション層をオーバーレイするステップであって、前記静的特徴が、前記目の虹彩を表す第4のグラフィカル要素、および前記口の内側を表す第5のグラフィカル要素のうちの少なくとも1つを含む、ステップと、
前記アニメーション層の上に最上層をオーバーレイするステップであって、前記最上層が、前記顔に関連付けられた少なくとも1つのさらなる静的特徴を含み、前記最下層、前記最下層の上にオーバーレイされた前記アニメーション層、前記アニメーション層の上にオーバーレイされた前記最上層が、一緒に前記顔の前記2
次元画像を形成する、ステップと、
前記最下層内の前記静的特徴および前記最上層内の前記少なくとも1つのさらなる静的特徴が静止している間に、
前記アニメーション層内の前記格子配列の前記特定のセルに対応する、前記顔の前記特徴の少なくとも一部を選択的にアニメーション化するステップと
を含む、方法。
【請求項2】
前記第1のグラフィカル要素が、少なくとも部分的に透明であり、前記目を表す前記第1のグラフィカル要素が前記虹彩を表す前記第4のグラフィカル要素の上にオーバーレイされたときに、前記虹彩が前記2次元画像において見えるようにすることを可能にする、請求項1に記載の方法。
【請求項3】
前記第3のグラフィカル要素が、少なくとも部分的に透明であり、前記口を表す前記第3のグラフィカル要素が前記口の前記内側を表す前記第5のグラフィカル要素の上にオーバーレイされたときに、前記口の前記内側が前記2次元画像において見えるようにすることを可能にする、請求項1に記載の方法。
【請求項4】
前記最下層が、第1の最下層を含み、前記最上層が、第1の最上層を含み、前記顔が、第1の顔を含み、前記
2次元画像が、第1の
2次元画像を含み、前記方法が、
第2の顔の第2の
2次元画像に関連付けられた第2の最下層の上に前記アニメーション層をオーバーレイするステップと、
前記第2の最下層の上にオーバーレイされた前記アニメーション層の上に第2の最上層をオーバーレイするステップであって、前記第2の最下層、前記第2の最下層の上にオーバーレイされた前記アニメーション層、および前記アニメーション層の上にオーバーレイされた前記第2の最上層が、一緒に前記第2の顔の前記第2の
2次元画像を形成する、ステップと、
前記第2の顔の前記第2の
2次元画像をアニメーション化するために、前記格子配列の前記特定のセル内に含まれる部分のうちの少なくとも1つを選択的にアニメーション化するステップと
をさらに含む、請求項1に記載の方法。
【請求項5】
前記顔に関連付けられた前記少なくとも1つのさらなる静的特徴が、髪、帽子、眼鏡、傷跡、または眼帯のうちの1つまたは複数を含む、請求項1に記載の方法。
【請求項6】
前記顔の前記特徴の前記少なくとも一部を選択的にアニメーション化するステップが、
前記特徴の前記少なくとも一部に対応する少なくとも1つのセルの座標に従って、アニメーション化されたアニメーションのための前記特徴の前記少なくとも一部を選択するステップと、
前記少なくとも1つのセルに対応するピクセルをアルゴリズムで修正するステップと
を含む、請求項1に記載の方法。
【請求項7】
ユーザが前記顔の前記特徴を前記格子配列の対応するセルにマッピングすることを可能にするユーザインタフェース(UI)を提供するステップをさらに含む、請求項1に記載の方法。
【請求項8】
前記顔の前記特徴を前記格子配列の対応するセルにマッピングするために、自動顔追跡技法を使用するステップをさらに含む、請求項1に記載の方法。
【請求項9】
前記自動顔追跡技法が、カメラを含む、請求項8に記載の方法。
【請求項10】
目、眉毛、鼻、および口のうちの少なくとも1つを含む顔の2次
元画像をアニメーション化するシステムであって、前記システムが、
メモリと、
前記メモリに結合された処理デバイスであって、前記処理デバイスが、動作を実行するように、または実行させるように構成された、処理デバイスと
を備え、前記動作が、
複数のセルを含む格子配列を定義する動作であって、前記複数のセルのうちの特定のセルが、アニメーション化されるべき前記顔の特徴に対応し、前記アニメーション化されるべき特徴が、前記目を表す第1のグラフィカル要素、前記鼻を表す第2のグラフィカル要素、および前記口を表す第3のグラフィカル要素のうちの少なくとも1つを含む、動作と、
前記アニメーション化されるべき顔の前記特徴をアニメーション層内に配置する動作と、
前記顔の静的特徴を含む最下層の上に前記アニメーション層をオーバーレイする動作であって、前記静的特徴が、前記目の虹彩を表す第4のグラフィカル要素、および前記口の内側を表す第5のグラフィカル要素のうちの少なくとも1つを含む、動作と、
前記アニメーション層の上に最上層をオーバーレイする動作であって、前記最上層が、前記顔に関連付けられた少なくとも1つのさらなる静的特徴を含み、前記最下層、前記最下層の上にオーバーレイされた前記アニメーション層、前記アニメーション層の上にオーバーレイされた前記最上層が、一緒に前記顔の前記
2次元画像を形成する、動作と、
前記最下層内の前記静的特徴および前記最上層内の前記少なくとも1つのさらなる静的特徴が静止している間に、
前記アニメーション層内の前記格子配列の前記特定のセルに対応する、前記顔の前記特徴の少なくとも一部を選択的にアニメーション化する動作と
を含む、システム。
【請求項11】
前記第1のグラフィカル要素が、少なくとも部分的に透明であり、前記目を表す前記第1のグラフィカル要素が前記虹彩を表す前記第4のグラフィカル要素の上にオーバーレイされたときに、前記虹彩が前記2次元画像において見えるようにすることを可能にする、請求項10に記載のシステム。
【請求項12】
前記第3のグラフィカル要素が、少なくとも部分的に透明であり、前記口を表す前記第3のグラフィカル要素が前記口の前記内側を表す前記第5のグラフィカル要素の上にオーバーレイされたときに、前記口の前記内側が前記2次元画像において見えるようにすることを可能にする、請求項10に記載のシステム。
【請求項13】
前記最下層が、第1の最下層を含み、前記最上層が、第1の最上層を含み、前記顔が、第1の顔を含み、前記
2次元画像が、第1の
2次元画像を含み、前記動作が、
第2の顔の第2の
2次元画像に関連付けられた第2の最下層の上に前記アニメーション層をオーバーレイする動作と、
前記第2の最下層の上にオーバーレイされた前記アニメーション層の上に第2の最上層をオーバーレイする動作であって、前記第2の最下層、前記第2の最下層の上にオーバーレイされた前記アニメーション層、および前記アニメーション層の上にオーバーレイされた前記第2の最上層が、一緒に前記第2の顔の前記第2の
2次元画像を形成する、動作と、
前記第2の顔の前記第2の
2次元画像をアニメーション化するために、前記格子配列の前記特定のセル内に含まれる部分のうちの少なくとも1つを選択的にアニメーション化する動作と
をさらに含む、請求項10に記載のシステム。
【請求項14】
前記顔に関連付けられた前記少なくとも1つのさらなる静的特徴が、髪、帽子、眼鏡、傷跡、または眼帯のうちの1つまたは複数を含む、請求項10に記載のシステム。
【請求項15】
ユーザが前記顔の前記特徴を前記格子配列の対応するセルにマッピングすることを可能にするユーザインタフェース(UI)を提供する動作をさらに含む、請求項10に記載のシステム。
【請求項16】
命令を含む非一時的コンピュータ可読媒体であって、前記命令は、処理デバイスによる実行に応答して、前記処理デバイスに動作を実行させ、または動作が実行されるようにし、前記動作が、
複数のセルを含む格子配列を定義する動作であって、前記複数のセルのうちの特定のセルが、アニメーション化されるべき顔の特徴に対応し、前記アニメーション化されるべき特徴が、目を表す第1のグラフィカル要素、鼻を表す第2のグラフィカル要素、および口を表す第3のグラフィカル要素のうちの少なくとも1つを含む、動作と、
前記アニメーション化されるべき前記顔の前記特徴をアニメーション層内に配置する動作と、
前記顔の静的特徴を含む最下層の上に前記アニメーション層をオーバーレイする動作であって、前記静的特徴が、前記目の虹彩を表す第4のグラフィカル要素、および前記口の内側を表す第5のグラフィカル要素のうちの少なくとも1つを含む、動作と、
前記アニメーション層の上に最上層をオーバーレイする動作であって、前記最上層が、前記顔に関連付けられた少なくとも1つのさらなる静的特徴を含み、前記最下層、前記最下層の上にオーバーレイされた前記アニメーション層、前記アニメーション層の上にオーバーレイされた前記最上層が、一緒に前記顔の2次
元画像を形成する、動作と、
前記最下層内の前記静的特徴および前記最上層内の前記少なくとも1つのさらなる静的特徴が静止している間に、
前記アニメーション層内の前記格子配列の前記特定のセルに対応する、前記顔の前記特徴の少なくとも一部を選択的にアニメーション化する動作と
を含む、非一時的コンピュータ可読媒体。
【請求項17】
前記第1のグラフィカル要素が、少なくとも部分的に透明であり、前記目を表す前記第1のグラフィカル要素が前記虹彩を表す前記第4のグラフィカル要素の上にオーバーレイされたときに、前記虹彩が前記2次元画像において見えるようにすることを可能にする、請求項16に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記動作が、ユーザが前記顔の前記特徴を前記格子配列の対応するセルにマッピングすることを可能にするユーザインタフェース(UI)を提供する動作をさらに含む、請求項16に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記動作が、前記顔の前記特徴を前記格子配列の対応するセルにマッピングするために、自動顔追跡技法を使用する動作をさらに含む、請求項16に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記自動顔追跡技法が、カメラを含む、請求項19に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、一般に、コンピュータベースのゲームに関し、より詳細には、コンピュータ対応ゲームにおけるゲームキャラクタのアニメーションのための方法、システム、およびコンピュータ可読媒体に関する。
【背景技術】
【0002】
いくつかのオンラインゲームプラットフォームは、ユーザが互いに接続すること、(たとえば、ゲーム内で)互いに対話すること、および/またはネットワークを介して(たとえば、インターネット上で)互いに情報を共有することを可能にする。オンラインゲームプラットフォームのユーザは、マルチプレイヤーゲーム環境に(たとえば、仮想2次元または3次元環境に)参加すること、カスタムゲーム環境をデザインすること、キャラクタとアバターとをデザインすること、アバターを装飾すること、他のユーザと仮想アイテムを交換すること、オーディオメッセージング、ビデオメッセージング、またはテキストメッセージングを使用して他のユーザと通信することなどを行い得る。
【0003】
キャラクタのアニメーションは、より豊かなゲーム体験をプレイヤーに提供する。しかしながら、キャラクタをアニメーション化するための現在の技法の欠点に対処するために、改善が必要である。
【0004】
いくつかの実装形態は、上記の必要性に照らして着想された。
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書で説明されている実装形態は、キャラクタのアニメーションに関する。いくつかの実装形態では、目、眉毛、鼻、および口のうちの少なくとも1つを含む顔の2次元(2D)画像をアニメーション化する方法は、複数のセルを備える格子配列を定義するステップを含む。いくつかの実装形態では、複数のセルのうちの特定のセルは、アニメーション化されるべき顔の特徴に対応する。少なくともいくつかの実装形態では、アニメーション化されるべき特徴は、目を表す第1のグラフィカル要素、鼻を表す第2のグラフィカル要素、および口を表す第3のグラフィカル要素のうちの少なくとも1つを含む。
【0006】
方法は、アニメーション化されるべき顔の特徴をアニメーション層内に配置するステップと、顔の静的特徴を含む最下層の上にアニメーション層をオーバーレイするステップとをさらに含む。いくつかの実装形態では、静的特徴は、目の虹彩を表す第4のグラフィカル要素、および口の内側を表す第5のグラフィカル要素のうちの少なくとも1つを含む。
【0007】
方法は、アニメーション層の上に最上層をオーバーレイするステップをさらに含む。いくつかの実装形態では、最上層は、顔に関連付けられた少なくとも1つのさらなる静的特徴を含む。いくつかの実装形態では、最下層、最下層の上にオーバーレイされたアニメーション層、アニメーション層の上にオーバーレイされた最上層は、一緒に顔の2D画像を形成する。
【0008】
方法は、最下層内の静的特徴および最上層内の少なくとも1つのさらなる静的特徴が静止している間に、格子配列の特定のセルに対応する、顔の特徴の少なくとも一部を選択的にアニメーション化するステップをさらに含む。
【0009】
いくつかの実装形態では、第1のグラフィカル要素は、少なくとも部分的に透明であり、目を表す第1のグラフィカル要素が虹彩を表す第4のグラフィカル要素の上にオーバーレイされたときに、虹彩が2次元画像において見えるようにすることができる。いくつかの実装形態では、第3のグラフィカル要素が、少なくとも部分的に透明であり、口を表す第3のグラフィカル要素が口の内側を表す第5のグラフィカル要素の上にオーバーレイされたときに、口の内側が2次元画像において見えるようにすることができる。
【0010】
いくつかの実装形態では、最下層は、第1の最下層を含み、最上層は、第1の最上層を含み、顔は、第1の顔を含み、2D画像は、第1の2D画像を含む。いくつかの実装形態では、方法は、第2の顔の第2の2D画像に関連付けられた第2の最下層の上にアニメーション層をオーバーレイするステップと、第2の最下層の上にオーバーレイされたアニメーション層の上に第2の最上層をオーバーレイするステップとをさらに含む。いくつかの実装形態では、第2の最下層、第2の最下層の上にオーバーレイされたアニメーション層、およびアニメーション層の上にオーバーレイされた第2の最上層は、一緒に第2の顔の第2の2D画像を形成する。
【0011】
いくつかの実装形態では、方法は、第2の顔の第2の2D画像をアニメーション化するために、格子配列の特定のセル内に含まれる部分のうちの少なくとも1つを選択的にアニメーション化するステップをさらに含む。
【0012】
いくつかの実装形態では、顔に関連付けられた少なくとも1つのさらなる静的特徴は、髪、帽子、眼鏡、傷跡、または眼帯のうちの1つまたは複数を含む。いくつかの実装形態では、顔の特徴の少なくとも一部を選択的にアニメーション化するステップは、特徴の少なくとも一部に対応する少なくとも1つのセルの座標に従って、アニメーション化されたアニメーションのための特徴の少なくとも一部を選択するステップと、少なくとも1つのセルに対応するピクセルをアルゴリズムで修正するステップとを含む。
【0013】
いくつかの実装形態では、方法は、ユーザが顔の特徴を格子配列の対応するセルにマッピングすることを可能にするユーザインタフェース(UI)を提供するステップをさらに含む。いくつかの実装形態では、方法は、顔の特徴を格子配列の対応するセルにマッピングするために、自動顔追跡技法を使用するステップをさらに含む。これらの実装形態のうちの少なくともいくつかでは、自動顔追跡技法は、カメラを含む。
【0014】
いくつかの実装形態は、目、眉毛、鼻、および口のうちの少なくとも1つを含む顔の2次元(2D)画像をアニメーション化するシステムを含む。システムは、メモリと、複数のセルを含む格子配列を定義する動作を含む動作を実行するかまたは実行させるように構成された、メモリに結合された処理デバイスとを含む。いくつかの実装形態では、複数のセルのうちの特定のセルは、アニメーション化されるべき顔の特徴に対応し、アニメーション化されるべき特徴は、目を表す第1のグラフィカル要素、鼻を表す第2のグラフィカル要素、および口を表す第3のグラフィカル要素のうちの少なくとも1つを含む。
【0015】
いくつかの実装形態では、動作は、アニメーション化されるべき顔の特徴をアニメーション層内に配置する動作と、顔の静的特徴を含む最下層の上にアニメーション層をオーバーレイする動作とを含む。実装形態のうちの少なくともいくつかでは、静的特徴は、目の虹彩を表す第4のグラフィカル要素、および口の内側を表す第5のグラフィカル要素のうちの少なくとも1つを含む。
【0016】
いくつかの実装形態では、動作は、アニメーション層の上に最上層をオーバーレイする動作をさらに含む。いくつかの実装形態では、最上層は、顔に関連付けられた少なくとも1つのさらなる静的特徴を含み、最下層、最下層の上にオーバーレイされたアニメーション層、アニメーション層の上にオーバーレイされた最上層は、一緒に顔の2D画像を形成する。
【0017】
いくつかの実装形態では、動作は、最下層内の静的特徴および最上層内の少なくとも1つのさらなる静的特徴が静止している間に、格子配列の特定のセルに対応する、顔の特徴の少なくとも一部を選択的にアニメーション化する動作を含む。
【0018】
いくつかの実装形態では、第1のグラフィカル要素は、少なくとも部分的に透明であり、目を表す第1のグラフィカル要素が虹彩を表す第4のグラフィカル要素の上にオーバーレイされたときに、虹彩が2次元画像において見えるようにすることができる。
【0019】
いくつかの実装形態では、第3のグラフィカル要素は、少なくとも部分的に透明であり、口を表す第3のグラフィカル要素が口の内側を表す第5のグラフィカル要素の上にオーバーレイされたときに、口の内側が2次元画像において見えるようにすることができる。いくつかの実装形態では、最下層は、第1の最下層を含み、最上層は、第1の最上層を含み、顔は、第1の顔を含み、2D画像は、第1の2D画像を含む。
【0020】
いくつかの実装形態では、動作は、第2の顔の第2の2D画像に関連付けられた第2の最下層の上にアニメーション層をオーバーレイする動作と、第2の最下層の上にオーバーレイされたアニメーション層の上に第2の最上層をオーバーレイする動作とをさらに含む。いくつかの実装形態では、第2の最下層、第2の最下層の上にオーバーレイされたアニメーション層、およびアニメーション層の上にオーバーレイされた第2の最上層は、一緒に第2の顔の第2の2D画像を形成する。
【0021】
いくつかの実装形態では、動作は、第2の顔の第2の2D画像をアニメーション化するために、格子配列の特定のセル内に含まれる部分のうちの少なくとも1つを選択的にアニメーション化する動作を含む。いくつかの実装形態では、顔に関連付けられた少なくとも1つのさらなる静的特徴は、髪、帽子、眼鏡、傷跡、または眼帯のうちの1つまたは複数を含む。
【0022】
いくつかの実装形態では、動作は、ユーザが顔の特徴を格子配列の対応するセルにマッピングすることを可能にするユーザインタフェース(UI)を提供する動作をさらに含む。
【0023】
いくつかの実装形態は、処理デバイスによる実行に応答して、処理デバイスに、複数のセルを含む格子配列を定義する動作を含む動作を実行させるか、または実行させるようにさせる命令を含む非一時的コンピュータ可読媒体を含む。いくつかの実装形態では、複数のセルのうちの特定のセルは、アニメーション化されるべき顔の特徴に対応し、アニメーション化されるべき特徴は、目を表す第1のグラフィカル要素、鼻を表す第2のグラフィカル要素、および口を表す第3のグラフィカル要素のうちの少なくとも1つを含む。
【0024】
いくつかの実装形態では、動作は、アニメーション化されるべき顔の特徴をアニメーション層内に配置する動作と、顔の静的特徴を含む最下層の上にアニメーション層をオーバーレイする動作とを含む。これらの実装形態のうちのいくつかでは、静的特徴は、目の虹彩を表す第4のグラフィカル要素、および口の内側を表す第5のグラフィカル要素のうちの少なくとも1つを含む。
【0025】
いくつかの実装形態では、動作は、アニメーション層の上に最上層をオーバーレイする動作を含む。これらの実装形態のうちのいくつかでは、最上層は、顔に関連付けられた少なくとも1つのさらなる静的特徴を含み、最下層、最下層の上にオーバーレイされたアニメーション層、アニメーション層の上にオーバーレイされた最上層は、一緒に顔の2次元画像を形成する。
【0026】
いくつかの実装形態では、動作は、最下層内の静的特徴および最上層内の少なくとも1つのさらなる静的特徴が静止している間に、格子配列の特定のセルに対応する顔の特徴の少なくとも一部を選択的にアニメーション化する動作を含む。
【0027】
いくつかの実装形態では、第1のグラフィカル要素は、少なくとも部分的に透明であり、目を表す第1のグラフィカル要素が虹彩を表す第4のグラフィカル要素の上にオーバーレイされたときに、虹彩が2次元画像において見えるようにすることができる。
【0028】
いくつかの実装形態では、動作は、ユーザが顔の特徴を格子配列の対応するセルにマッピングすることを可能にするユーザインタフェース(UI)を提供する動作をさらに含む。いくつかの実装形態では、動作は、顔の特徴を格子配列の対応するセルにマッピングするために、自動顔追跡技法を使用する動作をさらに含む。これらの実装形態のうちのいくつかでは、自動顔追跡技法は、カメラを含む。
【図面の簡単な説明】
【0029】
【
図1】いくつかの実装形態による、オンラインゲームアニメーションのための例示的なシステムアーキテクチャの図である。
【
図2】いくつかの実装形態による、顔テンプレートを示す図である。
【
図3】いくつかの実装形態による、多層合成顔の層を示す図である。
【
図4】いくつかの実装形態による、顔をアニメーション化する方法を示すフローチャートである。
【
図5】いくつかの実装形態による、合成顔を示す図である。
【
図6】いくつかの実装形態による、アニメーション層内の特徴のアニメーションから結果として生じるアニメーションフレームのシーケンスを示す図である。
【
図7】いくつかの実装形態による、最下(下)層内の特徴のアニメーションから結果として生じるアニメーションフレームのシーケンスを示す図である。
【
図8】いくつかの実装形態による、例示的なコンピューティングデバイスを示すブロック図である。
【発明を実施するための形態】
【0030】
以下の詳細な説明では、本明細書の一部を形成する添付の図面への参照がなされる。図面では、文脈が別段の指示をしていない限り、典型的には、同様の記号は、同様の構成要素を識別する。詳細な説明、図面、および特許請求の範囲において説明されている例示的な実施形態は、限定することを意味していない。本明細書で提示されている主題の要旨または範囲から逸脱することなく、他の実施形態が利用され得、他の変更がなされ得る。本開示の態様は、本明細書で一般的に説明され、図に示されているように、多種多様な異なる構成において配置され得、置換され得、組み合わされ得、分割され得、設計され得、それらのすべてが本明細書において企図されている。
【0031】
オンラインゲームプラットフォーム(「ユーザ生成コンテンツプラットフォーム」または「ユーザ生成コンテンツシステム」とも呼ばれる)は、ユーザが互いに対話するための様々な方法を提供する。たとえば、オンラインゲームプラットフォームのユーザは、共通の目標に向かって協力すること、様々な仮想ゲームアイテムを共有すること、相互に電子メッセージを送信することなどを行い得る。オンラインゲームプラットフォームのユーザは、仮想キャラクタとしてゲームに参加し、ゲーム固有の役割を演じ得る。たとえば、仮想キャラクタは、各キャラクタに特定の役割が割り当てられ、各キャラクタが役割に対応する関連パラメータ、たとえば、衣類、防具、武器、スキルなどを有するチームまたはマルチプレイヤー環境の一部であり得る。別の例では、仮想キャラクタは、たとえば、単一のプレイヤーがゲームの一部である場合、コンピュータで生成されたキャラクタによって参加され得る。
【0032】
オンラインゲームプラットフォームはまた、プラットフォームのユーザが新しいキャラクタおよびアバターを作成し、アニメーション化することを可能にし得る。たとえば、オンラインゲームプラットフォームのユーザは、新しいキャラクタを作成し、デザインし、カスタマイズすることが可能であり得る。
【0033】
いくつかの実装形態では、アニメーションは、歩く、走る、ジャンプする、踊る、戦う、剣などの武器を振り回すなどの動きをシミュレートするために、1つまたは複数の身体部分を動かすキャラクタを含み得る。いくつかの実装形態では、キャラクタは、キャラクタの身体の一部または全体が動く顔の表情を生成し得る。アニメーションは、様々な動き、たとえば、優雅な動き、戦士のような動き、バレエのような動きなどに対応し得、人気のある実在のキャラクタおよび架空のキャラクタの動きを模倣し得る。
【0034】
ユーザがキャラクタを作成し、アニメーション化することを可能にするために、特に、素人のユーザにとって学習および使用するのが容易なアニメーションの方法が提供され得る。
【0035】
異なる顔の特徴を有する画像の複数の層をオーバーレイすることによって、目、眉毛、鼻、口などを有する顔の2次元(2D)画像がユーザによって作成され得、アニメーションを作成するために層のうちのいくつかだけが変更されるようなテクスチャ操作によってアニメーションが提供され得る。
【0036】
図1は、本開示のいくつかの実装形態による、例示的なシステムアーキテクチャ100を示す。
図1および他の図は、同様の要素を識別するために同様の参照番号を使用する。「110」などの参照番号の後の文字は、テキストがその特定の参照番号を有する要素を特に指していることを示す。「110」などの後続の文字のないテキスト中の参照番号は、その参照番号を有する図中の要素のうちのいずれかまたはすべてを指す(たとえば、テキスト中の「110」は、図中の「110a」、「110b」、および/または「110n」を指す)。
【0037】
システムアーキテクチャ(本明細書では「システム」とも呼ばれる)は、オンラインゲームサーバ102と、データストア120と、クライアントデバイス110a、110b、および110n(本明細書では総称して「クライアントデバイス110」と呼ばれる)とを含む。ゲーミングサーバ102、データストア120、およびクライアントデバイス110は、ネットワーク122を介して結合される。
【0038】
オンラインゲームサーバ102は、とりわけ、ゲームエンジン104と、1つまたは複数のゲーム106と、グラフィックエンジン108とを含むことができる。クライアントデバイス110は、ゲームアプリケーション112と、入力/出力(I/O)インタフェース114(たとえば、入力/出力デバイス)を含むことができる。入力/出力デバイスは、マイクロフォン、スピーカ、ヘッドフォン、ディスプレイデバイス、マウス、キーボード、ゲームコントローラ、タッチスクリーン、仮想現実コンソールなどのうちの1つまたは複数を含むことができる。
【0039】
システムアーキテクチャ100は、例示のために提供されている。異なる実装形態では、システムアーキテクチャ100は、
図1に示されているものと同じまたは異なる方法で構成された、同じ、より少ない、より多い、または異なる要素を含み得る。
【0040】
いくつかの実装形態では、ネットワーク122は、公衆ネットワーク(たとえば、インターネット)、プライベートネットワーク(たとえば、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)、有線ネットワーク(たとえば、イーサネットネットワーク)、ワイヤレスネットワーク(たとえば、802.11ネットワーク、Wi-Fi(登録商標)ネットワーク、またはワイヤレスLAN(WLAN))、セルラーネットワーク(たとえば、5Gネットワーク、ロングタームエボリューション(LTE)ネットワークなど)、ルータ、ハブ、スイッチ、サーバコンピュータ、またはそれらの組合せを含み得る。
【0041】
いくつかの実装形態では、データストア120は、非一時的なコンピュータ可読メモリ(たとえば、ランダムアクセスメモリ)、キャッシュ、ドライブ(たとえば、ハードドライブ)、フラッシュドライブ、データベースシステム、またはデータを記憶することができる別のタイプの構成要素もしくはデバイスであり得る。データストア120は、複数のコンピューティングデバイス(たとえば、複数のサーバコンピュータ)にもまたがり得る複数のストレージ構成要素(たとえば、複数のドライブまたは複数のデータベース)も含み得る。
【0042】
いくつかの実装形態では、オンラインゲームサーバ102は、1つまたは複数のコンピューティングデバイス(たとえば、クラウドコンピューティングシステム、ラックマウントサーバ、サーバコンピュータ、物理サーバのクラスタなど)を有するサーバを含むことができる。いくつかの実装形態では、オンラインゲームサーバ102は、独立したシステムであり得、複数のサーバを含み得、または別のシステムもしくはサーバの一部であり得る。
【0043】
いくつかの実装形態では、オンラインゲームサーバ102は、1つまたは複数のコンピューティングデバイス(ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータなど)、データストア(たとえば、ハードディスク、メモリ、データベース)、ネットワーク、ソフトウェア構成要素、および/またはオンラインゲームサーバ102上で動作を実行し、ユーザにオンラインゲームサーバ102へのアクセスを提供するために使用され得るハードウェア構成要素を含み得る。オンラインゲームサーバ102は、オンラインゲームサーバ102によって提供されるコンテンツへのアクセスをユーザに提供するために使用され得るウェブサイト(たとえば、ウェブページ)またはアプリケーションバックエンドソフトウェアも含み得る。たとえば、ユーザは、クライアントデバイス110上のゲームアプリケーション112を使用してオンラインゲームサーバ102にアクセスし得る。
【0044】
いくつかの実装形態では、オンラインゲームサーバ102は、ユーザ間の接続を提供する一種のソーシャルネットワーク、またはユーザ(たとえば、エンドユーザまたは消費者)がオンラインゲームサーバ102上の他のユーザと通信することを可能にする一種のユーザ生成コンテンツシステムであり得、通信は、音声チャット(たとえば、同期および/または非同期の音声通信)、ビデオチャット(たとえば、同期および/または非同期のビデオ通信)、またはテキストチャット(たとえば、同期および/または非同期のテキストベースの通信)を含み得る。本開示のいくつかの実装形態では、「ユーザ」は、単一の個人として表され得る。しかしながら、本開示の他の実装形態は、ユーザのセットまたは自動化されたソースによって制御されるエンティティである「ユーザ」(たとえば、作成ユーザ)を包含する。たとえば、ユーザ生成コンテンツシステムにおけるコミュニティまたはグループとして連合された個々のユーザのセットは、「ユーザ」と見なされ得る。
【0045】
いくつかの実装形態では、オンラインゲームサーバ102は、仮想ゲームサーバであり得る。たとえば、ゲームサーバは、ネットワーク122を介してクライアントデバイス110を使用してゲームにアクセスまたはゲームと対話し得るユーザのコミュニティにシングルプレイヤーゲームまたはマルチプレイヤーゲームを提供し得る。いくつかの実装形態では、ゲーム(本明細書では「ビデオゲーム」、「オンラインゲーム」、または「仮想ゲーム」とも呼ばれる)は、たとえば、2次元(2D)ゲーム、3次元(3D)ゲーム(たとえば、3Dユーザ生成ゲーム)、仮想現実(VR)ゲーム、または拡張現実(AR)ゲームであり得る。いくつかの実装形態では、ユーザは、他のユーザとのゲームプレイに参加し得る。いくつかの実装形態では、ゲームは、ゲームの他のユーザとリアルタイムでプレイされ得る。
【0046】
いくつかの実装形態では、ゲームプレイは、ゲーム(たとえば、106)内のクライアントデバイス(たとえば、110)を使用する1人または複数のプレイヤーの対話、またはクライアントデバイス110のディスプレイまたは他のユーザインタフェース(たとえば、114)における対話の提示を指し得る。
【0047】
いくつかの実装形態では、ゲーム106は、ゲームコンテンツ(たとえば、デジタルメディアアイテム)をエンティティに提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して実行またはロードされ得る電子ファイルを含むことができる。いくつかの実装形態では、ゲームアプリケーション112が実行され得、ゲーム106がゲームエンジン104に関連してレンダリングされ得る。いくつかの実装形態では、ゲーム106は、共通のルールのセットまたは共通の目標を有し得、ゲーム106の環境は、共通のルールのセットまたは共通の目標を共有する。いくつかの実装形態では、異なるゲームは、互いに異なるルールまたは目標を有し得る。
【0048】
いくつかの実装形態では、ゲームは、複数の環境がリンクされ得る1つまたは複数の環境(本明細書では「ゲーム環境」または「仮想環境」とも呼ばれる)を有し得る。環境の例は、3次元(3D)環境であり得る。ゲーム106の1つまたは複数の環境は、本明細書では、集合的に「世界」または「ゲーム世界」または「仮想世界」または「ユニバース」と呼ばれる場合がある。世界の例は、ゲーム106の3D世界であり得る。たとえば、ユーザは、別のユーザによって作成された別の仮想環境にリンクされた仮想環境を構築し得る。仮想ゲームのキャラクタは、隣接する仮想環境に入るために仮想境界を越え得る。
【0049】
3D環境または3D世界は、ゲームコンテンツを表す幾何学的データの3次元表現を提供する(または幾何学的データの3D表現が使用されているかどうかにかかわらず、少なくともゲームコンテンツを3Dコンテンツとして現れるように提示する)グラフィックを使用することが留意され得る。2D環境または2D世界は、ゲームコンテンツを表す幾何学的データの2次元表現を提供するグラフィックを使用する。
【0050】
いくつかの実装形態では、オンラインゲームサーバ102は、1つまたは複数のゲーム106をホストすることができ、ユーザがクライアントデバイス110のゲームアプリケーション112を使用してゲーム106と対話することを許可することができる。オンラインゲームサーバ102のユーザは、ゲーム106をプレイし得、ゲーム106を作成し得、ゲーム106と対話し得、ゲーム106を構築し得、他のユーザと通信し得、ならびに/またはゲーム106のオブジェクト(たとえば、本明細書では、「アイテム」または「ゲームオブジェクト」、または「仮想ゲームアイテム」とも呼ばれる)を作成および構築し得る。たとえば、ユーザ生成仮想アイテムを生成する際に、ユーザは、とりわけ、キャラクタ、キャラクタのためのアニメーション、キャラクタのための装飾、インタラクティブゲーム用の1つまたは複数の仮想環境、またはゲーム106において使用されるビルド構造を作成し得る。いくつかの実装形態では、ユーザは、プラットフォーム内通貨(たとえば、仮想通貨)などのゲーム仮想ゲームオブジェクトを、オンラインゲームサーバ102の他のユーザと購入、販売、または交換し得る。いくつかの実装形態では、オンラインゲームサーバ102は、ゲームコンテンツをゲームアプリケーション(たとえば、112)に送信し得る。いくつかの実装形態では、ゲームコンテンツ(本明細書では「コンテンツ」とも呼ばれる)は、オンラインゲームサーバ102またはゲームアプリケーションに関連する任意のデータまたはソフトウェア命令(たとえば、ゲームオブジェクト、ゲーム、ユーザ情報、ビデオ、画像、コマンド、メディアアイテムなど)を指す場合がある。いくつかの実装形態では、ゲームオブジェクト(たとえば、本明細書では「アイテム」または「オブジェクト」または「仮想ゲームアイテム」とも呼ばれる)は、オンラインゲームサーバ102のゲームアプリケーション106またはクライアントデバイス110のゲームアプリケーション112において使用、作成、共有、または他の方法で描写されるオブジェクトを指す場合がある。たとえば、ゲームオブジェクトは、部品、モデル、キャラクタ、またはそれらの構成要素(顔、腕、唇など)、ツール、武器、衣類、建物、車両、通貨、植物相、動物相、前述の構成要素(たとえば、建物の窓)などを含み得る。
【0051】
ゲーム106をホストするオンラインゲームサーバ102は、例示の目的のために提供されていることが留意され得る。いくつかの実装形態では、オンラインゲームサーバ102は、1人のユーザから1人または複数の他のユーザへの通信メッセージを含むことができる1つまたは複数のメディアアイテムをホストし得る。メディアアイテムは、限定はしないが、デジタルビデオ、デジタルムービー、デジタル写真、デジタル音楽、オーディオコンテンツ、メロディ、ウェブサイトコンテンツ、ソーシャルメディアアップデート、電子書籍、電子雑誌、電子新聞、デジタルオーディオブック、電子ジャーナル、ウェブログ、リアルシンプルシンジケーション(real simple syndication)(RSS)フィード、電子コミックブック、ソフトウェアアプリケーションなどを含むことができる。いくつかの実装形態では、メディアアイテムは、デジタルメディアアイテムをエンティティに提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して実行またはロードされ得る電子ファイルであり得る。
【0052】
いくつかの実装形態では、ゲーム106は、特定のユーザもしくはユーザの特定のグループに関連付けられ得るか、またはオンラインゲームサーバ102のユーザに広く利用可能にされ得る(たとえば、パブリックゲーム)。いくつかの実装形態では、オンラインゲームサーバ102が1つまたは複数のゲーム106を特定のユーザまたはユーザのグループと関連付ける場合、オンラインゲームサーバ102は、ユーザアカウント情報(たとえば、ユーザ名およびパスワードなどのユーザアカウント識別子)を使用して、特定のユーザをゲーム102と関連付け得る。
【0053】
いくつかの実装形態では、オンラインゲームサーバ120またはクライアントデバイス110は、ゲームエンジン104またはゲームアプリケーション112を含み得る。いくつかの実装形態では、ゲームエンジン104は、ゲーム106の開発または実行のために使用され得る。たとえば、ゲームエンジン104は、数ある機能の中でも、2D、3D、VR、もしくはARグラフィックのためのレンダリングエンジン(「レンダラー」)、物理エンジン、衝突検出エンジン(および衝突応答)、サウンドエンジン、スクリプト機能、アニメーションエンジン、人工知能エンジン、ネットワーキング機能、ストリーミング機能、メモリ管理機能、スレッド機能、シーングラフ機能、またはシネマティクス用のビデオサポートなどの機能を含み得る。ゲームエンジン104の構成要素は、ゲームを計算およびレンダリングするのを助けるコマンド(たとえば、レンダリングコマンド、衝突コマンド、アニメーションコマンド、物理コマンドなど)を生成し得る。いくつかの実装形態では、クライアントデバイス110のゲームアプリケーション112は、それぞれ、独立して、オンラインゲームサーバ102のゲームエンジン104と協働して、またはその両方を組み合わせて動作し得る。
【0054】
いくつかの実装形態では、オンラインゲームサーバ102とクライアントデバイス110の両方は、ゲームエンジン(それぞれ、104および112)を実行し得る。ゲームエンジン104を使用するオンラインゲームサーバ102は、いくつかもしくはすべてのゲームエンジン機能(たとえば、物理コマンド、レンダリングコマンドなどを生成する)を実行するか、またはいくつかもしくはすべてのゲームエンジン機能をクライアントデバイス110のゲームエンジン104にオフロードし得る。いくつかの実装形態では、各ゲーム106は、オンラインゲームサーバ102において実行されるゲームエンジン機能と、クライアントデバイス110において実行されるゲームエンジン機能との間に異なる比率を有し得る。たとえば、オンラインゲームサーバ102のゲームエンジン104は、少なくとも2つのゲームオブジェクト間に衝突が存在する場合、物理コマンドを生成するために使用され得、一方、追加のゲームエンジン機能(たとえば、レンダリングコマンドを生成する)は、クライアントデバイス110にオフロードされ得る。いくつかの実装形態では、オンラインゲームサーバ102およびクライアントデバイス110において実行されるゲームエンジン機能の比率は、ゲームプレイ条件に基づいて(たとえば、動的に)変更され得る。たとえば、特定のゲーム106のゲームプレイに参加するユーザの数がしきい値数を超える場合、オンラインゲームサーバ102は、クライアントデバイス110によって以前に実行された1つまたは複数のゲームエンジン機能を実行し得る。
【0055】
たとえば、ユーザは、クライアントデバイス110においてゲーム106をプレイしている場合があり、制御命令(たとえば、右、左、上、下、ユーザ選択、またはキャラクタの位置および速度情報などのユーザ入力)をオンラインゲームサーバ102に送信し得る。クライアントデバイス110から制御命令を受信した後、オンラインゲームサーバ102は、制御命令に基づいて、ゲームプレイ命令(たとえば、グループゲームプレイに参加しているキャラクタの位置および速度情報、またはレンダリングコマンド、衝突コマンドなどのコマンド)をクライアントデバイス110に送信し得る。たとえば、オンラインゲームサーバ102は、クライアントデバイス110のためのゲームプレイ命令を生成するために、(たとえば、ゲームエンジン104を使用して)制御命令に対して1つまたは複数の論理演算を実行し得る。他の例では、オンラインゲームサーバ102は、1つのクライアントデバイス110からの制御命令のうちの1つまたは複数を、ゲーム106に参加している他のクライアントデバイスに(たとえば、クライアントデバイス110aからクライアントデバイス110bに)渡し得る。クライアントデバイス110は、ゲームプレイ命令を使用し、クライアントデバイス110のディスプレイ上に提示するためにゲームプレイをレンダリングし得る。
【0056】
いくつかの実装形態では、制御命令は、ユーザのキャラクタのゲーム内のアクションを示す命令を指す場合がある。たとえば、制御命令は、右、左、上、下、ユーザ選択、ジャイロスコープの位置および方位データ、力センサデータなどの、ゲーム内のアクションを制御するユーザ入力を含み得る。制御命令は、キャラクタの位置および速度情報を含み得る。いくつかの実装形態では、制御命令は、オンラインゲームサーバ120に直接送信される。他の実装形態では、制御命令は、クライアントデバイス110から別のクライアントデバイスに(たとえば、クライアントデバイス110bからクライアントデバイス110nに)送信され得、他のクライアントデバイスは、ローカルゲームエンジン104を使用してゲームプレイ命令を生成する。制御命令は、オーディオデバイス(たとえば、スピーカ、ヘッドフォンなど)において別のユーザからの音声通信メッセージまたは他の音、たとえば、本明細書で説明されているようにオーディオ空間化技法を使用して生成された音声通信または他の音を再生する命令を含み得る。
【0057】
いくつかの実装形態では、ゲームプレイ命令は、クライアントデバイス110がマルチプレイヤーゲームなどのゲームのゲームプレイをレンダリングすることを可能にする命令を指す場合がある。ゲームプレイ命令は、ユーザ入力(たとえば、制御命令)、キャラクタの位置および速度情報、またはコマンド(たとえば、物理コマンド、レンダリングコマンド、衝突コマンドなど)のうちの1つまたは複数を含み得る。
【0058】
いくつかの実装形態では、キャラクタ(または一般にゲームオブジェクト)は、編集する際にユーザを支援するために自動的に結合する、その1つまたは複数がユーザによって選択され得る構成要素から構築される。1つまたは複数のキャラクタ(本明細書では、「アバター」または「モデル」とも呼ばれる)は、ユーザに関連付けられ得、ユーザは、ゲーム106とのユーザの対話を容易にするためにキャラクタを制御し得る。いくつかの実装形態では、キャラクタは、身体部分(たとえば、髪、腕、脚など)の構成要素および付属品(たとえば、Tシャツ、眼鏡、装飾画像、ツールなど)などの構成要素を含み得る。いくつかの実装形態では、カスタマイズ可能なキャラクタの身体部分は、数ある中で、頭部タイプ、身体部分タイプ(腕、脚、胴体、および手)、顔タイプ、髪タイプ、および皮膚タイプを含む。いくつかの実装形態では、カスタマイズ可能な付属品は、衣類(たとえば、シャツ、パンツ、帽子、靴、眼鏡など)、武器、または他のツールを含む。いくつかの実装形態では、ユーザは、キャラクタのスケール(たとえば、高さ、幅、または奥行き)またはキャラクタの構成要素のスケールも制御し得る。いくつかの実装形態では、ユーザは、キャラクタのプロポーション(たとえば、がっしりした(blocky)、解剖学的など)を制御し得る。いくつかの実装形態では、キャラクタは、キャラクタゲームオブジェクト(たとえば、身体部分など)含まない場合があるが、ユーザは、ゲーム(たとえば、レンダリングされたキャラクタゲームオブジェクトが存在しないが、ユーザがゲーム内のアクションを制御するためにキャラクタを依然として制御するパズルゲーム)とのユーザの対話を容易にするために、キャラクタを制御し得ることが留意され得る。
【0059】
いくつかの実装形態では、身体部分などの構成要素は、ブロック、円柱、球などのプリミティブな幾何学的形状、またはくさび、トーラス、チューブ、チャネルなどのなにか他のプリミティブな形状であり得る。いくつかの実装形態では、クリエータモジュールは、オンラインゲームサーバ102の他のユーザによる閲覧または使用のためにユーザのキャラクタを公開し得る。いくつかの実装形態では、キャラクタ、他のゲームオブジェクト、ゲーム106、またはゲーム環境を作成すること、変更すること、またはカスタマイズすることは、I/Oインタフェース(たとえば、開発者インタフェース)を使用して、スクリプトの有無を問わず(またはアプリケーションプログラミングインタフェース(API)の有無を問わず)、ユーザによって実行され得る。例示の目的のために、キャラクタは、人型の形状を有するものとして説明されていることが留意され得る。キャラクタは、車両、動物、無生物、または他の創造的な形態などの任意の形態を有し得ることがさらに留意され得る。
【0060】
いくつかの実装形態では、オンラインゲームサーバ102は、ユーザによって作成されたキャラクタをデータストア120内に記憶し得る。いくつかの実装形態では、オンラインゲームサーバ102は、ユーザに提示され得るキャラクタカタログおよびゲームカタログを維持する。いくつかの実装形態では、ゲームカタログは、オンラインゲームサーバ102上に記憶されたゲームの画像を含む。それに加えて、ユーザは、選択されたゲームに参加するために、キャラクタカタログからキャラクタ(たとえば、ユーザまたは他のユーザによって作成されたキャラクタ)を選択し得る。キャラクタカタログは、オンラインゲームサーバ102上に記憶されたキャラクタの画像を含む。いくつかの実装形態では、キャラクタカタログ内のキャラクタのうちの1つまたは複数は、ユーザによって作成またはカスタマイズされている場合がある。いくつかの実装形態では、選択されたキャラクタは、キャラクタの構成要素のうちの1つまたは複数を定義するキャラクタ設定を有し得る。
【0061】
いくつかの実装形態では、ユーザのキャラクタは、構成要素の構成を含むことができ、構成要素の構成および外観、ならびにより一般的にはキャラクタの外観は、キャラクタ設定によって定義され得る。いくつかの実装形態では、ユーザのキャラクタのキャラクタ設定は、少なくとも部分的にユーザによって選択され得る。他の実装形態では、ユーザは、デフォルトのキャラクタ設定または他のユーザによって選択されたキャラクタ設定を用いてキャラクタを選択し得る。たとえば、ユーザは、事前定義されたキャラクタ設定を有するキャラクタカタログからデフォルトのキャラクタを選択し得、ユーザは、キャラクタ設定のうちのいくつかを変更する(たとえば、カスタマイズされたロゴを有するシャツを追加する)ことによって、デフォルトのキャラクタをさらにカスタマイズし得る。キャラクタ設定は、オンラインゲームサーバ102によって特定のキャラクタに関連付けられ得る。
【0062】
いくつかの実装形態では、クライアントデバイス110は、各々、パーソナルコンピュータ(PC)、モバイルデバイス(たとえば、ラップトップ、携帯電話、スマートフォン、タブレットコンピュータ、またはネットブックコンピュータ)、ネットワーク接続テレビ、ゲームコンソールなどを含み得る。いくつかの実装形態では、クライアントデバイス110は、「ユーザデバイス」と呼ばれる場合もある。いくつかの実装形態では、1つまたは複数のクライアントデバイス110は、任意の所与の瞬間にオンラインゲームサーバ102に接続し得る。クライアントデバイス110の数は、例示として提供されていることが留意され得る。いくつかの実装形態では、任意の数のクライアントデバイス110が使用され得る。
【0063】
いくつかの実装形態では、各クライアントデバイス110は、それぞれ、ゲームアプリケーション112のインスタンスを含み得る。一実装形態では、ゲームアプリケーション112は、ユーザが、オンラインゲームサーバ102によってホストされる仮想ゲーム内の仮想キャラクタを制御すること、またはゲーム106、画像、ビデオアイテム、ウェブページ、文書などのコンテンツを閲覧もしくはアップロードすることなど、オンラインゲームサーバ102を使用し、オンラインゲームサーバ102と対話することを許可し得る。一例では、ゲームアプリケーションは、ウェブサーバによって提供されるコンテンツ(たとえば、仮想環境内の仮想キャラクタなど)にアクセスすること、そのコンテンツを検索すること、提示すること、またはナビゲートすることができるウェブアプリケーション(たとえば、ウェブブラウザと協働して動作するアプリケーション)であり得る。別の例では、ゲームアプリケーションは、クライアントデバイス110にローカルにインストールおよび実行され、ユーザがオンラインゲームサーバ102と対話することを可能にするネイティブアプリケーション(たとえば、モバイルアプリケーション、アプリ、またはゲームプログラム)であり得る。ゲームアプリケーションは、コンテンツ(たとえば、ウェブページ、メディアビューア)をユーザに対してレンダリング、表示、または提示し得る。一実装形態では、ゲームアプリケーションは、ウェブページに埋め込まれる埋込み型メディアプレイヤー(たとえば、Flash(登録商標)プレイヤー)も含み得る。
【0064】
本開示の態様によれば、ゲームアプリケーションは、ユーザが、コンテンツを構築し、作成し、編集し、オンラインゲームサーバ102にアップロードし、ならびにオンラインゲームサーバ102と対話する(たとえば、オンラインゲームサーバ102によってホストされるゲーム106をプレイする)ためのオンラインゲームサーバアプリケーションであり得る。したがって、ゲームアプリケーションは、オンラインゲームサーバ102によってクライアントデバイス110に提供され得る。別の例では、ゲームアプリケーションは、サーバからダウンロードされるアプリケーションであり得る。
【0065】
いくつかの実装形態では、ユーザは、ゲームアプリケーションを介してオンラインゲームサーバ102にログインし得る。ユーザは、ユーザアカウント情報(たとえば、ユーザ名およびパスワード)を提供することによってユーザアカウントにアクセスし得、ユーザアカウントは、オンラインゲームサーバ102の1つまたは複数のゲーム106に参加するために利用可能な1つまたは複数のキャラクタに関連付けられる。
【0066】
一般に、オンラインゲームサーバ102によって実行されるものとして1つの実装形態で説明されている機能は、適切であれば、他の実装形態では、クライアントデバイス110またはサーバによって実行もされ得る。それに加えて、特定の構成要素に帰属する機能は、一緒に動作する異なるまたは複数の構成要素によって実行され得る。オンラインゲームサーバ102は、適切なアプリケーションプログラミングインタフェース(API)を介して他のシステムまたはデバイスに提供されるサービスとしてアクセスもされ得、したがって、ウェブサイトにおける使用に限定されない。
【0067】
いくつかの実装形態では、オンラインゲームサーバ102は、グラフィックエンジン108を含み得る。いくつかの実装形態では、グラフィックエンジン108は、オンラインゲームサーバ102がグラフィックとアニメーション能力とを提供することを許可するシステム、アプリケーション、またはモジュールであり得る。いくつかの実装形態では、グラフィックエンジン108は、
図4に示されているフローチャートに関連して以下に説明されている動作のうちの1つまたは複数を実行し得る。
【0068】
図2は、いくつかの実装形態による、顔テンプレート200を示す図である。
【0069】
いくつかの実装形態では、顔テンプレート200は、オンラインゲームサーバ120上(たとえば、データストア120内)またはクライアントデバイス110のうちの1つまたは複数において記憶されたグラフィカルテンプレートであり得る。いくつかの実装形態では、顔テンプレート200は、ゲームエンジン104によってクライアントデバイス110のうちのいずれか上でレンダリングされ得る。
いくつかの実装形態では、顔テンプレート200は、たとえば、ユーザが顔の異なる特徴を閲覧および/または設計することを可能にするグラフィカルユーザインタフェースを介してユーザに提供され得る。いくつかの実装形態では、顔テンプレートは、いくつかの領域、たとえば、左眉毛210、右眉毛220、左目230、右目240、および口250を含む。顔テンプレート200は、グラフィカル画像を設計するためにユーザによってガイドとして使用するために提供され得る。いくつかの実装形態では、顔テンプレート200は、顔テンプレート200内に格子配列を定義するために利用され得るグリッド線を含み得る。いくつかの実装形態では、格子配列は、非破壊的な方法において1つまたは複数の点(たとえば、一緒に顔の特徴を定義する点)の変形および操作を可能にする。いくつかの実装形態では、顔テンプレート200は、顔テンプレート内の点および領域の正確な定義を可能にする参照座標を含み得る。
【0070】
いくつかの実装形態では、1つまたは複数の追加の特徴が顔テンプレート内に含まれ得る。たとえば、鳥のような顔のための顔テンプレート内の適切な位置にくちばしが含まれ得、哺乳類のような頭部のためのテンプレート内には角が含まれ得、ロボットのような顔については、アンテナおよび同様の特徴が含まれ得る。他の顔の特徴、たとえば、より多いまたはより少ない数の目、鼻、より多いまたはより少ない数の耳なども、適切な顔テンプレートを使用して定義され得る。いくつかの実装形態では、顔テンプレートは、
図2において示されている領域をさらに細分化することによって、より多くの領域を定義し得、たとえば、左目230は、上目領域と下目領域とに細分され得、口250は、上唇領域と下唇領域とに細分化され得る、などである。いくつかの実装形態では、顔テンプレート内の特徴は、非対称の特徴、たとえば、軸外の目、
図2に示されているような2つの目の代わりに顔の片側における単一の目、顔の左と右のサイズが異なるサイズの特徴などであり得る。
【0071】
図3は、いくつかの実装形態による、多層合成顔の層の例を示す。異なる実装形態では、複数の層は、層のうちの1つまたは複数をアニメーション化することによって、アニメーションのために使用され得る合成顔を作成するために利用され得る。
【0072】
いくつかの実装形態では、多層合成顔の複数の層は、メモリ内(たとえば、データストア120内またはクライアントデバイス110上)に記憶され得る。複数の層の各々は、顔テンプレート200に対応し得、ユーザが顔の特定の特徴を描写することを可能にし得る。クライアントデバイス110のユーザは、たとえば、ゲームアプリケーション112を使用して、複数の層の設計を可能にするユーザインタフェースを提供され得る。
【0073】
図3に示されているように、最下(下)層310は、虹彩と、口の内側と、他の特徴とを描写するために使用され得る。最下層310は、顔テンプレート200に関して定義された異なる座標における特徴を含み得る。いくつかの実装形態では、追加のカスタムアニメーション化可能な特徴が最下層内に含まれ得る。
【0074】
アニメーション層320は、眉毛と、瞼と、鼻と、口とを描写するために使用され得る。
【0075】
非アニメーション化静止層330は、傷跡、刺青、眼帯などの顔の静的特徴のために利用され得る。いくつかの実装形態では、非アニメーション化静止層330は、髪、帽子、眼鏡、または他の付属品を含み得る。静的特徴は、顔テンプレートを使用して描写され、他の層(たとえば、層310および320)内に描写されている特徴に適切に位置合わせされる。顔テンプレート200の利用は、異なる層にわたって特徴を位置合わせすることができる。
【0076】
いくつかの実装形態では、各層(たとえば、310、320、330)は、対応する層の深さまたはレベルに関連付けられ得る。たとえば、最下層310は、1の深さに関連付けられ得、アニメーション層320は、2の深さに関連付けられ得、非アニメーション化静止層330は、3の深さに関連付けられ得る。層に関連付けられた深さ情報は、
図3に描写されているように、顔、たとえば、顔340の表現を提供するために、層を重ね合わせるために利用され得る。いくつかの実装形態では、層の深さまたはレベルは、メタデータとして、または各層に関する名前文字列として記憶され得る。いくつかの実装形態では、層の深さまたはレベルを別々に記憶する代わりに、各層に対して、層の深さを指定する層の識別子または名前、たとえば、「層1」、「層2」が利用され得る。いくつかの実装形態では、欠落した層に対してデフォルト値が適用され得る。
【0077】
いくつかの実装形態では、顔のグラフィカル表現を作成するために、より少ないまたはより多い数の層が使用され得る。顔を2D画像として描写するために、互いに重ね合わされた層340の組合せが使用される。重ね合わせは、最下層が最下になるように実行され、連続する層の1つまたは複数の特徴が下にある層の特徴にオーバーレイするように、後続の層が順番に上に配置される。たとえば、重ね合わせは、層の深さまたはレベル情報を使用して実行され得る。
【0078】
図4は、いくつかの実装形態による、顔をアニメーション化する例示的な方法400を示すフローチャートである。処理は、格子配列が定義されるブロック410において開始する。格子配列は、アニメーション化されるべき顔の特徴に対応する複数のセルを含み得る。アニメーション化される特徴は、目、鼻、口、または顔の他の要素を表すグラフィカル要素を含み得る。
【0079】
いくつかの実装形態では、ユーザが顔の特徴をテンプレート(たとえば、
図2を参照して説明されているテンプレート200)または格子配列にマッピングすることを可能にするユーザインタフェース(UI)が提供され得る。UIは、格子配列の対応するセルへの顔の特徴のマッピングを可能にするように構成され得る。UIは、たとえば、ディスプレイまたは他のIOインタフェースを介してユーザにフィードバックを提供し得る。ユーザインタフェースは、タッチスクリーンインタフェース、音声インタフェース、マウスベースのインタフェースなどのうちの1つまたは複数を含み得る。ユーザの許可があれば、ユーザによって選択された過去のデザインの履歴が保存され、ユーザにオプションを提示するために利用され得る。いくつかの実装形態では、ゲームネットワーク全体でおよび/または複数のユーザから人気のある特徴が優先され、選択のためにユーザに表示され得る。ブロック410の後に、ブロック420が続き得る。
【0080】
ブロック420において、アニメーションの一部である顔の1つまたは複数の特徴、たとえば、上記で説明されている320内に含まれているものと同様の特徴が、アニメーション層内に配置される。アニメーション層内に配置された特徴は、アニメーションがユーザに対して表示されるときに、層内の1つまたは複数の他の特徴と一緒に移動する。たとえば、眉毛および唇は、同じ層の一部であり得る。いくつかの実装形態では、同じ層内の1つまたは複数の特徴は、協調してアニメーション化され得、たとえば、両方の瞳孔が同期して動かされ得る。
【0081】
いくつかの実装形態では、特徴の一部がアニメーション化され得、特徴の別の部分がアニメーション化されない場合がある。ブレンドされた表現を可能にするために、アニメーション特徴がブレンドされ得る。たとえば、邪悪な笑いを生成するために、眉をひそめたアニメーションが、笑顔のアニメーションとマージされ得る。ブロック420の後に、ブロック430が続き得る。
【0082】
ブロック430において、アニメーション層は、顔の静的特徴を含む最下層の上にオーバーレイされる。静的特徴は、目の虹彩および口の内側などの特徴を含み得る。静止層内の虹彩の位置は、少なくとも部分的に透明であり得、層がオーバーレイされたときに異なる層から虹彩を表すグラフィカル要素が見えるようにすることができ得る。いくつかの実装形態では、虹彩は、完全に透明であるか、または着色され得る。
【0083】
いくつかの実装形態では、ゲームの読み込み時に1つまたは複数の層が組み合わされ(合成され)、アニメーションデータの検出時に、レンダリングされた画像が更新される。そのような読み込みは、アニメーションデータがない場合でも優れたパフォーマンスを可能にし得る。
【0084】
口を表すグラフィカル要素が口の内側を表すグラフィカル要素の上にオーバーレイされたとき、口の内側は、2次元画像において見えるようにされ得る。ブロック430の後に、ブロック440が続き得る。
【0085】
ブロック440において、最上層(静止層)がアニメーション層の上にオーバーレイされ得る。最上層は、顔に関連付けられた静的特徴を含む。ブロック440の後に、ブロック450が続き得る。
【0086】
ブロック450において、アニメーション層に対応する顔の特徴がアニメーション化される。顔のいくつかの特徴に対応するセルの1つまたは複数の座標を修正することによって、アニメーションがレンダリングされ得る。いくつかの実装形態では、アニメーションは、一連の画像フレームを利用することによってレンダリングされ得る。いくつかの実装形態では、修正は、一連の画像フレーム内の顔の特徴の変換を含み得る。いくつかの実装形態では、修正は、一連の画像フレーム内の顔の特徴の形状の変更を含み得る。いくつかの実装形態では、修正は、顔の特徴の形状の変換および変更を含み得る。いくつかの実装形態では、特徴の形状の変更は、アニメーション層上の格子点をアニメーション化することによってレンダリングされる。いくつかの実装形態では、顔の特徴を表すピクセルが修正される。いくつかの実装形態では、ピクセルの修正は、顔の1つまたは複数の特徴の動きの視覚的効果を作成するために利用され得る。
【0087】
いくつかの実装形態では、最下層および最上層における静的特徴は、静止したままである。アニメーション層における特徴の選択的なアニメーションは、多層顔の2D画像のアニメーションを結果としてもたらす。
【0088】
いくつかの実装形態では、アニメーションは、非破壊的な方法で、特徴を定義するために使用される基礎となるメッシュを変形させる格子変形によって実装される。いくつかの実装形態では、特徴は、格子変形によって一様にスケーリングされ得る。いくつかの実装形態では、変形は、所定の関数によって定義され得る。
【0089】
いくつかの実装形態では、変形は、たとえば、オンラインゲームサーバ102上(たとえば、データベース120内)に記憶され、ユーザによって呼び出され得る所定の関数を含み得る。たとえば、オンラインゲームサーバ102は、利用可能な格子変形関数のライブラリから1つまたは複数の格子変形関数を選択するオプションをユーザに提供し得る。
【0090】
いくつかの実装形態では、ユーザによってカスタム変形が定義および利用され得る。いくつかの実装形態では、ユーザ(たとえば、アニメータ)は、特定の特徴の開始状態と終了状態とを提供することによって、特徴のアニメーションを構成することができる。いくつかの実装形態では、ユーザは、開始状態および終了状態に加えて、特定の特徴のための1つまたは複数の中間状態を提供し得る。
【0091】
ブロック410~450によって表されている動作は、上記で説明されている順序とは異なる順序で実行(または反復)され得、および/または1つもしくは複数の動作は、省略、修正、補足、または他の動作と組み合わされ得る。
【0092】
いくつかの実装形態では、顔の特徴を格子配列の対応するセルにマッピングするために、自動顔追跡技法が提供され得る。自動顔追跡技法は、カメラを利用し、カメラによってキャプチャされた画像から顔の特徴を作成し得る。画像は、(ユーザの許可を得て取得された)ユーザの実際の顔の画像、絵、漫画、または別の画像であり得る。
【0093】
いくつかの実装形態では、ユーザが顔に追加されるグラフィカル要素を選択することを可能にするために、ユーザインタフェースを介して追加のグラフィカル要素が提供され得る。
【0094】
【0095】
アニメーション層520が最下層510の上にオーバーレイされる。静止層530がアニメーション層520の上にオーバーレイされる。合成顔540は、様々な層から合成され、すべての層からの特徴を含む。
【0096】
いくつかの実装形態では、いくつかの層は、透過的にレンダリングされ、他の下位層からの特徴が見えるようにすることができる。たとえば、
図5における図示の例では、静止層530は、任意の特徴(たとえば、顔上のマーク)を除いて透明であり、他の層の上に重ね合わされたときに、他の層からの特徴およびアニメーションの可視化を可能にする。
【0097】
図6は、いくつかの実装形態による、アニメーション層内の特徴のアニメーションから結果として生じるアニメーションフレームのシーケンスを示す。
【0098】
図6は、(たとえば、
図5に関して説明されているアニメーション層520と同様の)アニメーション層のアニメーションによってレンダリングされた(たとえば、
図5に関して説明されている合成顔540と同様の)合成顔610のアニメーションを示す。
【0099】
この例示的な例では、口(630)のアニメーションが描かれている。アニメーションは、口を定義するために利用されるメッシュ(620)の格子変形によってもたらされる。(
図6に描かれているフレームのシーケンスによって示されるように)メッシュの変形が進行するにつれて、アニメーション層によってレンダリングされた画像は、変換され、動きの外観を作成する。アニメーション層のレンダリングされた画像の変換は、異なる層(たとえば、
図5に関して説明されている層510、520、および530)から合成されたレンダリングされた合成顔の画像の変換においてももたらされ、結果として生じる合成顔における(この例では口の)動きの外観を作成する。
【0100】
図7は、いくつかの実装形態による、最下(下)層における特徴のアニメーションから結果として生じるアニメーションフレームのシーケンスを示す。
【0101】
図7は、(たとえば、
図5に関して説明されているアニメーション層510と同様の)最下層のアニメーションによってレンダリングされた(たとえば、
図5に関して説明されている合成顔540と同様の)合成顔710のアニメーションを示す。
【0102】
この例示的な例では、目(720)が描かれている。具体的には、合成顔710における目の動きの外観が、最下層における目の虹彩の横方向の動きによって作成される。たとえば、虹彩(730)は、最下層において横方向に左にシフトされ、合成顔画像において横方向の目の動きの外観を作成する。
【0103】
いくつかの実装形態では、特徴の動きの量(740)は、1つまたは複数の次元においてユーザ(たとえば、アニメータ、デザイナーなど)によって指定され得る。いくつかの実装形態では、特徴の動きの量は、ピクセルの数として指定され得る。
【0104】
この例示的な例では、
図7は、左方向および右方向における合成顔における目の動きを描写するアニメーションフレームのシーケンスを示す。アニメーションフレームのシーケンスは、他の層がフレーム間で変更されないままの状態で、最下層におけるフレームのシーケンスを利用することによって作成される。
【0105】
(ここには示されていない)いくつかの実装形態では、追加の効果(たとえば、目および口の同時の動き)を作成するために、1つまたは複数の層が同時にアニメーション化され得る。
【0106】
図8は、本明細書で説明されている1つまたは複数の特徴を実装するために使用され得る例示的なコンピューティングデバイス800のブロック図である。
図1のクライアントデバイス110および/またはゲームサーバ102は、
図8のコンピューティングデバイス800の形態において提供され得る。一例では、デバイス800は、コンピュータデバイス(たとえば、
図1の102または110)を実装し、本明細書で説明されている適切な方法の実装形態を実行するために使用され得る。コンピューティングデバイス800は、任意の適切なコンピュータシステム、サーバ、または他の電子デバイスもしくはハードウェアデバイスであり得る。たとえば、コンピューティングデバイス800は、メインフレームコンピュータ、デスクトップコンピュータ、ワークステーション、ポータブルコンピュータ、または電子デバイス(ポータブルデバイス、モバイルデバイス、携帯電話、スマートフォン、タブレットコンピュータ、テレビ、TVセットトップボックス、携帯情報端末(PDA)、メディアプレイヤー、ゲームデバイス、ウェアラブルデバイスなど)であり得る。いくつかの実装形態では、デバイス800は、プロセッサ802と、メモリ804と、入力/出力(I/O)インタフェース806と、オーディオ/ビデオ入力/出力デバイス814とを含む。
【0107】
プロセッサ802は、プログラムコードを実行し、デバイス800の基本的な動作を制御する1つまたは複数のプロセッサおよび/または処理回路であり得る。「プロセッサ」は、データ、信号、または他の情報を処理する任意の適切なハードウェアおよび/もしくはソフトウェアシステム、機構、または構成要素を含む。プロセッサは、汎用中央処理装置(CPU)を有するシステム、複数の処理ユニット、機能を達成するための専用回路、または他のシステムを含み得る。処理は、特定の幾何学的な場所に限定される必要はなく、または時間的な制限を有する必要はない。たとえば、プロセッサは、その機能を「リアルタイム」、「オフライン」、「バッチモード」などで実行し得る。処理の一部は、異なる(または同じ)処理システムによって、異なる時間および異なる場所において実行され得る。コンピュータは、メモリと通信する任意のプロセッサであり得る。
【0108】
メモリ804は、典型的には、プロセッサ802によるアクセスのためにデバイス800内に設けられ、プロセッサによる実行のための命令を記憶するのに適し、かつプロセッサ802から分離して配置されたおよび/またはそれと一体化された任意の適切なプロセッサ可読記憶媒体、たとえば、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電気的消去可能読み取り専用メモリ(EEPROM)、フラッシュメモリなどであり得る。メモリ804は、オペレーティングシステム808、1つまたは複数のアプリケーション810、たとえば、オーディオ空間化アプリケーション、およびアプリケーションデータ812を含む、プロセッサ802によってサーバデバイス800上で動作するソフトウェアを記憶することができる。いくつかの実装形態では、アプリケーション810は、プロセッサ802が本明細書で説明されている機能、たとえば、
図4の方法のうちのいくつかまたはすべてを実行することを可能にする命令を含むことができる。
【0109】
たとえば、アプリケーション810は、本明細書で説明されているように、オンラインゲームサーバ(たとえば、102)内でオーディオ空間化を提供することができるオーディオ空間化モジュール812を含むことができる。メモリ804内のソフトウェアのいずれかは、代替的に、任意の他の適切な記憶場所またはコンピュータ可読媒体上に記憶され得る。加えて、メモリ804(および/または他の接続された記憶デバイス)は、本明細書で説明されている特徴において使用される命令およびデータを記憶することができる。メモリ804、および任意の他のタイプのストレージ(磁気ディスク、光ディスク、磁気テープ、または他の有形の媒体)は、「ストレージ」または「記憶デバイス」と見なされ得る。
【0110】
I/Oインタフェース806は、サーバデバイス800を他のシステムおよびデバイスとインタフェースすることを可能にする機能を提供することができる。たとえば、ネットワーク通信デバイス、記憶デバイス(たとえば、メモリおよび/またはデータストア120)、および入力/出力デバイスが、インタフェース806を介して通信することができる。いくつかの実装形態では、I/Oインタフェースは、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナなど)および/または出力デバイス(ディスプレイデバイス、スピーカデバイス、プリンタ、モータなど)を含むインタフェースデバイスに接続することができる。
【0111】
オーディオ/ビデオ入力/出力デバイス814は、オーディオメッセージを入力として受信するために使用され得るオーディオ入力デバイス(たとえば、マイクロフォンなど)、オーディオ出力デバイス(たとえば、スピーカ、ヘッドフォンなど)、および/またはグラフィカル出力および視覚的出力を提供するために使用され得るディスプレイデバイスを含むことができる。
【0112】
説明を容易にするために、
図8は、プロセッサ802、メモリ804、I/Oインタフェース806、ならびにソフトウェアブロック808および810の各々について1つのブロックを示す。これらのブロックは、1つもしくは複数のプロセッサもしくは処理回路、オペレーティングシステム、メモリ、I/Oインタフェース、アプリケーション、および/またはソフトウェアモジュールを表し得る。他の実装形態では、デバイス800は、示されている構成要素のすべてを有さない場合があり、および/または本明細書で示されているものの代わりに、もしくはそれに加えて他のタイプの要素を含む他の要素を有する場合がある。オンラインゲームサーバ102は、本明細書のいくつかの実装形態で説明されているような動作を実行するものとして説明されているが、オンラインゲームサーバ102もしくは同様のシステムの任意の適切な構成要素もしくは構成要素の組合せ、またはそのようなシステムに関連する任意の適切なプロセッサは、説明されている動作を実行し得る。
【0113】
ユーザデバイスはまた、本明細書で説明されている特徴を実装および/またはそれとともに使用され得る。例示的なユーザデバイスは、デバイス800と同様のいくつかの構成要素、たとえば、プロセッサ802、メモリ804、およびI/Oインタフェース806を含むコンピュータデバイスであり得る。クライアントデバイスに適したオペレーティングシステム、ソフトウェア、およびアプリケーションが、メモリ内に提供され、プロセッサによって使用され得る。クライアントデバイスのためのI/Oインタフェースは、ネットワーク通信デバイス、ならびに入力デバイスおよび出力デバイス、たとえば、音をキャプチャするためのマイクロフォン、画像もしくはビデオをキャプチャするためのカメラ、音を出力するためのオーディオスピーカデバイス、画像もしくはビデオを出力するためのディスプレイデバイス、または他の出力デバイスに接続され得る。オーディオ/ビデオ入力/出力デバイス814内のディスプレイデバイスは、たとえば、本明細書で説明されているように、前処理および後処理で画像を表示するためにデバイス800に接続され(またはその中に含まれ)得、そのようなディスプレイデバイスは、任意の適切なディスプレイデバイス、たとえば、LCD、LED、もしくはプラズマディスプレイ画面、CRT、テレビ、モニター、タッチスクリーン、3-Dディスプレイ画面、プロジェクタ、または他の視覚的ディスプレイデバイスを含むことができる。いくつかの実装形態は、オーディオ出力デバイス、たとえば、テキストを話す音声出力または合成を提供することができる。
【0114】
本明細書で説明されている1つまたは複数の方法(たとえば、方法400)は、コンピュータ上で実行され得るコンピュータプログラム命令またはコードによって実装され得る。たとえば、コードは、1つまたは複数のデジタルプロセッサ(たとえば、マイクロプロセッサまたは他の処理回路)によって実装され得、半導体またはソリッドステートメモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、リジッド磁気ディスク、光ディスク、ソリッドステートメモリドライブなどを含む非一時的コンピュータ可読媒体(たとえば、記憶媒体)、たとえば、磁気記憶媒体、光記憶媒体。電磁記憶媒体、または半導体記憶媒体を含むコンピュータプログラム製品上に記憶され得る。プログラム命令はまた、たとえば、サーバ(たとえば、分散システムおよび/またはクラウドコンピューティングシステム)から配信されるサービスとしてのソフトウェア(SaaS)の形態で、電子信号内に含まれ得、電子信号として提供され得る。代替的に、1つまたは複数の方法は、ハードウェア(論理ゲートなど)において、またはハードウェアとソフトウェアとの組合せにおいて実装され得る。例示的なハードウェアは、プログラマブルプロセッサ(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、複合プログラマブル論理デバイス)、汎用プロセッサ、グラフィックプロセッサ、特定用途向け集積回路(ASIC)などであり得る。1つまたは複数の方法は、システム上で実行されるアプリケーションの一部もしくは構成要素として、または他のアプリケーションおよびオペレーティングシステムと関連して実行されるアプリケーションもしくはソフトウェアとして実行され得る。
【0115】
本明細書で説明されている1つまたは複数の方法は、任意のタイプのコンピューティングデバイス上で実行され得るスタンドアロンプログラム、ウェブブラウザ上で実行されるプログラム、モバイルコンピューティングデバイス(たとえば、携帯電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス(腕時計、腕輪、宝石、帽子、ゴーグル、眼鏡など)、ラップトップコンピュータなど)上で実行されるモバイルアプリケーション(「アプリ」)において実行され得る。一例では、クライアント/サーバアーキテクチャが使用され得、たとえば、モバイルコンピューティングデバイス(クライアントとして)は、ユーザ入力データをサーバデバイスに送信し、サーバから、出力のための(たとえば、表示のための)最終的な出力データを受信する。別の例では、すべての計算は、モバイルコンピューティングデバイス上のモバイルアプリ(および/または他のアプリ)内で実行され得る。別の例では、計算は、モバイルコンピューティングデバイスと1つまたは複数のサーバデバイスとの間で分割され得る。
【0116】
説明は、その特定の実装形態に関して説明されてきたが、これらの特定の実装形態は、単なる例示であり、制限的なものではない。例において示されている概念は、他の例および実装形態に適用され得る。
【0117】
本開示で説明されている機能ブロック、動作、特徴、方法、デバイス、およびシステムは、当業者に知られているように、システム、デバイス、および機能ブロックの異なる組合せに統合または分割され得ることに留意されたい。任意の適切なプログラミング言語およびプログラミング技法が、特定の実装形態のルーチンを実装するために使用され得る。様々なプログラミング技法、たとえば、手続き型またはオブジェクト指向が用いられ得る。ルーチンは、単一の処理デバイスまたは複数のプロセッサ上で実行され得る。ステップ、動作、または計算は、特定の順序で提示されている場合があるが、順序は、異なる特定の実装形態では変更され得る。いくつかの実装形態では、本明細書で順次であるように示されている複数のステップまたは動作は、同時に実行され得る。
【符号の説明】
【0118】
100 システムアーキテクチャ
102 オンラインゲームサーバ、ゲームサーバ、コンピュータデバイス
104 ゲームエンジン
106 ゲーム、ゲームアプリケーション
108 グラフィックエンジン
110 クライアントデバイス、コンピュータデバイス
110a クライアントデバイス
110b クライアントデバイス
110n クライアントデバイス
112 ゲームアプリケーション、ゲームエンジン
114 入力/出力(I/O)インタフェース
120 データストア
122 ネットワーク
200 顔テンプレート
210 左眉毛
220 右眉毛
230 左目
240 右目
250 口
310 最下(下)層、最下層
320 アニメーション層
330 非アニメーション化静止層
340 顔
510 最下層
520 アニメーション層
530 静止層
540 合成顔
610 合成顔
620 メッシュ
630 口
710 合成顔
720 目
730 虹彩
740 特徴の動きの量
800 コンピューティングデバイス、デバイス、サーバデバイス
802 プロセッサ
804 メモリ
806 入力/出力(I/O)インタフェース、I/Oインタフェース
808 オペレーティングシステム
810 アプリケーション
812 アプリケーションデータ、オーディオ空間化モジュール
814 オーディオ/ビデオ入力/出力デバイス