Skip to main content

Collision Parameters

Parameters related to collision detection.

View Source

About This Page

This is the complete reference for collision parameters. For the actual setup steps and how to choose shapes, see the Collision Setup guide; for sharing collision across multiple meshes, see Shared Collision.

Collision Types

KawaiiPhysics supports the following 4 collision shapes.

TypeDescription
SphericalSphere collision
CapsuleCapsule collision
BoxBox collision
PlanarPlane collision

FCollisionLimitBase (Common Properties)

Base properties common to all collision types.

PropertyTypeDescription
DrivingBoneFBoneReferenceBone that the collision follows
OffsetLocationFVectorOffset position from bone (Default: ZeroVector)
OffsetRotationFRotatorOffset rotation from bone (Default: ZeroRotator, Range: -360 to 360)

FSphericalLimit (Sphere Collision)

Adds spherical collision detection.

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

Properties

NameTypeDefaultDescription
Radiusfloat5.0Sphere radius (0 or higher)
LimitTypeESphericalLimitTypeOuterInner/outer limit type

ESphericalLimitType

ValueDescription
InnerLimit to inside the sphere (push bone inside the sphere)
OuterLimit to outside the sphere (push bone out of the sphere)

FCapsuleLimit (Capsule Collision)

Adds capsule-shaped collision detection.

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

Properties

NameTypeDefaultDescription
Radiusfloat5.0Capsule radius (0 or higher)
Lengthfloat10.0Capsule length (0 or higher)

FBoxLimit (Box Collision)

Adds box-shaped collision detection.

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

Properties

NameTypeDefaultDescription
ExtentFVector(5.0, 5.0, 5.0)Box extent (half size for each axis)

FPlanarLimit (Plane Collision)

Adds planar collision detection.

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

Properties

NameTypeDefaultDescription
PlaneFPlane(0, 0, 0, 0)Plane definition

Loading from Data Asset

LimitsDataAsset

Collision settings can be loaded from a Data Asset. Recommended when you want to reuse settings across different AnimNodes or Animation Blueprints.

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

PhysicsAssetForLimits

Collision settings can also be loaded from a Physics Asset.

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

World Collision

bAllowWorldCollision

World Collision - Flag to perform collision detection with collisions in the level.

PropertyValue
Typebool
Defaultfalse
warning

Enabling this significantly increases physics processing load.

bIgnoreSelfComponent

Ignore Self Collision - Flag to ignore collisions (PhysicsAsset) owned by the SkeletalMeshComponent in WorldCollision.

PropertyValue
Typebool
Defaulttrue
Edit ConditionbAllowWorldCollision == true

IgnoreBones

Ignore Bones - Setting to ignore collisions (PhysicsAsset) owned by the SkeletalMeshComponent in WorldCollision (specified by bones).

PropertyValue
TypeTArray<FBoneReference>
Edit ConditionbIgnoreSelfComponent == false

IgnoreBoneNamePrefix

Ignore Bone Name Prefix - Setting to ignore collisions (PhysicsAsset) owned by the SkeletalMeshComponent in WorldCollision (specified by bone name prefix).

PropertyValue
TypeTArray<FName>
Edit ConditionbIgnoreSelfComponent == false

bOverrideCollisionParams

Override Collision Parameters - Set when using custom collision settings instead of SkeletalMeshComponent's collision settings for WorldCollision.

PropertyValue
Typebool
Defaultfalse

Shared Collision

Settings that let multiple KawaiiPhysics nodes share a single set of collision shapes. Collision can be shared across different meshes within the same Actor/ChildActor family. See Shared Collision for details.

bSharedCollisionSource

Publish Collision - Provides this node's collision to KawaiiPhysics nodes in the same attached Actor/ChildActor family (acts as a Source).

PropertyValue
Typebool
Defaultfalse
CategoryLimits|Shared Collision

bUseSharedCollision

Use Shared Collision - Uses collision published by Source nodes in the same family (acts as a Target). Mutually exclusive with Source.

PropertyValue
Typebool
Defaultfalse
Edit Condition!bSharedCollisionSource
CategoryLimits|Shared Collision

SharedCollisionGroupTag

Group Tag - A GameplayTag identifying the shared collision group. Both Source and Target use the same tag.

PropertyValue
TypeFGameplayTag
Edit ConditionbSharedCollisionSource &#124;&#124; bUseSharedCollision
CategoryLimits|Shared Collision
tip

To use same-frame collision within one AnimGraph, place the Source node so it evaluates before the Target node.

Collision Source Type

Enum indicating the source of collision settings.

UENUM()
enum class ECollisionSourceType : uint8
{
AnimNode, // Use values set in AnimNode
DataAsset, // Use values set in DataAsset
PhysicsAsset, // Use values set in PhysicsAsset
};
tip

Using Data Assets allows sharing collision settings across multiple AnimNodes and Animation Blueprints.

For more details, see Data Assets.