開示するリアルなリグ付き3次元(3D)モデルアニメーションを生成するための装置及び方法では、後述する実装を見出すことができる。本開示の例示的な態様は、動作検知装置とディスプレイ装置とに通信可能に結合できる装置を含むことができる。この装置は、第1の3Dモデルを記憶するように構成された記憶装置を含むことができる。第1の3Dモデルは、第1のボーン配向の組(set of bone orientations)で定義される第1の階層的な相互接続されたボーンの組を含むことができる。第1の3Dモデルは、リグ付き3Dモデルに対応することができる。さらに、第1の3Dモデルの第1の階層的な相互接続されたボーンの組は、リグ付き3Dモデルのデジタルリグに対応することができる。装置は、動作検知装置から通信チャネルを介して、物体の第2の階層的な相互接続されたボーンの組のボーン構造情報を受け取るように構成することができる。この物体は、人間、動物、或いは実際の人間又は動物の自然な体の動きを模倣するロボットに対応することができる。装置は、第1の3Dモデルの第1の階層的な相互接続されたボーンの組の第1のボーン配向の組を第2のボーン配向の組に修正するように構成することができる。装置は、動作検知装置から受け取ったボーン構造情報に基づいて、第1のボーン配向の組を第2のボーン配向の組に修正することができる。装置は、第1の3Dモデルの第1の階層的な相互接続されたボーンの組における1又は2以上のボーンのサイズを変換することによって第2の3Dモデルを生成するように構成することができる。装置は、受け取ったボーン構造情報に基づいて、第1の階層的な相互接続されたボーンの組における1又は2以上のボーンのサイズを変換することができる。装置は、第2のボーン配向の組と、変換された第1の階層的な相互接続されたボーンの組とに従って、生成された第2の3Dモデルをディスプレイ装置上にアニメーション化するように構成することができる。
ある実施形態によれば、第1の3Dモデルの第1の階層的な相互接続されたボーンの組は、1又は2以上のルートボーンと、1又は2以上の非ルートボーンと、1又は2以上のエンドボーンとを含むことができる。装置は、第2の階層的な相互接続されたボーンの組における対応するルートボーンに対する第1の階層的な相互接続されたボーンの組における単一のルートボーンの相対的ボーン配向を計算するようにさらに構成することができる。第1の階層的な相互接続されたボーンの組におけるルートボーンの相対的ボーン配向は、対応するルートボーンのボーン構造情報に基づいて計算することができる。
装置は、第2の階層的な相互接続されたボーンの組における対応する非ルートボーンに対する第1の階層的な相互接続されたボーンの組における非ルートボーンの相対的ボーン配向を計算するようにさらに構成することができる。非ルートボーンの相対的ボーン配向は、第1の階層的な相互接続されたボーンの組における、対応する非ルートボーン及び非ルートボーンの親ボーンの対応する親ボーンのボーン構造情報に基づいて計算することができる。
装置は、第2の階層的な相互接続されたボーンの組における対応するエンドボーンに対する第1の階層的な相互接続されたボーンの組におけるエンドボーンの相対的ボーン配向を計算するようにさらに構成することができる。エンドボーンの相対的ボーン配向は、第1の3Dモデルの第1の階層的な相互接続されたボーンの組におけるエンドボーンの関節位置に基づいて計算することができる。
装置は、第1の3Dモデルの第1の階層的な相互接続されたボーンの組の動きに関する一連の制約を決定して第2のボーン配向の組を安定させるようにさらに構成することができる。ボーン構造情報は、動作検知装置から実時間で、準実時間で、又は遅延時間で受け取ることができる。ボーン構造情報は、物体の第2の階層的な相互接続されたボーンの組のボーン配向情報及びサイズ情報を含むことができる。この情報は、物体の視点に関連することができる。
本開示の例示的な態様によれば、装置は、動作検知装置から複数の物体のボーン構造情報を受け取るように構成することができる。複数の物体のボーン構造情報は、動作検知装置から実時間で、準実時間で、又は遅延時間で受け取ることができる。装置は、第1の3Dモデルと、動作検知装置から受け取った複数の物体のボーン構造情報とに基づいて、複数の第2の3Dモデルを生成することができる。
第1の3Dモデルは、第1の3Dモデルの1又は2以上の部分のメッシュ構造などの表面表現をさらに含むことができる。装置は、第2の配向の組と、変換された第1の階層的な相互接続されたボーンの組とに基づいて、第1の3Dモデルの1又は2以上の部分の表面表現を変形させるように構成することができる。装置は、第2の3Dモデルを生成することにより、第1の3Dモデルの第1の階層的な相互接続されたボーンの組の1又は2以上の動きを、動作検知装置によって追跡される物体の1又は2以上の動きに同期させるように構成することができる。
装置は、生成された第2の3Dモデルを実時間で、準実時間で、又は遅延時間でディスプレイ装置上にレンダリングすることができる。第2の3Dモデルは、1又は2以上の同期された動きを有することができる。ある実施形態によれば、受け取られたボーン構造情報は、動作検知装置によって物体の視点から取り込まれたものとすることができる。さらに、生成された第2の3Dモデルは、ディスプレイ装置上で物体の複数の視点から見ることができる。これらの複数の視点は、動作検知装置によって取り込まれた物体の視点を含むことができる。生成された第2の3Dモデルをディスプレイ装置にレンダリングして第1の位置における物体の仮想的存在を引き起こし、この物体を第2の位置に配置することができる。
図1は、本開示の実施形態による、視点変換のためのリアルなアニメーションを生成するための例示的なネットワーク環境を示すブロック図である。図1には、ネットワーク環境100を示す。ネットワーク環境100は、電子装置102と、サーバ104と、動作検知装置106と、物体108と、ディスプレイ装置110と、通信ネットワーク112とを含むことができる。さらに、電子装置102に関連するユーザ114も示す。ユーザ114は、ディスプレイ装置110に関連することもできる。電子装置102は、通信ネットワーク112を介して、サーバ104、動作検知装置106及びディスプレイ装置110に通信可能に結合することができる。
電子装置102は、リアルな3Dリグ付きモデルアニメーションを生成するように構成できる好適なロジック、回路、インターフェイス及び/又はコードを含むことができる。リグ付き3Dモデルのリグは、実際の骨格と同様に、リグ付き3Dモデルのアニメーション中に使用される動きの定義を可能にする、人間の関節及び骨の体系と同様の階層的な相互接続されたボーンの組を含む。電子装置102は、動作検知装置106によって追跡される物体108の動きに基づいて、ディスプレイ装置110上にリアルな3Dリグ付きモデルをアニメーション化するように構成することができる。電子装置102の例としては、以下に限定するわけではないが、ゲーム装置、ビデオ会議システム、拡張現実型装置、コンピュータ装置、サーバ、コンピュータワークステーション、メインフレームマシン及び/又はその他の電子装置を挙げることができる。
サーバ104は、1又は2以上のリグ付き3Dモデルを記憶するように構成できる好適な回路、インターフェイス及び/又はコードを含むことができる。サーバ104の例としては、以下に限定するわけではないが、アプリケーションサーバ、クラウドサーバ、ウェブサーバ、データベースサーバ、ファイルサーバ、ゲームサーバ、メインフレームサーバ、又はこれらの組み合わせを挙げることができる。
動作検知装置106は、物体108の動きを取り込むように構成できる好適なロジック、回路、インターフェイス及び/又はコードを含むことができる。動作検知装置106は、物体108の1又は2以上のポーズを実時間で、準実時間で、又は遅延時間で取り込むように構成することができる。動作検知装置106は、対応する取り込まれたポーズに基づいて、物体108のボーン構造情報を決定するようにさらに構成することができる。ボーン構造情報は、物体108の骨格配向情報を含むことができる。動作検知装置106は、決定されたボーン構造情報を、通信ネットワーク112を介して電子装置102に送信するように構成することができる。動作検知装置106は、物体108の1又は2以上のポーズを1つの視点から取り込むことができる深度センサ、赤外線(IR)センサ及び/又は(赤色−緑色−青色(RGB)センサなどの)カラーセンサなどの複数のセンサを含むことができる。例えば、動作検知装置106は、物体108の右側から物体108のポーズを取り込むことができる。従って、物体108の右側は、動作検知装置106によって取り込まれた物体108の視点に対応することができる。動作検知装置106の例としては、以下に限定するわけではないが、深度センサ、IRセンサ、RGBセンサ、物体108などの物体を動かすために使用される3Dメッシュ構造生成器、画像センサ及び/又は動作検出装置を挙げることができる。
物体108は、動作検知装置106によって動きを取り込む対象である関心物体を意味することができる。物体108は、人間、動物、或いは実際の人間又は動物の自然な体の動きを模倣できるロボットとすることができる。人体は、体を支えてその形状を維持する構造を提供する骨格を含む。人間の骨格は、階層的な一連の相互接続された骨を含み、骨間の(articulationsとも呼ばれる)関節(joints)が、頭、手及び足などの人体部分の一定レベルの動きを可能にする。
ディスプレイ装置110は、電子装置102から受け取ったリグ付き3Dモデルをレンダリングするように構成できる好適なロジック、回路、インターフェイス及び/又はコードを含むことができる。ある実施形態によれば、ディスプレイ装置110は、ユーザ114などのユーザから入力を受け取ることができる。このようなシナリオでは、ディスプレイ装置110を、ユーザ114による入力の提供を可能にするタッチ画面とすることができる。ある実施形態によれば、ディスプレイ装置110は、仮想キーパッド、スタイラス、ジェスチャ式入力及び/又はタッチ式入力を通じて入力を受け取ることができる。ディスプレイ装置110は、以下に限定するわけではないが、液晶ディスプレイ(LCD)ディスプレイ、発光ダイオード(LED)ディスプレイ、プラズマディスプレイ、及び/又は有機LED(OLED)ディスプレイ技術などの複数の既知の技術を通じて実現することができる。ある実施形態によれば、ディスプレイ装置110は、スマートガラス装置、シースルーディスプレイ、投影式ディスプレイ、エレクトロクロミックディスプレイ及び/又は透明ディスプレイのディスプレイ画面を示すことができる。シースルーディスプレイは、透明又は半透明ディスプレイとすることができる。ある実施形態によれば、シースルーディスプレイ及び/又は投影式ディスプレイは、ユーザの眼から所定の距離の空中にリグ付き3Dモデルが浮かんでいる3D幻視を生成することができ、強化されたユーザ体験を提供するように意図される。
通信ネットワーク112は、電子装置102をサーバ104及び/又はディスプレイ装置110に通信可能に結合できる通信媒体を含むことができる。通信ネットワーク112の例としては、以下に限定するわけではないが、インターネット、クラウドネットワーク、ワイヤレスフィディリティ(Wi−Fi)ネットワーク、ローカルエリアネットワーク(LAN)、及び/又はメトロポリタンエリアネットワーク(MAN)を挙げることができる。ネットワーク環境100における様々な装置は、様々な有線及び無線通信プロトコルに従って通信ネットワーク112に接続するように構成することができる。このような有線及び無線通信プロトコルの例としては、以下に限定するわけではないが、伝送制御プロトコル及びインターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)、ファイル転送プロトコル(FTP)、ZigBee、EDGE、IEEE802.11、ライトフィディリティ(Li−Fi)、802.16、IEEE802.11s、IEEE802.11g、マルチホップ通信、無線アクセスポイント(AP)、装置間通信、セルラー通信プロトコル及び/又はBluetooth(登録商標)(BT)通信プロトコル、又はこれらの組み合わせを挙げることができる。
電子装置102は、動作時に第1の3Dモデルを記憶するように構成することができる。第1の3Dモデルは、第1の階層的な相互接続されたボーンの組を含むことができるリグ付き3Dモデルに対応することができる。第1の階層的な相互接続されたボーンの組は、リグ付き3Dモデルのアニメーション中における動きの定義を可能にするデジタルリグに対応することができる。リグ付き3Dモデル内の第1の階層的な相互接続されたボーンの組は、1又は2以上のルートボーンと、1又は2以上の非ルートボーンと、1又は2以上のエンドボーンとを含むことができる。1又は2以上のルートボーンは、親ボーンを有していないボーンを意味する。1又は2以上の非ルートボーンは、少なくとも1つの親ボーンを有するボーンを意味する。1又は2以上のエンドボーンは、リグ付き3Dモデルの頭部、親指部分、足部分などの1又は2以上の末端部分を支えるボーンを意味する。第1の3Dモデルにおける第1の階層的な相互接続されたボーンの組は、第1のボーン配向の組で定義することができる。第1のボーン配向の組は、第1の階層的な相互接続されたボーンの組の各ボーンの初期安静ポーズ配向を表すことができるボーン配向を含むことができる。
電子装置102は、第1の階層的な相互接続されたボーンの組の第1のボーン配向の組を決定するように構成することができる。第1の3Dモデルは、第1の3Dモデルの1又は2以上の部分のメッシュ構造などの表面表現をさらに含むことができる。動作検知装置106から受け取った物体108などの物体のボーン構造情報に基づいて第1のボーン配向の組を修正する場合には、第1の3Dモデルの1又は2以上の部分の表面表現を変形させることができる。
物体108は、物体108の構造を支える第2の階層的な相互接続されたボーンの組と呼ばれる骨格構造を含むことができる。物体108は、人間、動物、或いは実際の人間又は動物の自然な体の動きを模倣できるロボットに対応することができる。通常、動作検知装置106は、物体108の動きの追跡中に物体108の1又は2以上のポーズを1つの視点から取り込む。従って、1つの視点から取り込まれた物体108のポーズは、物体108の部分的深度データ情報を含むことができる。部分的深度データは、1つの視点から取り込まれた物体108などの物体の様々な表面又は身体部位の距離に関する情報を含むことができる。例えば、物体108は、動作検知装置106が物体108の右側の投影像のみを取り込めるような位置に配置することができる。このような場合、物体108の右側投影像は、取り込まれる視点を示すことができる。動作検知装置106は、物体108のポーズを取り込んだ後に、物体108の第2の階層的な相互接続されたボーンの組のボーン構造情報を決定するように構成することができる。物体108のボーン構造の例については、後で図3Aにおいて説明する。ボーン配向情報は、取り込まれた物体108のポーズを表すことができる。
ボーン構造情報は、物体108の第2の階層的な相互接続されたボーンの組のボーン配向情報及びサイズ情報を含むことができる。サイズ情報は、物体108の解剖学的体格を表すことができる。ボーン構造情報におけるボーン配向情報は、少なくとも物体108の第2の階層的な相互接続されたボーンの組における各ボーンの固定グローバル座標系におけるボーン位置情報を含むことができる。ボーン構造情報におけるボーン配向情報は、物体108の第2の階層的な相互接続されたボーンの組における1又は2以上のルートボーン及び1又は2以上の非ルートボーンの固定グローバル座標系における絶対的ボーン配向情報をさらに含むことができる。固定グローバル座標系における絶対的ボーン配向情報は、取り込まれた物体108のポーズを表すことができる。動作検知装置106は、ボーン構造情報を実時間で、準実時間で、又は遅延時間で電子装置102に送信することができる。
電子装置102は、動作検知装置106が動きを追跡できる物体108の第2の階層的な相互接続されたボーンの組のボーン構造情報を受け取るように構成することができる。電子装置102は、第1の3Dモデルの第1の階層的な相互接続されたボーンの組の第1のボーン配向の組を第2のボーン配向の組に修正するようにさらに構成することができる。電子装置102は、動作検知装置106から受け取ったボーン構造情報に基づいて、第1のボーン配向の組を第2のボーン配向の組に修正することができる。この修正では、電子装置102を、受け取ったボーン構造情報に基づいて、第1の階層的な相互接続されたボーンの組の相対的ボーン配向を計算するように構成することができる。
ある実施形態によれば、電子装置102を、第2の階層的な相互接続されたボーンの組における対応するルートボーンに対する1又は2以上のルートボーンの各々の相対的ボーン配向を計算するように構成することができる。第2の階層的な相互接続されたボーンの組における対応するルートボーンに対するルートボーンの相対的ボーン配向は、対応するルートボーンのボーン構造情報に基づいて計算することができる。例えば、電子装置102は、第1の階層的な相互接続されたボーンの組におけるルートボーンのボーン配向と、第2の階層的な相互接続されたボーンの組における対応するルートボーンのボーン配向との差分を求めることができる。電子装置102は、受け取った物体108のボーン構造情報から取得されたボーン配向情報に基づいて、対応するルートボーンのボーン配向を決定することができる。求められた差分は、相対的ボーン配向に対応することができる。さらに、電子装置102は、相対的ボーン配向を利用して、第1の階層的な相互接続されたボーンの組における1又は2以上のルートボーンの第1のボーン配向の組を第2のボーン配向の組に修正することができる。
ある実施形態によれば、電子装置102を、第2の階層的な相互接続されたボーンの組における対応する非ルートボーンに対する1又は2以上の非ルートボーンの各々の相対的ボーン配向を計算するように構成することができる。電子装置102は、第2の階層的な相互接続されたボーンの組における対応する非ルートボーンに対する第1の階層的な相互接続されたボーンの組における非ルートボーンの相対的ボーン配向を、受け取った対応する非ルートボーンのボーン構造情報に基づいて計算することができる。非ルートボーンの場合には、第1の階層的な相互接続されたボーンの組における非ルートボーンの相対的ボーン配向の計算に、第1の階層的な相互接続されたボーンの組における非ルートボーンの親ボーンのボーン構造情報を使用することもできる。非ルートボーンの親ボーンは、第1の階層的な相互接続されたボーンの組における、非ルートボーンに相互接続されたボーンを意味することができる。さらに、親ボーンの動きは、対応する非ルートボーンの動きに影響を与えることができる。
ある実施形態によれば、電子装置102を、第1の階層的な相互接続されたボーンの組の1又は2以上のエンドボーンの各々の関節位置に基づいて、第2の階層的な相互接続されたボーンの組の対応するエンドボーンに対する1又は2以上のエンドボーンの各々の相対的ボーン配向を計算するように構成することができる。さらに、電子装置102は、ボーン構造情報におけるボーン位置情報を利用して、第1の階層的な相互接続されたボーンの組における1又は2以上のエンドボーンの各々の相対的ボーン配向を計算することができる。例えば、電子装置102は、第1の階層的な相互接続されたボーンの組におけるエンドボーンの関節位置を求めることができる。さらに、電子装置102は、求められたエンドボーンの関節位置と、第2の階層的な相互接続されたボーンの組における対応するエンドボーンのボーン位置情報とを利用して、第1の階層的な相互接続されたボーンの組におけるエンドボーンの相対的ボーン配向を計算することができる。電子装置102は、相対的ボーン配向を利用して、第1の階層的な相互接続されたボーンの組における1又は2以上のエンドボーンの第1のボーン配向の組を第2のボーン配向の組に修正することができる。
電子装置102は、修正後に第1の3Dモデルの第1の階層的な相互接続されたボーンの組の動きに関する一連の制約を決定するように構成することができる。電子装置102は、一連の制約を決定して第2のボーン配向の組を安定させることができる。第1の階層的な相互接続されたボーンの組におけるボーンに関する制約は、対応するボーンの配向を安定させるためにボーンの動きに適用される制限を意味することができる。例えば、電子装置102は、第1の階層的な相互接続されたボーンの組における(手首ボーンなどの)ボーンについて、対応するボーンの回転を(Y軸などの)回転軸の周囲の一定レベルに制限する制約を決定することができる。
ある実施形態によれば、電子装置102は、決定された一連の制約に基づいて、第1の階層的な相互接続されたボーンの組の第1のボーン配向の組を第2のボーン配向の組にさらに修正することができる。例えば、電子装置102は、一連の制約に基づいて、第1の階層的な相互接続されたボーンの組の相対的ボーン配向を更新することができる。従って、更新された相対的ボーン配向を利用して、第1の階層的な相互接続されたボーンの組における1又は2以上のルートボーンの第1のボーン配向の組を第2のボーン配向の組に修正することができる。一連の制約の決定のさらなる詳細については、図3A〜図3Dにおいて説明する。
電子装置102は、第1の3Dモデルの第1の階層的な相互接続されたボーンの組における1又は2以上のボーンのサイズを変換して第2の3Dモデルを生成するようにさらに構成することができる。電子装置102は、受け取ったボーン構造情報に基づいて、第1の階層的な相互接続されたボーンの組における1又は2以上のボーンのサイズを変換することができる。電子装置102は、物体108の第2の階層的な相互接続されたボーンの組のボーン構造情報におけるサイズ情報を利用して、第1の階層的な相互接続されたボーンの組における1又は2以上のボーンのサイズを変換することができる。例えば、電子装置102は、受け取ったボーン構造情報に基づいて、第1の階層的な相互接続されたボーンの組におけるボーンのサイズを第2の階層的な相互接続されたボーンの組におけるボーンのサイズに一致するように拡大することができる。生成された第2の3Dモデルは、物体108に類似することができる。さらに、第2の3Dモデルの生成は、第1の3Dモデルの1又は2以上の部分の表面表現の変形を含むことができる。電子装置102は、第1の3Dモデルの1又は2以上の部分の表面表現を、第2のボーン配向の組と、変換された第1の階層的な相互接続されたボーンの組とに基づいて変形させることができる。電子装置102は、第2の配向の組と、変換された第1の階層的な相互接続されたボーンの組とに従って、生成された第2の3Dモデルをディスプレイ装置110上にアニメーション化するようにさらに構成することができる。
ある実施形態によれば、動作検知装置106は、物体108と同様の複数の物体の1又は2以上のポーズを取り込むように構成することができる。動作検知装置106は、取り込まれた1又は2以上のポーズの状態の複数の物体の各々に関するボーン構造情報を決定することができる。従って、電子装置102は、通信ネットワーク112を介して動作検知装置106から実時間で、準実時間で、又は遅延時間で複数の物体のボーン構造情報を受け取ることができる。さらに、電子装置102は、1又は2以上の第1の3Dモデルと、動作検知装置106から受け取った複数の物体のボーン構造情報とに基づいて、複数の第2の3Dモデルを同時に生成することができる。ある実施形態によれば、電子装置102は、サーバ104に記憶されている第1の3Dモデルを取り出すことができる。ある実施形態によれば、本開示の範囲から逸脱することなく、電子装置102の機能又は動作をサーバ104が実装することができる。
図2は、本開示の実施形態による例示的な電子装置を示すブロック図である。図2の説明は、図1の要素に関連して行う。図2には、電子装置102を示す。電子装置102は、プロセッサ202と、メモリ204と、配向推定ユニット206と、モデル変形ユニット208と、入力/出力(I/O)装置210と、ネットワークインターフェイス214とを含むことができる。I/O装置210は、アプリケーションインターフェイス212をレンダリングするために利用できるディスプレイ画面210Aを含むことができる。プロセッサ202は、メモリ204、配向推定ユニット206、モデル変形ユニット208、I/O装置210及びネットワークインターフェイス214に通信可能に結合することができる。ネットワークインターフェイス214は、通信ネットワーク112を介してサーバ104及び動作検知装置106と通信するように構成することができる。
プロセッサ202は、メモリ204に記憶されている命令セットを実行するように構成できる好適なロジック、回路、インターフェイス及び/又はコードを含むことができる。プロセッサ202は、当業で周知の複数のプロセッサ技術に基づいて実装することができる。プロセッサ202の例は、画像処理装置(GPU)、中央処理装置(CPU)、X86ベースプロセッサ、縮小命令セットコンピュータ(RISC)プロセッサ、特定用途向け集積回路(ASIC)プロセッサ、複数命令セットコンピュータ(CISC)プロセッサ、その他のプロセッサ、及び/又はこれらの組み合わせとすることができる。例えば、GPU及びCPUは、リアルなアニメーションを生成するように協働することができる。このような場合、CPUが相対的配向の計算を実行し、GPUが第1の3Dモデル及び第2の3Dモデルなどの3Dモデルのレンダリングを実行することができる。
メモリ204は、プロセッサ202が実行可能な命令セットを記憶するように構成できる好適なロジック、回路及び/又はインターフェイスを含むことができる。メモリ204は、オペレーティングシステム及び関連するアプリケーションを記憶するように構成することができる。メモリ204は、リグ付き3Dモデルにおける階層的な相互接続されたボーンの組の1又は2以上のボーン配向を決定するための様々なアルゴリズムを記憶するようにさらに構成することができる。メモリ204の実装例としては、以下に限定するわけではないが、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、電気的に消去可能なプログラマブルリードオンリメモリ(EEPROM)、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、CPUキャッシュ及び/又はセキュアデジタル(SD)カードを挙げることができる。
配向推定ユニット206は、リグ付き3Dモデルにおける階層的な相互接続されたボーンの組の1又は2以上のボーン配向を決定するように構成できる好適なロジック、回路、インターフェイス及び/又はコードを含むことができる。配向推定ユニット206は、物体108に関連する別のボーンに対するリグ付き3Dモデルのボーンの相対的配向を計算するようにさらに構成することができる。配向推定ユニット206は、電子装置102内の別個のプロセッサ又は回路として実装することができる。配向推定ユニット206及びプロセッサ202は、配向推定ユニット206及びプロセッサ202の機能を実行する統合プロセッサ又はプロセッサ群として実装することができる。配向推定ユニット206は、プロセッサ202による実行時に電子装置102の機能及び動作を実行できる、メモリ204に記憶された命令セットとして実装することができる。
モデル変形ユニット208は、第1の3Dモデルなどのリグ付き3Dモデルの階層的な相互接続されたボーンの組の第1のボーン配向の組を第2のボーン配向の組に修正するように構成できる好適なロジック、回路、インターフェイス及び/又はコードを含むことができる。モデル変形ユニット208は、第1の3Dモデルに対してボーン長パラメータ化動作を実行して、第2の3Dモデルを生成するようにさらに構成することができる。ボーン長パラメータ化動作は、物体108の1又は2以上のボーンのサイズに基づいて、第1の3Dモデルの階層的な相互接続されたボーンの組の1又は2以上のボーンのサイズを変換することができる。モデル変形ユニット208は、第2の3Dモデルをディスプレイ装置110上にアニメーション化するように構成することができる。モデル変形ユニット208は、電子装置102内の別個のプロセッサ又は回路として実装することができる。モデル変形ユニット208及びプロセッサ202は、モデル変形ユニット208及びプロセッサ202の機能を実行する統合プロセッサ又はプロセッサ群として実装することができる。モデル変形ユニット208は、プロセッサ202による実行時に電子装置102の機能及び動作を実行できる、メモリ204に記憶された命令セットとして実装することができる。
I/O装置210は、ユーザ114から入力を受け取るように構成できる好適なロジック、回路、インターフェイス及び/又はコードを含むことができる。I/O装置210は、ユーザ114に出力を提供するようにさらに構成することができる。I/O装置210は、プロセッサ202と通信するように構成できる様々な入力及び出力装置を含むことができる。入力装置の例としては、以下に限定するわけではないが、タッチ画面、キーボード、マウス、ジョイスティック及び/又はマイクを挙げることができる。出力装置の例としては、以下に限定するわけではないが、ディスプレイ画面210A及び/又はスピーカを挙げることができる。
ディスプレイ画面210Aは、アプリケーションインターフェイス212をレンダリングして複数の視点からのリグ付き3Dモデルのリアルなアニメーションを表示するように構成できる好適なロジック、回路、インターフェイス及び/又はコードを含むことができる。ある実施形態によれば、ディスプレイ画面210Aは、ユーザ114から入力を受け取ることができる。このようなシナリオでは、ディスプレイ画面210Aを、ユーザ114による入力の提供を可能にするタッチ画面とすることができる。タッチ画面は、抵抗性タッチ画面、容量性タッチ画面又は熱タッチ画面のうちの少なくとも1つに対応することができる。ある実施形態によれば、ディスプレイ画面210Aは、仮想キーパッド、スタイラス、ジェスチャ式入力及び/又はタッチ式入力を通じて入力を受け取ることができる。ディスプレイ画面210Aは、以下に限定するわけではないが、液晶ディスプレイ(LCD)ディスプレイ、発光ダイオード(LED)ディスプレイ、プラズマディスプレイ、及び/又は有機LED(OLED)ディスプレイ技術及び/又はその他のディスプレイのうちの少なくとも1つなどのいくつかの既知の技術を通じて実現することができる。ある実施形態によれば、ディスプレイ画面210Aは、スマートガラス装置、シースルーディスプレイ、投影式ディスプレイ、エレクトロクロミックディスプレイ及び/又は透明ディスプレイのディスプレイ画面を示すことができる。ディスプレイ画面210Aは、ディスプレイ装置110と同様のものとすることができる。
アプリケーションインターフェイス212は、ディスプレイ画面210Aなどのディスプレイ画面上にレンダリングされるユーザインターフェイス(UI)に対応することができる。ある実施形態によれば、アプリケーションインターフェイス212をディスプレイ装置110などのディスプレイ装置上にさらにレンダリングすることができる。アプリケーションインターフェイス212は、(物体108などの)物体に関連するアニメーション化された第2の3Dモデルをユーザ114に表示することができる。第2の3Dモデルは、アプリケーションインターフェイス212を使用することによって複数の視点から見ることができる。アプリケーションインターフェイス212の例としては、限定するわけではないが、グラフィカルユーザインターフェイス(GUI)を挙げることができる。
ネットワークインターフェイス214は、通信ネットワーク112を介して電子装置102と、サーバ104と、動作検知装置106との間の通信を確立するように構成できる好適なロジック、回路、インターフェイス及び/又はコードを含むことができる。ネットワークインターフェイス214は、電子装置102と通信ネットワーク112との間の有線又は無線通信をサポートする様々な既知の技術を使用することによって実装することができる。ネットワークインターフェイス214としては、以下に限定するわけではないが、アンテナ、無線周波数(RF)トランシーバ、1又は2以上の増幅器、チューナ、1又は2以上の発振器、デジタルシグナルプロセッサ、コーダ・デコーダ(CODEC)チップセット、加入者識別モジュール(SIM)カード及び/又はローカルバッファを挙げることができる。ネットワークインターフェイス214は、インターネット、イントラネット、及び/又は、セルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)及び/又はメトロポリタンエリアネットワーク(MAN)などの無線ネットワークなどのネットワークと無線通信を介して通信することができる。無線通信は、グローバル・システム・フォー・モバイル・コミュニケーションズ(GSM(登録商標))、拡張データGSM(登録商標)環境(EDGE)、広帯域符号分割多元接続(W−CDMA)、ロングタームエボリューション(LTE)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、Bluetooth(登録商標)、(IEEE 802.11a、IEEE 802.11b、IEEE 802.11g及び/又はIEEE802.11nなどの)無線フィデリティ(Wi−Fi)、ボイスオーバーインターネットプロトコル(VoIP)、ライトフィディリティ(Li−Fi)、Wi−MAX、電子メールプロトコル、インスタントメッセージング及び/又はショートメッセージサービス(SMS)などの複数の通信規格、通信プロトコル及び通信技術のいずれかを使用することができる。
図1で説明したような電子装置102によって実行される機能及び/又は動作は、プロセッサ202、配向推定ユニット206、及び/又はモデル変形ユニット208によって実行することができる。プロセッサ202、配向推定ユニット206及びモデル変形ユニット208によって実行される他の動作については、例えば図3A、図3B、図3C及び図3Dにおいてさらに説明する。
図3A、図3B、図3C及び図3Dに、本開示の実施形態による、第1の3Dモデルからの第2の3Dモデルを生成する例をまとめて示す。図3A、図3B、図3C及び図3Dの説明は、図1及び図2の要素に関連して行う。図3Aには、メモリ204に記憶された第1の3Dモデル302を示す。第1の3Dモデル302は、第1の階層的な相互接続されたボーンの組304などのデジタルリグを含むことができるリグ付き3Dモデルとすることができる。第1の階層的な相互接続されたボーンの組304は、ルートボーン304Aなどの1又は2以上のルートボーンを含むことができる。第1の階層的な相互接続されたボーンの組304は、第1の非ルートボーン304B及び第2の非ルートボーン304Cなどの1又は2以上の非ルートボーンをさらに含むことができる。第1の階層的な相互接続されたボーンの組304は、エンドボーン304Dなどの1又は2以上のエンドボーンを含むこともできる。第1の非ルートボーン304Bのボーン長306も示す。
動作検知装置106によって特定される物体108の第2の階層的な相互接続されたボーンの組308などの骨格構造も示す。動作検知装置106からは、人間などの物体108の第2の階層的な相互接続されたボーンの組308のボーン構造情報を受け取ることができる。動作検知装置106からボーン構造情報として受け取られる第2の階層的な相互接続されたボーンの組308には、ルートボーン310A、第1の非ルートボーン310B、第2の非ルートボーン310C及びエンドボーン310Dを示す。
図3Aには、第2の3Dモデル312も示す。第2の3Dモデル312は、変換された第1の階層的な相互接続されたボーンの組314を含むことができる。第2の3Dモデル312の変換された第1の階層的な相互接続されたボーンの組314には、ルートボーン314A、第1の非ルートボーン314B、第2の非ルートボーン314C、エンドボーン314Dを示す。第2の3Dモデル312の変換された第1の階層的な相互接続されたボーンの組314には、第1の非ルートボーン314Bのボーン長316も示す。
一例によれば、メモリ204は、第1の3Dモデル302を記憶するように構成することができる。ルートボーン304Aは、第1の階層的な相互接続されたボーンの組304のルートボーンのうちの1つを表すことができる。第1の非ルートボーン304B及び第2の非ルートボーン304Cは、第1の階層的な相互接続されたボーンの組304における2つの非ルートボーンを表すことができる。エンドボーン304Dは、第1の階層的な相互接続されたボーンの組304におけるエンドボーンのうちの1つを表すことができる。第1の階層的な相互接続されたボーンの組304は、第1の3Dモデル302の1又は2以上の部分のメッシュ構造などの表面表現を支えるための構造を提供することができる。第1の3Dモデル302の1又は2以上の部分は、頭部、腕部分、脚部分などの1又は2以上の身体部分を意味することができる。
第1の3Dモデル302の第1の階層的な相互接続されたボーンの組304は、第1のポーズを表すことができる第1のボーン配向の組で定義する(又は存在する)ことができる。第1のボーン配向の組は、第1の階層的な相互接続されたボーンの組304における各ボーンの初期安静ポーズを表すことができるボーン配列及び方向を含むことができる。配向推定ユニット206は、第1の3Dモデル302の第1の階層的な相互接続されたボーンの組304の第1のボーン配向の組を決定するように構成することができる。配向推定ユニット206は、第1のボーン配向の組を表すことができる第1の四元数の組を決定することができる。四元数とは、3D空間における物体108などの物体、或いはこのような物体の1又は2以上の部分の考えられる配向及び/又は回転を表すために使用される数学的表記を意味する。
プロセッサ202は、物体108などの物体の第2の階層的な相互接続されたボーンの組308のボーン構造情報を動作検知装置106から受け取るように構成することができる。プロセッサ202は、動作検知装置106からネットワークインターフェイス214を介して実時間で、準実時間で、又は遅延時間でボーン構造情報を受け取ることができる。ある実施形態によれば、動作検知装置106は、1つの視点からの物体108のボーン構造情報を取り込んでおくことができる。ボーン構造情報の取り込み時には、物体108を第2のポーズに配向することができる。例えば、物体108の右側投影像を動作検知装置106の正面に置くことができる。従って、動作検知装置106は、第2のポーズに配向された物体108の右側投影像のボーン構造情報を取り込むことができる。換言すれば、動作検知装置106は、単一視点からの物体108の部分的深度データなどの部分的ボーン構造情報を取り込むことができる。
ボーン構造情報は、物体108の第2の階層的な相互接続されたボーンの組308のボーン配向情報及びサイズ情報を含むことができる。ボーン配向情報は、物体108の第2の階層的な相互接続されたボーンの組308における各ボーンの固定グローバル座標系における少なくともボーン位置情報を含むことができる。例えば、ベクトル[1,1,0]は、第2の階層的な相互接続されたボーンの組308におけるボーンのボーン位置を表すことができる。ボーン配向情報は、物体108の第2の階層的な相互接続されたボーンの組308の固定グローバル座標系における絶対的ボーン配向をさらに含むことができる。ボーン配向は、第2の四元数の組として表すことができる。物体108の第2の階層的な相互接続されたボーンの組308は、1又は2以上のルートボーンと、1又は2以上の非ルートボーンと、1又は2以上のエンドボーンとをさらに含むことができる。従って、ボーン構造情報は、第2の階層的な相互接続されたボーンの組308の(ルートボーン314Aなどの)1又は2以上のルートボーン、(第1の非ルートボーン314B,及び第2の非ルートボーン314Cなどの)1又は2以上の非ルートボーン及び(エンドボーン314Dなどの)1又は2以上のエンドボーンに関連する配向情報及びサイズ情報を含むことができる。
モデル変形ユニット208は、動作検知装置106からボーン構造情報を受け取った後に、第1の3Dモデル302における第1の階層的な相互接続されたボーンの組304の第1のボーン配向の組を第2のボーン配向の組に修正するように構成することができる。換言すれば、受け取ったボーン構造情報に基づいて、第1の3Dモデル302の第1のポーズを物体108の第2のポーズに類似するように修正することができる。この修正では、モデル変形ユニット208を、受け取った第2の階層的な相互接続されたボーンの組308のボーン構造情報に基づいて、第1の3Dモデル302の第1の階層的な相互接続されたボーンの組304の相対的ボーン配向を計算するように構成することができる。換言すれば、モデル変形ユニット208は、第1の3Dモデル302における第1の階層的な相互接続されたボーンの組304の1又は2以上のルートボーン、1又は2以上の非ルートボーン及び1又は2以上のエンドボーンの相対的ボーン配向を計算するように構成することができる。相対的ボーン配向の計算例については、図3B〜図3Dに示す。
モデル変形ユニット208は、第1の3Dモデル302の第1の階層的な相互接続されたボーンの組304の動きに関する一連の制約を決定するように構成することができる。モデル変形ユニット208は、一連の制約を決定して第2のボーン配向の組を安定させることができる。換言すれば、モデル変形ユニット208は、第1の階層的な相互接続されたボーンの組304の動きに一連の制約を適用して、第2の3Dモデル312のリアルな動きを生成することができる。例えば、モデル変形ユニット208は、第2の配向の組における手首ボーンの対応する配向に基づいて、第1の階層的な相互接続されたボーンの組304における手首ボーンなどのボーンの1又は2以上の3D(x、y及びz)座標を決定することができる。「Y」軸などの対応する回転軸における手首ボーンの動きについて制約を決定することができる。モデル変形ユニット208は、「Y」軸方向(すなわち、手首ボーンの回転軸)における手首ボーンの動きについて「0度」などの制約を設定することができる。ある実施形態によれば、モデル変形ユニット208は、第1の3Dモデル302における第1の階層的な相互接続されたボーンの組304の第1のボーン配向の組を、決定された一連の制約に基づいて第2のボーン配向の組に修正することができる。
モデル変形ユニット208は、第1の3Dモデル302の第1の階層的な相互接続されたボーンの組304における1又は2以上のボーンのサイズを変換して第2の3Dモデル312を生成するようにさらに構成することができる。モデル変形ユニット208は、第1の3Dモデル302の第1の階層的な相互接続されたボーンの組304における1又は2以上のボーンのサイズを、受け取ったボーン構造情報に基づいて変換することができる。モデル変形ユニット208は、ボーン構造情報における第2の階層的な相互接続されたボーンの組308のサイズ情報を利用して、第1の階層的な相互接続されたボーンの組304における1又は2以上のボーンのサイズを変換することができる。図示のように、モデル変形ユニット208は、第2の階層的な相互接続されたボーンの組308における第1の非ルートボーン310Bのサイズ情報に基づいて、第1の非ルートボーン304Bのボーン長306をボーン長316に自動的に短縮することができる。同様に、モデル変形ユニット208は、第2の階層的な相互接続されたボーンの組308における対応する1又は2以上のボーンの対応するサイズ情報に基づいて、第1の階層的な相互接続されたボーンの組304における他の1又は2以上のボーンのサイズを変換することができる。第2の3Dモデル312は、第2の配向の組で定義される変換された第1の階層的な相互接続されたボーンの組を含むことができる。第2の3Dモデル312は、動作検知装置106によって取り込まれた物体108のポーズ及び構造に類似することができる。
第2の3Dモデル312の生成は、第1の3Dモデル302の1又は2以上の部分の表面表現の変形を含むことができる。モデル変形ユニット208は、第2のボーン配向の組と、変換された第1の階層的な相互接続されたボーンの組314とに基づいて、第1の3Dモデル302の1又は2以上の部分の表面表現を変形させるように構成することができる。図示のように、第2の非ルートボーン304Cは、ボーン構造情報における第2の非ルートボーン310Cのボーン配向情報に基づいて初期配向から最終配向に修正することによって、第2の非ルートボーン314Cに修正することができる。この修正により、第2の3Dモデル312における第2の非ルートボーン314Cの最終配向に従って、第2の非ルートボーン304Cに関連する表面表現を変形させることができる。
プロセッサ202は、第2の配向の組と、変換された第1の階層的な相互接続されたボーンの組314とに従って、生成された第2の3Dモデル312をディスプレイ装置110上にアニメーション化するように構成することができる。第2の3Dモデル312のアニメーションは、動作検知装置106から実時間で、準実時間で、又は遅延時間で受け取られたボーン構造情報に基づく、第1の3Dモデル302の実時間、準実時間又は遅延時間での修正及び変換を含むことができる。生成された第2の3Dモデル312のアニメーションは、生成された第2の3Dモデル312をディスプレイ装置110上で複数の視点から見えるようにすることができる。複数の視点は、動作検知装置106が物体108の第2のポーズを取り込むことができた1つの視点を含むことができる。生成された第2の3Dモデル312は、電子装置102などの装置に、アーチファクトを伴わずにリグ付き3Dモデルを表示する能力をもたらすことができる。第1の3Dモデル302の第1の階層的な相互接続されたボーンの組304の修正及び変換の結果として生成された第2の3Dモデル312は、動作検知装置106によって追跡されるユーザ114などのユーザの実際の動きを模倣することができる。生成された第2の3Dモデル312は、ビデオ会議において使用して、ビデオ会議システムの2つの装置間における一般的ビデオ共有の代わりに、リアルな動きを有する人物のリグ付き3Dモデルを表示することができる。さらに、例えば図5で説明するように、生成された第2の3Dモデル312を使用して、仮想現実型テレプレゼンスシステムにおける仮想的存在を引き起こすこともできる。生成された第2の3Dモデル312は、例えば図6で説明するようにゲームシステムに応用することもできる。
図3Bに、ルートボーン304Aの安静ポーズボーン配向(rest pose bone orientation)318、第2の階層的な相互接続されたボーンの組308におけるルートボーン310Aの絶対的ボーン配向320、及びルートボーン304Aの相対的ボーン配向322を示す。配向推定ユニット206は、ルートボーン304Aの安静ポーズボーン配向318を決定することができる。ルートボーン304Aの安静ポーズボーン配向318は、第1の3Dモデル302の第1の階層的な相互接続されたボーンの組304の第1のボーン配向の組に含めることができる。ルートボーン304Aの安静ポーズボーン配向318は、安静ポーズ四元数(R)によって表すことができる。さらに、動作検知装置106から受け取られるボーン構造情報は、第2の階層的な相互接続されたボーンの組308におけるルートボーン310Aの絶対的ボーン配向320に関するボーン配向情報を含むことができる。ルートボーン310Aの絶対的ボーン配向320は、絶対四元数(Q)によって表すことができる。
配向推定ユニット206は、第2の階層的な相互接続されたボーンの組308におけるルートボーン310Aに対するルートボーン304Aの相対的ボーン配向322を計算することができる。ルートボーン304Aの相対的ボーン配向322の計算では、配向推定ユニット206が、以下に示す式(1)を用いて安静ポーズ四元数(R)と絶対四元数(Q)との間の差分(W)を求めることができる。
(1)
ここでのR
-1は、安静ポーズ四元数(R)の共役である。
差分(W)は、ルートボーン304Aの相対的ボーン配向322を表すことができる。モデル変形ユニット208は、ルートボーン304Aの相対的ボーン配向322をルートボーン304Aの安静ポーズボーン配向318にさらに適用することができる。相対的ボーン配向322を安静ポーズボーン配向318に適用すると、安静ポーズボーン配向318を絶対的ボーン配向320に修正することができる。安静ポーズボーン配向318から絶対的ボーン配向320への修正は、第1のボーン配向の組から第2のボーン配向の組への修正を説明するための一例である。
モデル変形ユニット208は、ルートボーン304Aの一連の制約を決定して第2のボーン配向の組における対応する配向を安定させるようにさらに構成することができる。ある実施形態によれば、モデル変形ユニット208は、対応する制約に基づいてルートボーン310Aの絶対的ボーン配向320を更新することができる。例えば、ボーン構造情報におけるルートボーン310Aは、実際の人間には不可能と思われる非現実的な動きを伴うことがある。従って、モデル変形ユニット208は、ルートボーン310Aの動きの制約を決定することができる。さらに、配向推定ユニット206は、決定された制約に基づいて絶対的ボーン配向320を更新して、動きを現実的なものにすることができる。ある実施形態によれば、配向推定ユニット206は、更新された絶対的ボーン配向320に関連する安静ポーズ四元数(R)と更新された絶対四元数(Q)との間の差分(W)を再計算することができる。ある実施形態によれば、モデル変形ユニット208及び配向推定ユニット206は、第1の非ルートボーン304Bについての計算と同様に他の1又は2以上の非ルートボーンの相対的ボーン配向を計算することができる。
図3Cに、第1の非ルートボーン304Bの第1の安静ポーズボーン配向324A、第1の非ルートボーン304Bの第2の安静ポーズボーン配向324B、及び第1の非ルートボーン304B(図3A)の親ボーンの安静ポーズボーン配向326を示す。第1の非ルートボーン310Bの絶対的ボーン配向328、第1の非ルートボーン310Bの親ボーンの絶対的ボーン配向330、及び第1の非ルートボーン304Bの相対的ボーン配向332も示す。
配向推定ユニット206は、第1の非ルートボーン304Bの第1の安静ポーズボーン配向324Aを決定することができる。第1の非ルートボーン304Bの第1の安静ポーズボーン配向324Aは、第1の3Dモデル302の第1の階層的な相互接続されたボーンの組304の第1のボーン配向の組に含めることができる。第1の安静ポーズボーン配向324Aは、第1の安静ポーズ四元数(Rc)によって表すことができる。さらに、動作検知装置106から受け取られるボーン構造情報は、第2の階層的な相互接続されたボーンの組308における第1の非ルートボーン310Bの絶対的ボーン配向328に関するボーン配向情報を含むことができる。第2の階層的な相互接続されたボーンの組308における第1の非ルートボーン310Bは、第1の3Dモデル302の第1の階層的な相互接続されたボーンの組304における第1の非ルートボーン304Bに対応することができる。絶対的ボーン配向328は、絶対四元数(Qc)によって表すことができる。
配向推定ユニット206は、第1の非ルートボーン304Bの親ボーンの安静ポーズボーン配向326を決定することができる。第1の非ルートボーン304Bの親ボーンの安静ポーズボーン配向326は、3Dモデル302の第1の階層的な相互接続されたボーンの組304の第1のボーン配向の組に含めることができる。第1の非ルートボーン304Bの親ボーンの安静ポーズボーン配向326は、安静ポーズ四元数(Rp)によって表すことができる。動作検知装置106から受け取られるボーン構造情報は、第2の階層的な相互接続されたボーンの組308における第1の非ルートボーン310Bの親ボーンの絶対的ボーン配向330に関するボーン配向情報を含むことができる。第2の階層的な相互接続されたボーンの組308における第1の非ルートボーン310Bの親ボーンの絶対的ボーン配向330は、絶対四元数(Qp)によって表すことができる。
配向推定ユニット206は、第2の階層的な相互接続されたボーンの組308における第1の非ルートボーン310Bに対する第1の階層的な相互接続されたボーンの組304における第1の非ルートボーン304Bの相対的ボーン配向332を計算することができる。第1の非ルートボーン304Bの相対的ボーン配向332の計算では、配向推定ユニット206が、以下に示す式(2)を用いて安静ポーズ四元数(R
p)と第1の安静ポーズ四元数(R
p)との間の第1の差分(W
1)を求めることができる。
(2)
ここでのR
p -1は、第1の非ルートボーン304B(子ボーン)の親ボーンの安静ポーズ四元数(R
p)の共役を表し、R
cは、(第1の非ルートボーン304Bなどの)子ボーンの第1の安静ポーズ四元数(R
c)を表す。
配向推定ユニット206は、以下に示す式(3)を用いて絶対四元数(Q
p)と絶対四元数(Q
c)との間の第2の差分(W
2)を求めることができる。
(3)
ここでのQ
p -1は、絶対四元数(Q
p)の共役である。
配向推定ユニット206は、以下に示す式(4)を用いて第1の差分(W
1)と第2の差分(W
2)との間の第3の差分(W
3)を求めることができる。
(4)
ここでの(R
p -1R
c)
-1は、第1の差分(W
1)の共役を表す。
第3の差分(W3)は、第1の非ルートボーン304Bの相対的ボーン配向332を表すことができる。モデル変形ユニット208は、相対的ボーン配向332を第1の非ルートボーン304Bの第2の安静ポーズボーン配向324Bにさらに適用することができる。相対的ボーン配向332の適用は、第1の非ルートボーン304Bの親ボーンが安静ポーズボーン配向326から絶対的ボーン配向330に移行する一方で、第1の非ルートボーン304Bが第1の安静ポーズボーン配向324Aに留まっている場合に行うことができる。第2の安静ポーズボーン配向324Bは、第1の非ルートボーン304Bの安静ポーズボーン配向を表すことができる。このようなシナリオでは、第1の非ルートボーン304Bの第1の安静ポーズボーン配向324Aを第2の安静ポーズボーン配向324Bと呼ぶことができる。相対的ボーン配向332を第2の安静ポーズボーン配向324Bに適用すると、第2の安静ポーズボーン配向324Bを絶対的ボーン配向328に修正することができる。第2の安静ポーズボーン配向324Bから絶対的ボーン配向330への修正は、第1のボーン配向の組から第2のボーン配向の組への修正の一例である。
モデル変形ユニット208は、第1の非ルートボーン304B及び親ボーンの一連の制約を決定して第2のボーン配向の組における対応する配向を安定させるようにさらに構成することができる。ある実施形態によれば、モデル変形ユニット208は、対応する制約に基づいて、第1の非ルートボーン304Bの親ボーンの絶対的ボーン配向330を更新することができる。例えば、ボーン構造情報における第1の非ルートボーン310Bは、実際の人間には不可能と思われる非現実的な動きを伴うことがある。従って、モデル変形ユニット208は、第1の非ルートボーン310B及び対応する親ボーンの動きの制約を決定することができる。配向推定ユニット206は、決定された制約に基づいて、第1の非ルートボーン304Bの親ボーンの絶対的ボーン配向330を更新することができる。さらに、配向推定ユニット206は、対応するボーンの更新された絶対的ボーン配向330に基づいて第1の非ルートボーン304Bの絶対的ボーン配向328を更新して、動きを現実的なものにすることができる。
ある実施形態によれば、配向推定ユニット206は、第1の非ルートボーン304Bの更新された絶対的ボーン配向328と、対応する親ボーンの更新された絶対的ボーン配向330とに基づいて、第1の差分(W1)、第2の差分(W2)及び第3の差分(W3)を再計算することができる。モデル変形ユニット208及び配向推定ユニット206は、第1の非ルートボーン304Bについての計算と同様に他の1又は2以上の非ルートボーンの相対的ボーン配向を計算することができる。
図3Dに、固定グローバル座標系の第1の軸334A、第2の軸334B、第3の軸334Cを示す。第1の3Dモデル302のエンドボーン304Dのボーン位置336、及び第2の階層的な相互接続されたボーンの組308におけるエンドボーン310Dのボーン位置338も示す。第1の軸334Aは、固定グローバル座標系のY軸を表すことができ、第2の軸334Bは、X軸を表すことができ、第3の軸334Cは、Z軸を表すことができる。
配向推定ユニット206は、固定グローバル座標系におけるエンドボーン304Dのボーン位置336を決定するように構成することができる。配向推定ユニット206は、第1の3Dモデル302におけるエンドボーン304Dの関節位置を決定することができる。配向推定ユニット206は、第1の配向の組におけるエンドボーン304Dの関節位置に関連する配向情報を利用して、エンドボーン304Dのボーン位置336を決定することができる。ボーン位置336は、エンドボーン304Dの位置を表す座標としての位置を示すベクトルなどのベクトルを意味することができる。配向推定ユニット206は、ボーン構造情報から取得されたボーン位置情報に基づいて、エンドボーン310Dのボーン位置338をさらに識別することができる。
配向推定ユニット206は、エンドボーン304Dの決定されたボーン位置336と、エンドボーン310Dの識別されたボーン位置338とに基づいて、エンドボーン310Dの絶対的ボーン配向をさらに決定することができる。エンドボーン310Dの絶対的ボーン配向の決定では、配向推定ユニット206が、以下に示す式(5)を用いてエンドボーン310Dの回転軸を求めることができる。
(5)
ここでのvは、エンドボーン310Dの回転軸を表し、
b
1は、エンドボーン310Dのボーン位置338に関連するベクトルを表し、
b
2は、エンドボーン304Dのボーン位置336に関連する別のベクトルを表す。
配向推定ユニット206は、以下に示す式(6)を用いてエンドボーン310Dの回転角(θ)をさらに求めることができる。
(6)
ここでのθは、エンドボーン310Dの回転角を表し、
b
1は、エンドボーン310Dのボーン位置338に関連するベクトルを表し、
b
2は、エンドボーン304Dのボーン位置336に関連する他のベクトルを表す。
配向推定ユニット206は、回転軸(v)及び回転角(θ)を求めた後に、以下に示す式(7)を用いてエンドボーン310Dの絶対的ボーン配向を求めるように構成することができる。
(7)
ここでのqは、エンドボーン310Dの絶対的ボーン配向を表す四元数を意味する。
配向推定ユニット206は、エンドボーン310Dの絶対的ボーン配向を求めた後に、第2の階層的な相互接続されたボーンの組308におけるエンドボーン310Dに対するエンドボーン304Dの相対的ボーン配向を計算することができる。配向推定ユニット206は、エンドボーン310Dの絶対的ボーン配向と、エンドボーン304Dの第1の配向の組における安静ポーズボーン配向とを使用することによって、エンドボーン304Dの相対的ボーン配向を計算することができる。配向推定ユニット206は、第1の非ルートボーン304Bの相対的ボーン配向の計算でも、図3で説明したものと同様のエンドボーン304Dの相対的ボーン配向を計算することができる。
モデル変形ユニット208及び配向推定ユニット206は、図3Cにおいて上述した第1の非ルートボーン304Bの制約を決定する方法と同じ方法を使用することによって、さらに制約を決定してエンドボーン304Dに関連する配向を安定させることができる。ある実施形態によれば、モデル変形ユニット208及び配向推定ユニット206は、エンドボーン304Dについての計算と同様に他の1又は2以上のエンドボーンの相対的ボーン配向を計算することができる。
図4に、本開示の実施形態による、開示する視点変換のためのリアルなリグ付き3Dモデルアニメーションを生成するための装置及び方法を実装する第1の例示的なシナリオを示す。図4の説明は、図1、図2、及び図3A〜図3Dの要素に関連して行う。図4には、メモリ204に記憶された第1のリグ付き3Dモデル402Aなどの複数のリグ付き3Dモデル402を示す。第1のリグ付き3Dモデル402Aは、第1の配向の組404Bで定義される第1の階層的な相互接続されたボーンの組404Aを含むことができる。
物体108などの同じ物体の骨格構造の第1のポーズ406A及び第2のポーズ406Bなどの複数のポーズ406も示す。物体108の骨格構造は、第2の階層的な相互接続されたボーンの組308を含むことができる。第2の階層的な相互接続されたボーンの組308の第1のポーズ406Aは、第1のボーン構造情報に関連することができる。第2の階層的な相互接続されたボーンの組308の第2のポーズ406Bは、第2のボーン構造情報に関連することができる。第2のボーン配向の組412A及び第3のボーン配向の組412Bなどの異なるボーン配向における変換された第1の階層的な相互接続されたボーンの組410を含む第2のリグ付き3Dモデル408も示す。電子装置102、動作検知装置106及びディスプレイ装置110も示す。
第1の例示的なシナリオによれば、電子装置102は、動作検知装置106から第1のボーン構造情報を受け取ることができる。動作検知装置106は、人間などの物体108の第1のポーズ406Aを1つの視点から取り込んでおくことができる。第1のボーン構造情報は、第1のポーズ406Aの状態の物体108の第2の階層的な相互接続されたボーンの組のボーン配向情報及びサイズ情報を含むことができる。
電子装置102は、動作検知装置106から受け取った第1のボーン構造情報に基づいて、第1のリグ付き3Dモデル402Aの第1の階層的な相互接続されたボーンの組404Aの第1のボーン配向の組404Bを第2のボーン配向の組412Aに修正することができる。第2のボーン配向の組412Aは、物体108の第1のポーズ406Aを表すことができる。さらに、電子装置102は、物体108の第2の階層的な相互接続されたボーンの組404Aのサイズ情報に基づいて、第1のリグ付き3Dモデル402Aの第1の階層的な相互接続されたボーンの組404Aのサイズを変換することができる。修正されて変換された第1のリグ付き3Dモデル402Aは、物体108の第1のポーズ406Aに類似できる第2のリグ付き3Dモデル408に対応することができる。
電子装置102は、修正及び変換後に、第2のリグ付き3Dモデル408をディスプレイ装置110上にアニメーション化することができる。ユーザ114などのユーザは、アプリケーションインターフェイス212を介して物体108の第2のリグ付き3Dモデル408を複数の視点から見ることができる。
物体108が、第1のポーズ406Aを第2のポーズ406Bに変化させた場合、動作検知装置106は、物体108の第2のポーズ406Bを取り込み、取り込んだ第2のポーズ406Bに基づいて第2のボーン構造情報を決定することができる。電子装置102は、動作検知装置106から実時間又は準実時間で第2のボーン構造情報を受け取ることができる。従って、電子装置102は、変換された第1の階層的な相互接続されたボーンの組410の第2のボーン配向の組412Aを第3のボーン配向の組412Bに修正することができる。第3のボーン配向の組412Bは、物体108の第2のポーズ406Bを表すことができる。電子装置102は、第2のボーン構造情報に基づいて、アプリケーションインターフェイス212を介して第2のリグ付き3Dモデル408をディスプレイ装置110上にアニメーション化することができる。
ある実施形態によれば、電子装置102は、複数の物体に関連するボーン構造情報を受け取ることができる。このようなシナリオでは、電子装置102が、複数の物体の複数の第2のリグ付き3Dモデルをアニメーション化することができる。複数の物体の複数の第2のリグ付き3Dモデルの生成例については、図7に示す。
図5に、本開示の実施形態による、開示する視点変換のためのリアルなリグ付き3Dモデルアニメーションを生成するための装置及び方法を実装する第2の例示的なシナリオを示す。図5の説明は、図1〜図4の要素に関連して行う。図5には、第1の位置502及び第2の位置504を示す。第1のポーズ506A及び第2のポーズ506Bの状態の第1の人間506、第1のポーズ508A及び第2のポーズ508Bの状態の第2のリグ付き3Dモデル508、並びに第2の人間510も示す。さらに、電子装置102、無線ネットワーク512、及びアプリケーションインターフェイス212も示す。
第2の例示的なシナリオによれば、第1の人間506は、物体108に対応することができる。無線ネットワーク512は、通信ネットワーク112に対応することができる。動作検知装置106は、「電源オン」の状態とすることができる。第1の人間506は、第1の位置502に存在することができる。第1の位置502に動作検知装置106を備え付けて、第1の人間506の1又は2以上のポーズを取り込むことができる。例えば、動作検知装置106は、第1の人間506の第1のポーズ506Aを1つの視点から取り込むことができる。動作検知装置106は、第1のポーズ506Aを取り込んだ後に、取り込まれた第1のポーズ506Aの状態の第1の人間506のボーン構造情報を決定することができる。動作検知装置106は、決定された第1の人間506のボーン構造情報を、無線ネットワーク512を介して電子装置102に送信することができる。
電子装置102は、ボーン構造情報を受け取った後に、メモリ204に記憶された第1のリグ付き3Dモデル(図示せず)の修正及び変換を行って、第1のポーズ508Aの状態の第2のリグ付き3Dモデル508をアニメーション化することができる。第1のリグ付き3Dモデルから第2のリグ付き3Dモデルを生成する例は、図3A〜図3Dに示している。第2のリグ付き3Dモデル508の第1のポーズ508Aは、第1の人間506の第1のポーズ506Aに同期することができる。電子装置102は、アプリケーションインターフェイス212を介して第1のポーズ508Aの状態の第2のリグ付き3Dモデル508をアニメーション化することができる。アプリケーションインターフェイス212は、第1のポーズ508Aの状態の第2のリグ付き3Dモデル508を第2の人間510が複数の視点から見ることができる3Dグラフィック環境を提示することができる。第2の人間510は、アプリケーションインターフェイス212と相互作用して、第1の3Dリグ付きモデルの初期安静ポーズから第1のポーズ508Aにアニメーション化された第2のリグ付き3Dモデル508の複数の視点を見ることができる。
さらに、第1の人間506が第1のポーズ506Aを第2のポーズ506Bに変化させた場合、電子装置102は、アプリケーションインターフェイス212を介して第2のリグ付き3Dモデル508を第2のポーズ508Bに再アニメーション化することができる。従って、電子装置102は、第2のリグ付き3Dモデル508の第1のポーズ508Aを第2のポーズ508Bに変更することができる。第2のリグ付き3Dモデル508の第2のポーズ508Bは、第1の人間506の第2のポーズ506Bに同期することができる。第2の人間510は、第1の人間506の動きに同期して動くアニメーション化された第2のリグ付き3Dモデル508を見ることができる。第1のポーズ508A及び第2のポーズ508Bの状態の第2のリグ付き3Dモデル508のアプリケーションインターフェイス212を介した表示は、第2の位置504における第1の人間506の仮想的存在を引き起こすことができる。
ある実施形態によれば、電子装置102の動作をサーバ104が実装することができる。ある実施形態によれば、電子装置102は、ディスプレイ装置110上に、或いは複数の第2の位置(図示せず)に存在する複数の第2のユーザ(図示せず)に関連する複数のディスプレイ装置(図示せず)上にアプリケーションインターフェイス212をレンダリングすることができる。
図6に、本開示の実施形態による、開示する視点変換のためのリアルなリグ付き3Dモデルアニメーションを生成するための装置及び方法を実装する第3の例示的なシナリオを示す。図6の説明は、図1〜図5の要素に関連して行う。図6には、第1のポーズ602A及び第2のポーズ602Bの状態の人間602、第1のポーズ604A及び第2のポーズ604Bの状態の第2のリグ付き3Dモデル604を示す。電子装置102、ディスプレイ装置110、アプリケーションインターフェイス212、並びに電子装置102、動作検知装置106及びディスプレイ装置110が互いに通信できるようにする無線ネットワーク606も示す。
第3の例示的なシナリオによれば、人間602は、物体108に対応することができる。無線ネットワーク606は、通信ネットワーク112に対応することができる。動作検知装置106は、「電源オン」の状態とすることができる。第3の例示的なシナリオは、ゲーム環境を表すことができる。動作検知装置106は、人間602の1又は2以上のポーズを取り込むことができる。例えば、図示のように、動作検知装置106は、人間602の第1のポーズ602Aを1つの視点から取り込むことができる。動作検知装置106は、第1のポーズ602Aの状態の人間602のボーン構造情報をさらに決定し、無線ネットワーク606を介して電子装置102に送信することができる。従って、電子装置102は、受け取ったボーン構造情報に基づいて(メモリ204に予め記憶されている)初期安静ポーズの第1のリグ付き3Dモデルの修正及び変換を行って、第2のリグ付き3Dモデル604を生成することができる。第2のリグ付き3Dモデル604は、変換された第1のリグ付き3Dモデルとすることができる。第2のリグ付き3Dモデル604は、取り込まれた人間602の第1のポーズ602Aに類似する第1のポーズ604Aにアニメーション化することができる。第2のリグ付き3Dモデルの生成例については、図3A〜図3Dに示している。アニメーションは、アプリケーションインターフェイス212を介してディスプレイ装置110上に表示することができる。
さらに、人間602が第1のポーズ602Aを第2のポーズ602Bに変化させた場合、動作検知装置106は、第2のポーズ602Bを取り込んで、第2のポーズ602Bの状態の人間602のボーン構造情報を決定することができる。従って、電子装置102は、動作検知装置106から受け取った更新されたボーン構造情報に基づいて、第2のリグ付き3Dモデル604を第1のポーズ604Aから第2のポーズ604Bに再生成してディスプレイ装置110上に再アニメーション化することができる。第2のリグ付き3Dモデル604の第2のポーズ604Bは、人間602の第2のポーズ602Bに同期することができる。従って、人間602が1又は2以上のポーズを変化させると、ゲームシーン内のゲームキャラクタとすることができる第2のリグ付き3Dモデル604の1又は2以上のポーズも変化することができる。これにより、ゲーム環境内のゲームキャラクタの1又は2以上のパラメータの制御を可能にすることができる。
図7は、本開示の実施形態による、視点変換のための複数のリアルなリグ付き3Dモデルアニメーションを生成するための開示する装置及び方法を実装する第4の例示的なシナリオである。図7の説明は、図1〜図6の要素に関連して行う。図7には、複数の第1のリグ付き3Dモデル702を示す。複数の第1のリグ付き3Dモデル702は、第1のリグ付き3Dモデル702Aと、別の第1のリグ付き3Dモデル702Bとを含むことができる。第1のリグ付き3Dモデル702Aは、第1の階層的な相互接続されたボーンの組704Aを含むことができ、他の第1のリグ付き3Dモデル702Bは、別の第1の階層的な相互接続されたボーンの組704Bを含むことができる。
第1の人間の第2の階層的な相互接続されたボーンの組706A、及び第2の人間の別の第2の階層的な相互接続されたボーンの組706Bなどの複数の骨格構造も示す。複数の第2の3Dモデル708も示す。複数の第2の3Dモデル708は、第2の3Dモデル708Aと、別の第2の3Dモデル708Bとを含むことができる。第2の3Dモデル708Aは、変換された第1の階層的な相互接続されたボーンの組710Aを含むことができ、他の第2の3Dモデル708Bは、別の変換された第1の階層的な相互接続されたボーンの組710Bを含むことができる。電子装置102、動作検知装置106及びディスプレイ装置110も示す。
第4の例示的なシナリオによれば、電子装置102のメモリ204は、複数の第1のリグ付き3Dモデル702を記憶することができる。複数の第1のリグ付き3Dモデル702の各々は、第1の配向の組で定義された第1の階層的な相互接続されたボーンの組704A又は704Bを含むことができる。複数の第1のリグ付き3Dモデル702の各々は、同じポーズを取ることができる。動作検知装置106は、第1の人間及び第2の人間の各々のポーズを1つの視点から取り込んでおくことができる。動作検知装置106は、取り込まれた第1の物体及び第2の物体のポーズにそれぞれ基づいて、第1の人間の第1のボーン構造情報及び第2の人間の第2のボーン構造情報を同時に決定しておくことができる。第1のボーン構造情報は、第1の人間の第2の階層的な相互接続されたボーンの組706Aのボーン配向情報及びサイズ情報を含むことができる。第2のボーン構造情報は、第2の人間の第2の階層的な相互接続されたボーンの組704Bのボーン配向情報及びサイズ情報を含むことができる。
電子装置102は、動作検知装置106から受け取った第1のボーン構造情報に基づいて、第1のリグ付き3Dモデル702Aの第1の階層的な相互接続されたボーンの組704Aの第1のボーン配向の組を第2のボーン配向の組に修正することができる。電子装置102は、動作検知装置106から受け取った第2のボーン構造情報に基づいて、第1のリグ付き3Dモデル702Bの第1の階層的な相互接続されたボーンの組704Bの第1のボーン配向の組を第2のボーン配向の組にさらに修正することができる。さらに、電子装置102は、第1の物体の第2の階層的な相互接続されたボーンの組706Aのサイズ情報に基づいて、第1のリグ付き3Dモデル702Aの第1の階層的な相互接続されたボーンの組704Aのサイズを変換することができる。同様に、電子装置102は、第2の物体の他の第2の階層的な相互接続されたボーンの組706Bのサイズ情報に基づいて、第1のリグ付き3Dモデル702Bの第1の階層的な相互接続されたボーンの組704Bのサイズを変換することができる。
修正されて変換された第1のリグ付き3Dモデル702Aは、第1の人間のポーズに類似できる第2のリグ付き3Dモデル708Aに対応することができる。修正されて変換された第1のリグ付き3Dモデル702Bは、第2の物体のポーズに類似できる第2のリグ付き3Dモデル708Bに対応することができる。電子装置102は、修正及び変換後に、複数の第2のリグ付き3Dモデル708をディスプレイ装置110上に同時にアニメーション化することができる。ユーザ114などのユーザは、アニメーション化された複数の第2のリグ付き3Dモデル708を複数の視点から見ることができる。ある実施形態によれば、電子装置102は、ディスプレイ装置110(又はディスプレイ画面210A)上にレンダリングされたアプリケーションインターフェイス212を介して、複数の第2のリグ付き3Dモデル708をアニメーション化することができる。
図8は、本開示の実施形態による、視点変換のためのリアルなリグ付き3Dモデルアニメーションを生成するための例示的な動作を示すフローチャートである。図8には、フローチャート800を示す。フローチャート800の説明は、図1〜図7に関連して行う。電子装置102において行われる動作は、802から開始して804に進む。
804において、第1の階層的な相互接続されたボーンの組を含むことができる第1の3Dモデルを電子装置102に記憶することができる。第1の3Dモデルは、リグ付き3Dモデルに対応することができる。第1の3Dモデルにおける第1の階層的な相互接続されたボーンの組は、第1の3Dモデルにおけるデジタルリグに対応することができる。第1の3Dモデルにおける第1の階層的な相互接続されたボーンの組は、第1の3Dモデルの初期安静ポーズを表すことができる第1のボーン配向の組で定義することができる。さらに、第1の3Dモデルの階層的な相互接続されたボーンの組は、1又は2以上のルートボーンと、1又は2以上の非ルートボーンと、1又は2以上のエンドボーンとを含むことができる。第1の3Dモデルは、第1の3Dモデルの1又は2以上の部分の表面表現をさらに含むことができる。この表面表現は、第1の階層的な相互接続されたボーンの組によって支えられるメッシュ構造に対応することができる。図3Aで図示し説明した例に、第1の3Dモデル302を記憶した電子装置102を示している。ルートボーン304Aなどの1又は2以上のルートボーン、第1の非ルートボーン304B及び第2の非ルートボーン304Cなどの1又は2以上の非ルートボーン、並びにエンドボーン304Dなどの1又は2以上のエンドボーンの各々の例も示している。
806において、物体108の第2の階層的な相互接続されたボーンの組のボーン構造情報を、動作検知装置106から通信チャネルを介して受け取る。ボーン構造情報は、動作検知装置106から実時間で、準実時間で、又は遅延時間で受け取ることができる。ボーン構造情報は、物体108の第2の階層的な相互接続されたボーンの組のボーン配向情報及びサイズ情報を含むことができる。図3Aに図示し説明した例には、動作検知装置106から物体108の第2の階層的な相互接続されたボーンの組308のボーン構造情報を受け取った電子装置102を示している。
808において、第1の3Dモデルの第1の階層的な相互接続されたボーンの組の第1のボーン配向の組を第2のボーン配向の組に修正することができる。第1のボーン配向の組から第2のボーン配向の組への修正は、動作検知装置106から受け取られたボーン構造情報に基づくことができる。第2のボーン配向の組は、動作検知装置106によって取り込まれた物体108のポーズを表すことができる。第1のボーン配向の組の修正では、電子装置102が、第1の3Dモデルの第1の階層的な相互接続されたボーンの組における1又は2以上のボーンの各々の相対的ボーン配向を計算することができる。第1のボーン配向の組から第2のボーン配向の組への修正例は、図3Aに示している。さらに、計算された相対的ボーン配向322及び計算された相対的ボーン配向332の例は、図3B及び図3Cに示している。
810において、第1の3Dモデルの第1の階層的な相互接続されたボーンの組の動きに関する一連の制約を決定して第2のボーン配向の組を安定させることができる。一連の制約は、第1の階層的な相互接続されたボーンの組の動きに適用される制限を意味することができる。これを行って、第2のボーン配向の組を現実的なものにすることができる。一連の制約の例についは、図3A〜図3Dに示している。
812において、第1の3Dモデルの第1の階層的な相互接続されたボーンの組における1又は2以上のボーンのサイズを変換することによって第2の3Dモデルを生成することができる。第1の階層的な相互接続されたボーンの組における1又は2以上のボーンのサイズの変換は、受け取られたボーン構造情報に基づくことができる。第2の3Dモデルの例としては、第2の3Dモデル312(図3A)、第2の3Dモデル408(図4)、及び複数の第2の3Dモデル708(図7)を挙げることができる。さらに、第2の配向の組と、変換された第1の階層的な相互接続されたボーンの組とに基づいて、第1の3Dモデルの1又は2以上の部分の表面表現を変形させることができる。図3Aには、第1の非ルートボーン304Bのボーン長306をボーン長316に変換する例を示している。さらに、図3Aには、第1の3Dモデル302の1又は2以上の部分の表面表現を変形する例も示している。
814において、第2のボーン配向の組と、変換された第1の階層的な相互接続されたボーンの組とに従って、生成された第2の3Dモデルをアニメーション化することができる。アニメーション化された第2の3Dモデルは、ディスプレイ装置110上で複数の視点から見ることができる。複数の視点は、動作検知装置106によって取り込まれた物体108の1つの視点を含むこともできる。第2の3Dモデルのアニメーションは、第1の3Dモデルの第1の階層的な相互接続されたボーンの組の1又は2以上の動きと、動作検知装置106によって追跡される物体108の1又は2以上の動きとの同期を含むことができる。図3Aには、アニメーション化された第2の3Dモデル312の例を示している。アニメーション化された第2の3Dモデルは、アニメーション、仮想的存在の生成(図5)及びゲーム環境(図6)において利用することができる。制御は、終了816に進むことができる。
本開示の実施形態によれば、リアルなアニメーションを生成するための装置が開示される。電子装置102(図1)などの装置は、(メモリ204などの)記憶装置と、(動作検知装置106(図1)などの)動作検知装置及び(ディスプレイ装置110(図1)などの)ディスプレイ装置に結合された(プロセッサ202、配向推定ユニット206及びモデル変形ユニット208(図2)などの)1又は2以上の回路とを含むことができる。メモリ204は、(第1の3Dモデル302(図3A)、複数のリグ付き3Dモデル402(図4)、複数の第1の3Dモデル702(図7)などの)第1の3Dモデルを記憶するように構成することができ、第1のボーン配向の組で定義される(第1の階層的な相互接続されたボーンの組304、404A、404B、704A又は704B)などの第1の階層的な相互接続されたボーンの組を含むことができる。プロセッサ202は、(図1の物体108などの)物体の(第2の階層的な相互接続されたボーンの組308、706A又は706Bなどの)第2の階層的な相互接続されたボーンの組のボーン構造情報を受け取るように構成することができる。配向推定ユニット206及びモデル変形ユニット208は、第1の3Dモデル302の第1の階層的な相互接続されたボーンの組の第1のボーン配向の組を第2のボーン配向の組に修正するようにさらに構成することができる。モデル変形ユニット208は、第1のボーン配向の組を、動作検知装置106から受け取ったボーン構造情報に基づいて第2のボーン配向の組に修正することができる。モデル変形ユニット208は、受け取ったボーン構造情報に基づいて、第1の3Dモデルの第1の階層的な相互接続されたボーンの組における(図3Aの第1の非ルートボーン304Bなどの)1又は2以上のボーンの(図3Aのボーン長306などの)サイズを変換することによって、(第2の3Dモデル312、第2の3Dモデル408又は複数の第2の3Dモデル708などの)第2の3Dモデルを生成するように構成することができる。プロセッサ202は、第2のボーン配向の組と、変換された第1の階層的な相互接続されたボーンの組とに従って、生成された第2の3Dモデル312をディスプレイ装置110上にさらにアニメーション化することができる。アニメーション化された第2の3Dモデル312は、物体108の複数の視点から見ることができる。
従来のアニメーション3D環境では、物体108などの物体のポーズを取り込んだ物体視点以外の複数の視点から物体のアニメーション化されたリグ付き3Dモデルを見る際にいくつかの複雑性が伴う。このような場合、リグ付き3Dモデルを単一視点から見ることができる。さらに、従来のリグ付き3Dモデルのデジタルリグの相互接続されたボーンの構造及び相対的サイズは、ポーズを取り込んだ物体の構造に固有のものでないこともある。リグ付き3Dモデルのデジタルリグの相互接続されたボーンの構造及びサイズの不一致は、リアルなアニメーションに適さなかったり、望ましくなかったりすることがある。従って、リグ付き3Dモデルを実際の物体に現実的に類似させるには、構造的にその物体に類似するデジタルリグを含むリグ付き3Dモデルを作成しなければならない。これには、複数の物体のための異なるサイズのデジタルリグを含む複数のリグ付き3Dモデルを作成する必要があり、諸経費及び時間が掛かってしまう。この結果、このようなデジタルリグの相互接続されたボーンの構造及びサイズの不一致を示すリグ付き3Dモデルのアニメーションでは、非現実的なアニメーションが生成されることもある。
電子装置102などの開示する装置の様々な実施形態は、プロセッサ202などの1又は2以上の回路と、配向推定ユニット206と、動作検知装置から受け取った構造的配向情報に基づいてリグ付き3Dモデルの第1の配向の組を第2の配向の組に修正できるモデル変形ユニット208とを含む。従って、開示する装置は、複数の物体の構造的配向情報に基づいて、同じ形状の複数のリグ付き3Dモデルを修正することができる。開示する装置は、構造的配向情報に基づいて、リグ付き3Dモデルの階層的な相互接続されたボーンの組における1又は2以上のボーンのサイズを変換することができる。リグ付き3Dの階層的な相互接続されたボーンの組の1又は2以上のボーンのサイズの変換により、従来のアニメーション3D環境と比べて実際の物体の解剖学的骨格構造にさらに現実的に類似することができ、例えば動作検知装置106によって動きを追跡できるリグ付き3Dモデルを自動的に生成することができる。例えば、第2のリグ付き3Dモデルなどの生成されたリグ付き3Dモデルにおけるデジタルリグの相互接続されたボーンの構造及び相対的サイズは、物体の相互接続された骨の構造及び相対的サイズに類似することができる。従って、配向推定ユニット206及びモデル変形ユニット208は、電子装置102などの装置によるリアルなアニメーションの生成及び表示を可能にする。電子装置102などの装置は、ボーン配向の修正及びボーンサイズの変換の結果として生成された第2の3Dリグ付きモデルなどの現実的な3Dリグ付きモデルを使用することによってリアルなアニメーションを生成することができ、これによって3Dアニメーション技術に特定の改善をもたらす。
本開示の様々な実施形態は、動作検知装置及びディスプレイ装置に通信可能に結合された1又は2以上の回路を含む機械及び/又はコンピュータによって実行可能な少なくとも1つのコードセクションを有する機械コード及び/又はコンピュータプログラムを記憶した非一時的コンピュータ可読媒体及び/又は記憶媒体、及び/又は非一時的機械可読媒体及び/又は記憶媒体を提供することができる。この少なくとも1つのコードセクションは、第1のボーン配向の組で定義される第1の階層的な相互接続されたボーンの組を含む第1の3Dモデルを記憶することを含むステップを実行するように機械及び/又はコンピュータによって実行可能とすることができる。動作検知装置から、物体の第2の階層的な相互接続されたボーンの組のボーン構造情報を受け取ることができる。第1の3Dモデルの第1の階層的な相互接続されたボーンの組の第1のボーン配向の組は、第2のボーン配向の組に修正することができる。第1のボーン配向の組から第2のボーン配向の組への修正は、動作検知装置から受け取られたボーン構造情報に基づくことができる。生成された第2の3Dモデルは、第2のボーン配向の組と、変換された第1の階層的な相互接続されたボーンの組とに従ってアニメーション化することができる。アニメーション化された第2の3Dモデルは、ディスプレイ装置上で複数の視点から見ることができる。
本開示の例示的な態様によれば、電子装置102を仮想現実型装置とすることができる。従って、本開示において説明した電子装置102によって実行される全ての動作は、仮想現実型装置によって実行することもできる。例えば、仮想現実型装置は、第1の人間の第2の3Dモデル312などの第2の3Dモデルを第2の人間に提示することができる。第2の3Dモデル312は、第1の人間の1又は2以上のポーズを模倣することができる。第2の3Dモデル312は、第1の人間に類似するように画像データでテクスチャ加工することもできる。従って、仮想現実型装置による第2の3Dモデル312の表示は、遠隔地における第1の人間の仮想的存在を第2の人間のために引き起こす。仮想現実型装置として実装される電子装置102の例は、図5に示している。
本開示の別の例示的な態様によれば、電子装置102をゲーム装置とすることができる。従って、本開示において説明した電子装置102によって実行される全ての動作は、ゲーム装置によって実行することもできる。例えば、ゲーム装置は、第2の3Dモデル312などのゲームキャラクタをゲーム環境内でプレーヤに提示することができる。ゲーム装置は、ゲームキャラクタにプレーヤの1又は2以上のポーズをさらに模倣させることができる。これにより、プレーヤは、ゲーム環境内でゲームキャラクタの動きを制御できるようになる。例えば、プレーヤが走り始めると、ゲームキャラクタがプレーヤの走るポーズを模倣することができる。ゲーム環境は、マルチプレーヤゲームとすることもできる。このような場合、ゲーム装置は、各々がマルチプレーヤゲームにおける複数のプレーヤのうちの1人を模倣する複数のゲームキャラクタを提示することができる。ゲーム装置として実装される電子装置102の例は、図6に示している。
本開示のさらに別の例示的な態様によれば、電子装置102を3Dモデル型会議システムとすることができる。従って、本開示において説明した電子装置102によって実行される全ての動作は、3Dモデル型会議システムによって実行することもできる。通常、従来のビデオ会議システムでは、シームレスなビデオ送信のために高ネットワーク帯域幅が必要である。ネットワーク帯域幅の要件が満たされないと、ビデオ会議が妨げられる。電子装置102などの3Dモデル型会議装置は、ビデオ送信のための高ネットワーク帯域幅を不要とすることができるビデオレス会議を可能にする。例えば、3Dモデル型会議装置は、会議に参加している第1の人物の1又は2以上のポーズを追跡することができる。この結果、3Dモデル型会議装置は、追跡された第1の人物の1又は2以上のポーズに基づいて、第2の3Dモデル312などのリグ付き3Dモデルをアニメーション化することができる。アニメーション化されたリグ付き3Dモデルは、会議に参加している第2の人物に、第1の人物の録音音声と共に提示することができる。3Dモデル型会議装置は、第2の人物の1又は2以上のポーズを模倣する別のアニメーション化されたリグ付き3Dモデルを第1の人物にさらに提示することができる。従って、3Dモデル型会議装置は、第1の人物及び第2の人物の会議への参加を可能にする。仮想的存在を引き起こす電子装置102の例は、例えば図5に示すような3Dモデル型会議システムとして実現することもできる。
本開示は、ハードウェアの形で実現することも、又はハードウェアとソフトウェアの組み合わせの形で実現することもできる。本開示は、少なくとも1つのコンピュータシステム内で集中方式で実現することも、又は異なる要素を複数の相互接続されたコンピュータシステムにわたって分散できる分散方式で実現することもできる。本明細書で説明した方法を実行するように適合されたコンピュータシステム又はその他の装置が適することができる。ハードウェアとソフトウェアの組み合わせは、ロードされて実行された時に本明細書で説明した方法を実行するようにコンピュータシステムを制御することができるコンピュータプログラムを含む汎用コンピュータシステムとすることができる。本開示は、他の機能も実行する集積回路の一部を含むハードウェアの形で実現することができる。
本開示は、本明細書で説明した方法の実装を可能にする全ての特徴を含み、コンピュータシステムにロードされた時にこれらの方法を実行できるコンピュータプログラム製品に組み込むこともできる。本文脈におけるコンピュータプログラムとは、情報処理能力を有するシステムに、特定の機能を直接的に、或いはa)別の言語、コード又は表記法への変換、b)異なる内容形態での複製、のいずれか又は両方を行った後に実行させるように意図された命令セットの、あらゆる言語、コード又は表記法におけるあらゆる表現を意味する。
いくつかの実施形態を参照しながら本開示を説明したが、当業者であれば、本開示の範囲から逸脱することなく様々な変更を行うことができ、同等物を代用することもできると理解するであろう。また、本開示の範囲から逸脱することなく、本開示の教示に特定の状況又は内容を適合させるための多くの変更を行うこともできる。従って、本開示は、開示した特定の実施形態に限定されるものではなく、特許請求の範囲に該当する全ての実施形態を含むように意図されている。