JP7061238B2 - 異種のターゲットアニメーションデータを使用してキャラクタをトレーニングする強化学習 - Google Patents

異種のターゲットアニメーションデータを使用してキャラクタをトレーニングする強化学習 Download PDF

Info

Publication number
JP7061238B2
JP7061238B2 JP2021555464A JP2021555464A JP7061238B2 JP 7061238 B2 JP7061238 B2 JP 7061238B2 JP 2021555464 A JP2021555464 A JP 2021555464A JP 2021555464 A JP2021555464 A JP 2021555464A JP 7061238 B2 JP7061238 B2 JP 7061238B2
Authority
JP
Japan
Prior art keywords
bone
subset
trained
target
bones
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021555464A
Other languages
English (en)
Other versions
JP2022518970A (ja
Inventor
テイラー ミカエル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Interactive Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Publication of JP2022518970A publication Critical patent/JP2022518970A/ja
Application granted granted Critical
Publication of JP7061238B2 publication Critical patent/JP7061238B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites

Description

本開示は、キャラクタのアニメーション化、より具体的には、異種のターゲットアニメーションデータを使用してアニメーションキャラクタの異種のパーツをトレーニングすることに関し、各ターゲットアニメーションデータは、対応するモーションシーケンスを含む。
アニメーション化されたキャラクタはビデオゲームで使用される。アニメーション化されたキャラクタは、相互接続されたボーンの動き及び配置を通じてアニメーション化されたキャラクタの動きを与えることができる相互接続されたボーンのスケルトンを含み得る。スケルトンが生成されると、その同じスケルトンを使用して任意のタイプのモーションを作成できる。スキンまたはメッシュをスケルトンにオーバレイして、対応するビデオゲーム内で表示可能なキャラクタの視覚的表現を提供することができる。
アニメーション化されたキャラクタをゼロから作成することは、時間と計算コストがかかる。そのため、新しいキャラクタの作成にかかる作業と時間を削減するために、様々な技法が採用されている。簡単に言えば、1つのスケルトンを再利用して、1つまたは複数のビデオゲームで多数のキャラクタをアニメーション化することができ、各キャラクタは、異なるメッシュまたはスキンを有することができる。ただし、同じスケルトンが使用されているため、スキンが異なっていても、すべてのキャラクタは概して同じように見え(例えば、同じサイズなど)、同じ動きをする。
別の技法では、ベースキャラクタからモーションを取得し、キャラクタ間の様々な比率を調整しながら、そのモーションを新しいキャラクタに適用することができる。例えば、モーションのリターゲティングを使用して、モーションを新しいキャラクタに変換することができる。このようにして、変換されたモーションは新しいキャラクタに合わせてカスタマイズでき、ベースキャラクタのモーションとは異なって見せることができる。一般に、モーションのリターゲティングでは、ジョイント操作を使用して、反復プロセスを通じて変換されたモーションを生成する。ただし、ジョイントを操作する場合、モーションのリターゲティングは依然として時間と計算コストがかかる。また、新しいキャラクタがベースキャラクタと大きく異なる場合、モーションのリターゲティングが失敗する可能性がある。
本開示の実施形態は、このような背景においてなされたものである。
本開示の実施形態は、特定のアニメーションキャラクタの強化学習を使用した手足マッピングのためのシステム及び方法に関する。具体的には、アニメーションキャラクタは、複数のターゲットアニメーションデータを使用した強化学習でトレーニングされる。各アニメーションデータは、ボーン階層の異なるサブセット(例えば、スケルトン、リグなど)など、アニメーションキャラクタのボディの異なる部分に向けたものである。各アニメーションデータは、モーションシーケンスが互いに関連付けられていない可能性のある異種のモーションを含むように、異なるモーションシーケンスを有してもよい。ターゲットアニメーションデータを使用したアニメーションキャラクタの合成とトレーニングは、特定のシミュレーション環境向けである。
一実施形態では、アニメーションで使用するアニメーションキャラクタをトレーニングするための方法が開示される。この方法は、第1のアニメーションデータをトレーニングされたキャラクタの第1のボーンのサブセットにマッピングすることを含む。第1のアニメーションデータは、第1のターゲットモーションシーケンスを定義する。この方法は、第2のアニメーションデータをトレーニングされたキャラクタの第2のボーンのサブセットにマッピングすることを含む。第2のアニメーションデータは、第2のターゲットモーションシーケンスを定義する。トレーニングされたキャラクタのボーン階層には、第1のボーンのサブセットと第2のボーンのサブセットが含まれる。この方法は、第1のアニメーションデータを使用して第1のボーンのサブセットをトレーニングするため、及び第2のアニメーションデータを使用して第2のボーンのサブセットをトレーニングするために、複数の反復にわたって強化学習を適用することを含む。ボーンの各サブセットのトレーニングは、各反復で同時に実行される。第1及び第2のボーンのサブセットのトレーニングには、ボーンの第1及び第2のボーンのサブセットのボーンの向きを調整することが含まれる。第1のボーンのサブセットは、シミュレーション環境の物理パラメータを第1及び第2のボーンのサブセットの調整された向きに適用することにより、強化学習の各反復で第2のボーンのサブセットと合成される。
別の実施形態では、アニメーションで使用するアニメーションキャラクタをトレーニングするためのコンピュータプログラムを記憶する、非一時的コンピュータ可読媒体が開示される。コンピュータ可読媒体には、第1のアニメーションデータをトレーニングされたキャラクタの第1のボーンのサブセットにマッピングするためのプログラム命令が含まれている。第1のアニメーションデータは、第1のターゲットモーションシーケンスを定義する。このコンピュータ可読媒体は、第2のアニメーションデータをトレーニングされたキャラクタの第2のボーンのサブセットにマッピングするプログラム命令を含む。第2のアニメーションデータは、第2のターゲットモーションシーケンスを定義する。トレーニングされたキャラクタのボーン階層には、第1のボーンのサブセットと第2のボーンのサブセットが含まれる。このコンピュータ可読媒体は、第1のアニメーションデータを使用して第1のボーンのサブセットをトレーニングするため、及び第2のアニメーションデータを使用して第2のボーンのサブセットをトレーニングするために、複数の反復にわたって強化学習を適用するプログラム命令を含む。各ボーンのサブセットのトレーニングは、各反復で同時に実行される。第1及び第2のボーンのサブセットのトレーニングには、第1及び第2のボーンのサブセットのボーンの向きを調整することが含まれる。第1のボーンのサブセットは、シミュレーション環境の物理パラメータを第1及び第2のボーンのサブセットの調整された向きに適用することにより、強化学習の各反復で第2のボーンのサブセットと合成される。
さらに別の実施形態では、コンピュータシステムが開示され、本コンピュータシステムは、プロセッサと、プロセッサに結合され、コンピュータシステムによって実行されると、コンピュータシステムに、アニメーションで使用するアニメーションキャラクタを訓練するための方法を実行させる命令をその中に記憶しているメモリとを含む。コンピュータシステムによって実行されるこの方法は、第1のアニメーションデータをトレーニングされたキャラクタの第1のボーンのサブセットにマッピングすることを含む。第1のアニメーションデータは、第1のターゲットモーションシーケンスを定義する。この方法は、第2のアニメーションデータをトレーニングされたキャラクタの第2のボーンのサブセットにマッピングすることを含む。第2のアニメーションデータは、第2のターゲットモーションシーケンスを定義する。トレーニングされたキャラクタのボーン階層には、第1のボーンのサブセットと第2のボーンのサブセットが含まれる。この方法は、第1のアニメーションデータを使用して第1のボーンのサブセットをトレーニングするため、及び第2のアニメーションデータを使用して第2のボーンのサブセットをトレーニングするために、複数の反復にわたって強化学習を適用することを含む。各ボーンのサブセットのトレーニングは、各反復で同時に実行される。第1及び第2のボーンのサブセットのトレーニングには、第1及び第2のボーンのサブセットのボーンの向きを調整することが含まれる。第1のボーンのサブセットは、シミュレーション環境の物理パラメータを第1及び第2のボーンのサブセットの調整された向きに適用することにより、強化学習の各反復で第2のボーンのサブセットと合成される。
本開示の他の形態は、本開示の原理を例として示す添付図面を併用して以下の詳細な説明から明らかになるであろう。
本開示は、添付図面と併せて、以下の詳細な説明を参照することにより、最も良く理解することができる。
本開示の一実施形態による、異種のターゲットボディモーションを有する2つ以上のターゲットアニメーションデータを使用して強化学習でアニメーションキャラクタをトレーニングするためのシステム図である。 本開示の一実施形態による、AIモデルを構築するのに使用される例示的なニューラルネットワークを示す。 本開示の一実施形態による、異種のターゲットボディモーションを有する2つ以上のターゲットアニメーションデータを使用して強化学習でアニメーションキャラクタをトレーニングするための方法を示すフロー図である。 本開示の一実施形態による、異種のターゲットボディモーションを有する2つ以上のターゲットアニメーションデータを使用してアニメーションキャラクタをトレーニングするための強化学習を示すワークフローである。 本開示の一実施形態による、異種のターゲットボディモーションを有する2つ以上のターゲットアニメーションデータを使用してアニメーションキャラクタをトレーニングするときの強化学習のループを示す。 本開示の一実施形態による、トレーニングされたアニメーションキャラクタのボーン階層の異種のパーツへの2つ以上のターゲットアニメーションデータのマッピングを示し、2つ以上のターゲットアニメーションデータは、異種のターゲットボディモーションを有する。 本開示の一実施形態による、異種のターゲットボディモーションを有する2つの別個のターゲットアニメーションデータを使用した強化学習によるアニメーションキャラクタのトレーニングを示す。 本開示の一実施形態による、トレーニングされたアニメーションキャラクタの異種のターゲットボディモーションを有する2つの別個のターゲットアニメーションデータのブレンドを示し、トレーニングされたボディモーションは、シミュレーション環境の物理パラメータ及び重み付けの適用の後、ターゲットボディボディモーションから変更され得る。 本開示の様々な実施形態の形態を実行するために使用することができる例示的なデバイスの構成要素を示す。
以下の詳細な説明は、例示の目的で多くの具体的で詳細な説明を含むが、当業者であれば、以下の詳細に対する多くの変形及び変更が本開示の範囲内にあることを理解するであろう。したがって、以下で説明される本開示の形態は、この説明に続く特許請求の範囲の一般性を失わせるものではなく、また限定を課すものでもない。
一般的に言えば、本開示の様々な実施形態は、2つ以上のアニメーションデータからの異種のボディモーションを使用してアニメーションキャラクタの手足をトレーニングするための深層学習(機械学習とも呼ばれる)技術を実装するシステム及び方法を説明する。具体的には、アニメーションキャラクタは、複数のターゲットアニメーションデータを使用して強化学習でトレーニングされ、各ターゲットアニメーションデータは、ボーン階層の異なるサブセット(例えば、スケルトン、リグなど)など、アニメーションキャラクタのボディの異なる部分に向けたものである。
例えば、ターゲットアニメーションデータには、モーションキャプチャデータ、開発されたアニメーションデータなどが含まれ得る。各ターゲットアニメーションデータは、異なるターゲットモーションシーケンスを有することができ、そのためモーションシーケンスは互いに関連付けられていなくてもよい異種のモーションを含む。ターゲットアニメーションデータを使用したアニメーションキャラクタの合成とトレーニングは、特定のシミュレーション環境向けである。
様々な実施形態の上記の一般的な理解により、様々な図面を参照して実施形態の例の詳細をここに説明する。
図1Aは、本開示の一実施形態による、異種のターゲットボディモーションを有する2つ以上のターゲットアニメーションデータ101を使用して強化学習でアニメーションキャラクタ100をトレーニングするためのシステム図である。具体的には、マッピングエンジン120は、複数のターゲットアニメーションデータ101(例えば、1つ以上のターゲットアニメーションデータ、2つ以上のターゲットアニメーションデータなど)を入力として受け取る。例えば、ターゲットアニメーションデータA(101a)は、トレーニングされたアニメーションキャラクタのサブボディAに向けたものとすることができるターゲットボディモーションAを含む。
トレーニングされたアニメーションキャラクタのサブボディBに向けたものとすることができるターゲットボディモーションBを含む第2のターゲットアニメーションデータなどの他のターゲットアニメーションデータも入力され得る。複数の実施形態では、2つ以上の別個のターゲットアニメーションデータが入力として提供され、トレーニングされたアニメーションキャラクタ100のサブボディNに向けたものとすることができるターゲットボディモーションNを含むターゲットアニメーションデータN(101n)を含む。
複数のターゲットアニメーションデータを使用すると、一実施形態では、ターゲットアニメーションデータ(例えば、101aから101n)のそれぞれを、トレーニングされたアニメーションキャラクタ100の異なるパーツに向けたものとすることができる。例えば、トレーニングされたアニメーションキャラクタ100は、マッピングエンジン120への入力として提供されるボーン階層110に関連付けられ得る。したがって、各ターゲットアニメーションデータは、ボーン階層110の一部またはサブセットに対応するサブボーン階層を含む。
例えば、トレーニングされたアニメーションキャラクタ100の2つのターゲットアニメーションデータトレーニングにおいて、アニメーションデータA101aは、ターゲットキャラクタの腕及び胴体に向けたものとすることができ、これは、トレーニングされたアニメーションキャラクタ100のボーン階層110の腕及び胴体にマッピングされ得る。また、アニメーションデータB101bは、対応するターゲットキャラクタの脚及び腰に向けたものとすることができ、これは、トレーニングされたアニメーションキャラクタ100のボーン階層110の脚及び腰にマッピングすることができる。
2つの別個のターゲットアニメーションデータを使用することは例示であり、明確さと簡潔さのために本明細書全体で使用されている。本開示の実施形態は、トレーニングされたアニメーションキャラクタ100の手足及び/またはボーンをトレーニングするために、異種のボディモーションを有する2つ以上の別個のターゲットアニメーションデータの使用を開示する。説明のみを目的として、一実施形態では、トレーニングされたアニメーションキャラクタ100は、人間の形であり得る。
例えば、あるターゲットアニメーションデータが右手に対するものとすることができ、別のターゲットアニメーションデータが左手に対するものとすることができ、別のターゲットアニメーションデータが頭に対するものとすることができ、さらに別のターゲットアニメーションデータが左腕に対するものとすることができるなどである。すなわち、各ターゲットアニメーションデータは、トレーニングされたアニメーションキャラクタ100のボーン階層110の一意のボーンのサブセットに向けたものとすることができる。
さらに、各ターゲットアニメーションデータは、異なるターゲットアニメーションキャラクタから取得することができる。各ターゲットアニメーションキャラクタは、固有の手足及び/またはプロポーションと手足及び/またはボーンの構造を有してもよい。したがって、トレーニングされたアニメーションキャラクタ100のボーン階層110は、ターゲットアニメーションキャラクタのターゲットボーン階層(例えば、サブボーン階層)に基づくことができる。
そのようにして、マッピングエンジン120は、ターゲットアニメーションデータに関連付けられたターゲットサブボーン階層の一部を、トレーニングされたアニメーションキャラクタ100のボーン階層110にマッピングすることができる。一実施形態では、トレーニングされたアニメーションキャラクタ100は、ヒューマノイドの形態を有する。他の実施形態では、トレーニングされたアニメーションキャラクタは、動物、または新しく設計されたキャラクタ、または2つ以上のアニメーションキャラクタ(例えば、ケンタウロスなど)の混合などの他の形態をとることができる。このようにして、任意の数のアニメーションキャラクタを作成することができ、制限となるのは開発者の想像力だけであるる。
アニメーションデータは、コンピュータアニメーション(ビデオゲーム、シミュレーションなど)で使用されるデジタルキャラクタモデルをアニメーション化するために使用される任意の情報であってもよい。アニメーションデータには、人間の俳優のボディの動きを様々な技法でキャプチャすることによって生成されるモーションキャプチャ(MOCAP)データが含まれてもよく、このデータは、対応するアニメーションキャラクタをアニメーション化するために使用される。さらに他のアニメーションデータがサポートされている。
図1Aに示すように、複数のターゲットアニメーションデータ101及びボーン階層110は、ターゲットアニメーションデータ101のターゲットボディモーションを使用してアニメーションキャラクタ100をトレーニングするために強化学習エージェント195を介して強化学習を適用する深層学習エンジン190への入力として提供される。深層学習エンジン190は、シミュレーション環境310(例えば、ビデオゲームの環境)の物理パラメータ130を入力として受け取り、トレーニングされたアニメーションキャラクタ100のモーションが現実的に見えるように、複数のターゲットアニメーションデータ101からの異種のボディモーションをブレンドする。物理パラメータは、重力(例えば、地球上または別の宇宙の物体上)などのシミュレーション環境の様々な物理的特性を定義する。トレーニングされたアニメーションキャラクタ100の動きは、キーフレーム化アニメーション150として、深層学習エンジン190からの出力として提供される。
さらに、重み135は、あるアニメーションデータを別のアニメーションデータよりも優先するために、深層学習エンジン190の強化学習エージェント195を介した強化学習の適用中に適用され得る。例えば、2つの別個のターゲットアニメーションデータを使用してヒューマノイドアニメーションキャラクタ100をトレーニングする場合、第1のターゲットアニメーションデータ101aは、腕及び胴体を含むヒューマノイドの上部に向けたものとすることができる。
第1のターゲットアニメーションデータ101aのターゲットボディモーションは、ターゲットキャラクタの手を振っているモーションであってもよく、ターゲットキャラクタは立っていてもよい。第2のターゲットアニメーションデータ101bは、腰領域及び脚を含むヒューマノイドアニメーションキャラクタ100の下部に向けたものとすることができ、ターゲットキャラクタが走っていてもよい。重みは、第2のターゲットアニメーションデータ101bが第1のターゲットアニメーションデータ101aよりも優先されるように適用でき、その結果、トレーニングされたアニメーションキャラクタ100は、特に、シミュレーション環境310の物理パラメータを適用した後に、手を振っているボディモーションよりも走っているボディモーションを優先する。
例えば、シミュレーション環境310において、手を振ることと走ることの両方を同時に行うことは物理的に困難である可能性がある。重み135の適用は、トレーニングされたアニメーションキャラクタ100がターゲットの走っているモーションに近い、走っているモーションを有するように、手を振っているモーションよりも走っているモーションを優先し、そして、シミュレーション環境310の物理パラメータ130に従うために、抑制された手を振っているモーションを有する。そのようにして、トレーニングされたアニメーションキャラクタ100のブレンドされたモーションは、シミュレーション環境310に対して現実的に見えることになる。
図1Bは、前に紹介したように、異種のボディモーションを有するターゲットアニメーションデータを使用してアニメーションキャラクタの手足及び/またはボーンをトレーニングするために使用される例示的なニューラルネットワーク190(例えば、深層学習エンジン)を示す。このようにして、入力ターゲットアニメーションデータ(例えば、1つ以上のターゲットアニメーションデータ、2つ以上のターゲットアニメーションデータ)として与えられると、強化学習は、特定のシミュレーション環境においてトレーニングされたアニメーションキャラクタの手足をトレーニングするためにニューラルネットワーク190の強化学習エージェント195によって適用され得る。
このようにして、デジタルアニメーションキャラクタは、ターゲットアニメーションキャラクタの以前に定義されたターゲットアニメーションデータを使用して生成され得る。より具体的には、ターゲットアニメーションキャラクタの異種のターゲットモーションは、トレーニング中に一緒にブレンドされて、トレーニングされたアニメーションキャラクタ100の最終的な動きを生成することができ、ターゲットモーションは、トレーニングされたアニメーションキャラクタ100のボーン階層110の異なる部分(例えば、手を振っている上半身、走っている下半身)に向けたものとすることができる。ターゲットアニメーションキャラクタのターゲットモーションのブレンド中、トレーニングされたアニメーションキャラクタ100の動きは、実施形態では、シミュレーション環境310の物理パラメータ、及びアニメーションデータの重み付けに従う。
より具体的には、このトレーニングされたキャラクタ100のトレーニングは、本開示の一実施形態による深層学習エンジン190によって実施される。深層学習エンジン190は、深層学習アルゴリズム、強化学習、または他の人工知能ベースのアルゴリズムを含む人工知能を利用して、アニメーションキャラクタをトレーニングする。一実施形態では、ニューラルネットワーク190は、1つまたは複数のサーバデバイスに実装することができる。各サーバデバイスは、並列コンピューティング用の1つ以上のコアを有することができる。
このようにして、高度に確率的な環境での強化学習の問題を解決するために、並列コンピューティング用に複数のコアを構成できる。一実施形態では、並列化は、深層学習エンジンによって適用される強化学習アルゴリズムを安定化するように機能する(例えば、更新を非相関化する)。別の実施形態では、並列化が、観測されたデータの非定常性を低減する。さらに別の実施形態では、並列化は、強化学習中のパラメータ空間の探索を増加させる(例えば、局所的な最小値を回避するのに役立つ)。
より具体的には、学習段階中に、強化学習は、強化学習エージェント195によって適用されて、深層学習エンジン190をトレーニングして、ボーンの向きに基づいて、シミュレーション環境においてトレーニングされたアニメーションキャラクタのボーン階層110のジョイントパラメータ(例えば、角度、位置など)を制御する。ジョイントパラメータは、強化学習によって決定されたボーンの向きに対して自動的に決定される。例えば、ボーン階層110内のボーンについてボーンの向きを操作して、強化学習は、モーションシーケンス内の所与のフレームのアニメーションデータに基づいて、そのボーンのターゲットの向きからボーンのトレーニングされた向きの距離メトリックを決定する。その距離メトリックは、強化学習の後のループ及び/または反復で使用される報酬であってもよく、強化学習は、一実施形態では、その距離メトリックを低減するように構成され、距離メトリックに関連するボーンの向きは、シミュレーション環境310の物理パラメータ及び/または重みでさらに制約され得る。
ニューラルネットワーク190は、データセットを分析して、異種のボディモーションを有するアニメーションデータを使用して、トレーニングされたアニメーションキャラクタの手足及び/またはボーンの1つまたは複数のサブセットをトレーニングするための自動分析及び/または学習ツールの実施例を表す。様々なタイプのニューラルネットワーク190が可能である。一実施例では、ニューラルネットワーク190は、深層学習エンジン190によって実装され得る深層学習をサポートする。
したがって、教師ありまたは教師なしのトレーニングを用いたディープニューラルネットワーク、畳み込みディープニューラルネットワーク、及び/またはリカレントニューラルネットワークを実装することができる。別の実施例では、ニューラルネットワーク190は、強化学習、または報酬ベースの学習(例えば、成功基準、成功メトリック、距離メトリックなどを使用)、インクリメンタル学習などをサポートする深層学習ネットワークを含む。例えば、ニューラルネットワーク190は、強化学習アルゴリズムをサポートするマルコフ決定プロセス(MDP)として設定されている。
一般に、ニューラルネットワーク190は、人工ニューラルネットワークなどの相互接続されたノードのネットワークを表す。各ノードは、データからある情報を学習する。インターコネクション(相互接続)を介して、ノード間で知識を交換することができる。ニューラルネットワーク190への入力により、ノードのセットがアクティブ化される。次に、このノードのセットは、他のノードをアクティブ化し、それにより入力に関する知識が伝播される。このアクティブ化プロセスは、出力が提供されるまで、他のノードにわたって繰り返される。
図示されるように、ニューラルネットワーク190は、ノードの階層を含む。最下位階層に、入力層191が存在する。入力層191は、入力ノードのセットを含む。例えば、これらの入力ノードはそれぞれ、ターゲットモーションのボーンの向きにマッピングされる。
最上位階層には、出力層193が存在する。出力層193は、出力ノードのセットを含む。出力ノードは、例えば、トレーニングされたAIモデル160の1つ以上のコンポーネントに関連する判断(例えば、アクション、予測、所与の入力データのセットに対するゲームプレイの成功の予測など)を表す。前に説明したように、出力ノードは、与えられた入力のセットに対してトレーニングされたアニメーションキャラクタのボーン階層について学習されたボーンの向きを識別することができる。これらの結果は、所定の入力セットに対して適切なボーンの向きを繰り返し決定するために、学習の前の反復から得られた、事前に決定された真の結果、または学習されたアクションと結果と比較できる。
具体的には、入力層191と出力層193との間に、隠れ層192が存在する。隠れ層192は、「N」個の隠れ層を含み、「N」は、1以上の整数である。次に、隠れ層のそれぞれはまた、隠れノードのセットも含む。入力ノードは、隠れノードと相互接続されている。同様に、隠れノードは、出力ノードと相互接続されているため、入力ノードは、出力ノードと直接相互接続されていない。複数の隠れ層が存在する場合、入力ノードは、最下位の隠れ層の隠れノードと相互接続される。次に、これらの隠れノードは、次の隠れ層の隠れノードと相互接続され、以下同様に続く。次の最上位の隠れ層の隠れノードは、出力ノードと相互接続される。インターコネクションは、2つのノードを接続する。インターコネクションは、学習することができる数値の重みを有し、ニューラルネットワーク190を入力に適応可能でかつ学習可能なものとする。
一実施形態では、隠れ層192は、ニューラルネットワーク190内に3つの隠れ層を含むことができ、各隠れ層は、128個のニューロンを有し得る。ニューラルネットワーク190はまた、前述のように、入力層191及び出力層193を含み得る。したがって、異種のボディモーションを有する2つ以上のターゲットアニメーションデータを使用してアニメーションキャラクタ100をトレーニングするために使用されるニューラルネットワーク190内に4万7000個を超えるニューロンが存在し得る。
一般に、隠れ層192により、入力ノードに関する知識が、出力ノードに対応するすべてのタスク間で共有されることが可能となる。そのようにするため、一実施形態では、隠れ層192を介して入力ノードに変換fが適用される。一実施例では、変換fは非線形である。例えば、整流関数f(x)=max(0,x)を含む様々な非線形変換fが利用可能である。
ニューラルネットワーク190はまた、最適解を見つけるためにコスト関数cを使用する。コスト関数は、所与の入力xに関してf(x)と定義されたニューラルネットワーク190によって出力される予測と、グラウンドトゥルースまたはターゲット値y(例えば見込まれる結果)との偏差を測定する。最適解は、最適解のコストよりコストの低い解がない状況を表す。コスト関数の例として、グラウンドトゥルースラベルが利用可能なデータの場合、予測とグラウンドトゥルースとの平均二乗誤差が挙げられる。学習プロセス中に、ニューラルネットワーク190は、誤差逆伝播アルゴリズムを使用して、様々な最適化方法を採用し、コスト関数を最小化するモデルパラメータ(例えば隠れ層192内のノード間のインターコネクションの重み)を学習し得る。このような最適化方法の一例として、確率的勾配降下法が挙げられる。
一実施例では、ニューラルネットワーク190用のトレーニングデータセットは、同じデータ領域からのものであり得る。例えば、ニューラルネットワーク190は、所与の入力セットまたは入力データ(例えば、2つ以上のターゲットアニメーションデータ)についてトレーニングされたキャラクタ100のボーン階層110をアニメーション化するために実行されるボーンの向き及び対応するジョイントパラメータを学習するようにトレーニングされる。
この図では、データドメインにターゲットアニメーションデータが含まれ、1つ以上のターゲットアニメーションデータ、2つ以上のアニメーションデータなどが含まれる。ターゲットアニメーションデータは、トレーニングされたアニメーションキャラクタのボーン階層の様々な部分に対する異種のボディモーションを表す。別の実施例では、トレーニングデータセットは、ベースライン以外の入力データを含むように、様々なデータ領域からのものである。
したがって、ニューラルネットワーク190は、ターゲットアニメーションデータによって定義された異種のボディモーションをブレンドすることによって、トレーニングされたアニメーションキャラクタ100のモーションを学習することができる。
システム170の様々なモジュールの詳細な説明とともに、流れ図200Aは、本開示の一実施形態による、強化学習を用いてアニメーションモデルをトレーニングし、異種のボディモーションを表す2つ以上のアニメーションデータを使用するための方法を開示する。フロー図200Aは、前述の深層学習エンジン190を実装するサーバシステム内に実装することができる。
具体的には、210において、この方法は、第1のターゲットアニメーションデータを、トレーニングされたアニメーションキャラクタの第1のボーンのサブセットにマッピングすることを含む。初期状態では、第1のボーンのサブセットは、キーフレームからキーフレームへの基準状態(例えば、立っている、静止しているなど)の場合があり、この場合は結果としてモーションシーケンス全体にわたってモーションあるいは動きがない。第1のターゲットアニメーションデータは、トレーニングされたアニメーションキャラクタのボディの特定の部分にマッピングされ、その部分をトレーニングするために使用され得る、ターゲットキャラクタの第1のターゲットモーションシーケンスを表す。その特定の部分は、トレーニングされたアニメーションキャラクタのボーン階層内の第1のボーンのサブセットに対応する。
説明のために、第1のターゲットアニメーションデータは、第1のターゲットキャラクタの上部(例えば、腕及び胴体)とすることができ、これは、トレーニングされたキャラクタのボディの上部(例えば、ボーン階層の上部)にマッピングされる。第1のアニメーションデータによって表されるターゲットモーションシーケンスは、手を振っているターゲットキャラクタの上部の腕であり得る。第1のターゲットアニメーションデータは、トレーニングされたキャラクタの第1のボーンのサブセットをトレーニングするために使用され、その結果、トレーニングされたキャラクタのボーン階層の上部は、手を振ることを学ぶなど、第2のターゲットキャラクタのターゲットのモーションを学習する。
220において、この方法は、第2のターゲットアニメーションデータを、トレーニングされたアニメーションキャラクタの第2のボーンのサブセットにマッピングすることを含む。初期状態では、第1のボーンのサブセットは、キーフレームからキーフレームへの基準状態(例えば、立っている、静止しているなど)の場合があり、この場合は結果としてモーションシーケンス全体にわたってモーションがない。第2のターゲットアニメーションデータは、トレーニングされたアニメーションキャラクタのボディの特定の部分の第2のモーションシーケンスを表す。その特定の部分は、トレーニングされたアニメーションキャラクタのボーン階層内の第2のボーンのサブセットに対応する。
説明のために、2つの別個のターゲットアニメーションデータを使用してアニメーションキャラクタ(例えば、ヒューマノイド)をトレーニングする実施例を続けると、第2のターゲットアニメーションデータは、第2のターゲットキャラクタの下部(例えば、腰と脚のボーン)の場合があり、これは、トレーニングされたキャラクタのボディの下部(例えば、ボーン階層の下部)にマッピングされる。第2のアニメーションデータによって表されるターゲットモーションシーケンスは、走っているモーションにおけるターゲットキャラクタの下部の脚であり得る。第2のターゲットアニメーションデータは、トレーニングされたキャラクタの第2のボーンのサブセットをトレーニングするために使用され、その結果、トレーニングされたキャラクタのボーン階層の下部は、走ることを学ぶなど、第2のターゲットキャラクタのターゲットのモーションを学習する。
230で、この方法は、第1のターゲットアニメーションデータを使用して第1のボーンのサブセットをトレーニングするため、及び第2のアニメーションデータを使用して第2のボーンのサブセットをトレーニングするために、複数の反復にわたって強化学習を適用することを含む。具体的には、第1のターゲットアニメーションデータは、第1のボーンのサブセットをトレーニングするために使用され、第1のボーンのサブセットにおけるボーンの向きは、トレーニング中に調整される。また、第2のターゲットアニメーションデータは、第2のボーンのサブセットをトレーニングするために使用され、第2のボーンのサブセットにおけるボーンの向きは、トレーニング中に調整される。一実施形態では、各ボーンのサブセットのトレーニングは、強化学習の各反復で同時に実行される。加えて、第1及び第2のボーンのサブセットのトレーニングには、第1及び第2のボーンのサブセットのボーンの向きを調整することが含まれる。
対応するボーンの向きがわかれば、そのボーンの適切なジョイントパラメータは、深層学習エンジンまたは別の処理サーバを介して適用されるように自動的に決定できる。すなわち、ボーンの階層におけるボーンの複数のジョイントのジョイントパラメータは、第1及び第2のボーンのサブセットにおける調整された向きに応じて自動的に調整される。具体的には、シミュレーションでトレーニングされたキャラクタは、ジョイントモータを介して駆動され、そこでは、位置(移動先)、速度、またはトルクのいずれかを指定することでモータを操作できる。説明したように、一実施形態では、位置(例えば、ボーンの向き)がモータを駆動するために使用される。ニューラルネットワークは、各ジョイントの位置の形で(例えば、調整されたボーンの向きに基づいて)アクションのセットを出力し、これにより、ジョイントモータが応答し、トレーニングされたキャラクタが動く。
具体的には、強化学習の各反復で、第1のサブセットのボーンの向きは、対応する報酬メトリックに従って調整される。これは、モーションシーケンス全体を通じてキーフレームごとに実行される。例えば、報酬メトリックは、対応するボーンのトレーニングされた向き(例えば、現在の反復に関連する)と対応するボーンのターゲットの向き(例えば、対応するターゲットアニメーションデータに基づく)との間の距離メトリック(例えば、四元数距離)であり得る。
一実施形態では、ボーンの向きは、四元数メトリックによって定義され、ボーンの向きは、確率的に調整することができる。単独で行うと、強化学習を適用によって、トレーニングされたアニメーションキャラクタのボーン階層の対応する部分が、第1のターゲットアニメーションデータによって表されるターゲットモーションとほぼ同じモーションを有するようにトレーニングされる(例えば、手を振っているボディの上部)。以下でさらに詳しく説明するように、強化学習では、シミュレーション環境の重み付けと物理パラメータを適用して、トレーニングされたモーションを変更できる。
さらに、強化学習の各反復で、第2のサブセットのボーンの向きは対応する報酬メトリックに従って同時に調整される。これは、モーションシーケンス全体を通じてキーフレームごとに実行される。例えば、報酬メトリックは、対応するボーンのトレーニングされた向き(例えば、現在の反復に関連する)と対応するボーンのターゲットの向き(例えば、対応するターゲットアニメーションデータに基づく)との間の距離メトリック(例えば、四元数距離)であり得る。一実施形態では、ボーンの向きは、四元数によって定義され、ボーンの向きは、確率的に調整することができる。単独で行うと、強化学習を適用によって、トレーニングされたアニメーションキャラクタのボーン階層の対応する部分が、第2のターゲットアニメーションデータによって表されるターゲットモーションとほぼ同じモーションを有するようにトレーニングされる(例えば、走っているボディの下部)。以下でさらに詳しく説明するように、強化学習では、シミュレーション環境の重み付けと物理パラメータを適用して、トレーニングされたモーションを変更できる。
さらに、この方法は、シミュレーション環境の物理パラメータを適用することによって、強化学習の各反復で、第1のボーンのサブセットを第2のボーンのサブセットと合成することを含む。物理学は、アクション(位置)がジョイントモータに送信された後に加えられる圧迫と力のセットである。これらの圧迫と力は、シミュレーションでジョイントとキャラクタリンクが実際にどのように動くかに影響する。言い換えると、壁が途中にあって、ジョイントモータが壁を通してリンクを動かそうとすると、壁は力で反応し、(壁がしっかりしていると仮定すると)リンクがもともと意図されていたように動くのではなく、キャラクタが後方に押される。
言い換えると、合成操作は、第1及び第2のボーンのサブセットのボーンの調整された向きの相対的な調整を補償する。具体的には、ボーンの向きはさらに補償され(例えば、対応するボーンの向きへの追加の調整)、その結果、第1のボーンのサブセットのボーンの向きへの調整は、それらが第2のボーンのサブセットのボーンの向きへの調整と矛盾する場合に可能でなく、その逆も同じである。例えば、対応するボーンの向きへの調整が矛盾している場合、補償する相対的な調整が、調整された向きにさらに適用され得る。したがって、第1のターゲットアニメーションデータによって提供される第1のモーション(例えば、手を振っている第1のターゲットキャラクタの上部)は、第2のターゲットアニメーションデータによって提供される第2のモーション(例えば、走っている第2のターゲットキャラクタの下部)と、シミュレーション環境の物理パラメータと矛盾しない方法でブレンドされ得る。
具体的には、トレーニングされたキャラクタのボーン階層は、2つ以上のボーンのサブセットを含み、ボーンのサブセットのそれぞれは、対応するターゲットキャラクタの対応するターゲットアニメーションデータを使用する強化学習を通じてアニメーション化される。ボーンのサブセットは相互接続されているため、あるサブセットのボーンのモーションが別のサブセットのボーンのモーションに影響を与える可能性がある。
例えば、トレーニングされたアニメーションキャラクタ(例えば、ヒューマノイド)が2つの別個のターゲットアニメーションデータを使用してトレーニングされている場合、トレーニングされたキャラクタのボーン階層には、第1のターゲットアニメーションデータによってトレーニングされた第1のボーンのサブセット(例えば、ボーン階層の上部向け-手を振っている)及び第2のターゲットアニメーションデータによってトレーニングされた第2のボーンのサブセット(例えば、ボーン階層の下部向け-走っている)が含まれる。
対応するターゲットキャラクタのそれぞれは、対応するターゲットアニメーションデータによって定義される特定のターゲットボディモーションを持っている。このようにして、トレーニングされたキャラクタは、特定のシミュレーション環境の強化学習を通じて、2つ以上のターゲットアニメーションデータに関連付けられた異種のボディモーションをブレンドする。計算された報酬に影響を与える異種のボディモーションをブレンド及び/または合成するときに、重みを適用することもできる。
強化学習には、シミュレーション環境の物理パラメータを、以前に取得したボーン階層の調整されたボーンの向きに適用することも含まれる場合がある。シミュレーション環境でどのボーンをどの程度調整する必要があるかの決定は、重みを使用して達成できる。つまり、2つの異なるターゲットモーションを試行し、モーションの1つを強調しないようにする調整は、重みを使用して実施できる。例えば、ターゲットアニメーションデータに適用される重みは、どのモーションが優先されるかを指定できる。具体的には、すべてのリンク及び/またはボーンには、トレーニングされたキャラクタのボーン階層内の他のリンク及び/またはボーンのすべてに対してそのリンクがどれほど重要であるかを指定する重みが関連付けられている。
したがって、ボディの上部のリンク及び/またはボーンがボディの下部のリンク及び/またはボーンよりも高く重み付けされている場合、学習された動作は、ボディの下部のモーションに完全に従わないという代償を払って、ボディの上部の動作と可能な限り一致しようとする。RLトレーニングフェーズでの探索中に、ニューラルネットワークは、どのモーションが実行可能か、どのモーションが失敗につながるかを学習する。このプロセスを通じて、ニューラルネットワークは、モーションを実行できるようにする動きを優先することによって、不安定性を克服することを自然に学習する。
図3Aは、本開示の一実施形態による、異種のターゲットボディモーションを有する2つ以上のターゲットアニメーションデータを使用してアニメーションキャラクタをトレーニングするための強化学習を示すワークフローである。深層学習エンジン190は、複数のターゲットアニメーションデータを入力として受け取る。例えば、2つの別個のアニメーションデータは、第1のアニメーションデータA(101a)(手を振っているモーションを有するトレーニングされたキャラクタの上部向け)及び第2のアニメーションデータB(101b)(走っているモーションを有するトレーニングされたキャラクタの下部向け)を含む。複数のターゲットアニメーションデータに使用されるボーンのマッピングは、トレーニングされたアニメーションキャラクタのボーン階層にマッピングすることができる。
さらに、他のアニメーションデータに対するアニメーションデータの重要性を示す重みを入力することができる。例えば、一実施形態では、第2のアニメーションデータB(101b)の走っているモーションは、第1のアニメーションデータA(101a)よりも優先することができ、そのため第2のアニメーションデータB(101b)がより高い重み値を有する。他の実施形態では、第2のアニメーションデータB(101b)は、より低い重み値を有して、重みがどのように使用されるかに応じて、第1のアニメーションデータA(101a)よりも優先されることを示すことができる。
シミュレーションでトレーニングされたキャラクタは、ジョイントモータを介して駆動され、そこでは、位置(移動先)、速度、またはトルクのいずれかを指定することでモータを操作できる。一実施形態では、ボーンの位置及び/または向きなどの位置は、ジョイントモータを駆動するために使用され、次に、これは、ジョイントモータによって指定されたジョイント位置を駆動するために使用され得る。ニューラルネットワークは、各ジョイントの位置の形でアクションのセットを出力し、これにより、対応するジョイントモータが応答し、キャラクタが動く。
例えば、深層学習エンジン190の強化学習エージェント195によって適用される強化学習の各反復において、現在の状態320は、対応する報酬値とともに決定される。現在の状態320は、トレーニングされたキャラクタのボーン階層のボーンのサブセットのそれぞれの向きを含み、各ボーンのサブセットは、対応するターゲットアニメーションデータによってトレーニングされる。具体的には、モーションシーケンス内の各キーフレームについて、現在の状態320は、トレーニングされたアニメーションキャラクタのポーズのボーンの向きを含む。
これは、トレーニングされたアニメーションキャラクタのボーン階層内の各ボーンに対して実行され、ボーン階層(BH:bone hierarchy)には、トレーニングに使用されるボーンのサブセットがすべて含まれる。一実施形態では、各ボーンの向きは、四元数の向きによって定義される。結果として、現在の状態320は、モーションシーケンス内の各キーフレームのボーン階層のボーンの向きを含む。説明のために、モーションシーケンスは500個から2000個の間のいずれかのキーフレームを有することができる。
ボーン階層の各ボーンは、報酬値を有することができる。報酬値は、現在の状態320によって定義される対応するボーンの向きと、対応するターゲットアニメーションデータによって定義される同じボーンのターゲットの向きとの間の距離メトリックである。報酬値は、以下に説明するように、シミュレーション環境310を示す物理パラメータ及び重みを適用した後に計算することができる。一実施形態では、距離メトリックは、2つの四元数計量間の角距離を定義する四元数距離である(例えば、ラジアンで測定される)。距離メトリックは、対応するボーンのトレーニングされた向きの現在の状態320がターゲットの向きにどれだけ近いかを示す。報酬メトリックとして、距離メトリックは強化学習が機能できる基準を提供する。具体的には、強化学習は、強化学習ループの反復にわたって距離メトリックを削減しようとすることができる。
一実施形態では、ボーン階層内のボーンは、向き(軸及び角度)ではなく、方向(例えば、軸)によって定義される。その場合、強化学習は、対応するボーンのトレーニングされた方向の現在の状態320と、対応するターゲットアニメーションデータによって定義されるボーンのターゲット方向との間のボーンの方向を一致させるために適用される。
モーションシーケンス内のトレーニングされたキャラクタ及びキーフレームのトレーニングされたポーズごとに、対応するボーンのトレーニングされた向きの現在の状態320及びその報酬値に基づいて、そのボーンに対してアクションをとることができる。前述のように、深層学習エンジン190のニューラルネットワークは、各ジョイントの位置の形でアクションのセットを出力し、これにより、ジョイントモータが応答し、トレーニングされたキャラクタが動く。このプロセスは、キーフレーム(例えば、対応するポーズ)の各ボーンに対して実行され、モーションシーケンスの各キーフレームに対して繰り返される。アクションには、対応するボーンの新しいボーンの向きが含まれ得る。アクションは、トレーニングされたモーションが強化学習の各反復でターゲットモーションにさらに厳密に従うように、報酬値を継続的に減らすことが目標であることを考慮に入れることができる。一実施形態では、アクションは確率的に決定される。
図3Aに示されるように、アクションのセット330におけるトレーニングされたキャラクタのボーン階層のボーンの向きは、前述のように、シミュレーション環境310の物理パラメータの影響を受ける。より具体的には、強化学習は、アクションのセット330から以前に取得されたボーン階層の調整されたボーンの向きへのシミュレーション環境の物理パラメータの適用を含む。前述したように、物理学は、アクション(位置)がジョイントモータに送信された後に加えられる圧迫と力のセットである。これらの圧迫と力は、シミュレーションでジョイントとキャラクタリンクが実際にどのように動くかに影響する。言い換えると、壁が途中にあって、ジョイントモータが壁を通してリンクを動かそうとすると、壁は力で反応し、(壁がしっかりしていると仮定すると)リンクがもともと意図されていたように動くのではなく、キャラクタが後方に押される。そのようにして、調整されたボーンの向きは、シミュレーション環境310の物理パラメータによって制約される。
すなわち、さらに補償する相対的調整を行って、物理パラメータに従うことかでき、その結果、ボーンの向きがシミュレーション環境の物理パラメータによって制約されるので、トレーニングされたアニメーションキャラクタが物理パラメータに従う。例えば、第1のターゲットアニメーションデータから取得したボーンのトレーニングされた向きが、第2のターゲットアニメーションデータから取得した別のボーンのトレーニングされた向きと競合するか、矛盾する場合、向きのうち1つ以上がさらに補償され(補償する相対的調整)、シミュレーション環境の物理パラメータに従う。物理学が適用された後、システムはトレーニングされたキャラクタの最終状態を測定し(例えば、対応する強化学習の反復のために)、次にこの観察を深層学習エンジン190のニューラルネットワークへの次の入力として使用する。
各ボーンの報酬値は、以前に導入された距離メトリックに基づいて決定できる。例えば、報酬値は、シミュレーション環境の物理パラメータを適用した後の対応するボーンの向きと、対応するターゲットアニメーションデータによって定義された同じボーンのターゲットの向きとの間の距離メトリックである。報酬値は、モーションシーケンスの各キーフレームのボーン階層内の各ボーンに対して決定される。
どのボーンをどの程度調整する必要があるかの決定は、重みを使用して達成できる。例えば、ターゲットアニメーションデータに適用される重みは、どのモーションが優先されるかを指定できる。つまり、重みは、ターゲットモーションの1つまたは複数を強調しないことによって、異種のターゲットモーションをブレンドしようとする調整を提供する。具体的には、ボーン階層のすべてのリンク及び/またはボーンには、他のリンク及び/またはボーンのすべてに対してそのリンクがどれほど重要であるかを指定する重みが関連付けられている。2つの異なるターゲットアニメーションデータを使用してアニメーションキャラクタをトレーニングする場合の説明を続けると、第1のターゲットアニメーションデータA(101a)を使用してトレーニングされたボーン階層の下部の走っているモーションが、第2のターゲットアニメーションデータB(101b)を使用してトレーニングされた、トレーニングされたキャラクタのボーン階層の上部の手を振っているモーションよりも優先されてもよい。
例えば、第2のターゲットアニメーションデータ(例えば、走っている)は、第1のターゲットアニメーションデータよりも重み付けされ得る。トレーニングされたキャラクタのボディの上部のリンク及び/またはボーンがトレーニングされたキャラクタのボディの下部のリンク及び/またはボーンよりも高く重み付けされている場合、トレーニングされたキャラクタの学習された動作は、ボディの下部のモーションに完全に従わないという代償を払って、ボディの上部の動作と可能な限り一致しようとする。このようにして、トレーニングされたアニメーションキャラクタのトレーニングされたモーションは、より多くの走っているモーションを保持し、シミュレーション環境の物理パラメータに従うように、手を振っているモーションをより大きく調整する。例えば、トレーニングされたキャラクタがシミュレーション環境でバランスを保つように、手を振るのが抑制されたり、目立たなくなったりすることができる。または、ボーン階層の上部は、下部が走り続けている間、バランスを維持するためにバランスモーションを行うことができる。
強化学習トレーニングフェーズでの探索中に、ニューラルネットワークは、どのモーションが実行可能か、どのモーションが失敗につながるかを学習する。このプロセスを通じて、ニューラルネットワークは、トレーニングされたキャラクタが望ましい全体的なモーションを実行できるようにする動きを優先することによって、不安定性を克服することを自然に学習する。つまり、強化学習の探索フェーズ中に(例えば、1回以上の反復を通じて)、トレーニングされたキャラクタの1つのシームレスなモーションに、異種のターゲットモーションが一緒に融合またはブレンド、または合成される。
より具体的には、強化学習における重み付けの使用は、対応するキーフレームのトレーニングされたアニメーションキャラクタの対応するポーズ(例えば、アクションのセット330で定義される)に対するボーンの報酬値(例えば、距離メトリック)に適用され得る。アニメーションキャラクタをトレーニングするための2つの別個のターゲットアニメーションデータの例を考えると、ボーン階層の上部のアニメーションデータは、報酬値へのその影響を少なくするように重み付けすることができる。例えば、0から1の間のスケールで、1が非常に優先される場合、ボーン階層の上部(例えば、手を振っている)の影響を強調しないように、対応する報酬値(例えば、四元数距離)を低い値(例えば、0.25)で重み付けすることができる。同様に、ボーン階層の下部のアニメーションデータは、報酬値へのその影響を増やすために重みを付けることができる。例えば、(例えば、走っている)ボーン階層の下部の影響を強調するために、対応する報酬値(例えば、四元数距離)をより高い値(例えば、0.95)で重み付けすることができる。そのため、シミュレーション環境の物理パラメータに従う(例えば、手を振っていることを強調せず、下半分で走っているのを強調する)ために、ボーン階層の上部にあるボーンが最終的にターゲットの向きから離れる(つまり、距離が大きくなる)場合でも、報酬値(例えば、四元数距離)は、適切に重み付けされているため非常に低いままであることが可能であり、強化学習の反復ごとに低いままであることも可能である。
さらに、モーションシーケンス全体の全体的な報酬値を決定することができる。例えば、距離メトリックは、モーションシーケンス内の各キーフレーム及び対応するポーズのトレーニング済みキャラクタのボーン階層内の各ボーンの向きに対して決定される。キーフレームごとに、ボーン階層内のボーンの距離メトリックのキーフレーム合計を決定できる。総和は、モーションシーケンス内のキーフレームのキーフレーム合計を合計することによって決定できる。モーションシーケンス報酬値430は、この総和に基づいて決定することができる。具体的には、総和が減少するにつれて、モーションシーケンス報酬値430はより高くなり、ボーンの向きに対する肯定的な応答を示す。より高い報酬値430は、トレーニングされたキャラクタのモーションが所与のシミュレーション環境310に対して現実的であることを示す。
物理学が適用された後、トレーニングされたキャラクタの最終状態が(例えば、強化学習の反復ごとに)測定される。この観測値は、ニューラルネットワークへの次の入力として(例えば、強化学習の次の反復のために)提供される。具体的には、モーションシーケンス内の各キーフレームのボーンの向きの新しい状態のセット350は、強化学習エージェント195によって実行される次のラウンドの強化学習のために深層学習エンジン190に入力され得る。一実施形態では、強化学習の別の反復は、報酬値430が前の報酬値(例えば、前の強化学習反復から)から閾値を超えて変更された(例えば、差がある)ときに実行される。つまり、強化学習をもう一度繰り返すことが有益な場合がある。
他方、強化学習の反復は、強化学習の2つ以上の反復間のモーションシーケンス報酬値430が閾値を超えて変化しないときに終了し得る。つまり、強化学習によって決定されたボーンの向きの変化は、報酬値を最小限に増加させるため、強化学習の別の反復から得られる地点は最小限に抑えられる。その結果、強化学習が終了すると、トレーニングされたキャラクタの1つのシームレスなモーションに、異種のターゲットモーションが融合またはブレンド、または合成される。
図3Bは、本開示の一実施形態による、異種のターゲットボディモーションを有する2つ以上のターゲットアニメーションデータを使用してアニメーションキャラクタをトレーニングするときの強化学習のループを示す。トレーニングされたキャラクタ100のボーン階層110は、説明のために、ボーンの2つのサブセットを含み得る。ボーン階層110は、ボーンの2つ以上のサブセットを含むことができ、各サブセットは、対応するターゲットアニメーションデータによってトレーニングされることが理解される。第1のボーンのサブセット110aは、腕及び胴体などのボーン階層110の上部を含む。第1のボーンのサブセット110aは、ボーンB1、B2、B3、B4、及びB5を含む。第1のターゲットアニメーションデータA(101a)は、第1のボーンのサブセット110aをトレーニングするために使用されるターゲットとされるモーションを表す。
重み(w=0.4)は、第1のターゲットアニメーションデータA(101a)に適用するかまたは関連付けることができる。第2のボーンのサブセット110bは、腰や脚などのボーン階層110の下部を含む。第2のボーンのサブセット110bは、ボーンB6、B7、B8、及びB9を含む。第2のターゲットアニメーションデータB(101b)は、第2のボーンのサブセット110bをトレーニングするために使用されるターゲットとされるモーションを表す。重み(w=0.9)は、第2のターゲットアニメーションデータB(101b)に適用するかまたは関連付けることができる。一実施形態では、第2のターゲットアニメーションデータB(101b)は、第1のターゲットアニメーションデータA(101a)の重み値よりも高い重み値を有するため、第2のターゲットアニメーションデータB(101b)よって表されるターゲットモーション(例えば、走っている)は、第1のターゲットアニメーションデータA(101a)によって表されるターゲットモーション(例えば、手を振っている)よりも優先され得る。
表350は、強化学習の反復のための、及びモーションシーケンスのキーフレームに対応するトレーニングされたアニメーションキャラクタの特定のポーズのためのボーン階層110に関連する情報を含む。例えば、列351はボーン識別子を示し、列352は各ボーンが属するボーンのサブセットを示す。例えば、ボーンB1~B5は、第1のボーンのサブセット110aに属する。
ボーンB6~B9は、第2のボーンのサブセット110bに属している。列353は、対応する各ボーンについての以前の(例えば、深層学習エンジン190の強化学習エージェント195への入力としての強化学習の最後の反復からの)報酬値を提供し、報酬値は、対応するボーンの現在の向きと、対応するターゲットアニメーションデータによって定義されたボーンのターゲットの向きの間の四元数距離を示し得る。例えば、報酬値0.37は、ボーンB1の四元数距離を定義する。列354は、ボーン階層110の各ボーンの調整された距離を提供し、調整された距離は、強化学習を通じて決定された、対応するボーンの調整された向きに基づく。さらに、列355は、調整されたボーンの向きに対応する補償相対調整を適用することなどによって、ボーン階層内の各ボーンの調整された向きに物理パラメータ及び重みを適用する。
例えば、第2のボーンのサブセット110bは、対応する重みによって示されるように、第1のボーンのサブセット110aよりも優先される。このようにして、第2のアニメーションデータB(101b)によって表される、走っているモーションは、第1のアニメーションデータA(101a)によって表される手を振っているモーションよりも優先される。したがって、シミュレーション環境及び重み付けの物理パラメータを適用した後、ボーンの向きは、列354に提示された値からさらに補償され得る(例えば、補償相対調整を適用する)。手を振っているモーションが強調されていないため、ターゲットのモーション(手を振っている)からの距離が時間の経過とともに増加する可能性がある。
これは、トレーニングされたアニメーションキャラクタが走ったり手を振ったりしているときにつまずかないようにするためという場合があり、この場合は結果として手を振るのが抑制され、それによって、第1のボーンのサブセット110a内の各ボーンの対応する距離メトリックが増加する。例えば、列355に表される、シミュレーション環境の物理パラメータ及び重みの適用後の第1のボーンのサブセット110aの距離メトリックは、特に第2のボーンのサブセット110bと比較した場合に、対応する補償相対調整の適用後の、列354に表される対応するボーンの調整された距離との差が大きくなり得る。例えば、ボーンB1の場合、列354の調整された距離は0.35であり、シミュレーション環境と重みを考慮した後、列355の距離は0.55で、0.2の差であり、これは、補償相対調整を適用した後のボーンの向きの大きな変化を示している。
それと比較して、走っているモーションが優先されるので、列355に表される、シミュレーション環境の物理パラメータ及び重みの適用後の第2のボーンのサブセット110bの距離メトリックは、特に第1のボーンのサブセット110aと比較した場合に、対応する補償相対調整の適用後の、列354に表される対応するボーンの調整された距離との差が小さくなり得る。例えば、ボーンB6の場合、列354の調整距離は0.12であり、シミュレーション環境と重みを考慮した後、列355の距離は0.11で0.01の差であり、これは、シミュレーション環境と重み付けを考慮するときのボーンの向きの小さい変化を示している。
図4Aは、本開示の一実施形態による、トレーニングされたアニメーションキャラクタのボーン階層の異種のパーツへの2つ以上のターゲットアニメーションデータのマッピングを示し、2つ以上のターゲットアニメーションデータは、異種のターゲットボディモーションを有する。具体的には、複数のターゲットアニメーションデータ101は、マッピングエンジン120への入力として提供される。ターゲットアニメーションデータのそれぞれは、トレーニングされたキャラクタ100(例えば、ヒューマノイド)のボーン階層110内の対応するボーンのサブセットをトレーニングするために使用される。
例えば、異種のモーションを有する2つのアニメーションデータを使用するトレーニングは、前述のように、ボーン階層の上部のターゲットモーション(例えば、手を振っている)を表す第1のアニメーションデータA(101a)と、ボーン階層の下部のターゲットモーション(例えば、走っている)を表す第2のアニメーションデータB(101b)とを含み得る。
図4Bは、本開示の一実施形態による、異種のターゲットボディモーションを有する2つの別個のターゲットアニメーションデータを使用した強化学習によるアニメーションキャラクタ100のトレーニングを示す。アニメーションキャラクタ100は、ボーン階層110によって表される。実施例を続けると、ボーン階層のトレーニングは2つのアニメーションデータを使用して実行できる。具体的には、第1のアニメーションデータA(101a)は、第1のボーンのサブセット110aをトレーニングするために使用され、第2のアニメーションデータB(101b)は、第2のボーンのサブセット110bをトレーニングするために使用される。
第1のアニメーションデータA(101a)は、ターゲットキャラクタの腕及び胴体に特有の手を振っているモーションシーケンス411を表す。手を振っているモーションシーケンス411は、トレーニングされたキャラクタ100のボーン階層の第1のボーンのサブセット110aをトレーニングするために使用される。すなわち、手を振っているモーションは、トレーニングされたキャラクタ100に、より具体的には、トレーニングされたキャラクタ100の腕及び胴体に伝達される。
加えて、第2のアニメーションデータB(101b)は、対応するターゲットキャラクタの腰及び脚に特有の走っているモーションシーケンス412を表す。走っているモーションシーケンス412は、トレーニングされたキャラクタ100のボーン階層の第2のボーンのサブセット110bをトレーニングするために使用される。すなわち、走っているモーションは、トレーニングされたキャラクタ100に、より具体的には、トレーニングされたキャラクタ100の腰及び脚に伝達される。
図4Cは、本開示の一実施形態による、トレーニングされたアニメーションキャラクタの異種のターゲットボディモーションを有する図4Aの2つの別個のターゲットアニメーションデータのブレンドを示し、トレーニングされたボディモーションは、シミュレーション環境の物理パラメータ及び重み付けの適用の後、ターゲットボディボディモーションから変更され得る。具体的には、トレーニングされたアニメーションキャラクタ100のモーションシーケンス413は、ターゲットアニメーションデータA(101a)によって表される手を振っているモーションシーケンス411を、ターゲットアニメーションデータB(101b)によって表される、走っているモーションシーケンス412とブレンドする。
走っているモーションシーケンス412は、(例えば、重み付けを通じて)手を振っているモーションシーケンス411よりも優先されるので、トレーニングされたアニメーションキャラクタ100のモーションは、特にシミュレーション環境及び重みを考慮するとき、手を振っているモーションを犠牲にしながら、より多くの走っているモーションを保持する。例えば、モーションシーケンス413は、ターゲットアニメーションデータB(101b)からの走っているモーションの大部分を保持することができるが、ターゲットアニメーションデータA(101a)からの手を振っているモーションを抑制する。示されるように、図4Cに示されるモーションシーケンス413は、トレーニングのために使用される図4Bに示される積極的な手を振っているモーションシーケンス411(例えば、腕のモーションは約40度の移動である)と比較した場合、手を振るときの制限された腕の動作(例えば、腕の動作は約20度の移動である)を示す。
図5は、本開示の様々な実施形態の形態を実行するために使用することができる例示的なデバイス500の構成要素を示す。例えば、図5は、本開示の一実施形態による、異なるターゲットボディモーションを有する2つ以上のターゲットアニメーションデータを使用してアニメーションキャラクタを訓練することを含む、ゲームアプリケーションの開発に関連して様々な機能を実行することができるAIモデルを訓練するのに適した例示的なハードウェアシステムを示す。このブロック図は、各々が本発明の実施形態を実施するために適した、パーソナルコンピュータ、サーバコンピュータ、ゲーム機、モバイル機器、または他のデジタルデバイスを組み込むことができる、またはそれらである場合があるデバイス500を示す。デバイス500は、ソフトウェアアプリケーション及び任意選択でオペレーティングシステムを実行するための中央演算処理装置(CPU)502を含む。CPU502は、1つ以上の同種または異種の処理コアで構成され得る。
様々な実施形態によれば、CPU502は、1つ以上の処理コアを有する1つ以上の汎用マイクロプロセッサである。さらなる実施形態は、深層学習、手足トレーニング、アニメーションキャラクタのトレーニング済み使用、及びユーザ分類のために構成されたアプリケーションの、媒体及び双方向エンターテインメントアプリケーションなどの、きわめて並列かつ計算集約的なアプリケーションに特に適合されたマイクロプロセッサアーキテクチャを有する1つ以上のCPUを使用して、実装することができる。例えば、CPU502は、2つ以上の異種のターゲットのボディモーションを有するターゲットアニメーションデータを使用してアニメーションキャラクタをトレーニングするなど、様々な機能を提供することに関して学習操作をサポート及び/または実行するように構成されたAIエンジン(例えば、深層学習)190を含むように構成され得る。深層学習エンジンは、アニメーションキャラクタをトレーニングするために強化学習エージェント195を用いた強化学習を適用することを含み得る。
メモリ504は、CPU502が使用するアプリケーション及びデータを記憶する。ストレージ506は、アプリケーション及びデータ用の不揮発性ストレージ及び他のコンピュータ可読媒体を提供し、かつ、固定ディスクドライブ、取り外し可能ディスクドライブ、フラッシュメモリデバイス、及びCD-ROM、DVD-ROM、Blu-ray(登録商標)、HD-DVD、または他の光学記憶デバイス、ならびに信号伝送及び記憶媒体を含み得る。ユーザ入力デバイス508は、1人以上のユーザからのユーザ入力をデバイス500に伝達するものであり、その例としては、キーボード、マウス、ジョイスティック、タッチパッド、タッチスクリーン、スチルまたはビデオレコーダ/カメラ、及び/またはマイクロフォンがあり得る。
ネットワークインタフェース514は、デバイス500が電子通信ネットワークを介して他のコンピュータシステムと通信することを可能にし、ローカルエリアネットワーク、及びインターネットなどの広域ネットワークにわたる有線通信または無線通信を含み得る。オーディオプロセッサ512は、CPU502、メモリ504、及び/またはストレージ506により提供される命令及び/またはデータから、アナログまたはデジタルのオーディオ出力を生成するように適合される。CPU502、メモリ504、データストレージ506、ユーザ入力デバイス508、ネットワークインタフェース510、及びオーディオプロセッサ512を含むデバイス500の構成要素は、1つ以上のデータバス522を介して接続される。
グラフィックサブシステム514が、データバス522及びデバイス500の構成要素とさらに接続されている。グラフィックサブシステム514は、グラフィック処理ユニット(GPU)516とグラフィックメモリ518とを含む。グラフィックメモリ518は、出力画像の各画素の画素データを記憶するために使用される表示メモリ(例えばフレームバッファ)を含む。グラフィックメモリ518は、GPU516と同じデバイスに統合されてもよく、GPU516と別個のデバイスとして接続されてもよく、及び/またはメモリ504内に実装されてもよい。
画素データは、CPU502から直接グラフィックメモリ518に提供することができる。あるいは、CPU502は、所望の出力画像を定義するデータ及び/または命令をGPU516に提供し、これを基に、GPU516は、1つ以上の出力画像の画素データを生成する。所望の出力画像を定義するデータ及び/または命令は、メモリ504及び/またはグラフィックメモリ518に記憶することができる。
実施形態では、GPU516は、シーンの幾何学的構造、照明、陰影、質感、モーション、及び/またはカメラのパラメータを定義する命令及びデータから、出力画像の画素データを生成する3Dレンダリング機能を含む。GPU516はさらに、シェーダプログラムを実行することができる1つ以上のプログラム可能実行ユニットを含み得る。一実施形態では、GPU516は、AIまたは深層学習機能のためなど、追加の処理能力を提供するために、AIエンジン190内に実装されてもよい。
グラフィックサブシステム514は、ディスプレイデバイス510に表示され、または投影システム540によって投影されるよう、グラフィックメモリ518から画像用の画素データを周期的に出力する。ディスプレイデバイス510は、デバイス500からの信号に応じて視覚情報を表示することができる任意のデバイスであってもよく、これにはCRT、LCD、プラズマ、及びOLEDディスプレイが含まれる。デバイス500は、ディスプレイデバイス510に、例えばアナログ信号またはデジタル信号を提供することができる。
よって、本開示では、様々な実施形態において、1つ以上のゲームプレイをサポートするゲームアプリケーションのインスタンスを実行するサーバのネットワークから収集したトレーニングデータを使用してAIモデルを構築するために、ならびにトレーニングされたAIモデルを使用して、ゲームアプリケーション及び/またはゲームアプリケーションのゲームプレイに関連する様々な機能性を提供するために、深層学習(機械学習とも呼ばれる)技術を実施するシステム及び方法について説明した。
本明細書で定義される様々な実施形態は、本明細書で開示される様々な特徴を使用する特定の実施形態に組み合わされ得る、または組み立てられ得ることを、理解されたい。したがって、提供される実施例は、いくつかの可能な実施例にすぎず、様々な要素を組み合わせることでより多くの実施形態を定義することが可能な様々な実施形態に限定されない。ある例では、ある実施形態は、開示されたまたは同等の実施形態の趣旨から逸脱することなく、より少ない要素を含んでもよい。
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースもしくはプログラム可能な消費者向け電気製品、ミニコンピュータ、及びメインフレームコンピュータなどを含む様々なコンピュータシステム構成で実施されてよい。本開示の実施形態はまた、有線ベースまたは無線のネットワークを介してリンクされるリモート処理デバイスによりタスクが行われる分散コンピューティング環境においても、実施することができる。
上記の実施形態を念頭に置いて、本開示の実施形態がコンピュータシステムに記憶されたデータを含む様々なコンピュータ実装の動作を使用し得ることを理解されたい。これらの動作は、物理量の物理的操作を要する動作である。本開示の実施形態の一部を形成する、本明細書で説明される動作のうちのいずれも、有用な機械動作である。開示の実施形態はまた、これら動作を実行するためのデバイスまたは装置に関する。装置は、必要な目的のために特別に構築されてもよい。または、装置は、コンピュータに記憶されたコンピュータプログラムにより選択的に起動または構成される汎用コンピュータであってもよい。具体的には、様々な汎用マシンを、本明細書の教示に従って書かれたコンピュータプログラムとともに使用することができる。あるいは、必要な動作を実行するためにさらに特化した装置を構築するほうがより好都合であり得る。
本開示はまた、コンピュータ可読媒体上のコンピュータ可読コードとしても具現化され得る。コンピュータ可読媒体は、後でコンピュータシステムにより読み取ることができるデータを記憶できる任意のデータストレージデバイスである。コンピュータ可読媒体の例には、ハードドライブ、ネットクワーク接続ストレージ(NAS)、読み出し専用メモリ、ランダムアクセスメモリ、CD-ROM、CD-R、CD-RW、磁気テープ、ならびに他の光学及び非光学データストレージデバイスが含まれる。コンピュータ可読媒体には、コンピュータ可読コードが分散方式で記憶され実行されるように、ネットワーク接続されたコンピュータシステムにわたり分散されたコンピュータ可読有形媒体が含まれ得る。
方法動作は特定の順序で説明されたが、オーバレイ動作の処理が所望の方法で実行される限り、動作間に他の維持管理動作が実行されてもよく、または動作がわずかに異なる時間に起こるように調整されてもよく、またはシステム内に動作を分散することで、処理に関連する様々な間隔で処理動作が起こることを可能にしてもよいことを、理解すべきである。
前述の開示は、理解を明確にするためにある程度詳細に説明されたが、添付の特許請求の範囲内で特定の変更及び修正を実施できることは明らかであろう。したがって、本実施形態は、限定ではなく例示としてみなされるべきであり、本開示の実施形態は、本明細書に提供される詳細に限定されるものではなく、添付の特許請求の均等物及びその範囲内で変更することが可能である。

Claims (20)

  1. アニメーションで使用するアニメーションキャラクタをトレーニングするための方法であって、
    第1のアニメーションデータをトレーニングされたキャラクタの第1のボーンのサブセットにマッピングし、前記第1のアニメーションデータは、第1のターゲットモーションシーケンスを定義するものであり、
    第2のアニメーションデータを前記トレーニングされたキャラクタの第2のボーンのサブセットにマッピングし、前記トレーニングされたキャラクタのボーン階層は、前記第1のボーンのサブセット及び前記第2のボーンのサブセットを含み、前記第2のアニメーションデータは、第2のターゲットモーションシーケンスを定義するものであり、
    前記第1のアニメーションデータを使用して前記第1のボーンのサブセットをトレーニングするため、かつ前記第2のアニメーションデータを使用して前記第2のボーンのサブセットをトレーニングするために、複数の反復にわたって強化学習を適用し、前記第1のボーンのサブセット及び前記第2のボーンのサブセットのトレーニングは各反復で同時に実行され、かつ、前記第1のボーンのサブセット及び前記第2のボーンのサブセットの前記トレーニングでは、前記第1のボーンのサブセット及び前記第2のボーンのサブセット内のボーンの向きを調整し、
    _前記第1のボーンのサブセットは、シミュレーション環境の物理パラメータを前記第1のボーンのサブセット及び前記第2のボーンのサブセット内のボーンの調整された前記向きに適用することによって、前記強化学習の各反復で前記第2のボーンのサブセットと合成される、方法。
  2. 前記ボーンの向きの調整では、
    ボーンの階層におけるボーンの複数のジョイントのジョイントパラメータを、前記第1のボーンのサブセット及び前記第2のボーンのサブセットに対する結果として生じる向きに応じて自動的に調整する、請求項1に記載の方法。
  3. 前記第1のターゲットモーションシーケンスは、第1のターゲットキャラクタからのもので、前記第2のターゲットモーションシーケンスは、第2のターゲットキャラクタからのものであり、
    前記第1のターゲットモーションシーケンス及び前記第2のターゲットモーションシーケンスは異なるモーションを定義し、
    前記トレーニングされたキャラクタのトレーニングされたモーションシーケンスは、前記第1のターゲットモーションシーケンスと前記第2のターゲットモーションシーケンスとをブレンドする、請求項1に記載の方法。
  4. 前記第1のボーンのサブセット及び前記第2のボーンのサブセットをトレーニングするための前記強化学習の適用では、
    前記ボーン階層内の各ボーンについて、フレーム内の対応するボーンのトレーニングされた位置と、前記フレーム内の前記対応するボーンのターゲット位置との間の距離メトリックを決定し、
    前記距離メトリックを最小化するために、前記トレーニングされた位置を確率的に調整する、請求項1に記載の方法。
  5. さらに、前記フレームの前記ボーン階層内の各ボーンについて、調整されたトレーニングされた位置と、前記フレーム内の前記対応するボーンの前記ターゲット位置との間の調整された距離メトリックを決定し、
    トレーニングされたモーションシーケンスの複数のフレームの前記ボーン階層内のボーンの調整された距離メトリックを合計して、報酬値を決定する、請求項4に記載の方法。
  6. 前記強化学習の次の反復を実行して、前記報酬値が閾値を満たさない場合に、前記第1のボーンのサブセットと前記第2のボーンのサブセットをトレーニングし、
    前記報酬値が前記閾値を満たしたときに前記強化学習を停止する、請求項5に記載の方法。
  7. さらに、前記第1のボーンのサブセット内に含まれる前記対応するボーンの前記距離メトリックに第1の重みを適用し、
    前記第2のボーンのサブセット内に含まれる前記対応するボーンの前記距離メトリックに第2の重みを適用する、請求項4に記載の方法。
  8. アニメーションにおいて使用するアニメーションキャラクタをトレーニングするためのコンピュータプログラムを記憶する、非一時的コンピュータ可読媒体であって、
    第1のターゲットモーションシーケンスを定義する第1のアニメーションデータを、トレーニングされたキャラクタの第1のボーンのサブセットにマッピングするためのプログラム命令を有し、
    第2のアニメーションデータを前記トレーニングされたキャラクタの第2のボーンのサブセットにマッピングするためのプログラム命令を有し、前記トレーニングされたキャラクタのボーン階層は、前記第1のボーンのサブセット及び前記第2のボーンのサブセットを含み、前記第2のアニメーションデータは、第2のターゲットモーションシーケンスを定義するものであり、
    前記第1のアニメーションデータを使用して前記第1のボーンのサブセットをトレーニングするため、かつ前記第2のアニメーションデータを使用して前記第2のボーンのサブセットをトレーニングするために、複数の反復にわたって強化学習を適用するためのプログラム命令を有し、前記第1のボーンのサブセット及び前記第2のボーンのサブセットのトレーニングは各反復で同時に実行され、かつ、前記第1のボーンのサブセット及び前記第2のボーンのサブセットの前記トレーニングでは、前記第1のボーンのサブセット及び前記第2のボーンのサブセット内のボーンの向きを調整し、前記第1のボーンのサブセットは、シミュレーション環境の物理パラメータを前記第1のボーンのサブセット及び前記第2のボーンのサブセット内のボーンの調整された前記向きに適用することによって、前記強化学習の各反復で前記第2のボーンのサブセットと合成される、非一時的コンピュータ可読媒体。
  9. 前記ボーンの向きを調整するための前記プログラム命令が、
    ボーンの階層におけるボーンの複数のジョイントのジョイントパラメータを、前記第1のボーンのサブセット及び前記第2のボーンのサブセットに対する結果として生じる向きに応じて自動的に調整するためのプログラム命令を含む、請求項8に記載の非一時的コンピュータ可読媒体。
  10. 前記第1のターゲットモーションシーケンスは、第1のターゲットキャラクタからのものであり、前記第2のターゲットモーションシーケンスは、第2のターゲットキャラクタからのもので、
    前記第1のターゲットモーションシーケンス及び前記第2のターゲットモーションシーケンスは異なるモーションを定義し、
    前記トレーニングされたキャラクタのトレーニングされたモーションシーケンスは、前記第1のターゲットモーションシーケンスと前記第2のターゲットモーションシーケンスとをブレンドする、
    請求項8に記載の非一時的コンピュータ可読媒体。
  11. 前記第1のボーンのサブセット及び前記第2のボーンのサブセットをトレーニングするための前記強化学習の適用では、
    前記ボーン階層内の各ボーンについて、フレーム内の対応するボーンのトレーニングされた位置と、前記フレーム内の前記対応するボーンのターゲット位置との間の距離メトリックを決定し、
    前記距離メトリックを最小化するために、前記トレーニングされた位置を確率的に調整する、請求項8に記載の非一時的コンピュータ可読媒体。
  12. さらに、前記フレームの前記ボーン階層内の各ボーンについて、調整されたトレーニングされた位置と、前記フレーム内の前記対応するボーンの前記ターゲット位置との間の調整された距離メトリックを決定し、
    トレーニングされたモーションシーケンスの複数のフレームの前記ボーン階層内のボーンの調整された距離メトリックを合計して、報酬値を決定する、請求項11に記載の非一時的コンピュータ可読媒体。
  13. 前記強化学習の次の反復を実行して、前記報酬値が閾値を満たさない場合に、前記第1のボーンのサブセットと前記第2のボーンのサブセットをトレーニングし、
    前記報酬値が前記閾値を満たしたときに前記強化学習を停止する、請求項12に記載の非一時的コンピュータ可読媒体。
  14. さらに、前記第1のボーンのサブセット内に含まれる前記対応するボーンの前記距離メトリックに第1の重みを適用し、
    前記第2のボーンのサブセット内に含まれる前記対応するボーンの前記距離メトリックに第2の重みを適用する、請求項11に記載の非一時的コンピュータ可読媒体
  15. コンピュータシステムであって、
    プロセッサと、
    前記プロセッサに結合され、前記コンピュータシステムによって実行された場合、前記コンピュータシステムに、アニメーションで使用するアニメーションキャラクタをトレーニングするための方法を実行させる命令を記憶しているメモリを有し、前記方法は、
    第1のアニメーションデータをトレーニングされたキャラクタの第1のボーンのサブセットにマッピングし、前記第1のアニメーションデータは、第1のターゲットモーションシーケンスを定義するものであり、
    第2のアニメーションデータを前記トレーニングされたキャラクタの第2のボーンのサブセットにマッピングし、前記トレーニングされたキャラクタのボーン階層は、前記第1のボーンのサブセット及び第2のボーンのサブセットを含み、前記第2のアニメーションデータは、第2のターゲットモーションシーケンスを定義するものであり、
    前記第1のアニメーションデータを使用して前記第1のボーンのサブセットをトレーニングするため、かつ前記第2のアニメーションデータを使用して前記第2のボーンのサブセットをトレーニングするために、複数の反復にわたって強化学習を適用し、前記第1のボーンのサブセット及び前記第2のボーンのサブセットのトレーニングは各反復で同時に実行され、前記第1のボーンのサブセット及び前記第2のボーンのサブセットの前記トレーニングでは、前記第1のボーンのサブセット及び前記第2のボーンのサブセット内のボーンの向きを調整し、前記第1のボーンのサブセットは、シミュレーション環境の物理パラメータを前記第1のボーンのサブセット及び前記第2のボーンのサブセット内のボーンの調整された前記向きに適用することによって、前記強化学習の各反復で前記第2のボーンのサブセットと合成されるものである、コンピュータシステム。
  16. 前記方法において、前記ボーンの向きの調整では、
    ボーンの階層におけるボーンの複数のジョイントのジョイントパラメータを、前記第1のボーンのサブセット及び前記第2のボーンのサブセットに対する結果として生じる向きに応じて自動的に調整する、請求項15に記載のコンピュータシステム。
  17. 前記第1のボーンのサブセット及び前記第2のボーンのサブセットをトレーニングするための前記強化学習の適用では、
    前記ボーン階層内の各ボーンについて、フレーム内の対応するボーンのトレーニングされた位置と、前記フレーム内の前記対応するボーンのターゲット位置との間の距離メトリックを決定し、
    前記距離メトリックを最小化するために、前記トレーニングされた位置を確率的に調整し、
    前記第1のターゲットモーションシーケンスは、第1のターゲットキャラクタからのもので、前記第2のターゲットモーションシーケンスは、第2のターゲットキャラクタからのものであり、
    前記第1のターゲットモーションシーケンス及び前記第2のターゲットモーションシーケンスは異なるモーションを定義し、
    前記トレーニングされたキャラクタのトレーニングされたモーションシーケンスは、前記第1のターゲットモーションシーケンスと前記第2のターゲットモーションシーケンスとをブレンドする、請求項15に記載のコンピュータシステム。
  18. 前記方法では、さらに、
    前記フレームの前記ボーン階層内の各ボーンについて、調整されたトレーニングされた位置と、前記フレーム内の前記対応するボーンの前記ターゲット位置との間の調整された距離メトリックを決定し、
    トレーニングされたモーションシーケンスの複数のフレームの前記ボーン階層内のボーンの調整された距離メトリックを合計して、報酬値を決定する、請求項17に記載のコンピュータシステム。
  19. 前記方法では、
    前記強化学習の次の反復を実行して、前記報酬値が閾値を満たさない場合に、前記第1のボーンのサブセットと前記第2のボーンのサブセットをトレーニングし、
    前記報酬値が前記閾値を満たしたときに前記強化学習を停止する、請求項18に記載のコンピュータシステム。
  20. 前記方法では、さらに、
    前記第1のボーンのサブセット内に含まれる前記対応するボーンの前記距離メトリックに第1の重みを適用し、
    前記第2のボーンのサブセット内に含まれる前記対応するボーンの前記距離メトリックに第2の重みを適用する、請求項17に記載のコンピュータシステム。
JP2021555464A 2019-03-15 2020-02-06 異種のターゲットアニメーションデータを使用してキャラクタをトレーニングする強化学習 Active JP7061238B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/355,680 2019-03-15
US16/355,680 US11132606B2 (en) 2019-03-15 2019-03-15 Reinforcement learning to train a character using disparate target animation data
PCT/US2020/017059 WO2020190415A1 (en) 2019-03-15 2020-02-06 Reinforcement learning to train a character using disparate target animation data

Publications (2)

Publication Number Publication Date
JP2022518970A JP2022518970A (ja) 2022-03-17
JP7061238B2 true JP7061238B2 (ja) 2022-04-27

Family

ID=69784527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021555464A Active JP7061238B2 (ja) 2019-03-15 2020-02-06 異種のターゲットアニメーションデータを使用してキャラクタをトレーニングする強化学習

Country Status (5)

Country Link
US (1) US11132606B2 (ja)
EP (1) EP3939010B1 (ja)
JP (1) JP7061238B2 (ja)
CN (1) CN113785330B (ja)
WO (1) WO2020190415A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11850514B2 (en) 2018-09-07 2023-12-26 Vulcan Inc. Physical games enhanced by augmented reality
US11670080B2 (en) 2018-11-26 2023-06-06 Vulcan, Inc. Techniques for enhancing awareness of personnel
US11950577B2 (en) 2019-02-08 2024-04-09 Vale Group Llc Devices to assist ecosystem development and preservation
WO2020198070A1 (en) 2019-03-22 2020-10-01 Vulcan Inc. Underwater positioning system
US11435845B2 (en) * 2019-04-23 2022-09-06 Amazon Technologies, Inc. Gesture recognition based on skeletal model vectors
CN111260762B (zh) * 2020-01-19 2023-03-28 腾讯科技(深圳)有限公司 一种动画实现方法、装置、电子设备和存储介质
US11928764B2 (en) * 2020-09-15 2024-03-12 Nvidia Corporation Neural network motion controller
US20220143820A1 (en) * 2020-11-11 2022-05-12 Sony Interactive Entertainment Inc. Domain adaptation for simulated motor backlash
US20220143821A1 (en) * 2020-11-11 2022-05-12 Sony Interactive Entertainment Inc. Method for robotic training based on randomization of surface stiffness
US20220143822A1 (en) * 2020-11-11 2022-05-12 Sony Interactive Entertainment Inc. Method for robotic training based on randomization of surface damping
KR20220111918A (ko) * 2021-02-03 2022-08-10 삼성전자주식회사 캐릭터 애니메이션 동작 제어 방법 및 장치
US11908058B2 (en) * 2022-02-16 2024-02-20 Autodesk, Inc. Character animations in a virtual environment based on reconstructed three-dimensional motion data
CN115202531A (zh) * 2022-05-27 2022-10-18 当趣网络科技(杭州)有限公司 界面交互的方法、系统和电子装置
JP2024055447A (ja) * 2022-10-07 2024-04-18 ソニーグループ株式会社 情報処理装置、情報処理方法およびプログラム
CN117472190A (zh) * 2023-12-28 2024-01-30 北京天平地成信息技术服务有限公司 基于神经网络的vr物理引擎调配系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012150578A (ja) 2011-01-17 2012-08-09 Square Enix Co Ltd 用例に基づく効率的なモーションデータベースのスタイリング
JP2019191821A (ja) 2018-04-23 2019-10-31 株式会社Preferred Networks モーション処理装置、モーション処理方法、およびプログラム
JP2020113116A (ja) 2019-01-15 2020-07-27 株式会社デジタル・フロンティア モーション生成装置、モーション生成方法、及びプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088042A (en) * 1997-03-31 2000-07-11 Katrix, Inc. Interactive motion data animation system
WO2011106928A1 (en) * 2010-03-02 2011-09-09 Nokia Corporation Methods and apparatuses for facilitating skeletal animation
US20140274373A1 (en) * 2013-03-14 2014-09-18 Adam Olshan System and method for animating virtual characters
JP6325581B2 (ja) * 2013-03-15 2018-05-16 株式会社ソニー・インタラクティブエンタテインメント スケルタルアニメーションのユーザ生成記録
CN106485773B (zh) * 2016-09-14 2019-09-24 厦门黑镜科技有限公司 一种用于生成动画数据的方法和装置
US20180225858A1 (en) * 2017-02-03 2018-08-09 Sony Corporation Apparatus and method to generate realistic rigged three dimensional (3d) model animation for view-point transform
CN106780683A (zh) * 2017-02-23 2017-05-31 网易(杭州)网络有限公司 骨骼动画数据的处理方法及装置
US10311624B2 (en) * 2017-06-23 2019-06-04 Disney Enterprises, Inc. Single shot capture to animated vr avatar
US10546408B2 (en) * 2018-03-20 2020-01-28 Adobe Inc. Retargeting skeleton motion sequences through cycle consistency adversarial training of a motion synthesis neural network with a forward kinematics layer
WO2019213220A1 (en) * 2018-05-03 2019-11-07 Magic Leap, Inc. Using 3d scans of a physical subject to determine positions and orientations of joints for a virtual character
US10607065B2 (en) * 2018-05-03 2020-03-31 Adobe Inc. Generation of parameterized avatars
US11474593B2 (en) * 2018-05-07 2022-10-18 Finch Technologies Ltd. Tracking user movements to control a skeleton model in a computer system
US11669726B2 (en) * 2018-07-02 2023-06-06 Magic Leap, Inc. Methods and systems for interpolation of disparate inputs
KR102543650B1 (ko) * 2018-07-30 2023-06-15 주식회사 엔씨소프트 모션 합성 장치 및 모션 합성 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012150578A (ja) 2011-01-17 2012-08-09 Square Enix Co Ltd 用例に基づく効率的なモーションデータベースのスタイリング
JP2019191821A (ja) 2018-04-23 2019-10-31 株式会社Preferred Networks モーション処理装置、モーション処理方法、およびプログラム
JP2020113116A (ja) 2019-01-15 2020-07-27 株式会社デジタル・フロンティア モーション生成装置、モーション生成方法、及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Eugene Hsu et al.,Style Translation for Human Motion,[online],2005年07月01日,https://dl.acm.org/doi/10.1145/1073204.1073315
XUE BIN PENG et al.,DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills,[online],2018年07月27日,https://arxiv.org/abs/1804.02717

Also Published As

Publication number Publication date
US20200293881A1 (en) 2020-09-17
JP2022518970A (ja) 2022-03-17
EP3939010B1 (en) 2024-04-03
CN113785330B (zh) 2023-04-11
WO2020190415A1 (en) 2020-09-24
CN113785330A (zh) 2021-12-10
EP3939010A1 (en) 2022-01-19
US11132606B2 (en) 2021-09-28

Similar Documents

Publication Publication Date Title
JP7061238B2 (ja) 異種のターゲットアニメーションデータを使用してキャラクタをトレーニングする強化学習
US11113860B2 (en) Particle-based inverse kinematic rendering system
WO2021143261A1 (zh) 一种动画实现方法、装置、电子设备和存储介质
Wang et al. Multi-weight enveloping: least-squares approximation techniques for skin animation
Hämäläinen et al. Online motion synthesis using sequential monte carlo
US20130222433A1 (en) Animation processing
US11104001B2 (en) Motion transfer of highly dimensional movements to lower dimensional robot movements
Wrotek et al. Dynamo: dynamic, data-driven character control with adjustable balance
US20230334744A1 (en) Method and apparatus for generating walk animation of virtual role, device and storage medium
Al Borno et al. Robust Physics‐based Motion Retargeting with Realistic Body Shapes
US11217001B2 (en) Systems and methods for supervised and unsupervised animation style transfer
US20180144531A1 (en) Animating a virtual object in a virtual world
TW202232284A (zh) 用於在虛擬實境環境中三維人類姿勢之模擬控制
CN116438576A (zh) 单目姿势预测
Shapiro et al. Practical character physics for animators
US20230267668A1 (en) Joint twist generation for animation
Kry et al. Inverse kinodynamics: Editing and constraining kinematic approximations of dynamic motion
JP3973995B2 (ja) アニメーション作成システム
Li et al. Procedural rhythmic character animation: an interactive Chinese lion dance
KR20240055025A (ko) 실용 3d 에셋을 위한 추론된 골격 구조
Gutiérrez A et al. Computer Animation
Pitts The Use Automated Centre of Mass Nodes for Dynamic Grounded and Airborne Key Frame Animation
Di Giacomo et al. Control structure and multi-resolution techniques for virtual human representation
Rajendran Understanding the Desired Approach for Animating Procedurally
van Overveld Building blocks for goal‐directed motion

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211029

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211029

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20211029

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220415

R150 Certificate of patent or registration of utility model

Ref document number: 7061238

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150