(57)【要約】【課題】指示に基づきモーションを生成する場合において、不自然なモーションが生成されることを防ぐ装置を提供する。【解決手段】本発明の一実施形態である装置は、受付部、第１生成部、記憶部、第２生成部を備える。受付部は行動を指示する指示信号を受け付ける。第１生成部は入力情報を生成する。入力情報は、第１時点のモーションに関する情報と、第１時点より後の第２時点の行動を示す目標行動に関する情報とを含む。記憶部は、第２時点のモーションに関する情報を入力情報が入力された場合に出力するように学習された学習済みモデルを記憶する。第２生成部は、入力情報を当該モデルに入力することにより、第２時点のモーションに関する情報を生成する。指示信号に対応する行動が目標行動にすべきでないと判定された場合、第１生成部は指示信号に対応する行動以外の行動を目標行動として入力情報を生成する。【選択図】図１
2019191821.tif 000002
【特許請求の範囲】
【請求項１】
キャラクターの行動を指示する指示信号を受け付ける指示受付部と、
少なくとも、第１時点での前記キャラクターのモーションに関する情報と、前記第１時点より後の第２時点での前記キャラクターの行動を示す目標行動に関する情報と、を含む第１入力情報を生成する入力情報生成部と、
前記第１入力情報が入力された場合に、前記第２時点での前記キャラクターのモーションに関する情報を出力するように学習された第１学習済みモデルを記憶する記憶部と、
前記第１入力情報を前記第１学習済みモデルに入力することにより、前記第２時点での前記キャラクターのモーションに関する情報を生成するモーション生成部と、
を備え、
前記指示信号に対応する行動が前記目標行動にすべきでないと判定された場合、前記入力情報生成部が、前記指示信号に対応する行動以外の行動を前記目標行動として前記第１入力情報を生成する
モーション処理装置。
【請求項２】
前記第１学習済みモデルが、前記第２時点におけるモーションに対応する判定フラグをさらに出力するように学習されており、
前記モーション生成部が前記判定フラグをさらに生成し、
前記入力情報生成部が、第１入力情報を生成する際に、過去に生成した第１入力情報から生成された判定フラグに基づき、前記指示信号に対応する行動を前記目標行動にすべきか否かを判定する
請求項１に記載のモーション処理装置。
【請求項３】
前記第１学習済みモデルが、前記第２時点におけるモーションの分類区分をさらに出力するように学習されており、
前記入力情報生成部が、過去に生成した第１入力情報から生成された分類区分に基づく判定フラグに基づき、前記判定を行った上で、第１入力情報を生成する
請求項１に記載のモーション処理装置。
【請求項４】
前記モーションに関する情報に基づき、前記指示信号に対応する前記キャラクターのモーションが表された第１画像を生成する表示画像生成部
をさらに備える請求項１ないし３のいずれか一項に記載のモーション処理装置。
【請求項５】
前記第１学習済みモデルが、前記キャラクターの仮想世界上の位置に関する情報をさらに出力するように学習されており、
前記表示画像生成部が、前記キャラクターの仮想世界上の位置に関する情報と、前記仮想世界に関する情報と、に基づき、前記仮想世界を表した第２画像を生成した上で、前記第１画像と合成することにより、前記仮想世界と、前記キャラクターのモーションと、が表された第３画像を生成する
請求項４に記載のモーション処理装置。
【請求項６】
キャラクターの行動を指示する指示信号を受け付ける指示受付部と、
前記指示信号に対応する行動が第１時点より後の第２時点での前記キャラクターの行動を示す目標行動にすべきと判定された場合には、前記第１時点での前記キャラクターのモーションに関する情報および前記目標行動に関する情報を少なくとも含む第１入力情報を生成し、前記指示信号に対応する行動が前記目標行動とすべきでないと判定された場合には、前記第１時点での前記キャラクターのモーションを含むが前記目標行動を含まない第２入力情報を生成する入力情報生成部と、
前記第１入力情報が入力された場合に前記第２時点での前記キャラクターのモーションに関する情報を出力するように学習された第１学習済みモデルと、前記第２入力情報が入力された場合に前記第１時点での前記キャラクターのモーションに対応する行動と同じまたは次の行動に関する前記第２時点での前記キャラクターのモーションに関する情報を出力するように学習された第２学習済みモデルと、を記憶する記憶部と、
生成された前記第１入力情報または前記第２入力情報を対応する学習済みモデルに入力することにより、前記第２時点での前記キャラクターのモーションに関する情報を生成するモーション生成部と、
を備えるモーション処理装置。
【請求項７】
キャラクターの行動を指示する指示信号を受け付けるステップと、
少なくとも、第１時点での前記キャラクターのモーションに関する情報と、前記第１時点より後の第２時点での前記キャラクターの行動を示す目標行動に関する情報と、を含む第１入力情報を生成するステップと、
前記第１入力情報が入力された場合に、前記第２時点での前記キャラクターのモーションに関する情報を出力するように学習された第１学習済みモデルを取得するステップと、
前記第１入力情報を前記第１学習済みモデルに入力することにより、前記第２時点での前記キャラクターのモーションに関する情報を生成するステップと、
を備え、
前記指示信号に対応する行動が前記目標行動にすべきでないと判定された場合、前記指示信号に対応する行動以外の行動を前記目標行動として前記第１入力情報が生成される
モーション処理方法。
【請求項８】
キャラクターの行動を指示する指示信号を受け付けるステップと、
少なくとも、第１時点での前記キャラクターのモーションに関する情報と、前記第１時点より後の第２時点での前記キャラクターの行動を示す目標行動に関する情報と、を含む第１入力情報を生成するステップと、
前記第１入力情報が入力された場合に、前記第２時点での前記キャラクターのモーションに関する情報を出力するように学習された第１学習済みモデルを取得するステップと、
前記第１入力情報を前記第１学習済みモデルに入力することにより、前記第２時点での前記キャラクターのモーションに関する情報を生成するステップと、
を備え、
前記指示信号に対応する行動が前記目標行動にすべきでないと判定された場合、前記指示信号に対応する行動以外の行動を前記目標行動として前記第１入力情報が生成される
コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モーション処理装置、モーション処理方法、およびプログラムに関する。
【背景技術】
【０００２】
一般的に、コンピュータグラフィックスのキャラクターを表示するシステムは、キャラクターの動きに関する指示を受け付けると、当該指示に対応する行動が描写された記録済み画像を再生する。これにより、そのキャラクターが指示された通りに行動したように見える。しかし、グラフィックの向上、キャラクターの動きの多様化などにより用意すべき画像が大容量化し、システムのリソースが逼迫されている。
【０００３】
当該状況に対応するために、記録済み画像を再生するのではなく、そのキャラクターの次の時点における瞬間的な姿勢を算出して表示する、つまりモーションを生成して表示する手法が検討されている。現在では、当該手法を用いても、凹凸のある地形を自然に動かすことが可能となっており、当該手法を採用した製品の開発が期待されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４９１７９１７号公報
【非特許文献】
【０００５】
【非特許文献１】Daniel Holden、外2名、"Phase-Functioned Neural Networks for Character Control"、[online]、平成29年4月30日、[平成30年4月1日検索]、インターネット（URL：http://theorangeduck.com/page/phase-functioned-neural-networks-character-control）
【非特許文献２】Daniel Holden、外2名、"Phase-Functioned Neural Networks for Character Control"、[online]、平成29年7月、ACM Transactions on Graphics, vol36, No.4, Article 42 [平成30年4月1日検索]、インターネット（URL：http://theorangeduck.com/media/uploads/other_stuff/phasefunction.pdf）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、本願発明者達がモーションを生成して表示する手法を検討した結果、記録済み画像を再生する手法ではなかった新たな問題が生じ、不自然なモーションが生成されることが判明した。そこで、指示に基づきモーションを生成する場合において、不自然なモーションが生成されることを防ぐ装置を提供する。
【課題を解決するための手段】
【０００７】
本発明の一実施形態であるモーション処理装置は、記憶部と、指示受付部と、入力情報生成部と、モーション生成部と、を備える。記憶部は、第１時点でのモーションと、第２時点においてが実行予定の行動を示す目標行動と、を少なくとも含む入力情報が入力された場合に、第２時点でのモーションを出力するように学習されたモデルを記憶する。指示受付部は、目標行動を指示する指示信号を受け付ける。入力情報生成部は、入力情報を生成する。モーション生成部は、入力情報をモデルに入力することにより、モーションを生成する。指示信号に対応する行動が目標行動とすべきでないと判定された場合に、入力情報を生成する際に、指示信号に対応する行動以外の行動が目標行動として設定される。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係るモーション処理システムの一例を示すブロック図。
【図２】モーションについて説明する図。
【図３】本発明の一実施形態に係るモーション処理システムのモーション生成処理の概略フローチャート。
【図４】本発明の一実施形態におけるハードウェア構成の一例を示すブロック図。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら、本発明の実施形態について説明する。
【００１０】
（本発明の一実施形態）
図１は、本発明の一実施形態に係るモーション処理システムの一例を示すブロック図である。図１に示されたモーション処理システム１は、入力デバイス１１と、環境情報提供装置１２と、モーション生成モデル提供装置（学習装置）１３と、モーション生成装置１４と、表示画像生成装置１５と、出力デバイス１６と、を備える。モーション生成装置１４は、指示受付部１４１と、入力情報生成部１４２と、モーション生成部１４３と、を備える。
【００１１】
本発明の一実施形態に係るモーション処理システム１は、出力デバイス１６に表示されたコンピュータグラフィックス（ＣＧ）のキャラクターを、入力デバイス１１からの指示信号に応じて動かすためのシステムである。以降、ＣＧのキャラクターを、単にキャラクターと記載する。モーション処理システム１は、キャラクターに対する指示を受け付けたときに、当該指示に対応する行動が描写された画像を再生するのではなく、当該指示を実行した場合の当該キャラクターのモーション（瞬間的な姿勢）を生成して表示する。こうして、当該キャラクターが指示された通りに行動したように見える。
【００１２】
図２は、モーションについて説明する図である。図２（Ａ）には、左に向かって歩いているキャラクターが示されている。このキャラクターが操作されており、モーション処理システム１は、所定間隔にて、このキャラクターのモーションを瞬時に生成し続ける。当該所定間隔を短くすることにより、キャラクターが滑らかに動くようになる。図２（Ｂ）には、キャラクターが反転するモーションが示されている。図２（Ａ）のように左に向かって歩いている際に、「歩く方向を右に変える」、つまり「反転する」といった指示を受理した場合、このような反転のモーションが生成される。
【００１３】
このとき、モーションの状態を考慮せずに指示を受理してしまうと、不自然なモーションが生成される場合がある。例えば、反転に関する指示を受け付ける直前において、このキャラクターが石に躓いてしまい、反転に関する指示を受け付けた時点において、図２（Ｃ）に示すように、このキャラクターが転倒中であるとする。この際に、反転のモーションを生成して表示しまうと、不自然なモーションとなる。また、あるアクションに伴う一連のモーションを実行中に、別のアクションに関するモーションを生成してしまうと、不自然なモーションとなり得る。例えば、キャラクターがジャンプして剣を振り下ろすという一連の攻撃アクションを実行中に、「しゃがむ」という指示を受け付けたとする。この場合に、当該指示を受理して、キャラクターの足を折り曲げてしまうと、不自然なモーションとなる。
【００１４】
キャラクターに対する指示を受理した場合に、当該指示に対応する行動が描写された画像を再生する手法では、画像が再生終了するまでは指示を無視（指示しない）するように設定することができた。ところが、瞬間的にモーションを生成して表示する本実施形態での手法では、画像の再生終了というトリガーがないため、指示の受理を再開する時点を特定することができない。また、再開時点を安易に定めてしまうと、再開が速すぎて不自然なモーションが生成されてしまうか、逆に再開が遅すぎて操作性が悪くなるといった問題を引き起こす。
【００１５】
そこで、モーション処理システム１は、受け付けた指示を無視（指示しない）するか否かを判定する。当該判定により、不自然なモーションが生成されることを防ぐ。
【００１６】
なお、本説明おいて「行動」とは、所定の状態になることだけでなく、所定の状態を保つことを含む。例えば、「停止」という行動は、歩いている状態などから停止することだけでなく、停止している状態を保つことも含む。また、キャラクターの行動は、指示を受理しなくとも変わる場合もあり得る。例えば、キャラクターが「走行」という行動中において躓いて転んだ場合、キャラクターの行動は、「走行」から「転倒」に変化する。
【００１７】
なお、図１の例では、キャラクターに対する指示を受け付けて、指示に応じた行動を実行するキャラクターを表示するまでの主な処理に係る装置および構成要素を記載しているが、その他の装置および構成要素が含まれていてもよい。装置および構成要素による処理が省略される場合には、当該装置および構成要素も省略されてよい。また、装置および構成要素が細分化されていてもよいし、一つにまとめられていてもよい。例えば、入力デバイス１１がコントローラーであり、出力デバイス１６がモニタであり、入力デバイス１１および出力デバイス１６以外の装置が、モーション処理装置の構成要素として、一つの筐体内に存在していてもよい。また、各装置は、電気信号、通信信号などにより、データの送受が可能であるとする。
【００１８】
各装置について説明する。
【００１９】
入力デバイス１１は、指示信号をモーション生成装置１４に送信する装置である。指示信号は、キャラクターの行動に関する指示を示す信号である。指示されるキャラクターが複数いる場合は、指示されるキャラクターを特定するための識別子などが指示信号に含まれていてもよい。また、指示信号に対応する行動が即座に実行されない場合、当該行動の実行時点が示されていてもよい。
【００２０】
モーション生成装置１４が認識可能な指示信号を送信可能であれば、入力デバイス１１は特に限られるものではない。例えば、ビデオゲームなどに用いられるコントローラー、タッチ操作を読み取るスクリーンパネルでもよい。音声、ジェスチャーなどから指示を認識して、指示信号に変換可能な情報処理装置などでもよい。
【００２１】
環境情報提供装置１２は、環境情報をモーション生成装置１４に送信する。環境情報は、仮想世界にてキャラクターが動く場合に、当該仮想世界に関する情報である。例えば、仮想世界の地形、仮想世界に存在するオブジェクト、キャラクターの移動範囲（例えば水たまりには進入できない）などに関する情報が環境情報に含まれていることが想定される。なお、キャラクターの周辺の環境しか考慮しなくてよい場合は、環境情報は、キャラクターの周辺環境つまり仮想世界の一部に関する情報でよい。
【００２２】
キャラクターの周辺環境により、同じ種類のアクションであっても、そのモーションが変化する。例えば、凹凸のある地面を走った場合、当該凹凸に合わせて、キャラクターの腰、膝、足先などの位置が変わってくる。また、キャラクターが砂浜を走った場合は、体が沈むため、コンクリートの地面を走った場合のモーションとは異なる。また、キャラクターの移動先に物体がある場合、キャラクターが当該物体を避けたり、衝突したりするため、モーションを変える必要がある。そのため、環境情報が必要となる。なお、仮想世界ではなく実写画像上にキャラクターの画像を重ねる場合など、環境情報を用いない場合では、モーション生成装置１４は環境情報を受信しなくともよく、環境情報提供装置１２は省略されてもよい。
【００２３】
モーション生成モデル提供装置１３（学習装置）は、モーションを生成するためのモーション生成モデルをモーション生成装置１４に提供する。なお、ここでは、モーション生成モデル提供装置１３が、学習によりモーション生成モデルを生成することを想定する。しかし、他の装置が学習を行い、モーション生成モデル提供装置１３は、当該他の装置から取得したモーション生成モデルを記憶した記憶装置であってもよい。
【００２４】
モーション生成モデルは、多層のニューラルネットワークの学習済みモデルを想定する。例えば、ニューラルネットワークの各中間層における演算の重み付け係数（パラメータ）を固定させずに周期的に変えるＰｈａｓｅ−Ｆｕｎｃｔｉｏｎｅｄ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ（ＰＦＮＮ）が知られている。このＰＦＮＮを用いて、ある時点におけるモーションなどを含む学習用の入力情報と、当該時点よりも後の時点におけるモーションなどを含む教師情報と、に基づく学習を行うことによりモーション生成モデルが生成されると、当該モーション生成モデルは入力情報よりも後の時点におけるモーションを高精度に生成できることが知られている。
【００２５】
なお、Daniel Holden、外2名、"Phase-Functioned Neural Networks for Character Control"、平成29年7月、ACM Transactions on Graphics, vol36, No.4, Article 42は、本明細書においてその全てが参照によって組み込まれる。
【００２６】
モーション生成モデル提供装置１３は、ＰＦＮＮのようなニューラルネットワークに対し、学習用の入力情報および教師情報に基づく学習を繰り返すことにより、モーション生成モデルを生成する。入力情報がニューラルネットワークの入力層に入力され、各中間層における演算を経て、出力層から出力情報が出力される。モーション生成モデル提供装置１３は、出力情報が教師情報に近づくように、各中間層における演算のパラメータを更新する。そして、当該更新が繰り返されて、モーション生成モデルが生成される。なお、ＰＦＮＮの場合は、当該パラメータを周期的に入れ替える。これにより、ある時点におけるモーションなどを含む入力情報が入力されると、当該時点よりも後の時点におけるモーションなどを含む出力情報がモーション生成モデルから出力される。
【００２７】
モーション生成モデルに対する入力情報は、少なくとも、ある時点におけるキャラクターのモーションと、当該時点における目標行動と、を含むとする。なお、キャラクターの移動速度、加速度なども考慮して、１つの時点におけるモーションだけではなく、当該時点よりも前の時点におけるモーションも入力情報に含めてよい。
【００２８】
目標行動とは、キャラクターがこれから実行する予定の行動を意味する。例えば、図２（Ａ）が現時点のモーションであり、図２（Ｂ）が次の時点のモーションとする。この場合、図２（Ａ）に示したモーションと、「反転」という目標行動と、が学習用の入力情報に含まれる。また、図２（Ｂ）に示したモーションが教師情報に含まれる。当該学習用の入力情報および当該教師情報に基づく学習により、図２（Ａ）に示したモーションと、「反転」という目標行動とを含む入力情報から、図２（Ｂ）に示したモーションを生成可能なモーション生成モデルが生成される。
【００２９】
つまり、第ｎ（ｎは１以上の整数）時点におけるキャラクターのモーション、第ｎ時点における目標行動などが学習済みのモーション生成モデルに入力されることにより、第ｎ時点よりも後の第ｍ（ｍはｎより大きい整数）時点におけるキャラクターのモーションが生成される。第ｎ時点における目標行動は、第ｍ時点において実行される予定のキャラクターの行動を意味する。なお、第ｍ時点は、第ｎ時点の次にモーションが生成される時点とは限らない。
【００３０】
なお、同一時点において複数の目標行動が設定されてもよい。例えば、キャラクターの体の部位ごとに目標行動が設定される場合もあり得る。例えば、足に対する目標行動は「歩く」だが、手に対する目標行動は「剣を振る」といった場合もあり得る。あるいは、目標行動が「歩行」から「走行」に変わる場合に、その変化の過程内の時点における目標行動を、「歩行」および「走行」の組み合わせで表し、「歩行」を０．３、「走行」を０．７のような割合にて表してもよい。
【００３１】
また、教師情報には、教師情報に含まれるモーションと対応する判定フラグを含めておく。ゆえに、モーション生成モデルは判定フラグをさらに出力するように学習されており、モーション生成モデルの出力情報には、モーションと、当該モーションに対応する判定フラグと、が含まれる。
【００３２】
判定フラグは、指示信号に対応する行動を無視すべきか否かを示すものである。例えば、図２（Ａ）に示すようなモーションが教師情報に含まれている場合は、教師情報に含まれる判定フラグを「無視しない」を意味する論理値（例えば０）にする。また、図２（Ｃ）に示すようなモーションが教師情報に含まれている場合は、教師情報に含まれる判定フラグを「無視する」を意味する論理値（例えば１）にする。このような教師情報を用いて学習を行うことにより、モーション生成モデルが、入力情報に対応する時点よりも後の時点におけるモーションと、当該時点において指示を無視すべきか否かを示す判定フラグと、を出力できるようになる。なお、目標行動が複数ある場合は、目標行動ごとに判定フラグが生成されるように学習を行ってもよい。例えば、上半身と下半身に対する目標行動がそれぞれモーション生成モデルに入力され、上半身と下半身に対する判定フラグがそれぞれ生成されるように学習されてもよい。こうすると、下半身に対する目標行動が「走行」の場合、上半身に対する判定フラグは「無視する」を意味する論理値に、下半身に対する目標行動が「歩行」の場合、上半身に対する判定フラグは「無視しない」を意味する論理値にするといったことも可能になる。つまり、歩行中は上半身に対する指示は受理するが、走行中は受理しないといったことが可能になる。
【００３３】
なお、判定フラグは、モーション生成モデルとは別に算出されてもよい。例えば、入力されたモーションを所定の分類区分に分類する分類モデルを生成しておく。分類モデルにモーション生成モデルから出力されたモーションが入力されると、当該モーションに対応する分類区分、例えば、「待機」、「歩行」、「攻撃」などが出力される。これらの分類区分と、判定フラグとの対応関係を予め定めた対応リストを用意しておけば、モーション生成モデルの出力情報に含まれるモーションと対応する判定フラグを出力することが可能になる。例えば「待機」と「歩行」に対応する判定フラグは「無視しない」を意味する論理値にし、「攻撃」に対応する判定フラグは「無視する」を意味する論理値にするといったことが想定される。また、上記では、「モーション」から「分類区分」を、「分類区分」から「判定フラグ」を順に生成したが、対応リストのデータを教師データとして用いて、モーションから判定フラグを直に生成するように学習された判定フラグ生成モデルを用いてもよい。
【００３４】
なお、モーション生成モデルは、モーションを出力するように学習された第１のニューラルネットワークと、出力されたモーションを用いて分類区分を生成するようにまたは分類区分に基づく判定フラグを直に生成するように学習された第２のニューラルネットワークとを含んでいてもよい。このように、一つのモーション生成モデルから複数の出力情報を得てもよいし、学習済みモデルを出力情報ごとに生成してもよい。
【００３５】
なお、指示の種類により、無視されるか否かの結果が異なることも有り得る。例えば、図２（Ｃ）のような状態では、「反転」といった指示は受理できないが、体を前転させるといった指示は受理可能かもしれない。ゆえに、指示内容ごとに判定フラグが出力されてもよい。
【００３６】
入力情報および教師情報には、その他の情報を含めてよい。例えば、仮想世界にてキャラクターが移動する場合は、仮想世界の地形などに応じたモーションとするために、環境情報、キャラクターの移動の推定軌跡などを入力情報に含めてよい。
【００３７】
推定軌跡は、現時点よりも後の時点におけるキャラクターの仮想世界上の位置を少なくとも一つ示す情報である。現時点よりも後の時点の位置（推定位置）に障害物がある場合、障害物を乗り越えるといったモーションを生成する必要がある。そのため、生成されるモーションと同じ時点の推定位置および推定位置の環境情報が必要となり得る。また、障害物を迂回する場合には、障害物の直前で方向を変えると不自然なモーションとなることから、障害物とキャラクターの位置が一致する時点よりも前の時点から障害物を迂回するようなモーションとしたほうがよい。そのため、推定軌跡は、現時点よりも後の時点の位置を複数有していてもよい。
【００３８】
例えば、第ｍ時点のキャラクターの位置をＰｍで表すとすると、第ｍ時点の推定軌跡Ｔｍは、Ｔｍ＝｛Ｐｍ、Ｐｍ+１、Ｐｍ+２、Ｐｍ+３｝としてもよい。なお、推定軌跡には、過去の時点の位置も含まれてもよく、例えば、Ｔｍ＝｛Ｐｍ-1、Ｐｍ、Ｐｍ+１｝のようにしてもよい。位置Ｐｍは平面座標でもよいし、立体座標でもよい。なお、キャラクターの位置は、キャラクターの体のいずれの部分の位置でもよいし、複数の部位の推定軌跡が入力情報に含まれてもよい。
【００３９】
推定軌跡に含まれている推定位置は、判定フラグと同様、推定位置を推定するための学習済みの位置推定モデルを用いて算出されてもよい。位置推定モデルは、ある時点の目標行動（例えば第ｍ時点の目標行動）と、当該時点以前の位置（例えばＰｍ-1およびＰｍ）と、を学習用入力情報に含め、当該時点よりも後の位置（例えばＰｍ+１）を教師情報に含めて学習することにより、生成される。
【００４０】
なお、モーション生成モデルが、位置推定モデルを含んでいてもよい。その場合、モーション生成モデルへの入力情報には、推定軌跡を含めずに、現時点以前の位置だけを含める。その場合のモーション生成モデルは、現時点の目標行動と、現時点以前の位置と、から推定位置を算出して推定軌跡とした上で、現時点のモーションと、現時点の目標行動と、推定軌跡とから、現時点よりも後の時点のモーションなどを出力する。
【００４１】
なお、モーション生成モデルから入出力されるモーションは、キャラクターの体の各所定部分（例えば、骨、関節など）の位置を示す数値を想定するが、キャラクターの画像であってもよい。
【００４２】
また、モーション生成モデルは、指示され得るキャラクターごとに生成されてもよいし、各キャラクター共通のモーション生成モデルが生成されてもよい。つまり、モーション生成用の汎用キャラクターのモーションが出力されてもよい。
【００４３】
モーション生成装置１４は、モーション生成モデル提供装置１３により提供されたモーション生成モデルをソフトウェアの一部であるプログラムモジュールとして使用することにより、モーションを生成する。
【００４４】
指示受付部１４１は、指示信号を受け付けて、指示信号に対応する行動を認識する。指示信号に対応する行動は、指示信号内に含まれていてもよいし、指示信号が示す値と、当該行動との対応リストを用いて識別されてもよい。このように、指示信号だけでなく、その他の情報を用いて、指示信号に対応する行動が認識されてもよい。その他の情報は、予め指示受付部１４１が保持していてもよいし、他の構成要素または装置から取得してもよい。例えば、ビデオゲームなどでは、キャラクターの実行中の行動などにより、同一の指示信号でも対応する行動が異なる場合がある。その場合、指示受付部１４１は、入力情報生成部１４２、モーション生成部１４３などから、キャラクターの現時点の行動に関する情報を受け取ってもよい。
【００４５】
入力情報生成部１４２は、モーション生成モデルに対する入力情報を生成する。前述の通り、入力情報に含まれる情報の内容は変化するため、モーションの生成の都度、入力情報生成部１４２は入力情報を生成（更新）する。
【００４６】
入力情報の生成の際、入力情報生成部１４２は、指示信号に対応する行動を、入力情報の目標行動とするか否かを判定する。ゆえに、指示信号は、目標行動を指示するものと言える。指示信号に対応する行動を目標行動とすべきでないと判定した場合は、入力情報生成部は、指示信号に対応する行動以外の行動を目標行動として設定する。当該判定は、前回の処理の出力情報に含まれる判定フラグに基づく。つまり、当該判定は受け付けた指示を無視（指示しない）するか否かを決めるものであり、判定フラグは指示信号に対応する行動を目標行動にしてもよいか否かを示すものでもある。なお、前回の処理がない場合は、判定フラグは初期値としてよい。こうして、目標行動として、指示信号に対応する行動か、その他の行動が入力情報に含まれる。
【００４７】
また、前述のように目標行動が体の部位ごとなど複数ある場合は、指示信号に対応する行動と対応する目標行動を判断した上で、指示信号に対応する行動を、入力情報の目標行動とするか否かを判定する。
【００４８】
その他の行動は、現時点の行動と同じでもよいし、現時点の行動に対応する行動でもよい。例えば、現時点の行動が「躓く」、指示信号に対応する行動が「歩行」、判定フラグが無視であった場合、入力情報生成部１４２は、現時点の行動「躓く」を目標行動としてもよいし、現時点の行動「躓く」に対応する「転倒」を目標行動としてもよい。現時点の行動に対応する行動は予め定めておけばよい。また、例えば、第１の行動を行った後は必ず第２の行動を行うという設定がある場合は、目標行動として第２の行動が入力情報に含まれる。その他の行動は、入力情報生成部１４２が決定してもよいし、判定フラグのように、モーション生成モデルから出力されてもよい。
【００４９】
また、入力情報に推定軌跡を含める場合において、入力情報生成部１４２は、位置推定モデルを用いて、現時点以前の位置および目標行動から、現時点よりも後の時点の位置を算出することにより、推定軌跡を算出してもよい。
【００５０】
また、入力情報に環境情報を含める場合において、入力情報生成部１４２が、キャラクターの現時点の位置に基づき、環境情報全体から必要な部分だけを抽出し、抽出された環境情報を入力情報に含めてもよい。あるいは、入力情報生成部１４２が、キャラクターの推定軌跡を送信し、返信として、環境情報提供装置１２が必要な部分だけの環境情報を入力情報生成部１４２に提供してもよい。
【００５１】
モーション生成部１４３は、入力情報をモーション生成モデルに入力することにより、出力情報を得る。出力情報には、入力情報に対応する時点よりも後の時点のキャラクターのモーションが含まれる。ゆえに、モーション生成部１４３は、入力情報に対応する時点よりも後の時点のキャラクターのモーションを生成することができる。
【００５２】
なお、モーション生成モデルが指示され得るキャラクターごとに生成されている場合は、モーション生成部１４３は、指示信号に対応するキャラクターのモーション生成モデルを選択して用いるとする。
【００５３】
また、モーション生成モデルが、判定フラグではなく、モーションの分類区分を出力する場合は、モーション生成部１４３が、前記分類区分と、前記分類区分に対応する論理値を示す対応リストに基づき、判定フラグを生成してもよい。なお、その場合は、モーション生成モデルではなく、入力情報生成部１４２が判定フラグを生成してもよい。
【００５４】
表示画像生成装置１５は、モーション生成装置１４により生成されたモーションに基づき、少なくとも指示信号に対応するキャラクターのモーションが表された画像を生成する。モーション生成装置１４が汎用キャラクターのモーションを生成する場合は、表示画像生成装置１５は、指示信号に対応するキャラクターの画像と、モーション生成装置１４により生成された汎用キャラクターのモーションと、を合成して、指示信号に対応するキャラクターのモーションの画像を生成する。そして、キャラクターのモーションの画像と、背景画像と、を合成して表示画像を生成する。
【００５５】
背景画像は、仮想世界の画像でもよいし、実写の画像でもよいし、単なるテンプレートの画像でもよい。背景画像を仮想世界の画像とする場合は、表示画像生成装置１５は、環境情報提供装置１２から提供された環境情報に基づき、背景画像を生成する。なお、予め仮想世界の画像を生成しておき、提供された環境情報に基づき、当該仮想世界の画像の一部を切り出すことにより、背景画像を生成してもよい。実写の画像、テンプレートの画像などは、表示画像生成装置内の画像記憶部などに予め記憶されているとする。
【００５６】
表示画像生成装置１５は、キャラクターのモーションを調整してもよい。例えば、指示信号に対応するキャラクターと汎用キャラクターとの手足の長さが違うと、足が地面に届いていないといった不自然なモーションとなり得る。このような不自然さをなくすように、モーションが調整されてもよい。
【００５７】
出力デバイス１６は、表示画像生成装置１５により生成された表示画像を表示する装置である。出力デバイス１６により、表示画像が順に表示されて、表示画像内のキャラクターが入力デバイス１１からの指示信号に応じて動いているように見える。出力デバイス１６は、公知のモニタなどを用いればよい。
【００５８】
なお、上記では実際の使用状況を想定して、出力デバイス１６を、表示画像を表示する装置としたが、出力デバイス１６が表示画像以外を出力する場合も考えられる。例えば、ソフトウェアのデバッグなどにおいて、テキストメッセージを表示するような場合もあり得る。したがって、出力デバイス１６が表示画像以外を出力してもよい。例えば、入力情報生成部１４２が指示信号に対応する行動を目標行動としないと判定した場合に、その判定結果、再入力を促すメッセージ画像などを出力デバイス１６が表示することも考えられる。
【００５９】
次に、本実施形態の処理の流れについて説明する。図３は、本発明の一実施形態に係るモーション処理システムのモーション生成処理の概略フローチャートである。なお、本フローでは、環境情報、推定軌跡が入力情報に含まれるとする。
【００６０】
指示受付部１４１は入力デバイス１１からの指示信号を受け付けて、当該指示信号に対応する行動を認識する（Ｓ１０１）。なお、指示信号を受け付けなかった場合は、前回と同じ指示信号または所定の指示信号を受け付けたとみなせばよい。入力情報生成部１４２は、モーション生成部１４３が前回の処理にて出力した出力情報に含まれる判定フラグに基づき、指示信号に対応する行動を、今回の処理における目標行動とするか否かを判定する（Ｓ１０２）。目標行動とする場合（Ｓ１０３のＴＲＵＥ）、入力情報生成部１４２は指示信号に対応する行動を今回の処理における目標行動として設定する（Ｓ１０４）。目標行動としない場合（Ｓ１０３のＦＡＬＳＥ）、入力情報生成部が指示信号に対応する行動以外の行動を今回の処理における目標行動として設定する（Ｓ１０５）。こうして設定された目標行動が今回の処理の入力情報に含まれる。なお、前回の処理がない場合は、前回の処理にて出力された出力情報の代わりに、出力情報の初期値が用いられればよい。
【００６１】
また、入力情報生成部１４２は、入力情報に含まれる今回の処理におけるキャラクターの位置を環境情報提供装置１２に送信し（Ｓ１０６）、環境情報提供装置１２は、今回の処理における推定軌跡の周辺に係る環境情報を、今回の処理における環境情報として、入力情報生成部１４２および表示画像生成装置１５に送信する（Ｓ１０７）。これにより、環境情報提供装置１２からの環境情報が、入力情報に含まれる。
【００６２】
今回の処理における入力情報はモーション生成部１４３に送られて、モーション生成部１４３が、モーション生成モデルを用いて、今回の処理における入力情報から今回の処理における出力情報を得る（Ｓ１０８）。モーション生成部１４３は、今回の処理における出力情報を、入力情報生成部１４２および表示画像生成装置１５に送る（Ｓ１０９）。入力情報生成部１４２に今回の処理における出力情報が送られることにより、今回の処理における出力情報が、入力情報生成部１４２における次回の処理に用いられる。
【００６３】
表示画像生成装置１５は、今回の処理における環境情報から生成された背景画像と、指示信号に対応するキャラクターの画像と、今回の処理において生成されたモーションと、を合成して、今回の処理における表示画像を生成する（Ｓ１１０）。そして、表示画像生成装置１５は、今回の処理における表示画像を出力デバイス１６に送る（Ｓ１１１）。これにより、出力デバイス１６にて表示画像が表示される。以上により、今回の処理は終了し、次回の処理に移る
【００６４】
なお、本説明におけるフローチャートは一例であり、上記の例に限られるものではない。実施形態の求められる仕様、変更などに応じて、手順の並び替え、追加、および省略が行われてもよい。例えば、環境情報、推定軌跡が入力情報に含まれない場合は、Ｓ１０３および１０４の処理が省略されてよい。
【００６５】
以上のように、モーション生成モデルを用いてキャラクターのモーションを生成する本実施形態において、指示信号に対応する行動が、モーション生成モデルに入力される入力情報に含めるか否かが判定される。これにより、指示信号に対応する行動を実行したために、不自然なモーションが表示されることを防ぐことができる。
【００６６】
（第２の実施形態）
第１の実施形態では、フローチャートで示したように、モーション生成モデルに対する入力情報の中身を判定結果に基づき変えることにより、次の時点のモーションを不自然とならないように生成する。しかし、入力情報を変えるのではなく、モーション生成モデルを使い分けることも考えられる。そこで、第２の実施形態では、複数のモーション生成モデルを用いる実施形態を説明する。なお、第１の実施形態と同様な点は、説明を省略する。
【００６７】
第２の実施形態の構成は、第１の実施形態と同じでよい。ゆえに、図１は、第２の実施形態に係るモーション処理システムの一例を示すブロック図でもある。
【００６８】
モーション生成モデル提供装置１３は、第１の実施形態にて提供したモーション生成モデルとは別のモーション生成モデルをさらに提供する。当該別のモーション生成モデルを第２モーション生成モデルと記載し、第１の実施形態でのモーション生成モデルを第１モーション生成モデルと記載して区別する。なお、第２モーション生成モデルと記載したが、第２モーション生成モデルは複数であってもよい。言い換えると、モーション生成モデル提供装置１３が、第２モーション生成モデルＡ、第２モーション生成モデルＢ、第２モーション生成モデルＣなどを提供してもよい。
【００６９】
第２モーション生成モデルは、キャラクターのモーションを含むが、目標行動を含まない入力情報が入力された場合に、当該キャラクターのモーションに対応する行動と同じまたは次の行動に関するキャラクターのモーションを出力するように学習されているとする。例えば、歩行しているキャラクターのある時点のモーションが入力されると、次の時点の歩行のモーションが出力される学習済みモデルである。また、キャラクターがジャンプして剣を振り下ろすという一連の攻撃アクションに特化した第２モーション生成モデルの場合、ジャンプしているキャラクターのある時点のモーションが入力されると、剣を振りかぶるといった次の時点の行動のモーションが出力される学習済みモデルである。
【００７０】
第２の実施形態の入力情報生成部１４２は、図３の第１の実施形態のフローチャートで示したように、指示信号に対応する行動を、今回の処理における目標行動とすると判定した場合（Ｓ１０３のＴＲＵＥ）は、第１の実施形態と同じ入力情報を生成する。一方、指示信号に対応する行動を、今回の処理における目標行動としないと判定した場合（Ｓ１０３のＦＡＬＳＥ）は、キャラクターのモーションを含むが、目標行動を含まない入力情報を生成する。当該入力情報を第２入力情報と記載し、第１の実施形態と同様の入力情報を第１入力情報と記載し、区別する。
【００７１】
第２の実施形態のモーション生成部１４３は、第１入力情報が送られてきた場合は、第１モーション生成モデルに第１入力情報を入力し、第２入力情報が送られてきた場合は、第２モーション生成モデルに第２入力情報を入力する。これにより、出力されモーションは、第１の実施形態と同じになる。
【００７２】
以上のように、指示信号に対応する行動をモーション生成モデルに入力される入力情報に含めるか否かの判定結果に応じて、モーション生成モデルを使い分けることにより、不自然なモーションが表示されることを防ぐこともできる。
【００７３】
なお、上記の実施形態の少なくとも一部は、プロセッサ、メモリなどを実装しているＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：集積回路）などの専用の電子回路（すなわちハードウェア）により実現されてもよい。複数の構成要素が一つの電子回路で実現されてもよいし、一つの構成要素が複数の電子回路で実現されてもよいし、構成要素と電子回路が一対一で実現されていてもよい。また、上記の実施形態の少なくとも一部は、ソフトウェア（プログラム）を実行することにより、実現されてもよい。例えば、汎用のコンピュータ装置を基本ハードウェアとして用い、コンピュータ装置に搭載された中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、画像処理装置（ＧＰＵ：Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのプロセッサ（処理回路、Ｐｒｏｃｅｓｓｉｎｇ  ｃｉｒｃｕｉｔ、Ｐｒｏｃｅｓｓｉｎｇ  ｃｉｒｃｕｉｔｒｙ）にプログラムを実行させることにより、上記の実施形態の処理を実現することが可能である。言い換えると、当該プログラムの実行により、プロセッサ（処理回路）が、各装置の各処理を実行できるように構成される。
【００７４】
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
【００７５】
図４は、本発明の一実施形態におけるハードウェア構成の一例を示すブロック図である。モーション処理システム１の各装置は、プロセッサ２１と、主記憶装置２２と、補助記憶装置２３と、ネットワークインタフェース２４と、デバイスインタフェース２５と、を備え、これらがバス２６を介して接続されたコンピュータ装置２として実現できる。
【００７６】
なお、図のコンピュータ装置２は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図４では、１台のコンピュータ装置２が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のコンピュータ装置それぞれがソフトウェアの異なる一部の処理を実行してもよい。
【００７７】
プロセッサ２１は、コンピュータの制御装置および演算装置を含む電子回路（処理回路）である。プロセッサ２１は、コンピュータ装置２の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ２１は、コンピュータ装置２のＯＳ（オペレーティングシステム）や、アプリケーションなどを実行することにより、コンピュータ装置２を構成する各構成要素を制御する。プロセッサ２１は、上記の処理を行うことができれば特に限られるものではない。モーション生成装置１４内の指示受付部１４１、入力情報生成部１４２、モーション生成部１４３などは、プロセッサ２１により実現される。また、プロセッサ２１は、モーション生成モデルを読み込むと、主記憶装置２２または補助記憶装置２３に記憶された入力情報からモーションなどの出力情報を出力するように機能する。
【００７８】
主記憶装置２２は、プロセッサ２１が実行する指示および各種データなどを記憶する記憶装置であり、主記憶装置２２に記憶された情報がプロセッサ２１により直接読み出される。補助記憶装置２３は、主記憶装置２２以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。モーション生成モデル提供装置１３は、学習を行わない場合は、主記憶装置２２または補助記憶装置２３により実現されてもよい。つまり、学習を行わない場合におけるモーション生成モデル提供装置１３は、メモリでもよいし、ストレージでもよい。
【００７９】
ネットワークインタフェース２４は、無線または有線により、通信ネットワーク３に接続するためのインタフェースである。ネットワークインタフェース２４は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース２４より、通信ネットワーク３を介して、コンピュータ装置２と外部装置４Ａとを接続することができる。
【００８０】
デバイスインタフェース２５は、外部装置４Ｂと直接接続するＵＳＢなどのインタフェースである。つまり、コンピュータ装置２と外部装置４との接続は、ネットワークを介してでもよいし、直接でもよい。
【００８１】
なお、外部装置４（４Ａおよび４Ｂ）は、モーション処理システム１の外部の装置、モーション処理システム１の内部の装置、外部記憶媒体、およびストレージ装置のいずれでもよい。
【００８２】
上記に、本発明の一実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８３】
１：モーション処理システム、１１：入力デバイス、１２：環境情報提供装置、１３：モーション生成モデル提供装置（学習装置）、１４：モーション生成装置、１４１：指示受付部、１４２：入力情報生成部、１４３：モーション生成部、２：コンピュータ装置、２１：プロセッサ、２２：主記憶装置、２３：補助記憶装置、２４：ネットワークインタフェース、２５：デバイスインタフェース、２６：バス、３：通信ネットワーク、４（４Ａ、４Ｂ）：外部装置
【図１】
2019191821.tif 000003
【図２】
2019191821.tif 000004
【図３】
2019191821.tif 000005
【図４】
2019191821.tif 000006