void FPhATEdPreviewViewportClient::Tick(float DeltaSeconds) { FEditorViewportClient::Tick(DeltaSeconds); UWorld* World = SharedData->PreviewScene.GetWorld(); if (SharedData->bRunningSimulation) { // check if PIE disabled the realtime viewport and quit sim if so if (!bIsRealtime) { SharedData->ToggleSimulation(); Invalidate(); } AWorldSettings* Setting = World->GetWorldSettings(); Setting->WorldGravityZ = SharedData->bNoGravitySimulation ? 0.0f : UPhysicsSettings::Get()->DefaultGravityZ*SharedData->EditorSimOptions->GravScale; Setting->bWorldGravitySet = true; // We back up the transforms array now SharedData->EditorSkelComp->AnimationSpaceBases = SharedData->EditorSkelComp->GetComponentSpaceTransforms(); SharedData->EditorSkelComp->SetPhysicsBlendWeight(SharedData->EditorSimOptions->PhysicsBlend); SharedData->EditorSkelComp->bUpdateJointsFromAnimation = SharedData->EditorSimOptions->bUpdateJointsFromAnimation; SharedData->EditorSkelComp->PhysicsTransformUpdateMode = SharedData->EditorSimOptions->PhysicsUpdateMode; static FPhysicalAnimationData EmptyProfile; SharedData->PhysicalAnimationComponent->ApplyPhysicalAnimationProfileBelow(NAME_None, SharedData->PhysicsAsset->CurrentPhysicalAnimationProfileName, /*Include Self=*/true, /*Clear Not Found=*/true); } World->Tick(LEVELTICK_All, DeltaSeconds * SharedData->EditorSimOptions->TimeDilation); }