This document is about: QUANTUM 2
SWITCH TO

マテリアル

概要

すべての PhysicsBody には PhysicsMaterial(Quantum データアセット)が必要です。PhysicsMaterialには、物理エンジンが衝突、力と速度の統合を解決するために必要なプロパティがあります。

PhysicsMaterial データアセット

PhysicsMaterialには、次のパラメータがあります。

  • 反発(「弾力」または「バウンス」と呼ばれることもあります)
  • 反発の結合関数
  • 摩擦 静的
  • 摩擦 動的
  • 摩擦の結合関数

スロットに PhysicsMaterial アセットがない場合は、デフォルトの物理マテリアルが割り当てられます。デフォルトの物理マテリアルは、SimulationConfig 物理設定でリンクされているものです。

adjusting properties to physics materials
プロパティを物理マテリアルに合わせる。

PhysicsMaterial アセットは PhysicsCollider に直接割り当てることができます:

C#

var material = f.FindAsset<PhysicsMaterial>("steel");
collider.Material = material;

f.Set(entity, collider);

重要な注意点

PhysicsMaterial はデータアセットであり、Quantum Asset Databaseにあります。アセットはロールバック可能なゲーム状態の一部ではないため、すべての PhysicsMaterial は実行時に不変であると見なされます。ゲームの実行中にそのプロパティを変更すると、非決定的な動作になります。

PhysicsMaterial は、他のデータアセットと同じルールに従います。

C#

// this is NOT safe and cannot be rolled-back:
collider->Material.Restitution = FP._0;

// switching a reference is safe and can be rolled back:
var newMaterial = f.FindAsset<PhysicsMaterial>("ice");
collider->Material = newMaterial;

Combine Function

各衝突多様体(衝突ペア)の反発力と摩擦を解決するために使用されるCombine Function(結合関数)は、結合関数の優先順位に基づいています。物理システムは、2つのコライダーの最も優先順位の高い関数を選択します。 優先順位は次のとおりです。

  1. Max
  2. Min
  3. Average
  4. Multiply

たとえば、コライダーAとコライダーBを備えた衝突多様体があるとします。コライダーAの物理マテリアルは Restitution Combine Function(反発結合関数) が__Max__に設定されていますが、コライダーBの物理マテリアルは__Average__に設定されています。MaxAverage よりも優先度が高いため、この衝突の回復は Max 関数を使用して解決されます。

同じロジックが Friction Combine Function(摩擦結合関数) にも適用されます。

N.B.: Friction Combine FunctionRestitution Combine Function は別々に解決されるため、設定が異なります。

Back to top