IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッドの特許一覧

特許7582589物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム
<>
  • 特許-物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム 図1
  • 特許-物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム 図2
  • 特許-物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム 図3
  • 特許-物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム 図4
  • 特許-物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム 図5
  • 特許-物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム 図6
  • 特許-物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム 図7
  • 特許-物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム 図8
  • 特許-物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム 図9
  • 特許-物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム 図10
  • 特許-物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム 図11
  • 特許-物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム 図12
  • 特許-物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム 図13
  • 特許-物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、コンピュータプログラム
(51)【国際特許分類】
   G06T 13/60 20110101AFI20241106BHJP
   G06T 15/00 20110101ALI20241106BHJP
【FI】
G06T13/60
G06T15/00 501
【請求項の数】 19
(21)【出願番号】P 2023555759
(86)(22)【出願日】2022-09-14
(65)【公表番号】
(43)【公表日】2024-03-25
(86)【国際出願番号】 CN2022118750
(87)【国際公開番号】W WO2023071579
(87)【国際公開日】2023-05-04
【審査請求日】2023-10-12
(31)【優先権主張番号】202111237498.X
(32)【優先日】2021-10-25
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ウェイ,チェンディ
(72)【発明者】
【氏名】ホアン,リー
【審査官】渡部 幸和
(56)【参考文献】
【文献】特開2009-285477(JP,A)
【文献】特表2009-500730(JP,A)
【文献】米国特許出願公開第2017/0046866(US,A1)
【文献】特開2020-86674(JP,A)
【文献】身近になったパーティクル・システム,日経CG,Vol.169,2000年10月08日
(58)【調査した分野】(Int.Cl.,DB名)
G06T 13/00 - 13/60
G06T 15/00 - 15/87
G06T 19/00 - 19/20
(57)【特許請求の範囲】
【請求項1】
コンピュータ機器が実行する物理的な特殊効果のレンダリング方法であって、
パーティクルエミッションプラグインによって放出された物理的な特殊効果パーティクルの直前のフレームにおける物理的な特殊効果データを取得するステップと、
シーン管理クラスをインスタンス化して得られた第1ターゲットインスタンスを取得するステップであって、前記シーン管理クラスは、前記パーティクルエミッションプラグインによって提供されたターゲットベースクラスから継承するものである、ステップと、
前記第1ターゲットインスタンスを介して、前記パーティクルエミッションプラグインに集積されるパーティクルシミュレーションツールのシーン管理インターフェースを呼び出して、前記パーティクルシミュレーションツールのシーンマネージャーにおいて、前記直前のフレームにおける物理的な特殊効果データに基づいて、前記物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算するステップと、
前記現在のフレームにおける運動状態情報に基づいて、前記直前のフレームにおける物理的な特殊効果データを更新して、現在のフレームにおける物理的な特殊効果をレンダリングして取得するステップと、を含む、方法。
【請求項2】
前記第1ターゲットインスタンスは、
前記パーティクルエミッションプラグインによって提供されたベースクラス集合から、前記パーティクルシミュレーションツールによって提供されたデータインターフェースを呼び出すためのベースクラスを決定して、前記ターゲットベースクラスを取得するステップと、
前記パーティクルシミュレーションツールのシーン管理インターフェースが呼び出されるように、前記ターゲットベースクラスから継承するシーン管理クラスを作成するステップと、
前記シーン管理クラスをインスタンス化して、前記第1ターゲットインスタンスを取得するステップとによって生成される、請求項1に記載の方法。
【請求項3】
前記シーン管理クラスをインスタンス化して、前記第1ターゲットインスタンスを取得する前記ステップは、
前記シーン管理クラスに対応するオブジェクトを作成して、シーン管理オブジェクトを取得するステップと、
前記シーン管理オブジェクトをパッケージングして、第1ターゲットオブジェクトを取得するステップと、
前記第1ターゲットオブジェクトを前記パーティクルエミッションプラグインの第1属性として設定して、前記第1ターゲットインスタンスを取得するステップと、を含む、請求項2に記載の方法。
【請求項4】
前記第1ターゲットオブジェクトを前記パーティクルエミッションプラグインの第1属性として設定して、前記第1ターゲットインスタンスを取得する前記ステップの後、前記方法は、
前記パーティクルエミッションプラグインの設定インターフェースを介して、前記第1属性の属性パラメータを設定して得られた第1属性値を取得するステップと、
前記第1属性値を前記第1ターゲットインスタンスに対応する変数値とするステップと、
前記第1ターゲットインスタンスに対応する変数値により、前記シーン管理インターフェースに対応するシーンマネージャーのパラメータを設定して、設定後の、パーティクルシミュレーションツールにおいてシーン管理を行うためのシーンマネージャーを取得するステップと、をさらに含む、請求項3に記載の方法。
【請求項5】
前記現在のフレームにおける運動状態情報に基づいて、前記直前のフレームにおける物理的な特殊効果データを更新して、現在のフレームにおける物理的な特殊効果をレンダリングして取得する前記ステップは、
ジオメトリ管理クラスをインスタンス化して得られた第2ターゲットインスタンスを取得するステップであって、前記ジオメトリ管理クラスは、前記パーティクルエミッションプラグインによって提供されたターゲットベースクラスから継承するものである、ステップと、
前記第2ターゲットインスタンスを介して前記パーティクルシミュレーションツールのジオメトリ管理インターフェースを呼び出して、前記パーティクルシミュレーションツールにおけるジオメトリマネージャーによって前記現在のフレームにおける運動状態情報をターゲットビデオメモリに書き込み、前記ターゲットビデオメモリにおいて、前記現在のフレームにおける運動状態情報に基づいて、前記直前のフレームにおける物理的な特殊効果データを更新して、現在のフレームにおける物理的な特殊効果をレンダリングして取得するステップと、を含む、請求項1に記載の方法。
【請求項6】
前記第2ターゲットインスタンスは、
前記パーティクルシミュレーションツールのジオメトリ管理インターフェースが呼び出されるように、前記ターゲットベースクラスから継承するジオメトリ管理クラスを作成するステップと、
前記ジオメトリ管理クラスに対応するオブジェクトを作成して、ジオメトリ管理オブジェクトを取得するステップと、
前記ジオメトリ管理オブジェクトをパッケージングして、第2ターゲットオブジェクトを取得するステップと、
前記第2ターゲットオブジェクトを前記パーティクルエミッションプラグインの第2属性として設定して、前記第2ターゲットインスタンスを取得するステップとによって生成される、請求項5に記載の方法。
【請求項7】
前記第2ターゲットオブジェクトを前記パーティクルエミッションプラグインの第2属性として設定して、前記第2ターゲットインスタンスを取得する前記ステップの後、前記方法は、
前記パーティクルエミッションプラグインの設定インターフェースを介して、前記第2属性の属性パラメータを設定して得られた第2属性値を取得するステップと、
前記第2属性値を前記第2ターゲットインスタンスに対応する変数値とするステップと、
前記第2ターゲットインスタンスに対応する変数値により、前記ジオメトリ管理インターフェースに対応するジオメトリマネージャーを設定して、設定後の、パーティクルシミュレーションツールにおいてジオメトリ管理を行うためのジオメトリマネージャーを取得するステップと、をさらに含む、請求項6に記載の方法。
【請求項8】
前記方法は、
境界条件管理クラスをインスタンス化して得られた第3ターゲットインスタンスを取得するステップであって、前記境界条件管理クラスは、前記パーティクルエミッションプラグインによって提供されたターゲットベースクラスから継承するものである、ステップと、
前記第3ターゲットインスタンスを介して前記パーティクルシミュレーションツールの境界条件管理インターフェースを呼び出して、前記パーティクルシミュレーションツールの境界条件マネージャーにおいてターゲット境界条件を取得するステップと、をさらに含み、
前記パーティクルシミュレーションツールのシーンマネージャーにおいて、前記直前のフレームにおける物理的な特殊効果データに基づいて、前記物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算する前記ステップは、
前記パーティクルシミュレーションツールのシーンマネージャーにおいて、前記直前のフレームにおける物理的な特殊効果データ及び前記ターゲット境界条件に基づいて、前記物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算するステップを含む、請求項1に記載の方法。
【請求項9】
前記第3ターゲットインスタンスは、
前記パーティクルシミュレーションツールの境界条件管理インターフェースが呼び出されるように、前記ターゲットベースクラスから継承する境界条件管理クラスを作成するステップと、
前記境界条件管理クラスから継承する、タイプ設定パラメータに対応するターゲット派生クラスを作成し、前記ターゲット派生クラスをインスタンス化して、前記第3ターゲットインスタンスを取得するステップとによって生成され、
前記タイプ設定パラメータは、前記パーティクルエミッションプラグインの設定インターフェースを介して取得された、前記境界条件マネージャーのタイプを設定して得られたパラメータである、請求項8に記載の方法。
【請求項10】
前記タイプ設定パラメータは、地面境界条件、スケルタルアニメーション境界条件、又は静止体境界条件のうちの少なくとも1つを含む、請求項9に記載の方法。
【請求項11】
前記ターゲット派生クラスをインスタンス化して、前記第3ターゲットインスタンスを取得する前記ステップは、
前記ターゲット派生クラスに対応するオブジェクトを作成して、ターゲット境界条件管理オブジェクトを取得するステップと、
前記ターゲット境界条件管理オブジェクトをパッケージングして、第3ターゲットオブジェクトを取得するステップと、
前記第3ターゲットオブジェクトを前記パーティクルエミッションプラグインの第3属性として設定して、前記第3ターゲットインスタンスを取得するステップと、を含む、請求項9に記載の方法。
【請求項12】
前記第3ターゲットオブジェクトを前記パーティクルエミッションプラグインの第3属性として設定して、前記第3ターゲットインスタンスを取得する前記ステップの後、前記方法は、
前記パーティクルエミッションプラグインの設定インターフェースを介して、前記第3属性の属性パラメータを設定して得られた第3属性値を取得するステップと、
前記第3属性値を前記第3ターゲットインスタンスに対応する変数値とするステップと、
前記第3ターゲットインスタンスに対応する変数値により、前記境界条件管理インターフェースに対応する境界条件マネージャーのパラメータを設定して、設定後の、パーティクルシミュレーションツールにおいて境界条件管理を行うための境界条件マネージャーを取得するステップと、をさらに含む、請求項11に記載の方法。
【請求項13】
前記パーティクルシミュレーションツールのシーンマネージャーにおいて、前記直前のフレームにおける物理的な特殊効果データに基づいて、前記物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算する前記ステップは、
前記パーティクルシミュレーションツールのシーンマネージャーにおいて、前記直前のフレームにおける物理的な特殊効果データに基づいて、前記物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算して、前記運動状態情報を第1ビデオメモリに書き込むステップを含み、
前記現在のフレームにおける運動状態情報に基づいて、前記直前のフレームにおける物理的な特殊効果データを更新して、現在のフレームにおける物理的な特殊効果をレンダリングして取得する前記ステップは、
前記第1ビデオメモリから前記現在のフレームにおける運動状態情報を読み取り、前記現在のフレームにおける運動状態情報をコピーするステップと、
コピーされた前記運動状態情報を第2ビデオメモリに書き込み、前記第2ビデオメモリにおいて、前記現在のフレームにおける運動状態情報に基づいて、前記直前のフレームにおける物理的な特殊効果データを更新するステップと、を含み、
前記第1ビデオメモリは、前記パーティクルエミッションプラグインのターゲットビデオメモリにおける、前記パーティクルシミュレーションツールに割り当てられたデータバッファ領域であり、前記第2ビデオメモリは、前記ターゲットビデオメモリにおける、前記第1ビデオメモリとは異なるデータバッファ領域であり、パーティクル放出データ及びパーティクルレンダリングデータを記憶するためのものである、請求項1に記載の方法。
【請求項14】
前記方法は、
プリセットモデルの位置で所定数の初期パーティクルを放出し、前記初期パーティクルの属性情報を第2ビデオメモリに書き込むステップと、
前記第2ビデオメモリから前記初期パーティクルの属性情報を読み取り、前記初期パーティクルの属性情報をコピーするステップと、
コピーされた前記初期パーティクルの属性情報を前記パーティクルシミュレーションツールに割り当てられた第1ビデオメモリに書き込み、前記パーティクルシミュレーションツールにより、前記第1ビデオメモリにおける前記初期パーティクルの属性情報に基づいて、前記プリセットモデルの表面及び内部でサンプリングして、物理的な特殊効果シミュレーションに用いられる物理的な特殊効果パーティクルを取得するステップと、をさらに含む、請求項1に記載の方法。
【請求項15】
前記パーティクルシミュレーションツールのシーンマネージャーにおいて、前記直前のフレームにおける物理的な特殊効果データに基づいて、前記物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算する前記ステップは、
前記パーティクルシミュレーションツールのシーンマネージャーにおいて、前記直前のフレームにおける物理的な特殊効果データを所定の背景グリッドにマッピングするステップであって、前記背景グリッドには、複数のグリッドノードが含まれる、ステップと、
前記背景グリッドにおいて、前記物理的な特殊効果データに基づいて、現在のフレームにおける各物理的な特殊効果パーティクルに対応するグリッドノードの運動状態情報を計算するステップと、
各前記グリッドノードの運動状態情報を、対応する物理的な特殊効果パーティクルにマッピングして、現在のフレームにおける各前記物理的な特殊効果パーティクルの運動状態情報を取得するステップと、を含む、請求項1~14のいずれか一項に記載の方法。
【請求項16】
前記直前のフレームにおける物理的な特殊効果データに基づいて、前記物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算する前記ステップは、
現在のフレームを複数のタイムステップに分割するステップと、
前記複数のタイムステップから時系列順に現在のタイムステップを決定し、各現在のタイムステップについて、現在のタイムステップの直前のタイムステップにおける物理的な特殊効果パーティクルの物理的な特殊効果データに基づいて、現在のタイムステップにおける物理的な特殊効果パーティクルの運動状態情報を計算するステップと、
最後のタイムステップにおける物理的な特殊効果パーティクルの運動状態情報を前記物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報として決定するステップと、を含む、請求項1~14のいずれか一項に記載の方法。
【請求項17】
パーティクルエミッションプラグインによって放出された物理的な特殊効果パーティクルの直前のフレームにおける物理的な特殊効果データを取得するデータ取得モジュールと、
シーン管理クラスをインスタンス化して得られた第1ターゲットインスタンスを取得するインスタンス取得モジュールであって、前記シーン管理クラスは、前記パーティクルエミッションプラグインによって提供されたターゲットベースクラスから継承するものである、インスタンス取得モジュールと、
前記第1ターゲットインスタンスを介して、前記パーティクルエミッションプラグインに集積されるパーティクルシミュレーションツールのシーン管理インターフェースを呼び出して、前記パーティクルシミュレーションツールのシーンマネージャーにおいて、前記直前のフレームにおける物理的な特殊効果データに基づいて、前記物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算するデータ計算モジュールと、
前記現在のフレームにおける運動状態情報に基づいて、前記直前のフレームにおける物理的な特殊効果データを更新して、現在のフレームにおける物理的な特殊効果をレンダリングして取得するデータ更新モジュールと、を備える、物理的な特殊効果のレンダリング装置。
【請求項18】
コンピュータ読み取り可能な命令が記憶されているメモリと、1つ又は複数のプロセッサとを含むコンピュータ機器であって、
前記コンピュータ読み取り可能な命令が前記プロセッサによって実行されると、前記1つ又は複数のプロセッサに請求項1~14のいずれか一項に記載の方法を実現させる、コンピュータ機器。
【請求項19】
コンピュータに、請求項1~14のいずれか一項に記載の方法を実行させるように構成される、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2021年10月25日に提出された、出願番号が202111237498Xであり、名称が「物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、並びに、記憶媒体」である中国特許出願の優先権を主張し、その全ての内容は、参照により本願に組み込まれるものとする。
【0002】
本願は、コンピュータ技術の分野に関し、特に、物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、記憶媒体、並びに、コンピュータプログラム製品に関する。
【背景技術】
【0003】
コンピュータ技術の発展に伴い、パーティクルエミッションプラグインは、ゲーム、アニメーションなどの開発に広く応用されている。パーティクルエミッションプラグインは、3次元空間においてパーティクルを放出し、発生したパーティクルをレンダリングすることにより物理的な特殊効果を取得することができる。
【0004】
従来技術において、パーティクルエミッションプラグインは、パーティクルの運動に対して物理シミュレーションを行うことができず、オフライン物理シミュレーションによって得られたシミュレーション結果を外部から取得して物理的な特殊効果のレンダリングを実現する必要があるため、物理的な特殊効果のレンダリングを行う際に効率が低い。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本願に係る様々な実施形態は、物理的な特殊効果のレンダリング方法及び装置、コンピュータ機器、記憶媒体、並びに、コンピュータプログラム製品を提供する。
【課題を解決するための手段】
【0006】
コンピュータ機器が実行する物理的な特殊効果のレンダリング方法は、パーティクルエミッションプラグインによって放出された物理的な特殊効果パーティクルの直前のフレームにおける物理的な特殊効果データを取得するステップと、シーン管理クラスをインスタンス化して得られた第1ターゲットインスタンスを取得するステップであって、前記シーン管理クラスは、前記パーティクルエミッションプラグインによって提供されたターゲットベースクラスから継承するものである、ステップと、前記第1ターゲットインスタンスを介して、前記パーティクルエミッションプラグインに集積されるパーティクルシミュレーションツールのシーン管理インターフェースを呼び出して、前記パーティクルシミュレーションツールのシーンマネージャーにおいて、前記直前のフレームにおける物理的な特殊効果データに基づいて前記物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算するステップと、前記現在のフレームにおける運動状態情報に基づいて、前記直前のフレームにおける物理的な特殊効果データを更新して、現在のフレームにおける物理的な特殊効果をレンダリングして取得するステップと、を含む。
【0007】
物理的な特殊効果のレンダリング装置は、パーティクルエミッションプラグインによって放出された物理的な特殊効果パーティクルの直前のフレームにおける物理的な特殊効果データを取得するデータ取得モジュールと、シーン管理クラスをインスタンス化して得られた第1ターゲットインスタンスを取得するインスタンス取得モジュールであって、前記シーン管理クラスは、前記パーティクルエミッションプラグインによって提供されたターゲットベースクラスから継承するものである、インスタンス取得モジュールと、前記第1ターゲットインスタンスを介して、前記パーティクルエミッションプラグインに集積されるパーティクルシミュレーションツールのシーン管理インターフェースを呼び出して、前記パーティクルシミュレーションツールのシーンマネージャーにおいて、前記直前のフレームにおける物理的な特殊効果データに基づいて前記物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算するデータ計算モジュールと、前記現在のフレームにおける運動状態情報に基づいて、前記直前のフレームにおける物理的な特殊効果データを更新して、現在のフレームにおける物理的な特殊効果をレンダリングして取得するデータ更新モジュールと、を備える。
【0008】
コンピュータ機器は、コンピュータ読み取り可能な命令が記憶されているメモリと、プロセッサとを含み、前記コンピュータ読み取り可能な命令が前記プロセッサによって実行されると、前記プロセッサに上記物理的な特殊効果のレンダリング方法のステップを実行させる。
【0009】
1つ又は複数の不揮発性読み取り可能な記憶媒体は、コンピュータ読み取り可能な命令が記憶されており、前記コンピュータ読み取り可能な命令が1つ又は複数のプロセッサによって実行されると、前記プロセッサに上記物理的な特殊効果のレンダリング方法のステップを実行させる。
【0010】
コンピュータプログラム製品は、コンピュータ読み取り可能な命令を含み、前記コンピュータ読み取り可能な命令がプロセッサによって実行されると、上記物理的な特殊効果のレンダリング方法のステップが実現される。
【0011】
本願の1つ又は複数の実施形態の詳細は、以下の図面及び説明で述べられる。本願の他の特徴、目的及び利点は、明細書、図面及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0012】
本願の実施形態又は従来技術における技術的手段をより明確に説明するために、以下、実施形態又は従来技術の説明に使用される必要がある図面を簡単に説明し、明らかなように、以下の説明における図面は、本願の実施形態に過ぎず、当業者であれば、創造的な労働をせずに、開示された図面に基づいて他の図面を得ることができる。
【0013】
図1】一実施形態における物理的な特殊効果のレンダリング方法の適用環境図である。
図2】一実施形態における物理的な特殊効果のレンダリング方法のフローチャートである。
図3】一実施形態における第1属性の属性パラメータを設定する場合の設定インターフェースの概略図である。
図4】一実施形態における第2属性の属性パラメータを設定する場合の設定インターフェースの概略図である。
図5】一実施形態における第3属性の属性パラメータを設定する場合の設定インターフェースの概略図である。
図6】一実施形態におけるプリセットモデルの概略図である。
図7】一実施形態におけるサンプリングして得られたパーティクルの概略図である。
図8】一実施形態における運動状態情報を計算する概略図である。
図9】一実施形態におけるパーティクルエミッションプラグインによって提供されたクラスの関係図である。
図10】一実施形態における設定インターフェースに各モジュールを表示する概略図である。
図11】一実施形態におけるパーティクル回転の効果図である。
図12】一実施形態におけるシミュレーション過程の呼び出しのフローチャートである。
図13】一実施形態における物理的な特殊効果のレンダリング装置の構成ブロック図である。
図14】一実施形態におけるコンピュータ機器の内部構成図である。
【発明を実施するための形態】
【0014】
以下、本願の実施形態における図面を参照しながら、本願の実施形態における技術的手段を明確で完全に説明し、明らかに、説明する実施形態は、本願の一部の実施形態にすぎず、全てではない。本願の実施形態に基づいて、当業者が創造的な労働をせずに得られる全ての他の実施形態は、いずれも本願の保護範囲に属する。
【0015】
本願に係る物理的な特殊効果のレンダリング方法は、図1に示すような適用環境に適用することができる。コンピュータ機器102は、端末又はサーバであってもよい。端末は、様々なパーソナルコンピュータ、ノートパソコン、スマートフォン、タブレット及び携帯型ウェアラブルデバイスであってもよいが、これらに限定されない。サーバは、独立したサーバであってもよく、複数のサーバで構成されたサーバクラスタであってもよい。コンピュータ機器102には、パーティクルエミッションプラグインがインストールされ、コンピュータ機器は、パーティクルエミッションプラグインによって放出された物理的な特殊効果パーティクルの直前のフレームにおける物理的な特殊効果データを取得し、さらに、パーティクルエミッションプラグインによって提供されたターゲットベースクラスから継承するシーン管理クラスをインスタンス化して得られた第1ターゲットインスタンスを取得し、次に、第1ターゲットインスタンスを介して、パーティクルエミッションプラグインに集積されるパーティクルシミュレーションツールのシーン管理インターフェースを呼び出して、パーティクルシミュレーションツールのシーンマネージャーにおいて、直前のフレームにおける物理的な特殊効果データに基づいて、物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算し、そして、現在のフレームにおける運動状態情報に基づいて、直前のフレームにおける物理的な特殊効果データを更新し、更新された物理的な特殊効果データに基づいて、コンピュータ機器102は、現在のフレームにおける物理的な特殊効果をレンダリングして取得することができ、かつコンピュータ機器のインターフェースに、レンダリングして得られた物理的な特殊効果を表示することができる。
【0016】
一実施形態において、図2に示すように、物理的な特殊効果のレンダリング方法を提供し、当該方法を図1におけるコンピュータ機器に適用することを例として説明し、以下のステップ202、ステップ204、ステップ206、ステップ208を含む。
【0017】
ステップ202では、パーティクルエミッションプラグインによって放出された物理的な特殊効果パーティクルの直前のフレームにおける物理的な特殊効果データを取得する。
【0018】
パーティクルエミッションプラグインとは、物理的な特殊効果パーティクルを放出することができるプラグインを指す。パーティクルエミッションプラグインは、例えば、ゲームエンジンUnreal Engine(UE)におけるNiagaraプラグインであってもよく、当該プラグインには、物理的な特殊効果をシミュレーションすることができるパーティクルシミュレーションツールが同時に集積される。物理的な特殊効果は、物理的な過程がアニメーションに表現される効果であってもよく、例えば、日常生活で感じられた風の吹き、葉の揺れ、及び物体の爆発時に生じた破片の飛散などの物理的な過程をアニメーションに表現する効果であってもよい。アニメーションは、ゲームアニメーション又はムービーアニメーションを含むが、これらに限定されない。物理的な特殊効果を用いることにより、よりリアルなゲーム感覚をもたらし、アニメーションをよりリアルに、よりインパクトに見せることができ、その場に身を置くかのような感覚を与える。物理的な特殊効果パーティクルとは、物理的な特殊効果のシミュレーションにおいてそれ以上分割できない物質を指し、例えば、雪のパーティクル、砂のパーティクル、石油のパーティクル、水のパーティクルなどであってもよく、より広くには、髪、布地などであり、パーティクルとも総称される。物理的な特殊効果データとは、物理的な特殊効果シミュレーションを行う過程で生じたパーティクルの関連データを指し、物理的な特殊効果データは、少なくとも物理的な特殊効果パーティクルの属性情報、運動状態情報を含み、物理的な特殊効果パーティクルの属性情報は、物理的な特殊効果パーティクルの質量、パーティクル番号、ライフサイクルなどの基本情報を含んでもよく、運動状態情報は、物理的な特殊効果パーティクルが運動するときの状態情報を指してもよく、例えば、物理的な特殊効果パーティクルの速度、変形勾配、成形状態、位置情報などの情報を含んでもよい。
【0019】
一実施形態において、物理的な特殊効果データは、物理的な特殊効果パーティクルの受力値をさらに含み、受力値は、物理的な特殊効果パーティクルが受けた力の大きさを表し、物理的な特殊効果パーティクルが受けた力は、物理的な特殊効果パーティクルが受ける可能性のある全ての作用力を指してもよく、例えば、物理的な特殊効果パーティクルが他の物理的な特殊効果パーティクルから受ける作用力、摩擦力、重力などである。
【0020】
具体的には、コンピュータ機器は、パーティクルエミッションプラグインに割り当てられたビデオメモリから、パーティクルエミッションプラグインによって放出された物理的な特殊効果パーティクルの直前のフレームにおける物理的な特殊効果データを読み取ることができる。
【0021】
なお、パーティクルエミッションプラグインによって放出された物理的な特殊効果パーティクルは、ライフサイクルを有し、異なるアニメーションフレームにおいて、パーティクルのライフサイクルの終了に伴って、パーティクルが消滅するため、コンピュータ機器は、物理的な特殊効果データを取得する場合、現在生存しているパーティクルに対応する物理的な特殊効果データを取得する。
【0022】
また、直前のフレームが第1フレームである場合、直前のフレームにおける物理的な特殊効果データは、ユーザによって設定される数値で初期化して取得されてもよく、直前のフレームが中間フレームである場合、直前のフレームにおける物理的な特殊効果データは、直前のフレームにおける物理的な特殊効果データを更新することによって取得される。
【0023】
ステップ204では、シーン管理クラスをインスタンス化して得られた第1ターゲットインスタンスを取得し、シーン管理クラスは、パーティクルエミッションプラグインによって提供されたターゲットベースクラスから継承するものである。
【0024】
ターゲットベースクラスは、パーティクルエミッションプラグインによって提供されたベースクラス集合におけるデータインターフェースを定義するベースクラスであり、ターゲットベースクラスは、抽象的なデータインターフェースクラスであり、当該データインターフェースクラスには、パーティクルシミュレーションツールを呼び出すための抽象メソッドが含まれる。ターゲットベースクラスは、親クラスとして複数のサブクラスを派生させることができ、各サブクラスは、ターゲットベースクラスによって定義されたデータインターフェースを実現する際に、当該データインターフェースにおける抽象メソッドを書き換えることにより、パーティクルシミュレーションツールの具体的なデータインターフェースを呼び出す。シーン管理クラスは、ターゲットベースクラスから継承するものであり、即ち、シーン管理クラスは、ターゲットベースクラスから派生したサブクラスであり、シーン管理クラスは、ターゲットベースクラスによって定義されたデータインターフェースを実現することにより、パーティクルシミュレーションツールのシーン管理インターフェースを呼び出す。パーティクルシミュレーションツールとは、パーティクルシミュレーションを実現できるプログラムモジュールであり、パーティクルシミュレーションツールは、シミュレーション過程においてパーティクルの運動状態情報を計算することができる。第1ターゲットインスタンスは、シーン管理クラスをインスタンス化して得られたものであり、シーン管理クラスの方法によってパーティクルシミュレーションツールのシーン管理インターフェースを呼び出すことを実現することができる。
【0025】
一実施形態において、パーティクルシミュレーションツールは、例えば、physionツールであってもよく、Physionに用いられるアルゴリズムは、MPM(Material Point Method)であり、統一アルゴリズムフレームワークに基づいて、例えば、雪、煙、水、石油、筋肉、髪などの様々な物理的な材質のシミュレーションを行うことができる。同時に、Physionは、MPMを全てCUDA(Compute Unified Device Architecture)ラインで実現し、GPU(graphics processing unit)で並列計算を行い、計算効率を大幅に向上させる。
【0026】
具体的には、コンピュータ機器は、パーティクルエミッションプラグインにおける第1ターゲットインスタンスを取得することができ、当該第1ターゲットインスタンスは、物理的な特殊効果の作成過程においてシーン管理クラスをインスタンス化して生成されたものであり、シーン管理クラスをパーティクルエミッションプラグインにインスタンス化することにより、パーティクルエミッションプラグインの実行プロセスにおいてパーティクルシミュレーションツールのシーン管理インターフェースを呼び出して、物理的な特殊効果パーティクルのシミュレーション計算を実現することができる。
【0027】
一実施形態において、第1ターゲットインスタンスは、まず、パーティクルエミッションプラグインによって提供されたベースクラス集合から、パーティクルシミュレーションツールによって提供されたデータインターフェースを呼び出すためのベースクラスを決定して、ターゲットベースクラスを取得し、次に、ターゲットベースクラスから継承するシーン管理クラスを作成し、最後に、シーン管理クラスをインスタンス化して、第1ターゲットインスタンスを取得するステップによって生成される。
【0028】
ステップ206では、第1ターゲットインスタンスを介して、パーティクルエミッションプラグインに集積されるパーティクルシミュレーションツールのシーン管理インターフェースを呼び出して、パーティクルシミュレーションツールのシーンマネージャーにおいて、直前のフレームにおける物理的な特殊効果データに基づいて、物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算する。
【0029】
パーティクルシミュレーションツールがパーティクルエミッションプラグインに集積されるとは、パーティクルシミュレーションツールに対応する基礎ライブラリをコンパイルして得られたdll(Dynamic Link Library)ファイル及びlib(library、スタティックリンクライブラリ)ファイル、並びに全てのヘッダファイルをパーティクルエミッションプラグインに集積することを指す。それにより、パーティクルエミッションプラグインにおいてパーティクルシミュレーションツールの機能を直接呼び出すことができる。シーン管理インターフェースとは、パーティクルシミュレーションツールのシーンマネージャーに対応するデータインターフェースであり、シーン管理インターフェースを介してシーンマネージャーを呼び出すことができる。シーンマネージャーは、パーティクルシミュレーションツールにおいて物理的な特殊効果のシーンを管理して、シーンにおける物理的な特殊効果パーティクルに対するシミュレーション計算を実現するために用いられる。
【0030】
具体的には、コンピュータ機器は、第1ターゲットインスタンスを取得した後、第1ターゲットインスタンスを介して、パーティクルエミッションプラグインに集積されるパーティクルシミュレーションツールのシーン管理インターフェースを呼び出して、パーティクルシミュレーションツールのシーンマネージャーにおいて物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算することができ、計算の過程において直前のフレームにおける物理的な特殊効果データに基づいて計算することができる。
【0031】
一実施形態において、コンピュータ機器がパーティクルシミュレーションツールのシーンマネージャーにおいて、直前のフレームにおける物理的な特殊効果データに基づいて、物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算するステップは、具体的には、物質点法(material point method、MPM)を用いて計算することができる。物質点法は、オイラー法とラグランジュ法とを組み合わせた新しい計算方法であり、オイラー法における対流項を解く必要がある難題を回避するとともに、ラグランジュ法における大変形を解析する際に直面するグリッド歪み及び負の体積の問題を解決する。物質点法において、パーティクルは、シミュレーションオブジェクトとして1組の背景グリッド(background grid)に存在し、各フレームのシミュレーション開始時にパーティクルの現在の運動状態情報を背景グリッドにマッピングして、背景グリッドにおけるグリッドノードにより計算を行って、計算が完了した後に全ての情報をパーティクルに伝送してから、パーティクルの現在の運動状態情報を更新する。
【0032】
一実施形態において、コンピュータ機器は、直前のフレームにおける物理的な特殊効果データに基づいて、物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算する場合、現在のフレームに対する計算を複数のタイムステップに分割し、1番目のタイムステップにおいて、直前のフレームにおける物理的な特殊効果データに基づいて、現在のタイムステップにおける物理的な特殊効果パーティクルの運動状態情報を計算し、そして、最後のタイムステップの計算が完了するまで、その後の各タイムステップにおいて、前のタイムステップにおける物理的な特殊効果パーティクルの運動状態情報に基づいて、現在のタイムステップにおける物理的な特殊効果パーティクルの運動状態情報を計算し、そして、最後のタイムステップにおける物理的な特殊効果パーティクルの運動状態情報を物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報とする。タイムステップとは、物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算する際の最小時間単位であり、現在のタイムステップの終了時間と直前のタイムステップの終了時間との時間差は、現在のタイムステップのステップサイズであり、タイムステップのステップサイズは、必要に応じて予め設定されてもよい。例えば、直前のフレームと現在のフレームとの間の時間間隔は、t1であり、t1を30個のタイムステップに等分することができ、各タイムステップのステップサイズは、t1/30である。
【0033】
ステップ208では、現在のフレームにおける運動状態情報に基づいて、直前のフレームにおける物理的な特殊効果データを更新して、現在のフレームにおける物理的な特殊効果をレンダリングして取得する。
【0034】
直前のフレームにおける物理的な特殊効果データには、直前のフレームにおける物理的な特殊効果パーティクルの運動状態情報が含まれる。現在のフレームにおける物理的な特殊効果とは、現在のフレームにおける物理的な特殊効果パーティクルがシミュレーションして形成した物理的な特殊効果である。
【0035】
具体的には、コンピュータ機器は、現在のフレームにおける運動状態情報で直前のフレームにおける物理的な特殊効果データの運動状態情報を置き換えて、直前のフレームにおける物理的な特殊効果データを更新し、更新された物理的な特殊効果データを取得し、更新された物理的な特殊効果データに基づいて現在のフレームにおける物理的な特殊効果をレンダリングして取得することができる。コンピュータ機器は、さらに、現在のフレームにレンダリングされた物理的な特殊効果を表示し、物理的な特殊効果に対するシミュレーションを完了することができる。
【0036】
一実施形態において、物理的な特殊効果データを更新することは、物理的な特殊効果データにおける物理的な特殊効果パーティクルのライフ状態の更新、消滅したパーティクルの消去、生存しているパーティクルの受力状況の更新などをさらに含む。
【0037】
一実施形態において、レンダリング過程において、コンピュータ機器は、物理的な特殊効果パーティクルをテクスチャマッピングされた四角形spriteでレンダリングすることができ、低解像度又は限られた処理能力の場合、パーティクルが1つの画素としてレンダリングされる可能性があり、さらに、オフラインレンダリングの場合、1つの円球としてレンダリングされ、パーティクルの円球によって算出された等値面から非常に良い液体表面を取得することができる。また、パーティクルを3次元グリッドでレンダリングしてもよい。具体的な応用において、パーティクルエミッションプラグインがNiagaraプラグインである場合、4つのパーティクルレンダラが提供されることができ、それぞれSprite、Mesh、Ribbon、Lightを用いてパーティクルをレンダリングする。
【0038】
上記物理的な特殊効果のレンダリング方法において、パーティクルエミッションプラグインによって放出された物理的な特殊効果パーティクルの直前のフレームにおける物理的な特殊効果データを取得することにより、シーン管理クラスをインスタンス化して得られた第1ターゲットインスタンスを取得し、シーン管理クラスは、パーティクルエミッションプラグインによって提供されたターゲットベースクラスから継承するものであり、そして、第1ターゲットインスタンスを介して、パーティクルエミッションプラグインに集積されるパーティクルシミュレーションツールのシーン管理インターフェースを呼び出して、パーティクルシミュレーションツールのシーンマネージャーにおいて、直前のフレームにおける物理的な特殊効果データに基づいて物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算し、そして、現在のフレームにおける運動状態情報に基づいて、直前のフレームにおける物理的な特殊効果データを更新して、現在のフレームにおける物理的な特殊効果をレンダリングして取得し、このように、パーティクルシミュレーションツールをパーティクルエミッションプラグインに集積するため、シーン管理クラスをインスタンス化して得られた第1ターゲットインスタンスを介してパーティクルシミュレーションツールのシーン管理インターフェースを呼び出して、パーティクルシミュレーションツールのシーンマネージャーにおいて運動状態情報を算出することにより、物理的な特殊効果をレンダリングして取得し、外部からシミュレーション結果を取得することを回避し、物理的な特殊効果のレンダリング時の効率を向上させる。
【0039】
さらに、パーティクルシミュレーションツールがパーティクルエミッションプラグインに集積されるため、アニメーションフレームにおいてパーティクルの物理シミュレーションをリアルタイムに行い、シーンにおける物体とインタラクションを行うことができ、物理的な特殊効果シミュレーションの正確性を向上させ、レンダリングして得られた物理的な特殊効果をより正確かつリアルにする。
【0040】
一実施形態において、第1ターゲットインスタンスは、パーティクルエミッションプラグインによって提供されたベースクラス集合から、パーティクルシミュレーションツールによって提供されたデータインターフェースを呼び出すためのベースクラスを決定して、ターゲットベースクラスを取得するステップと、パーティクルシミュレーションツールのシーン管理インターフェースが呼び出されるように、ターゲットベースクラスから継承するシーン管理クラスを作成するステップと、シーン管理クラスをインスタンス化して、第1ターゲットインスタンスを取得するステップとによって生成される。
【0041】
ベースクラス集合には、少なくとも1つのベースクラスが含まれ、ベースクラスとは、サブクラスを派生可能なクラスを指す。パーティクルシミュレーションツールによって提供されたデータインターフェースを呼び出すためのベースクラスとは、親クラスとしてパーティクルシミュレーションツールによって提供されたデータインターフェースを呼び出すサブクラスを派生することができるベースクラスを指す。パーティクルシミュレーションツールによって提供されたデータインターフェースが呼び出されると、パーティクルシミュレーションツールにおける各機能にアクセスすることができ、パーティクルシミュレーションツールは、複数のデータインターフェースを提供することができ、異なるデータインターフェースが呼び出されると、パーティクルシミュレーションツールにおける異なる機能にアクセスし、例えば、パーティクルシミュレーションツールによって提供されたシーン管理インターフェースを呼び出すことによって、パーティクルシミュレーションツールにおけるシーンマネージャーにアクセスすることができる。
【0042】
具体的な一実施形態において、パーティクルエミッションプラグインがNiagaraプラグインであり、パーティクルシミュレーションツールがPhysionである場合、ターゲットベースクラスが、例えば、NiagaraDataInterfaceであってもよい。当該ターゲットベースクラスに含まれるメンバ関数を表1に示す。ターゲットベースクラスにおいて、メンバ関数「IsPhysionDataInterface()」を定義してPhysionに関連するインターフェースの増加を実現することができ、PostInitProperties()は変数を初期化するためのものであり、GetFunctionsはNiagaraDataInterfaceにおけるカスタマイズ関数を登録するためのものであり、GetVMExternalFunctioは登録された関数の代表を返すためのものであり、CanExecuteOnTargetはパーティクルシミュレーションをGPUで実行するように設定するためのものである。
【表1】
【0043】
具体的には、アニメーションの実行プロセスの開始前に、コンピュータ機器は、パーティクルエミッションプラグインによって提供されたベースクラス集合から、パーティクルシミュレーションツールによって提供されたデータインターフェースを呼び出すためのベースクラスを決定して、ターゲットベースクラスを取得し、さらに、当該ターゲットベースクラスから継承するサブクラスを作成し、当該サブクラスにパーティクルシミュレーションツールのシーン管理インターフェースの呼び出しを追加してターゲットベースクラスにおける抽象メソッドを書き換え、シーン管理クラスを取得し、最後に、シーン管理クラスをパーティクルエミッションプラグインにインスタンス化して、パーティクルエミッションプラグインにおいて第1ターゲットインスタンスを取得することにより、パーティクルエミッションプラグインが物理的な特殊効果のレンダリングを行う過程において、当該第1ターゲットインスタンスを取得してパーティクルシミュレーションツールのシーン管理インターフェースを呼び出して、パーティクルの運動状態情報の計算を実現することができる。
【0044】
上記実施形態において、パーティクルエミッションプラグインが、パーティクルシミュレーションツールによって提供されたデータインターフェースを呼び出すことができるベースクラスを提供するため、当該ベースクラスによって拡張してシーン管理クラスを取得することができ、さらに、シーン管理クラスをパーティクルエミッションプラグインにインスタンス化して、シーンマネージャーの呼び出しを実現し、それにより、パーティクルシミュレーションツールをパーティクルエミッションプラグインによく集積することができる。
【0045】
一実施形態において、シーン管理クラスをインスタンス化して、第1ターゲットインスタンスを取得するステップは、シーン管理クラスに対応するオブジェクトを作成して、シーン管理オブジェクトを取得するステップと、シーン管理オブジェクトをパッケージングして、第1ターゲットオブジェクトを取得するステップと、第1ターゲットオブジェクトをパーティクルエミッションプラグインの第1属性として設定して、第1ターゲットインスタンスを取得するステップとを含む。
【0046】
オブジェクトは、クラスから抽象化されたものであり、オブジェクトは、クラスの基本属性及び方法を操作して対応する問題を解決することができる。パッケージングとは、オブジェクトの属性と実装の詳細を隠蔽し、共通のアクセス方式のみを外部に提供することである。パッケージングにより、変化を隔離し、使用しやすく、再利用性を向上させ、安全性を向上させることができる。パッケージングの原則は、外部に提供する必要がない内容を全て隠蔽し、属性を全て隠蔽し、共通の方法を提供して、それにアクセスすることである。
【0047】
具体的には、コンピュータ機器は、newオペレータによりシーン管理クラスに対応するオブジェクトを作成して、シーン管理オブジェクトを取得し、次に、所定のパッケージング方式でシーン管理オブジェクトのコードをパッケージングして、第1ターゲットオブジェクトを取得し、最後に、第1ターゲットオブジェクトをパーティクルエミッションプラグインの第1属性として設定し、それにより、シーン管理クラスをパーティクルエミッションプラグインにインスタンス化することを実現することができる。一実施形態において、所定のパッケージング方式は、例えば、属性をプライベートにし、パブリックなget、set方法を設定し、パラメータのある関数とない関数を設定し、最後にtostring方法を書き換えることであってもよい。newオペレータは、オブジェクトを作成するための演算子であり、その文法構造は、new constructor()であり、constructorとは、作成対象のオブジェクトに対応するクラスを指し、例えば、作成される、シーン管理クラスに対応するオブジェクトは、new NiagaraDataInterfaceScenario()であってもよい。
【0048】
一実施形態において、パーティクルエミッションプラグインがNiagaraプラグインである場合、Niagaraプラグインは、システム(system)マネージャー及びエミッタ(emitter)マネージャーを含み、コンピュータ機器は、シーン管理クラスをNiagaraのシステム(system)属性として設定することができる。
【0049】
上記実施形態において、作成されたシーン管理オブジェクトをパッケージングし、パーティクルエミッションプラグインの属性として設定するため、第1ターゲットインスタンスを取得する。設定インターフェースによって、パーティクルシミュレーションツールのシーン管理機能を呼び出してアニメーションを生成することができ、第1ターゲットインスタンスの安全性及び利用可能性を向上させる。
【0050】
一実施形態において、第1ターゲットオブジェクトをパーティクルエミッションプラグインの第1属性として設定して、第1ターゲットインスタンスを取得するステップの後、方法は、パーティクルエミッションプラグインの設定インターフェースを介して、第1属性の属性パラメータを設定して得られた第1属性値を取得するステップと、第1属性値を第1ターゲットインスタンスに対応する変数値とするステップと、第1ターゲットインスタンスに対応する変数値により、シーン管理インターフェースに対応するシーンマネージャーのパラメータを設定し、設定後の、パーティクルシミュレーションツールにおいてシーン管理を行うためのシーンマネージャーを取得するステップと、をさらに含む。
【0051】
パーティクルエミッションプラグインの設定インターフェースとは、パーティクルエミッションプラグインによって提供された、パーティクルエミッションプラグインの各属性の属性パラメータを設定することができるインターフェースを指し、当該インターフェースを介して、パーティクルシミュレーションツールにおけるパッケージングされた各機能を呼び出すことができる。第1ターゲットインスタンスに対応する変数値とは、第1ターゲットインスタンスにおけるメンバ変数の具体的な数値を指す。第1属性の属性パラメータとは、シーンに関するパラメータ値であり、例えば、シーン安定性、フレームレートなどであってもよい。
【0052】
具体的には、パーティクルエミッションプラグインの設定インターフェースを介して第1属性の属性パラメータを設定する場合、コンピュータ機器は、当該設定インターフェースを介して設定した各属性パラメータの属性値を取得し、第1属性値により第1ターゲットインスタンスにおける対応するメンバ変数に値を与えて、第1ターゲットインスタンスに対応する変数値を取得し、そして、第1ターゲットインスタンスに対応する変数値をシーン管理インターフェースに伝送して、シーン管理インターフェースに対応するシーンマネージャーを設定し、設定後のシーンマネージャーを取得することができる。当該シーンマネージャーは、パーティクルシミュレーションツールにおいてシーン管理を行うためのものであり、設定された属性値に合わせて、シーンにおいて物理的な特殊効果データの計算を行うことを含む。即ち、直前のフレームにおける物理的な特殊効果パーティクルの物理的な特殊効果データに基づいて、現在のフレームにおける運動状態情報を計算する。
【0053】
例を挙げて説明すると、図3に示すように、一実施形態において、パーティクルエミッションプラグインによって提供された、第1属性を設定する設定インターフェースである。図3に示すように、第1属性は、シーンマネージャーに対応するものであり、パーティクルエミッションプラグインの設定インターフェースにおいて、第1属性の様々な属性パラメータ、例えば、図3におけるフレームレート、反転率、安定性などを設定することができる。
【0054】
上記実施形態において、パーティクルエミッションプラグインの設定インターフェースを介して、第1属性の属性パラメータを設定して得られた第1属性値を取得することができるため、設定インターフェースにおいて簡単な設定操作を行えば、シーン管理インターフェースに対応するシーンマネージャーのパラメータを設定して、設定後の、パーティクルシミュレーションツールにおいてシーン管理を行うためのシーンマネージャーを取得することができ、操作が簡単で便利であり、アンダーライング設定プロセスを理解する必要がないため、設定効率を向上させる。
【0055】
一実施形態において、現在のフレームにおける運動状態情報に基づいて、直前のフレームにおける物理的な特殊効果データを更新して、現在のフレームにおける物理的な特殊効果をレンダリングして取得するステップは、ジオメトリ管理クラスをインスタンス化して得られた第2ターゲットインスタンスを取得するステップであって、ジオメトリ管理クラスは、パーティクルエミッションプラグインによって提供されたターゲットベースクラスから継承するものである、ステップと、第2ターゲットインスタンスを介してパーティクルシミュレーションツールのジオメトリ管理インターフェースを呼び出して、パーティクルシミュレーションツールにおけるジオメトリマネージャーによって現在のフレームにおける運動状態情報をターゲットビデオメモリに書き込み、ターゲットビデオメモリにおいて、現在のフレームにおける運動状態情報に基づいて、直前のフレームにおける物理的な特殊効果データを更新して、現在のフレームにおける物理的な特殊効果をレンダリングして取得するステップと、を含む。
【0056】
ジオメトリ管理クラスは、ターゲットベースクラスから継承するサブクラスであり、ジオメトリ管理クラスは、ターゲットベースクラスによって定義されたデータインターフェースを実現することにより、パーティクルシミュレーションツールのジオメトリ管理インターフェースを呼び出す。ジオメトリ管理インターフェースとは、パーティクルシミュレーションツールのジオメトリマネージャーンによって提供されたデータインターフェースを指し、ジオメトリ管理インターフェースを介してジオメトリマネージャーを呼び出すことができる。ジオメトリマネージャーは、パーティクルシミュレーションツールにおいて、物体の材料、密度、脆性などの物理的属性と、物体を構成するパーティクルの物理的な特殊効果データとを含む物理的な特殊効果における物体の属性を管理する。第2ターゲットインスタンスは、ジオメトリ管理クラスをインスタンス化して得られるため、第2ターゲットインスタンスを介して、ジオメトリ管理クラスの方法を実現して、ジオメトリマネージャーのジオメトリ管理インターフェースを呼び出すことができる。ターゲットビデオメモリとは、パーティクルエミッションプラグインのレンダリングデータに割り当てられたデータバッファ領域を指す。
【0057】
具体的には、現在のフレームにおける運動状態情報は、パーティクルシミュレーションツールにおいて計算して得られるものであり、得られた運動状態情報がターゲットビデオメモリとは異なるデータバッファ領域に記憶され、ジオメトリマネージャーは、パーティクルの物理的な特殊効果データを管理することができるため、ジオメトリマネージャーにより運動状態情報をターゲットビデオメモリに書き込むことができる。具体的には、コンピュータ機器は、現在のフレームにおける運動状態情報に基づいて直前のフレームにおける物理的な特殊効果データを更新して現在のフレームにおける物理的な特殊効果をレンダリングして取得する場合、ジオメトリ管理クラスをインスタンス化して得られた第2ターゲットインスタンスを取得し、そして、第2ターゲットインスタンスを介してパーティクルシミュレーションツールのジオメトリ管理インターフェースを呼び出すことにより、当該ジオメトリ管理インターフェースに対応するジオメトリマネージャーにより現在のフレームにおける運動状態情報をターゲットビデオメモリに書き込み、ターゲットビデオメモリには、直前のフレームにおける物理的な特殊効果データが記憶されており、ジオメトリマネージャーにより現在のフレームにおける運動状態情報をターゲットビデオメモリに書き込んだ後、ターゲットビデオメモリにおける直前のフレームに対応する物理的な特殊効果データを更新して、更新された物理的な特殊効果データを取得することができ、当該更新された物理的な特殊効果データは、現在のフレームにおける物理的な特殊効果をレンダリングして取得するために用いられることができる。
【0058】
上記実施形態において、第2ターゲットインスタンスを介してパーティクルシミュレーションツールのジオメトリ管理インターフェースを呼び出して、パーティクルシミュレーションツールにおけるジオメトリマネージャーにより現在のフレームにおける運動状態情報をターゲットビデオメモリに書き込み、それにより、パーティクルシミュレーションツールから所望のレンダリングデータを迅速に取得し、レンダリング効率を向上させることができる。
【0059】
一実施形態において、第2ターゲットインスタンスは、パーティクルシミュレーションツールのジオメトリ管理インターフェースが呼び出されるように、ターゲットベースクラスから継承するジオメトリ管理クラスを作成するステップと、ジオメトリ管理クラスに対応するオブジェクトを作成して、ジオメトリ管理オブジェクトを取得するステップと、ジオメトリ管理オブジェクトをパッケージングして、第2ターゲットオブジェクトを取得するステップと、第2ターゲットオブジェクトをパーティクルエミッションプラグインの第2属性として設定して、第2ターゲットインスタンスを取得するステップとによって生成される。
【0060】
具体的には、アニメーションの実行プロセスの開始前に、コンピュータ機器は、パーティクルエミッションプラグインによって提供されたベースクラス集合から、パーティクルシミュレーションツールによって提供されたデータインターフェースを呼び出すためのベースクラスを決定して、ターゲットベースクラスを取得し、さらに、当該ターゲットベースクラスから継承するサブクラスを作成し、当該サブクラスにパーティクルシミュレーションツールのジオメトリ管理インターフェースの呼び出しを追加してターゲットベースクラスにおける抽象メソッドを書き換え、ジオメトリ管理クラスを取得し、最後に、ジオメトリ管理クラスをパーティクルエミッションプラグインにインスタンス化して、パーティクルエミッションプラグインにおいて第2ターゲットインスタンスを取得することにより、パーティクルエミッションプラグインにより物理的な特殊効果のレンダリングを行う過程において、当該第2ターゲットインスタンスを取得してパーティクルシミュレーションツールのジオメトリ管理インターフェースを呼び出し、物理的な特殊効果における物体の属性の管理を実現することができる。
【0061】
インスタンス化の過程において、コンピュータ機器は、newオペレータによってジオメトリ管理クラスに対応するオブジェクトを作成して、ジオメトリ管理オブジェクトを取得し、次に、所定のパッケージング方式でジオメトリ管理オブジェクトのコードをパッケージングして、第2ターゲットオブジェクトを取得し、最後に、第2ターゲットオブジェクトをパーティクルエミッションプラグインの第2属性として設定し、それにより、ジオメトリ管理クラスをパーティクルエミッションプラグインにインスタンス化することを実現することができる。
【0062】
一実施形態において、パーティクルエミッションプラグインがNiagaraプラグインである場合、Niagaraプラグインは、システム(system)マネージャー及びエミッタ(emitter)マネージャーを含み、コンピュータ機器は、ジオメトリ管理クラスをNiagaraのエミッタ(emitter)属性として設定することができる。
【0063】
上記実施形態において、パーティクルエミッションプラグインが、パーティクルシミュレーションツールによって提供されたデータインターフェースを呼び出すことができるベースクラスを提供するため、当該ベースクラスによって拡張してジオメトリ管理クラスを取得することができ、さらに、ジオメトリ管理クラスをパーティクルエミッションプラグインにインスタンス化して、ジオメトリマネージャーの呼び出しを実現し、それにより、パーティクルシミュレーションツールをパーティクルエミッションプラグインによく集積することができ、また、作成されたジオメトリ管理オブジェクトをパッケージングし、かつパーティクルエミッションプラグインの属性として設定して、第2ターゲットインスタンスを取得するため、テクニカルアーティストは、プログラマーの協力を必要とせずに、設定インターフェースを介してパーティクルシミュレーションツールのジオメトリ管理機能を直接呼び出すことによって、アニメーションを作成することができ、第2ターゲットインスタンスの安全性と利用可能性を向上させる。
【0064】
一実施形態において、第2ターゲットオブジェクトをパーティクルエミッションプラグインの第2属性として設定して、第2ターゲットインスタンスを取得するステップの後、方法は、パーティクルエミッションプラグインの設定インターフェースを介して、第2属性の属性パラメータを設定して得られた第2属性値を取得するステップと、第2属性値を第2ターゲットインスタンスに対応する変数値とするステップと、第2ターゲットインスタンスに対応する変数値により、ジオメトリ管理インターフェースに対応するジオメトリマネージャーを設定して、設定後の、パーティクルシミュレーションツールにおいてジオメトリ管理を行うためのジオメトリマネージャーを取得するステップと、をさらに含む。
【0065】
パーティクルエミッションプラグインの設定インターフェースとは、パーティクルエミッションプラグインによって提供された、パーティクルエミッションプラグインの各属性の属性パラメータを設定することができるインターフェースを指し、当該インターフェースを介してパーティクルシミュレーションツールの各機能をパッケージングして呼び出すことができる。第2ターゲットインスタンスに対応する変数値とは、第2ターゲットインスタンスにおけるメンバ変数の具体的な数値を指す。第2属性の属性パラメータとは、物理的な特殊効果における物体の属性に関するパラメータ値であり、例えば、物体の材質、密度などであってもよい。
【0066】
具体的には、パーティクルエミッションプラグインの設定インターフェースを介して第2属性の属性パラメータを設定する場合、コンピュータ機器は、当該設定インターフェースを介して設定した各属性パラメータの属性値を取得し、第2属性値により第2ターゲットインスタンスにおける対応するメンバ変数に値を与えて、第2ターゲットインスタンスに対応する変数値を取得し、そして、第2ターゲットインスタンスに対応する変数値をジオメトリ管理インターフェースに伝送して、ジオメトリ管理インターフェースに対応するジオメトリマネージャーを設定して、設定後のジオメトリマネージャーを取得することができ、当該ジオメトリマネージャーは、パーティクルシミュレーションツールにおいて物理的な特殊効果における物体の属性を管理するためのものである。
【0067】
例を挙げて説明すると、図4に示すように、一実施形態において、パーティクルエミッションプラグインにより第2属性を設定する設定インターフェースである。図4に示すように、第2属性は、ジオメトリマネージャーに対応するものであり、パーティクルエミッションプラグインの設定インターフェースにおいて第2属性の様々な属性パラメータ、例えば、図4における密度、材質、材料モデル、硬度などを設定することができる。
【0068】
上記実施形態において、パーティクルエミッションプラグインの設定インターフェースを介して、第2属性の属性パラメータを設定して得られた第2属性値を取得することができるため、設定インターフェースにおいて簡単な設定操作を行えば、ジオメトリ管理インターフェースに対応するジオメトリマネージャーのパラメータを設定して、設定後の、パーティクルシミュレーションツールにおいてジオメトリ管理を行うためのジオメトリマネージャーを取得することができ、操作が簡単で便利であり、アンダーライング設定プロセスを理解する必要がないため、設定効率を向上させる。
【0069】
一実施形態において、上記方法は、境界条件管理クラスをインスタンス化して得られた第3ターゲットインスタンスを取得するステップであって、境界条件管理クラスは、パーティクルエミッションプラグインによって提供されたターゲットベースクラスから継承するものである、ステップと、第3ターゲットインスタンスを介してパーティクルシミュレーションツールの境界条件管理インターフェースを呼び出して、パーティクルシミュレーションツールの境界条件マネージャーにおいてターゲット境界条件を取得するステップとをさらに含み、パーティクルシミュレーションツールのシーンマネージャーにおいて、直前のフレームにおける物理的な特殊効果データに基づいて、物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算するステップは、パーティクルシミュレーションツールのシーンマネージャーにおいて、直前のフレームにおける物理的な特殊効果データ及びターゲット境界条件に基づいて、物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算するステップを含む。
【0070】
境界条件管理クラスは、ターゲットベースクラスから継承するサブクラスであり、境界条件管理クラスは、ターゲットベースクラスによって定義されたデータインターフェースを実現することにより、パーティクルシミュレーションツールの境界条件管理インターフェースを呼び出す。境界条件管理インターフェースとは、パーティクルシミュレーションツールの境界条件マネージャーによって提供されたインターフェースを指し、境界条件管理インターフェースを介して境界条件マネージャーを呼び出すことができる。境界条件マネージャーは、パーティクルシミュレーションツールにおいて、シーンにおける境界条件を管理するためのものである。境界条件は、即ち、符号付き距離場(Signed Distance Fields、SDF)であり、パーティクルシミュレーションツールにおいて、シミュレーションに参加して、パーティクルと衝突することができる物体である。境界条件は、地面、静止体及びスケルタルアニメーションの3つのタイプを含み、地面、静止体は、静的であり、スケルタルアニメーションは、動的であり、パーティクルと比較すると、SDFの位置変化が動力学的に計算されず、予め固定されるか(静的)又はFBXモデルによって駆動される(動的)という点で相違する。ターゲット境界条件とは、所定の境界条件パラメータに対応する境界条件である。第3ターゲットインスタンスは、境界条件管理クラスをインスタンス化して得られるため、第3ターゲットインスタンスを介して、境界条件管理クラスの方法を実現して境界条件管理インターフェースを呼び出すことにより、境界条件の管理を実現することができる。
【0071】
具体的には、衝突効果をシミュレーションする必要がある物理的な特殊効果において、ターゲット境界条件に対応するパラメータを予め設定することができ、それにより、アニメーション実行中に、コンピュータ機器は、境界条件管理クラスをインスタンス化して得られた第3ターゲットインスタンスを取得することができ、第3ターゲットインスタンスを介してパーティクルシミュレーションツールの境界条件管理インターフェースを呼び出して、境界条件マネージャーにおいて、ターゲット境界条件に対応するパラメータに基づいて、ターゲット境界条件を取得する。ターゲット境界条件を取得したため、物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算する際に、ターゲット境界条件をシーンマネージャーに登録することができ、シーンマネージャーにおいて、直前のフレームにおける物理的な特殊効果データ及びターゲット境界条件に基づいて、物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算する。例を挙げると、ターゲット境界条件が地面であると仮定すると、設定時に当該境界条件のソースパラメータが「plane actor(平面物体)」であると指定することができるため、境界条件マネージャーにおいて、シーンにおける「plane actor(平面物体)」を地面とすることができる。
【0072】
上記実施形態において、第3ターゲットインスタンスを介してパーティクルシミュレーションツールの境界条件管理インターフェースを呼び出して、境界条件マネージャーにおいてターゲット境界条件を取得することにより、シーンマネージャーにおいて衝突過程の計算をシミュレーションすることができ、シミュレーションによって得られた物理的な特殊効果を多様化することができる。
【0073】
一実施形態において、第3ターゲットインスタンスは、パーティクルシミュレーションツールの境界条件管理インターフェースが呼び出されるように、ターゲットベースクラスから継承する境界条件管理クラスを作成するステップと、境界条件管理クラスから継承する、タイプ設定パラメータに対応するターゲット派生クラスを作成し、ターゲット派生クラスをインスタンス化して、第3ターゲットインスタンスを取得するステップとによって生成され、タイプ設定パラメータは、パーティクルエミッションプラグインの設定インターフェースを介して取得された、境界条件マネージャーのタイプを設定して得られたパラメータである。
【0074】
本願の実施形態において、パーティクルシミュレーションツールによって提供されたデータインターフェースが呼び出されると、パーティクルシミュレーションツールにおける各機能にアクセスすることができ、パーティクルシミュレーションツールは、複数のデータインターフェースを提供することができ、異なるデータインターフェースが呼び出されると、パーティクルシミュレーションツールにおける異なる機能にアクセスし、例えば、パーティクルシミュレーションツールにおける境界条件マネージャーにアクセスする必要がある場合、パーティクルシミュレーションツールによって提供された境界条件管理インターフェースを呼び出すことによって実現することができる。境界条件マネージャーは、設定パラメータに対応する境界条件の生成を含む境界条件の管理のためのものである。
【0075】
タイプ設定データは、境界条件マネージャーのタイプを表すデータである。異なる境界条件は、異なる境界条件マネージャーに対応し、例えば、地面境界条件は、地面境界条件マネージャーによって管理される。複数の異なるタイプの境界条件マネージャーを必要とする場合、複数のタイプの設定パラメータを設定することにより、異なるタイプ設定パラメータに対して異なるターゲット派生クラスを取得することができる。パーティクルエミッションプラグインがNiagaraであることを例として、Niagara Systemにおいて、Sdfが外部入力としてしか使用できないため、ユーザは、Sdfを衝突体として追加しようとする場合、対応するタイプのNiagaraDataInterfaceSdfをUser Exposedに追加する必要があり、例えば、それぞれ地面境界条件(GroudSdf)、スケルタルアニメーション境界条件(SkeletalMeshSdf)及び静止体境界条件(StaticMeshSdf)の3つの異なるタイプのタイプ設定パラメータを設定することができる。
【0076】
具体的には、アニメーションの実行プロセスの開始前に、コンピュータ機器は、パーティクルエミッションプラグインによって提供されたベースクラス集合から、パーティクルシミュレーションツールによって提供されたデータインターフェースを呼び出すためのベースクラスを決定して、ターゲットベースクラスを取得し、さらに、ターゲットベースクラスから継承するサブクラスを作成し、当該サブクラスにパーティクルシミュレーションツールの境界条件管理インターフェースの呼び出しを追加してターゲットベースクラスにおける抽象メソッドを書き換え、境界条件管理クラスを取得する。境界条件マネージャーが異なるタイプを有するため、境界条件管理クラスに基づいてタイプ設定パラメータに対応するターゲット派生クラスを作成する必要があり、最後に、ターゲット派生クラスをパーティクルエミッションプラグインにインスタンス化して、パーティクルエミッションプラグインにおいて第3ターゲットインスタンスを取得する。それにより、パーティクルエミッションプラグインにより物理的な特殊効果のレンダリングを行う過程において、当該第3ターゲットインスタンスを取得してパーティクルシミュレーションツールにおける当該第3ターゲットインスタンスタイプに対応する境界条件管理インターフェースを呼び出して、パーティクルの衝突時の運動状態情報の計算を実現することができる。
【0077】
上記実施形態において、パーティクルエミッションプラグインが、パーティクルシミュレーションツールによって提供されたデータインターフェースを呼び出すことができるベースクラスを提供するため、当該ベースクラスによって拡張して境界条件管理クラスを取得することができ、さらに、境界条件管理クラスに基づいて、異なる派生クラスを派生してパーティクルエミッションプラグインにインスタンス化することができ、異なるタイプの境界条件マネージャーの呼び出しを実現し、それにより、パーティクルシミュレーションツールをパーティクルエミッションプラグインによく集積することができる。
【0078】
一実施形態において、ターゲット派生クラスをインスタンス化して、第3ターゲットインスタンスを取得するステップは、ターゲット派生クラスに対応するオブジェクトを作成して、ターゲット境界条件管理オブジェクトを取得するステップと、ターゲット境界条件管理オブジェクトをパッケージングして、第3ターゲットオブジェクトを取得するステップと、第3ターゲットオブジェクトをパーティクルエミッションプラグインの第3属性として設定して、第3ターゲットインスタンスを取得するステップと、を含む。
【0079】
具体的には、インスタンス化の過程において、コンピュータ機器は、newオペレータによってターゲット派生クラスに対応するオブジェクトを作成して、ターゲット境界条件管理オブジェクトを取得し、次に、所定のパッケージング方式でターゲット境界条件管理オブジェクトのコードをパッケージングして、第3ターゲットオブジェクトを取得し、最後に、第3ターゲットオブジェクトをパーティクルエミッションプラグインの第3属性として設定し、それにより、ターゲット派生クラスをパーティクルエミッションプラグインにインスタンス化することを実現することができる。
【0080】
一実施形態において、パーティクルエミッションプラグインがNiagaraプラグインである場合、Niagaraプラグインは、システム(system)マネージャー及びエミッタ(emitter)マネージャーを含み、コンピュータ機器は、ターゲット派生クラスをNiagaraのシステム(system)属性として設定することができる。
【0081】
上記実施形態において、作成されたターゲット境界条件管理オブジェクトをパッケージングし、かつパーティクルエミッションプラグインの属性として設定して、第3ターゲットインスタンスを取得するため、テクニカルアーティストは、プログラマーの協力を必要とせずに、設定インターフェースを介してパーティクルシミュレーションツールの境界条件管理機能を直接呼び出すことができ、第3ターゲットインスタンスの安全性と利用可能性を向上させる。
【0082】
一実施形態において、第3ターゲットオブジェクトをパーティクルエミッションプラグインの第3属性として設定して、第3ターゲットインスタンスを取得するステップの後、方法は、パーティクルエミッションプラグインの設定インターフェースを介して、第3属性の属性パラメータを設定して得られた第3属性値を取得するステップと、第3属性値を第3ターゲットインスタンスに対応する変数値とするステップと、第3ターゲットインスタンスに対応する変数値により、境界条件管理インターフェースに対応する境界条件マネージャーのパラメータを設定し、設定後の、パーティクルシミュレーションツールにおいて境界条件管理を行うための境界条件マネージャーを取得するステップと、をさらに含む。
【0083】
第3属性の属性パラメータとは、物理的な特殊効果における境界条件に関するパラメータを指し、境界条件に対応する物体を指定するためのものである。
【0084】
具体的には、パーティクルエミッションプラグインの設定インターフェースを介して第3属性の属性パラメータを設定する場合、コンピュータ機器は、当該設定インターフェースを介して設定した各属性パラメータの属性値を取得し、第3属性値により第3ターゲットインスタンスにおける対応するメンバ変数に値を与えて、第3ターゲットインスタンスに対応する変数値を取得し、そして、第3ターゲットインスタンスに対応する変数値を当該第3ターゲットインスタンスに対応する境界条件管理インターフェースに伝送して、当該境界条件管理インターフェースに対応する境界条件マネージャーを設定し、設定後の境界条件マネージャーを取得することができる。当該境界条件マネージャーは、パーティクルシミュレーションツールにおいて対応するタイプの境界条件を管理するためのものである。
【0085】
なお、複数のタイプのシーンマネージャーが予め設定されている場合、各シーンマネージャーに対して、境界条件管理クラスから継承するターゲット派生クラスを作成することにより、複数のターゲット派生クラスを取得する。
【0086】
各ターゲット派生クラスに対して、対応するオブジェクトを作成して、対応するターゲット境界条件管理オブジェクトを取得し、そして、各ターゲット境界条件管理オブジェクトを全てパッケージングして、複数の第3ターゲットオブジェクトを取得し、そして、各第3ターゲットオブジェクトをそれぞれパーティクルエミッションプラグインの第3属性として設定して、複数の第3ターゲットインスタンスを取得する。設定を容易にし、設定効率を向上させるために、パーティクルエミッションプラグインの設定インターフェースを介して、各第3属性の属性パラメータを設定して得られた第3属性値を取得する場合、同一の設定インターフェースを介して取得することができる。例を挙げて説明すると、図5に示すように、一実施形態において、パーティクルエミッションプラグインにより第3属性を設定する設定インターフェースである。図5に示すように、同一のインターフェースには、地面、スケルタルアニメーション及び静止体のパラメータ設定項目が含まれ、当該インターフェースにより、地面、スケルタルアニメーション及び静止体の3つの異なるタイプの境界条件での属性値を同時に取得することができる。
【0087】
上記実施形態において、パーティクルエミッションプラグインの設定インターフェースを介して、第3属性の属性パラメータを設定して得られた第3属性値を取得することができるため、設定インターフェースにおいて簡単な設定操作を行えば、ジオメトリ管理インターフェースに対応するジオメトリマネージャーのパラメータを設定することができ、操作が簡単で便利であり、アンダーライング設定プロセスを理解する必要がないため、設定効率を向上させる。
【0088】
一実施形態において、パーティクルシミュレーションツールのシーンマネージャーにおいて、直前のフレームにおける物理的な特殊効果データに基づいて、物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算するステップは、パーティクルシミュレーションツールのシーンマネージャーにおいて、直前のフレームにおける物理的な特殊効果データに基づいて、物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算して、運動状態情報を第1ビデオメモリに書き込むステップを含み、現在のフレームにおける運動状態情報に基づいて、直前のフレームにおける物理的な特殊効果データを更新して、現在のフレームにおける物理的な特殊効果をレンダリングして取得するステップは、第1ビデオメモリから現在のフレームにおける運動状態情報を読み取り、現在のフレームにおける運動状態情報をコピーするステップと、コピーされた運動状態情報を第2ビデオメモリに書き込み、第2ビデオメモリにおいて現在のフレームにおける運動状態情報に基づいて直前のフレームにおける物理的な特殊効果データを更新するステップとを含み、第1ビデオメモリは、パーティクルエミッションプラグインのターゲットビデオメモリにおける、パーティクルシミュレーションツールに割り当てられたデータバッファ領域であり、第2ビデオメモリは、ターゲットビデオメモリにおける、第1ビデオメモリとは異なるデータバッファ領域であり、パーティクル放出データ及びパーティクルレンダリングデータを記憶するためのものである。
【0089】
本実施形態において、パーティクルエミッションプラグインは、Niagaraプラグインであり、当該プラグインに集積されたパーティクルシミュレーションツールは、physionであり、NiagaraのGPU Simモードにおいて、Niagaraは、ハイレベルシェーディング言語(High Level Shader Language、HLSLと略称される)を使用してGPU Buffer(GPUに対応するデータバッファ領域)の操作を行うとともに、Physionは、Cuda(Compute Unified Device Architecture)を使用してGPU Bufferの操作を行うが、HLSLとCUDAは、互いに呼び出すことができないため、本願の実施形態において、CUDAとCompute Shaderとの相互運用方式を使用し、間接的なインタラクションを実現する。
【0090】
具体的には、第1ビデオメモリは、physionに割り当てられてよく、当該第1ビデオメモリは、CUDAを使用して操作を行い、第2ビデオメモリは、Niagaraに割り当てられてよく、当該第2ビデオメモリは、Compute Shaderを使用して操作を行い、第1ビデオメモリ及び第2ビデオメモリ内のデータは、コピーの方式でGPU to GPUのデータ伝送を実現してもよい。第1ビデオメモリは、主にパーティクル放出データ及びパーティクルレンダリングデータを記憶し、パーティクル放出データとは、Niagaraのパーティクルエミッタ(emitter)がパーティクルを放出する時に記憶されたパーティクル属性データを指し、パーティクルレンダリングデータとは、Niagaraがレンダリングステップを行う時に記憶されたパーティクルの物理的な特殊効果データを指す。
【0091】
現在のフレームにおける運動状態情報がパーティクルシミュレーションツールのシーンマネージャーによって計算されたものであり、計算された運動状態情報がPhysionに割り当てられた第1ビデオメモリに書き込まれ、物理的な特殊効果のレンダリングがNiagaraにおいて行われるため、コンピュータ機器は、第1ビデオメモリから現在のフレームにおける運動状態情報を読み取り、現在のフレームにおける運動状態情報をコピーし、そして、コピーされた運動状態情報を第2ビデオメモリに書き込み、第2ビデオメモリにおいて現在のフレームにおける運動状態情報に基づいて、直前のフレームにおける物理的な特殊効果データを更新することができる。
【0092】
上記実施形態において、異なるビデオメモリを割り当て、データコピーの方式で異なるプログラミング言語間の相互運用を実現することにより、大量のコード修正が必要なく、PhysionをNiagaraに便利かつ迅速に集積することができ、開発効率を向上させる。
【0093】
一実施形態において、上記方法は、プリセットモデルの位置で所定数の初期パーティクルを放出し、初期パーティクルの属性情報を第2ビデオメモリに書き込むステップと、第2ビデオメモリから初期パーティクルの属性情報を読み取り、初期パーティクルの属性情報をコピーするステップと、コピーされた初期パーティクルの属性情報を第1ビデオメモリに書き込み、パーティクルシミュレーションツールにより、第1ビデオメモリにおける初期パーティクルの属性情報に基づいて、プリセットモデルの表面及び内部でサンプリングして、物理的な特殊効果シミュレーションに用いられる物理的な特殊効果パーティクルを取得するステップと、をさらに含む。
【0094】
プリセットモデルは、パーティクルの生成位置を制御するものであり、プリセットモデルは、規則的又は不規則な形状のジオメトリ、例えば、円環、球体、円錐体などの形状のモデルであってもよい。プリセットモデルは、Static Mesh(静的メッシュ)又はSkeletal Mesh(スケルタルメッシュ)などのメッシュ(mesh)であってもよく、図6に示すように、一実施形態におけるプリセットモデルの概略図であり、図6における602は、プリセットモデルである。
【0095】
なお、従来技術において、Niagaraは、メッシュでパーティクルを生成する場合、メッシュの表面でしかサンプリングできず、例えば、図6における602に示すstatic meshの表面に基づいてサンプリングして得られたパーティクルは、図7における(a)図に示され、サンプリングされたパーティクルは、頭の表面のみにあり、内部にはサンプリングパーティクルがないことが分かり、このような生成方式は、必ずしも使用ニーズを満たすものではなく、実際に使用する場合、Mesh内部にパーティクルを生成する必要がある可能性があり、例えば、雪玉粉砕の効果をシミュレーションする必要があり、雪玉の異なる部分の物理パラメータが異なることを要求する場合、1つの球体を複数のmeshに分割する必要があり、その後、各meshを1つのサンプリングボディとしてサンプリングし、1つの球体を複数のEmitterに分け、その後、各Emitterに異なる物理パラメータを設定する。これに基づいて、本願の実施形態において、Physionにおけるパーティクルサンプリング機能にアクセスし、Meshの表面及び内部の両方に対してパーティクルサンプリングを行うことができ、例えば、図6における602に示すstatic meshの表面及び内部に基づいてサンプリングして得られたパーティクルは、図7における(b)図に示される。
【0096】
本実施形態において、Niagaraプラグインによりプリセットモデルの位置で所定数の初期パーティクルを放出し、初期パーティクルの属性情報をNiagaraに割り当てられた第2ビデオメモリに書き込み、パーティクルがPhysionでサンプリングする必要があるため、第2ビデオメモリから初期パーティクルの属性情報を読み取り、初期パーティクルの属性情報をコピーし、そして、コピーされた初期パーティクルの属性情報をPhysionに割り当てられた第1ビデオメモリに書き込む必要があり、それにより、Physionによってプリセットモデルの表面及び内部でサンプリングして、物理的な特殊効果のシミュレーションに用いられる物理的な特殊効果パーティクルを取得する。
【0097】
上記実施形態において、第2ビデオメモリから初期パーティクルの属性情報を読み取り、初期パーティクルの属性情報をコピーし、そして、コピーされた初期パーティクルの属性情報を第1ビデオメモリに書き込み、パーティクルシミュレーションツールにより、第1ビデオメモリにおける初期パーティクルの属性情報に基づいて、プリセットモデルの表面及び内部でサンプリングすることにより、サンプリングして得られた物理的な特殊効果パーティクルが特殊効果のシミュレーションニーズをよりよく満たすようにする。
【0098】
一実施形態において、パーティクルシミュレーションツールのシーンマネージャーにおいて、直前のフレームにおける物理的な特殊効果データに基づいて、物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算するステップは、パーティクルシミュレーションツールのシーンマネージャーにおいて、直前のフレームにおける物理的な特殊効果データを所定の背景グリッドにマッピングするステップであって、背景グリッドには、複数のグリッドノードが含まれる、ステップと、背景グリッドにおいて、物理的な特殊効果データに基づいて、現在のフレームにおける各物理的な特殊効果パーティクルに対応するグリッドノードの運動状態情報を計算するステップと、各グリッドノードの運動状態情報を、対応する物理的な特殊効果パーティクルにマッピングして、現在のフレームにおける各物理的な特殊効果パーティクルの運動状態情報を取得するステップと、を含む。
【0099】
背景グリッド(background grid)とは、計算過程において物理的な特殊効果パーティクルを置くためのシミュレーション空間を指し、背景グリッドには、少なくとも複数のグリッドノードが含まれ、複数とは、少なくとも2つを指す。一実施形態において、背景グリッドを少なくとも1つのグリッドブロックに分割することができ、各グリッドブロックは、物理的な特殊効果パーティクルを置くための少なくとも1つのグリッドを含み、各グリッドは、少なくとも1つのグリッドノードに対応する。メモリの使用を減らすために、1つのデータ構造でグリッドブロックをまばらに記憶することができ、即ち、物理的な特殊効果パーティクルが落ちるグリッドブロックのみに、対応するメモリが割り当てられる。
【0100】
具体的には、コンピュータ機器は、形状関数により物理的な特殊効果パーティクルの直前のフレームにおける物理的な特殊効果データを所定の背景グリッドに補間することができ、ある物理的な特殊効果パーティクルについて、当該物理的な特殊効果パーティクルの物理的な特殊効果データによって補間されたグリッドノードは、当該物理的な特殊効果パーティクルの背景グリッドにおける対応するグリッドノードであり、コンピュータ機器は、さらに、背景グリッドにおいて、これらの補間情報に基づいてグリッドノードの運動状態情報を計算し、そして、計算された運動状態情報を形状関数によってグリッドノードに対応する物理的な特殊効果パーティクルに再びマッピングして、現在のフレームにおける各物理的な特殊効果パーティクルの運動状態情報を取得する。補間とは、離散データに基づいて連続関数を補間することにより、この連続曲線が全ての所定の離散データ点を通過することを指してもよい。補間は、離散関数近似の重要な方法であり、それを利用して、関数の有限個の点で取る値の状況により、関数の他の点での近似値を推定することができる。
【0101】
図8に示すように、具体的な一実施形態において、背景グリッドにより運動状態情報を計算するフローチャートである。図8に示すように、具体的には、以下のステップ1~ステップ10を含む。
【0102】
ステップ1では、物理的な特殊効果パーティクルの質量と速度を背景グリッドに補間する。
【0103】
ステップ2では、物理的な特殊効果パーティクルの体積を計算する。
【0104】
ステップ3では、計算された体積に基づいて、グリッドノードの受力値を計算する。
【0105】
ステップ4では、計算された受力値に基づいて、グリッドノードの速度、変位などの情報を計算する。
【0106】
ステップ5では、グリッドノードに対して境界条件との衝突検出を行う。
【0107】
ステップ6では、衝突検出後、グリッドノードの速度、変位などの情報を陰的に計算する。
【0108】
ステップ7では、計算して得られた情報を対応する物理的な特殊効果パーティクルにマッピングして、物理的な特殊効果パーティクルの変形勾配を更新する。
【0109】
ステップ8では、変形勾配に基づいて、物理的な特殊効果パーティクルの速度を更新する。
【0110】
ステップ9では、パーティクルに対して境界条件との衝突検出を行う。
【0111】
ステップ10では、新しいパーティクル速度に基づいて、物理的な特殊効果パーティクルの速度、位置などの運動状態情報を更新する。
【0112】
図8のフローから分かるように、シミュレーションを行う際に、各物理的な特殊効果パーティクルは、自身の質量、位置、速度、変形勾配、弾性塑性の物理パラメータなどの自身の属性値を保存し、グリッドノードは、受力状況、加速度状況、速度増分、及び境界条件(即ち、衝突体)に対する処理などを計算する必要がある。
【0113】
具体的に実施する際に、計算の正確性を確保するために、現在のフレームを複数のタイムステップに分割し、各タイムステップで運動状態情報を1回計算し、複数のタイムステップの累計時間が現在のフレームの時間になった後、物理的な特殊効果パーティクルの新しい各属性値を現在のフレームの結果として出力することができる。
【0114】
上記実施形態において、物理的な特殊効果データを背景グリッドにマッピングすることにより、パーティクルの運動状態情報を計算し、背景グリッドがパーティクルの数に対して大幅に減少するため、計算過程におけるオーバーヘッドを節約する。
【0115】
本願は、上記物理的な特殊効果のレンダリング方法を適用して、上記物理的な特殊効果のレンダリング方法によりゲームにおける物理的な特殊効果のレンダリングを実現する応用シーンをさらに提供する。具体的には、当該応用シーンにおいて、パーティクルエミッションプラグインは、Niagaraであり、当該パーティクルエミッションプラグインには、パーティクルシミュレーションツールPhysionが集積され、Niagaraは、UEにおける主力の次世代のパーティクルシステムであり、Niagaraを利用して、TA(Technical Artist)は、プログラマーの協力を必要とせずに、追加の機能を自分で作成することができ、Niagaraは、使いやすく、理解しやすい特徴を有し、Niagaraにより、アーティストは、効果を完全に制御したり、プログラミングをしたり、カスタマイズをしたり、より良いデバッグ、表示及び性能ツールを提供したり、UEの他の部分又は外部からのデータをサポートしたりすることができ、ユーザの操作を妨げない。
【0116】
本願の実施形態に係るパーティクルエミッションプラグインは、データインターフェースクラス(NiagaraDataInterface)から継承する様々なクラスを提供し、Niagaraにおいて、これらのクラスにアクセスすることができ、それらをNiagara System、Niagara Emitterにインスタンス化することにより、Niagaraの実行プロセスにおいてPhysionを呼び出すことを実現し、さらにパーティクルに対する動力学的計算の機能を実現する。図9に示すように、当該パーティクルエミッションプラグインのクラスの関係図であり、当該クラスの関係図には主なクラスが含まれ、データインターフェースクラス(NiagaraDataInterface)は、ターゲットベースクラスであり、当該ターゲットベースクラスからシーン管理クラス(NiagaraDataInterfaceScenario)、ジオメトリ管理クラス(NiagaraDataInterfaceGeometry)及び境界条件管理クラス(NiagaraDataInterfaceSdf)の3つのサブクラスが派生され、境界条件管理クラス(NiagaraDataInterface Sdf)から静止体に対応する第1派生クラス(NiagaraDataInterfaceStaticMeshSdf)、スケルタルアニメーションに対応する第2派生クラス(NiagaraDataInterfaceSkeletalMeshSdf)及び地面に対応する第3派生クラス(NiagaraDataInterfaceGroundSdf)の3つのサブクラスが派生され、それぞれ以下に説明する。
【0117】
1、NiagaraDataInterfaceScenario
【0118】
本願の実施形態に係るパーティクルエミッションプラグインにおいて、クラスNiagaraDataInterfaceScenarioは、PhysionにおけるScenario、即ち、現在シミュレーションのシーンマネージャーに対応する。Niagaraにおいて、1つのNiagara Systemは、1つのNiagaraDataInterfaceScenarioに対応し、即ち、NiagaraDataInterfaceScenarioを1つのNiagara Systemの唯一の属性とし、1つのNiagara Systemにおける全てのパーティクルは、(異なるEmitterに属しても)互いに衝突してインタラクションすることができ、異なるNiagara Systemにおけるパーティクルは、互いに隔離され、互いに影響することができない。
【0119】
2、NiagaraDataInterfaceGeometry
【0120】
本願の実施形態に係るパーティクルエミッションプラグインにおいて、クラスNiagaraDataInterfaceGeometryは、PhysionにおけるジオメトリマネージャーGeometryに対応し、Niagaraにおいて、1つのNiagara Emitterは、1つのNiagaraDataInterfaceGeometryに対応し、即ち、NiagaraDataInterfaceGeometryを1つのNiagara Emitterの唯一の属性とし、同一のEmitterのパーティクルは、同一セットのパラメータを用いて初期化され、1つのSystemは、複数のEmitter、即ち、複数のGeometryを含んでもよく、シミュレーション開始時、Scenarioの初期化段階において、各Emitterのデータが取得され、SystemのScenarioの初期化が完了する。
【0121】
3、NiagaraDataInterfaceSdf
【0122】
本願の実施形態に係るパーティクルエミッションプラグインにおいて、NiagaraDataInterfaceSdfは、境界条件のベースクラスとして、複数の異なる用途のサブクラスを派生し、以下のサブクラス1)~サブクラス3)を含む。
【0123】
1)NiagaraDataInterfaceStaticMeshSdf
【0124】
当該サブクラスは、シーンにおけるStatic Mesh Componentを含むActorを入力とすることを実現することができ、PhysionがそのStatic Meshをサンプリングして、衝突計算に参加可能なSDFフォーマットデータを取得し、Scenarioに入力して、シミュレーションの場合に静的な境界条件とする。
【0125】
2)NiagaraDataInterfaceSkeletalMeshSdf
【0126】
当該サブクラスは、シーンにおけるSkeletal Mesh Componentを含むActorを入力とし、Physionが各フレームにおいて現在のフレーム状態でのSkeletal Meshをサンプリングして、衝突計算に参加可能なSDFフォーマットデータを取得し、Scenarioに入力し、Static Mesh Sdfに比べて、Skeletal Mesh Sdfは、各フレームが更新される必要があり、シミュレーションの場合に運動状態での境界条件とする。
【0127】
3)NiagaraDataInterfaceGroundSdf
【0128】
当該サブクラスで得られた境界条件は、シーンにおいて一般的にPlane Actorとして指定され、無限に延在する平面とし、パーティクルがこの平面を通過できず、一般的に地面として使用できる。
【0129】
また、Sdfは、シミュレーションの場合に外部入力としてしか使用できず、シーンにおけるActorをシーンにおけるNiagara Componentにマウントし、Niagara Systemにおいてパーティクルをコンパイルするしかなく、Sdfを導入してパーティクルと衝突することができない。
【0130】
さらに、当該応用シーンにおいて、Physionにおける各機能をパッケージングし、対応する追加可能な属性をNiagaraの設定インターフェースに追加し、既に作成されたモジュールスクリプトを対応するNiagaraにおいて呼び出すことにより、NiagaraへのPhysionの集積を実現する。図10に示すように、Niagaraが設定インターフェースにおいて各モジュールを表示する概略図であり、当該設定インターフェースは、主にNiagaraSystem(システム)及びNiagaraEmitter(エミッタ)の2つのモジュールを含み、NiagaraSystemは、現在のシステムのマネージャーとして機能し、NiagaraEmitterは、現在のSystemにおける1つのエミッタとして機能し、NiagaraSystemモジュールは、主にシステムスポーン(system spawn)及びシステム更新(system update)の2つのモジュールを含み、NiagaraEmitterモジュールは、主にエミッタスポーン、エミッタ更新、パーティクルスポーン及びパーティクル更新の4つのモジュールを含み、異なるモジュールは、異なる段階のステップを実行するものであり、以下、これらのモジュールをそれぞれ説明する。
【0131】
1、システムスポーン(system spawn)について、当該モジュールは、以下のモジュール1)~3)を含む。
【0132】
1)シーンマネージャー設定(Set PhysionScenario)
【0133】
当該モジュールにおいて、システムの属性PhysionScenario、即ちNiagaraDataInterfaceScenarioをSystem属性とするインスタンスを設定することができ、このモジュールにおいて、PhysionScenarioの属性パラメータを設定することができ、具体的には、図3を参照することができる。
【0134】
2)シーンマネージャーリセット(NM Reset Scenario)
【0135】
当該モジュールは、Niagaraのサイクルが開始する毎に、前回のシミュレーションのデータをクリアし、Physionを初期状態にリセットし、次のシミュレーションに備えるように機能する。
【0136】
3)地面初期化(NM Init Ground Sdf)、スケルタルアニメーション初期化(NM Init Skeletal Mesh Sdf)、及び静止体初期化(NM Init Static Mesh Sdf)
【0137】
これら3つのモジュールは、それぞれ異なるタイプの境界条件を初期化するものである。具体的には、上記実施形態の説明を参照されたい。
【0138】
なお、Niagara Systemにおいて、Sdfが外部入力としてしか使用できないため、ユーザは、Sdfを衝突体として追加しようとする場合、対応するタイプのNiagaraDataInterfaceSdfをUser Exposedに追加する必要があり、User ExposedにNiagaraDataInterfaceSdfを追加した後、シーンにおいて属性における対応するパラメータを指定することができ、例えば、パーティクルと衝突してインタラクションする物体として、シーンにおけるStatic Meshを引用し、図5に示すように、図5におけるPhysionGroundSdfは、シーンにおける平面を地面として指定し、PhysionSkeletalMeshSdfは、シーンにおける爬虫類を、スケルタルアニメーションを指定した物体として指定する。
【0139】
要するに、System Spawn段階において、主要な役割は、Scenarioにおける各パラメータをリセットしてから、Sdfを初期化することであるが、他の内容は、System Spawn段階で初期化されず、これは、他の部分の初期化がパーティクル情報に依存する必要があり、System Spawn段階において、パーティクルがまだ生成されていないためであり、パーティクルがParticle Spawn段階において生成されるため、System Spawn段階において、パーティクルに依存しないSdfのみを初期化することができ、他の部分の初期化は、後で完了する必要がある。
【0140】
2、システム更新(System Update)について、当該モジュールは、主に以下のモジュール1)~3)を含む。
【0141】
1)シーンマネージャー初期化(NM Init Scenario)
【0142】
シーンマネージャーの初期化関数を呼び出し、ジオメトリマネージャー及び境界条件マネージャーによって初期化されたデータを利用して、全てのデータをGPU側に伝送し、他のより下層のデータ準備作業を完了することを含む。
【0143】
2)スケルタルアニメーション更新(NM Update Skeletal Mesh Sdf)
【0144】
Skeletal Meshは、アニメーション再生中に絶えず運動し、各フレームにおいてSkeletal MeshのSdf情報が更新される必要があるため、System Update段階において、このモジュールを呼び出して、シーンにおけるSkeletal Mesh Sdfを更新する必要があり、シーンにおける計算に参加するSkeletal Mesh Sdfの数に応じて、対応する数のNM Update Skeletal Mesh Sdfを追加する必要があり、かつそれぞれ対応するSkeletal Meshとして指定する。
【0145】
3)Physion更新(NM Update Physion)
【0146】
当該モジュールは、Scenarioをドライブして現在のフレームのパーティクルの物理的状態を計算し、全てのパーティクルの位置などの情報を更新し、フレーム毎に呼び出される必要があり、physionのデータバッファ領域における各物理的な特殊効果パーティクルの受力値、ライフサイクルなどを更新し、そして、パーティクルをドライブして次のフレームの運動状態をシミュレーションすることを含む。
【0147】
3、エミッタスポーン(Emitter Spawn)について、当該モジュールは、以下のモジュール1)~2)を含む。
【0148】
1)ジオメトリマネージャー設定(Set PhysionGeometry)
【0149】
当該モジュールにおいて、エミッタの属性PhysionGeometry、即ちNiagaraDataInterfaceGeometryをEmitter属性とするインスタンスを設定することができ、このモジュールにおいて、PhysionGeometryの属性パラメータを設定することができ、具体的には、図4を参照することができる。
【0150】
2)ジオメトリマネージャーリセット(NM Reset Geometry)
【0151】
当該モジュールは、Niagaraのサイクルが開始する毎に、直前のシミュレーションの場合のGeometryにおけるデータをクリアし、Geometryを初期状態にリセットし、次のシミュレーションに備えるように機能する。
【0152】
4、エミッタ更新(Emitter Update)について、当該モジュールは、主に以下のモジュール1)~3)を含む。
【0153】
1)エミッタ状態(Emitter State)及びパーティクルスポーン数設定(Spawn Burst Instantaneous)
【0154】
これら2つのモジュールは、Niagaraのネイティブモジュールであり、Emitter Stateは、いくつかのEmitterの属性パラメータを指定することができ、Spawn Burst Instantaneousは、ある時点で生成されるパーティクル数を指定する。
【0155】
2)ジオメトリマネージャー初期化(NM Init Geometry)
【0156】
当該モジュールは、Geometryを初期化するように機能し、主なプロセスは、Niagaraのパーティクルデータを記憶するデータバッファ領域を通し、パーティクル属性のレイアウト状況に基づいて、パーティクルの位置、質量、番号、ライフサイクルなどの属性を取得し、これらの属性をコピーして、GPU to GPUのデータ伝送を行って、シーンマネージャーに伝送し、Scenarioの後続の初期化作業のためにデータを準備することである。
【0157】
3)ジオメトリマネージャー更新(NM Update Geometry)
【0158】
当該モジュールは、主に、各フレームにおいて現在のジオメトリマネージャーにおける対応する物理的な特殊効果パーティクルの関連情報を更新し、1)Niagaraのデータバッファ領域における物理的な特殊効果パーティクルの受力値を読み取ることと、2)Physionにおける計算が完了した現在のフレームのパーティクル位置、速度などの情報をNiagaraのデータバッファ領域に書き込んで、レンダリングのためにデータを準備することと、3)各パーティクルのライフ状態を更新し、消滅したパーティクルをリアルタイムにカウントすることと、を含む。
【0159】
5、パーティクルスポーン(Particle Spawn)について、当該モジュールは、以下のモジュール1)~2)を含む。
【0160】
1)パーティクル初期化(Initialize Particle)
【0161】
当該モジュールは、Niagaraのネイティブモジュールであり、各パーティクルのいくつかの属性値、例えば、ライフサイクル、色、質量、レンダリング半径などを設定できるように機能する。
【0162】
このモジュールは、Niagaraのネイティブモジュールであるが、同様にPhysionシミュレーションを間接的に制御する役割を果たすことができる。質量を例として、パーティクルをNiagaraの質量に従って設定した後、Physionの初期化時に、Niagaraのデータバッファ領域に格納された各パーティクル質量のデータをコピーし、GPU to GPUの操作によりPhysionにおける各パーティクルの質量を初期化して、Physionにおけるパーティクルの質量を設定する目的を達成する。
【0163】
2)発生位置制御
【0164】
パーティクルがプリセットモデル内に生成されるように制御する。プリセットモデルは、規則的又は不規則な形状のジオメトリ、例えば、円環、球体、円錐体などの形状のモデルであってもよい。プリセットモデルは、例えばStatic Mesh(静的メッシュ)又はSkeletal Mesh(スケルタルメッシュ)などのメッシュ(mesh)であってもよい。
【0165】
6、パーティクル更新(Particle update)について、当該モジュールは、主に以下のモジュール1)~4)を含む。
【0166】
1)パーティクル状態設定(Particle State)
【0167】
当該モジュールは、Niagaraのネイティブモジュールであり、主にパーティクルの状態を設定するものであり、例えば、パーティクルのライフサイクルを設定し、パーティクルがライフサイクルの終了時に消滅するように設定する。
【0168】
2)重力(Gravity Force)
【0169】
当該モジュールは、Niagaraのネイティブモジュールであり、各パーティクルに重力効果を追加するものであり、同様に他の制御力モジュールもあり、複数の異なる制御力を追加することにより、様々なパーティクル運動効果を実現することができる。図11に示すように、重力、ライン吸引力、カールノイズ、渦巻き力を加えることにより、パーティクルの回転効果を実現することができる。
【0170】
本願の実施形態に係るパーティクルエミッションプラグインにおいて、Niagaraのネイティブ制御力モジュールのモジュールスクリプトをリユースすることにより、パーティクルに外力を加えてパーティクルの運動を制御し、Niagaraとよりよく融合するとともに、テクニカルアーティストの使用習慣に適合し、一部の効果のリユースを便利にする。
【0171】
3)受力計算(NM Physion Solve Forces and Velocity)
【0172】
実行時にパーティクル属性値を保存したBufferからNiagaraのGPU Buffer内容を取得することしかできないため、NM Physion Solve Forces and Velocityモジュールにおいて、計算して得られた合力値をパーティクル属性に保存することにより、Physionシミュレーションの場合に読み取ることができる。
【0173】
4)パーティクル消去(NM Set Deleted Particle Index)
【0174】
実行時に現在のEmitterにおける各パーティクルの生存状態をリアルタイムに取得し、フレーム毎に各パーティクルの生存情報を取得し、情報をジオメトリマネージャーに対応する1つのデータバッファ領域に書き込むように機能するため、Physion側は、フレーム毎に実際のパーティクルの生存状態を取得し、既に消滅したパーティクル情報を同期させることができる。
【0175】
図12は、一実施形態におけるパーティクルエミッションプラグインの運動中の呼び出しのフローチャートであり、図12に示すように、Physionを集積したパーティクルエミッションプラグインのため、Niagaraは、各段階においてネイティブスクリプト(即ち、Niagaraに元々あるスクリプト)を実行する以外に、いくつかの追加のステップを実行する必要があり、以下、図面を参照しながら実行中に実行される追加のステップ及びネイティブスクリプトにおける重要なステップを説明する。
【0176】
一、第1フレーム
【0177】
1、システム及び全てのエミッタのスポーン段階のロジックを実行する。
【0178】
1.1、システムスポーン段階
【0179】
1)各エミッタを初期化し、ビデオメモリ割り当てを行うとともに、シーンマネージャーを設定し、即ち、Scenarioの全ての入力パラメータを設定する。
【0180】
2)シーンマネージャーリセットについて、シーンマネージャーにおける全ての内容をリセットし、前のシミュレーション結果を削除し、新しいシミュレーションに備える。
【0181】
3)境界条件初期化について、現在のシステムにおける全ての境界条件を初期化する。
【0182】
1.2、エミッタスポーン段階
【0183】
1)ジオメトリマネージャー設定について、ジオメトリマネージャーの全ての入力パラメータを設定する。
【0184】
2)ジオメトリマネージャーリセットについて、ジオメトリマネージャーにおける全ての内容をリセットし、前の結果を削除し、新しいシミュレーションに備える。
【0185】
2、パーティクル生成
【0186】
2.1、エミッタ更新について、ネイティブスクリプトを実行し、即ち、NiagaraのネイティブモジュールSpawn Burst Instantaneousに基づいて、生成するパーティクル数を決定する。
【0187】
2.2、パーティクルスポーンについて、ネイティブスクリプトを実行し、即ち、エミッタ更新段階で指定されたパーティクル生成数に基づいて、パーティクルを生成し、そして、位置、速度などを含む新たに生成されたパーティクルの各属性値を指定し、パーティクルの属性データを割り当てられたビデオメモリに書き込む。
【0188】
二、第2フレーム
【0189】
エミッタ更新について、第1フレームにおいて既にパーティクルが生成されるため、本段階において、ジオメトリマネージャーは、エミッタに対応するビデオメモリにおける属性データを読み取り、各パーティクルの関連属性を保存したデータに対してGPU to GPUのコピーを1回行って、ジオメトリマネージャーに対応するビデオメモリにコピーして、ジオメトリマネージャーを初期化する。
【0190】
三、第3フレーム
【0191】
1、システム更新について、ジオメトリマネージャーにおけるビデオメモリが既に第2フレームで初期化されるため、第3フレームにおいて、シーンマネージャーは、ジオメトリマネージャーにおける全てのデータを読み取り、シーンマネージャーを初期化し、シミュレーションを開始し、パーティクルの新しい位置、速度などのデータを計算する。
【0192】
2、エミッタ更新について、ジオメトリマネージャーは、シーンマネージャーに対応するビデオメモリに保存された、計算によって得られたデータを読み取り、パーティクルの位置、速度などのデータを取得し、GPU to GPUのコピーを1回行って、新しい位置、速度などのデータをNiagaraに対応するビデオメモリにコピーして、パーティクルの更新を完了する。
【0193】
3、エミッタ更新について、ジオメトリマネージャーは、Niagaraに対応するビデオメモリにおけるパーティクルの受力値を読み取り、GPU to GPUのコピーを1回行って、ジオメトリマネージャーに対応するビデオメモリに書き込むこともできる。
【0194】
4、システム更新について、シーンマネージャーが受力値を読み取り、Physionを更新する。
【0195】
四、第4フレーム
【0196】
システム更新について、次のフレームをシミュレーションし、パーティクルの新しい位置、速度などを計算する。
【0197】
エミッタ更新について、第3フレームの操作を繰り返し、GPU to GPUのコピーを1回行って、新しい位置、速度などのデータをNiagaraに対応するビデオメモリにコピーして、パーティクルの更新を完成させる。
【0198】
5、物理的な特殊効果の最後のフレームまで第4フレームのステップを繰り返す。
【0199】
上記フローチャートにおける各ステップは、矢印の指示に従って順に表示されているが、これらのステップは必ずしも矢印で指示した順に実行されるわけではないことを理解されたい。本明細書に明確な記載があることを除外、これらのステップの実行は、厳格に順に行われるものではなく、これらのステップは他の順に従って実行されてもよい。そして、これらのフローチャートにおける少なくとも一部のステップは、複数のステップ又は複数の段階を含んでもよく、これらのステップ又は段階は、必ずしも同じタイミングで実行されて完了するわけではなく、異なるタイミングで実行されてもよく、これらのステップ又は段階の実行順序も必ず順に行われるわけではなく、他のステップ又は他のステップにおけるステップ又は段階の少なくとも一部に対して、順番又は交替に実行されてもよい。
【0200】
一実施形態において、図13に示すように、物理的な特殊効果のレンダリング装置1300を提供し、当該装置は、ソフトウェアモジュール又はハードウェアモジュール、又は両者の組み合わせを用いてコンピュータ機器の一部となり、当該装置は、具体的には、
パーティクルエミッションプラグインによって放出された物理的な特殊効果パーティクルの直前のフレームにおける物理的な特殊効果データを取得するデータ取得モジュール1302と、
シーン管理クラスをインスタンス化して得られた第1ターゲットインスタンスを取得するインスタンス取得モジュールであって、シーン管理クラスは、パーティクルエミッションプラグインによって提供されたターゲットベースクラスから継承するものである、インスタンス取得モジュール1304と、
第1ターゲットインスタンスを介して、パーティクルエミッションプラグインに集積されるパーティクルシミュレーションツールのシーン管理インターフェースを呼び出して、パーティクルシミュレーションツールのシーンマネージャーにおいて、直前のフレームにおける物理的な特殊効果データに基づいて、物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算するデータ計算モジュール1306と、
現在のフレームにおける運動状態情報に基づいて、直前のフレームにおける物理的な特殊効果データを更新して、現在のフレームにおける物理的な特殊効果をレンダリングして取得するデータ更新モジュール1308と、を備える。
【0201】
上記物理的な特殊効果のレンダリング装置において、パーティクルエミッションプラグインによって放出された物理的な特殊効果パーティクルの直前のフレームにおける物理的な特殊効果データを取得するにより、パーティクルエミッションプラグインによって提供されたターゲットベースクラスから継承するシーン管理クラスをインスタンス化して得られた第1ターゲットインスタンスを取得し、そして、第1ターゲットインスタンスを介して、パーティクルエミッションプラグインに集積されるパーティクルシミュレーションツールのシーン管理インターフェースを呼び出して、パーティクルシミュレーションツールのシーンマネージャーにおいて、直前のフレームにおける物理的な特殊効果データに基づいて、物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算し、そして、現在のフレームにおける運動状態情報に基づいて、直前のフレームにおける物理的な特殊効果データを更新して、現在のフレームにおける物理的な特殊効果をレンダリングして取得し、このように、パーティクルシミュレーションツールをパーティクルエミッションプラグインに集積するため、シーン管理クラスをインスタンス化して得られた第1ターゲットインスタンスを介してパーティクルシミュレーションツールのシーン管理インターフェースを呼び出して、パーティクルシミュレーションツールのシーンマネージャーにおいて運動状態情報を計算して得ることにより、物理的な特殊効果をレンダリングして取得し、外部からシミュレーション結果を取得することを回避し、物理的な特殊効果のレンダリング時の効率を向上させる。
【0202】
一実施形態において、上記装置は、パーティクルエミッションプラグインによって提供されたベースクラス集合から、パーティクルシミュレーションツールによって提供されたデータインターフェースを呼び出すためのベースクラスを決定して、ターゲットベースクラスを取得し、そして、パーティクルシミュレーションツールのシーン管理インターフェースが呼び出されるように、ターゲットベースクラスから継承するシーン管理クラスを作成し、そして、シーン管理クラスをインスタンス化して、第1ターゲットインスタンスを取得する第1ターゲットインスタンス生成モジュールをさらに備える。
【0203】
一実施形態において、第1ターゲットインスタンス生成モジュールは、さらに、シーン管理クラスに対応するオブジェクトを作成して、シーン管理オブジェクトを取得し、そして、シーン管理オブジェクトをパッケージングして、第1ターゲットオブジェクトを取得し、そして、第1ターゲットオブジェクトをパーティクルエミッションプラグインの第1属性として設定して、第1ターゲットインスタンスを取得する。
【0204】
一実施形態において、上記装置は、パーティクルエミッションプラグインの設定インターフェースを介して、第1属性の属性パラメータを設定して得られた第1属性値を取得し、そして、第1属性値を第1ターゲットインスタンスに対応する変数値とし、そして、第1ターゲットインスタンスに対応する変数値により、シーン管理インターフェースに対応するシーンマネージャーのパラメータを設定して、設定後の、パーティクルシミュレーションツールにおいてシーン管理を行うためのシーンマネージャーを取得するシーンマネージャー設定モジュールをさらに備える。
【0205】
一実施形態において、データ更新モジュールは、さらに、パーティクルエミッションプラグインによって提供されたターゲットベースクラスから継承するジオメトリ管理クラスをインスタンス化して得られた第2ターゲットインスタンスを取得し、そして、第2ターゲットインスタンスを介してパーティクルシミュレーションツールのジオメトリ管理インターフェースを呼び出して、パーティクルシミュレーションツールにおけるジオメトリマネージャーによって現在のフレームにおける運動状態情報をターゲットビデオメモリに書き込み、ターゲットビデオメモリにおいて現在のフレームにおける運動状態情報に基づいて、直前のフレームにおける物理的な特殊効果データを更新して、現在のフレームにおける物理的な特殊効果をレンダリングして取得する。
【0206】
一実施形態において、上記装置は、パーティクルシミュレーションツールのジオメトリ管理インターフェースが呼び出されるように、ターゲットベースクラスから継承するジオメトリ管理クラスを作成し、そして、ジオメトリ管理クラスに対応するオブジェクトを作成して、ジオメトリ管理オブジェクトを取得し、そして、ジオメトリ管理オブジェクトをパッケージングして、第2ターゲットオブジェクトを取得し、そして、第2ターゲットオブジェクトをパーティクルエミッションプラグインの第2属性として設定して、第2ターゲットインスタンスを取得する第2ターゲットインスタンス生成モジュールをさらに備える。
【0207】
一実施形態において、上記装置は、パーティクルエミッションプラグインの設定インターフェースを介して、第2属性の属性パラメータを設定して得られた第2属性値を取得し、そして、第2属性値を第2ターゲットインスタンスに対応する変数値とし、そして、第2ターゲットインスタンスに対応する変数値により、ジオメトリ管理インターフェースに対応するジオメトリマネージャーを設定して、設定後の、パーティクルシミュレーションツールにおいてジオメトリ管理を行うためのジオメトリマネージャーを取得するジオメトリマネージャー設定モジュールをさらに備える。
【0208】
一実施形態において、上記装置は、パーティクルエミッションプラグインによって提供されたターゲットベースクラスから継承する境界条件管理クラスをインスタンス化して得られた第3ターゲットインスタンスを取得し、そして、第3ターゲットインスタンスを介してパーティクルシミュレーションツールの境界条件管理インターフェースを呼び出して、パーティクルシミュレーションツールの境界条件マネージャーにおいてターゲット境界条件を取得する境界条件生成モジュールと、パーティクルシミュレーションツールのシーンマネージャーにおいて、直前のフレームにおける物理的な特殊効果データ及びターゲット境界条件に基づいて、物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算するデータ計算モジュールと、をさらに備える。
【0209】
一実施形態において、上記装置は、パーティクルシミュレーションツールの境界条件管理インターフェースが呼び出されるように、ターゲットベースクラスから継承する境界条件管理クラスを作成し、そして、境界条件管理クラスから継承する、タイプ設定パラメータに対応するターゲット派生クラスを作成し、ターゲット派生クラスをインスタンス化して、第3ターゲットインスタンスを取得する第3ターゲットインスタンス生成モジュールをさらに備え、タイプ設定パラメータは、パーティクルエミッションプラグインの設定インターフェースを介して取得された、境界条件マネージャーのタイプを設定して得られたパラメータである。
【0210】
一実施形態において、第3ターゲットインスタンス生成モジュールは、さらに、ターゲット派生クラスに対応するオブジェクトを作成して、ターゲット境界条件管理オブジェクトを取得し、そして、ターゲット境界条件管理オブジェクトをパッケージングして、第3ターゲットオブジェクトを取得し、そして、第3ターゲットオブジェクトをパーティクルエミッションプラグインの第3属性として設定して、第3ターゲットインスタンスを取得する。
【0211】
一実施形態において、上記装置は、パーティクルエミッションプラグインの設定インターフェースを介して、第3属性の属性パラメータを設定して得られた第3属性値を取得し、そして、第3属性値を第3ターゲットインスタンスに対応する変数値とし、そして、第3ターゲットインスタンスに対応する変数値により、境界条件管理インターフェースに対応する境界条件マネージャーのパラメータを設定して、設定後の、パーティクルシミュレーションツールにおいて境界条件管理を行うための境界条件マネージャーを取得する境界条件マネージャー設定モジュールをさらに備える。
【0212】
一実施形態において、データ計算モジュールは、さらに、パーティクルシミュレーションツールのシーンマネージャーにおいて、直前のフレームにおける物理的な特殊効果データに基づいて、物理的な特殊効果パーティクルの現在のフレームにおける運動状態情報を計算して、運動状態情報を第1ビデオメモリに書き込み、データ更新モジュールは、さらに、第1ビデオメモリから現在のフレームにおける運動状態情報を読み取り、現在のフレームにおける運動状態情報をコピーし、そして、コピーされた運動状態情報を第2ビデオメモリに書き込み、第2ビデオメモリにおいて、現在のフレームにおける運動状態情報に基づいて直前のフレームにおける物理的な特殊効果データを更新し、第1ビデオメモリは、パーティクルエミッションプラグインのターゲットビデオメモリにおける、パーティクルシミュレーションツールに割り当てられたデータバッファ領域であり、第2ビデオメモリは、ターゲットビデオメモリにおける、第1ビデオメモリとは異なるデータバッファ領域であり、パーティクル放出データ及びパーティクルレンダリングデータを記憶するためのものである。
【0213】
一実施形態において、上記装置は、プリセットモデルの位置で所定数の初期パーティクルを放出し、初期パーティクルの属性情報を第2ビデオメモリに書き込み、そして、第2ビデオメモリから初期パーティクルの属性情報を読み取り、初期パーティクルの属性情報をコピーし、そして、コピーされた初期パーティクルの属性情報を第1ビデオメモリに書き込み、パーティクルシミュレーションツールにより、第1ビデオメモリにおける初期パーティクルの属性情報に基づいて、プリセットモデルの表面及び内部でサンプリングして、物理的な特殊効果シミュレーションに用いられる物理的な特殊効果パーティクルを取得するサンプリングモジュールをさらに備える。
【0214】
一実施形態において、データ更新モジュールは、さらに、パーティクルシミュレーションツールのシーンマネージャーにおいて、直前のフレームにおける物理的な特殊効果データを所定の背景グリッドにマッピングし、背景グリッドには、複数のグリッドノードが含まれ、そして、背景グリッドにおいて、物理的な特殊効果データに基づいて、現在のフレームにおける各物理的な特殊効果パーティクルに対応するグリッドノードの運動状態情報を計算し、そして、各グリッドノードの運動状態情報を、対応する物理的な特殊効果パーティクルにマッピングして、現在のフレームにおける各物理的な特殊効果パーティクルの運動状態情報を取得する。
【0215】
物理的な特殊効果のレンダリング装置に関する具体的な限定については、上記物理的な特殊効果のレンダリング方法に対する限定を参照してもよく、ここでは説明を省略する。上記物理的な特殊効果のレンダリング装置における各モジュールは、その全部又は一部がソフトウェア、ハードウェア及びそれらの組み合わせによって実現されてもよい。プロセッサが以上の各モジュールに対応する操作を呼び出して実行するように、上記各モジュールは、ハードウェアとしてコンピュータ機器におけるプロセッサに組み込まれるか、又はコンピュータ機器におけるプロセッサとは独立して設けられてもよいし、ソフトウェアとしてコンピュータ機器におけるメモリに記憶されてもよい。
【0216】
一実施形態において、コンピュータ機器を提供し、当該コンピュータ機器は、端末であってもよく、その内部構成図は、図14に示すように構成されてもよい。当該コンピュータ機器は、システムバスを介して接続されたプロセッサ、メモリ、通信インターフェース、ディスプレイ及び入力装置を含む。当該コンピュータ機器のプロセッサは、計算及び制御能力を提供する。当該コンピュータ機器のメモリは、不揮発性記憶媒体、内部メモリを含む。当該不揮発性記憶媒体には、オペレーティングシステム及びコンピュータ読み取り可能な命令が記憶されている。当該内部メモリは、不揮発性記憶媒体におけるオペレーティングシステム及びコンピュータ読み取り可能な命令の実行に環境を提供する。当該コンピュータ機器の通信インターフェースは、有線又は無線方式で外部の端末と通信し、無線方式は、WIFI、キャリアネットワーク、NFC(近距離無線通信)又は他の技術により実現してもよい。当該コンピュータ読み取り可能な命令がプロセッサによって実行されると、物理的な特殊効果のレンダリング方法を実現する。当該コンピュータ機器のディスプレイは、液晶ディスプレイ又は電子インクディスプレイであってもよく、当該コンピュータ機器の入力装置は、ディスプレイに覆われたタッチ層であってもよく、コンピュータ機器のハウジングに設置されたボタン、トラックボール又はタッチパッドであってもよく、さらに外付けのキーボード、タッチパッド又はマウスなどであってもよい。
【0217】
当業者であれば、図14に示された構成は、本願の技術的手段に関連する一部の構成のブロック図に過ぎず、本願の技術的手段が適用されるコンピュータ機器を限定するものではなく、具体的なコンピュータ機器は、図に示されたものより多い又は少ない構成要素を含んだり、いくつかの構成要素を組み合わせてなったものであったり、異なる構成要素レイアウトを備えたものであったりすることができることを理解できる。
【0218】
一実施形態において、メモリとプロセッサとを含むコンピュータ機器をさらに提供し、メモリにコンピュータ読み取り可能な命令が記憶され、当該プロセッサがコンピュータ読み取り可能な命令を実行すると、上記各方法の実施形態におけるステップを実現する。
【0219】
一実施形態において、コンピュータ読み取り可能な命令が記憶されているコンピュータ読み取り可能な記憶媒体を提供し、当該コンピュータ読み取り可能な命令がプロセッサによって実行されると、上記各方法の実施形態におけるステップを実現する。
【0220】
一実施形態において、コンピュータプログラム製品又はコンピュータ読み取り可能な命令を提供し、当該コンピュータプログラム製品又はコンピュータ読み取り可能な命令は、コンピュータ命令を含み、当該コンピュータ命令は、コンピュータ読み取り可能な記憶媒体に記憶される。コンピュータ機器のプロセッサは、コンピュータ読み取り可能な記憶媒体から当該コンピュータ命令を読み取り、プロセッサは、当該コンピュータ命令を実行することにより、当該コンピュータ機器に上記各方法の実施形態におけるステップを実行させる。
【0221】
当業者であれば、上記実施形態の方法における全部又は一部のフローは、コンピュータ読み取り可能な命令によって関連するハードウェアに命令を与えることで実現でき、前記コンピュータ読み取り可能な命令は、不揮発性コンピュータの読み取り可能な記憶媒体に記憶されてもよく、当該コンピュータ読み取り可能な命令は、実行されると、上記各方法の実施形態のフローを含んでもよいことを理解できる。本願において提供される、及び、各実施形態において使用されるメモリ、記憶、データベース又は他の媒体に対するいかなる引用は、いずれも不揮発性及び揮発性メモリのうちの少なくとも1種を含んでもよい。不揮発性メモリは、リードオンリーメモリ(Read-Only Memory、ROM)、磁気テープ、フレキシブルディスク、フラッシュメモリ、又は光メモリなどを含んでもよい。揮発性メモリは、ランダムアクセスメモリ(Random Access Memory、RAM)、又は外部キャッシュメモリを含んでもよい。限定されるものではなく例示として、RAMは、例えば、スタティックランダムアクセスメモリ(Static Random Access Memory、SRAM)又はダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)などの様々な形態で可能である。
【0222】
以上、実施形態の各技術的特徴を任意に組み合わせることができ、説明を簡潔にするために、上記実施形態における各技術的特徴の全ての可能な組み合わせについて説明していない。しかしながら、これらの技術的特徴の組み合わせに矛盾がない限り、それらの全ては、本明細書の範囲と見なされるべきである。
【0223】
以上、実施形態は本願のいくつかの実施形態のみを説明しており、それらの説明は、具体的で詳細であるが、本願の特許の範囲を限定するものとして解釈されるべきではない。当業者にとって、本願の構想から逸脱することなく、いくつかの変形又は改善を加えることもでき、これらの変形又は改善は、両方とも、本願の保護範囲に属することに留意されたい。したがって、本願の特許の保護範囲は、添付の特許請求の範囲を基準とするべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14