(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-17
(45)【発行日】2022-08-25
(54)【発明の名称】仮想オブジェクトの変形処理方法及び装置、機器並びに記憶媒体
(51)【国際特許分類】
G06T 19/00 20110101AFI20220818BHJP
【FI】
G06T19/00 A
(21)【出願番号】P 2020558622
(86)(22)【出願日】2020-02-11
(86)【国際出願番号】 CN2020074705
(87)【国際公開番号】W WO2020228385
(87)【国際公開日】2020-11-19
【審査請求日】2020-10-21
(31)【優先権主張番号】201910403876.3
(32)【優先日】2019-05-15
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】519454800
【氏名又は名称】浙江商▲湯▼科技▲開▼▲発▼有限公司
【氏名又は名称原語表記】ZHEJIANG SENSETIME TECHNOLOGY DEVELOPMENT CO., LTD.
【住所又は居所原語表記】Room 288-8, No. 857, Shixinbei Road, Ningwei Street, Xiaoshan District Hangzhou, Zhejiang 311215 China
(74)【代理人】
【識別番号】100078282
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】▲陳▼呈▲舉▼
(72)【発明者】
【氏名】梁▲興▼▲侖▼
(72)【発明者】
【氏名】王▲靱▼志
(72)【発明者】
【氏名】章国▲鋒▼
【審査官】村松 貴士
(56)【参考文献】
【文献】特開2014-211719(JP,A)
【文献】特表2010-532890(JP,A)
【文献】特開2010-267241(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 13/40
G06T 19/00 - 19/20
(57)【特許請求の範囲】
【請求項1】
仮想オブジェクトの変形処理方法であって、
複数の骨を含む3次元プリセット仮想オブジェクトモデルに対応する第1骨パラメータ及び第1ブレンドシェイプデータを取得するステップであって、前記第1ブレンドシェイプデータはプリセット仮想オブジェクトの変形程度を示すことに用いられるステップと、
3次元ターゲット仮想オブジェクトモデルに対応する第2骨パラメータを取得し、前記第2骨パラメータと前記第1骨パラメータとの間の変換関係を特定するステップと、
前記第2骨パラメータと前記第1骨パラメータとの間の変換関係及び前記第1ブレンドシェイプデータに基づいて、前記3次元ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを特定するステップと、を含むことを特徴とする
仮想オブジェクトの変形処理方法。
【請求項2】
前記第2骨パラメータと前記第1骨パラメータとの間の変換関係及び前記第1ブレンドシェイプデータに基づいて、前記3次元ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを特定するステップは、
前記3次元プリセット仮想オブジェクトモデルに対応する第1グリッドデータを取得するステップと、
前記3次元ターゲット仮想オブジェクトモデルに対応する第2グリッドデータを取得するステップと、
前記第2グリッドデータ及び前記第1グリッドデータに基づいて、前記3次元ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを特定するステップと、を含むことを特徴とする
請求項1に記載の方法。
【請求項3】
前記3次元プリセット仮想オブジェクトモデルに対応する第1グリッドデータを取得するステップは、
前記第1骨パラメータに対応する標準グリッドデータを取得するステップと、
前記標準グリッドデータ及び前記第1ブレンドシェイプデータに基づいて、前記第1ブレンドシェイプデータに対応する第1グリッドデータを得るステップと、を含むことを特徴とする
請求項2に記載の方法。
【請求項4】
前記3次元ターゲット仮想オブジェクトモデルに対応する第2グリッドデータを取得するステップは、
前記第2骨パラメータ及び前記第1骨パラメータに基づいて、前記3次元ターゲット仮想オブジェクトモデル内のすべての骨の変換行列を特定するステップと、
前記変換行列を前記第1グリッドデータに応用することで、前記3次元ターゲット仮想オブジェクトモデルに対応する第2グリッドデータを特定するステップと、を含むことを特徴とする
請求項2又は3に記載の方法。
【請求項5】
前記第2骨パラメータ及び前記第1骨パラメータに基づいて、前記3次元ターゲット仮想オブジェクトモデル内のすべての骨の変換行列を特定するステップは、
前記3次元プリセット仮想オブジェクトモデルに対応する第1骨パラメータに基づいて、前記3次元プリセット仮想オブジェクトモデル内の各骨の第1位置行列を取得するステップと、
前記3次元ターゲット仮想オブジェクトモデルに対応する第2骨パラメータに基づいて、前記3次元ターゲット仮想オブジェクトモデル内の各骨の第2位置行列を取得するステップと、
前記第2位置行列及び前記第1位置行列に基づいて、各骨の変換行列を取得するステップと、を含むことを特徴とする
請求項4に記載の方法。
【請求項6】
前記仮想オブジェクトモデルは顔モデルであり、前記仮想オブジェクトモデルに含まれる骨は頭部骨であり、
前記3次元ターゲット仮想オブジェクトモデルは、
3次元ターゲット顔モデルの骨パラメータ調整情報を取得するステップと、
前記骨パラメータ調整情報に基づいて、前記3次元ターゲット顔モデルに対応する頭部骨パラメータを調整するステップと、
調整後の前記頭部骨パラメータに基づいて、3次元ターゲット顔モデルを生成するステップと、によって生成されることを特徴とする
請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記3次元ターゲット顔モデルの骨パラメータ調整情報を取得するステップは、
骨パラメータ調整命令を受信するステップと、
前記骨パラメータ調整命令に基づいて前記骨パラメータ調整情報を特定するステップと、を含むことを特徴とする
請求項6に記載の方法。
【請求項8】
前記骨パラメータ調整情報に基づいて、前記3次元ターゲット顔モデルに対応する頭部骨パラメータを調整するステップは、
前記頭部骨パラメータから、前記骨パラメータ調整情報に関連付けられる少なくとも1つの頭部骨の骨パラメータを取得し、前記骨パラメータ調整情報に基づいて前記少なくとも1つの頭部骨の骨パラメータを調整するステップを含むことを特徴とする
請求項6又は7に記載の方法。
【請求項9】
少なくとも1つの頭部骨は複数の頭部骨であり、
前記骨パラメータ調整情報に基づいて前記少なくとも1つの頭部骨の骨パラメータを調整するステップは、
前記骨パラメータ調整情報に基づいて前記複数の頭部骨の骨パラメータを同時に調整するステップを含むことを特徴とする
請求項8に記載の方法。
【請求項10】
前記骨パラメータ調整情報に基づいて前記少なくとも1つの頭部骨の骨パラメータを調整するステップは、
前記骨パラメータ調整情報の調整範囲を取得するステップと、
前記骨パラメータ調整情報に関連付けられる各骨パラメータの調整範囲を取得するステップと、
調整範囲内の前記骨パラメータ調整情報の変化率に基づいて、前記骨パラメータ調整情報に関連付けられる前記少なくとも1つの頭部骨の骨パラメータを調整するステップと、を含むことを特徴とする
請求項8又は9に記載の方法。
【請求項11】
前記骨パラメータ調整命令に基づいて前記骨パラメータ調整情報を特定するステップは、
前記骨パラメータ調整命令に対して設定されたコントロールの出力変化量を取得し、前記出力変化量に基づいて前記骨パラメータ調整情報を特定するステップを含むことを特徴とする
請求項
7に記載の方法。
【請求項12】
前記方法は、
前記3次元ターゲット顔モデルの骨パラメータに基づいて、メイクアップに対応する複数の領域を含むフェイスマップを生成するステップと、
前記領域に対して、対応するメイクアップの交換可能な素材マップを取得するステップと、
各メイクアップに対して取得した交換可能な素材マップと前記フェイスマップとを合わせ、合わせたマップを得るステップと、
前記合わせたマップを前記3次元ターゲット顔モデルにマッピングして、前記3次元ターゲット顔モデルのフェイスメイクアップを生成するステップと、をさらに含むことを特徴とする
請求項6~11のいずれか1項に記載の方法。
【請求項13】
仮想オブジェクトの変形処理装置であって、
複数の骨を含む3次元プリセット仮想オブジェクトモデルに対応する第1骨パラメータ及び第1ブレンドシェイプデータを取得するように構成される第1取得ユニットであって、前記第1ブレンドシェイプデータはプリセット仮想オブジェクトの変形程度を示すことに用いられる第1取得ユニットと、
3次元ターゲット仮想オブジェクトモデルに対応する第2骨パラメータを取得し、前記第2骨パラメータと前記第1骨パラメータとの間の変換関係を特定するように構成される第2取得ユニットと、
前記第2骨パラメータと前記第1骨パラメータとの間の変換関係及び前記第1ブレンドシェイプデータに基づいて、前記3次元ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを特定するように構成される特定ユニットと、を備えることを特徴とする
仮想オブジェクトの変形処理装置。
【請求項14】
仮想オブジェクトの変形処理機器であって、記憶媒体、プロセッサを備え、前記記憶媒体は、プロセッサ上で実行可能なマシン実行可能命令を記憶するように構成され、前記プロセッサは、前記マシン実行可能命令を実行するときに請求項1~12のいずれか1項に記載の方法を実現するように構成されることを特徴とする
仮想オブジェクトの変形処理機器。
【請求項15】
マシン実行可能命令が記憶されているマシン可読記憶媒体であって、前記マシン実行可能命令がプロセッサによって実行されるときに請求項1~12のいずれか1項に記載の方法が実現されることを特徴とする
マシン可読記憶媒体。
【請求項16】
コンピュータに、請求項1~12のいずれか1項に記載の方法を実行させることを特徴とする
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は仮想現実の分野に関し、具体的に仮想オブジェクトの変形処理方法及び装置、機器並びに記憶媒体に関する。
【背景技術】
【0002】
ゲーム業界及び仮想現実の発展に伴い、デジタル化仮想キャラクタは広く応用されている。仮想キャラクタについては、単一のアバターからプレイヤーが自主的に設計したキャラクタに進化しており、これには、独自性のある形象の創造、表情の自動実行などが含まれる。
【0003】
現在、ユーザは自主的に仮想オブジェクトモデルをカスタマイズした後、通常、既存のブレンドシェイプデフォーマ(blendshape)のデータで仮想オブジェクトの表情を駆動するが、カスタマイズされたモデルの変形が大きい場合、既存のブレンドシェイプデータを引き続き使用して表情を実行すると、大きな誤差が発生してしまう。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の1つ又は複数の実施例は、仮想オブジェクトの変形処理方法及び装置、機器並びに記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【0005】
第1態様では、仮想オブジェクトの変形処理方法を提供する。前記方法は、
複数の骨を含む3次元プリセット仮想オブジェクトモデルに対応する第1骨パラメータ及び第1ブレンドシェイプデータを取得するステップであって、前記第1ブレンドシェイプデータはプリセット仮想オブジェクトの変形程度を示すことに用いられるステップと、
3次元ターゲット仮想オブジェクトモデルに対応する第2骨パラメータを取得し、第2骨パラメータと前記第1骨パラメータとの間の変換関係を特定するステップと、
前記第2骨パラメータと前記第1骨パラメータとの間の変換関係及び前記第1ブレンドシェイプデータに基づいて、前記3次元ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを特定するステップと、を含む。
【0006】
本開示に係るいずれかの実施形態に加え、前記第2骨パラメータと前記第1骨パラメータとの間の変換関係及び前記第1ブレンドシェイプデータに基づいて、3次元ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを特定するステップは、
前記3次元プリセット仮想オブジェクトモデルに対応する第1グリッドデータを取得するステップと、
前記3次元ターゲット仮想オブジェクトモデルに対応する第2グリッドデータを取得するステップと、
前記第2グリッドデータ及び前記第1グリッドデータに基づいて、前記3次元ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを特定するステップと、を含む。
【0007】
本開示に係るいずれかの実施形態に加え、前記3次元プリセット仮想オブジェクトモデルに対応する第1グリッドデータを取得するステップは、
前記第1骨パラメータに対応する標準グリッドデータを取得するステップと、
前記標準グリッドデータ及び前記第1ブレンドシェイプデータに基づいて、前記第1ブレンドシェイプデータに対応する第1グリッドデータを得るステップと、を含む。
【0008】
本開示に係るいずれかの実施形態に加え、前記3次元ターゲット仮想オブジェクトモデルに対応する第2グリッドデータを取得するステップは、
前記第2骨パラメータ及び前記第1骨パラメータに基づいて、前記3次元ターゲット仮想オブジェクトモデル内のすべての骨の変換行列を特定するステップと、
前記変換行列を前記第1グリッドデータに応用することで、前記3次元ターゲット仮想オブジェクトモデルに対応する第2グリッドデータを特定するステップと、を含む。
【0009】
本開示に係るいずれかの実施形態に加え、前記第2骨パラメータ及び前記第1骨パラメータに基づいて、前記3次元ターゲット仮想オブジェクトモデル内のすべての骨の変換行列を特定するステップは、
前記プリセット仮想オブジェクトに対応する第1骨パラメータに基づいて、プリセット仮想オブジェクトモデル内の各骨の第1位置行列を取得するステップと、
仮想オブジェクトモデルに対応する第2骨パラメータに基づいて、3次元ターゲット仮想オブジェクトモデル内の各骨の第2位置行列を取得するステップと、
前記第2位置行列及び前記第1位置行列に基づいて、各骨の変換行列を取得するステップと、を含む。
【0010】
本開示に係るいずれかの実施形態に加え、前記仮想オブジェクトモデルは顔モデルであり、前記仮想オブジェクトモデルに含まれる骨は頭部骨であり、3次元ターゲット仮想オブジェクトモデルは、
3次元ターゲット顔モデルの骨パラメータ調整情報を取得するステップと、
前記骨パラメータ調整情報に基づいて、前記3次元ターゲット顔モデルに対応する頭部骨パラメータを調整するステップと、
調整後の前記頭部骨パラメータに基づいて、3次元ターゲット顔モデルを生成するステップと、によって生成される。
【0011】
本開示に係るいずれかの実施形態に加え、前記3次元ターゲット顔モデルの骨パラメータ調整情報を取得するステップは、
骨パラメータ調整命令を受信するステップと、
前記骨パラメータ調整命令に基づいて前記骨パラメータ調整情報を特定するステップと、を含む。
【0012】
本開示に係るいずれかの実施形態に加え、前記骨パラメータ調整情報に基づいて、前記3次元ターゲット顔モデルに対応する頭部骨パラメータを調整するステップは、
前記頭部骨パラメータから、前記骨パラメータ調整情報に関連付けられる少なくとも1つの頭部骨の骨パラメータを取得し、前記骨パラメータ調整情報に基づいて前記少なくとも1つの頭部骨の骨パラメータを調整するステップを含む。
【0013】
本開示に係るいずれかの実施形態に加え、少なくとも1つの頭部骨は複数の頭部骨であり、前記骨パラメータ調整情報に基づいて前記少なくとも1つの頭部骨の骨パラメータを調整するステップは、
前記骨パラメータ調整情報に基づいて前記複数の頭部骨の骨パラメータを同時に調整するステップを含む。
【0014】
本開示に係るいずれかの実施形態に加え、前記骨パラメータ調整情報に基づいて前記少なくとも1つの頭部骨の骨パラメータを調整するステップは、
前記骨パラメータ調整情報の調整範囲を取得するステップと、
前記骨パラメータ調整情報に関連付けられる各骨パラメータの調整範囲を取得するステップと、
調整範囲内の前記骨パラメータ調整情報の変化率に基づいて、前記骨パラメータ調整情報に関連付けられる前記少なくとも1つの頭部骨の骨パラメータを調整するステップと、を含む。
【0015】
本開示に係るいずれかの実施形態に加え、前記骨パラメータ調整命令に基づいて前記骨パラメータ調整情報を特定するステップは、
前記骨パラメータ調整命令に対して設定されたコントロールの出力変化量を取得し、前記出力変化量に基づいて前記骨パラメータ調整情報を特定するステップを含む。
【0016】
第2態様では、仮想オブジェクトの変形処理装置を提供する。前記装置は、
複数の骨を含む3次元プリセット仮想オブジェクトモデルに対応する第1骨パラメータ及び第1ブレンドシェイプデータを取得するように構成される第1取得ユニットであって、前記第1ブレンドシェイプデータはプリセット仮想オブジェクトの変形程度を示すことに用いられる第1取得ユニットと、
3次元ターゲット仮想オブジェクトモデルに対応する第2骨パラメータを取得し、第2骨パラメータと前記第1骨パラメータとの間の変換関係を特定するように構成される第2取得ユニットと、
前記第2骨パラメータと前記第1骨パラメータとの間の変換関係及び前記第1ブレンドシェイプデータに基づいて、前記3次元ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを特定するように構成される特定ユニットと、を備える。
【0017】
第3態様では、仮想オブジェクトの変形処理機器を提供する。前記機器は、記憶媒体、プロセッサを備え、前記記憶媒体は、プロセッサ上で実行可能なマシン実行可能命令を記憶するように構成され、前記プロセッサは、前記マシン実行可能命令を実行するときに本開示のいずれかの前記仮想オブジェクトの変形処理方法を実現するように構成される。
【0018】
第4態様では、マシン実行可能命令が記憶されているマシン可読記憶媒体を提供する。前記マシン実行可能命令がプロセッサによって実行されるときに本開示のいずれかの前記仮想オブジェクトの変形処理方法が実現される。
例えば、本願は以下の項目を提供する。
(項目1)
仮想オブジェクトの変形処理方法であって、
複数の骨を含む3次元プリセット仮想オブジェクトモデルに対応する第1骨パラメータ及び第1ブレンドシェイプデータを取得するステップであって、前記第1ブレンドシェイプデータはプリセット仮想オブジェクトの変形程度を示すことに用いられるステップと、
3次元ターゲット仮想オブジェクトモデルに対応する第2骨パラメータを取得し、前記第2骨パラメータと前記第1骨パラメータとの間の変換関係を特定するステップと、
前記第2骨パラメータと前記第1骨パラメータとの間の変換関係及び前記第1ブレンドシェイプデータに基づいて、前記3次元ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを特定するステップと、を含むことを特徴とする
仮想オブジェクトの変形処理方法。
(項目2)
前記第2骨パラメータと前記第1骨パラメータとの間の変換関係及び前記第1ブレンドシェイプデータに基づいて、前記3次元ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを特定するステップは、
前記3次元プリセット仮想オブジェクトモデルに対応する第1グリッドデータを取得するステップと、
前記3次元ターゲット仮想オブジェクトモデルに対応する第2グリッドデータを取得するステップと、
前記第2グリッドデータ及び前記第1グリッドデータに基づいて、前記3次元ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを特定するステップと、を含むことを特徴とする
項目1に記載の方法。
(項目3)
前記3次元プリセット仮想オブジェクトモデルに対応する第1グリッドデータを取得するステップは、
前記第1骨パラメータに対応する標準グリッドデータを取得するステップと、
前記標準グリッドデータ及び前記第1ブレンドシェイプデータに基づいて、前記第1ブレンドシェイプデータに対応する第1グリッドデータを得るステップと、を含むことを特徴とする
項目2に記載の方法。
(項目4)
前記3次元ターゲット仮想オブジェクトモデルに対応する第2グリッドデータを取得するステップは、
前記第2骨パラメータ及び前記第1骨パラメータに基づいて、前記3次元ターゲット仮想オブジェクトモデル内のすべての骨の変換行列を特定するステップと、
前記変換行列を前記第1グリッドデータに応用することで、前記3次元ターゲット仮想オブジェクトモデルに対応する第2グリッドデータを特定するステップと、を含むことを特徴とする
項目2又は3に記載の方法。
(項目5)
前記第2骨パラメータ及び前記第1骨パラメータに基づいて、前記3次元ターゲット仮想オブジェクトモデル内のすべての骨の変換行列を特定するステップは、
前記3次元プリセット仮想オブジェクトモデルに対応する第1骨パラメータに基づいて、前記3次元プリセット仮想オブジェクトモデル内の各骨の第1位置行列を取得するステップと、
前記3次元ターゲット仮想オブジェクトモデルに対応する第2骨パラメータに基づいて、前記3次元ターゲット仮想オブジェクトモデル内の各骨の第2位置行列を取得するステップと、
前記第2位置行列及び前記第1位置行列に基づいて、各骨の変換行列を取得するステップと、を含むことを特徴とする
項目4に記載の方法。
(項目6)
前記仮想オブジェクトモデルは顔モデルであり、前記仮想オブジェクトモデルに含まれる骨は頭部骨であり、
前記3次元ターゲット仮想オブジェクトモデルは、
3次元ターゲット顔モデルの骨パラメータ調整情報を取得するステップと、
前記骨パラメータ調整情報に基づいて、前記3次元ターゲット顔モデルに対応する頭部骨パラメータを調整するステップと、
調整後の前記頭部骨パラメータに基づいて、3次元ターゲット顔モデルを生成するステップと、によって生成されることを特徴とする
項目1~5のいずれか1項に記載の方法。
(項目7)
前記3次元ターゲット顔モデルの骨パラメータ調整情報を取得するステップは、
骨パラメータ調整命令を受信するステップと、
前記骨パラメータ調整命令に基づいて前記骨パラメータ調整情報を特定するステップと、を含むことを特徴とする
項目6に記載の方法。
(項目8)
前記骨パラメータ調整情報に基づいて、前記3次元ターゲット顔モデルに対応する頭部骨パラメータを調整するステップは、
前記頭部骨パラメータから、前記骨パラメータ調整情報に関連付けられる少なくとも1つの頭部骨の骨パラメータを取得し、前記骨パラメータ調整情報に基づいて前記少なくとも1つの頭部骨の骨パラメータを調整するステップを含むことを特徴とする
項目6又は7に記載の方法。
(項目9)
少なくとも1つの頭部骨は複数の頭部骨であり、
前記骨パラメータ調整情報に基づいて前記少なくとも1つの頭部骨の骨パラメータを調整するステップは、
前記骨パラメータ調整情報に基づいて前記複数の頭部骨の骨パラメータを同時に調整するステップを含むことを特徴とする
項目8に記載の方法。
(項目10)
前記骨パラメータ調整情報に基づいて前記少なくとも1つの頭部骨の骨パラメータを調整するステップは、
前記骨パラメータ調整情報の調整範囲を取得するステップと、
前記骨パラメータ調整情報に関連付けられる各骨パラメータの調整範囲を取得するステップと、
調整範囲内の前記骨パラメータ調整情報の変化率に基づいて、前記骨パラメータ調整情報に関連付けられる前記少なくとも1つの頭部骨の骨パラメータを調整するステップと、を含むことを特徴とする
項目8又は9に記載の方法。
(項目11)
前記骨パラメータ調整命令に基づいて前記骨パラメータ調整情報を特定するステップは、
前記骨パラメータ調整命令に対して設定されたコントロールの出力変化量を取得し、前記出力変化量に基づいて前記骨パラメータ調整情報を特定するステップを含むことを特徴とする
項目6~10のいずれか1項に記載の方法。
(項目12)
前記方法は、
前記3次元ターゲット顔モデルの骨パラメータに基づいて、メイクアップに対応する複数の領域を含むフェイスマップを生成するステップと、
前記領域に対して、対応するメイクアップの交換可能な素材マップを取得するステップと、
各メイクアップに対して取得した交換可能な素材マップと前記フェイスマップとを合わせ、合わせたマップを得るステップと、
前記合わせたマップを前記3次元ターゲット顔モデルにマッピングして、前記3次元ターゲット顔モデルのフェイスメイクアップを生成するステップと、をさらに含むことを特徴とする
項目6~11のいずれか1項に記載の方法。
(項目13)
仮想オブジェクトの変形処理装置であって、
複数の骨を含む3次元プリセット仮想オブジェクトモデルに対応する第1骨パラメータ及び第1ブレンドシェイプデータを取得するように構成される第1取得ユニットであって、前記第1ブレンドシェイプデータはプリセット仮想オブジェクトの変形程度を示すことに用いられる第1取得ユニットと、
3次元ターゲット仮想オブジェクトモデルに対応する第2骨パラメータを取得し、前記第2骨パラメータと前記第1骨パラメータとの間の変換関係を特定するように構成される第2取得ユニットと、
前記第2骨パラメータと前記第1骨パラメータとの間の変換関係及び前記第1ブレンドシェイプデータに基づいて、前記3次元ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを特定するように構成される特定ユニットと、を備えることを特徴とする
仮想オブジェクトの変形処理装置。
(項目14)
前記特定ユニットは、具体的に、
前記3次元プリセット仮想オブジェクトモデルに対応する第1グリッドデータを取得し、
前記3次元ターゲット仮想オブジェクトモデルに対応する第2グリッドデータを取得し、
前記第2グリッドデータ及び前記第1グリッドデータに基づいて、前記3次元ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを特定する、ように構成されることを特徴とする
項目13に記載の装置。
(項目15)
前記特定ユニットは、前記3次元プリセット仮想オブジェクトモデルに対応する第1グリッドデータを取得するように構成される場合、具体的に、
前記第1骨パラメータに対応する標準グリッドデータを取得し、
前記標準グリッドデータ及び前記第1ブレンドシェイプデータに基づいて、前記第1ブレンドシェイプデータに対応する第1グリッドデータを得る、ように構成されることを特徴とする
項目14に記載の装置。
(項目16)
前記特定ユニットは、前記3次元ターゲット仮想オブジェクトモデルに対応する第2グリッドデータを取得するように構成される場合、具体的に、
前記第2骨パラメータ及び前記第1骨パラメータに基づいて、前記3次元ターゲット仮想オブジェクトモデル内のすべての骨の変換行列を特定し、
前記変換行列を前記第1グリッドデータに応用することで、前記3次元ターゲット仮想オブジェクトモデルに対応する第2グリッドデータを特定する、ように構成されることを特徴とする
項目14又は15に記載の装置。
(項目17)
前記特定ユニットは、前記第2骨パラメータ及び前記第1骨パラメータに基づいて、前記3次元ターゲット仮想オブジェクトモデル内のすべての骨の変換行列を特定する場合、具体的に、
前記3次元プリセット仮想オブジェクトモデルに対応する第1骨パラメータに基づいて、前記3次元プリセット仮想オブジェクトモデル内の各骨の第1位置行列を取得し、
前記3次元ターゲット仮想オブジェクトモデルに対応する第2骨パラメータに基づいて、前記3次元ターゲット仮想オブジェクトモデル内の各骨の第2位置行列を取得し、
前記第2位置行列及び前記第1位置行列に基づいて、各骨の変換行列を取得する、ように構成されることを特徴とする
項目16に記載の装置。
(項目18)
前記仮想オブジェクトモデルは顔モデルであり、前記仮想オブジェクトモデルに含まれる骨は頭部骨であり、前記第2取得ユニットは、
3次元ターゲット顔モデルの骨パラメータ調整情報を取得し、
前記骨パラメータ調整情報に基づいて、前記3次元ターゲット顔モデルに対応する頭部骨パラメータを調整し、
調整後の前記頭部骨パラメータに基づいて、3次元ターゲット顔モデルを生成する、ように構成される3次元ターゲット顔モデル生成ユニットをさらに備えることを特徴とする
項目13~17のいずれか1項に記載の装置。
(項目19)
前記3次元ターゲット顔モデル生成ユニットは、3次元ターゲット顔モデルの骨パラメータ調整情報を取得するように構成される場合、具体的に、
骨パラメータ調整命令を受信し、
前記骨パラメータ調整命令に基づいて前記骨パラメータ調整情報を特定する、ように構成されることを特徴とする
項目18に記載の装置。
(項目20)
前記3次元ターゲット顔モデル生成ユニットは、前記骨パラメータ調整情報に基づいて、前記3次元ターゲット顔モデルに対応する頭部骨パラメータを調整するように構成される場合、具体的に、
前記頭部骨パラメータから、前記骨パラメータ調整情報に関連付けられる少なくとも1つの頭部骨の骨パラメータを取得し、前記骨パラメータ調整情報に基づいて前記少なくとも1つの頭部骨の骨パラメータを調整するように構成されることを特徴とする
項目18又は19に記載の装置。
(項目21)
少なくとも1つの頭部骨は複数の頭部骨であり、前記3次元ターゲット顔モデル生成ユニットは、前記骨パラメータ調整情報に基づいて前記少なくとも1つの頭部骨の骨パラメータを調整するように構成される場合、具体的に、
前記骨パラメータ調整情報に基づいて前記複数の頭部骨の骨パラメータを同時に調整するように構成されることを特徴とする
項目20に記載の装置。
(項目22)
前記3次元ターゲット顔モデル生成ユニットは、前記骨パラメータ調整情報に基づいて前記少なくとも1つの頭部骨の骨パラメータを調整するように構成される場合、具体的に、
前記骨パラメータ調整情報の調整範囲を取得し、
前記骨パラメータ調整情報に関連付けられる各骨パラメータの調整範囲を取得し、
調整範囲内の前記骨パラメータ調整情報の変化率に基づいて、前記骨パラメータ調整情報に関連付けられる前記少なくとも1つの頭部骨の骨パラメータを調整する、ように構成されることを特徴とする
項目20又は21に記載の装置。
(項目23)
前記3次元ターゲット顔モデル生成ユニットは、前記骨パラメータ調整情報に基づいて、前記頭部骨パラメータを調整するように構成される場合、具体的に、
前記骨パラメータ調整命令に対して設定されたコントロールの出力変化量を取得し、前記出力変化量に基づいて前記骨パラメータ調整情報を特定するように構成されることを特徴とする
項目18~22のいずれか1項に記載の装置。
(項目24)
仮想オブジェクトの変形処理機器であって、記憶媒体、プロセッサを備え、前記記憶媒体は、プロセッサ上で実行可能なマシン実行可能命令を記憶するように構成され、前記プロセッサは、前記マシン実行可能命令を実行するときに項目1~12のいずれか1項に記載の方法を実現するように構成されることを特徴とする
仮想オブジェクトの変形処理機器。
(項目25)
マシン実行可能命令が記憶されているマシン可読記憶媒体であって、前記マシン実行可能命令がプロセッサによって実行されるときに項目1~12のいずれか1項に記載の方法が実現されることを特徴とする
マシン可読記憶媒体。
【発明の効果】
【0019】
本開示の1つ又は複数の実施例に係る仮想オブジェクトの変形処理方法及び装置、機器並びに記憶媒体によれば、仮想オブジェクトモデルを調整することで生成された3次元ターゲット仮想オブジェクトモデルに対して、予め取得したプリセット仮想オブジェクトモデルの骨パラメータと第1ブレンドシェイプデータ、及びターゲット仮想オブジェクトモデルに対応する骨パラメータに基づいて、ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを取得することで、プリセット仮想オブジェクトモデルの調整に対してブレンドシェイプデフォーマのデータを同期に更新して、ブレンドシェイプデフォーマを新しい仮想オブジェクトモデル(即ち、ターゲット仮想オブジェクトモデル)に適合させることができる。例示的に、ブレンドシェイプデータを表情の作成に用いるとき、表情駆動の精度を向上させることができる。
【図面の簡単な説明】
【0020】
【
図1】
図1は本開示の少なくとも1つの実施例に係る仮想オブジェクトの変形処理方法の例である。
【
図2A】
図2Aは骨に基づいて作成されたプリセット顔モデルの模式図を示す。
【
図3】
図3は本開示の少なくとも1つの実施例に係る第2ブレンドシェイプデータを取得する方法の例である。
【
図4】
図4は本開示の少なくとも1つの実施例に係る骨の変換行列を取得する方法の例である。
【
図5】
図5は本開示の少なくとも1つの実施例に係るターゲット顔モデルを生成する方法の例である。
【
図6】
図6は本開示の少なくとも1つの実施例に係る調整パラメータの設定の例である。
【
図7A】
図7Aは本開示の少なくとも1つの実施例に係る両目の全体的な大きさを調整するための二層パラメータの設定方法の例である。
【
図7B】
図7Bは本開示の少なくとも1つの実施例に係る両目の全体的な大きさを調整するためのコントロールの例である。
【
図7C】
図7C及び
図7Dは本開示の少なくとも1つの実施例に係る調整前の顔モデルの例及びターゲット顔モデルの例である。
【
図7D】
図7C及び
図7Dは本開示の少なくとも1つの実施例に係る調整前の顔モデルの例及びターゲット顔モデルの例である。
【
図8】
図8は本開示の少なくとも1つの実施例に係るフェイスメイクアップを生成する方法の例である。
【
図9A】
図9Aは本開示の少なくとも1つの実施例に係るフェイスマップの例である。
【
図9B】
図9Bは本開示の少なくとも1つの実施例に係る交換可能な素材のマップの例である。
【
図9C】
図9Cは本開示の少なくとも1つの実施例に係るマップテクスチャを生成する例である。
【
図10A】
図10A及び
図10Bは本開示の少なくとも1つの実施例に係るメイクアップを生成する前の顔モデル及びメイクアップを生成した後の顔モデルである。
【
図10B】
図10A及び
図10Bは本開示の少なくとも1つの実施例に係るメイクアップを生成する前の顔モデル及びメイクアップを生成した後の顔モデルである。
【
図11A】
図11Aは本開示の少なくとも1つの実施例に係る仮想オブジェクトの変形処理装置の例である。
【
図11B】
図11Bは本開示の少なくとも1つの実施例に係る別の仮想オブジェクトの変形処理装置の例である。
【
図12】
図12は本開示の少なくとも1つの実施例に係る仮想オブジェクトの変形処理機器の例である。
【発明を実施するための形態】
【0021】
本開示の1つ又は複数の実施例の技術案をより明確に説明するために、以下、実施例に必要な図面を簡単に説明するが、当然ながら、以下に説明される図面は単に本開示に記載の実施例の一部であり、当業者であれば、創造的な労働を必要とせず、これらの図面に基づいて他の図面を得ることもできる。
【0022】
当業者が本開示の1つ又は複数の実施例の技術案をよく理解できるようにするために、以下、本開示の1つ又は複数の実施例の図面を参照しながら、本開示の1つ又は複数の実施例の技術案を明確且つ完全に説明する。勿論、説明される実施例は単に本開示の一部の実施例に過ぎず、すべての実施例ではない。本開示の1つ又は複数の実施例に基づいて、当業者が創造的な労働を必要とせずに得るすべての他の実施例は、いずれも本開示の保護範囲に属すべきである。
【0023】
本開示の仮想オブジェクトモデルは、コンピュータでシミュレートされた3次元動物モデル又は3次元人体モデルなどであってもよく、それは限定されない。以下では主に顔モデルを例として仮想オブジェクトの変形処理を説明する。ユーザは自主的に仮想オブジェクトモデルをカスタマイズすることができ、例えば、プリセット仮想オブジェクトモデルの構造パラメータ(例えば、骨パラメータ)を調整することでモデルの外観を変更することができる。
【0024】
仮想オブジェクトの変形処理ではブレンドシェイプデータが利用される。ブレンドシェイプデータは、ブレンドシェイプデフォーマに記憶されているデータであって、仮想オブジェクト(例えば、顔)の変形程度を示すことに用いられ、モデルがある形状から別の形状に融合するとき、対応するグリッドデータ間の差であってもよい。標準ブレンドシェイプデータがプリセット仮想オブジェクトモデルに対して作成されたものであるため、プリセット仮想オブジェクトモデルを調整した(例えば、顔を調整した)後、標準ブレンドシェイプデータに適合できるか否かの問題が存在し、したがって、標準ブレンドシェイプデータを更新する必要がある。以下の説明では、仮想オブジェクトが顔であることを例とし、プリセット顔は標準顔であってもよく、関連技術に一般に使用されるデフォルトパラメータで生成される。
【0025】
区別して説明しやすくするために、以下では、当該プリセット仮想オブジェクトモデルに対応する骨パラメータを第1骨パラメータと呼び、対応するブレンドシェイプデータを第1ブレンドシェイプデータと呼び、ターゲット仮想オブジェクトモデルに対応する骨パラメータを第2骨パラメータと呼び、対応するブレンドシェイプデータを第2ブレンドシェイプデータと呼ぶ。
【0026】
上記問題に鑑みて、本開示の少なくとも1つの実施例は仮想オブジェクトの変形処理方法を提供する。
図1は、当該方法の一実施例の流れであり、当該方法は以下のステップ101~103を含む。
【0027】
ステップ101では、複数の骨を含む3次元プリセット仮想オブジェクトモデルに対応する第1骨パラメータ及び第1ブレンドシェイプデータを取得する。
【0028】
本ステップでは、第1ブレンドシェイプデータは、プリセット仮想オブジェクト(例えば、顔)の変形程度を示すことに用いられる。即ち、前記第1ブレンドシェイプデータをプリセット顔モデルに応用すると、前記プリセット顔モデルに、対応する変形を発生させることができる。
【0029】
骨(bones)に基づいて生成されたプリセット仮想オブジェクトモデルでは、各骨は複数のパラメータを有することができる。例えば、変位パラメータt、回転パラメータr、スケーリングパラメータsのうちの少なくとも1つを含む。プリセット仮想オブジェクトモデル、例えばプリセット顔モデルについては、当該顔モデルに含まれる骨が頭部骨であり、各骨の骨パラメータが通常x軸、y軸、z軸の数値を含むため、Bi=(tx,ty,tz,rx,ry,rz,sx,sy,sz)でプリセット顔モデルの骨パラメータを示すことができ、ただし、i=1、2…Nb、Nbはモデルに含まれる骨の数である。
【0030】
図2Aは骨に基づいて作成されたプリセット顔モデルの模式図を示す。当該プリセット顔モデルは、48個の骨に基づいて骨格を作成し、骨格に基づきスキニング処理を行うことで得られたモデルであり、
図2Aの白い線は骨を示す。
【0031】
当業者であれば、プリセット仮想オブジェクトモデルに基づいて、他のタイプのデータを取得することができ、上記に限定されないことを理解すべきである。
【0032】
ステップ102では、3次元ターゲット仮想オブジェクトモデルに対応する第2骨パラメータを取得し、第2骨パラメータと前記第1骨パラメータとの間の変換関係を特定する。
【0033】
本ステップでは、ターゲット仮想オブジェクトモデルは、プリセット仮想オブジェクトモデルを調整して得られるものであってもよく、ここでの調整はプリセット仮想オブジェクトモデルの第1骨パラメータを調整することであってもよく、それにより、ターゲット仮想オブジェクトモデルの第2骨パラメータが得られる。当該第2骨パラメータは、第1骨パラメータとは、データフォーマットが同じであるが、数値が異なる。取得した第2骨パラメータ及び第1骨パラメータによって、両者間の変換関係を特定することができる。
【0034】
ステップ103では、前記第2骨パラメータと前記第1骨パラメータとの間の変換関係及び前記第1ブレンドシェイプデータに基づいて、前記3次元ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを特定する。
【0035】
第2骨パラメータが第1骨パラメータに基づき調整して取得されるものであるので、両者の間に変換関係が存在する。第2骨パラメータと第1骨パラメータとの間の変換関係を第1ブレンドシェイプデータに応用することで、第2骨パラメータに対応する、即ち、3次元ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを取得することができる。
【0036】
本実施例では、プリセット仮想オブジェクトモデルを調整することで3次元ターゲット仮想オブジェクトモデルを生成することができる。予め取得したプリセット仮想オブジェクトモデルの第1骨パラメータと第1ブレンドシェイプデータ、及びターゲット仮想オブジェクトモデルに対応する第2骨パラメータに基づいて、ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを取得する。このように、プリセット仮想オブジェクトモデルの調整に対してブレンドシェイプデフォーマのデータを同期に更新して、ブレンドシェイプデフォーマを新しい仮想オブジェクトモデル(即ち、ターゲット仮想オブジェクトモデル)に適合させることができる。例示的に、ブレンドシェイプデータを表情の作成に用いるとき、表情駆動の精度を向上させることができる。
【0037】
ブレンドシェイプデータを表情の作成に用いる場合、プリセット仮想オブジェクトモデルの第1ブレンドシェイプデータは、表情に対応するグリッドデータと標準グリッドデータとの差であってもよい。ここでの標準グリッドデータは、プリセット仮想オブジェクトモデルの骨に対応するグリッド頂点データを含んでもよい。
【0038】
プリセット仮想オブジェクトモデルを調整した後、骨パラメータが変化し、特に、変化が大きい場合、依然として標準ブレンドシェイプデータで表情を実行すると、適合しない問題が発生し、表情の誤差が大きくなり、モデルのリアリティ及び活気に悪影響を与える。したがって、ブレンドシェイプデータを更新する必要があり、それにより、調整して得られた3次元ターゲット仮想オブジェクトモデルに適合させ、表情をより正確に実行することができる。
【0039】
一例では、第2ブレンドシェイプデータを取得する方法は、
図3に示すように、以下のステップ301~303を含む。
【0040】
ステップ301では、前記3次元プリセット仮想オブジェクトモデルに対応する第1グリッドデータを取得する。
【0041】
一例では、前記3次元プリセット仮想オブジェクトモデルに対応する第1グリッドデータを取得するステップは、
前記第1骨パラメータに対応する標準グリッドデータを取得するステップと、前記標準グリッドデータ及び前記第1ブレンドシェイプデータに基づいて、前記第1ブレンドシェイプデータに対応する第1グリッドデータを得るステップと、を含む。
【0042】
プリセット仮想オブジェクトモデルに対応する第1骨パラメータを取得すると、その骨パラメータに対応する標準グリッドデータを取得することができる。
図2Bは、プリセット顔モデル(表情を実行しない)の骨パラメータに対応する標準グリッドデータの例を示し、当該標準グリッドデータは、表情を実行しない時のプリセット顔モデルの骨に対応するグリッド頂点データを含んでもよい。
【0043】
ブレンドシェイプデフォーマに記憶されたものは表情に対応するグリッドデータと標準グリッドデータとの差であるため、標準グリッドデータを取得した後、それと第1ブレンドシェイプデフォーマ(第1ブレンドシェイプデータに対応するブレンドシェイプデフォーマ)に記憶された差とを加算することで、第1ブレンドシェイプデータに対応する第1グリッドデータを還元することができる。
【0044】
例を挙げて、プリセット顔モデルに対応する標準グリッドデータがベクトル[1,1,1,…,1,1]であり、目の大きさを制御するためのブレンドシェイプデフォーマに記憶されたブレンドシェイプデータがベクトル[0,0,0.5,…,0,0](2つのベクトルのサイズが同じである)であるとする。当該ブレンドシェイプデフォーマを実行する場合、記憶された第1ブレンドシェイプデータと標準グリッドデータとを加算することで、プリセット顔に目が大きくなるという効果を得ることができる。即ち、標準グリッドデータと第1ブレンドシェイプデータとを加算したベクトル[1,1,1.5,…,1,1]は、目が大きくなるという表情に対応する第1グリッドデータである。当業者であれば、以上のグリッドデータフォーマットが例示的なものに過ぎず、本開示のグリッドデータフォーマットに限定されないことを理解すべきである。
【0045】
ステップ302では、前記3次元ターゲット仮想オブジェクトモデルに対応する第2グリッドデータを取得する。
【0046】
一例では、前記3次元ターゲット仮想オブジェクトモデルに対応する第2グリッドデータを取得するステップは、
前記第2骨パラメータ及び前記第1骨パラメータに基づいて、前記3次元ターゲット仮想オブジェクトモデル内のすべて又は一部の骨の変換行列を特定するステップと、
前記変換行列を前記第1グリッドデータに応用することで、前記3次元ターゲット仮想オブジェクトモデルに対応する第2グリッドデータを特定するステップと、を含む。
【0047】
前述ターゲット仮想オブジェクトモデルとプリセット仮想オブジェクトモデルとの間ですべて又は一部の骨をトラバースして、各骨の変換行列、即ち第2骨パラメータと第1骨パラメータとの間の変換関係を取得することができる。
【0048】
図4は各骨の変換行列を取得する方法の一実施例の流れを示す。
図4に示すように、当該方法は、以下のステップ401~403を含む。
【0049】
ステップ401では、前記プリセット仮想オブジェクトモデルに対応する第1骨パラメータに基づいて、プリセット仮想オブジェクトモデル内の各骨の第1位置行列を取得する。
【0050】
ステップ402では、ターゲット仮想オブジェクトモデルに対応する第2骨パラメータに基づいて、3次元ターゲット仮想オブジェクトモデル内の各骨の第2位置行列を取得する。
【0051】
ステップ403では、前記第2位置行列及び前記第1位置行列に基づいて、各骨の変換行列を取得する。
【0052】
一例では、前記第2位置行列を前記第1位置行列で割ることで、各骨の変換行列を取得することができる。
【0053】
例えば、下式で計算して骨の変換行列を取得することができる。
【0054】
T=Tnew*inverse(Tnormal) (1)
ただし、Tは骨の変換行列を示し、Tnewはプリセット仮想オブジェクトモデルに対応する骨の第1位置行列を示し、Tnormalはターゲット仮想オブジェクトモデルに対応する骨の第2位置行列を示し、inverse()は逆行列を求める演算を示す。
【0055】
骨の変換行列を第1グリッドデータに応用すると、新しいグリッド頂点データを得ることができる。それは主に骨格スキニングのアイデアを利用し、骨格の変化状態及び各グリッド頂点のバインディング情報に基づいて、新しいグリッド頂点座標、即ち、ターゲット仮想オブジェクトモデルに対応する第2グリッドデータを算出する。例えば、下式で計算することができる。
【0056】
【0057】
ただし、Vertexnew、Vertexoriはそれぞれ新しいグリッド頂点及び初期のグリッド頂点を示し、kは当該頂点がk個の骨の影響を受けることを示し、Ti及びweightiはそれぞれ骨の変換行列及び対応する重みを示す。
【0058】
ステップ303では、前記第2グリッドデータ及び前記第1グリッドデータに基づいて、前記3次元ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを特定する。
【0059】
一例では、前記第2グリッドデータから前記第1グリッドデータを差し引くことで、ターゲット仮想オブジェクトモデルに対応する第2ブレンドシェイプデータを得ることができる。
【0060】
依然として目の大きさを制御するためのブレンドシェイプデフォーマを例とし、ステップ301で得られた第1グリッドデータは、プリセット顔モデルに目が大きくなるという効果を取得するのに対応するグリッドデータに対応する。ステップ302で得られた第2グリッドデータは、ターゲット顔モデルに目が大きくなるという効果を取得するグリッドデータに対応する。当該第2グリッドデータから当該第1グリッドデータを差し引くことで得られる第2ブレンドシェイプデータは、ターゲット顔モデルに対応するブレンドシェイプデフォーマに記憶されたデータである。
【0061】
本実施例では、ターゲット仮想オブジェクトモデルを生成した後、骨の変換行列をプリセット仮想オブジェクトモデルに対応するブレンドシェイプデフォーマに同期に応用して更新し、ターゲット仮想オブジェクトモデルに適合させることで、表情駆動の精度を向上させる。
【0062】
当業者であれば、本実施例の仮想オブジェクトの変形処理方法は、上述したターゲット仮想オブジェクトモデルの生成方法で生成された顔モデルに応用するのに限定されず、プリセット仮想オブジェクトモデルを任意にカスタマイズする時のブレンドシェイプデータの更新に用いてもよいことを理解すべきである。カスタマイズ後のモデルのブレンドシェイプデータの更新については、その変換行列では、Tnewはカスタマイズ後のモデルに対応する骨の位置行列を示し、Tnormalはカスタマイズ前のモデルに対応する骨の位置行列を示す。
【0063】
前述仮想オブジェクトの変形処理方法が応用されるターゲット仮想オブジェクトモデルは顔モデルであってもよく、当該顔モデルに含まれる骨は頭部骨であり、当該顔モデルは以下の方式で生成される。
図5はターゲット顔モデルを生成する方法の一実施例の流れを示し、
図5に示すように、当該方法は、以下のステップ501~503を含む。
【0064】
ステップ501では、3次元ターゲット顔モデルの骨パラメータ調整情報を取得する。
【0065】
本実施例では、骨パラメータ調整命令を受信し、前記骨パラメータ調整命令に基づいて前記骨パラメータ調整情報を特定することができる。
【0066】
取得した骨パラメータ調整情報は、少なくとも変化量、又は相対的変化量又は変化率のうちの1つである。
【0067】
ステップ502では、前記骨パラメータ調整情報に基づいて、前記3次元ターゲット顔モデルに対応する頭部骨パラメータを調整する。
【0068】
本ステップでは、前記骨パラメータ調整情報に含まれる変化量、又は相対的変化量又は変化率に基づいて、頭部骨パラメータを調整することで、前記頭部骨パラメータに、対応する変化を発生させ、例えば、対応する変化量又は相対的変化量を増減し、又は対応する変化率を増減する。頭部骨パラメータを調整した後に、調整後の1組の骨パラメータを得ることができる。
【0069】
ステップ503では、調整後の前記頭部骨パラメータに基づいて、3次元ターゲット顔モデルを生成する。
【0070】
頭部骨パラメータが調整されると、即ち、3次元ターゲット顔モデルの骨が調整され、それにより、モデルの骨構造を変更し、所望の3次元ターゲット顔モデルを得る。
【0071】
本実施例では、骨パラメータ調整情報によって、頭部骨パラメータを調整し、頭部の少なくとも1つの骨パラメータの同時調整を実現し、それにより、モデルの全体的な形状及び局所細部の同時調整を実現することができ、迅速な調整の目的を達成できるとともに、精細な調整を行うこともできる。以下の説明では、3次元ターゲット顔モデルの生成方法をより詳細に説明する。
【0072】
本実施例の方法を応用して3次元ターゲット仮想オブジェクトモデルを生成するとき、3次元ターゲット仮想オブジェクトモデルの骨パラメータを調整するための調整パラメータを予め設定することができる。当該調整パラメータは上記骨パラメータ調整情報の一実施形態である。
【0073】
当該調整パラメータが3次元ターゲット仮想オブジェクトモデルの骨パラメータに基づいて設定されるものであるため、まず、3次元ターゲット仮想オブジェクトモデルの骨パラメータ(即ち、頭部骨パラメータ)を取得する。
【0074】
3次元ターゲット仮想オブジェクトモデルの骨パラメータは、例えばBi=(tx,ty,tz,rx,ry,rz,sx,sy,sz)であってもよく、ただし、i=1、2…Nb、Nbは3次元ターゲット仮想オブジェクトモデルに含まれる骨の数である。骨パラメータBiを調整することで、骨の位置、方向、サイズのうちの1つ又は複数の項目を変化させることができ、それにより、3次元ターゲット仮想オブジェクトモデルの骨構造を変更することができる。しかし、調整可能なパラメータの自由度が高すぎると、ユーザが局所細部を調整する難度は高くなってしまう。したがって、本実施例では、3次元ターゲット仮想オブジェクトモデルの骨パラメータの調整パラメータを設定して、骨構造を調整する。
【0075】
当該調整パラメータは頭部内の少なくとも1つの骨のパラメータに関連付けられる。ここでの関連とは、調整パラメータを変更すると、前記少なくとも1つの骨の1つ又は複数のパラメータが同時に変化することを指す。したがって、当該調整パラメータは、それに関連する骨パラメータのコントローラ(controller)と見なすことができる。当該少なくとも1つの骨は、頭部内の少なくとも1つの局所領域に属する骨であってもよい。
【0076】
一例では、以下の方法で上記調整パラメータの設定を実現することができる。当該方法は、以下のステップを含む。
【0077】
まず、前記調整パラメータに関連付けられる骨を取得する。
【0078】
各調整パラメータがどの骨に関連するかは、予め設定されてもよい。当該調整パラメータを調整すると、当該調整パラメータに関連付けられる骨のパラメータが同時に調整される。
【0079】
各調整パラメータに対しては、1つの局所領域内の複数の骨のパラメータを当該調整パラメータに関連付けることができる。当該局所領域内のすべての骨であってもよく、一部の骨であってもよい。例えば、両目の全体的な大きさを調整するための眼部骨コントローラについては、眼部領域でE1個の骨があるが、そのうちのE2(E2<E1)個の骨を調整するだけで、目の大きさの変化を制御できるとする場合、当該眼部骨コントローラはこのE2個の骨を制御すればよい。
図7Aに示すように、両目の全体的な大きさを調整するための眼部骨コントローラと骨eye_01、eye_02、eye_03(eye_01、eye_02、eye_03は眼部領域の骨を示す)のパラメータとを関連付けることで、当該眼部骨コントローラはこの3つの骨を制御することができる。次に、各前記骨の骨パラメータのうち、前記調整パラメータに関連付けられる骨パラメータを取得する。
【0080】
上記調整パラメータに関連付けられる各骨については、調整パラメータはそのすべての9つのパラメータを制御してもよく、そのうちの1つ又は複数のパラメータを制御してもよい。各骨のどのパラメータが調整パラメータに関連付けられるかは、予め設定されてもよい。
【0081】
図6の図示を例とし、controller1、controller2、…、controllerMは各コントローラであり、ただし、Mはコントローラの数であり、ここで、コントローラcontroller1は3つの骨bone1、bone2、bone3を制御でき、controller1は、bone1の並進パラメータ(tx,ty)、bone2のスケーリングパラメータ(sx,sy,sz)、bone3の回転パラメータ(rx)という各骨のパラメータを制御できる。即ち、controller1の調整パラメータを調整することで、この3つの骨の上記パラメータを同時に調整することができる。
【0082】
最後、前記調整パラメータに関連付けられる各骨パラメータを設定することで、前記調整パラメータの変化に基づいて、前記骨パラメータを同時に調整する。
【0083】
調整パラメータに関連付けられる1つ又は複数の骨パラメータを特定した後、関連する各骨パラメータを設定することで、当該調整パラメータの変化に基づいて当該骨パラメータを同時に調整し、それにより、調整パラメータによる関連する骨パラメータへの制御を実現する。例示的に、調整パラメータと同じ変化率で、当該調整パラメータに関連付けられる1つ又は複数の骨パラメータを調整することができる。例えば、調整パラメータの値の調整幅は1/10増加する場合、それに関連する1つ又は複数の骨パラメータの値の調整幅も同時に1/10増加する。
【0084】
一例では、以下の方法で調整パラメータによる骨パラメータへの調整を実現することができる。当該方法は以下のステップを含む。
【0085】
まず、前記調整パラメータの変化範囲を取得する。当該変化範囲は予め設定されてもよい。当該範囲が調整パラメータの相対的変化量を特定するためのものであるため、その具体的な範囲の設定は本開示の技術案の実現に影響を与えない。
【0086】
次に、前記調整パラメータに関連付けられる各骨パラメータの変化範囲を取得する。当該変化範囲は予め設定されてもよく、それは実際に調整する必要がある骨の変位、方向、距離などに基づいて、具体的に骨パラメータの変化範囲を設定することができる。例示的に、ある骨パラメータの変化範囲が0である場合、このパラメータが調整不能であり、即ち、当該調整パラメータの制御を受けないことを意味する。
【0087】
その後、前記調整パラメータに関連付けられる各骨パラメータを設定することで、変化範囲内の前記調整パラメータの変化率に基づいて、骨パラメータの変化範囲内に同じ変化率の変化を同時に行う。ここでの変化率は、相対的変化量で示すこともできる。例を挙げて、
図6のcontroller1については、その調整パラメータの変化範囲が[0,1]であり、調整パラメータの値が0.2から0.3まで変化する場合、相対的変化量が1/10であり、即ち、変化率が1/10である。このようにして、controller1に関連するbone1、bone2、bone3の骨パラメータの値は同時に1/10アップする。それにより、調整パラメータと当該調整パラメータに関連付けられる骨パラメータとの同時調整を実現する。例示的に、以上の骨パラメータが調整パラメータに等比的に変化することは、線形補間アルゴリズムで実現することができる。
【0088】
当業者であれば、異なる骨パラメータに対して異なる変化方式を設定してもよいことを理解すべきであり、例えば、controller1の調整パラメータの値が0.2から0.3まで変化する場合、bone1の骨パラメータを1/10アップさせるが、bone2及びbone3の骨パラメータを1/5アップさせることができる。つまり、異なる骨パラメータに異なる変化傾向を発生させることができる。なお、調整パラメータの値が0から1まで変化する場合、それに対応して、各骨パラメータもそれぞれの変化区間内に最小値から最大値まで変化するが、一方、各骨パラメータの変化過程が異なってもよいということに過ぎない。例示的に、以上の異なる骨パラメータが調整パラメータにつれて異なる傾向で変化することは、非線形補間アルゴリズムで実現することができる。
【0089】
本開示の少なくとも1つの実施例では、前記骨パラメータ調整情報の取得は、
骨パラメータ調整命令を受信するステップと、
前記骨パラメータ調整命令に基づいて前記骨パラメータ調整情報を特定するステップと、を含む。
【0090】
前記骨パラメータ調整命令とは、前記調整パラメータへの調整命令を指す。前記調整パラメータの調整命令に基づいて、前記骨パラメータ調整情報を特定することができる。
【0091】
前記骨パラメータ調整情報を取得した後、前記骨パラメータ調整情報に関連付けられる少なくとも1つの頭部骨の骨パラメータを取得し、即ち、前記調整パラメータに関連付けられる少なくとも1つの頭部骨の骨パラメータを取得し、前記骨パラメータ調整情報に基づいて前記少なくとも1つの頭部骨の骨パラメータを調整する。
【0092】
前記少なくとも1つの頭部骨が1つの骨である場合、前記骨パラメータ調整情報に基づいて当該骨の骨パラメータを調整し、前記少なくとも1つの頭部骨が複数の骨である場合、前記骨パラメータ調整情報に基づいて前記複数の頭部骨の骨パラメータを同時に調整する。
【0093】
一例では、前記骨パラメータ調整情報に基づいて前記少なくとも1つの頭部骨の骨パラメータを調整するステップは、
前記骨パラメータ調整情報の調整範囲を取得するステップと、
前記骨パラメータ調整情報に関連付けられる各骨パラメータの調整範囲を取得するステップと、
調整範囲内の前記骨パラメータ調整情報の変化率に基づいて、前記骨パラメータ調整情報に関連付けられる前記少なくとも1つの頭部骨の骨パラメータを調整するステップと、を含み、骨パラメータの調整は当該骨パラメータの調整範囲内で行われる。
【0094】
一例では、骨パラメータ調整命令に対して、スライダなどのコントロールを予め設定することができ、当該コントロールを操作することで調整パラメータの調整命令を生成する。モデルを生成するとき、当該コントロールの出力変化量を取得し、即ち、調整命令に対応する骨パラメータ調整情報を取得することで、関連する骨パラメータを調整することができる。
【0095】
以下、
図7Aの両目の全体的な大きさを調整することを例として、具体的に調整パラメータによる顔モデルへの制御を説明する。
【0096】
例えば、両目の全体的な大きさを調整するためのコントローラcontroller1_eyeのパラメータ変化範囲を[0,1]として設定し、即ち、その調整パラメータの値は[0,1]間の任意値であり、スライダを操作することで、その調整パラメータの値をこの区間で変化させることができ、これは
図7Bに示すとおりである。
【0097】
コントローラcontroller1_eyeは眼部領域の3つの骨eye_01、eye_02、eye_03を制御でき、コントローラcontroller1_eyeは、骨eye_01のスケーリングパラメータ(sx,sy,sz)、骨eye_02のスケーリングパラメータ(sx,sy,sz)、骨eye_03のスケーリングパラメータ(sx,sy,sz)という各骨のパラメータを制御でき、例示的に、各パラメータの調整範囲はいずれも[-1,1]であり、即ち、各パラメータ値は当該区間内の任意数値である。例示的に、この3つの骨の他のパラメータの調整範囲は0であり、即ち、コントローラcontroller1_eyeによって調整できず、且つ制御リストに表示しない。
【0098】
コントローラcontroller1_eyeのスライダを操作することで、その調整パラメータの値を変化させ、当該数値を取得する。次に、当該数値を利用して、コントローラcontroller1_eyeに対応する上記3つの骨のパラメータに対して、対応する調整範囲内で線形補間を行って、各パラメータの調整後の数値を得る。即ち、パラメータ範囲内におけるコントローラcontroller1_eyeの調整パラメータの値の変化に基づいて、関連する骨パラメータの値をその調整範囲内で等比的に変化させる。それにより、両目の全体的な大きさの調整を実現する。
図7Cは原両目の全体的な大きさの模式図を示し、ただし、左の各フレームは骨パラメータを示し、それぞれ、頭部の全体的なパラメータ(head_all_p_N)、左頬の全体的なパラメータ(cheek_p_L)、左頬パラメータ(cheek_01_p_L、cheek_02_p_L、cheek_03_p_L)、右頬の全体的なパラメータ(cheek_p_R)、右頬パラメータ(cheek_01_p_R、cheek_02_p_R、cheek_03_p_R)、眼部の全体的なパラメータ(eye_p_L)、眼部パラメータ(eye_01_p_L、eye_02_p_L、eye_03_p_L、eye_04_p_L、)、右は各コントローラのスライダコントロールである。例えば、
図7Bに示されるスライダを操作して、その調整パラメータの値を小さくすることで、
図7Dに示される両目が全体的に小さくなるという効果を得る。当業者であれば、
図7C~
図7Dに示されるのは骨格図に基づきスキニングして得られた3次元モデルであるが、それから骨の変化による効果を反映できることを分かっている。
【0099】
一例では、調整された骨が対称な骨である場合、調整された骨に対称な骨のパラメータは、それに対応して変化する。
図2Aに示すように、顔の骨はほとんど対称であり、対称な骨については、一方を調整すると、他方も変化する。つまり、対称な骨のパラメータが関連し、一方のパラメータが変化すると、他方のパラメータも対応して変化する。
【0100】
対称な骨を対応して変化させることで、調整ステップを減少させるとともに、顔の対称性の維持に有利である。
【0101】
本開示に記載の局所領域は、1つの領域であってもよく、調整パラメータがある効果を実現するために制御する必要がある複数の領域であってもよい。調整パラメータが実現できる効果に基づいて、当該調整パラメータに対応するコントロールを命名することができる。
図7C~
図7Dに示すように、「眉の左右調整」、「眉の上下調整」などと命名されたコントロールが含まれ、当該コントロールが実現できる効果を直感的に反映し、ユーザは操作しやすい。
【0102】
生成された顔モデルに対しては、通常、モデル分割の方式でカスタマイズメイクアップを生成し、キャラクタモデルに基づき、各交換可能な素材のために1つの単独のモデルを分離するが、この方式がレンダリング段階で複数のドローコール(draw call)を引き起こすため、プログラムの性能に大きな影響を与える。
【0103】
それに鑑みて、以下の実施例では、生成された顔モデルに対してフェイスメイクアップを生成する方法を提供し、
図8に示すように、以下のステップ801~804を含む。
【0104】
ステップ801では、前記顔モデルの骨パラメータに基づいてフェイスマップを生成する。
【0105】
本ステップでは、前記顔モデルの骨パラメータに基づいてフェイスマップを生成することができる。当該フェイスマップは、メイクアップに対応する複数の領域を含み、異なる骨パラメータによって、各矩形領域のサイズ及び位置は通常異なる。ここでのメイクアップとは、顔モデルにとって交換可能なフェイス素材を指し、例えば、眉、頬紅、唇、髭などであるが、生成されたモデルが有した、交換不能なフェイス部位ではない。当業者であれば、交換可能なフェイス素材は上記に限定されず、他のフェイスメイクアップを含んでもよいことを理解すべきである。
【0106】
当業者であれば、当該フェイスマップは、他の方式で作成、生成されたフェイスマップであってもよく、上記顔モデルの骨パラメータに基づいて生成されたものに限定されないことを理解すべきである。
【0107】
図9Aに示すように、当該フェイスマップには、眉、頬紅、唇又は唇及び髭に対応する矩形領域が含まれる。各矩形領域は、幅、高さ、座標横方向オフセット値、座標縦方向オフセット値というパラメータのうちの少なくとも1つを含む。
【0108】
ステップ802では、前記領域に対して、対応するメイクアップの交換可能な素材マップを取得する。
【0109】
矩形領域を例として、本ステップでは、矩形領域のパラメータに基づいて、対応するメイクアップの交換可能な素材マップを作成、生成してもよく、対応するマップを呼び出し、インポートしてもよい。マップの例は
図9Bを参照し、各交換可能な素材のマップと対応する矩形領域との幅及び高さは合致する。
【0110】
各交換可能な素材のマップの色を変更でき、マップに1層の細部テクスチャを追加できる。
【0111】
一例では、交換可能な素材マップの透明度情報とテクスチャ情報を混合することで、前記交換可能な素材マップのテクスチャを生成することができる。当該テクスチャ情報は交換可能な素材のマップに対して選択されたテクスチャ情報であり、混合式は以下のとおりである。
【0112】
【0113】
ただし、Colorfinalはマップの最終的な色を示し、ColorbaseはAlpha!=1のときに表示するフェイスマップの色を示し、ColordetailはAlpha==1のときに表示する交換可能な素材マップの色を示す。
【0114】
ステップ803では、各メイクアップに対して取得した交換可能な素材マップと前記フェイスマップとを合わせ、合わせたマップを得る。
【0115】
一例では、以下の方式で各メイクアップの交換可能な素材マップとフェイスマップとを合わせることができる。
【0116】
交換可能な素材マップに対応する矩形領域の座標横方向オフセット値及び座標縦方向オフセット値に応じて、前記交換可能な素材マップをフェイスマップの対応する矩形領域にコピーし、フェイスマップと前記交換可能な素材マップとを透明度情報に従って混合する。前記透明度情報は前記交換可能な素材マップの透明度情報である。
【0117】
一例では、まず、フェイスマップをレンダテクスチャ(RenderTexture)にコピーし、次に、各交換可能な素材マップをフェイスマップの対応する矩形領域にコピーし、レンダテクスチャを利用して交換可能な素材マップとフェイスマップとの合わせを実現する。
【0118】
一例では、フェイスマップ及びそれに対応するシェーダー(shader)をともにレンダテクスチャにコピーする。
【0119】
交換可能な素材マップとフェイスマップとを合わせた結果は
図9Cに示される。
【0120】
ステップ804では、前記合わせたマップを前記顔モデルにマッピングして、前記顔モデルのフェイスメイクアップを生成する。
【0121】
一例では、まず、前記フェイスマップを1つのフレームバッファオブジェクト(FrameBufferObject)にレンダリングし、前記顔モデルのテクスチャ座標UVに基づいて、GPUの顔モデルに対応するマップオブジェクトに当該フレームバッファオブジェクトを関連付け、それにより、前記合わせたマップから前記顔モデルまでのマッピングを実現する。
【0122】
図10Aは初期の顔モデルを示し、
図10Bは上記方法でフェイスメイクアップを生成した後の顔モデルを示す。
【0123】
本実施例では、フェイスマップとフェイスマップの各矩形領域に対応するメイクアップの交換可能なマップとを生成することで、合わせてから描く方法を利用して、レンダリング効率を向上させる。
【0124】
図11Aは仮想オブジェクトの変形処理装置を提供し、
図11Aに示すように、当該装置は、
複数の骨を含む3次元プリセット仮想オブジェクトモデルに対応する第1骨パラメータ及び第1ブレンドシェイプデータを取得するように構成される第1取得ユニット1101であって、前記第1ブレンドシェイプデータはプリセット仮想オブジェクトの変形程度を示すことに用いられる第1取得ユニット1101と、
3次元ターゲット仮想オブジェクトモデルに対応する第2骨パラメータを取得し、第2骨パラメータと前記第1骨パラメータとの間の変換関係を特定するように構成される第2取得ユニット1102と、
前記第2骨パラメータと前記第1骨パラメータとの間の変換関係及び前記第1ブレンドシェイプデータに基づいて、前記3次元ターゲット仮想オブジェクト顔モデルに対応する第2ブレンドシェイプデータを特定するように構成される特定ユニット1103と、を備える。
【0125】
図11Bは別の仮想オブジェクトの変形処理装置を提供し、
図11Bに示すように、第2取得ユニット1102は、ターゲット顔モデルを生成するように構成される顔モデル生成サブユニット1102_1を備え、前記顔モデル生成サブユニット1102_1は、具体的に、
3次元ターゲット顔モデルの骨パラメータ調整情報を取得し、
前記骨パラメータ調整情報に基づいて、前記3次元ターゲット顔モデルに対応する頭部骨パラメータを調整し、
調整後の前記頭部骨パラメータに基づいて、3次元ターゲット顔モデルを生成する、ように構成される。
【0126】
図12は本開示の少なくとも1つの実施例に係る仮想オブジェクトの変形処理機器であり、
図12に示すように、当該機器は、記憶媒体1201、プロセッサ1202を備え、前記記憶媒体1201は、プロセッサ上で実行可能なマシン実行可能命令を記憶するように構成され、前記プロセッサ1202は、前記マシン実行可能命令を実行するときに本開示のいずれかの実施例に記載の仮想オブジェクトの変形処理方法を実現するように構成される。
【0127】
本開示の少なくとも1つの実施例は、マシン実行可能命令が記憶されているマシン可読記憶媒体をさらに提供し、前記マシン実行可能命令がプロセッサによって実行されるときに本開示のいずれかの前記仮想オブジェクトの変形処理方法が実現される。
【0128】
当業者であれば、本開示の1つ又は複数の実施例は方法、システム又はコンピュータプログラム製品として提供され得ることを分かっている。したがって、本開示の1つ又は複数の実施例は、完全なハードウェア実施例、完全なソフトウェア実施例又はソフトウェアとハードウェアを組み合わせた実施例の形態を用いることができる。さらに、本開示の1つ又は複数の実施例は、コンピュータ使用可能プログラムコードが含まれる1つ又は複数のコンピュータ使用可能記憶媒体(磁気ディスクメモリ、CD-ROM、光学メモリなどを含むが、それらに限定されない)上で実装されるコンピュータプログラム製品の形態を用いることができる。
【0129】
本開示の各実施例はいずれも進歩的な方式で説明され、各実施例の同じ又は類似の部分は相互に参照すればよい。各実施例の説明の焦点は他の実施例との相違点である。特に、データ処理機器の実施例については、基本的に方法実施例と類似するため、説明が簡単であり、関連する部分は方法実施例の説明を参照すればよい。
【0130】
本開示の特定の実施例については、上記で説明した。他の実施例は添付の特許請求の範囲内にある。場合によっては、特許請求の範囲に記載のアクション又はステップは、実施例とは異なる順序で実行されてもよく、所望の結果が依然として実現され得る。また、図面に図示した過程は、所望の結果を実現するために、必ずしも特定の順序又は連続的な順序を必要とするとは限らない。いくつかの実施形態では、マルチタスク処理及び並列処理は可能であるか、又は有利である可能性がある。
【0131】
本開示で説明される主題及び機能操作の実施例は、デジタル電子回路、有形に具体化されたコンピュータソフトウェア又はファームウェア、本開示に開示された構造及びそれらの構造的等価物を含むコンピュータハードウェア、又はそれらのうちの1つ又は複数の組み合わせで実現できる。本開示で説明される主題の実施例は、1つ又は複数のコンピュータプログラムとして、即ち、有形の非一時的なプログラムキャリアに符号化されて、データ処理装置によって実行されるか、又はデータ処理装置の操作を制御するためのコンピュータプログラム命令の1つ又は複数のモジュールとして実現できる。代替的に又は加えて、プログラム命令は、人為的に生成された伝搬信号、例えばマシンによって生成された電気信号、光信号又は電磁信号上で符号化されてもよく、当該信号は、情報を符号化して適切な受信機装置に伝送してデータ処理装置によって実行されるように生成される。コンピュータ記憶媒体は、マシン可読記憶機器、マシン可読記憶基板、ランダム又はシリアルアクセスメモリデバイス、又はそれらのうちの1つ又は複数の組み合わせであってもよい。
【0132】
本開示で説明された処理及び論理流れは、1つ又は複数のコンピュータプログラムを実行する1つ又は複数のプログラマブルコンピュータによって実行されてもよく、それにより、入力データに基づいて操作して出力を生成することで対応する機能を実行する。前記処理及び論理流れは、例えばFPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)などの専用論理回路によって実行されてもよく、装置は専用論理回路として実現されてもよい。
【0133】
コンピュータプログラムの実行に適用できるコンピュータは、例えば、汎用及び/又は専用マイクロプロセッサ、又はいずれか他のタイプの中央処理装置を含む。通常、中央処理装置は、読み出し専用メモリ及び/又はランダムアクセスメモリから命令とデータを受信する。コンピュータの基本コンポーネントは、命令を実施又は実行するための中央処理装置、及び命令とデータを記憶するための1つ又は複数のメモリデバイスを含む。通常、コンピュータは、データを記憶するための1つ又は複数の大容量記憶機器、例えば磁気ディスク、光磁気ディスク又は光ディスクなどを含むか、又はコンピュータは、この大容量記憶機器に操作可能に結合して、それからデータを受信する又はそれにデータを伝送し、或いは、両方であってもよい。しかし、コンピュータは必ずしもこのような機器を有する必要がない。また、コンピュータは、携帯電話、携帯情報端末(PDA)、モバイルオーディオ又はビデオプレーヤー、ゲームコンソール、全地球測位システム(GPS)受信機、又はユニバーサルシリアルバス(USB)フラッシュドライバの携帯記憶機器などの別の機器に組み込むことができ、ここで、いくつかの例を挙げるだけである。
【0134】
コンピュータプログラム命令とデータの記憶に適用できるコンピュータ可読媒体は、すべての形態の不揮発性メモリ、メディア及びメモリデバイスを含み、例えば、半導体メモリデバイス(例えば、EPROM、EEPROM及びフラッシュデバイス)、磁気ディスク(例えば、内部ハードディスク又はモバイルディスク)、光磁気ディスク及びCD ROMとDVD-ROMディスクを含む。プロセッサとメモリは、専用論理回路で補完されてもよく、又は専用論理回路に組み込まれてもよい。
【0135】
本開示は多くの具体的な実施細部を含むが、これらは、本開示の範囲又は保護される範囲を限定するものとして解釈されるべきではなく、主に具体的な実施例の特徴を説明するためのものである。本開示の複数の実施例で説明されたある特徴は、単一の実施例で組み合わせて実施することもできる。逆に、単一の実施例で説明された様々な特徴は複数の実施例で個別に、又はいずれかの適切なサブコンビネーションで実施することもできる。また、特徴は、ある組み合わせで作動するものとして上記で説明され、ひいては最初にこのようなものとして保護されるが、保護される組み合わせからの1つ又は複数の特徴は、場合によっては、当該組み合わせから削除することができ、また保護される組み合わせは、サブコンビネーション又はサブコンビネーションの変形を対象としてもよい。
【0136】
同様に、図面では特定の順序で操作を図示したが、所望の結果を実現するために、これらの操作が示された特定の順序で実行され又はシーケンシャルな順序で実行されること、又はすべての例示された操作が実行されること、を要求していると理解されるべきではない。場合によっては、マルチタスク及び並列処理は有利である可能性がある。また、上記実施例の様々なシステムモジュール及びコンポーネントの分離は、すべての実施例でこのような分離を要求していると理解されるべきではない。なお、説明されたプログラムコンポーネント及びシステムは、通常、全体として単一のソフトウェア製品に集積されてもよく、又は複数のソフトウェア製品としてパッケージされてもよい。
【0137】
主題の特定の実施例は説明された。他の実施例は添付の特許請求の範囲内にある。場合によっては、特許請求の範囲に記載のアクションは、異なる順序で実行されてもよく、所望の結果が依然として実現され得る。また、図面に図示した処理は、所望の結果を実現するために、必ずしも示された特定の順序又はシーケンシャルな順序を必要とするとは限らない。いくつかの実施形態では、マルチタスク及び並列処理は有利である可能性がある。