Merge Release-Engine-Staging to Main @ CL# 14467590

This represents UE4/Main @ 14432125 + some cherrypick fixes

[CL 14468207 by Marc Audy in ue5-main branch]
This commit is contained in:
Marc Audy
2020-10-09 22:42:26 -04:00
parent c6c96c6e2f
commit 50a3d7d368
2042 changed files with 133798 additions and 31334 deletions

View File

@@ -13,6 +13,7 @@ FPhysicsAssetEditorAnimInstanceProxy::FPhysicsAssetEditorAnimInstanceProxy()
: TargetActor(nullptr)
, HandleActor(nullptr)
, HandleJoint(nullptr)
, FloorActor(nullptr)
{
}
@@ -21,6 +22,7 @@ FPhysicsAssetEditorAnimInstanceProxy::FPhysicsAssetEditorAnimInstanceProxy(UAnim
, TargetActor(nullptr)
, HandleActor(nullptr)
, HandleJoint(nullptr)
, FloorActor(nullptr)
{
}
@@ -39,6 +41,8 @@ void FPhysicsAssetEditorAnimInstanceProxy::Initialize(UAnimInstance* InAnimInsta
{
SolverIterations = PhysicsAsset->SolverIterations;
}
FloorActor = nullptr;
#endif
}
@@ -179,3 +183,35 @@ void FPhysicsAssetEditorAnimInstanceProxy::UpdateDriveSettings(bool bLinearSoft,
#endif
}
void FPhysicsAssetEditorAnimInstanceProxy::CreateSimulationFloor(FBodyInstance* FloorBodyInstance, const FTransform& Transform)
{
#if WITH_CHAOS && !PHYSICS_INTERFACE_PHYSX
using namespace Chaos;
DestroySimulationFloor();
ImmediatePhysics::FSimulation* Simulation = RagdollNode.GetSimulation();
if (Simulation != nullptr)
{
FloorActor = Simulation->CreateKinematicActor(FloorBodyInstance, Transform);
if (FloorActor != nullptr)
{
Simulation->AddToCollidingPairs(FloorActor);
}
}
#endif
}
void FPhysicsAssetEditorAnimInstanceProxy::DestroySimulationFloor()
{
#if WITH_CHAOS && !PHYSICS_INTERFACE_PHYSX
using namespace Chaos;
ImmediatePhysics::FSimulation* Simulation = RagdollNode.GetSimulation();
if ((Simulation != nullptr) && (FloorActor != nullptr))
{
Simulation->DestroyActor(FloorActor);
FloorActor = nullptr;
}
#endif
}