メインコンテンツまでスキップ

コリジョンパラメータ

コリジョン(衝突判定)に関するパラメータです。

ソースを見る

コリジョンタイプ

KawaiiPhysicsでは以下の4種類のコリジョン形状をサポートしています。

タイプ説明
Spherical球体コリジョン
Capsuleカプセルコリジョン
Boxボックスコリジョン
Planar平面コリジョン

コリジョン形状の比較

各コリジョン形状の特徴と使用例

FCollisionLimitBase(共通プロパティ)

すべてのコリジョンタイプに共通する基本プロパティです。

プロパティ説明
DrivingBoneFBoneReferenceコリジョンを追従させるボーン
OffsetLocationFVectorボーンからのオフセット位置(デフォルト: ZeroVector)
OffsetRotationFRotatorボーンからのオフセット回転(デフォルト: ZeroRotator、範囲: -360 ~ 360)

FSphericalLimit(球体コリジョン)

球形の衝突判定を追加します。

UPROPERTY(EditAnywhere, Category = "Limits")
TArray<FSphericalLimit> SphericalLimits;

プロパティ

名前デフォルト説明
Radiusfloat5.0球の半径(0以上)
LimitTypeESphericalLimitTypeOuter内側/外側の制限タイプ

ESphericalLimitType

説明
Inner球の内側に制限(ボーンを球の内側に押し込む)
Outer球の外側に制限(ボーンを球から押し出す)

Limit Typeの比較

Inner(内側制限)とOuter(外側制限)の違い

FCapsuleLimit(カプセルコリジョン)

カプセル形状の衝突判定を追加します。

UPROPERTY(EditAnywhere, Category = "Limits")
TArray<FCapsuleLimit> CapsuleLimits;

プロパティ

名前デフォルト説明
Radiusfloat5.0カプセルの半径(0以上)
Lengthfloat10.0カプセルの長さ(0以上)

FBoxLimit(ボックスコリジョン)

ボックス形状の衝突判定を追加します。

UPROPERTY(EditAnywhere, Category = "Limits")
TArray<FBoxLimit> BoxLimits;

プロパティ

名前デフォルト説明
ExtentFVector(5.0, 5.0, 5.0)ボックスのエクステント(各軸の半分のサイズ)

FPlanarLimit(平面コリジョン)

平面による衝突判定を追加します。

UPROPERTY(EditAnywhere, Category = "Limits")
TArray<FPlanarLimit> PlanarLimits;

プロパティ

名前デフォルト説明
PlaneFPlane(0, 0, 0, 0)平面の定義

Data Assetからの読み込み

LimitsDataAsset

コリジョン設定をData Assetから読み込むことができます。別のAnimNodeやAnimation Blueprintで設定を流用したい場合に推奨されます。

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Limits")
TObjectPtr<UKawaiiPhysicsLimitsDataAsset> LimitsDataAsset;

PhysicsAssetForLimits

Physics Assetからコリジョン設定を読み込むこともできます。

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Limits")
TObjectPtr<UPhysicsAsset> PhysicsAssetForLimits;

World Collision

bAllowWorldCollision

ワールドコリジョン - レベル上の各コリジョンとの判定を行うフラグ。

プロパティ
bool
デフォルトfalse
警告

有効にすると物理処理の負荷が大幅に上がります。

bIgnoreSelfComponent

自己コリジョン無視 - WorldCollisionにて、SkeletalMeshComponentが持つコリジョン(PhysicsAsset)を無視するフラグ。

プロパティ
bool
デフォルトtrue

IgnoreBones

無視ボーン - WorldCollisionにて、SkeletalMeshComponentが持つコリジョン(PhysicsAsset)を無視する設定(ボーン指定)。

プロパティ
TArray<FBoneReference>

IgnoreBoneNamePrefix

無視ボーン名プリフィックス - WorldCollisionにて、SkeletalMeshComponentが持つコリジョン(PhysicsAsset)を無視する設定(ボーン名のプリフィックス指定)。

プロパティ
TArray<FName>

bOverrideCollisionParams

コリジョンパラメータオーバーライド - SkeletalMeshComponentが持つコリジョン設定ではなく、独自のコリジョン設定をWorldCollisionで使用する際に設定。

プロパティ
bool
デフォルトfalse

コリジョンソースタイプ

コリジョンの設定元を示す列挙型です。

UENUM()
enum class ECollisionSourceType : uint8
{
AnimNode, // AnimNodeで設定された値を使用
DataAsset, // DataAssetで設定された値を使用
PhysicsAsset, // PhysicsAssetで設定された値を使用
};
ヒント

Data Assetを使用することで、複数のAnimNodeやAnimation Blueprint間でコリジョン設定を共有できます。

詳しくは Data Assets を参照してください。