You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- RBAN QPBD and linear joint solver support - Add 3rd phase to solver loop for projection - Add settings for QPBD to PhysicsAsset - Add cvar overrides for all settings - Hide settings for legacy solver #rb michael.forot #jira UE-140717 #preflight #ROBOMERGE-AUTHOR: chris.caulfield #ROBOMERGE-SOURCE: CL 19156094 in //UE5/Release-5.0/... via CL 19159784 #ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845) [CL 19161460 by chris caulfield in ue5-main branch]
58 lines
2.1 KiB
C++
58 lines
2.1 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "AnimPreviewInstance.h"
|
|
#include "Animation/AnimNode_LinkedInputPose.h"
|
|
#include "Animation/AnimNode_SequencePlayer.h"
|
|
#include "Animation/AnimNodeSpaceConversions.h"
|
|
#include "BoneControllers/AnimNode_RigidBody.h"
|
|
#include "Physics/ImmediatePhysics/ImmediatePhysicsDeclares.h"
|
|
|
|
#include "PhysicsAssetEditorAnimInstanceProxy.generated.h"
|
|
|
|
class UAnimSequence;
|
|
|
|
/** Proxy override for this UAnimInstance-derived class */
|
|
USTRUCT()
|
|
struct FPhysicsAssetEditorAnimInstanceProxy : public FAnimPreviewInstanceProxy
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
FPhysicsAssetEditorAnimInstanceProxy();
|
|
|
|
FPhysicsAssetEditorAnimInstanceProxy(UAnimInstance* InAnimInstance);
|
|
|
|
virtual ~FPhysicsAssetEditorAnimInstanceProxy();
|
|
|
|
virtual void Initialize(UAnimInstance* InAnimInstance) override;
|
|
virtual FAnimNode_Base* GetCustomRootNode() override;
|
|
virtual void GetCustomNodes(TArray<FAnimNode_Base*>& OutNodes) override;
|
|
|
|
virtual void UpdateAnimationNode(const FAnimationUpdateContext& InContext) override;
|
|
virtual bool Evaluate_WithRoot(FPoseContext& Output, FAnimNode_Base* InRootNode) override;
|
|
|
|
virtual void AddImpulseAtLocation(FVector Impulse, FVector Location, FName BoneName = NAME_None) override;
|
|
|
|
virtual void Grab(FName InBoneName, const FVector& Location, const FRotator& Rotation, bool bRotationConstrained);
|
|
virtual void Ungrab();
|
|
virtual void UpdateHandleTransform(const FTransform& NewTransform);
|
|
virtual void UpdateDriveSettings(bool bLinearSoft, float LinearStiffness, float LinearDamping);
|
|
virtual void CreateSimulationFloor(FBodyInstance* FloorBodyInstance, const FTransform& Transform);
|
|
virtual void DestroySimulationFloor();
|
|
|
|
private:
|
|
void ConstructNodes();
|
|
|
|
FAnimNode_RigidBody RagdollNode;
|
|
FAnimNode_ConvertComponentToLocalSpace ComponentToLocalSpace;
|
|
FPhysicsAssetSolverSettings SolverSettings;
|
|
FSolverIterations SolverIterations;
|
|
|
|
ImmediatePhysics::FActorHandle* TargetActor;
|
|
ImmediatePhysics::FActorHandle* HandleActor;
|
|
ImmediatePhysics::FJointHandle* HandleJoint;
|
|
ImmediatePhysics::FActorHandle* FloorActor;
|
|
};
|