Skip to main content

Collision Parameters

Parameters related to collision detection.

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)

FTaperedCapsuleLimit (Tapered Capsule)​

Not officially released

This feature has not been officially released yet. It is planned for KawaiiPhysics v1.22. Specifications may change during development.

FTaperedCapsuleLimit represents a collision shape with a different radius at each end. In addition to Simple World Collision gathering, it is supported by the node's Collision > Tapered Capsule Collision, Limits DataAssets, and shapes read from PhysicsAssets. Ordinary Capsules existed before v1.22; separate endpoint-radius support is the addition described here.

SettingDefaultMeaning
Radius05 cmRadius at the shape-local +Z endpoint
Radius15 cmRadius at the shape-local −Z endpoint
Length10 cmDistance between endpoint sphere centers, not overall length

Position it with Driving Bone and location/rotation offsets. Equal endpoint radii give an equal-radius capsule. Radii and length are clamped to nonnegative values. When Length <= abs(Radius0 - Radius1) (with a small tolerance in the implementation), the smaller endpoint sphere is contained in the larger one, and the shape collapses to that larger sphere. Collision, editing, and debug drawing use the same condition.

In the normal case, push-out linearly interpolates the radius at the closest point on the axis segment. This does not guarantee identical contacts to Chaos geometry, so test strong tapers and narrow parts in practice. Simple World Collision conversion uses query-enabled shapes and does not use cloth Width or one-sided collision attributes. Mirror Data Table for Collision swaps radii when needed to preserve endpoint meaning.

Setup steps and diagram

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.

Related UE documentation​

  • Physics Asset Editor — Understand PhysicsAssets and the editor used to author their shapes. (UE 5.8)