Files
UnrealEngineUWP/Engine/Source/Runtime/AnimGraphRuntime/Private/BoneControllers/AnimNode_RigidBody_Library.cpp
benjamin jillich 3ddf102b31 Runtime switching override physics assets on rigid body animation node using function library
A few days ago I've added runtime switching for the override physics assets by exposing the override physics assets as a pin. To align better with the pattern we use with larger objects, I've now changed that to a function library.


#changelist validated

#virtualized

[CL 29127203 by benjamin jillich in ue5-main branch]
2023-10-26 05:08:54 -04:00

27 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "BoneControllers/AnimNode_RigidBody_Library.h"
FRigidBodyAnimNodeReference UAnimNodeRigidBodyLibrary::ConvertToRigidBodyAnimNode(const FAnimNodeReference& Node, EAnimNodeReferenceConversionResult& Result)
{
return FAnimNodeReference::ConvertToType<FRigidBodyAnimNodeReference>(Node, Result);
}
void UAnimNodeRigidBodyLibrary::ConvertToRigidBodyAnimNodePure(const FAnimNodeReference& Node, FRigidBodyAnimNodeReference& RigidBodyAnimNode, bool& Result)
{
EAnimNodeReferenceConversionResult ConversionResult;
RigidBodyAnimNode = ConvertToRigidBodyAnimNode(Node, ConversionResult);
Result = (ConversionResult == EAnimNodeReferenceConversionResult::Succeeded);
}
FRigidBodyAnimNodeReference UAnimNodeRigidBodyLibrary::SetOverridePhysicsAsset(const FRigidBodyAnimNodeReference& Node, UPhysicsAsset* PhysicsAsset)
{
Node.CallAnimNodeFunction<FAnimNode_RigidBody>(
TEXT("SetOverridePhysicsAsset"),
[PhysicsAsset](FAnimNode_RigidBody& InRigidBodyNode)
{
InRigidBodyNode.SetOverridePhysicsAsset(PhysicsAsset);
});
return Node;
}