UDN
Search public documentation:

PhysXReferenceJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

PhysX Reference

ドキュメントの概要: PhysX インテグレーションの包括的な参照。

ドキュメントの変更ログ: Bryan Galdrikian により作成。経時的に更新。

流体

PhysXParticleSystemReference を参照してください。 PhysX の流体インテグレーションは、より多くの機能と使いやすさを提供するために書き直されています。これは 2008 年 2 月ビルド以降利用可能になりました。

コンストレイント (制約)

物理制約の参照 を参照してください。

Destructibles (破壊可能)

物理制約の参照 を参照してください。 これは FracturedStaticMeshActor の上位に構築された新機能で、これによりメッシュを非常に細かい破片に分割でき、!PhysX の流体メッシュ エミッタを使用して崩壊をエミュレートすることができます。

Cloth (クロス)

まず、MasteringUnrealPhysics のセクション 15.8 でクロスのインテグレーションを参照してください。高度な機能や特化された機能はこの PhysXClothReference にあります。

Soft Bodies (軟体)

PhysXSoftBodyReference を参照してください。

パーティクル システム

物理制約の参照 を参照してください。

カスタムの力場

チュートリアルとデモ

すべての力場に共通のフィールド

bForceActive この力がモーメントにおいてアクティブがどうかを示します。
ForceFieldChannel この力場に適用される力場排除ボリューム (RB_ForceFieldExcludeVolumes) を特定します。
bForceApplyToCloth クロスに対する影響を有効/無効にします。
bForceApplyToFluid 流体パーティクルに対する影響を有効/無効にします。
bForceApplyToRigidBodies 剛体に対する影響を有効/無効にします。
bForceApplyToProjectiles ロケットなどの発射物に対する影響を有効/無効にします。
CollideWithChannels この力場の影響を受けるオブジェクトタイプを特定します。

カスタムの力場

RB_RadialForceActor

この力場は球体として表現されます。球体の内側のオブジェクトには半径方向力が適用されます。

ForceStrength このアクタが適用する力の強度。正の力が外側に向かって適用されます。
ForceRadius 力の影響半径。
SwirlStrength このフィールドは使用されていません。(オブジェクトがアクタの Z 軸を周回する強度。)
SpinTorque このフィールドは使用されていません。(ローカルの Z 軸の回りにオブジェクトを回転させる強度。)
ForceFalloff オブジェクトがその位置から遠く離れるにつれてどのように力が減少するかを示します。場所に関わらず一定の力を適用するか、または中心の ForceStrength? から、半径 ForceRadius の位置でゼロになるように力を線形補間します。
RadialForceMode 使用する力モードのタイプを示します。

RB_CylindricalForceActor
この力場はシリンダ(円筒)として表現されます。シリンダの内側のオブジェクトは、定義されたパラメータに応じて、半径方向力、揚力 (lift)、回転力 (rotational force) が適用されます。半径方向力は、オブジェクトの速度 (Velocity) が脱出 (escape) 速度より小さく、かつオブジェクトが中心から離れて移動する場合のみ適用されます。これにより、オブジェクトが力場をあまり速く離れないようにしています。

RadialStrength シリンダの軸から外方向に適用されれる力の強度。
RotationalStrength シリンダの軸の回りに適用される力の回転強度。
LiftStrength シリンダの軸に沿って適用される力の強度。
LiftFalloffHeight 揚力の低下の高さ (0-1)。この高さを超えると揚力は線形低下を開始します。
EscapeVelocity この速度を超えると半径方向力が無視されます。
ForceRadius シリンダ底面の力の影響半径。
ForceTopRadius シリンダ上面の力場の半径。
ForceHeight 力のシリンダの高さ。
HeightOffset アクタの基準位置から、力場の中心までのオフセット。

Breakable Actors (分解可能アクタ)

"Breakable Actor" (分解可能アクタ) クラスは、オブジェクトが破壊されたときに、複雑な kismet (キスメット) シーケンスを設定する手間をかけずパーティクル効果を生成できる便利な機能です。これにより、レベルデザイナーはレベルで分解や爆発などが起きるセクションをすばやく作成し、kismet では発生数の少ない、より複雑な破壊シーケンスに時間を費やすことができます。Breakable Actor からは任意の数のエミッタを開始できます。この目的は、ボリューム充填式の流体メッシュエミッタを使用して、オブジェクトの玉砕、粉砕、破砕などをシミュレートすることにあります。

チュートリアルとデモ

現在執筆中

シーン コンパートメント

シーンコンパートメントにより、ユーザーはオブジェクトをその相互関係にかかわらずシーンに分割することができます。ゲームエンジンが他のタスクを実行している間に、シミュレート可能なシーンの並列化を可能にします。さらに、コンパートメントを個別に構成し、異なるサブステップで実行したり、可能な場合は交互的にシミュレーションを実行して、エフェクトベース シーンのパフォーマンスを高めることができます。

コンパートメントは、例えばハードウェア流体、ハードウェア剛体、ソフトウェア剛体など、1 タイプの物理シミュレーションのサブインスタンスを表します。1 つのシーンに複数のコンパートメントが属することができ (同じタイプの複数コンパートメントも可能)、それらの相互作用やシーンプロパーは自動的に処理されます。これにより、低レベルの基本的な部分について心配することなく、透過的な操作、シミュレーションおよび相互作用を実現できます。 コンパートメント間のすべてのリンクは SDK が管理します。例えば、マテリアルを作成すると、すべての剛体コンパートメントに対して作成されます。レイキャストを実行すると、クエリーはすべてのコンパートメント内で交差するハードウェアおよびソフトウェア オブジェクトをすべて返します。

新規作成されたシーン、ハードウェアまたはソフトウェアには、コンパートメントが含まれていません。シーンに追加されたオブジェクトはシーンプロパーに挿入されます。例外は、そのディスクリプタにコンパートメントが指定されている場合と、そのタイプのオブジェクトがシーンに直接存在できない場合です。 後者の例は、ソフトウェアシーンの流体に当てはまります。このような場合、新しいオブジェクト用のデフォルト コンパートメントがなければ、適切に作成されます。

以下は、コンパートメントを使用したオブジェクト作成のさまざまな可能性と、それらがサポートする相互作用の包括的なリストです。相互作用には、物理エンティティ間の衝突と、トリガのテストが両方含まれます。

!PhysX ハードウェアなしの場合

コンパートメントが指定されていない:

項目 場所: 影響を及ぼす対象: 影響を受ける対象:
剛体 シーンプロパー すべてのオブジェクト 相互間、双方向の相互作用が設定されたクロス (コンパートメント内の場合も含めて)、双方向の相互作用が設定された流体 (コンパートメント内のみ)
流体 ソフトウェアでは使用不可    
クロス マスターシーン マスターシーン内の剛体のみ (双方向の相互作用が設定されている場合) マスターシーン内の剛体のみ

コンパートメントが指定されている:

項目 場所: 影響を及ぼす対象: 影響を受ける対象:
剛体 指定コンパートメント 相互間のみ 相互間、マスターシーンの剛体
流体 ソフトウェアでは使用不可    
クロス 指定コンパートメント マスターシーン内の剛体のみ (双方向の相互作用が設定されている場合) マスターシーン内の剛体のみ

!PhysX ハードウェアを使用する場合

コンパートメントが指定されていない:

項目 場所: 実行対象: 影響を及ぼす対象: 影響を受ける対象:
剛体 シーンプロパー シーンタイプ すべてのオブジェクト 相互間、双方向の相互作用が設定されたクロス (コンパートメント内の場合も含めて)、双方向の相互作用が設定された流体 (コンパートメント内のみ)
流体 デフォルトの流体コンパートメント (存在しない場合は作成される) ハードウェア マスターシーン内の剛体のみ (双方向の相互作用が設定されている場合) マスターシーン内の剛体のみ
HW クロス* デフォルトのクロス コンパートメント (存在しない場合は作成される) ハードウェア マスターシーン内の剛体のみ (双方向の相互作用が設定されている場合) マスターシーン内の剛体のみ
SW クロス* シーンプロパー ソフトウェア マスターシーン内の剛体のみ (双方向の相互作用が設定されている場合) マスターシーン内の剛体のみ
(* = NxClothDesc::flags と NX_CLF_HARDWARE で定義)

コンパートメントが指定されている:

項目 場所: 実行対象: 影響を及ぼす対象: 影響を受ける対象:
剛体 指定コンパートメント コンパートメントとして 相互間のみ]相互間、マスターシーンの剛体**  
流体 指定コンパートメント ハードウェア マスターシーン内の剛体のみ (双方向の相互作用が設定されている場合) マスターシーン内の剛体のみ。
クロス 指定コンパートメント コンパートメントとして マスターシーン内の剛体のみ (双方向の相互作用が設定されている場合) マスターシーン内の剛体のみ
(** コンパートメント内のトリガは、マスターシーン内の剛体に反応しない)

チュートリアル

現在 UE3 では、!NxScene で 4 つのコンパートメントを作成します。これらのコンパートメントへのポインターは、!NxScene と共にレベルの FRBPhysScene に保存されます。作成されるコンパートメントタイプは、剛体、流体、クロス、ソフトボディです (最後の項目は未使用で、将来の機能に備えて用意されています)。コンパートメント内で PhysX オブジェクトを作成するには、オブジェクトのディスクリプタ内の適切なコンパートメントにポインターを渡すだけです。例えば、!NxActorDesc には 'compartment' フィールドがありますが、このフィールドの値が NULL の場合は、オブジェクトはプライマリー (ノーマル) の PhysX シーンに置かれます。

UE3 のクラス UPrimitiveComponent (プリミティブ コンポーネント) には bUseCompartment (コンパートメントを使用) ブール型パラメータが追加されました。これは、このクラスから派生する各種オブジェクトに合わせて適切に解釈されます。!UPrimitiveComponent に BodyInstance が含まれている場合、bUseCompartment が設定されていれば、その BodyInstance に対して作成される NxActors は剛体コンパートメントに配置されます。

USkeletalMeshComponents (骨格メッシュ コンポーネント) については、クロスシミュレーションが指定されている場合、bUseCompartment フラグよってクロスがクロスコンパートメント内に配置されるかどうかが決まります。

流体は例外的に扱われ、UE3 では常に流体コンパートメント内に NxFluid を配置します。