From d29dbbbe458bfaf157cef8c8de4adc757257c55b Mon Sep 17 00:00:00 2001 From: Simeon Wallrath Date: Fri, 5 Sep 2025 15:32:59 +0200 Subject: [PATCH] Update to 5.6, lots of Cleanup --- .gitignore | 14 + VIRTUOS_ExpansionPluginTests/.gitattributes | 2 - VIRTUOS_ExpansionPluginTests/.gitignore | 13 - VIRTUOS_ExpansionPluginTests/.vsconfig | 4 +- .../Config/DefaultEditor.ini | 5 +- .../TestSong/BP_DynamicSliceObject.uasset | 4 +- .../BP_DynamicSliceObjectSpawner.uasset | 4 +- .../Content/Maps/Map_Gameworld.umap | 4 +- .../Content/Maps/Map_Outside_Default.umap | 4 +- .../Content/Maps/Map_Room_Kitchen.umap | 4 +- .../Content/Maps/Map_Stream_MachineRoom.umap | 4 +- .../Content/Maps/Map_Workspace.umap | 4 +- .../Content/Maps/MotionControllerMap.umap | 4 +- .../Content/Maps/SL_FreezeRoom.umap | 4 +- .../Content/VFX/M_Circle.uasset | 3 + .../Content/VFX/M_Rays.uasset | 3 + .../Content/VFX/NPC_VRTemplate.uasset | 3 + .../Content/VFX/NS_MenuPointer.uasset | 3 + .../Content/VFX/NS_PickupTrace.uasset | 3 + .../Content/VFX/NS_Portal.uasset | 3 + .../Content/VFX/NS_ScanLaser.uasset | 3 + .../Content/VFX/NS_TeleportTrace.uasset | 3 + .../VFX/Projector/BP_TestProjector.uasset | 3 + .../Content/VFX/Projector/MI_Projector.uasset | 3 + .../Content/VFX/Projector/MI_SliceTest.uasset | 3 + .../VFX/Projector/MPC_Projector.uasset | 3 + .../Content/VFX/Projector/M_Projector.uasset | 3 + .../Content/VFX/Projector/M_Rays.uasset | 3 + .../Content/VFX/Projector/M_Rays_Inst.uasset | 3 + .../NewMolecule_002_Bake1_PBR_Diffuse.uasset | 3 + .../Content/VFX/Projector/Nitrate.uasset | 3 + .../Content/VFX/Projector/Nitrate_LP.uasset | 3 + .../Core/Character/BP_Trace_Controller.uasset | 4 +- .../VRE/Core/Character/BP_VRCharacter.uasset | 4 +- .../VRE/Core/Character/FPS_VRCharacter.uasset | 4 +- .../Grippables/Weapons/Melee/MeleeBase.uasset | 4 +- .../Input/Actions/AlternateGripLeft.uasset | 3 - .../Input/Actions/AlternateGripRight.uasset | 3 - .../Actions/ControllerMovementLeft.uasset | 3 - .../Actions/ControllerMovementRight.uasset | 3 - .../VRE/Input/Actions/FPSActions/Jump.uasset | 3 - .../Input/Actions/FPSActions/LookUp.uasset | 3 - .../Actions/FPSActions/MoveForward.uasset | 3 - .../Input/Actions/FPSActions/MoveRight.uasset | 3 - .../VRE/Input/Actions/FPSActions/Turn.uasset | 3 - .../VRE/Input/Actions/LaserBeamLeft.uasset | 3 - .../VRE/Input/Actions/LaserBeamRight.uasset | 3 - .../MotionControllerThumbLeft_X.uasset | 3 - .../MotionControllerThumbLeft_Y.uasset | 3 - .../MotionControllerThumbRight_X.uasset | 3 - .../MotionControllerThumbRight_Y.uasset | 3 - .../VRE/Input/Actions/PauseGame.uasset | 3 - .../VRE/Input/Actions/PrimaryGripLeft.uasset | 3 - .../VRE/Input/Actions/PrimaryGripRight.uasset | 3 - .../VRE/Input/Actions/SpawnInventory.uasset | 3 - .../VRE/Input/Actions/TeleportLeft.uasset | 3 - .../VRE/Input/Actions/TeleportRight.uasset | 3 - .../Input/Actions/UseHeldObjectLeft.uasset | 3 - .../Input/Actions/UseHeldObjectRight.uasset | 3 - .../Content/VRE/Input/FPSInputConfig.uasset | 3 - .../Content/VRE/Input/FPSInputContext.uasset | 3 - .../Content/VRE/Input/VREInputConfig.uasset | 3 - .../VRE/Input/VREInputMappingContext.uasset | 3 - .../Car/VehicleBP/Sedan/BP_Tractor.uasset | 4 +- .../Level/Car/VehicleBP/Sedan/Sedan.uasset | 4 +- .../Core/Character/BP_VRCharacter2.uasset | 4 +- .../VRE/VRE2/Input/Actions/PauseGame.uasset | 3 + .../VRE2/Input/Actions/SpawnInventory.uasset | 3 + .../VRE/VRE2/Input/FPSActions/Jump.uasset | 3 + .../VRE/VRE2/Input/FPSActions/LookUp.uasset | 3 + .../VRE2/Input/FPSActions/MoveForward.uasset | 3 + .../VRE2/Input/FPSActions/MoveRight.uasset | 3 + .../VRE/VRE2/Input/FPSActions/Turn.uasset | 3 + .../VRE/VRE2/Input/FPSInputConfig.uasset | 3 + .../VRE/VRE2/Input/FPSInputContext.uasset | 3 + .../VRE/VRE2/Input/VREInputConfig.uasset | 3 + .../VRE2/Input/VREInputMappingContext.uasset | 3 + .../VRE/VRTemplate/VFX/NPC_VRTemplate.uasset | 3 - .../VRE/VRTemplate/VFX/NS_MenuPointer.uasset | 3 - .../VRE/VRTemplate/VFX/NS_PickupTrace.uasset | 3 - .../VRTemplate/VFX/NS_TeleportTrace.uasset | 3 - .../Characters/Clarice/BP_Clarice.uasset | 4 +- .../Electrical/NitroScan/BP_NitroScan.uasset | 4 +- .../Electrical/NitroScan/M_Scanline.uasset | 4 +- .../NitroScan/M_Scanline_Inst.uasset | 3 + .../Electrical/NitroScan/NS_ScanLaser.uasset | 4 +- .../Letters/Letter_1/Letter_01_1_of_1.uasset | 4 +- .../Materials/PostProcess/M_PP_Hide.uasset | 3 + .../StoneTiles/Test_WS_Parallax_Fllor.uasset | 4 +- .../World/Static/Lights/BP_Light.uasset | 4 +- .../Static/Splines/Pipes/Half-X-Pipe.uasset | 4 +- .../World/Static/Splines/Pipes/M_Pipe.uasset | 4 +- .../World/Static/Splines/Pipes/M_Pipe1.uasset | 3 - .../Static/Splines/Pipes/M_Pipe1_Inst.uasset | 3 - .../Static/Splines/Pipes/M_Pipe_Inst.uasset | 4 +- .../Static/Splines/Pipes/M_Pipe_Inst1.uasset | 3 - .../Static/Splines/Pipes/M_Pipe_Inst2.uasset | 3 + .../Splines/Pipes/M_Pipe_Inst_UVBox.uasset | 3 + .../Pipes/Pipe004_4K-JPG_NormalDX.uasset | 3 + .../SM_Freezing_Chamber_Grating.uasset | 4 +- .../Stairs/Gratings/SM_Grating2_Square.uasset | 4 +- .../Stairs/Gratings/SM_Grating_Large.uasset | 3 + .../World/Static/Walls/BP_Floor.uasset | 4 +- .../VFX/Projector/BP_TestProjector.uasset | 3 - .../World/VFX/Projector/MI_Projector.uasset | 3 - .../World/VFX/Projector/MI_SliceTest.uasset | 3 - .../World/VFX/Projector/MPC_Projector.uasset | 3 - .../World/VFX/Projector/M_Projector.uasset | 3 - .../VFX/Projector/M_Projector_Inst.uasset | 3 - .../Content/World/VFX/Projector/M_Rays.uasset | 3 - .../World/VFX/Projector/M_Rays_Inst.uasset | 3 - .../NewMolecule_002_Bake1_PBR_Diffuse.uasset | 3 - .../World/VFX/Projector/Nitrate.uasset | 3 - .../World/VFX/Projector/Nitrate_LP.uasset | 3 - VIRTUOS_ExpansionPluginTests/LICENSE.txt | 19 - .../OpenXRExpansionPlugin.Build.cs | 4 + .../Private/CharacterMovementCompTypes.cpp | 5 + .../Private/GripMotionControllerComponent.cpp | 97 +-- .../GrippablePhysicsReplication.cpp | 642 +++++++++++++----- .../Grippables/GrippableStaticMeshActor.cpp | 4 +- .../Grippables/HandSocketComponent.cpp | 21 +- .../Misc/OptionalRepSkeletalMeshActor.cpp | 1 + .../Private/Misc/VRAIPerceptionOverrides.cpp | 6 +- .../Private/Misc/VRGameViewportClient.cpp | 14 +- .../Private/Misc/VRRenderTargetManager.cpp | 2 +- .../Private/ReplicatedVRCameraComponent.cpp | 10 +- .../Private/VRBaseCharacter.cpp | 2 +- .../VRBaseCharacterMovementComponent.cpp | 22 +- .../Private/VRCharacterMovementComponent.cpp | 28 +- .../Private/VRGestureComponent.cpp | 2 +- .../Private/VRPathFollowingComponent.cpp | 2 +- .../Private/VRRootComponent.cpp | 11 +- .../Private/VRStereoWidgetComponent.cpp | 27 +- .../Grippables/GrippablePhysicsReplication.h | 19 +- .../Public/Misc/VRGameViewportClient.h | 2 +- .../Public/Misc/VRVehiclePawn.h | 6 +- .../Public/Misc/VRWheeledVehicle.h | 6 +- .../Public/VRStereoWidgetComponent.h | 3 + .../VRExpansionPlugin.Build.cs | 3 + VIRTUOS_ExpansionPluginTests/README.md | 10 - .../VRExpPluginExample.uproject | 2 +- 141 files changed, 859 insertions(+), 505 deletions(-) delete mode 100644 VIRTUOS_ExpansionPluginTests/.gitattributes delete mode 100644 VIRTUOS_ExpansionPluginTests/.gitignore create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/M_Circle.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/M_Rays.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/NPC_VRTemplate.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/NS_MenuPointer.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/NS_PickupTrace.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/NS_Portal.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/NS_ScanLaser.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/NS_TeleportTrace.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/BP_TestProjector.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/MI_Projector.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/MI_SliceTest.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/MPC_Projector.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/M_Projector.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/M_Rays.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/M_Rays_Inst.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/NewMolecule_002_Bake1_PBR_Diffuse.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/Nitrate.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/Nitrate_LP.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/AlternateGripLeft.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/AlternateGripRight.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/ControllerMovementLeft.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/ControllerMovementRight.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/Jump.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/LookUp.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/MoveForward.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/MoveRight.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/Turn.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/LaserBeamLeft.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/LaserBeamRight.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/MotionControllerThumbLeft_X.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/MotionControllerThumbLeft_Y.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/MotionControllerThumbRight_X.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/MotionControllerThumbRight_Y.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/PauseGame.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/PrimaryGripLeft.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/PrimaryGripRight.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/SpawnInventory.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/TeleportLeft.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/TeleportRight.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/UseHeldObjectLeft.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/UseHeldObjectRight.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/FPSInputConfig.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/FPSInputContext.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/VREInputConfig.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/Input/VREInputMappingContext.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/Actions/PauseGame.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/Actions/SpawnInventory.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/Jump.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/LookUp.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/MoveForward.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/MoveRight.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/Turn.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSInputConfig.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSInputContext.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/VREInputConfig.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/VREInputMappingContext.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/VRTemplate/VFX/NPC_VRTemplate.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/VRTemplate/VFX/NS_MenuPointer.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/VRTemplate/VFX/NS_PickupTrace.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/VRE/VRTemplate/VFX/NS_TeleportTrace.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Electrical/NitroScan/M_Scanline_Inst.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/Materials/PostProcess/M_PP_Hide.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe1.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe1_Inst.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe_Inst1.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe_Inst2.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe_Inst_UVBox.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/Pipe004_4K-JPG_NormalDX.uasset create mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/Static/Stairs/Gratings/SM_Grating_Large.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/BP_TestProjector.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/MI_Projector.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/MI_SliceTest.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/MPC_Projector.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/M_Projector.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/M_Projector_Inst.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/M_Rays.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/M_Rays_Inst.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/NewMolecule_002_Bake1_PBR_Diffuse.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/Nitrate.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/Nitrate_LP.uasset delete mode 100644 VIRTUOS_ExpansionPluginTests/LICENSE.txt delete mode 100644 VIRTUOS_ExpansionPluginTests/README.md diff --git a/.gitignore b/.gitignore index 2da3c79..8dfa010 100644 --- a/.gitignore +++ b/.gitignore @@ -76,3 +76,17 @@ DerivedDataCache/* # Custom *.rpp-bak *.blend1 + +# Paths +.hg/ +binaries/ +deriveddatacache/ +.vs/ +build/ +intermediate/ +PACKPLUGIN/ +COMPPLUGIN/ +saved/ +*.orig +*.sln +*.xlsx \ No newline at end of file diff --git a/VIRTUOS_ExpansionPluginTests/.gitattributes b/VIRTUOS_ExpansionPluginTests/.gitattributes deleted file mode 100644 index 3373152..0000000 --- a/VIRTUOS_ExpansionPluginTests/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -* text=auto -*.bat eol=crlf \ No newline at end of file diff --git a/VIRTUOS_ExpansionPluginTests/.gitignore b/VIRTUOS_ExpansionPluginTests/.gitignore deleted file mode 100644 index c66e5a0..0000000 --- a/VIRTUOS_ExpansionPluginTests/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ - -.hg/ -binaries/ -deriveddatacache/ -.vs/ -build/ -intermediate/ -PACKPLUGIN/ -COMPPLUGIN/ -saved/ -*.orig -*.sln -*.xlsx diff --git a/VIRTUOS_ExpansionPluginTests/.vsconfig b/VIRTUOS_ExpansionPluginTests/.vsconfig index b3c233d..3b919ea 100644 --- a/VIRTUOS_ExpansionPluginTests/.vsconfig +++ b/VIRTUOS_ExpansionPluginTests/.vsconfig @@ -1,10 +1,12 @@ { "version": "1.0", "components": [ + "Component.Unreal.Debugger", + "Component.Unreal.Ide", "Microsoft.Net.Component.4.6.2.TargetingPack", - "Microsoft.VisualStudio.Component.Unreal.Workspace", "Microsoft.VisualStudio.Component.VC.14.38.17.8.ATL", "Microsoft.VisualStudio.Component.VC.14.38.17.8.x86.x64", + "Microsoft.VisualStudio.Component.VC.Llvm.Clang", "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", "Microsoft.VisualStudio.Component.Windows11SDK.22621", "Microsoft.VisualStudio.Workload.CoreEditor", diff --git a/VIRTUOS_ExpansionPluginTests/Config/DefaultEditor.ini b/VIRTUOS_ExpansionPluginTests/Config/DefaultEditor.ini index 4f9fc16..05b130e 100644 --- a/VIRTUOS_ExpansionPluginTests/Config/DefaultEditor.ini +++ b/VIRTUOS_ExpansionPluginTests/Config/DefaultEditor.ini @@ -7,8 +7,9 @@ +Profiles=(ProfileName="Default",DirectionalLightIntensity=2.620000,DirectionalLightColor=(R=0.990000,G=0.839850,B=0.732600,A=1.000000),SkyLightIntensity=0.880000,bRotateLightingRig=False,bShowEnvironment=True,bShowFloor=True,EnvironmentCubeMapPath="",PostProcessingSettings=(bOverride_WhiteTemp=True,bOverride_WhiteTint=False,bOverride_ColorSaturation=True,bOverride_ColorContrast=True,bOverride_ColorGamma=True,bOverride_ColorGain=True,bOverride_ColorOffset=True,bOverride_ColorSaturationShadows=False,bOverride_ColorContrastShadows=False,bOverride_ColorGammaShadows=False,bOverride_ColorGainShadows=False,bOverride_ColorOffsetShadows=False,bOverride_ColorSaturationMidtones=False,bOverride_ColorContrastMidtones=False,bOverride_ColorGammaMidtones=False,bOverride_ColorGainMidtones=False,bOverride_ColorOffsetMidtones=False,bOverride_ColorSaturationHighlights=False,bOverride_ColorContrastHighlights=False,bOverride_ColorGammaHighlights=False,bOverride_ColorGainHighlights=False,bOverride_ColorOffsetHighlights=False,bOverride_ColorCorrectionShadowsMax=False,bOverride_ColorCorrectionHighlightsMin=False,bOverride_FilmWhitePoint=False,bOverride_FilmSaturation=False,bOverride_FilmChannelMixerRed=False,bOverride_FilmChannelMixerGreen=False,bOverride_FilmChannelMixerBlue=False,bOverride_FilmContrast=False,bOverride_FilmDynamicRange=False,bOverride_FilmHealAmount=False,bOverride_FilmToeAmount=False,bOverride_FilmShadowTint=False,bOverride_FilmShadowTintBlend=False,bOverride_FilmShadowTintAmount=False,bOverride_FilmSlope=True,bOverride_FilmToe=True,bOverride_FilmShoulder=True,bOverride_FilmBlackClip=True,bOverride_FilmWhiteClip=True,bOverride_SceneColorTint=False,bOverride_SceneFringeIntensity=False,bOverride_AmbientCubemapTint=False,bOverride_AmbientCubemapIntensity=False,bOverride_BloomIntensity=True,bOverride_BloomThreshold=False,bOverride_Bloom1Tint=False,bOverride_Bloom1Size=False,bOverride_Bloom2Size=False,bOverride_Bloom2Tint=False,bOverride_Bloom3Tint=False,bOverride_Bloom3Size=False,bOverride_Bloom4Tint=False,bOverride_Bloom4Size=False,bOverride_Bloom5Tint=False,bOverride_Bloom5Size=False,bOverride_Bloom6Tint=False,bOverride_Bloom6Size=False,bOverride_BloomSizeScale=False,bOverride_BloomDirtMaskIntensity=False,bOverride_BloomDirtMaskTint=False,bOverride_BloomDirtMask=False,bOverride_AutoExposureMethod=True,bOverride_AutoExposureLowPercent=False,bOverride_AutoExposureHighPercent=False,bOverride_AutoExposureMinBrightness=True,bOverride_AutoExposureMaxBrightness=True,bOverride_AutoExposureSpeedUp=False,bOverride_AutoExposureSpeedDown=False,bOverride_AutoExposureBias=True,bOverride_HistogramLogMin=True,bOverride_HistogramLogMax=True,bOverride_LensFlareIntensity=False,bOverride_LensFlareTint=False,bOverride_LensFlareTints=False,bOverride_LensFlareBokehSize=False,bOverride_LensFlareBokehShape=False,bOverride_LensFlareThreshold=False,bOverride_VignetteIntensity=True,bOverride_GrainIntensity=False,bOverride_GrainJitter=False,bOverride_AmbientOcclusionIntensity=True,bOverride_AmbientOcclusionStaticFraction=True,bOverride_AmbientOcclusionRadius=True,bOverride_AmbientOcclusionFadeDistance=False,bOverride_AmbientOcclusionFadeRadius=False,bOverride_AmbientOcclusionDistance=False,bOverride_AmbientOcclusionRadiusInWS=False,bOverride_AmbientOcclusionPower=True,bOverride_AmbientOcclusionBias=True,bOverride_AmbientOcclusionQuality=True,bOverride_AmbientOcclusionMipBlend=True,bOverride_AmbientOcclusionMipScale=True,bOverride_AmbientOcclusionMipThreshold=True,bOverride_LPVIntensity=False,bOverride_LPVDirectionalOcclusionIntensity=False,bOverride_LPVDirectionalOcclusionRadius=False,bOverride_LPVDiffuseOcclusionExponent=False,bOverride_LPVSpecularOcclusionExponent=False,bOverride_LPVDiffuseOcclusionIntensity=False,bOverride_LPVSpecularOcclusionIntensity=False,bOverride_LPVSize=False,bOverride_LPVSecondaryOcclusionIntensity=False,bOverride_LPVSecondaryBounceIntensity=False,bOverride_LPVGeometryVolumeBias=False,bOverride_LPVVplInjectionBias=False,bOverride_LPVEmissiveInjectionIntensity=False,bOverride_IndirectLightingColor=False,bOverride_IndirectLightingIntensity=False,bOverride_ColorGradingIntensity=True,bOverride_ColorGradingLUT=True,bOverride_DepthOfFieldFocalDistance=False,bOverride_DepthOfFieldFstop=False,bOverride_DepthOfFieldSensorWidth=False,bOverride_DepthOfFieldDepthBlurRadius=False,bOverride_DepthOfFieldDepthBlurAmount=False,bOverride_DepthOfFieldFocalRegion=False,bOverride_DepthOfFieldNearTransitionRegion=False,bOverride_DepthOfFieldFarTransitionRegion=False,bOverride_DepthOfFieldScale=True,bOverride_DepthOfFieldMaxBokehSize=False,bOverride_DepthOfFieldNearBlurSize=False,bOverride_DepthOfFieldFarBlurSize=False,bOverride_DepthOfFieldMethod=True,bOverride_MobileHQGaussian=False,bOverride_DepthOfFieldBokehShape=False,bOverride_DepthOfFieldOcclusion=False,bOverride_DepthOfFieldColorThreshold=False,bOverride_DepthOfFieldSizeThreshold=False,bOverride_DepthOfFieldSkyFocusDistance=False,bOverride_DepthOfFieldVignetteSize=False,bOverride_MotionBlurAmount=False,bOverride_MotionBlurMax=False,bOverride_MotionBlurPerObjectSize=False,bOverride_ScreenPercentage=False,bOverride_ScreenSpaceReflectionIntensity=True,bOverride_ScreenSpaceReflectionQuality=True,bOverride_ScreenSpaceReflectionMaxRoughness=True,bOverride_ScreenSpaceReflectionRoughnessScale=False,WhiteTemp=6700.000000,WhiteTint=0.000000,ColorSaturation=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrast=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGamma=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGain=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffset=(X=0.005000,Y=0.005000,Z=0.005000,W=0.000000),ColorSaturationShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetShadows=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorCorrectionShadowsMax=0.090000,ColorSaturationMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetMidtones=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetHighlights=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorCorrectionHighlightsMin=0.500000,FilmWhitePoint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),FilmShadowTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),FilmShadowTintBlend=0.500000,FilmShadowTintAmount=0.000000,FilmSaturation=1.000000,FilmChannelMixerRed=(R=1.000000,G=0.000000,B=0.000000,A=1.000000),FilmChannelMixerGreen=(R=0.000000,G=1.000000,B=0.000000,A=1.000000),FilmChannelMixerBlue=(R=0.000000,G=0.000000,B=1.000000,A=1.000000),FilmContrast=0.030000,FilmToeAmount=1.000000,FilmHealAmount=0.180000,FilmDynamicRange=4.000000,FilmSlope=0.880000,FilmToe=0.550000,FilmShoulder=0.260000,FilmBlackClip=0.000000,FilmWhiteClip=0.040000,SceneColorTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SceneFringeIntensity=0.000000,BloomIntensity=1.000000,BloomThreshold=1.000000,BloomSizeScale=4.000000,Bloom1Size=1.000000,Bloom2Size=4.000000,Bloom3Size=16.000000,Bloom4Size=32.000000,Bloom5Size=64.000000,Bloom6Size=64.000000,Bloom1Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),Bloom2Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),Bloom3Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),Bloom4Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),Bloom5Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),Bloom6Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),BloomDirtMaskIntensity=1.000000,BloomDirtMaskTint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),BloomDirtMask=None,AmbientCubemapTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),AmbientCubemapIntensity=1.000000,AmbientCubemap=None,AutoExposureMethod=AEM_Histogram,AutoExposureLowPercent=80.000000,AutoExposureHighPercent=98.300003,AutoExposureMinBrightness=1.000000,AutoExposureMaxBrightness=1.000000,AutoExposureSpeedUp=3.000000,AutoExposureSpeedDown=1.000000,AutoExposureBias=0.330000,HistogramLogMin=-8.000000,HistogramLogMax=4.000000,LensFlareIntensity=1.000000,LensFlareTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LensFlareBokehSize=3.000000,LensFlareThreshold=8.000000,LensFlareBokehShape=None,LensFlareTints[0]=(R=1.000000,G=0.800000,B=0.400000,A=0.600000),LensFlareTints[1]=(R=1.000000,G=1.000000,B=0.600000,A=0.530000),LensFlareTints[2]=(R=0.800000,G=0.800000,B=1.000000,A=0.460000),LensFlareTints[3]=(R=0.500000,G=1.000000,B=0.400000,A=0.390000),LensFlareTints[4]=(R=0.500000,G=0.800000,B=1.000000,A=0.310000),LensFlareTints[5]=(R=0.900000,G=1.000000,B=0.800000,A=0.270000),LensFlareTints[6]=(R=1.000000,G=0.800000,B=0.400000,A=0.220000),LensFlareTints[7]=(R=0.900000,G=0.700000,B=0.700000,A=0.150000),VignetteIntensity=0.161468,GrainJitter=0.000000,GrainIntensity=0.000000,AmbientOcclusionIntensity=1.000000,AmbientOcclusionStaticFraction=1.000000,AmbientOcclusionRadius=73.477997,AmbientOcclusionRadiusInWS=False,AmbientOcclusionFadeDistance=8000.000000,AmbientOcclusionFadeRadius=5000.000000,AmbientOcclusionDistance=80.000000,AmbientOcclusionPower=1.200000,AmbientOcclusionBias=3.000000,AmbientOcclusionQuality=100.000000,AmbientOcclusionMipBlend=0.600000,AmbientOcclusionMipScale=1.700000,AmbientOcclusionMipThreshold=0.010000,IndirectLightingColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),IndirectLightingIntensity=1.000000,ColorGradingIntensity=0.000000,ColorGradingLUT=Texture2D'/Engine/EditorResources/RGBTable16x1_AssetViewer.RGBTable16x1_AssetViewer',DepthOfFieldMethod=DOFM_BokehDOF,bMobileHQGaussian=False,DepthOfFieldFstop=4.000000,DepthOfFieldSensorWidth=24.576000,DepthOfFieldFocalDistance=1000.000000,DepthOfFieldDepthBlurAmount=1.000000,DepthOfFieldDepthBlurRadius=0.000000,DepthOfFieldFocalRegion=0.000000,DepthOfFieldNearTransitionRegion=300.000000,DepthOfFieldFarTransitionRegion=500.000000,DepthOfFieldScale=0.000000,DepthOfFieldMaxBokehSize=15.000000,DepthOfFieldNearBlurSize=15.000000,DepthOfFieldFarBlurSize=15.000000,DepthOfFieldBokehShape=None,DepthOfFieldOcclusion=0.400000,DepthOfFieldColorThreshold=1.000000,DepthOfFieldSizeThreshold=0.080000,DepthOfFieldSkyFocusDistance=0.000000,DepthOfFieldVignetteSize=200.000000,MotionBlurAmount=0.500000,MotionBlurMax=5.000000,MotionBlurPerObjectSize=0.500000,LPVIntensity=1.000000,LPVVplInjectionBias=0.640000,LPVSize=5312.000000,LPVSecondaryOcclusionIntensity=0.000000,LPVSecondaryBounceIntensity=0.000000,LPVGeometryVolumeBias=0.384000,LPVEmissiveInjectionIntensity=1.000000,LPVDirectionalOcclusionIntensity=0.000000,LPVDirectionalOcclusionRadius=8.000000,LPVDiffuseOcclusionExponent=1.000000,LPVSpecularOcclusionExponent=7.000000,LPVDiffuseOcclusionIntensity=1.000000,LPVSpecularOcclusionIntensity=1.000000,ScreenSpaceReflectionIntensity=100.000000,ScreenSpaceReflectionQuality=100.000000,ScreenSpaceReflectionMaxRoughness=1.000000,ScreenPercentage=100.000000,WeightedBlendables=(Array=),Blendables=),bPostProcessingEnabled=True,LightingRigRotation=109.389069,RotationSpeed=2.000000,DirectionalLightRotation=(Pitch=-39.999985,Yaw=-67.500015,Roll=0.000000)) [/Script/AdvancedPreviewScene.SharedProfiles] -+Profiles=(ProfileName="Epic Headquarters",bSharedProfile=True,bIsEngineDefaultProfile=True,bUseSkyLighting=True,DirectionalLightIntensity=1.000000,DirectionalLightColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SkyLightIntensity=1.000000,bRotateLightingRig=False,bShowEnvironment=True,bShowFloor=False,bShowGrid=False,EnvironmentColor=(R=0.200000,G=0.200000,B=0.200000,A=1.000000),EnvironmentIntensity=1.000000,EnvironmentCubeMapPath="/Engine/EditorMaterials/AssetViewer/EpicQuadPanorama_CC+EV1.EpicQuadPanorama_CC+EV1",bPostProcessingEnabled=True,PostProcessingSettings=(bOverride_TemperatureType=False,bOverride_WhiteTemp=False,bOverride_WhiteTint=False,bOverride_ColorSaturation=False,bOverride_ColorContrast=False,bOverride_ColorGamma=False,bOverride_ColorGain=False,bOverride_ColorOffset=False,bOverride_ColorSaturationShadows=False,bOverride_ColorContrastShadows=False,bOverride_ColorGammaShadows=False,bOverride_ColorGainShadows=False,bOverride_ColorOffsetShadows=False,bOverride_ColorSaturationMidtones=False,bOverride_ColorContrastMidtones=False,bOverride_ColorGammaMidtones=False,bOverride_ColorGainMidtones=False,bOverride_ColorOffsetMidtones=False,bOverride_ColorSaturationHighlights=False,bOverride_ColorContrastHighlights=False,bOverride_ColorGammaHighlights=False,bOverride_ColorGainHighlights=False,bOverride_ColorOffsetHighlights=False,bOverride_ColorCorrectionShadowsMax=False,bOverride_ColorCorrectionHighlightsMin=False,bOverride_ColorCorrectionHighlightsMax=False,bOverride_BlueCorrection=False,bOverride_ExpandGamut=False,bOverride_ToneCurveAmount=False,bOverride_FilmSlope=False,bOverride_FilmToe=False,bOverride_FilmShoulder=False,bOverride_FilmBlackClip=False,bOverride_FilmWhiteClip=False,bOverride_SceneColorTint=False,bOverride_SceneFringeIntensity=False,bOverride_ChromaticAberrationStartOffset=False,bOverride_bMegaLights=False,bOverride_AmbientCubemapTint=False,bOverride_AmbientCubemapIntensity=False,bOverride_BloomMethod=False,bOverride_BloomIntensity=False,bOverride_BloomThreshold=False,bOverride_Bloom1Tint=False,bOverride_Bloom1Size=False,bOverride_Bloom2Size=False,bOverride_Bloom2Tint=False,bOverride_Bloom3Tint=False,bOverride_Bloom3Size=False,bOverride_Bloom4Tint=False,bOverride_Bloom4Size=False,bOverride_Bloom5Tint=False,bOverride_Bloom5Size=False,bOverride_Bloom6Tint=False,bOverride_Bloom6Size=False,bOverride_BloomSizeScale=False,bOverride_BloomConvolutionTexture=False,bOverride_BloomConvolutionScatterDispersion=False,bOverride_BloomConvolutionSize=False,bOverride_BloomConvolutionCenterUV=False,bOverride_BloomConvolutionPreFilterMin=False,bOverride_BloomConvolutionPreFilterMax=False,bOverride_BloomConvolutionPreFilterMult=False,bOverride_BloomConvolutionBufferScale=False,bOverride_BloomDirtMaskIntensity=False,bOverride_BloomDirtMaskTint=False,bOverride_BloomDirtMask=False,bOverride_CameraShutterSpeed=False,bOverride_CameraISO=False,bOverride_AutoExposureMethod=False,bOverride_AutoExposureLowPercent=False,bOverride_AutoExposureHighPercent=False,bOverride_AutoExposureMinBrightness=False,bOverride_AutoExposureMaxBrightness=False,bOverride_AutoExposureSpeedUp=False,bOverride_AutoExposureSpeedDown=False,bOverride_AutoExposureBias=False,bOverride_AutoExposureBiasCurve=False,bOverride_AutoExposureMeterMask=False,bOverride_AutoExposureApplyPhysicalCameraExposure=False,bOverride_HistogramLogMin=False,bOverride_HistogramLogMax=False,bOverride_LocalExposureMethod=False,bOverride_LocalExposureHighlightContrastScale=False,bOverride_LocalExposureShadowContrastScale=False,bOverride_LocalExposureHighlightContrastCurve=False,bOverride_LocalExposureShadowContrastCurve=False,bOverride_LocalExposureHighlightThreshold=False,bOverride_LocalExposureShadowThreshold=False,bOverride_LocalExposureDetailStrength=False,bOverride_LocalExposureBlurredLuminanceBlend=False,bOverride_LocalExposureBlurredLuminanceKernelSizePercent=False,bOverride_LocalExposureMiddleGreyBias=False,bOverride_LensFlareIntensity=False,bOverride_LensFlareTint=False,bOverride_LensFlareTints=False,bOverride_LensFlareBokehSize=False,bOverride_LensFlareBokehShape=False,bOverride_LensFlareThreshold=False,bOverride_VignetteIntensity=False,bOverride_Sharpen=False,bOverride_FilmGrainIntensity=False,bOverride_FilmGrainIntensityShadows=False,bOverride_FilmGrainIntensityMidtones=False,bOverride_FilmGrainIntensityHighlights=False,bOverride_FilmGrainShadowsMax=False,bOverride_FilmGrainHighlightsMin=False,bOverride_FilmGrainHighlightsMax=False,bOverride_FilmGrainTexelSize=False,bOverride_FilmGrainTexture=False,bOverride_AmbientOcclusionIntensity=False,bOverride_AmbientOcclusionStaticFraction=False,bOverride_AmbientOcclusionRadius=False,bOverride_AmbientOcclusionFadeDistance=False,bOverride_AmbientOcclusionFadeRadius=False,bOverride_AmbientOcclusionRadiusInWS=False,bOverride_AmbientOcclusionPower=False,bOverride_AmbientOcclusionBias=False,bOverride_AmbientOcclusionQuality=False,bOverride_AmbientOcclusionMipBlend=False,bOverride_AmbientOcclusionMipScale=False,bOverride_AmbientOcclusionMipThreshold=False,bOverride_AmbientOcclusionTemporalBlendWeight=False,bOverride_RayTracingAO=False,bOverride_RayTracingAOSamplesPerPixel=False,bOverride_RayTracingAOIntensity=False,bOverride_RayTracingAORadius=False,bOverride_IndirectLightingColor=False,bOverride_IndirectLightingIntensity=False,bOverride_ColorGradingIntensity=False,bOverride_ColorGradingLUT=False,bOverride_DepthOfFieldFocalDistance=False,bOverride_DepthOfFieldFstop=False,bOverride_DepthOfFieldMinFstop=False,bOverride_DepthOfFieldBladeCount=False,bOverride_DepthOfFieldSensorWidth=False,bOverride_DepthOfFieldSqueezeFactor=False,bOverride_DepthOfFieldDepthBlurRadius=False,bOverride_DepthOfFieldUseHairDepth=False,bOverride_DepthOfFieldDepthBlurAmount=False,bOverride_DepthOfFieldFocalRegion=False,bOverride_DepthOfFieldNearTransitionRegion=False,bOverride_DepthOfFieldFarTransitionRegion=False,bOverride_DepthOfFieldScale=False,bOverride_DepthOfFieldNearBlurSize=False,bOverride_DepthOfFieldFarBlurSize=False,bOverride_MobileHQGaussian=False,bOverride_DepthOfFieldOcclusion=False,bOverride_DepthOfFieldSkyFocusDistance=False,bOverride_DepthOfFieldVignetteSize=False,bOverride_MotionBlurAmount=False,bOverride_MotionBlurMax=False,bOverride_MotionBlurTargetFPS=False,bOverride_MotionBlurPerObjectSize=False,bOverride_ReflectionMethod=False,bOverride_LumenReflectionQuality=False,bOverride_ScreenSpaceReflectionIntensity=False,bOverride_ScreenSpaceReflectionQuality=False,bOverride_ScreenSpaceReflectionMaxRoughness=False,bOverride_ScreenSpaceReflectionRoughnessScale=False,bOverride_UserFlags=False,bOverride_RayTracingReflectionsMaxRoughness=False,bOverride_RayTracingReflectionsMaxBounces=False,bOverride_RayTracingReflectionsSamplesPerPixel=False,bOverride_RayTracingReflectionsShadows=False,bOverride_RayTracingReflectionsTranslucency=False,bOverride_TranslucencyType=False,bOverride_RayTracingTranslucencyMaxRoughness=False,bOverride_RayTracingTranslucencyRefractionRays=False,bOverride_RayTracingTranslucencySamplesPerPixel=False,bOverride_RayTracingTranslucencyShadows=False,bOverride_RayTracingTranslucencyRefraction=False,bOverride_DynamicGlobalIlluminationMethod=False,bOverride_LumenSceneLightingQuality=False,bOverride_LumenSceneDetail=False,bOverride_LumenSceneViewDistance=False,bOverride_LumenSceneLightingUpdateSpeed=False,bOverride_LumenFinalGatherQuality=False,bOverride_LumenFinalGatherLightingUpdateSpeed=False,bOverride_LumenFinalGatherScreenTraces=False,bOverride_LumenMaxTraceDistance=False,bOverride_LumenDiffuseColorBoost=False,bOverride_LumenSkylightLeaking=False,bOverride_LumenFullSkylightLeakingDistance=False,bOverride_LumenRayLightingMode=False,bOverride_LumenReflectionsScreenTraces=False,bOverride_LumenFrontLayerTranslucencyReflections=False,bOverride_LumenMaxRoughnessToTraceReflections=False,bOverride_LumenMaxReflectionBounces=False,bOverride_LumenMaxRefractionBounces=False,bOverride_LumenSurfaceCacheResolution=False,bOverride_RayTracingGI=False,bOverride_RayTracingGIMaxBounces=False,bOverride_RayTracingGISamplesPerPixel=False,bOverride_PathTracingMaxBounces=False,bOverride_PathTracingSamplesPerPixel=False,bOverride_PathTracingMaxPathIntensity=False,bOverride_PathTracingEnableEmissiveMaterials=False,bOverride_PathTracingEnableReferenceDOF=False,bOverride_PathTracingEnableReferenceAtmosphere=False,bOverride_PathTracingEnableDenoiser=False,bOverride_PathTracingIncludeEmissive=False,bOverride_PathTracingIncludeDiffuse=False,bOverride_PathTracingIncludeIndirectDiffuse=False,bOverride_PathTracingIncludeSpecular=False,bOverride_PathTracingIncludeIndirectSpecular=False,bOverride_PathTracingIncludeVolume=False,bOverride_PathTracingIncludeIndirectVolume=False,bMobileHQGaussian=False,BloomMethod=BM_SOG,AutoExposureMethod=AEM_Histogram,TemperatureType=TEMP_WhiteBalance,WhiteTemp=6500.000000,WhiteTint=0.000000,ColorSaturation=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrast=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGamma=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGain=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffset=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetShadows=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetMidtones=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetHighlights=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorCorrectionHighlightsMin=0.500000,ColorCorrectionHighlightsMax=1.000000,ColorCorrectionShadowsMax=0.090000,BlueCorrection=0.600000,ExpandGamut=1.000000,ToneCurveAmount=1.000000,FilmSlope=0.880000,FilmToe=0.550000,FilmShoulder=0.260000,FilmBlackClip=0.000000,FilmWhiteClip=0.040000,SceneColorTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SceneFringeIntensity=0.000000,ChromaticAberrationStartOffset=0.000000,BloomIntensity=0.675000,BloomThreshold=-1.000000,BloomSizeScale=4.000000,Bloom1Size=0.300000,Bloom2Size=1.000000,Bloom3Size=2.000000,Bloom4Size=10.000000,Bloom5Size=30.000000,Bloom6Size=64.000000,Bloom1Tint=(R=0.346500,G=0.346500,B=0.346500,A=1.000000),Bloom2Tint=(R=0.138000,G=0.138000,B=0.138000,A=1.000000),Bloom3Tint=(R=0.117600,G=0.117600,B=0.117600,A=1.000000),Bloom4Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom5Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom6Tint=(R=0.061000,G=0.061000,B=0.061000,A=1.000000),BloomConvolutionScatterDispersion=1.000000,BloomConvolutionSize=1.000000,BloomConvolutionTexture=None,BloomConvolutionCenterUV=(X=0.500000,Y=0.500000),BloomConvolutionPreFilterMin=7.000000,BloomConvolutionPreFilterMax=15000.000000,BloomConvolutionPreFilterMult=15.000000,BloomConvolutionBufferScale=0.133000,BloomDirtMask=None,BloomDirtMaskIntensity=0.000000,BloomDirtMaskTint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),DynamicGlobalIlluminationMethod=Lumen,IndirectLightingColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),IndirectLightingIntensity=1.000000,LumenRayLightingMode=Default,LumenSceneLightingQuality=1.000000,LumenSceneDetail=1.000000,LumenSceneViewDistance=20000.000000,LumenSceneLightingUpdateSpeed=1.000000,LumenFinalGatherQuality=1.000000,LumenFinalGatherLightingUpdateSpeed=1.000000,LumenFinalGatherScreenTraces=True,LumenMaxTraceDistance=20000.000000,LumenDiffuseColorBoost=1.000000,LumenSkylightLeaking=0.000000,LumenFullSkylightLeakingDistance=1000.000000,LumenSurfaceCacheResolution=1.000000,ReflectionMethod=Lumen,LumenReflectionQuality=1.000000,LumenReflectionsScreenTraces=True,LumenFrontLayerTranslucencyReflections=False,LumenMaxRoughnessToTraceReflections=0.400000,LumenMaxReflectionBounces=1,LumenMaxRefractionBounces=0,ScreenSpaceReflectionIntensity=100.000000,ScreenSpaceReflectionQuality=50.000000,ScreenSpaceReflectionMaxRoughness=0.600000,bMegaLights=True,AmbientCubemapTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),AmbientCubemapIntensity=1.000000,AmbientCubemap=None,CameraShutterSpeed=60.000000,CameraISO=100.000000,DepthOfFieldFstop=4.000000,DepthOfFieldMinFstop=1.200000,DepthOfFieldBladeCount=5,AutoExposureBias=1.000000,AutoExposureBiasBackup=0.000000,bOverride_AutoExposureBiasBackup=False,AutoExposureApplyPhysicalCameraExposure=True,AutoExposureBiasCurve=None,AutoExposureMeterMask=None,AutoExposureLowPercent=10.000000,AutoExposureHighPercent=90.000000,AutoExposureMinBrightness=0.030000,AutoExposureMaxBrightness=8.000000,AutoExposureSpeedUp=3.000000,AutoExposureSpeedDown=1.000000,HistogramLogMin=-8.000000,HistogramLogMax=4.000000,LocalExposureMethod=Bilateral,LocalExposureHighlightContrastScale=1.000000,LocalExposureShadowContrastScale=1.000000,LocalExposureHighlightContrastCurve=None,LocalExposureShadowContrastCurve=None,LocalExposureHighlightThreshold=0.000000,LocalExposureShadowThreshold=0.000000,LocalExposureDetailStrength=1.000000,LocalExposureBlurredLuminanceBlend=0.600000,LocalExposureBlurredLuminanceKernelSizePercent=50.000000,LocalExposureMiddleGreyBias=0.000000,LensFlareIntensity=1.000000,LensFlareTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LensFlareBokehSize=3.000000,LensFlareThreshold=8.000000,LensFlareBokehShape=None,LensFlareTints[0]=(R=1.000000,G=0.800000,B=0.400000,A=0.600000),LensFlareTints[1]=(R=1.000000,G=1.000000,B=0.600000,A=0.530000),LensFlareTints[2]=(R=0.800000,G=0.800000,B=1.000000,A=0.460000),LensFlareTints[3]=(R=0.500000,G=1.000000,B=0.400000,A=0.390000),LensFlareTints[4]=(R=0.500000,G=0.800000,B=1.000000,A=0.310000),LensFlareTints[5]=(R=0.900000,G=1.000000,B=0.800000,A=0.270000),LensFlareTints[6]=(R=1.000000,G=0.800000,B=0.400000,A=0.220000),LensFlareTints[7]=(R=0.900000,G=0.700000,B=0.700000,A=0.150000),VignetteIntensity=0.400000,Sharpen=0.000000,FilmGrainIntensity=0.000000,FilmGrainIntensityShadows=1.000000,FilmGrainIntensityMidtones=1.000000,FilmGrainIntensityHighlights=1.000000,FilmGrainShadowsMax=0.090000,FilmGrainHighlightsMin=0.500000,FilmGrainHighlightsMax=1.000000,FilmGrainTexelSize=1.000000,FilmGrainTexture=None,AmbientOcclusionIntensity=0.500000,AmbientOcclusionStaticFraction=1.000000,AmbientOcclusionRadius=200.000000,AmbientOcclusionRadiusInWS=False,AmbientOcclusionFadeDistance=8000.000000,AmbientOcclusionFadeRadius=5000.000000,AmbientOcclusionPower=2.000000,AmbientOcclusionBias=3.000000,AmbientOcclusionQuality=50.000000,AmbientOcclusionMipBlend=0.600000,AmbientOcclusionMipScale=1.700000,AmbientOcclusionMipThreshold=0.010000,AmbientOcclusionTemporalBlendWeight=0.100000,RayTracingAO=False,RayTracingAOSamplesPerPixel=1,RayTracingAOIntensity=1.000000,RayTracingAORadius=200.000000,ColorGradingIntensity=1.000000,ColorGradingLUT=None,DepthOfFieldSensorWidth=24.576000,DepthOfFieldSqueezeFactor=1.000000,DepthOfFieldFocalDistance=0.000000,DepthOfFieldDepthBlurAmount=1.000000,DepthOfFieldDepthBlurRadius=0.000000,DepthOfFieldUseHairDepth=False,DepthOfFieldFocalRegion=0.000000,DepthOfFieldNearTransitionRegion=300.000000,DepthOfFieldFarTransitionRegion=500.000000,DepthOfFieldScale=0.000000,DepthOfFieldNearBlurSize=15.000000,DepthOfFieldFarBlurSize=15.000000,DepthOfFieldOcclusion=0.400000,DepthOfFieldSkyFocusDistance=0.000000,DepthOfFieldVignetteSize=200.000000,MotionBlurAmount=0.500000,MotionBlurMax=5.000000,MotionBlurTargetFPS=30,MotionBlurPerObjectSize=0.000000,TranslucencyType=Raster,RayTracingTranslucencyMaxRoughness=0.600000,RayTracingTranslucencyRefractionRays=3,RayTracingTranslucencySamplesPerPixel=1,RayTracingTranslucencyShadows=Hard_shadows,RayTracingTranslucencyRefraction=True,PathTracingMaxBounces=32,PathTracingSamplesPerPixel=2048,PathTracingMaxPathIntensity=24.000000,PathTracingEnableEmissiveMaterials=True,PathTracingEnableReferenceDOF=False,PathTracingEnableReferenceAtmosphere=False,PathTracingEnableDenoiser=True,PathTracingIncludeEmissive=True,PathTracingIncludeDiffuse=True,PathTracingIncludeIndirectDiffuse=True,PathTracingIncludeSpecular=True,PathTracingIncludeIndirectSpecular=True,PathTracingIncludeVolume=True,PathTracingIncludeIndirectVolume=True,UserFlags=0,WeightedBlendables=(Array=)),LightingRigRotation=0.000000,RotationSpeed=2.000000,DirectionalLightRotation=(Pitch=-40.000000,Yaw=-67.500000,Roll=0.000000),bEnableToneMapping=True,bShowMeshEdges=False) -+Profiles=(ProfileName="Grey Wireframe",bSharedProfile=True,bIsEngineDefaultProfile=True,bUseSkyLighting=True,DirectionalLightIntensity=1.000000,DirectionalLightColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SkyLightIntensity=1.000000,bRotateLightingRig=False,bShowEnvironment=False,bShowFloor=False,bShowGrid=True,EnvironmentColor=(R=0.039216,G=0.039216,B=0.039216,A=1.000000),EnvironmentIntensity=1.000000,EnvironmentCubeMapPath="/Engine/EditorMaterials/AssetViewer/EpicQuadPanorama_CC+EV1.EpicQuadPanorama_CC+EV1",bPostProcessingEnabled=False,PostProcessingSettings=(bOverride_TemperatureType=False,bOverride_WhiteTemp=False,bOverride_WhiteTint=False,bOverride_ColorSaturation=False,bOverride_ColorContrast=False,bOverride_ColorGamma=False,bOverride_ColorGain=False,bOverride_ColorOffset=False,bOverride_ColorSaturationShadows=False,bOverride_ColorContrastShadows=False,bOverride_ColorGammaShadows=False,bOverride_ColorGainShadows=False,bOverride_ColorOffsetShadows=False,bOverride_ColorSaturationMidtones=False,bOverride_ColorContrastMidtones=False,bOverride_ColorGammaMidtones=False,bOverride_ColorGainMidtones=False,bOverride_ColorOffsetMidtones=False,bOverride_ColorSaturationHighlights=False,bOverride_ColorContrastHighlights=False,bOverride_ColorGammaHighlights=False,bOverride_ColorGainHighlights=False,bOverride_ColorOffsetHighlights=False,bOverride_ColorCorrectionShadowsMax=False,bOverride_ColorCorrectionHighlightsMin=False,bOverride_ColorCorrectionHighlightsMax=False,bOverride_BlueCorrection=False,bOverride_ExpandGamut=False,bOverride_ToneCurveAmount=False,bOverride_FilmSlope=False,bOverride_FilmToe=False,bOverride_FilmShoulder=False,bOverride_FilmBlackClip=False,bOverride_FilmWhiteClip=False,bOverride_SceneColorTint=False,bOverride_SceneFringeIntensity=False,bOverride_ChromaticAberrationStartOffset=False,bOverride_bMegaLights=False,bOverride_AmbientCubemapTint=False,bOverride_AmbientCubemapIntensity=False,bOverride_BloomMethod=False,bOverride_BloomIntensity=False,bOverride_BloomThreshold=False,bOverride_Bloom1Tint=False,bOverride_Bloom1Size=False,bOverride_Bloom2Size=False,bOverride_Bloom2Tint=False,bOverride_Bloom3Tint=False,bOverride_Bloom3Size=False,bOverride_Bloom4Tint=False,bOverride_Bloom4Size=False,bOverride_Bloom5Tint=False,bOverride_Bloom5Size=False,bOverride_Bloom6Tint=False,bOverride_Bloom6Size=False,bOverride_BloomSizeScale=False,bOverride_BloomConvolutionTexture=False,bOverride_BloomConvolutionScatterDispersion=False,bOverride_BloomConvolutionSize=False,bOverride_BloomConvolutionCenterUV=False,bOverride_BloomConvolutionPreFilterMin=False,bOverride_BloomConvolutionPreFilterMax=False,bOverride_BloomConvolutionPreFilterMult=False,bOverride_BloomConvolutionBufferScale=False,bOverride_BloomDirtMaskIntensity=False,bOverride_BloomDirtMaskTint=False,bOverride_BloomDirtMask=False,bOverride_CameraShutterSpeed=False,bOverride_CameraISO=False,bOverride_AutoExposureMethod=False,bOverride_AutoExposureLowPercent=False,bOverride_AutoExposureHighPercent=False,bOverride_AutoExposureMinBrightness=False,bOverride_AutoExposureMaxBrightness=False,bOverride_AutoExposureSpeedUp=False,bOverride_AutoExposureSpeedDown=False,bOverride_AutoExposureBias=False,bOverride_AutoExposureBiasCurve=False,bOverride_AutoExposureMeterMask=False,bOverride_AutoExposureApplyPhysicalCameraExposure=False,bOverride_HistogramLogMin=False,bOverride_HistogramLogMax=False,bOverride_LocalExposureMethod=False,bOverride_LocalExposureHighlightContrastScale=False,bOverride_LocalExposureShadowContrastScale=False,bOverride_LocalExposureHighlightContrastCurve=False,bOverride_LocalExposureShadowContrastCurve=False,bOverride_LocalExposureHighlightThreshold=False,bOverride_LocalExposureShadowThreshold=False,bOverride_LocalExposureDetailStrength=False,bOverride_LocalExposureBlurredLuminanceBlend=False,bOverride_LocalExposureBlurredLuminanceKernelSizePercent=False,bOverride_LocalExposureMiddleGreyBias=False,bOverride_LensFlareIntensity=False,bOverride_LensFlareTint=False,bOverride_LensFlareTints=False,bOverride_LensFlareBokehSize=False,bOverride_LensFlareBokehShape=False,bOverride_LensFlareThreshold=False,bOverride_VignetteIntensity=False,bOverride_Sharpen=False,bOverride_FilmGrainIntensity=False,bOverride_FilmGrainIntensityShadows=False,bOverride_FilmGrainIntensityMidtones=False,bOverride_FilmGrainIntensityHighlights=False,bOverride_FilmGrainShadowsMax=False,bOverride_FilmGrainHighlightsMin=False,bOverride_FilmGrainHighlightsMax=False,bOverride_FilmGrainTexelSize=False,bOverride_FilmGrainTexture=False,bOverride_AmbientOcclusionIntensity=False,bOverride_AmbientOcclusionStaticFraction=False,bOverride_AmbientOcclusionRadius=False,bOverride_AmbientOcclusionFadeDistance=False,bOverride_AmbientOcclusionFadeRadius=False,bOverride_AmbientOcclusionRadiusInWS=False,bOverride_AmbientOcclusionPower=False,bOverride_AmbientOcclusionBias=False,bOverride_AmbientOcclusionQuality=False,bOverride_AmbientOcclusionMipBlend=False,bOverride_AmbientOcclusionMipScale=False,bOverride_AmbientOcclusionMipThreshold=False,bOverride_AmbientOcclusionTemporalBlendWeight=False,bOverride_RayTracingAO=False,bOverride_RayTracingAOSamplesPerPixel=False,bOverride_RayTracingAOIntensity=False,bOverride_RayTracingAORadius=False,bOverride_IndirectLightingColor=False,bOverride_IndirectLightingIntensity=False,bOverride_ColorGradingIntensity=False,bOverride_ColorGradingLUT=False,bOverride_DepthOfFieldFocalDistance=False,bOverride_DepthOfFieldFstop=False,bOverride_DepthOfFieldMinFstop=False,bOverride_DepthOfFieldBladeCount=False,bOverride_DepthOfFieldSensorWidth=False,bOverride_DepthOfFieldSqueezeFactor=False,bOverride_DepthOfFieldDepthBlurRadius=False,bOverride_DepthOfFieldUseHairDepth=False,bOverride_DepthOfFieldDepthBlurAmount=False,bOverride_DepthOfFieldFocalRegion=False,bOverride_DepthOfFieldNearTransitionRegion=False,bOverride_DepthOfFieldFarTransitionRegion=False,bOverride_DepthOfFieldScale=False,bOverride_DepthOfFieldNearBlurSize=False,bOverride_DepthOfFieldFarBlurSize=False,bOverride_MobileHQGaussian=False,bOverride_DepthOfFieldOcclusion=False,bOverride_DepthOfFieldSkyFocusDistance=False,bOverride_DepthOfFieldVignetteSize=False,bOverride_MotionBlurAmount=False,bOverride_MotionBlurMax=False,bOverride_MotionBlurTargetFPS=False,bOverride_MotionBlurPerObjectSize=False,bOverride_ReflectionMethod=False,bOverride_LumenReflectionQuality=False,bOverride_ScreenSpaceReflectionIntensity=False,bOverride_ScreenSpaceReflectionQuality=False,bOverride_ScreenSpaceReflectionMaxRoughness=False,bOverride_ScreenSpaceReflectionRoughnessScale=False,bOverride_UserFlags=False,bOverride_RayTracingReflectionsMaxRoughness=False,bOverride_RayTracingReflectionsMaxBounces=False,bOverride_RayTracingReflectionsSamplesPerPixel=False,bOverride_RayTracingReflectionsShadows=False,bOverride_RayTracingReflectionsTranslucency=False,bOverride_TranslucencyType=False,bOverride_RayTracingTranslucencyMaxRoughness=False,bOverride_RayTracingTranslucencyRefractionRays=False,bOverride_RayTracingTranslucencySamplesPerPixel=False,bOverride_RayTracingTranslucencyShadows=False,bOverride_RayTracingTranslucencyRefraction=False,bOverride_DynamicGlobalIlluminationMethod=False,bOverride_LumenSceneLightingQuality=False,bOverride_LumenSceneDetail=False,bOverride_LumenSceneViewDistance=False,bOverride_LumenSceneLightingUpdateSpeed=False,bOverride_LumenFinalGatherQuality=False,bOverride_LumenFinalGatherLightingUpdateSpeed=False,bOverride_LumenFinalGatherScreenTraces=False,bOverride_LumenMaxTraceDistance=False,bOverride_LumenDiffuseColorBoost=False,bOverride_LumenSkylightLeaking=False,bOverride_LumenFullSkylightLeakingDistance=False,bOverride_LumenRayLightingMode=False,bOverride_LumenReflectionsScreenTraces=False,bOverride_LumenFrontLayerTranslucencyReflections=False,bOverride_LumenMaxRoughnessToTraceReflections=False,bOverride_LumenMaxReflectionBounces=False,bOverride_LumenMaxRefractionBounces=False,bOverride_LumenSurfaceCacheResolution=False,bOverride_RayTracingGI=False,bOverride_RayTracingGIMaxBounces=False,bOverride_RayTracingGISamplesPerPixel=False,bOverride_PathTracingMaxBounces=False,bOverride_PathTracingSamplesPerPixel=False,bOverride_PathTracingMaxPathIntensity=False,bOverride_PathTracingEnableEmissiveMaterials=False,bOverride_PathTracingEnableReferenceDOF=False,bOverride_PathTracingEnableReferenceAtmosphere=False,bOverride_PathTracingEnableDenoiser=False,bOverride_PathTracingIncludeEmissive=False,bOverride_PathTracingIncludeDiffuse=False,bOverride_PathTracingIncludeIndirectDiffuse=False,bOverride_PathTracingIncludeSpecular=False,bOverride_PathTracingIncludeIndirectSpecular=False,bOverride_PathTracingIncludeVolume=False,bOverride_PathTracingIncludeIndirectVolume=False,bMobileHQGaussian=False,BloomMethod=BM_SOG,AutoExposureMethod=AEM_Histogram,TemperatureType=TEMP_WhiteBalance,WhiteTemp=6500.000000,WhiteTint=0.000000,ColorSaturation=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrast=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGamma=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGain=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffset=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetShadows=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetMidtones=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetHighlights=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorCorrectionHighlightsMin=0.500000,ColorCorrectionHighlightsMax=1.000000,ColorCorrectionShadowsMax=0.090000,BlueCorrection=0.600000,ExpandGamut=1.000000,ToneCurveAmount=1.000000,FilmSlope=0.880000,FilmToe=0.550000,FilmShoulder=0.260000,FilmBlackClip=0.000000,FilmWhiteClip=0.040000,SceneColorTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SceneFringeIntensity=0.000000,ChromaticAberrationStartOffset=0.000000,BloomIntensity=0.675000,BloomThreshold=-1.000000,BloomSizeScale=4.000000,Bloom1Size=0.300000,Bloom2Size=1.000000,Bloom3Size=2.000000,Bloom4Size=10.000000,Bloom5Size=30.000000,Bloom6Size=64.000000,Bloom1Tint=(R=0.346500,G=0.346500,B=0.346500,A=1.000000),Bloom2Tint=(R=0.138000,G=0.138000,B=0.138000,A=1.000000),Bloom3Tint=(R=0.117600,G=0.117600,B=0.117600,A=1.000000),Bloom4Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom5Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom6Tint=(R=0.061000,G=0.061000,B=0.061000,A=1.000000),BloomConvolutionScatterDispersion=1.000000,BloomConvolutionSize=1.000000,BloomConvolutionTexture=None,BloomConvolutionCenterUV=(X=0.500000,Y=0.500000),BloomConvolutionPreFilterMin=7.000000,BloomConvolutionPreFilterMax=15000.000000,BloomConvolutionPreFilterMult=15.000000,BloomConvolutionBufferScale=0.133000,BloomDirtMask=None,BloomDirtMaskIntensity=0.000000,BloomDirtMaskTint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),DynamicGlobalIlluminationMethod=Lumen,IndirectLightingColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),IndirectLightingIntensity=1.000000,LumenRayLightingMode=Default,LumenSceneLightingQuality=1.000000,LumenSceneDetail=1.000000,LumenSceneViewDistance=20000.000000,LumenSceneLightingUpdateSpeed=1.000000,LumenFinalGatherQuality=1.000000,LumenFinalGatherLightingUpdateSpeed=1.000000,LumenFinalGatherScreenTraces=True,LumenMaxTraceDistance=20000.000000,LumenDiffuseColorBoost=1.000000,LumenSkylightLeaking=0.000000,LumenFullSkylightLeakingDistance=1000.000000,LumenSurfaceCacheResolution=1.000000,ReflectionMethod=Lumen,LumenReflectionQuality=1.000000,LumenReflectionsScreenTraces=True,LumenFrontLayerTranslucencyReflections=False,LumenMaxRoughnessToTraceReflections=0.400000,LumenMaxReflectionBounces=1,LumenMaxRefractionBounces=0,ScreenSpaceReflectionIntensity=100.000000,ScreenSpaceReflectionQuality=50.000000,ScreenSpaceReflectionMaxRoughness=0.600000,bMegaLights=True,AmbientCubemapTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),AmbientCubemapIntensity=1.000000,AmbientCubemap=None,CameraShutterSpeed=60.000000,CameraISO=100.000000,DepthOfFieldFstop=4.000000,DepthOfFieldMinFstop=1.200000,DepthOfFieldBladeCount=5,AutoExposureBias=1.000000,AutoExposureBiasBackup=0.000000,bOverride_AutoExposureBiasBackup=False,AutoExposureApplyPhysicalCameraExposure=True,AutoExposureBiasCurve=None,AutoExposureMeterMask=None,AutoExposureLowPercent=10.000000,AutoExposureHighPercent=90.000000,AutoExposureMinBrightness=0.030000,AutoExposureMaxBrightness=8.000000,AutoExposureSpeedUp=3.000000,AutoExposureSpeedDown=1.000000,HistogramLogMin=-8.000000,HistogramLogMax=4.000000,LocalExposureMethod=Bilateral,LocalExposureHighlightContrastScale=1.000000,LocalExposureShadowContrastScale=1.000000,LocalExposureHighlightContrastCurve=None,LocalExposureShadowContrastCurve=None,LocalExposureHighlightThreshold=0.000000,LocalExposureShadowThreshold=0.000000,LocalExposureDetailStrength=1.000000,LocalExposureBlurredLuminanceBlend=0.600000,LocalExposureBlurredLuminanceKernelSizePercent=50.000000,LocalExposureMiddleGreyBias=0.000000,LensFlareIntensity=1.000000,LensFlareTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LensFlareBokehSize=3.000000,LensFlareThreshold=8.000000,LensFlareBokehShape=None,LensFlareTints[0]=(R=1.000000,G=0.800000,B=0.400000,A=0.600000),LensFlareTints[1]=(R=1.000000,G=1.000000,B=0.600000,A=0.530000),LensFlareTints[2]=(R=0.800000,G=0.800000,B=1.000000,A=0.460000),LensFlareTints[3]=(R=0.500000,G=1.000000,B=0.400000,A=0.390000),LensFlareTints[4]=(R=0.500000,G=0.800000,B=1.000000,A=0.310000),LensFlareTints[5]=(R=0.900000,G=1.000000,B=0.800000,A=0.270000),LensFlareTints[6]=(R=1.000000,G=0.800000,B=0.400000,A=0.220000),LensFlareTints[7]=(R=0.900000,G=0.700000,B=0.700000,A=0.150000),VignetteIntensity=0.400000,Sharpen=0.000000,FilmGrainIntensity=0.000000,FilmGrainIntensityShadows=1.000000,FilmGrainIntensityMidtones=1.000000,FilmGrainIntensityHighlights=1.000000,FilmGrainShadowsMax=0.090000,FilmGrainHighlightsMin=0.500000,FilmGrainHighlightsMax=1.000000,FilmGrainTexelSize=1.000000,FilmGrainTexture=None,AmbientOcclusionIntensity=0.500000,AmbientOcclusionStaticFraction=1.000000,AmbientOcclusionRadius=200.000000,AmbientOcclusionRadiusInWS=False,AmbientOcclusionFadeDistance=8000.000000,AmbientOcclusionFadeRadius=5000.000000,AmbientOcclusionPower=2.000000,AmbientOcclusionBias=3.000000,AmbientOcclusionQuality=50.000000,AmbientOcclusionMipBlend=0.600000,AmbientOcclusionMipScale=1.700000,AmbientOcclusionMipThreshold=0.010000,AmbientOcclusionTemporalBlendWeight=0.100000,RayTracingAO=False,RayTracingAOSamplesPerPixel=1,RayTracingAOIntensity=1.000000,RayTracingAORadius=200.000000,ColorGradingIntensity=1.000000,ColorGradingLUT=None,DepthOfFieldSensorWidth=24.576000,DepthOfFieldSqueezeFactor=1.000000,DepthOfFieldFocalDistance=0.000000,DepthOfFieldDepthBlurAmount=1.000000,DepthOfFieldDepthBlurRadius=0.000000,DepthOfFieldUseHairDepth=False,DepthOfFieldFocalRegion=0.000000,DepthOfFieldNearTransitionRegion=300.000000,DepthOfFieldFarTransitionRegion=500.000000,DepthOfFieldScale=0.000000,DepthOfFieldNearBlurSize=15.000000,DepthOfFieldFarBlurSize=15.000000,DepthOfFieldOcclusion=0.400000,DepthOfFieldSkyFocusDistance=0.000000,DepthOfFieldVignetteSize=200.000000,MotionBlurAmount=0.500000,MotionBlurMax=5.000000,MotionBlurTargetFPS=30,MotionBlurPerObjectSize=0.000000,TranslucencyType=Raster,RayTracingTranslucencyMaxRoughness=0.600000,RayTracingTranslucencyRefractionRays=3,RayTracingTranslucencySamplesPerPixel=1,RayTracingTranslucencyShadows=Hard_shadows,RayTracingTranslucencyRefraction=True,PathTracingMaxBounces=32,PathTracingSamplesPerPixel=2048,PathTracingMaxPathIntensity=24.000000,PathTracingEnableEmissiveMaterials=True,PathTracingEnableReferenceDOF=False,PathTracingEnableReferenceAtmosphere=False,PathTracingEnableDenoiser=True,PathTracingIncludeEmissive=True,PathTracingIncludeDiffuse=True,PathTracingIncludeIndirectDiffuse=True,PathTracingIncludeSpecular=True,PathTracingIncludeIndirectSpecular=True,PathTracingIncludeVolume=True,PathTracingIncludeIndirectVolume=True,UserFlags=0,WeightedBlendables=(Array=)),LightingRigRotation=0.000000,RotationSpeed=2.000000,DirectionalLightRotation=(Pitch=-40.000000,Yaw=-67.500000,Roll=0.000000),bEnableToneMapping=False,bShowMeshEdges=True) ++Profiles=(ProfileName="Epic Headquarters",bSharedProfile=True,bIsEngineDefaultProfile=True,bUseSkyLighting=True,DirectionalLightIntensity=1.000000,DirectionalLightColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SkyLightIntensity=1.000000,bRotateLightingRig=False,bShowEnvironment=True,bShowFloor=False,bShowGrid=False,EnvironmentColor=(R=0.200000,G=0.200000,B=0.200000,A=1.000000),EnvironmentIntensity=1.000000,EnvironmentCubeMapPath="/Engine/EditorMaterials/AssetViewer/EpicQuadPanorama_CC+EV1.EpicQuadPanorama_CC+EV1",bPostProcessingEnabled=True,PostProcessingSettings=(bOverride_TemperatureType=False,bOverride_WhiteTemp=False,bOverride_WhiteTint=False,bOverride_ColorSaturation=False,bOverride_ColorContrast=False,bOverride_ColorGamma=False,bOverride_ColorGain=False,bOverride_ColorOffset=False,bOverride_ColorSaturationShadows=False,bOverride_ColorContrastShadows=False,bOverride_ColorGammaShadows=False,bOverride_ColorGainShadows=False,bOverride_ColorOffsetShadows=False,bOverride_ColorSaturationMidtones=False,bOverride_ColorContrastMidtones=False,bOverride_ColorGammaMidtones=False,bOverride_ColorGainMidtones=False,bOverride_ColorOffsetMidtones=False,bOverride_ColorSaturationHighlights=False,bOverride_ColorContrastHighlights=False,bOverride_ColorGammaHighlights=False,bOverride_ColorGainHighlights=False,bOverride_ColorOffsetHighlights=False,bOverride_ColorCorrectionShadowsMax=False,bOverride_ColorCorrectionHighlightsMin=False,bOverride_ColorCorrectionHighlightsMax=False,bOverride_BlueCorrection=False,bOverride_ExpandGamut=False,bOverride_ToneCurveAmount=False,bOverride_FilmSlope=False,bOverride_FilmToe=False,bOverride_FilmShoulder=False,bOverride_FilmBlackClip=False,bOverride_FilmWhiteClip=False,bOverride_SceneColorTint=False,bOverride_SceneFringeIntensity=False,bOverride_ChromaticAberrationStartOffset=False,bOverride_bMegaLights=False,bOverride_AmbientCubemapTint=False,bOverride_AmbientCubemapIntensity=False,bOverride_BloomMethod=False,bOverride_BloomIntensity=False,bOverride_BloomThreshold=False,bOverride_Bloom1Tint=False,bOverride_Bloom1Size=False,bOverride_Bloom2Size=False,bOverride_Bloom2Tint=False,bOverride_Bloom3Tint=False,bOverride_Bloom3Size=False,bOverride_Bloom4Tint=False,bOverride_Bloom4Size=False,bOverride_Bloom5Tint=False,bOverride_Bloom5Size=False,bOverride_Bloom6Tint=False,bOverride_Bloom6Size=False,bOverride_BloomSizeScale=False,bOverride_BloomConvolutionTexture=False,bOverride_BloomConvolutionScatterDispersion=False,bOverride_BloomConvolutionSize=False,bOverride_BloomConvolutionCenterUV=False,bOverride_BloomConvolutionPreFilterMin=False,bOverride_BloomConvolutionPreFilterMax=False,bOverride_BloomConvolutionPreFilterMult=False,bOverride_BloomConvolutionBufferScale=False,bOverride_BloomDirtMaskIntensity=False,bOverride_BloomDirtMaskTint=False,bOverride_BloomDirtMask=False,bOverride_CameraShutterSpeed=False,bOverride_CameraISO=False,bOverride_AutoExposureMethod=False,bOverride_AutoExposureLowPercent=False,bOverride_AutoExposureHighPercent=False,bOverride_AutoExposureMinBrightness=False,bOverride_AutoExposureMaxBrightness=False,bOverride_AutoExposureSpeedUp=False,bOverride_AutoExposureSpeedDown=False,bOverride_AutoExposureBias=False,bOverride_AutoExposureBiasCurve=False,bOverride_AutoExposureMeterMask=False,bOverride_AutoExposureApplyPhysicalCameraExposure=False,bOverride_HistogramLogMin=False,bOverride_HistogramLogMax=False,bOverride_LocalExposureMethod=False,bOverride_LocalExposureHighlightContrastScale=False,bOverride_LocalExposureShadowContrastScale=False,bOverride_LocalExposureHighlightContrastCurve=False,bOverride_LocalExposureShadowContrastCurve=False,bOverride_LocalExposureHighlightThreshold=False,bOverride_LocalExposureShadowThreshold=False,bOverride_LocalExposureDetailStrength=False,bOverride_LocalExposureBlurredLuminanceBlend=False,bOverride_LocalExposureBlurredLuminanceKernelSizePercent=False,bOverride_LocalExposureHighlightThresholdStrength=False,bOverride_LocalExposureShadowThresholdStrength=False,bOverride_LocalExposureMiddleGreyBias=False,bOverride_LensFlareIntensity=False,bOverride_LensFlareTint=False,bOverride_LensFlareTints=False,bOverride_LensFlareBokehSize=False,bOverride_LensFlareBokehShape=False,bOverride_LensFlareThreshold=False,bOverride_VignetteIntensity=False,bOverride_Sharpen=False,bOverride_FilmGrainIntensity=False,bOverride_FilmGrainIntensityShadows=False,bOverride_FilmGrainIntensityMidtones=False,bOverride_FilmGrainIntensityHighlights=False,bOverride_FilmGrainShadowsMax=False,bOverride_FilmGrainHighlightsMin=False,bOverride_FilmGrainHighlightsMax=False,bOverride_FilmGrainTexelSize=False,bOverride_FilmGrainTexture=False,bOverride_AmbientOcclusionIntensity=False,bOverride_AmbientOcclusionStaticFraction=False,bOverride_AmbientOcclusionRadius=False,bOverride_AmbientOcclusionFadeDistance=False,bOverride_AmbientOcclusionFadeRadius=False,bOverride_AmbientOcclusionRadiusInWS=False,bOverride_AmbientOcclusionPower=False,bOverride_AmbientOcclusionBias=False,bOverride_AmbientOcclusionQuality=False,bOverride_AmbientOcclusionMipBlend=False,bOverride_AmbientOcclusionMipScale=False,bOverride_AmbientOcclusionMipThreshold=False,bOverride_AmbientOcclusionTemporalBlendWeight=False,bOverride_RayTracingAO=False,bOverride_RayTracingAOSamplesPerPixel=False,bOverride_RayTracingAOIntensity=False,bOverride_RayTracingAORadius=False,bOverride_IndirectLightingColor=False,bOverride_IndirectLightingIntensity=False,bOverride_ColorGradingIntensity=False,bOverride_ColorGradingLUT=False,bOverride_DepthOfFieldFocalDistance=False,bOverride_DepthOfFieldFstop=False,bOverride_DepthOfFieldMinFstop=False,bOverride_DepthOfFieldBladeCount=False,bOverride_DepthOfFieldSensorWidth=False,bOverride_DepthOfFieldSqueezeFactor=False,bOverride_DepthOfFieldDepthBlurRadius=False,bOverride_DepthOfFieldUseHairDepth=False,bOverride_DepthOfFieldPetzvalBokeh=False,bOverride_DepthOfFieldPetzvalBokehFalloff=False,bOverride_DepthOfFieldPetzvalExclusionBoxExtents=False,bOverride_DepthOfFieldPetzvalExclusionBoxRadius=False,bOverride_DepthOfFieldAspectRatioScalar=False,bOverride_DepthOfFieldMatteBoxFlags=False,bOverride_DepthOfFieldBarrelRadius=False,bOverride_DepthOfFieldBarrelLength=False,bOverride_DepthOfFieldDepthBlurAmount=False,bOverride_DepthOfFieldFocalRegion=False,bOverride_DepthOfFieldNearTransitionRegion=False,bOverride_DepthOfFieldFarTransitionRegion=False,bOverride_DepthOfFieldScale=False,bOverride_DepthOfFieldNearBlurSize=False,bOverride_DepthOfFieldFarBlurSize=False,bOverride_MobileHQGaussian=False,bOverride_DepthOfFieldOcclusion=False,bOverride_DepthOfFieldSkyFocusDistance=False,bOverride_DepthOfFieldVignetteSize=False,bOverride_MotionBlurAmount=False,bOverride_MotionBlurMax=False,bOverride_MotionBlurTargetFPS=False,bOverride_MotionBlurPerObjectSize=False,bOverride_ReflectionMethod=False,bOverride_LumenReflectionQuality=False,bOverride_ScreenSpaceReflectionIntensity=False,bOverride_ScreenSpaceReflectionQuality=False,bOverride_ScreenSpaceReflectionMaxRoughness=False,bOverride_ScreenSpaceReflectionRoughnessScale=False,bOverride_UserFlags=False,bOverride_RayTracingReflectionsMaxRoughness=False,bOverride_RayTracingReflectionsMaxBounces=False,bOverride_RayTracingReflectionsSamplesPerPixel=False,bOverride_RayTracingReflectionsShadows=False,bOverride_RayTracingReflectionsTranslucency=False,bOverride_TranslucencyType=False,bOverride_RayTracingTranslucencyMaxRoughness=False,bOverride_RayTracingTranslucencyRefractionRays=False,bOverride_RayTracingTranslucencySamplesPerPixel=False,bOverride_RayTracingTranslucencyShadows=False,bOverride_RayTracingTranslucencyRefraction=False,bOverride_RayTracingTranslucencyMaxPrimaryHitEvents=False,bOverride_RayTracingTranslucencyMaxSecondaryHitEvents=False,bOverride_RayTracingTranslucencyUseRayTracedRefraction=False,bOverride_DynamicGlobalIlluminationMethod=False,bOverride_LumenSceneLightingQuality=False,bOverride_LumenSceneDetail=False,bOverride_LumenSceneViewDistance=False,bOverride_LumenSceneLightingUpdateSpeed=False,bOverride_LumenFinalGatherQuality=False,bOverride_LumenFinalGatherLightingUpdateSpeed=False,bOverride_LumenFinalGatherScreenTraces=False,bOverride_LumenMaxTraceDistance=False,bOverride_LumenDiffuseColorBoost=False,bOverride_LumenSkylightLeaking=False,bOverride_LumenSkylightLeakingTint=False,bOverride_LumenFullSkylightLeakingDistance=False,bOverride_LumenRayLightingMode=False,bOverride_LumenReflectionsScreenTraces=False,bOverride_LumenFrontLayerTranslucencyReflections=False,bOverride_LumenMaxRoughnessToTraceReflections=False,bOverride_LumenMaxReflectionBounces=False,bOverride_LumenMaxRefractionBounces=False,bOverride_LumenSurfaceCacheResolution=False,bOverride_RayTracingGI=False,bOverride_RayTracingGIMaxBounces=False,bOverride_RayTracingGISamplesPerPixel=False,bOverride_PathTracingMaxBounces=False,bOverride_PathTracingSamplesPerPixel=False,bOverride_PathTracingMaxPathIntensity=False,bOverride_PathTracingEnableEmissiveMaterials=False,bOverride_PathTracingEnableReferenceDOF=False,bOverride_PathTracingEnableReferenceAtmosphere=False,bOverride_PathTracingEnableDenoiser=False,bOverride_PathTracingIncludeEmissive=False,bOverride_PathTracingIncludeDiffuse=False,bOverride_PathTracingIncludeIndirectDiffuse=False,bOverride_PathTracingIncludeSpecular=False,bOverride_PathTracingIncludeIndirectSpecular=False,bOverride_PathTracingIncludeVolume=False,bOverride_PathTracingIncludeIndirectVolume=False,bMobileHQGaussian=False,BloomMethod=BM_SOG,AutoExposureMethod=AEM_Histogram,TemperatureType=TEMP_WhiteBalance,WhiteTemp=6500.000000,WhiteTint=0.000000,ColorSaturation=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrast=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGamma=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGain=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffset=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetShadows=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetMidtones=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetHighlights=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorCorrectionHighlightsMin=0.500000,ColorCorrectionHighlightsMax=1.000000,ColorCorrectionShadowsMax=0.090000,BlueCorrection=0.600000,ExpandGamut=1.000000,ToneCurveAmount=1.000000,FilmSlope=0.880000,FilmToe=0.550000,FilmShoulder=0.260000,FilmBlackClip=0.000000,FilmWhiteClip=0.040000,SceneColorTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SceneFringeIntensity=0.000000,ChromaticAberrationStartOffset=0.000000,BloomIntensity=0.675000,BloomThreshold=-1.000000,BloomSizeScale=4.000000,Bloom1Size=0.300000,Bloom2Size=1.000000,Bloom3Size=2.000000,Bloom4Size=10.000000,Bloom5Size=30.000000,Bloom6Size=64.000000,Bloom1Tint=(R=0.346500,G=0.346500,B=0.346500,A=1.000000),Bloom2Tint=(R=0.138000,G=0.138000,B=0.138000,A=1.000000),Bloom3Tint=(R=0.117600,G=0.117600,B=0.117600,A=1.000000),Bloom4Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom5Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom6Tint=(R=0.061000,G=0.061000,B=0.061000,A=1.000000),BloomConvolutionScatterDispersion=1.000000,BloomConvolutionSize=1.000000,BloomConvolutionTexture=None,BloomConvolutionCenterUV=(X=0.500000,Y=0.500000),BloomConvolutionPreFilterMin=7.000000,BloomConvolutionPreFilterMax=15000.000000,BloomConvolutionPreFilterMult=15.000000,BloomConvolutionBufferScale=0.133000,BloomDirtMask=None,BloomDirtMaskIntensity=0.000000,BloomDirtMaskTint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),DynamicGlobalIlluminationMethod=Lumen,IndirectLightingColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),IndirectLightingIntensity=1.000000,LumenRayLightingMode=Default,LumenSceneLightingQuality=1.000000,LumenSceneDetail=1.000000,LumenSceneViewDistance=20000.000000,LumenSceneLightingUpdateSpeed=1.000000,LumenFinalGatherQuality=1.000000,LumenFinalGatherLightingUpdateSpeed=1.000000,LumenFinalGatherScreenTraces=True,LumenMaxTraceDistance=20000.000000,LumenDiffuseColorBoost=1.000000,LumenSkylightLeaking=0.000000,LumenSkylightLeakingTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LumenFullSkylightLeakingDistance=1000.000000,LumenSurfaceCacheResolution=1.000000,ReflectionMethod=Lumen,LumenReflectionQuality=1.000000,LumenReflectionsScreenTraces=True,LumenFrontLayerTranslucencyReflections=False,LumenMaxRoughnessToTraceReflections=0.400000,LumenMaxReflectionBounces=1,LumenMaxRefractionBounces=0,ScreenSpaceReflectionIntensity=100.000000,ScreenSpaceReflectionQuality=50.000000,ScreenSpaceReflectionMaxRoughness=0.600000,bMegaLights=True,AmbientCubemapTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),AmbientCubemapIntensity=1.000000,AmbientCubemap=None,CameraShutterSpeed=60.000000,CameraISO=100.000000,DepthOfFieldFstop=4.000000,DepthOfFieldMinFstop=1.200000,DepthOfFieldBladeCount=5,AutoExposureBias=1.000000,AutoExposureBiasBackup=0.000000,bOverride_AutoExposureBiasBackup=False,AutoExposureApplyPhysicalCameraExposure=True,AutoExposureBiasCurve=None,AutoExposureMeterMask=None,AutoExposureLowPercent=10.000000,AutoExposureHighPercent=90.000000,AutoExposureMinBrightness=0.030000,AutoExposureMaxBrightness=8.000000,AutoExposureSpeedUp=3.000000,AutoExposureSpeedDown=1.000000,HistogramLogMin=-8.000000,HistogramLogMax=4.000000,LocalExposureMethod=Bilateral,LocalExposureHighlightContrastScale=1.000000,LocalExposureShadowContrastScale=1.000000,LocalExposureHighlightContrastCurve=None,LocalExposureShadowContrastCurve=None,LocalExposureHighlightThreshold=0.000000,LocalExposureShadowThreshold=0.000000,LocalExposureDetailStrength=1.000000,LocalExposureBlurredLuminanceBlend=0.600000,LocalExposureBlurredLuminanceKernelSizePercent=50.000000,LocalExposureHighlightThresholdStrength=1.000000,LocalExposureShadowThresholdStrength=1.000000,LocalExposureMiddleGreyBias=0.000000,LensFlareIntensity=1.000000,LensFlareTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LensFlareBokehSize=3.000000,LensFlareThreshold=8.000000,LensFlareBokehShape=None,LensFlareTints[0]=(R=1.000000,G=0.800000,B=0.400000,A=0.600000),LensFlareTints[1]=(R=1.000000,G=1.000000,B=0.600000,A=0.530000),LensFlareTints[2]=(R=0.800000,G=0.800000,B=1.000000,A=0.460000),LensFlareTints[3]=(R=0.500000,G=1.000000,B=0.400000,A=0.390000),LensFlareTints[4]=(R=0.500000,G=0.800000,B=1.000000,A=0.310000),LensFlareTints[5]=(R=0.900000,G=1.000000,B=0.800000,A=0.270000),LensFlareTints[6]=(R=1.000000,G=0.800000,B=0.400000,A=0.220000),LensFlareTints[7]=(R=0.900000,G=0.700000,B=0.700000,A=0.150000),VignetteIntensity=0.400000,Sharpen=0.000000,FilmGrainIntensity=0.000000,FilmGrainIntensityShadows=1.000000,FilmGrainIntensityMidtones=1.000000,FilmGrainIntensityHighlights=1.000000,FilmGrainShadowsMax=0.090000,FilmGrainHighlightsMin=0.500000,FilmGrainHighlightsMax=1.000000,FilmGrainTexelSize=1.000000,FilmGrainTexture=None,AmbientOcclusionIntensity=0.500000,AmbientOcclusionStaticFraction=1.000000,AmbientOcclusionRadius=200.000000,AmbientOcclusionRadiusInWS=False,AmbientOcclusionFadeDistance=8000.000000,AmbientOcclusionFadeRadius=5000.000000,AmbientOcclusionPower=2.000000,AmbientOcclusionBias=3.000000,AmbientOcclusionQuality=50.000000,AmbientOcclusionMipBlend=0.600000,AmbientOcclusionMipScale=1.700000,AmbientOcclusionMipThreshold=0.010000,AmbientOcclusionTemporalBlendWeight=0.100000,RayTracingAO=False,RayTracingAOSamplesPerPixel=1,RayTracingAOIntensity=1.000000,RayTracingAORadius=200.000000,ColorGradingIntensity=1.000000,ColorGradingLUT=None,DepthOfFieldSensorWidth=24.576000,DepthOfFieldSqueezeFactor=1.000000,DepthOfFieldFocalDistance=0.000000,DepthOfFieldDepthBlurAmount=1.000000,DepthOfFieldDepthBlurRadius=0.000000,DepthOfFieldUseHairDepth=False,DepthOfFieldPetzvalBokeh=0.000000,DepthOfFieldPetzvalBokehFalloff=1.000000,DepthOfFieldPetzvalExclusionBoxExtents=(X=0.000000,Y=0.000000),DepthOfFieldPetzvalExclusionBoxRadius=0.000000,DepthOfFieldAspectRatioScalar=1.000000,DepthOfFieldBarrelRadius=5.000000,DepthOfFieldBarrelLength=0.000000,DepthOfFieldMatteBoxFlags[0]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldMatteBoxFlags[1]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldMatteBoxFlags[2]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldFocalRegion=0.000000,DepthOfFieldNearTransitionRegion=300.000000,DepthOfFieldFarTransitionRegion=500.000000,DepthOfFieldScale=0.000000,DepthOfFieldNearBlurSize=15.000000,DepthOfFieldFarBlurSize=15.000000,DepthOfFieldOcclusion=0.400000,DepthOfFieldSkyFocusDistance=0.000000,DepthOfFieldVignetteSize=200.000000,MotionBlurAmount=0.500000,MotionBlurMax=5.000000,MotionBlurTargetFPS=30,MotionBlurPerObjectSize=0.000000,TranslucencyType=Raster,RayTracingTranslucencyMaxRoughness=0.600000,RayTracingTranslucencyRefractionRays=3,RayTracingTranslucencySamplesPerPixel=1,RayTracingTranslucencyMaxPrimaryHitEvents=4,RayTracingTranslucencyMaxSecondaryHitEvents=2,RayTracingTranslucencyShadows=Hard_shadows,RayTracingTranslucencyRefraction=True,RayTracingTranslucencyUseRayTracedRefraction=False,PathTracingMaxBounces=32,PathTracingSamplesPerPixel=2048,PathTracingMaxPathIntensity=24.000000,PathTracingEnableEmissiveMaterials=True,PathTracingEnableReferenceDOF=False,PathTracingEnableReferenceAtmosphere=False,PathTracingEnableDenoiser=True,PathTracingIncludeEmissive=True,PathTracingIncludeDiffuse=True,PathTracingIncludeIndirectDiffuse=True,PathTracingIncludeSpecular=True,PathTracingIncludeIndirectSpecular=True,PathTracingIncludeVolume=True,PathTracingIncludeIndirectVolume=True,UserFlags=0,WeightedBlendables=(Array=)),LightingRigRotation=0.000000,RotationSpeed=2.000000,DirectionalLightRotation=(Pitch=-40.000000,Yaw=-67.500000,Roll=0.000000),bEnableToneMapping=True,bShowMeshEdges=False) ++Profiles=(ProfileName="Grey Wireframe",bSharedProfile=True,bIsEngineDefaultProfile=True,bUseSkyLighting=True,DirectionalLightIntensity=1.000000,DirectionalLightColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SkyLightIntensity=1.000000,bRotateLightingRig=False,bShowEnvironment=False,bShowFloor=False,bShowGrid=True,EnvironmentColor=(R=0.039216,G=0.039216,B=0.039216,A=1.000000),EnvironmentIntensity=1.000000,EnvironmentCubeMapPath="/Engine/EditorMaterials/AssetViewer/EpicQuadPanorama_CC+EV1.EpicQuadPanorama_CC+EV1",bPostProcessingEnabled=False,PostProcessingSettings=(bOverride_TemperatureType=False,bOverride_WhiteTemp=False,bOverride_WhiteTint=False,bOverride_ColorSaturation=False,bOverride_ColorContrast=False,bOverride_ColorGamma=False,bOverride_ColorGain=False,bOverride_ColorOffset=False,bOverride_ColorSaturationShadows=False,bOverride_ColorContrastShadows=False,bOverride_ColorGammaShadows=False,bOverride_ColorGainShadows=False,bOverride_ColorOffsetShadows=False,bOverride_ColorSaturationMidtones=False,bOverride_ColorContrastMidtones=False,bOverride_ColorGammaMidtones=False,bOverride_ColorGainMidtones=False,bOverride_ColorOffsetMidtones=False,bOverride_ColorSaturationHighlights=False,bOverride_ColorContrastHighlights=False,bOverride_ColorGammaHighlights=False,bOverride_ColorGainHighlights=False,bOverride_ColorOffsetHighlights=False,bOverride_ColorCorrectionShadowsMax=False,bOverride_ColorCorrectionHighlightsMin=False,bOverride_ColorCorrectionHighlightsMax=False,bOverride_BlueCorrection=False,bOverride_ExpandGamut=False,bOverride_ToneCurveAmount=False,bOverride_FilmSlope=False,bOverride_FilmToe=False,bOverride_FilmShoulder=False,bOverride_FilmBlackClip=False,bOverride_FilmWhiteClip=False,bOverride_SceneColorTint=False,bOverride_SceneFringeIntensity=False,bOverride_ChromaticAberrationStartOffset=False,bOverride_bMegaLights=False,bOverride_AmbientCubemapTint=False,bOverride_AmbientCubemapIntensity=False,bOverride_BloomMethod=False,bOverride_BloomIntensity=False,bOverride_BloomThreshold=False,bOverride_Bloom1Tint=False,bOverride_Bloom1Size=False,bOverride_Bloom2Size=False,bOverride_Bloom2Tint=False,bOverride_Bloom3Tint=False,bOverride_Bloom3Size=False,bOverride_Bloom4Tint=False,bOverride_Bloom4Size=False,bOverride_Bloom5Tint=False,bOverride_Bloom5Size=False,bOverride_Bloom6Tint=False,bOverride_Bloom6Size=False,bOverride_BloomSizeScale=False,bOverride_BloomConvolutionTexture=False,bOverride_BloomConvolutionScatterDispersion=False,bOverride_BloomConvolutionSize=False,bOverride_BloomConvolutionCenterUV=False,bOverride_BloomConvolutionPreFilterMin=False,bOverride_BloomConvolutionPreFilterMax=False,bOverride_BloomConvolutionPreFilterMult=False,bOverride_BloomConvolutionBufferScale=False,bOverride_BloomDirtMaskIntensity=False,bOverride_BloomDirtMaskTint=False,bOverride_BloomDirtMask=False,bOverride_CameraShutterSpeed=False,bOverride_CameraISO=False,bOverride_AutoExposureMethod=False,bOverride_AutoExposureLowPercent=False,bOverride_AutoExposureHighPercent=False,bOverride_AutoExposureMinBrightness=False,bOverride_AutoExposureMaxBrightness=False,bOverride_AutoExposureSpeedUp=False,bOverride_AutoExposureSpeedDown=False,bOverride_AutoExposureBias=False,bOverride_AutoExposureBiasCurve=False,bOverride_AutoExposureMeterMask=False,bOverride_AutoExposureApplyPhysicalCameraExposure=False,bOverride_HistogramLogMin=False,bOverride_HistogramLogMax=False,bOverride_LocalExposureMethod=False,bOverride_LocalExposureHighlightContrastScale=False,bOverride_LocalExposureShadowContrastScale=False,bOverride_LocalExposureHighlightContrastCurve=False,bOverride_LocalExposureShadowContrastCurve=False,bOverride_LocalExposureHighlightThreshold=False,bOverride_LocalExposureShadowThreshold=False,bOverride_LocalExposureDetailStrength=False,bOverride_LocalExposureBlurredLuminanceBlend=False,bOverride_LocalExposureBlurredLuminanceKernelSizePercent=False,bOverride_LocalExposureHighlightThresholdStrength=False,bOverride_LocalExposureShadowThresholdStrength=False,bOverride_LocalExposureMiddleGreyBias=False,bOverride_LensFlareIntensity=False,bOverride_LensFlareTint=False,bOverride_LensFlareTints=False,bOverride_LensFlareBokehSize=False,bOverride_LensFlareBokehShape=False,bOverride_LensFlareThreshold=False,bOverride_VignetteIntensity=False,bOverride_Sharpen=False,bOverride_FilmGrainIntensity=False,bOverride_FilmGrainIntensityShadows=False,bOverride_FilmGrainIntensityMidtones=False,bOverride_FilmGrainIntensityHighlights=False,bOverride_FilmGrainShadowsMax=False,bOverride_FilmGrainHighlightsMin=False,bOverride_FilmGrainHighlightsMax=False,bOverride_FilmGrainTexelSize=False,bOverride_FilmGrainTexture=False,bOverride_AmbientOcclusionIntensity=False,bOverride_AmbientOcclusionStaticFraction=False,bOverride_AmbientOcclusionRadius=False,bOverride_AmbientOcclusionFadeDistance=False,bOverride_AmbientOcclusionFadeRadius=False,bOverride_AmbientOcclusionRadiusInWS=False,bOverride_AmbientOcclusionPower=False,bOverride_AmbientOcclusionBias=False,bOverride_AmbientOcclusionQuality=False,bOverride_AmbientOcclusionMipBlend=False,bOverride_AmbientOcclusionMipScale=False,bOverride_AmbientOcclusionMipThreshold=False,bOverride_AmbientOcclusionTemporalBlendWeight=False,bOverride_RayTracingAO=False,bOverride_RayTracingAOSamplesPerPixel=False,bOverride_RayTracingAOIntensity=False,bOverride_RayTracingAORadius=False,bOverride_IndirectLightingColor=False,bOverride_IndirectLightingIntensity=False,bOverride_ColorGradingIntensity=False,bOverride_ColorGradingLUT=False,bOverride_DepthOfFieldFocalDistance=False,bOverride_DepthOfFieldFstop=False,bOverride_DepthOfFieldMinFstop=False,bOverride_DepthOfFieldBladeCount=False,bOverride_DepthOfFieldSensorWidth=False,bOverride_DepthOfFieldSqueezeFactor=False,bOverride_DepthOfFieldDepthBlurRadius=False,bOverride_DepthOfFieldUseHairDepth=False,bOverride_DepthOfFieldPetzvalBokeh=False,bOverride_DepthOfFieldPetzvalBokehFalloff=False,bOverride_DepthOfFieldPetzvalExclusionBoxExtents=False,bOverride_DepthOfFieldPetzvalExclusionBoxRadius=False,bOverride_DepthOfFieldAspectRatioScalar=False,bOverride_DepthOfFieldMatteBoxFlags=False,bOverride_DepthOfFieldBarrelRadius=False,bOverride_DepthOfFieldBarrelLength=False,bOverride_DepthOfFieldDepthBlurAmount=False,bOverride_DepthOfFieldFocalRegion=False,bOverride_DepthOfFieldNearTransitionRegion=False,bOverride_DepthOfFieldFarTransitionRegion=False,bOverride_DepthOfFieldScale=False,bOverride_DepthOfFieldNearBlurSize=False,bOverride_DepthOfFieldFarBlurSize=False,bOverride_MobileHQGaussian=False,bOverride_DepthOfFieldOcclusion=False,bOverride_DepthOfFieldSkyFocusDistance=False,bOverride_DepthOfFieldVignetteSize=False,bOverride_MotionBlurAmount=False,bOverride_MotionBlurMax=False,bOverride_MotionBlurTargetFPS=False,bOverride_MotionBlurPerObjectSize=False,bOverride_ReflectionMethod=False,bOverride_LumenReflectionQuality=False,bOverride_ScreenSpaceReflectionIntensity=False,bOverride_ScreenSpaceReflectionQuality=False,bOverride_ScreenSpaceReflectionMaxRoughness=False,bOverride_ScreenSpaceReflectionRoughnessScale=False,bOverride_UserFlags=False,bOverride_RayTracingReflectionsMaxRoughness=False,bOverride_RayTracingReflectionsMaxBounces=False,bOverride_RayTracingReflectionsSamplesPerPixel=False,bOverride_RayTracingReflectionsShadows=False,bOverride_RayTracingReflectionsTranslucency=False,bOverride_TranslucencyType=False,bOverride_RayTracingTranslucencyMaxRoughness=False,bOverride_RayTracingTranslucencyRefractionRays=False,bOverride_RayTracingTranslucencySamplesPerPixel=False,bOverride_RayTracingTranslucencyShadows=False,bOverride_RayTracingTranslucencyRefraction=False,bOverride_RayTracingTranslucencyMaxPrimaryHitEvents=False,bOverride_RayTracingTranslucencyMaxSecondaryHitEvents=False,bOverride_RayTracingTranslucencyUseRayTracedRefraction=False,bOverride_DynamicGlobalIlluminationMethod=False,bOverride_LumenSceneLightingQuality=False,bOverride_LumenSceneDetail=False,bOverride_LumenSceneViewDistance=False,bOverride_LumenSceneLightingUpdateSpeed=False,bOverride_LumenFinalGatherQuality=False,bOverride_LumenFinalGatherLightingUpdateSpeed=False,bOverride_LumenFinalGatherScreenTraces=False,bOverride_LumenMaxTraceDistance=False,bOverride_LumenDiffuseColorBoost=False,bOverride_LumenSkylightLeaking=False,bOverride_LumenSkylightLeakingTint=False,bOverride_LumenFullSkylightLeakingDistance=False,bOverride_LumenRayLightingMode=False,bOverride_LumenReflectionsScreenTraces=False,bOverride_LumenFrontLayerTranslucencyReflections=False,bOverride_LumenMaxRoughnessToTraceReflections=False,bOverride_LumenMaxReflectionBounces=False,bOverride_LumenMaxRefractionBounces=False,bOverride_LumenSurfaceCacheResolution=False,bOverride_RayTracingGI=False,bOverride_RayTracingGIMaxBounces=False,bOverride_RayTracingGISamplesPerPixel=False,bOverride_PathTracingMaxBounces=False,bOverride_PathTracingSamplesPerPixel=False,bOverride_PathTracingMaxPathIntensity=False,bOverride_PathTracingEnableEmissiveMaterials=False,bOverride_PathTracingEnableReferenceDOF=False,bOverride_PathTracingEnableReferenceAtmosphere=False,bOverride_PathTracingEnableDenoiser=False,bOverride_PathTracingIncludeEmissive=False,bOverride_PathTracingIncludeDiffuse=False,bOverride_PathTracingIncludeIndirectDiffuse=False,bOverride_PathTracingIncludeSpecular=False,bOverride_PathTracingIncludeIndirectSpecular=False,bOverride_PathTracingIncludeVolume=False,bOverride_PathTracingIncludeIndirectVolume=False,bMobileHQGaussian=False,BloomMethod=BM_SOG,AutoExposureMethod=AEM_Histogram,TemperatureType=TEMP_WhiteBalance,WhiteTemp=6500.000000,WhiteTint=0.000000,ColorSaturation=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrast=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGamma=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGain=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffset=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetShadows=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetMidtones=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetHighlights=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorCorrectionHighlightsMin=0.500000,ColorCorrectionHighlightsMax=1.000000,ColorCorrectionShadowsMax=0.090000,BlueCorrection=0.600000,ExpandGamut=1.000000,ToneCurveAmount=1.000000,FilmSlope=0.880000,FilmToe=0.550000,FilmShoulder=0.260000,FilmBlackClip=0.000000,FilmWhiteClip=0.040000,SceneColorTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SceneFringeIntensity=0.000000,ChromaticAberrationStartOffset=0.000000,BloomIntensity=0.675000,BloomThreshold=-1.000000,BloomSizeScale=4.000000,Bloom1Size=0.300000,Bloom2Size=1.000000,Bloom3Size=2.000000,Bloom4Size=10.000000,Bloom5Size=30.000000,Bloom6Size=64.000000,Bloom1Tint=(R=0.346500,G=0.346500,B=0.346500,A=1.000000),Bloom2Tint=(R=0.138000,G=0.138000,B=0.138000,A=1.000000),Bloom3Tint=(R=0.117600,G=0.117600,B=0.117600,A=1.000000),Bloom4Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom5Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom6Tint=(R=0.061000,G=0.061000,B=0.061000,A=1.000000),BloomConvolutionScatterDispersion=1.000000,BloomConvolutionSize=1.000000,BloomConvolutionTexture=None,BloomConvolutionCenterUV=(X=0.500000,Y=0.500000),BloomConvolutionPreFilterMin=7.000000,BloomConvolutionPreFilterMax=15000.000000,BloomConvolutionPreFilterMult=15.000000,BloomConvolutionBufferScale=0.133000,BloomDirtMask=None,BloomDirtMaskIntensity=0.000000,BloomDirtMaskTint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),DynamicGlobalIlluminationMethod=Lumen,IndirectLightingColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),IndirectLightingIntensity=1.000000,LumenRayLightingMode=Default,LumenSceneLightingQuality=1.000000,LumenSceneDetail=1.000000,LumenSceneViewDistance=20000.000000,LumenSceneLightingUpdateSpeed=1.000000,LumenFinalGatherQuality=1.000000,LumenFinalGatherLightingUpdateSpeed=1.000000,LumenFinalGatherScreenTraces=True,LumenMaxTraceDistance=20000.000000,LumenDiffuseColorBoost=1.000000,LumenSkylightLeaking=0.000000,LumenSkylightLeakingTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LumenFullSkylightLeakingDistance=1000.000000,LumenSurfaceCacheResolution=1.000000,ReflectionMethod=Lumen,LumenReflectionQuality=1.000000,LumenReflectionsScreenTraces=True,LumenFrontLayerTranslucencyReflections=False,LumenMaxRoughnessToTraceReflections=0.400000,LumenMaxReflectionBounces=1,LumenMaxRefractionBounces=0,ScreenSpaceReflectionIntensity=100.000000,ScreenSpaceReflectionQuality=50.000000,ScreenSpaceReflectionMaxRoughness=0.600000,bMegaLights=True,AmbientCubemapTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),AmbientCubemapIntensity=1.000000,AmbientCubemap=None,CameraShutterSpeed=60.000000,CameraISO=100.000000,DepthOfFieldFstop=4.000000,DepthOfFieldMinFstop=1.200000,DepthOfFieldBladeCount=5,AutoExposureBias=1.000000,AutoExposureBiasBackup=0.000000,bOverride_AutoExposureBiasBackup=False,AutoExposureApplyPhysicalCameraExposure=True,AutoExposureBiasCurve=None,AutoExposureMeterMask=None,AutoExposureLowPercent=10.000000,AutoExposureHighPercent=90.000000,AutoExposureMinBrightness=0.030000,AutoExposureMaxBrightness=8.000000,AutoExposureSpeedUp=3.000000,AutoExposureSpeedDown=1.000000,HistogramLogMin=-8.000000,HistogramLogMax=4.000000,LocalExposureMethod=Bilateral,LocalExposureHighlightContrastScale=1.000000,LocalExposureShadowContrastScale=1.000000,LocalExposureHighlightContrastCurve=None,LocalExposureShadowContrastCurve=None,LocalExposureHighlightThreshold=0.000000,LocalExposureShadowThreshold=0.000000,LocalExposureDetailStrength=1.000000,LocalExposureBlurredLuminanceBlend=0.600000,LocalExposureBlurredLuminanceKernelSizePercent=50.000000,LocalExposureHighlightThresholdStrength=1.000000,LocalExposureShadowThresholdStrength=1.000000,LocalExposureMiddleGreyBias=0.000000,LensFlareIntensity=1.000000,LensFlareTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LensFlareBokehSize=3.000000,LensFlareThreshold=8.000000,LensFlareBokehShape=None,LensFlareTints[0]=(R=1.000000,G=0.800000,B=0.400000,A=0.600000),LensFlareTints[1]=(R=1.000000,G=1.000000,B=0.600000,A=0.530000),LensFlareTints[2]=(R=0.800000,G=0.800000,B=1.000000,A=0.460000),LensFlareTints[3]=(R=0.500000,G=1.000000,B=0.400000,A=0.390000),LensFlareTints[4]=(R=0.500000,G=0.800000,B=1.000000,A=0.310000),LensFlareTints[5]=(R=0.900000,G=1.000000,B=0.800000,A=0.270000),LensFlareTints[6]=(R=1.000000,G=0.800000,B=0.400000,A=0.220000),LensFlareTints[7]=(R=0.900000,G=0.700000,B=0.700000,A=0.150000),VignetteIntensity=0.400000,Sharpen=0.000000,FilmGrainIntensity=0.000000,FilmGrainIntensityShadows=1.000000,FilmGrainIntensityMidtones=1.000000,FilmGrainIntensityHighlights=1.000000,FilmGrainShadowsMax=0.090000,FilmGrainHighlightsMin=0.500000,FilmGrainHighlightsMax=1.000000,FilmGrainTexelSize=1.000000,FilmGrainTexture=None,AmbientOcclusionIntensity=0.500000,AmbientOcclusionStaticFraction=1.000000,AmbientOcclusionRadius=200.000000,AmbientOcclusionRadiusInWS=False,AmbientOcclusionFadeDistance=8000.000000,AmbientOcclusionFadeRadius=5000.000000,AmbientOcclusionPower=2.000000,AmbientOcclusionBias=3.000000,AmbientOcclusionQuality=50.000000,AmbientOcclusionMipBlend=0.600000,AmbientOcclusionMipScale=1.700000,AmbientOcclusionMipThreshold=0.010000,AmbientOcclusionTemporalBlendWeight=0.100000,RayTracingAO=False,RayTracingAOSamplesPerPixel=1,RayTracingAOIntensity=1.000000,RayTracingAORadius=200.000000,ColorGradingIntensity=1.000000,ColorGradingLUT=None,DepthOfFieldSensorWidth=24.576000,DepthOfFieldSqueezeFactor=1.000000,DepthOfFieldFocalDistance=0.000000,DepthOfFieldDepthBlurAmount=1.000000,DepthOfFieldDepthBlurRadius=0.000000,DepthOfFieldUseHairDepth=False,DepthOfFieldPetzvalBokeh=0.000000,DepthOfFieldPetzvalBokehFalloff=1.000000,DepthOfFieldPetzvalExclusionBoxExtents=(X=0.000000,Y=0.000000),DepthOfFieldPetzvalExclusionBoxRadius=0.000000,DepthOfFieldAspectRatioScalar=1.000000,DepthOfFieldBarrelRadius=5.000000,DepthOfFieldBarrelLength=0.000000,DepthOfFieldMatteBoxFlags[0]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldMatteBoxFlags[1]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldMatteBoxFlags[2]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldFocalRegion=0.000000,DepthOfFieldNearTransitionRegion=300.000000,DepthOfFieldFarTransitionRegion=500.000000,DepthOfFieldScale=0.000000,DepthOfFieldNearBlurSize=15.000000,DepthOfFieldFarBlurSize=15.000000,DepthOfFieldOcclusion=0.400000,DepthOfFieldSkyFocusDistance=0.000000,DepthOfFieldVignetteSize=200.000000,MotionBlurAmount=0.500000,MotionBlurMax=5.000000,MotionBlurTargetFPS=30,MotionBlurPerObjectSize=0.000000,TranslucencyType=Raster,RayTracingTranslucencyMaxRoughness=0.600000,RayTracingTranslucencyRefractionRays=3,RayTracingTranslucencySamplesPerPixel=1,RayTracingTranslucencyMaxPrimaryHitEvents=4,RayTracingTranslucencyMaxSecondaryHitEvents=2,RayTracingTranslucencyShadows=Hard_shadows,RayTracingTranslucencyRefraction=True,RayTracingTranslucencyUseRayTracedRefraction=False,PathTracingMaxBounces=32,PathTracingSamplesPerPixel=2048,PathTracingMaxPathIntensity=24.000000,PathTracingEnableEmissiveMaterials=True,PathTracingEnableReferenceDOF=False,PathTracingEnableReferenceAtmosphere=False,PathTracingEnableDenoiser=True,PathTracingIncludeEmissive=True,PathTracingIncludeDiffuse=True,PathTracingIncludeIndirectDiffuse=True,PathTracingIncludeSpecular=True,PathTracingIncludeIndirectSpecular=True,PathTracingIncludeVolume=True,PathTracingIncludeIndirectVolume=True,UserFlags=0,WeightedBlendables=(Array=)),LightingRigRotation=0.000000,RotationSpeed=2.000000,DirectionalLightRotation=(Pitch=-40.000000,Yaw=-67.500000,Roll=0.000000),bEnableToneMapping=False,bShowMeshEdges=True) ++Profiles=(ProfileName="Grey Ambient",bSharedProfile=True,bIsEngineDefaultProfile=True,bUseSkyLighting=True,DirectionalLightIntensity=4.000000,DirectionalLightColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SkyLightIntensity=2.000000,bRotateLightingRig=False,bShowEnvironment=True,bShowFloor=True,bShowGrid=True,EnvironmentColor=(R=0.200000,G=0.200000,B=0.200000,A=1.000000),EnvironmentIntensity=1.000000,EnvironmentCubeMapPath="/Engine/EditorMaterials/AssetViewer/T_GreyAmbient",bPostProcessingEnabled=False,PostProcessingSettings=(bOverride_TemperatureType=False,bOverride_WhiteTemp=False,bOverride_WhiteTint=False,bOverride_ColorSaturation=False,bOverride_ColorContrast=False,bOverride_ColorGamma=False,bOverride_ColorGain=False,bOverride_ColorOffset=False,bOverride_ColorSaturationShadows=False,bOverride_ColorContrastShadows=False,bOverride_ColorGammaShadows=False,bOverride_ColorGainShadows=False,bOverride_ColorOffsetShadows=False,bOverride_ColorSaturationMidtones=False,bOverride_ColorContrastMidtones=False,bOverride_ColorGammaMidtones=False,bOverride_ColorGainMidtones=False,bOverride_ColorOffsetMidtones=False,bOverride_ColorSaturationHighlights=False,bOverride_ColorContrastHighlights=False,bOverride_ColorGammaHighlights=False,bOverride_ColorGainHighlights=False,bOverride_ColorOffsetHighlights=False,bOverride_ColorCorrectionShadowsMax=False,bOverride_ColorCorrectionHighlightsMin=False,bOverride_ColorCorrectionHighlightsMax=False,bOverride_BlueCorrection=False,bOverride_ExpandGamut=False,bOverride_ToneCurveAmount=False,bOverride_FilmSlope=False,bOverride_FilmToe=False,bOverride_FilmShoulder=False,bOverride_FilmBlackClip=False,bOverride_FilmWhiteClip=False,bOverride_SceneColorTint=False,bOverride_SceneFringeIntensity=False,bOverride_ChromaticAberrationStartOffset=False,bOverride_bMegaLights=False,bOverride_AmbientCubemapTint=False,bOverride_AmbientCubemapIntensity=False,bOverride_BloomMethod=False,bOverride_BloomIntensity=False,bOverride_BloomThreshold=False,bOverride_Bloom1Tint=False,bOverride_Bloom1Size=False,bOverride_Bloom2Size=False,bOverride_Bloom2Tint=False,bOverride_Bloom3Tint=False,bOverride_Bloom3Size=False,bOverride_Bloom4Tint=False,bOverride_Bloom4Size=False,bOverride_Bloom5Tint=False,bOverride_Bloom5Size=False,bOverride_Bloom6Tint=False,bOverride_Bloom6Size=False,bOverride_BloomSizeScale=False,bOverride_BloomConvolutionTexture=False,bOverride_BloomConvolutionScatterDispersion=False,bOverride_BloomConvolutionSize=False,bOverride_BloomConvolutionCenterUV=False,bOverride_BloomConvolutionPreFilterMin=False,bOverride_BloomConvolutionPreFilterMax=False,bOverride_BloomConvolutionPreFilterMult=False,bOverride_BloomConvolutionBufferScale=False,bOverride_BloomDirtMaskIntensity=False,bOverride_BloomDirtMaskTint=False,bOverride_BloomDirtMask=False,bOverride_CameraShutterSpeed=False,bOverride_CameraISO=False,bOverride_AutoExposureMethod=False,bOverride_AutoExposureLowPercent=False,bOverride_AutoExposureHighPercent=False,bOverride_AutoExposureMinBrightness=False,bOverride_AutoExposureMaxBrightness=False,bOverride_AutoExposureSpeedUp=False,bOverride_AutoExposureSpeedDown=False,bOverride_AutoExposureBias=False,bOverride_AutoExposureBiasCurve=False,bOverride_AutoExposureMeterMask=False,bOverride_AutoExposureApplyPhysicalCameraExposure=False,bOverride_HistogramLogMin=False,bOverride_HistogramLogMax=False,bOverride_LocalExposureMethod=False,bOverride_LocalExposureHighlightContrastScale=False,bOverride_LocalExposureShadowContrastScale=False,bOverride_LocalExposureHighlightContrastCurve=False,bOverride_LocalExposureShadowContrastCurve=False,bOverride_LocalExposureHighlightThreshold=False,bOverride_LocalExposureShadowThreshold=False,bOverride_LocalExposureDetailStrength=False,bOverride_LocalExposureBlurredLuminanceBlend=False,bOverride_LocalExposureBlurredLuminanceKernelSizePercent=False,bOverride_LocalExposureHighlightThresholdStrength=False,bOverride_LocalExposureShadowThresholdStrength=False,bOverride_LocalExposureMiddleGreyBias=False,bOverride_LensFlareIntensity=False,bOverride_LensFlareTint=False,bOverride_LensFlareTints=False,bOverride_LensFlareBokehSize=False,bOverride_LensFlareBokehShape=False,bOverride_LensFlareThreshold=False,bOverride_VignetteIntensity=False,bOverride_Sharpen=False,bOverride_FilmGrainIntensity=False,bOverride_FilmGrainIntensityShadows=False,bOverride_FilmGrainIntensityMidtones=False,bOverride_FilmGrainIntensityHighlights=False,bOverride_FilmGrainShadowsMax=False,bOverride_FilmGrainHighlightsMin=False,bOverride_FilmGrainHighlightsMax=False,bOverride_FilmGrainTexelSize=False,bOverride_FilmGrainTexture=False,bOverride_AmbientOcclusionIntensity=False,bOverride_AmbientOcclusionStaticFraction=False,bOverride_AmbientOcclusionRadius=False,bOverride_AmbientOcclusionFadeDistance=False,bOverride_AmbientOcclusionFadeRadius=False,bOverride_AmbientOcclusionRadiusInWS=False,bOverride_AmbientOcclusionPower=False,bOverride_AmbientOcclusionBias=False,bOverride_AmbientOcclusionQuality=False,bOverride_AmbientOcclusionMipBlend=False,bOverride_AmbientOcclusionMipScale=False,bOverride_AmbientOcclusionMipThreshold=False,bOverride_AmbientOcclusionTemporalBlendWeight=False,bOverride_RayTracingAO=False,bOverride_RayTracingAOSamplesPerPixel=False,bOverride_RayTracingAOIntensity=False,bOverride_RayTracingAORadius=False,bOverride_IndirectLightingColor=False,bOverride_IndirectLightingIntensity=False,bOverride_ColorGradingIntensity=False,bOverride_ColorGradingLUT=False,bOverride_DepthOfFieldFocalDistance=False,bOverride_DepthOfFieldFstop=False,bOverride_DepthOfFieldMinFstop=False,bOverride_DepthOfFieldBladeCount=False,bOverride_DepthOfFieldSensorWidth=False,bOverride_DepthOfFieldSqueezeFactor=False,bOverride_DepthOfFieldDepthBlurRadius=False,bOverride_DepthOfFieldUseHairDepth=False,bOverride_DepthOfFieldPetzvalBokeh=False,bOverride_DepthOfFieldPetzvalBokehFalloff=False,bOverride_DepthOfFieldPetzvalExclusionBoxExtents=False,bOverride_DepthOfFieldPetzvalExclusionBoxRadius=False,bOverride_DepthOfFieldAspectRatioScalar=False,bOverride_DepthOfFieldMatteBoxFlags=False,bOverride_DepthOfFieldBarrelRadius=False,bOverride_DepthOfFieldBarrelLength=False,bOverride_DepthOfFieldDepthBlurAmount=False,bOverride_DepthOfFieldFocalRegion=False,bOverride_DepthOfFieldNearTransitionRegion=False,bOverride_DepthOfFieldFarTransitionRegion=False,bOverride_DepthOfFieldScale=False,bOverride_DepthOfFieldNearBlurSize=False,bOverride_DepthOfFieldFarBlurSize=False,bOverride_MobileHQGaussian=False,bOverride_DepthOfFieldOcclusion=False,bOverride_DepthOfFieldSkyFocusDistance=False,bOverride_DepthOfFieldVignetteSize=False,bOverride_MotionBlurAmount=False,bOverride_MotionBlurMax=False,bOverride_MotionBlurTargetFPS=False,bOverride_MotionBlurPerObjectSize=False,bOverride_ReflectionMethod=False,bOverride_LumenReflectionQuality=False,bOverride_ScreenSpaceReflectionIntensity=False,bOverride_ScreenSpaceReflectionQuality=False,bOverride_ScreenSpaceReflectionMaxRoughness=False,bOverride_ScreenSpaceReflectionRoughnessScale=False,bOverride_UserFlags=False,bOverride_RayTracingReflectionsMaxRoughness=False,bOverride_RayTracingReflectionsMaxBounces=False,bOverride_RayTracingReflectionsSamplesPerPixel=False,bOverride_RayTracingReflectionsShadows=False,bOverride_RayTracingReflectionsTranslucency=False,bOverride_TranslucencyType=False,bOverride_RayTracingTranslucencyMaxRoughness=False,bOverride_RayTracingTranslucencyRefractionRays=False,bOverride_RayTracingTranslucencySamplesPerPixel=False,bOverride_RayTracingTranslucencyShadows=False,bOverride_RayTracingTranslucencyRefraction=False,bOverride_RayTracingTranslucencyMaxPrimaryHitEvents=False,bOverride_RayTracingTranslucencyMaxSecondaryHitEvents=False,bOverride_RayTracingTranslucencyUseRayTracedRefraction=False,bOverride_DynamicGlobalIlluminationMethod=False,bOverride_LumenSceneLightingQuality=False,bOverride_LumenSceneDetail=False,bOverride_LumenSceneViewDistance=False,bOverride_LumenSceneLightingUpdateSpeed=False,bOverride_LumenFinalGatherQuality=False,bOverride_LumenFinalGatherLightingUpdateSpeed=False,bOverride_LumenFinalGatherScreenTraces=False,bOverride_LumenMaxTraceDistance=False,bOverride_LumenDiffuseColorBoost=False,bOverride_LumenSkylightLeaking=False,bOverride_LumenSkylightLeakingTint=False,bOverride_LumenFullSkylightLeakingDistance=False,bOverride_LumenRayLightingMode=False,bOverride_LumenReflectionsScreenTraces=False,bOverride_LumenFrontLayerTranslucencyReflections=False,bOverride_LumenMaxRoughnessToTraceReflections=False,bOverride_LumenMaxReflectionBounces=False,bOverride_LumenMaxRefractionBounces=False,bOverride_LumenSurfaceCacheResolution=False,bOverride_RayTracingGI=False,bOverride_RayTracingGIMaxBounces=False,bOverride_RayTracingGISamplesPerPixel=False,bOverride_PathTracingMaxBounces=False,bOverride_PathTracingSamplesPerPixel=False,bOverride_PathTracingMaxPathIntensity=False,bOverride_PathTracingEnableEmissiveMaterials=False,bOverride_PathTracingEnableReferenceDOF=False,bOverride_PathTracingEnableReferenceAtmosphere=False,bOverride_PathTracingEnableDenoiser=False,bOverride_PathTracingIncludeEmissive=False,bOverride_PathTracingIncludeDiffuse=False,bOverride_PathTracingIncludeIndirectDiffuse=False,bOverride_PathTracingIncludeSpecular=False,bOverride_PathTracingIncludeIndirectSpecular=False,bOverride_PathTracingIncludeVolume=False,bOverride_PathTracingIncludeIndirectVolume=False,bMobileHQGaussian=False,BloomMethod=BM_SOG,AutoExposureMethod=AEM_Histogram,TemperatureType=TEMP_WhiteBalance,WhiteTemp=6500.000000,WhiteTint=0.000000,ColorSaturation=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrast=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGamma=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGain=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffset=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetShadows=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetMidtones=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetHighlights=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorCorrectionHighlightsMin=0.500000,ColorCorrectionHighlightsMax=1.000000,ColorCorrectionShadowsMax=0.090000,BlueCorrection=0.600000,ExpandGamut=1.000000,ToneCurveAmount=1.000000,FilmSlope=0.880000,FilmToe=0.550000,FilmShoulder=0.260000,FilmBlackClip=0.000000,FilmWhiteClip=0.040000,SceneColorTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SceneFringeIntensity=0.000000,ChromaticAberrationStartOffset=0.000000,BloomIntensity=0.675000,BloomThreshold=-1.000000,BloomSizeScale=4.000000,Bloom1Size=0.300000,Bloom2Size=1.000000,Bloom3Size=2.000000,Bloom4Size=10.000000,Bloom5Size=30.000000,Bloom6Size=64.000000,Bloom1Tint=(R=0.346500,G=0.346500,B=0.346500,A=1.000000),Bloom2Tint=(R=0.138000,G=0.138000,B=0.138000,A=1.000000),Bloom3Tint=(R=0.117600,G=0.117600,B=0.117600,A=1.000000),Bloom4Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom5Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom6Tint=(R=0.061000,G=0.061000,B=0.061000,A=1.000000),BloomConvolutionScatterDispersion=1.000000,BloomConvolutionSize=1.000000,BloomConvolutionTexture=None,BloomConvolutionCenterUV=(X=0.500000,Y=0.500000),BloomConvolutionPreFilterMin=7.000000,BloomConvolutionPreFilterMax=15000.000000,BloomConvolutionPreFilterMult=15.000000,BloomConvolutionBufferScale=0.133000,BloomDirtMask=None,BloomDirtMaskIntensity=0.000000,BloomDirtMaskTint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),DynamicGlobalIlluminationMethod=Lumen,IndirectLightingColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),IndirectLightingIntensity=1.000000,LumenRayLightingMode=Default,LumenSceneLightingQuality=1.000000,LumenSceneDetail=1.000000,LumenSceneViewDistance=20000.000000,LumenSceneLightingUpdateSpeed=1.000000,LumenFinalGatherQuality=1.000000,LumenFinalGatherLightingUpdateSpeed=1.000000,LumenFinalGatherScreenTraces=True,LumenMaxTraceDistance=20000.000000,LumenDiffuseColorBoost=1.000000,LumenSkylightLeaking=0.000000,LumenSkylightLeakingTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LumenFullSkylightLeakingDistance=1000.000000,LumenSurfaceCacheResolution=1.000000,ReflectionMethod=Lumen,LumenReflectionQuality=1.000000,LumenReflectionsScreenTraces=True,LumenFrontLayerTranslucencyReflections=False,LumenMaxRoughnessToTraceReflections=0.400000,LumenMaxReflectionBounces=1,LumenMaxRefractionBounces=0,ScreenSpaceReflectionIntensity=100.000000,ScreenSpaceReflectionQuality=50.000000,ScreenSpaceReflectionMaxRoughness=0.600000,bMegaLights=True,AmbientCubemapTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),AmbientCubemapIntensity=1.000000,AmbientCubemap=None,CameraShutterSpeed=60.000000,CameraISO=100.000000,DepthOfFieldFstop=4.000000,DepthOfFieldMinFstop=1.200000,DepthOfFieldBladeCount=5,AutoExposureBias=1.000000,AutoExposureBiasBackup=0.000000,bOverride_AutoExposureBiasBackup=False,AutoExposureApplyPhysicalCameraExposure=True,AutoExposureBiasCurve=None,AutoExposureMeterMask=None,AutoExposureLowPercent=10.000000,AutoExposureHighPercent=90.000000,AutoExposureMinBrightness=0.030000,AutoExposureMaxBrightness=8.000000,AutoExposureSpeedUp=3.000000,AutoExposureSpeedDown=1.000000,HistogramLogMin=-8.000000,HistogramLogMax=4.000000,LocalExposureMethod=Bilateral,LocalExposureHighlightContrastScale=1.000000,LocalExposureShadowContrastScale=1.000000,LocalExposureHighlightContrastCurve=None,LocalExposureShadowContrastCurve=None,LocalExposureHighlightThreshold=0.000000,LocalExposureShadowThreshold=0.000000,LocalExposureDetailStrength=1.000000,LocalExposureBlurredLuminanceBlend=0.600000,LocalExposureBlurredLuminanceKernelSizePercent=50.000000,LocalExposureHighlightThresholdStrength=1.000000,LocalExposureShadowThresholdStrength=1.000000,LocalExposureMiddleGreyBias=0.000000,LensFlareIntensity=1.000000,LensFlareTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LensFlareBokehSize=3.000000,LensFlareThreshold=8.000000,LensFlareBokehShape=None,LensFlareTints[0]=(R=1.000000,G=0.800000,B=0.400000,A=0.600000),LensFlareTints[1]=(R=1.000000,G=1.000000,B=0.600000,A=0.530000),LensFlareTints[2]=(R=0.800000,G=0.800000,B=1.000000,A=0.460000),LensFlareTints[3]=(R=0.500000,G=1.000000,B=0.400000,A=0.390000),LensFlareTints[4]=(R=0.500000,G=0.800000,B=1.000000,A=0.310000),LensFlareTints[5]=(R=0.900000,G=1.000000,B=0.800000,A=0.270000),LensFlareTints[6]=(R=1.000000,G=0.800000,B=0.400000,A=0.220000),LensFlareTints[7]=(R=0.900000,G=0.700000,B=0.700000,A=0.150000),VignetteIntensity=0.400000,Sharpen=0.000000,FilmGrainIntensity=0.000000,FilmGrainIntensityShadows=1.000000,FilmGrainIntensityMidtones=1.000000,FilmGrainIntensityHighlights=1.000000,FilmGrainShadowsMax=0.090000,FilmGrainHighlightsMin=0.500000,FilmGrainHighlightsMax=1.000000,FilmGrainTexelSize=1.000000,FilmGrainTexture=None,AmbientOcclusionIntensity=0.500000,AmbientOcclusionStaticFraction=1.000000,AmbientOcclusionRadius=200.000000,AmbientOcclusionRadiusInWS=False,AmbientOcclusionFadeDistance=8000.000000,AmbientOcclusionFadeRadius=5000.000000,AmbientOcclusionPower=2.000000,AmbientOcclusionBias=3.000000,AmbientOcclusionQuality=50.000000,AmbientOcclusionMipBlend=0.600000,AmbientOcclusionMipScale=1.700000,AmbientOcclusionMipThreshold=0.010000,AmbientOcclusionTemporalBlendWeight=0.100000,RayTracingAO=False,RayTracingAOSamplesPerPixel=1,RayTracingAOIntensity=1.000000,RayTracingAORadius=200.000000,ColorGradingIntensity=1.000000,ColorGradingLUT=None,DepthOfFieldSensorWidth=24.576000,DepthOfFieldSqueezeFactor=1.000000,DepthOfFieldFocalDistance=0.000000,DepthOfFieldDepthBlurAmount=1.000000,DepthOfFieldDepthBlurRadius=0.000000,DepthOfFieldUseHairDepth=False,DepthOfFieldPetzvalBokeh=0.000000,DepthOfFieldPetzvalBokehFalloff=1.000000,DepthOfFieldPetzvalExclusionBoxExtents=(X=0.000000,Y=0.000000),DepthOfFieldPetzvalExclusionBoxRadius=0.000000,DepthOfFieldAspectRatioScalar=1.000000,DepthOfFieldBarrelRadius=5.000000,DepthOfFieldBarrelLength=0.000000,DepthOfFieldMatteBoxFlags[0]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldMatteBoxFlags[1]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldMatteBoxFlags[2]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldFocalRegion=0.000000,DepthOfFieldNearTransitionRegion=300.000000,DepthOfFieldFarTransitionRegion=500.000000,DepthOfFieldScale=0.000000,DepthOfFieldNearBlurSize=15.000000,DepthOfFieldFarBlurSize=15.000000,DepthOfFieldOcclusion=0.400000,DepthOfFieldSkyFocusDistance=0.000000,DepthOfFieldVignetteSize=200.000000,MotionBlurAmount=0.500000,MotionBlurMax=5.000000,MotionBlurTargetFPS=30,MotionBlurPerObjectSize=0.000000,TranslucencyType=Raster,RayTracingTranslucencyMaxRoughness=0.600000,RayTracingTranslucencyRefractionRays=3,RayTracingTranslucencySamplesPerPixel=1,RayTracingTranslucencyMaxPrimaryHitEvents=4,RayTracingTranslucencyMaxSecondaryHitEvents=2,RayTracingTranslucencyShadows=Hard_shadows,RayTracingTranslucencyRefraction=True,RayTracingTranslucencyUseRayTracedRefraction=False,PathTracingMaxBounces=32,PathTracingSamplesPerPixel=2048,PathTracingMaxPathIntensity=24.000000,PathTracingEnableEmissiveMaterials=True,PathTracingEnableReferenceDOF=False,PathTracingEnableReferenceAtmosphere=False,PathTracingEnableDenoiser=True,PathTracingIncludeEmissive=True,PathTracingIncludeDiffuse=True,PathTracingIncludeIndirectDiffuse=True,PathTracingIncludeSpecular=True,PathTracingIncludeIndirectSpecular=True,PathTracingIncludeVolume=True,PathTracingIncludeIndirectVolume=True,UserFlags=0,WeightedBlendables=(Array=)),LightingRigRotation=0.000000,RotationSpeed=2.000000,DirectionalLightRotation=(Pitch=-40.000000,Yaw=-67.500000,Roll=0.000000),bEnableToneMapping=False,bShowMeshEdges=False) [/Script/UnrealEd.EditorPerformanceProjectSettings] MobileScreenPercentageMode=BasedOnDisplayResolution diff --git a/VIRTUOS_ExpansionPluginTests/Content/Audio/MIdi_HarmonixPlugin/TestSong/BP_DynamicSliceObject.uasset b/VIRTUOS_ExpansionPluginTests/Content/Audio/MIdi_HarmonixPlugin/TestSong/BP_DynamicSliceObject.uasset index fa51f8a..84ad2f9 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/Audio/MIdi_HarmonixPlugin/TestSong/BP_DynamicSliceObject.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/Audio/MIdi_HarmonixPlugin/TestSong/BP_DynamicSliceObject.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:af4ff40b1b73f00bd9ce1153a54801cfb9aa326cffdb46d078cc7937f3d6d153 -size 1070541 +oid sha256:6f638016a9279817b9e5098648ca6a0278a3854a6fc39d796c35035db9e7a654 +size 1063543 diff --git a/VIRTUOS_ExpansionPluginTests/Content/Audio/MIdi_HarmonixPlugin/TestSong/BP_DynamicSliceObjectSpawner.uasset b/VIRTUOS_ExpansionPluginTests/Content/Audio/MIdi_HarmonixPlugin/TestSong/BP_DynamicSliceObjectSpawner.uasset index 3550f9f..a9b1a2c 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/Audio/MIdi_HarmonixPlugin/TestSong/BP_DynamicSliceObjectSpawner.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/Audio/MIdi_HarmonixPlugin/TestSong/BP_DynamicSliceObjectSpawner.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:072d7a39c033df2d9c75a9233871985796b2a1895730ba02c592cc60845e8469 -size 887274 +oid sha256:bc7f325c68df2b61c908840d5e5d68205ba5b0b991352969273d81aebf4d3834 +size 872593 diff --git a/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Gameworld.umap b/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Gameworld.umap index 50f172f..0afa04f 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Gameworld.umap +++ b/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Gameworld.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b17658b154c525c8f51b71b53c8126f3eb40b0b5bb17eb6f972ac45cd64e9a66 -size 483377 +oid sha256:384478091075a5b329330487013e8359df47d1c9e7878040ef3693285b87466a +size 503313 diff --git a/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Outside_Default.umap b/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Outside_Default.umap index 744445d..f7100f4 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Outside_Default.umap +++ b/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Outside_Default.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6744dca0f50209df24a2c085a0af59273245c74d2a8088dac476f6f9abc5b9fc -size 21360 +oid sha256:4598073efbde5f5e4273e1d0d33cbbd33ce80a28c488504243bb394cc47d0afd +size 31928 diff --git a/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Room_Kitchen.umap b/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Room_Kitchen.umap index 3aaaf99..ca88dd2 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Room_Kitchen.umap +++ b/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Room_Kitchen.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3f40364a19f7c2df8e7cba1a2b93ad74f563f93a2375d13c9a6556df5458caf3 -size 148750 +oid sha256:0f34273db9016b454f4d0253f56624cff6f6569a6c542df1773c757e6a04c135 +size 146001 diff --git a/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Stream_MachineRoom.umap b/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Stream_MachineRoom.umap index d6e50de..730a910 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Stream_MachineRoom.umap +++ b/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Stream_MachineRoom.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a19dd9d1cb3df9d2f8bf3a83cbb8f965eb8da543282da41d68f1b28de46876df -size 24834 +oid sha256:945fabad519394f1b1b99449dec3be422cecb67fc8ccbc6d359b8cbfbd10c2fc +size 27574 diff --git a/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Workspace.umap b/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Workspace.umap index 14e0917..700d642 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Workspace.umap +++ b/VIRTUOS_ExpansionPluginTests/Content/Maps/Map_Workspace.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ba55b9ebf06aa790e938896b4ca527b943cd8c0ce472d5a90b98ba60a228c00a -size 61550 +oid sha256:07dc6e4952fe736076cd329bec22a2eec02fb350c73a725a270ca82f8060325e +size 59640 diff --git a/VIRTUOS_ExpansionPluginTests/Content/Maps/MotionControllerMap.umap b/VIRTUOS_ExpansionPluginTests/Content/Maps/MotionControllerMap.umap index 416f288..6e8a05c 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/Maps/MotionControllerMap.umap +++ b/VIRTUOS_ExpansionPluginTests/Content/Maps/MotionControllerMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:95f9599ed76966a34db23f622ca831a1d5ab78fd8d125ce58d802decdc2d02cc -size 1712790 +oid sha256:6f8bcd7b69a776fe9c55fe59cba0c440ba30a9b332e5a393f9d6d8e1beedb290 +size 1727775 diff --git a/VIRTUOS_ExpansionPluginTests/Content/Maps/SL_FreezeRoom.umap b/VIRTUOS_ExpansionPluginTests/Content/Maps/SL_FreezeRoom.umap index f70fd49..96ef3ca 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/Maps/SL_FreezeRoom.umap +++ b/VIRTUOS_ExpansionPluginTests/Content/Maps/SL_FreezeRoom.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:79ca79046170426abeec81919e9118f92f8631e72b3a3d904f0f416dd2bf3af0 -size 152834 +oid sha256:ba4676536b31d9bbfafc1d1f458c1b90ad0e9c7ecbbf672bdd94d156ca4c9516 +size 157883 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/M_Circle.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/M_Circle.uasset new file mode 100644 index 0000000..5cbc585 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/M_Circle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a076a6f4f7bce4bb8310a29cd0cf921f277fbb20865fb6d6d360c33d7ab3329 +size 23762 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/M_Rays.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/M_Rays.uasset new file mode 100644 index 0000000..bb5ab16 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/M_Rays.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2e06c9ff74bb112414b09eee960997bed19e1e28b6686b28fc9380f8658e129 +size 28984 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/NPC_VRTemplate.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/NPC_VRTemplate.uasset new file mode 100644 index 0000000..1f328cc --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/NPC_VRTemplate.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:404fb25177f36a3d99b74588831b64371c7c96d5cb2f424a7ddf65c40e9ed346 +size 2736 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/NS_MenuPointer.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/NS_MenuPointer.uasset new file mode 100644 index 0000000..846e9b1 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/NS_MenuPointer.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc052684268e4399ee0ef2c839a32c24230aac5439a69f35d08624775834726f +size 341531 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/NS_PickupTrace.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/NS_PickupTrace.uasset new file mode 100644 index 0000000..60cd929 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/NS_PickupTrace.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c735274e73d0ac856b7865e0ecbd4e7fe3d0537542a913e366bffb34678349d4 +size 337936 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/NS_Portal.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/NS_Portal.uasset new file mode 100644 index 0000000..b73806a --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/NS_Portal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:904383cda47b9fc0c73b2ec872ffceb4dad8eb8fa252881b877c1e2e0c9fb1d7 +size 1192957 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/NS_ScanLaser.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/NS_ScanLaser.uasset new file mode 100644 index 0000000..5130b81 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/NS_ScanLaser.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7b81f183f46579c81c55985bb00b837fb501ad9bb74dac995e514c4821dd509 +size 317038 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/NS_TeleportTrace.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/NS_TeleportTrace.uasset new file mode 100644 index 0000000..2629ee1 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/NS_TeleportTrace.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fb649507bda0f4ab145259b2cfc6eba3c83cd951cbfb4d8df97555ec12e0172 +size 342384 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/BP_TestProjector.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/BP_TestProjector.uasset new file mode 100644 index 0000000..aea8609 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/BP_TestProjector.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be8fd47de9b5d5fc6e941bc1da191bf171c5410496e2f9fb08b4b6f8bbeec8a9 +size 47579 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/MI_Projector.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/MI_Projector.uasset new file mode 100644 index 0000000..d410380 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/MI_Projector.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c80305cdbf977dc2fdefd39062cbe84113670b2eef3b15bcb239b2d52d400124 +size 22595 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/MI_SliceTest.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/MI_SliceTest.uasset new file mode 100644 index 0000000..20feab2 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/MI_SliceTest.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac92c72ad8ca07aff256b4d2b76617bf8aafadea26af482a0861e841e1b8a676 +size 10581 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/MPC_Projector.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/MPC_Projector.uasset new file mode 100644 index 0000000..1d22a76 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/MPC_Projector.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff89ffca9a9ff569d7b6c3686e20e5da9f58c20b9ae5262d59172892d8532ba2 +size 1645 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/M_Projector.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/M_Projector.uasset new file mode 100644 index 0000000..1a80116 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/M_Projector.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdbdb863b110e9f4cef12d86cfc8a0d7e88b646513cf9a9497c99683af3e8d40 +size 33893 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/M_Rays.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/M_Rays.uasset new file mode 100644 index 0000000..cf30dd7 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/M_Rays.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:405ff410436b51e89db03924ca5d8d6a3c84d5fc086f0efd7591dcc9f6171cbe +size 35527 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/M_Rays_Inst.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/M_Rays_Inst.uasset new file mode 100644 index 0000000..1e155a7 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/M_Rays_Inst.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2785de8afd983d35b389c805ee5313133844e814d224eb26fdbfc4ae9d00377b +size 10415 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/NewMolecule_002_Bake1_PBR_Diffuse.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/NewMolecule_002_Bake1_PBR_Diffuse.uasset new file mode 100644 index 0000000..272a111 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/NewMolecule_002_Bake1_PBR_Diffuse.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f06531f6ca332ede086e4b83df959c861039ab39d0cb9544701df0c14fdbff3 +size 73007 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/Nitrate.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/Nitrate.uasset new file mode 100644 index 0000000..ee14a3f --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/Nitrate.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe469eef080a5d0d0b3bdffa9877acd21b67261ce41e29011c8489563455e7a8 +size 209486 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/Nitrate_LP.uasset b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/Nitrate_LP.uasset new file mode 100644 index 0000000..b891675 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VFX/Projector/Nitrate_LP.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3598da567d105333e605dfe745a5d315d7ad385400bb60d7b6bf7dc97e95ac6 +size 117344 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Core/Character/BP_Trace_Controller.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Core/Character/BP_Trace_Controller.uasset index 7d83565..dbadc83 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Core/Character/BP_Trace_Controller.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/Core/Character/BP_Trace_Controller.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cbafb5faa68113b675749f5196205db90f8c15214467252a94cb32a5909bf6f8 -size 1828649 +oid sha256:3610b11675c479bd6d61f635a4c82177aa8cffaabaa1142f335830b7024d7ee0 +size 1813474 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Core/Character/BP_VRCharacter.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Core/Character/BP_VRCharacter.uasset index 08bb30a..29ac028 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Core/Character/BP_VRCharacter.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/Core/Character/BP_VRCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:acf183c2b61ad51503f1963e934e850b845e78906014de4bd8df31a901291f11 -size 5732534 +oid sha256:77bad1e3aba29c3d47726b9318f4feb8fefc35908257032b91231216e460ac60 +size 5744225 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Core/Character/FPS_VRCharacter.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Core/Character/FPS_VRCharacter.uasset index 45b78ea..4a26f5c 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Core/Character/FPS_VRCharacter.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/Core/Character/FPS_VRCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:21316496b3c5cc7393791ed1c89a1ad63f403ad273158d738995c0efffa1171a -size 313254 +oid sha256:301e151d74612eea67f88102c34a7634bf1e56fb345d58982741d17496bc604b +size 317084 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Grippables/Weapons/Melee/MeleeBase.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Grippables/Weapons/Melee/MeleeBase.uasset index 5af74b9..a40177f 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Grippables/Weapons/Melee/MeleeBase.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/Grippables/Weapons/Melee/MeleeBase.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:99ceda2df79e042ac060b8017faefaba0db88400e8148036cd03eba143798aca -size 628697 +oid sha256:6ddd81a705d58f32fcfe09bafe8ceab281940ee27faa88afee4241d04d7c263d +size 616408 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/AlternateGripLeft.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/AlternateGripLeft.uasset deleted file mode 100644 index a3ecb0f..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/AlternateGripLeft.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1e838ac7a16a9abfbff653a00a2b541db9d5039649b8962d867bd271f673354b -size 1733 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/AlternateGripRight.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/AlternateGripRight.uasset deleted file mode 100644 index 4a50b4b..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/AlternateGripRight.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b709af759ede67d0f1be1236ea9d32414abd47c8aecdf0af30d81518712544e5 -size 1742 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/ControllerMovementLeft.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/ControllerMovementLeft.uasset deleted file mode 100644 index 7434073..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/ControllerMovementLeft.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:efb29e43077a95e58dc4701bac014adaeaa5a6aa59bbfbe67558023152a4b08a -size 1925 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/ControllerMovementRight.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/ControllerMovementRight.uasset deleted file mode 100644 index 6cc857a..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/ControllerMovementRight.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:47cbe9c2325bfce551802aece2a33050ab71b31ad010a0a4c03fed01ebf4403e -size 1934 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/Jump.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/Jump.uasset deleted file mode 100644 index de27f0f..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/Jump.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a1a5b728c4a1fb21be95307d7ce48439155eae8ff6b791f877d3309b8a62b29 -size 1645 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/LookUp.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/LookUp.uasset deleted file mode 100644 index dc3e867..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/LookUp.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3be15eb111e1907782872e423d45b0b6f441e710d0c144b4fdfbb0b380d1e8ec -size 1810 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/MoveForward.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/MoveForward.uasset deleted file mode 100644 index 3e3270d..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/MoveForward.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2c52c5253dfbb4a1ff7ba50eb675b199b0999f5b704c34a6a4440114763e2426 -size 1857 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/MoveRight.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/MoveRight.uasset deleted file mode 100644 index d44788b..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/MoveRight.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fd6d29db7763b629a4e8588db43f677b0cae53855cee720530d918b0339556df -size 1837 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/Turn.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/Turn.uasset deleted file mode 100644 index 0a7106f..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/FPSActions/Turn.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2cef6554d211f2da6161b97663aeb2369c648f9ede8db34c919575257c025baf -size 1792 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/LaserBeamLeft.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/LaserBeamLeft.uasset deleted file mode 100644 index 65cb30a..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/LaserBeamLeft.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9197c15df99db7cf86c31af6b948278ddc6d228ed314aa15b97acb41d9009273 -size 1697 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/LaserBeamRight.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/LaserBeamRight.uasset deleted file mode 100644 index 3435283..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/LaserBeamRight.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4eb9f86043920401304778a1247f7ccf600cfe2b62c8e78d4b5921d7575b5bf2 -size 1706 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/MotionControllerThumbLeft_X.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/MotionControllerThumbLeft_X.uasset deleted file mode 100644 index 76bfaff..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/MotionControllerThumbLeft_X.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f9514284ca54c4019335be42544a9c29de3e2ea179616f932b575a8ae927b0fd -size 1972 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/MotionControllerThumbLeft_Y.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/MotionControllerThumbLeft_Y.uasset deleted file mode 100644 index 65f005c..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/MotionControllerThumbLeft_Y.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4dc37821f7f0f5f745b527f6eb5ef09846a144a745ec9e970e4a54fe35a352c8 -size 1972 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/MotionControllerThumbRight_X.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/MotionControllerThumbRight_X.uasset deleted file mode 100644 index 7eb201d..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/MotionControllerThumbRight_X.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c809975f9f3d5b164dd94b1c5a13359035a3aa55a1201d28ef694eb8dcca694b -size 1981 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/MotionControllerThumbRight_Y.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/MotionControllerThumbRight_Y.uasset deleted file mode 100644 index 4fb4d3f..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/MotionControllerThumbRight_Y.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:08334d0a62c0064bcbe385e62e42f18fd5394b8de87935dbf191c09b37d0703e -size 1981 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/PauseGame.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/PauseGame.uasset deleted file mode 100644 index db5c331..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/PauseGame.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d8636197a7281ca1371cd485ba11273f9fd6b3affcd9931aab6debcd67c3af60 -size 1877 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/PrimaryGripLeft.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/PrimaryGripLeft.uasset deleted file mode 100644 index 0a2ad1a..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/PrimaryGripLeft.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2118297fb54c03b90d3f600dc2359ae504078a606720a5b02a4504cff322153a -size 1725 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/PrimaryGripRight.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/PrimaryGripRight.uasset deleted file mode 100644 index f78e572..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/PrimaryGripRight.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:45c451a28c509a1f29e80ee9d05df72e40267f376734866cd4c60f6a80ee0e8f -size 1734 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/SpawnInventory.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/SpawnInventory.uasset deleted file mode 100644 index 440cefc..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/SpawnInventory.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2097926eb2b821610c7727aba6deb91ecc9b72b4a0fcb9a6e1d809e0ccf87d09 -size 1786 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/TeleportLeft.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/TeleportLeft.uasset deleted file mode 100644 index 9177e19..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/TeleportLeft.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a5639edfcc13491b91cc89d033361dbb8b92776c278a871d13ae51837ae9c82 -size 1686 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/TeleportRight.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/TeleportRight.uasset deleted file mode 100644 index 054131e..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/TeleportRight.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bca00b14c3c592ae8c8f97963794904c5718f02c62e59161e845b35305c62547 -size 1695 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/UseHeldObjectLeft.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/UseHeldObjectLeft.uasset deleted file mode 100644 index c55059d..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/UseHeldObjectLeft.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:de78a3a8cf9cb1ccd1f1a67814856637922e53c76dab8e5675f3f044d985d21d -size 1729 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/UseHeldObjectRight.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/UseHeldObjectRight.uasset deleted file mode 100644 index f93d245..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/Actions/UseHeldObjectRight.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8fb7e74eb8d0e577d5dd293a3e23bc7d850f43938a0f97ac16c8ba4cdd751863 -size 1738 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/FPSInputConfig.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/FPSInputConfig.uasset deleted file mode 100644 index 7320fc5..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/FPSInputConfig.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8a3dbd80f436cfb88b32ad754672a97aeb7831d9b27f0afd118dbb2e76a902f4 -size 2238 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/FPSInputContext.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/FPSInputContext.uasset deleted file mode 100644 index 97f2e4a..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/FPSInputContext.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5d736f494febc8d56fbc8752af45f9f260547664bbe483db52c40e6960dc817b -size 11478 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/VREInputConfig.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/VREInputConfig.uasset deleted file mode 100644 index e57a916..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/VREInputConfig.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a93b6b73d5169be5db2c22c81bda929bb9a40900382197dac7f10f15ab59b694 -size 2252 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/VREInputMappingContext.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/VREInputMappingContext.uasset deleted file mode 100644 index 9cedcbc..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Input/VREInputMappingContext.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:87fb0c12b62e3a87846800e80361fd77beb08f18b0f8f96b53a85accf2e19305 -size 60735 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Level/Car/VehicleBP/Sedan/BP_Tractor.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Level/Car/VehicleBP/Sedan/BP_Tractor.uasset index ef841fc..91b29c7 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Level/Car/VehicleBP/Sedan/BP_Tractor.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/Level/Car/VehicleBP/Sedan/BP_Tractor.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3f3ebaf0ea71d5bee576b39db712c1f44ec1b67753a3dde57404ff2288a4a7f0 -size 873996 +oid sha256:a1174311515a6635c06662e979445aa91707cbb6137db6bb0a8b6a7bd3152446 +size 883099 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/Level/Car/VehicleBP/Sedan/Sedan.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/Level/Car/VehicleBP/Sedan/Sedan.uasset index ba6e423..2c9b607 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/Level/Car/VehicleBP/Sedan/Sedan.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/Level/Car/VehicleBP/Sedan/Sedan.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:31cd147bfee3f6d24d955f47c929c4c30460f34533ef2858d138dd495a08055b -size 900694 +oid sha256:ba21dda7eca96dc231774e9c4be0fc2d905d0d9f63df9bd5bd6d234c735efb5a +size 894164 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Core/Character/BP_VRCharacter2.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Core/Character/BP_VRCharacter2.uasset index 858b194..c52f5fc 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Core/Character/BP_VRCharacter2.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Core/Character/BP_VRCharacter2.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:27a142f1ae7bd6c95bea7e4584b059027a4fae8adc62140f58a9fd10f2013ffb -size 5645466 +oid sha256:fee489752e85dd854d3b28b041173e3309d34c4aeefe74c0f24f666b8718ced6 +size 5656675 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/Actions/PauseGame.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/Actions/PauseGame.uasset new file mode 100644 index 0000000..11846e4 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/Actions/PauseGame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08f973fe80234915441ffe2fc7347e963500822f691c0a650c2f0fb1757f7acf +size 1665 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/Actions/SpawnInventory.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/Actions/SpawnInventory.uasset new file mode 100644 index 0000000..4bc35e9 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/Actions/SpawnInventory.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5099e61259dd696ce5c0f7d433fd4b3975cbfcf77570088e0f21f270fb53f4be +size 1574 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/Jump.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/Jump.uasset new file mode 100644 index 0000000..12a7efd --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/Jump.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8664fa6b1f50d523a3d1832c1bac749ae08b60915d0e8a0fc15bc3d4b0e83cd0 +size 1452 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/LookUp.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/LookUp.uasset new file mode 100644 index 0000000..434a740 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/LookUp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:584bd0e0c66a57365cfb881aa3cef0f2309a618501d43a70f7f3e21078289e09 +size 1666 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/MoveForward.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/MoveForward.uasset new file mode 100644 index 0000000..ece8d08 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/MoveForward.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cef3b773f852276d4f335c37dedf15c9fdeee758017b7ae17864562a62a3d83 +size 1713 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/MoveRight.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/MoveRight.uasset new file mode 100644 index 0000000..ad6f6de --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/MoveRight.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06421d1572be6bea6b50d44ee592adee4b203108f3e8991af7567cde6a434c92 +size 1693 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/Turn.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/Turn.uasset new file mode 100644 index 0000000..bf250a7 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSActions/Turn.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3bbd1e102e7d778eca59a3d474d39e34d95783ad3deb6d838947f685b3d2c1a7 +size 1648 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSInputConfig.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSInputConfig.uasset new file mode 100644 index 0000000..4e377cc --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSInputConfig.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78ebb2c98a1802f646a092757c934926c284f9ce70f0b1614e529fd47f9b8530 +size 2078 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSInputContext.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSInputContext.uasset new file mode 100644 index 0000000..2813664 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/FPSInputContext.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d109e716664965d2511fadbf52653990b3a30ed0f0a22c058a9fd69915fefc0 +size 9269 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/VREInputConfig.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/VREInputConfig.uasset new file mode 100644 index 0000000..96aec9a --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/VREInputConfig.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e593df7f54e7080cf08715d9c9303f26bd45d34a591b0e4b0653292a87f18dad +size 2092 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/VREInputMappingContext.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/VREInputMappingContext.uasset new file mode 100644 index 0000000..2d753a4 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRE2/Input/VREInputMappingContext.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d34a5e7ee3a2530417b75636531ab541e6ee686c1531ea561a12176219ac7cde +size 29861 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRTemplate/VFX/NPC_VRTemplate.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRTemplate/VFX/NPC_VRTemplate.uasset deleted file mode 100644 index 5b342b0..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRTemplate/VFX/NPC_VRTemplate.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:add4f9d9477ab268973f4e4d665f7cb67fe6115e3cd3e81c37b0782914d7dd65 -size 2952 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRTemplate/VFX/NS_MenuPointer.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRTemplate/VFX/NS_MenuPointer.uasset deleted file mode 100644 index 80c2ef1..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRTemplate/VFX/NS_MenuPointer.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ca5f9682f145f0d01b5c2f7ffe026e70ed8b490ef4e6e1b3a4e80d58fb16ceb6 -size 354985 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRTemplate/VFX/NS_PickupTrace.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRTemplate/VFX/NS_PickupTrace.uasset deleted file mode 100644 index af5b63c..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRTemplate/VFX/NS_PickupTrace.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:52bc6ec638f68cdeee8e33ba68c62c713a887b5aa8c1fe85e63cc076b0ce1096 -size 351393 diff --git a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRTemplate/VFX/NS_TeleportTrace.uasset b/VIRTUOS_ExpansionPluginTests/Content/VRE/VRTemplate/VFX/NS_TeleportTrace.uasset deleted file mode 100644 index 94bef93..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/VRE/VRTemplate/VFX/NS_TeleportTrace.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:99687995c0ce0a5e62792468e7f69fb5a2110575dc554c4058e1b83e8ed6d793 -size 355837 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Characters/Clarice/BP_Clarice.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Characters/Clarice/BP_Clarice.uasset index 9a9f593..b972e2d 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/World/Characters/Clarice/BP_Clarice.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Characters/Clarice/BP_Clarice.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ab151ce8565de6334515110a6d854c0944807e1396cbdc6b586d09f4b448d696 -size 636925 +oid sha256:6128a17e9f3692bd66a879da38e764ed6fc18522f3cc0e56ae8240984152248b +size 630413 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Electrical/NitroScan/BP_NitroScan.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Electrical/NitroScan/BP_NitroScan.uasset index 67c489c..ef28609 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Electrical/NitroScan/BP_NitroScan.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Electrical/NitroScan/BP_NitroScan.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:681dd7eafe03ae224f2bb84806a65909bae4480d32ca9e3037fca651cceb2923 -size 138593 +oid sha256:f04a6a8954608e134988239b59b61817fee66ee21d075038ed1df1cfcc0c72b9 +size 197127 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Electrical/NitroScan/M_Scanline.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Electrical/NitroScan/M_Scanline.uasset index b38f8e7..e9b718e 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Electrical/NitroScan/M_Scanline.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Electrical/NitroScan/M_Scanline.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:00f63231dec0953d5549c43f4b7fe5c9ebf3007daff3d424570210c33e4a3bc0 -size 17392 +oid sha256:6ba5344a841afad2eedb7d23d8e8686603d7865b40e6e615db857b9e157e5273 +size 27612 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Electrical/NitroScan/M_Scanline_Inst.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Electrical/NitroScan/M_Scanline_Inst.uasset new file mode 100644 index 0000000..dd93261 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Electrical/NitroScan/M_Scanline_Inst.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c32037bc4c8d5c615c7b44caa4280e3f46458f559bbc0fc23ace7dd742ecf5f +size 17287 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Electrical/NitroScan/NS_ScanLaser.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Electrical/NitroScan/NS_ScanLaser.uasset index 8fc2938..9bcd45d 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Electrical/NitroScan/NS_ScanLaser.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Electrical/NitroScan/NS_ScanLaser.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8162abb15096223b986a8fd59f3228df6aea49062cc4b3f08a5106a4b5aaeb20 -size 325457 +oid sha256:982cd084209ecd9553adc4ef632d5eb1390924b8c0e3991be946a824c9d78dbb +size 1351 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Letters/Letter_1/Letter_01_1_of_1.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Letters/Letter_1/Letter_01_1_of_1.uasset index bc83a26..224d884 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Letters/Letter_1/Letter_01_1_of_1.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Interactibles/Letters/Letter_1/Letter_01_1_of_1.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9e0788c5bf4617fc80cb13236feb78b8b49dae7616931228fabb1454dc8d3ce3 -size 54872 +oid sha256:c178d2654ecd50e4ddd74ee2f8734e560ba430965e9e6fcf3839d0e9702ff569 +size 54370 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Materials/PostProcess/M_PP_Hide.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Materials/PostProcess/M_PP_Hide.uasset new file mode 100644 index 0000000..827dbd4 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Materials/PostProcess/M_PP_Hide.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b031bd70ab71a02f2f90ad1b5db42af9581446817f4e86a280fee2f2ea705151 +size 6135 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Materials/StoneTiles/Test_WS_Parallax_Fllor.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Materials/StoneTiles/Test_WS_Parallax_Fllor.uasset index 469cfde..9bb6fe0 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/World/Materials/StoneTiles/Test_WS_Parallax_Fllor.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Materials/StoneTiles/Test_WS_Parallax_Fllor.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d8acdfa955b7783811637c14911f8d1116ec32da78fd00a29b3075cfcb275b5c -size 19262 +oid sha256:ef334e60c2a73528ed17f858ca16a441bd12b82e8a5c704cc8a0224af40568d0 +size 19072 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Lights/BP_Light.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Lights/BP_Light.uasset index 34aee5a..fc171d1 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Lights/BP_Light.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Lights/BP_Light.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3a99acc6bda36a31b8d2aeca93ab2bdf16269648047c19105b97375023d6d20c -size 57855 +oid sha256:c0f6b020bcbd40e162498cbd6e2d3fa816aa97d4c894a26b1cc090d50ffcdb77 +size 62962 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/Half-X-Pipe.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/Half-X-Pipe.uasset index 60ca9e8..2a7aa44 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/Half-X-Pipe.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/Half-X-Pipe.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:079ba1a42d6426410cb61206452b9b797c9407e5ca45826ff06c08038079d3ba -size 80676 +oid sha256:49f7bf9f0c314f709fdf6828a3dbab2aded4ffd2aab58634ac7da8d9fca20ff0 +size 85563 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe.uasset index ad9c731..8ed4ec6 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4fbc4920756fb5e4c56956fc06e206fbf1008fa43d09ec6a07910cf50ef0b0b9 -size 62501 +oid sha256:4dad754d8f21e4b906117d38c7e061a5308bc17b257fbd9c7425d75b324552c4 +size 83770 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe1.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe1.uasset deleted file mode 100644 index faed478..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe1.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dfc3872304c90875f0e69cc149e8da134035afd4ac79515db1cc4d9be735adb4 -size 72307 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe1_Inst.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe1_Inst.uasset deleted file mode 100644 index e9038a2..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe1_Inst.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9510877cbfc30998fff5bbd750391987e59e2ede83adde5f362076288b5553a9 -size 11885 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe_Inst.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe_Inst.uasset index 55efa3f..2816180 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe_Inst.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe_Inst.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e239bf899fdabb214b4d072136e49807600d9e94b8ab9652e26a33d75ebd0d6e -size 13472 +oid sha256:45739ff08b2a581cc571b427ae310607797727e95420e0fd331bd569c868033c +size 10406 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe_Inst1.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe_Inst1.uasset deleted file mode 100644 index f92af40..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe_Inst1.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1c07fbf8f30aa737aab7f76c42f03e69b53a1b3aa10c5927c20ab03d3753f574 -size 12744 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe_Inst2.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe_Inst2.uasset new file mode 100644 index 0000000..6cbc73d --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe_Inst2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8417e207e37edc7b65b23b6a980575fcc51bbf73d2dfb2599642269d4e8b2cdf +size 15351 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe_Inst_UVBox.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe_Inst_UVBox.uasset new file mode 100644 index 0000000..d5b3907 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/M_Pipe_Inst_UVBox.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21b25d1b713adb16b47bf7e90572d2f80f7fcff522ad2202b6281ab5a0d9f3c0 +size 14335 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/Pipe004_4K-JPG_NormalDX.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/Pipe004_4K-JPG_NormalDX.uasset new file mode 100644 index 0000000..d56deb3 --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Splines/Pipes/Pipe004_4K-JPG_NormalDX.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b309d334df24596cc5763d48f830fbffaad67dd320b4e033909405cd7416749a +size 6215911 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Stairs/Gratings/SM_Freezing_Chamber_Grating.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Stairs/Gratings/SM_Freezing_Chamber_Grating.uasset index e025b98..9687a93 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Stairs/Gratings/SM_Freezing_Chamber_Grating.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Stairs/Gratings/SM_Freezing_Chamber_Grating.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:57da0aeb4f3022459f0a5010e3496f93e9654a909b7d7aa51cd6bae2c2b7ae91 -size 313636 +oid sha256:8616c468331bb5baa0f7c104098b29236385a3a915affb19bbd9cea3184a6cf0 +size 1481 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Stairs/Gratings/SM_Grating2_Square.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Stairs/Gratings/SM_Grating2_Square.uasset index 8cabc46..4ef82d2 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Stairs/Gratings/SM_Grating2_Square.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Stairs/Gratings/SM_Grating2_Square.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ffe8689fa2c12345eb785910e41f663e0b7dcd76a5ae524bae9235daed02aa6f -size 82522 +oid sha256:9414e064da151ad24a2aab4c08abf1635c1e13dc633b1e87f4698445ef4594b1 +size 89316 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Stairs/Gratings/SM_Grating_Large.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Stairs/Gratings/SM_Grating_Large.uasset new file mode 100644 index 0000000..9a5213e --- /dev/null +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Stairs/Gratings/SM_Grating_Large.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc0f5ede92d3aabb8ed7966a33794a2e5fcffdc4f1eb2661c399874ddde2cf86 +size 323008 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Walls/BP_Floor.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Walls/BP_Floor.uasset index 9580957..30b9603 100644 --- a/VIRTUOS_ExpansionPluginTests/Content/World/Static/Walls/BP_Floor.uasset +++ b/VIRTUOS_ExpansionPluginTests/Content/World/Static/Walls/BP_Floor.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:efd52af44f0c100ece7fddc1924adc71d3eaf81857943c9f5c1a96e091b015a2 -size 115396 +oid sha256:6a4dc95a1dadeb5eaca809ee326f14bd615aa6521a921a531d0a6ee606bd3ef0 +size 113945 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/BP_TestProjector.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/BP_TestProjector.uasset deleted file mode 100644 index 1a70503..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/BP_TestProjector.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fdf0feca428f96e0a6e571a1d2f676e86dc477b9124a30220fac574db8ec201b -size 46545 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/MI_Projector.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/MI_Projector.uasset deleted file mode 100644 index 82c2c83..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/MI_Projector.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5655dd1097508875fe3a5a4df5bb81404370e541607ed468f2b5637868671e18 -size 22811 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/MI_SliceTest.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/MI_SliceTest.uasset deleted file mode 100644 index 0eef19d..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/MI_SliceTest.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ff56836b7eb36e8d8ea038cde4280acad96e5b46dc38d739c7530fe741cd3809 -size 10837 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/MPC_Projector.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/MPC_Projector.uasset deleted file mode 100644 index 8695ea0..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/MPC_Projector.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cf859256fe097febcfce587126a47691a6ba7e0146d7ff92edd07621e4a58c03 -size 1883 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/M_Projector.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/M_Projector.uasset deleted file mode 100644 index 1de70f1..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/M_Projector.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f12167d851cd437f102830b31fd5edb94a0e41c0210e42f5e3fb4db20e29d25a -size 33947 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/M_Projector_Inst.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/M_Projector_Inst.uasset deleted file mode 100644 index b0e1fd8..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/M_Projector_Inst.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3f148f5628344cd928aaa44d9a63f96742e89a51a1b87c9abfaa5a8b1de8fd18 -size 1588 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/M_Rays.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/M_Rays.uasset deleted file mode 100644 index cbba272..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/M_Rays.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a12f7e0bc6c1463894c3e6bb58bffd62028b8f11fa813c883fc8f98bff23596f -size 35587 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/M_Rays_Inst.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/M_Rays_Inst.uasset deleted file mode 100644 index 33dbc85..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/M_Rays_Inst.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:545ae02a9fdd2e402995908827d74b60ee02b29be7869e28540647379fd36027 -size 10671 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/NewMolecule_002_Bake1_PBR_Diffuse.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/NewMolecule_002_Bake1_PBR_Diffuse.uasset deleted file mode 100644 index ec9f4d5..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/NewMolecule_002_Bake1_PBR_Diffuse.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:12e317f3e322fd05ea43753357db3f087dac25f4d9286cc361fd6460770d0f6a -size 73245 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/Nitrate.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/Nitrate.uasset deleted file mode 100644 index 55a069d..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/Nitrate.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1b3b977625a6785b9b51f527e69390997b15544c9afb64daa2fc1bcd89b8e6aa -size 209637 diff --git a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/Nitrate_LP.uasset b/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/Nitrate_LP.uasset deleted file mode 100644 index f192cb1..0000000 --- a/VIRTUOS_ExpansionPluginTests/Content/World/VFX/Projector/Nitrate_LP.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:40986331c45661e60714851262d93355138437fd7fe9370fdb3b57d1de5cec39 -size 117473 diff --git a/VIRTUOS_ExpansionPluginTests/LICENSE.txt b/VIRTUOS_ExpansionPluginTests/LICENSE.txt deleted file mode 100644 index 986c999..0000000 --- a/VIRTUOS_ExpansionPluginTests/LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright Joshua Statzer - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/OpenXRExpansionPlugin/Source/OpenXRExpansionPlugin/OpenXRExpansionPlugin.Build.cs b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/OpenXRExpansionPlugin/Source/OpenXRExpansionPlugin/OpenXRExpansionPlugin.Build.cs index e7a0b33..41989fe 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/OpenXRExpansionPlugin/Source/OpenXRExpansionPlugin/OpenXRExpansionPlugin.Build.cs +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/OpenXRExpansionPlugin/Source/OpenXRExpansionPlugin/OpenXRExpansionPlugin.Build.cs @@ -10,6 +10,10 @@ namespace UnrealBuildTool.Rules public OpenXRExpansionPlugin(ReadOnlyTargetRules Target) : base(Target) { + PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; + DefaultBuildSettings = BuildSettingsVersion.Latest; + IncludeOrderVersion = EngineIncludeOrderVersion.Latest; + SetupIrisSupport(Target); PublicDependencyModuleNames.AddRange( diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/CharacterMovementCompTypes.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/CharacterMovementCompTypes.cpp index 300790d..dce0cc3 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/CharacterMovementCompTypes.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/CharacterMovementCompTypes.cpp @@ -373,6 +373,11 @@ bool FVRCharacterNetworkMoveData::Serialize(UCharacterMovementComponent& Charact { bRepRollAndPitch = (Roll != 0 || Pitch != 0); } + else + { + bool bCanRepRollAndPitch = (CharacterOwner && (CharacterOwner->bUseControllerRotationRoll || CharacterOwner->bUseControllerRotationPitch)); + bRepRollAndPitch = bCanRepRollAndPitch && (Roll != 0 || Pitch != 0); + } } else { diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/GripMotionControllerComponent.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/GripMotionControllerComponent.cpp index 6f56a1a..bfb4cfe 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/GripMotionControllerComponent.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/GripMotionControllerComponent.cpp @@ -19,6 +19,7 @@ #include "UObject/UObjectGlobals.h" // for FindObject<> #include "IXRTrackingSystem.h" #include "IXRSystemAssets.h" +#include "SceneView.h" #include "DrawDebugHelpers.h" #include "TimerManager.h" #include "VRBaseCharacter.h" @@ -249,7 +250,7 @@ void UGripMotionControllerComponent::RegisterEndPhysicsTick(bool bRegister) void UGripMotionControllerComponent::EndPhysicsTickComponent(FGripComponentEndPhysicsTickFunction& ThisTickFunction) { - if (!IsValid(this)) + if (!IsValidChecked(this)) return; // Now check if we should turn off any post physics ticking @@ -4310,7 +4311,7 @@ bool UGripMotionControllerComponent::TeleportMoveGrippedActor(AActor * GrippedAc FBPActorGripInformation * GripInfo = LocallyGrippedObjects.FindByKey(GrippedActorToMove); if (!GripInfo) - GrippedObjects.FindByKey(GrippedActorToMove); + GripInfo = GrippedObjects.FindByKey(GrippedActorToMove); if (GripInfo) { @@ -4327,7 +4328,7 @@ bool UGripMotionControllerComponent::TeleportMoveGrippedComponent(UPrimitiveComp FBPActorGripInformation * GripInfo = LocallyGrippedObjects.FindByKey(ComponentToMove); if (!GripInfo) - GrippedObjects.FindByKey(ComponentToMove); + GripInfo = GrippedObjects.FindByKey(ComponentToMove); if (GripInfo) { @@ -6017,7 +6018,7 @@ void UGripMotionControllerComponent::CleanUpBadPhysicsHandles() { FBPActorGripInformation * GripInfo = LocallyGrippedObjects.FindByKey(PhysicsGrips[g].GripID); if(!GripInfo) - GrippedObjects.FindByKey(PhysicsGrips[g].GripID); + GripInfo = GrippedObjects.FindByKey(PhysicsGrips[g].GripID); if (!GripInfo) { @@ -6156,44 +6157,48 @@ bool UGripMotionControllerComponent::DestroyPhysicsHandle(const FBPActorGripInfo return true; } - UPrimitiveComponent *root = Grip.GetGrippedComponent(); - AActor * pActor = Grip.GetGrippedActor(); - - if (!root && pActor) - root = Cast(pActor->GetRootComponent()); - - if (root) + if (IsValid(Grip.GrippedObject)) { - if (FBodyInstance * rBodyInstance = root->GetBodyInstance(Grip.GrippedBoneName)) + + UPrimitiveComponent* root = Grip.GetGrippedComponent(); + AActor* pActor = Grip.GetGrippedActor(); + + if (!root && pActor) + root = Cast(pActor->GetRootComponent()); + + if (root) { - // #TODO: Should this be done on drop instead? - // Remove event registration - if (!bSkipUnregistering) + if (FBodyInstance* rBodyInstance = root->GetBodyInstance(Grip.GrippedBoneName)) { - if (rBodyInstance->OnRecalculatedMassProperties().IsBoundToObject(this)) + // #TODO: Should this be done on drop instead? + // Remove event registration + if (!bSkipUnregistering) { - rBodyInstance->OnRecalculatedMassProperties().RemoveAll(this); - } - } - - if (HandleInfo->bSetCOM) - { - // Reset center of mass to zero - // Get our original values - FVector vel = rBodyInstance->GetUnrealWorldVelocity(); - FVector aVel = rBodyInstance->GetUnrealWorldAngularVelocityInRadians(); - FVector originalCOM = rBodyInstance->GetCOMPosition(); - - if (rBodyInstance->IsValidBodyInstance() && rBodyInstance->BodySetup.IsValid()) - { - rBodyInstance->UpdateMassProperties(); + if (rBodyInstance->OnRecalculatedMassProperties().IsBoundToObject(this)) + { + rBodyInstance->OnRecalculatedMassProperties().RemoveAll(this); + } } - if (rBodyInstance->IsInstanceSimulatingPhysics()) + if (HandleInfo->bSetCOM) { - // Offset the linear velocity by the new COM position and set it - vel += FVector::CrossProduct(aVel, rBodyInstance->GetCOMPosition() - originalCOM); - rBodyInstance->SetLinearVelocity(vel, false); + // Reset center of mass to zero + // Get our original values + FVector vel = rBodyInstance->GetUnrealWorldVelocity(); + FVector aVel = rBodyInstance->GetUnrealWorldAngularVelocityInRadians(); + FVector originalCOM = rBodyInstance->GetCOMPosition(); + + if (rBodyInstance->IsValidBodyInstance() && rBodyInstance->BodySetup.IsValid()) + { + rBodyInstance->UpdateMassProperties(); + } + + if (rBodyInstance->IsInstanceSimulatingPhysics()) + { + // Offset the linear velocity by the new COM position and set it + vel += FVector::CrossProduct(aVel, rBodyInstance->GetCOMPosition() - originalCOM); + rBodyInstance->SetLinearVelocity(vel, false); + } } } } @@ -7224,8 +7229,15 @@ void UGripMotionControllerComponent::ApplyTrackingParameters(FVector& OriginalPo if (IsValid(AttachChar) && !AttachChar->bRetainRoomscale) { - FRotator StoredCameraRotOffset = UVRExpansionFunctionLibrary::GetHMDPureYaw_I(curRot.Rotator()); - LastLocationForLateUpdate += StoredCameraRotOffset.RotateVector(FVector(AttachChar->VRRootReference->VRCapsuleOffset.X, AttachChar->VRRootReference->VRCapsuleOffset.Y, 0.0f)); + if (AttachChar->VRMovementReference && AttachChar->VRMovementReference->GetReplicatedMovementMode() == EVRConjoinedMovementModes::C_VRMOVE_Seated) + { + + } + else + { + FRotator StoredCameraRotOffset = UVRExpansionFunctionLibrary::GetHMDPureYaw_I(curRot.Rotator()); + LastLocationForLateUpdate += StoredCameraRotOffset.RotateVector(FVector(AttachChar->VRRootReference->VRCapsuleOffset.X, AttachChar->VRRootReference->VRCapsuleOffset.Y, 0.0f)); + } } } } @@ -7238,8 +7250,15 @@ void UGripMotionControllerComponent::ApplyTrackingParameters(FVector& OriginalPo if (!AttachChar->bRetainRoomscale && IsLocallyControlled()) { - FRotator StoredCameraRotOffset = UVRExpansionFunctionLibrary::GetHMDPureYaw_I(AttachChar->VRReplicatedCamera->GetRelativeRotation()); - LastLocationForLateUpdate += StoredCameraRotOffset.RotateVector(FVector(AttachChar->VRRootReference->VRCapsuleOffset.X, AttachChar->VRRootReference->VRCapsuleOffset.Y, 0.0f)); + if (AttachChar->VRMovementReference && AttachChar->VRMovementReference->GetReplicatedMovementMode() == EVRConjoinedMovementModes::C_VRMOVE_Seated) + { + + } + else + { + FRotator StoredCameraRotOffset = UVRExpansionFunctionLibrary::GetHMDPureYaw_I(AttachChar->VRReplicatedCamera->GetRelativeRotation()); + LastLocationForLateUpdate += StoredCameraRotOffset.RotateVector(FVector(AttachChar->VRRootReference->VRCapsuleOffset.X, AttachChar->VRRootReference->VRCapsuleOffset.Y, 0.0f)); + } } } } diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Grippables/GrippablePhysicsReplication.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Grippables/GrippablePhysicsReplication.cpp index 1f34a92..bf2a9d5 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Grippables/GrippablePhysicsReplication.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Grippables/GrippablePhysicsReplication.cpp @@ -10,6 +10,7 @@ #include "CoreMinimal.h" #include "PhysicsEngine/BodyInstance.h" +#include "PhysicsReplicationLOD.h" #include "Components/PrimitiveComponent.h" #include "Components/SkeletalMeshComponent.h" #include "UObject/ObjectMacros.h" @@ -43,6 +44,12 @@ namespace VRPhysicsReplicationStatics // Hacky work around for them not exporting these.... #if WITH_EDITOR + +namespace RenderInterpolationCVars +{ + bool bRenderInterpDebugDrawResimTrigger = false; +} + namespace PhysicsReplicationCVars { int32 SkipSkeletalRepOptimization = 1; @@ -51,6 +58,9 @@ namespace PhysicsReplicationCVars #endif int32 EnableDefaultReplication = 0; + int32 DebugDrawShowRepMode = 0; + float DebugDrawLifeTime = 3.0f; + namespace DefaultReplicationCVars { @@ -61,6 +71,8 @@ namespace PhysicsReplicationCVars namespace ResimulationCVars { + //extern bool bApplyPredictiveInterpolationWhenBehindServer; + bool bRuntimeCorrectionEnabled = false; bool bRuntimeVelocityCorrection = false; bool bRuntimeCorrectConnectedBodies = true; @@ -72,15 +84,20 @@ namespace PhysicsReplicationCVars // Inside of NetworkPhysicsComponent - UPDATE AS CHANGE int32 RedundantInputs = 2; + int32 RedundantRemoteInputs = 1; int32 RedundantStates = 0; bool bAllowRewindToClosestState = true; bool bCompareStateToTriggerRewind = false; + bool bCompareStateToTriggerRewindIncludeSimProxies = false; bool bCompareInputToTriggerRewind = false; bool bEnableUnreliableFlow = true; bool bEnableReliableFlow = false; bool bApplyDataInsteadOfMergeData = false; bool bAllowInputExtrapolation = true; bool bValidateDataOnGameThread = false; + bool bApplySimProxyStateAtRuntime = false; + bool bApplySimProxyInputAtRuntime = true; + bool bApplyPredictiveInterpolationWhenBehindServer = true; } namespace PredictiveInterpolationCVars @@ -129,6 +146,9 @@ namespace PhysicsReplicationCVars float DrawDebugZOffset = 50.0f; float SleepSecondsClearTarget = 15.0f; int32 TargetTickAlignmentClampMultiplier = 2; + int32 TeleportDetectionEnabled = 1; + float TeleportDetectionMinDistance = 200.0f; + float TeleportDetectionVelocityMultiplier = 1.3f; } } @@ -373,13 +393,13 @@ void FPhysicsReplicationVR::RemoveReplicatedTarget(UPrimitiveComponent* Componen { // Skip all of the custom logic if we aren't the server - if (const UWorld* World = GetOwningWorld()) + /*if (const UWorld* World = GetOwningWorld()) { if (World->GetNetMode() == ENetMode::NM_Client) { return FPhysicsReplication::RemoveReplicatedTarget(Component); } - } + }*/ if (Component == nullptr) { @@ -659,7 +679,7 @@ bool FPhysicsReplicationVR::ApplyRigidBodyState(float DeltaSeconds, FBodyInstanc { if (bHardsnapLegacyInPT) { - if (Chaos::FSingleParticlePhysicsProxy* Proxy = static_cast(BI->GetPhysicsActorHandle())) + if (Chaos::FSingleParticlePhysicsProxy* Proxy = static_cast(BI->GetPhysicsActor())) { if (Chaos::FPBDRigidsSolver* Solver = Proxy->GetSolver()) { @@ -715,7 +735,7 @@ bool FPhysicsReplicationVR::ApplyRigidBodyState(float DeltaSeconds, FBodyInstanc AsyncInputData.TargetState = NewState; AsyncInputData.TargetState.Position = IdealWorldTM.GetLocation(); AsyncInputData.TargetState.Quaternion = IdealWorldTM.GetRotation(); - AsyncInputData.Proxy = static_cast(BI->GetPhysicsActorHandle()); + AsyncInputData.Proxy = static_cast(BI->GetPhysicsActor()); AsyncInputData.ErrorCorrection = { ErrorCorrection.LinearVelocityCoefficient, ErrorCorrection.AngularVelocityCoefficient, ErrorCorrection.PositionLerp, ErrorCorrection.AngleLerp }; AsyncInputData.LatencyOneWay = PingSeconds; @@ -746,7 +766,7 @@ bool FPhysicsReplicationVR::ApplyRigidBodyState(float DeltaSeconds, FBodyInstanc { FColor Color = FColor::White; static const auto CVarNetCorrectionLifetime = IConsoleManager::Get().FindConsoleVariable(TEXT("p.NetCorrectionLifetime")); - DrawDebugDirectionalArrow(OwningWorld, CurrentState.Position, TargetPos, 5.0f, Color, true, CVarNetCorrectionLifetime->GetFloat(), 0, 1.5f); + DrawDebugDirectionalArrow(OwningWorld, CurrentState.Position, TargetPos, 5.0f, Color, false, CVarNetCorrectionLifetime->GetFloat(), 0, 1.5f); #if 0 //todo: do we show this in async mode? DrawDebugFloatHistory(*OwningWorld, PhysicsTarget.ErrorHistory, NewPos + FVector(0.0f, 0.0f, 100.0f), FVector2D(100.0f, 50.0f), FColor::White); @@ -791,6 +811,12 @@ void FPhysicsReplicationVR::OnTick(float DeltaSeconds, TMap(GetSolver()); + Chaos::FPBDRigidsSolver& RigidsSolver = GetSolver()->CastChecked(); + RigidsSolver.SetPhysicsReplication_Internal(this); + //Chaos::FPBDRigidsSolver* RigidsSolver = static_cast(GetSolver()); - if (ensure(RigidsSolver)) + /*if (ensure(RigidsSolver)) { // This doesn't even do anything currently, nothing gets it #TODO: CHECK BACK ON THIS //RigidsSolver->SetPhysicsReplication(this); - } + }*/ } void FPhysicsReplicationAsyncVR::OnPreSimulate_Internal() @@ -1049,35 +1077,34 @@ void FPhysicsReplicationAsyncVR::OnPreSimulate_Internal() return; } - if (const FPhysicsReplicationAsyncInput* AsyncInput = GetConsumerInput_Internal()) + Chaos::FPBDRigidsSolver* RigidsSolver = static_cast(GetSolver()); + check(RigidsSolver); + + // Early out if this is a resim frame + Chaos::FRewindData* RewindData = RigidsSolver->GetRewindData(); + const bool bRewindDataExist = RewindData != nullptr; + if (bRewindDataExist && RewindData->IsResim()) { - Chaos::FPBDRigidsSolver* RigidsSolver = static_cast(GetSolver()); - check(RigidsSolver); - - // Early out if this is a resim frame - Chaos::FRewindData* RewindData = RigidsSolver->GetRewindData(); - const bool bRewindDataExist = RewindData != nullptr; - if (bRewindDataExist && RewindData->IsResim()) + //static const auto CVarPostResimWaitForUpdate = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.PostResimWaitForUpdate")); + // TODO, Handle the transition from post-resim to interpolation better (disabled by default, resim vs replication interaction is handled via FPhysicsReplicationAsync::CacheResimInteractions) + if (SettingsCurrent.PredictiveInterpolationSettings.GetPostResimWaitForUpdate() && RewindData->IsFinalResim()) { - // TODO, Handle the transition from post-resim to interpolation better (disabled by default, resim vs replication interaction is handled via FPhysicsReplicationAsync::CacheResimInteractions) - static const auto CVarPostResimWaitForUpdate = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.PostResimWaitForUpdate")); - if (CVarPostResimWaitForUpdate->GetBool() && RewindData->IsFinalResim()) + for (auto Itr = ObjectToTarget.CreateIterator(); Itr; ++Itr) { - for (auto Itr = ObjectToTarget.CreateIterator(); Itr; ++Itr) - { - FReplicatedPhysicsTargetAsync& Target = Itr.Value(); + FReplicatedPhysicsTargetAsync& Target = Itr.Value(); - // If final resim frame, mark interpolated targets as waiting for up to date data from the server. - if (Target.RepMode == EPhysicsReplicationMode::PredictiveInterpolation) - { - Target.SetWaiting(RigidsSolver->GetCurrentFrame() + Target.FrameOffset, Target.RepModeOverride); - } + // If final resim frame, mark interpolated targets as waiting for up to date data from the server. + if (Target.RepMode == EPhysicsReplicationMode::PredictiveInterpolation) + { + Target.SetWaiting(RigidsSolver->GetCurrentFrame() + Target.FrameOffset, Target.RepModeOverride); } } - - return; } + return; + } + if (const FPhysicsReplicationAsyncInput* AsyncInput = GetConsumerInput_Internal()) + { // Update async targets with target input for (const FPhysicsRepAsyncInputData& Input : AsyncInput->InputData) { @@ -1100,15 +1127,27 @@ void FPhysicsReplicationAsyncVR::OnPreSimulate_Internal() UpdateRewindDataTarget(Input); UpdateAsyncTarget(Input, RigidsSolver); - } - if (Chaos::FPBDRigidsSolver::IsNetworkPhysicsPredictionEnabled()) - { - CacheResimInteractions(); - } + DebugDrawReplicationMode(Input); - ApplyTargetStatesAsync(GetDeltaTime_Internal(), AsyncInput->ErrorCorrection, AsyncInput->InputData); + // Deprecated, legacy BodyInstance flow for Default Replication + if (Input.Proxy != nullptr) + { + Chaos::FSingleParticlePhysicsProxy* Proxy = Input.Proxy; + Chaos::FRigidBodyHandle_Internal* Handle = Proxy->GetPhysicsThreadAPI(); + + const FPhysicsRepErrorCorrectionData& UsedErrorCorrection = Input.ErrorCorrection.IsSet() ? Input.ErrorCorrection.GetValue() : AsyncInput->ErrorCorrection; + DefaultReplication_DEPRECATED(Handle, Input, GetDeltaTime_Internal(), UsedErrorCorrection); + } + } } + + if (Chaos::FPBDRigidsSolver::IsNetworkPhysicsPredictionEnabled()) + { + CacheResimInteractions(); + } + + ApplyTargetStatesAsync(GetDeltaTime_Internal()); } FReplicatedPhysicsTargetAsync* FPhysicsReplicationAsyncVR::AddObjectToReplication(Chaos::FConstPhysicsObjectHandle PhysicsObject) @@ -1201,6 +1240,7 @@ void FPhysicsReplicationAsyncVR::UpdateAsyncTarget(const FPhysicsRepAsyncInputDa Target->PrevLinVel = Input.TargetState.LinVel; Target->RepModeOverride = Input.RepMode; } + check(Target); /** Target Update Description * @param Input = incoming state target for replication. @@ -1247,6 +1287,9 @@ void FPhysicsReplicationAsyncVR::UpdateAsyncTarget(const FPhysicsRepAsyncInputDa // Set if the target is allowed to be altered after this update Target->bAllowTargetAltering = !(Target->TargetState.Flags & ERigidBodyFlags::Sleeping) && !(Input.TargetState.Flags & ERigidBodyFlags::Sleeping); + // Cache previous linear velocity + const FVector PrevLinVel = Target->TargetState.LinVel; + // Set Target->ReceiveInterval from either SendInterval or the number of physics ticks between receiving input states if (SendInterval > 0) { @@ -1259,11 +1302,7 @@ void FPhysicsReplicationAsyncVR::UpdateAsyncTarget(const FPhysicsRepAsyncInputDa } // Update target from input and reset properties - PRAGMA_DISABLE_DEPRECATION_WARNINGS - Target->PrevServerFrame = Target->bWaiting ? Input.ServerFrame : Target->ServerFrame; // DEPRECATED UE5.4 - Target->PrevReceiveFrame = (Target->ReceiveFrame == INDEX_NONE) ? (RigidsSolver->GetCurrentFrame() - 1) : Target->ReceiveFrame; // DEPRECATED UE5.4 - PRAGMA_ENABLE_DEPRECATION_WARNINGS - Target->ServerFrame = Input.ServerFrame; + Target->ServerFrame = Input.ServerFrame; Target->ReceiveFrame = CurrentFrame; Target->TargetState = Input.TargetState; Target->RepMode = Input.RepMode; @@ -1274,7 +1313,13 @@ void FPhysicsReplicationAsyncVR::UpdateAsyncTarget(const FPhysicsRepAsyncInputDa // Update waiting state Target->UpdateWaiting(Input.ServerFrame); - if (Input.RepMode == EPhysicsReplicationMode::PredictiveInterpolation) + // Apply full Replication LOD on received target + ApplyPhysicsReplicationLOD(Input.PhysicsObject, *Target, EPhysicsReplicationLODFlags::LODFlag_All); + + // Check if target is valid to use for resimulation and perform actions if not + CheckTargetResimValidity(*Target); + + if (Target->RepMode == EPhysicsReplicationMode::PredictiveInterpolation) { #if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) @@ -1284,16 +1329,13 @@ void FPhysicsReplicationAsyncVR::UpdateAsyncTarget(const FPhysicsRepAsyncInputDa const FVector Offset = FVector(0.0f, 0.0f, 50.0f); // Port this? //const FVector Offset = FVector(0.0f, 0.0f, PhysicsReplicationCVars::PredictiveInterpolationCVars::DrawDebugZOffset); - - static const auto CVarNetCorrectionLifetime = IConsoleManager::Get().FindConsoleVariable(TEXT("p.NetCorrectionLifetime")); + static const auto CVarNetCorrectionLifetime = IConsoleManager::Get().FindConsoleVariable(TEXT("p.Net.DebugDraw.LifeTime")); Chaos::FDebugDrawQueue::GetInstance().DrawDebugBox(Input.TargetState.Position + Offset, FVector(15.0f, 15.0f, 15.0f), Input.TargetState.Quaternion, FColor::MakeRandomSeededColor(Input.ServerFrame), false, CVarNetCorrectionLifetime->GetFloat(), 0, 1.0f); } #endif - // Cache the position we received this target at, Predictive Interpolation will alter the target state but use this as the source position for reconciliation. - Target->PrevPosTarget = Input.TargetState.Position; - Target->PrevRotTarget = Input.TargetState.Quaternion; - + // TickCount is 0 by default at this point and when LOD is used, TickCount will be 0 if no LOD alignment was performed, in this case perform the normal target alignment + if (Target->TickCount == 0) { /** Target Alignment Feature * With variable network conditions state inputs from the server can arrive both later or earlier than expected. @@ -1331,6 +1373,34 @@ void FPhysicsReplicationAsyncVR::UpdateAsyncTarget(const FPhysicsRepAsyncInputDa } } } + + static const auto CVarTeleportDetectionEnabled = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.TeleportDetection.Enabled")); + // Teleport detection, we don't have specific data that tells us a teleport has happened on the server, so try to detect it by examining the previous and next state + if (CVarTeleportDetectionEnabled->GetBool() == 1 && !bFirstTarget && SendInterval > 0 && RigidsSolver->IsUsingFixedDt()) + { + const FVector PosOffset = (Input.TargetState.Position - Target->PrevPosTarget); + static const auto CVarTeleportDetectionMinDistance = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.TeleportDetection.MinDistance")); + if (PosOffset.SizeSquared() > (CVarTeleportDetectionMinDistance->GetFloat() * CVarTeleportDetectionMinDistance->GetFloat())) + { + const FVector Velocity = Input.TargetState.LinVel.SizeSquared() > PrevLinVel.SizeSquared() ? Input.TargetState.LinVel : PrevLinVel; + const float DeltaSeconds = (SendInterval * RigidsSolver->GetAsyncDeltaTime()); + static const auto CVarTeleportDetectionVelocityMultiplier = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.TeleportDetection.VelocityMultiplier")); + const float PossibleDistanceSquared = (Velocity * (DeltaSeconds * CVarTeleportDetectionVelocityMultiplier->GetFloat())).SizeSquared(); + + if (PossibleDistanceSquared < PosOffset.SizeSquared()) + { + // A teleport has most likely happened, set accumulated error seconds to above limit for hard snapping + // TODO: Don't piggyback on AccumulatedErrorSeconds (potentially implement ERigidBodyFlags::Teleported) + + static const auto CVarErrorAcumulationSeconds = IConsoleManager::Get().FindConsoleVariable(TEXT("p.ErrorAccumulationSeconds")); + Target->AccumulatedErrorSeconds = CVarErrorAcumulationSeconds->GetFloat() + 1.0f; + } + } + } + + // Cache the position we received this target at, Predictive Interpolation will alter the target state but use this as the source position for reconciliation. + Target->PrevPosTarget = Input.TargetState.Position; + Target->PrevRotTarget = Input.TargetState.Quaternion; } } @@ -1344,6 +1414,14 @@ void FPhysicsReplicationAsyncVR::CacheResimInteractions() static const auto CVarResimDisableReplicationOnInteraction = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.Resim.DisableReplicationOnInteraction")); if (!CVarResimDisableReplicationOnInteraction->GetBool()) { + ParticlesInResimIslands.Empty(); + return; + } + + if (UsePhysicsReplicationLOD()) + { + // This will be handled by the LOD system + ParticlesInResimIslands.Empty(); return; } @@ -1353,9 +1431,12 @@ void FPhysicsReplicationAsyncVR::CacheResimInteractions() return; } - ParticlesInResimIslands.Empty(FMath::CeilToInt(static_cast(ParticlesInResimIslands.Num()) * 0.9f)); + ResimIslands.Reset(); + ResimIslandsParticles.Reset(); + ParticlesInResimIslands.Reset(); + Chaos::Private::FPBDIslandManager& IslandManager = RigidsSolver->GetEvolution()->GetIslandManager(); - Chaos::FWritePhysicsObjectInterface_Internal Interface = Chaos::FPhysicsObjectInternalInterface::GetWrite(); + Chaos::FReadPhysicsObjectInterface_Internal Interface = Chaos::FPhysicsObjectInternalInterface::GetRead(); for (auto Itr = ObjectToTarget.CreateIterator(); Itr; ++Itr) { FReplicatedPhysicsTargetAsync& Target = Itr.Value(); @@ -1365,7 +1446,9 @@ void FPhysicsReplicationAsyncVR::CacheResimInteractions() if (Chaos::FGeometryParticleHandle* Handle = Interface.GetParticle(POHandle)) { // Get a list of particles from the same island as a resim particle is in, i.e. particles interacting with a resim particle - for (const Chaos::FGeometryParticleHandle* InteractParticle : IslandManager.FindParticlesInIslands(IslandManager.FindParticleIslands(Handle))) + IslandManager.FindParticleIslands(Handle, OUT ResimIslands); + IslandManager.FindParticlesInIslands(ResimIslands, OUT ResimIslandsParticles); + for (const Chaos::FGeometryParticleHandle* InteractParticle : ResimIslandsParticles) { ParticlesInResimIslands.Add(InteractParticle->GetHandleIdx()); } @@ -1374,66 +1457,152 @@ void FPhysicsReplicationAsyncVR::CacheResimInteractions() } } -void FPhysicsReplicationAsyncVR::ApplyTargetStatesAsync(const float DeltaSeconds, const FPhysicsRepErrorCorrectionData& ErrorCorrection, const TArray& InputData) +void FPhysicsReplicationAsyncVR::ApplyTargetStatesAsync(const float DeltaSeconds) { using namespace Chaos; - // Deprecated, legacy BodyInstance flow - for (const FPhysicsRepAsyncInputData& Input : InputData) - { - if (Input.Proxy != nullptr) + /** Helper function to remove replicated target*/ + auto RemoveTargetHelper = [this](TMap::TIterator Itr, FGeometryParticleHandle* Handle) { - Chaos::FSingleParticlePhysicsProxy* Proxy = Input.Proxy; - Chaos::FRigidBodyHandle_Internal* Handle = Proxy->GetPhysicsThreadAPI(); - - const FPhysicsRepErrorCorrectionData& UsedErrorCorrection = Input.ErrorCorrection.IsSet() ? Input.ErrorCorrection.GetValue() : ErrorCorrection; - DefaultReplication_DEPRECATED(Handle, Input, DeltaSeconds, UsedErrorCorrection); - } - } + if (Handle) + { + ReplicatedParticleIDs.Remove(Handle->ParticleID()); + } + Itr.RemoveCurrent(); + }; // PhysicsObject flow Chaos::FWritePhysicsObjectInterface_Internal Interface = Chaos::FPhysicsObjectInternalInterface::GetWrite(); - for (auto Itr = ObjectToTarget.CreateIterator(); Itr; ++Itr) + for (TMap::TIterator Itr = ObjectToTarget.CreateIterator(); Itr; ++Itr) { bool bRemoveItr = true; // Remove current cached replication target unless replication logic tells us to store it for next tick - FParticleID ParticleID; Chaos::FConstPhysicsObjectHandle& POHandle = Itr.Key(); - if (FGeometryParticleHandle* Handle = Interface.GetParticle(POHandle)) + FGeometryParticleHandle* Handle = Interface.GetParticle(POHandle); + if (!Handle) { - FReplicatedPhysicsTargetAsync& Target = Itr.Value(); - - - if (FPBDRigidParticleHandle* RigidHandle = Handle->CastToRigidParticle()) - { - ParticleID = RigidHandle->ParticleID(); - - // Cache custom settings for this object if there are any - FetchObjectSettings(POHandle); - - const EPhysicsReplicationMode RepMode = Target.IsWaiting() ? Target.RepModeOverride : Target.RepMode; - switch (RepMode) - { - case EPhysicsReplicationMode::Default: - bRemoveItr = DefaultReplication(RigidHandle, Target, DeltaSeconds); - break; - - case EPhysicsReplicationMode::PredictiveInterpolation: - bRemoveItr = PredictiveInterpolation(RigidHandle, Target, DeltaSeconds); - break; - - case EPhysicsReplicationMode::Resimulation: - bRemoveItr = ResimulationReplication(RigidHandle, Target, DeltaSeconds); - break; - } - Target.TickCount++; - } + RemoveTargetHelper(Itr, nullptr); + continue; } + FPBDRigidParticleHandle* RigidHandle = Handle->CastToRigidParticle(); + if (!RigidHandle) + { + RemoveTargetHelper(Itr, Handle); + continue; + } + + FReplicatedPhysicsTargetAsync& Target = Itr.Value(); + + // Cache custom settings for this object if there are any + FetchObjectSettings(POHandle); + + // Apply limited Replication LOD + ApplyPhysicsReplicationLOD(POHandle, Target, EPhysicsReplicationLODFlags::LODFlag_IslandCheck); + + const EPhysicsReplicationMode RepMode = Target.IsWaiting() ? Target.RepModeOverride : Target.RepMode; + switch (RepMode) + { + case EPhysicsReplicationMode::Default: + bRemoveItr = DefaultReplication(RigidHandle, Target, DeltaSeconds); + break; + + case EPhysicsReplicationMode::PredictiveInterpolation: + bRemoveItr = PredictiveInterpolation(RigidHandle, Target, DeltaSeconds); + break; + + case EPhysicsReplicationMode::Resimulation: + bRemoveItr = ResimulationReplication(RigidHandle, Target, DeltaSeconds); + break; + } + Target.TickCount++; + if (bRemoveItr) { - ReplicatedParticleIDs.Remove(ParticleID); - Itr.RemoveCurrent(); + RemoveTargetHelper(Itr, RigidHandle); + + } + } +} + +void FPhysicsReplicationAsyncVR::CheckTargetResimValidity(FReplicatedPhysicsTargetAsync& Target) +{ + if (Target.RepMode != EPhysicsReplicationMode::Resimulation) + { + return; + } + + Chaos::FPBDRigidsSolver* RigidsSolver = static_cast(GetSolver()); + if (RigidsSolver == nullptr) + { + return; + } + + Chaos::FRewindData* RewindData = RigidsSolver->GetRewindData(); + if (RewindData == nullptr) + { + return; + } + + const int32 LocalFrame = Target.ServerFrame - Target.FrameOffset; + if (!RewindData->IsFrameWithinRewindHistory(LocalFrame)) + { + + static const auto CVarResimApplyPredictiveInterpolationWhenBehindServer = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.Resim.ApplyPredictiveInterpolationWhenBehindServer")); + + if (LocalFrame < RewindData->GetEarliestFrame_Internal()) + { + // Client is far ahead of the server, switch over to Predictive Interpolation since it can't use incoming target states from the server to perform resimulations with + + Target.RepMode = EPhysicsReplicationMode::PredictiveInterpolation; + } + else if (CVarResimApplyPredictiveInterpolationWhenBehindServer->GetBool()) + { + /** NOTE: If the server is ahead of the client we receive target states for frames we have not yet simulated on the client, target states are stored in FRewindData still though. + * If PhysicsReplicationCVars::ResimulationCVars::bApplyPredictiveInterpolationWhenBehindServer is true switch over to using PredictiveInterpolation temporarily. + * else FRewindData::CompareTargetsToLastFrame will check for already cached targets to resim with when the server has simulated the corresponding frame */ + + Target.RepMode = EPhysicsReplicationMode::PredictiveInterpolation; + } + + UE_LOG(LogPhysics, Warning, TEXT("FPhysicsReplication received target frame (%d) out of rewind data bounds (%d, %d) - %s - Target will use EPhysicsReplicationMode: %s"), + LocalFrame, RewindData->GetEarliestFrame_Internal(), RewindData->CurrentFrame(), (LocalFrame < RewindData->GetEarliestFrame_Internal()) ? TEXT("Client is far ahead of the server, server might be dropping frames.") : TEXT("Client is behind the server, client might be dropping frames."), *UEnum::GetValueAsString(Target.RepMode)); + } +} + +void FPhysicsReplicationAsyncVR::ApplyPhysicsReplicationLOD(Chaos::FConstPhysicsObjectHandle PhysicsObjectHandle, FReplicatedPhysicsTargetAsync& Target, const uint32 LODFLags) +{ + Chaos::FPBDRigidsSolver& RigidsSolver = GetSolver()->CastChecked(); + + IPhysicsReplicationLODAsync* PhysRepLod = RigidsSolver.GetPhysicsReplicationLOD_Internal(); + if (!PhysRepLod || !PhysRepLod->IsEnabled()) + { + return; + } + + FPhysicsRepLodData* LodData = PhysRepLod->GetLODData_Internal(PhysicsObjectHandle, LODFLags); + if (LodData && LodData->DataAssigned) + { + // Apply recommended replication mode + Target.RepMode = LodData->ReplicationMode; + + if (Target.RepMode == EPhysicsReplicationMode::PredictiveInterpolation) + { + const bool bShouldSleep = (Target.TargetState.Flags & ERigidBodyFlags::Sleeping) != 0; + int32 TargetClientFrame = (Target.ServerFrame - Target.FrameOffset); + + // If we use Predicitve Interpolation and we should not sleep and the aligned frame from LOD is ahead of the target, perform LOD aligment extrapolation + if (!bShouldSleep && LodData->AlignedFrame > TargetClientFrame) + { + // Calculate how far to forward predict and extrapolate target by that amount + const int32 FullPredictionFrames = RigidsSolver.GetCurrentFrame() - TargetClientFrame; + const float FullPredictionTime = (FullPredictionFrames * GetDeltaTime_Internal()); + const float AlignedPredictionTime = FullPredictionTime - LodData->AlignedTime; + FPhysicsReplicationAsyncVR::ExtrapolateTarget(Target, AlignedPredictionTime); + + // Update tick count based on LOD alignment + Target.TickCount = LodData->AlignedFrame - TargetClientFrame; + } } } } @@ -1775,11 +1944,6 @@ bool FPhysicsReplicationAsyncVR::PredictiveInterpolation(Chaos::FPBDRigidParticl return true; } - if (Target.IsWaiting()) - { - return false; - } - Chaos::FPBDRigidsSolver* RigidsSolver = static_cast(GetSolver()); if (RigidsSolver == nullptr) { @@ -1803,8 +1967,8 @@ bool FPhysicsReplicationAsyncVR::PredictiveInterpolation(Chaos::FPBDRigidParticl const FVector Offset = FVector(0.0f, 0.0f, 50.0f); const FVector StartPos = Target.TargetState.Position + Offset; const int32 SizeMultiplier = FMath::Clamp(Target.TickCount, -4, 30); - static const auto CVarNetCorrectionLifetime = IConsoleManager::Get().FindConsoleVariable(TEXT("p.NetCorrectionLifetime")); - Chaos::FDebugDrawQueue::GetInstance().DrawDebugBox(StartPos, FVector(5.0f + SizeMultiplier * 0.75f, 5.0f + SizeMultiplier * 0.75f, 5.0f + SizeMultiplier * 0.75f), Target.TargetState.Quaternion, FColor::MakeRandomSeededColor(Target.ServerFrame), false, CVarNetCorrectionLifetime->GetFloat(), 0, 1.0f); + static const auto CVarDebugdrawLifetime = IConsoleManager::Get().FindConsoleVariable(TEXT("p.Net.DebugDraw.LifeTime")); + Chaos::FDebugDrawQueue::GetInstance().DrawDebugBox(StartPos, FVector(5.0f + SizeMultiplier * 0.75f, 5.0f + SizeMultiplier * 0.75f, 5.0f + SizeMultiplier * 0.75f), Target.TargetState.Quaternion, FColor::MakeRandomSeededColor(Target.ServerFrame), false, CVarDebugdrawLifetime->GetFloat(), 0, 1.0f); } #endif @@ -1864,6 +2028,11 @@ bool FPhysicsReplicationAsyncVR::PredictiveInterpolation(Chaos::FPBDRigidParticl return bClearTarget; }; + // If waiting on an up to date state, early out but allow target clearing since we might not receive a new state if target is already set to sleep for example + if (Target.IsWaiting()) + { + return EndReplicationHelper(Target, true); + } static const auto CVarEarlyOutWithVelocity = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.EarlyOutWithVelocity")); static const auto CVarEarlyOutDistanceSqr = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.EarlyOutDistanceSqr")); @@ -1909,8 +2078,41 @@ bool FPhysicsReplicationAsyncVR::PredictiveInterpolation(Chaos::FPBDRigidParticl const FVector TargetLinVel = FVector(Target.TargetState.LinVel); const FVector TargetAngVel = FVector(FMath::DegreesToRadians(Target.TargetState.AngVel)); // Radians - /** --- Reconciliation --- - * If target velocities are low enough, check the traveled direction and distance from previous frame and compare with replicated linear velocity. + /** --- Reconciliation --- */ + static const auto CVarKinematicHardSnap = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.KinematicHardSnap")); + static const auto CVarErrorAccumulationSeconds = IConsoleManager::Get().FindConsoleVariable(TEXT("p.ErrorAccumulationSeconds")); + static const auto CVarAlwaysHardSnap = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.AlwaysHardSnap")); + const bool bHardSnap = (!bCanSimulate && CVarKinematicHardSnap->GetBool()) + || Target.AccumulatedErrorSeconds > CVarErrorAccumulationSeconds->GetFloat() + || CVarAlwaysHardSnap->GetBool(); + + if (bHardSnap) + { + Target.AccumulatedErrorSeconds = 0.0f; + + if (Handle->IsKinematic()) + { + // Set a FKinematicTarget to hard snap kinematic object + const Chaos::FKinematicTarget KinTarget = Chaos::FKinematicTarget::MakePositionTarget(Target.PrevPosTarget, Target.PrevRotTarget); // Uses EKinematicTargetMode::Position + RigidsSolver->GetEvolution()->SetParticleKinematicTarget(Handle, KinTarget); + } + else + { + // Set XRVW to hard snap dynamic object and force recalculation of friction + const bool bCorrectConnectedBodies = SettingsCurrent.PredictiveInterpolationSettings.GetCorrectConnectedBodies(); + RigidsSolver->GetEvolution()->ApplyParticleTransformCorrection(Handle, Target.PrevPosTarget, Target.PrevRotTarget, bCorrectConnectedBodies, /*bInRecalculateFrictionOnConnectedBodies*/ true, ReplicatedParticleIDs); + Handle->SetV(TargetLinVel); + Handle->SetW(TargetAngVel); + } + + // Cache data for next replication + Target.PrevLinVel = FVector(Target.TargetState.LinVel); + + // End replication and go to sleep if that's requested + return EndReplicationHelper(Target, true); + } + + /** If target velocities are low enough, check the traveled direction and distance from previous frame and compare with replicated linear velocity. * If the object isn't moving enough along the replicated velocity it's considered stuck and needs reconciliation. * SoftSnap is performed each tick while there is a registered error, if enough time pass HardSnap forces the object into the correct state. */ static const auto CVarVelocityBased = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.VelocityBased")); @@ -1919,7 +2121,7 @@ bool FPhysicsReplicationAsyncVR::PredictiveInterpolation(Chaos::FPBDRigidParticl static const auto CVarDisableErrorVelocityLimits = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.DisableErrorVelocityLimits")); static const auto CVarErrorAccLinVelMaxLimit = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.ErrorAccLinVelMaxLimit")); static const auto CVarErrorAccAngVelMaxLimit = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.ErrorAccAngVelMaxLimit")); - if (CVarDisableErrorVelocityLimits->GetBool() || + if ( CVarDisableErrorVelocityLimits->GetBool() || (TargetLinVel.Size() < CVarErrorAccLinVelMaxLimit->GetFloat() && TargetAngVel.Size() < CVarErrorAccAngVelMaxLimit->GetFloat())) { const FVector PrevDiff = CurrentState.Position - Target.PrevPos; @@ -1952,43 +2154,8 @@ bool FPhysicsReplicationAsyncVR::PredictiveInterpolation(Chaos::FPBDRigidParticl { bSoftSnap = false; } - - static const auto CVarErrorAccumulationSeconds = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.ErrorAccumulationSeconds")); - static const auto CVarAlwaysHardSnap = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.AlwaysHardSnap")); - static const auto CVarKinematicHardSnap = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.KinematicHardSnap")); - - const bool bHardSnap = (!bCanSimulate && CVarKinematicHardSnap->GetBool()) - || Target.AccumulatedErrorSeconds > CVarErrorAccumulationSeconds->GetFloat() - || CVarAlwaysHardSnap->GetBool(); - - if (bHardSnap) - { - Target.AccumulatedErrorSeconds = 0.0f; - - if (Handle->IsKinematic()) - { - // Set a FKinematicTarget to hard snap kinematic object - const Chaos::FKinematicTarget KinTarget = Chaos::FKinematicTarget::MakePositionTarget(Target.PrevPosTarget, Target.PrevRotTarget); // Uses EKinematicTargetMode::Position - RigidsSolver->GetEvolution()->SetParticleKinematicTarget(Handle, KinTarget); - } - else - { - // Set XRVW to hard snap dynamic object and force recalculation of friction - const bool bCorrectConnectedBodies = SettingsCurrent.PredictiveInterpolationSettings.GetCorrectConnectedBodies(); - RigidsSolver->GetEvolution()->ApplyParticleTransformCorrection(Handle, Target.PrevPosTarget, Target.PrevRotTarget, bCorrectConnectedBodies, /*bInRecalculateFrictionOnConnectedBodies*/ true, ReplicatedParticleIDs); - - - Handle->SetV(TargetLinVel); - Handle->SetW(TargetAngVel); - } - - // Cache data for next replication - Target.PrevLinVel = FVector(Target.TargetState.LinVel); - - // End replication and go to sleep if that's requested - return EndReplicationHelper(Target, true); - } - else if (Handle->IsKinematic()) // Smooth Kinematic Replication + + if (Handle->IsKinematic()) // Smooth Kinematic Replication { static const auto CVarKinematicPrediction = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.PredictiveInterpolation.KinematicPrediction")); const bool bKinematicPrediction = CVarKinematicPrediction->GetBool(); @@ -2035,8 +2202,8 @@ bool FPhysicsReplicationAsyncVR::PredictiveInterpolation(Chaos::FPBDRigidParticl const FVector Offset = FVector(0.0f, 0.0f, CVarDrawDebugZOffset->GetFloat()); const FVector Pos = KinTargetPos + Offset; const int32 SizeMultiplier = FMath::Clamp(Target.TickCount, -4, 30); - static const auto CVarNetCorrectionLifetime = IConsoleManager::Get().FindConsoleVariable(TEXT("p.NetCorrectionLifetime")); - Chaos::FDebugDrawQueue::GetInstance().DrawDebugSphere(Pos, 3.0f + SizeMultiplier * 0.75f, 8, FColor::MakeRandomSeededColor(Target.ServerFrame), false, CVarNetCorrectionLifetime->GetFloat(), 0, 1.0f); + static const auto CVarDebugdrawLifetime = IConsoleManager::Get().FindConsoleVariable(TEXT("p.Net.DebugDraw.LifeTime")); + Chaos::FDebugDrawQueue::GetInstance().DrawDebugSphere(Pos, 3.0f + SizeMultiplier * 0.75f, 8, FColor::MakeRandomSeededColor(Target.ServerFrame), false, CVarDebugdrawLifetime->GetFloat(), 0, 1.0f); } #endif } @@ -2214,7 +2381,12 @@ bool FPhysicsReplicationAsyncVR::PredictiveInterpolation(Chaos::FPBDRigidParticl void FPhysicsReplicationAsyncVR::ExtrapolateTarget(FReplicatedPhysicsTargetAsync& Target, const int32 ExtrapolateFrames, const float DeltaSeconds) { const float ExtrapolationTime = DeltaSeconds * static_cast(ExtrapolateFrames); + FPhysicsReplicationAsyncVR::ExtrapolateTarget(Target, ExtrapolationTime); +} +/** Static function to extrapolate a target for N Seconds */ +void FPhysicsReplicationAsyncVR::ExtrapolateTarget(FReplicatedPhysicsTargetAsync& Target, const float ExtrapolationTime) +{ // Extrapolate target position Target.TargetState.Position = Target.TargetState.Position + Target.TargetState.LinVel * ExtrapolationTime; @@ -2242,15 +2414,15 @@ bool FPhysicsReplicationAsyncVR::ResimulationReplication(Chaos::FPBDRigidParticl return true; } + if (Target.ServerFrame <= 0) + { + return true; + } + const int32 LocalFrame = Target.ServerFrame - Target.FrameOffset; - if (LocalFrame >= RewindData->CurrentFrame() || LocalFrame < RewindData->GetEarliestFrame_Internal()) + if (!RewindData->IsFrameWithinRewindHistory(LocalFrame)) { - if (LocalFrame > 0 && (RewindData->CurrentFrame() - RewindData->GetEarliestFrame_Internal()) == RewindData->Capacity()) - { - UE_LOG(LogPhysics, Warning, TEXT("FPhysicsReplication::ResimulationReplication target frame (%d) out of rewind data bounds (%d,%d)"), - LocalFrame, RewindData->GetEarliestFrame_Internal(), RewindData->CurrentFrame()); - } return true; } @@ -2269,11 +2441,24 @@ bool FPhysicsReplicationAsyncVR::ResimulationReplication(Chaos::FPBDRigidParticl const bool bCompareW = Chaos::FPhysicsSolverBase::GetResimulationErrorAngularVelocityThresholdEnabled() || SettingsCurrent.ResimulationSettings.bOverrideResimulationErrorAngularVelocityThreshold; bool bShouldTriggerResim = false; +#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) + // Debugging + FColor DebugColor = FColor::Black; + bool bResimV = false; + bool bResimW = false; +#endif + // Check for positional discrepancy in Distance between client and server if (bCompareX) { const float ResimPositionErrorThreshold = SettingsCurrent.ResimulationSettings.GetResimulationErrorPositionThreshold(Chaos::FPhysicsSolverBase::GetResimulationErrorPositionThreshold()); bShouldTriggerResim = Chaos::FRewindData::CheckVectorThreshold(Target.TargetState.Position, PastState.GetX(), ResimPositionErrorThreshold); +#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) + if (bShouldTriggerResim) + { + DebugColor = FColor::Orange; + } +#endif } // Check for linear velocity discrepancy in Distance / s between client and server @@ -2281,13 +2466,25 @@ bool FPhysicsReplicationAsyncVR::ResimulationReplication(Chaos::FPBDRigidParticl { const float ResimLinVelocityErrorThreshold = SettingsCurrent.ResimulationSettings.GetResimulationErrorLinearVelocityThreshold(Chaos::FPhysicsSolverBase::GetResimulationErrorLinearVelocityThreshold()); bShouldTriggerResim = Chaos::FRewindData::CheckVectorThreshold(Target.TargetState.LinVel, PastState.GetV(), ResimLinVelocityErrorThreshold); +#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) + if (bShouldTriggerResim) + { + bResimV = true; + } +#endif } // Check for angular velocity discrepancy in Degrees / s between client and server if (!bShouldTriggerResim && bCompareW) { const float ResimAngVelocityErrorThreshold = SettingsCurrent.ResimulationSettings.GetResimulationErrorAngularVelocityThreshold(Chaos::FPhysicsSolverBase::GetResimulationErrorAngularVelocityThreshold()); - bShouldTriggerResim = Chaos::FRewindData::CheckVectorThreshold(FMath::DegreesToRadians(Target.TargetState.AngVel), PastState.GetW(), ResimAngVelocityErrorThreshold); + bShouldTriggerResim = Chaos::FRewindData::CheckVectorThreshold(Target.TargetState.AngVel, FMath::RadiansToDegrees(PastState.GetW()), ResimAngVelocityErrorThreshold); +#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) + if (bShouldTriggerResim) + { + bResimW = true; + } +#endif } // Check for rotational discrepancy in Degrees between client and server @@ -2295,6 +2492,12 @@ bool FPhysicsReplicationAsyncVR::ResimulationReplication(Chaos::FPBDRigidParticl { const float ResimRotationErrorThreshold = SettingsCurrent.ResimulationSettings.GetResimulationErrorRotationThreshold(Chaos::FPhysicsSolverBase::GetResimulationErrorRotationThreshold()); bShouldTriggerResim = Chaos::FRewindData::CheckQuaternionThreshold(Target.TargetState.Quaternion, PastState.GetR(), ResimRotationErrorThreshold); +#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) + if (bShouldTriggerResim) + { + DebugColor = FColor::Magenta; + } +#endif } @@ -2311,16 +2514,51 @@ bool FPhysicsReplicationAsyncVR::ResimulationReplication(Chaos::FPBDRigidParticl } static const auto CVarResimDrawDebug = IConsoleManager::Get().FindConsoleVariable(TEXT("np2.Resim.DrawDebug")); - if (CVarResimDrawDebug->GetBool()) + static const auto CVarRenderInterpDebugDrawResimTrigger = IConsoleManager::Get().FindConsoleVariable(TEXT("p.RenderInterp.DebugDraw.ResimTrigger")); + if (CVarResimDrawDebug->GetBool() || CVarRenderInterpDebugDrawResimTrigger->GetBool()) { - static constexpr float BoxSize = 5.0f; - const float ColorLerp = bShouldTriggerResim ? 1.0f : 0.0f; - const FColor DebugColor = FLinearColor::LerpUsingHSV(FLinearColor::Green, FLinearColor::Red, ColorLerp).ToFColor(false); + if (bShouldTriggerResim) + { + FVector Box = CVarRenderInterpDebugDrawResimTrigger->GetBool() ? FVector(6, 3, 2) : FVector(40, 20, 10); + const float DrawThickness = CVarRenderInterpDebugDrawResimTrigger->GetBool() ? 0.5f : 1.5f; - static const auto CVarNetCorrectionLifetime = IConsoleManager::Get().FindConsoleVariable(TEXT("p.NetCorrectionLifetime")); - Chaos::FDebugDrawQueue::GetInstance().DrawDebugBox(Target.TargetState.Position, FVector(BoxSize, BoxSize, BoxSize), Target.TargetState.Quaternion, FColor::Orange, true, CVarNetCorrectionLifetime->GetFloat(), 0, 1.0f); - Chaos::FDebugDrawQueue::GetInstance().DrawDebugBox(PastState.GetX(), FVector(6, 6, 6), PastState.GetR(), DebugColor, true, CVarNetCorrectionLifetime->GetFloat(), 0, 1.0f); - Chaos::FDebugDrawQueue::GetInstance().DrawDebugDirectionalArrow(PastState.GetX(), Target.TargetState.Position, 5.0f, FColor::MakeRandomSeededColor(LocalFrame), true, CVarNetCorrectionLifetime->GetFloat(), 0, 0.5f); + static const auto CVarDebugdrawLifetime = IConsoleManager::Get().FindConsoleVariable(TEXT("p.Net.DebugDraw.LifeTime")); + if (CVarRenderInterpDebugDrawResimTrigger->GetBool()) // Resim debug draw extension for render interpolation + { + Chaos::FDebugDrawQueue::GetInstance().DrawDebugBox(PastState.GetX(), Box, PastState.GetR(), FColor::White, false, CVarDebugdrawLifetime->GetFloat(), 0, DrawThickness); + Chaos::FDebugDrawQueue::GetInstance().DrawDebugBox(Target.TargetState.Position, Box, Target.TargetState.Quaternion, DebugColor, false, CVarDebugdrawLifetime->GetFloat(), 0, DrawThickness); + + Chaos::FDebugDrawQueue::GetInstance().DrawDebugDirectionalArrow(Handle->GetX(), PastState.GetX(), 5.0f, FColor::White, false, CVarDebugdrawLifetime->GetFloat(), 0, DrawThickness); + Chaos::FDebugDrawQueue::GetInstance().DrawDebugDirectionalArrow(PastState.GetX(), Target.TargetState.Position, 5.0f, FColor::Black, false, CVarDebugdrawLifetime->GetFloat(), 0, DrawThickness); + + if (bResimV) + { + const FVector DiffV = Target.TargetState.LinVel - PastState.GetV(); + Chaos::FDebugDrawQueue::GetInstance().DrawDebugDirectionalArrow(Target.TargetState.Position, Target.TargetState.Position + DiffV, 5.0f, FColor::Orange, false, CVarDebugdrawLifetime->GetFloat(), 0, DrawThickness); + } + if (bResimW) + { + const FVector DiffW = Target.TargetState.AngVel - FMath::RadiansToDegrees(PastState.GetW()); + Chaos::FDebugDrawQueue::GetInstance().DrawDebugDirectionalArrow(Target.TargetState.Position + DiffW, Target.TargetState.Position, 5.0f, FColor::Magenta, false, CVarDebugdrawLifetime->GetFloat(), 0, DrawThickness); + } + } + else // Resim trigger debug draw + { + Chaos::FDebugDrawQueue::GetInstance().DrawDebugBox(Handle->GetX(), Box, PastState.GetR(), FColor::White, false, CVarDebugdrawLifetime->GetFloat(), 0, DrawThickness); + Chaos::FDebugDrawQueue::GetInstance().DrawDebugBox(Handle->GetX() + (Target.TargetState.Position - PastState.GetX()), Box, Target.TargetState.Quaternion, DebugColor, false, CVarDebugdrawLifetime->GetFloat(), 0, DrawThickness); + + if (bResimV) + { + const FVector DiffV = Target.TargetState.LinVel - PastState.GetV(); + Chaos::FDebugDrawQueue::GetInstance().DrawDebugDirectionalArrow(Handle->GetX(), Handle->GetX() + DiffV, 5.0f, FColor::Orange, false, CVarDebugdrawLifetime->GetFloat(), 0, DrawThickness); + } + if (bResimW) + { + const FVector DiffW = Target.TargetState.AngVel - FMath::RadiansToDegrees(PastState.GetW()); + Chaos::FDebugDrawQueue::GetInstance().DrawDebugDirectionalArrow(Handle->GetX() + DiffW, Handle->GetX(), 5.0f, FColor::Magenta, false, CVarDebugdrawLifetime->GetFloat(), 0, DrawThickness); + } + } + } } #endif @@ -2332,12 +2570,8 @@ bool FPhysicsReplicationAsyncVR::ResimulationReplication(Chaos::FPBDRigidParticl if (bShouldTriggerResim && Target.TickCount == 0 && LocalFrame > RewindData->GetBlockedResimFrame()) { - // Trigger resimulation - RigidsSolver->GetEvolution()->GetIslandManager().SetParticleResimFrame(Handle, LocalFrame); - - int32 ResimFrame = RewindData->GetResimFrame(); - ResimFrame = (ResimFrame == INDEX_NONE) ? LocalFrame : FMath::Min(ResimFrame, LocalFrame); - RewindData->SetResimFrame(ResimFrame); + // Request resimulation + RewindData->RequestResimulation(LocalFrame, Handle); } else if (SettingsCurrent.ResimulationSettings.GetRuntimeCorrectionEnabled()) { @@ -2381,8 +2615,8 @@ bool FPhysicsReplicationAsyncVR::ResimulationReplication(Chaos::FPBDRigidParticl #if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) if (CVarResimDrawDebug->GetBool()) { - static const auto CVarNetCorrectionLifetime = IConsoleManager::Get().FindConsoleVariable(TEXT("p.NetCorrectionLifetime")); - Chaos::FDebugDrawQueue::GetInstance().DrawDebugDirectionalArrow(Handle->GetX(), CorrectedX, 5.0f, FColor::MakeRandomSeededColor(LocalFrame), true, CVarNetCorrectionLifetime->GetFloat(), 0, 0.5f); + static const auto CVarDebugdrawLifetime = IConsoleManager::Get().FindConsoleVariable(TEXT("p.Net.DebugDraw.LifeTime")); + Chaos::FDebugDrawQueue::GetInstance().DrawDebugDirectionalArrow(Handle->GetX(), CorrectedX, 5.0f, FColor::MakeRandomSeededColor(LocalFrame), true, CVarDebugdrawLifetime->GetFloat(), 0, 0.5f); } #endif // Apply correction to position and rotation @@ -2406,14 +2640,90 @@ bool FPhysicsReplicationAsyncVR::ResimulationReplication(Chaos::FPBDRigidParticl RigidsSolver->GetEvolution()->ApplySleepOnConnectedParticles(Handle); } } + else if (Target.IsWaiting()) + { + // Don't clear the target if we are waiting for a specific target frame and not sleeping + bClearTarget = false; + } + return bClearTarget; } +void FPhysicsReplicationAsyncVR::DebugDrawReplicationMode(const FPhysicsRepAsyncInputData& Input) +{ +#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) + + static const auto CVarDebugDrawShowRepMode = IConsoleManager::Get().FindConsoleVariable(TEXT("p.Net.DebugDraw.ShowRepMode")); + if (!CVarDebugDrawShowRepMode->GetBool()) + { + return; + } + + if (Input.PhysicsObject == nullptr && Input.Proxy == nullptr) + { + return; + } + + FColor DebugColor = FColor::White; + FVector BoxExtent = FVector(10.0f, 10.0f, 10.0f); + FQuat Rotation = FQuat::Identity; + + if (Input.PhysicsObject) + { + if (FReplicatedPhysicsTargetAsync* Target = ObjectToTarget.Find(Input.PhysicsObject)) + { + Chaos::FReadPhysicsObjectInterface_Internal Interface = Chaos::FPhysicsObjectInternalInterface::GetRead(); + if (Chaos::FGeometryParticleHandle* Handle = Interface.GetParticle(Input.PhysicsObject)) + { + BoxExtent = Handle->LocalBounds().Extents() * 0.5f; + Rotation = Handle->GetR(); + } + + const EPhysicsReplicationMode RepMode = Target->IsWaiting() ? Target->RepModeOverride : Target->RepMode; + switch (RepMode) + { + case EPhysicsReplicationMode::PredictiveInterpolation: + DebugColor = FColor::Yellow; + break; + case EPhysicsReplicationMode::Resimulation: + DebugColor = FColor::Red; + break; + case EPhysicsReplicationMode::Default: + default: + DebugColor = FColor::Cyan; + break; + } + } + } + else if (Input.Proxy != nullptr) + { + // Legacy Default physics replication + + Chaos::FSingleParticlePhysicsProxy* Proxy = Input.Proxy; + Chaos::FRigidBodyHandle_Internal* Handle = Proxy->GetPhysicsThreadAPI(); + + Rotation = Handle->GetR(); + DebugColor = FColor::Green; + } + + static const auto CVarDebugdrawLifetime = IConsoleManager::Get().FindConsoleVariable(TEXT("p.Net.DebugDraw.LifeTime")); + Chaos::FDebugDrawQueue::GetInstance().DrawDebugBox(Input.TargetState.Position, BoxExtent, Rotation, DebugColor, false, CVarDebugdrawLifetime->GetFloat(), 0, 1.0f); +#endif +} + FName FPhysicsReplicationAsyncVR::GetFNameForStatId() const { const static FLazyName StaticName("FPhysicsReplicationAsyncCallback"); return StaticName; } +bool FPhysicsReplicationAsyncVR::UsePhysicsReplicationLOD() +{ + Chaos::FPBDRigidsSolver& RigidsSolver = GetSolver()->CastChecked(); + + IPhysicsReplicationLODAsync* PhysRepLod = RigidsSolver.GetPhysicsReplicationLOD_Internal(); + return PhysRepLod && PhysRepLod->IsEnabled(); +} + #pragma endregion // FPhysicsReplicationAsync \ No newline at end of file diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Grippables/GrippableStaticMeshActor.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Grippables/GrippableStaticMeshActor.cpp index 2379ac3..485ba79 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Grippables/GrippableStaticMeshActor.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Grippables/GrippableStaticMeshActor.cpp @@ -725,11 +725,11 @@ void AGrippableStaticMeshActor::OnRep_ReplicatedMovement() return; } - if (VRGripInterfaceSettings.HoldingControllers.Num() > 0) + /*if (VRGripInterfaceSettings.HoldingControllers.Num() > 0) { ShouldWeSkipAttachmentReplication(); int gg = 0; - } + }*/ Super::OnRep_ReplicatedMovement(); } diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Grippables/HandSocketComponent.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Grippables/HandSocketComponent.cpp index 91a775c..dc3cbc4 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Grippables/HandSocketComponent.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Grippables/HandSocketComponent.cpp @@ -206,7 +206,8 @@ bool UHandSocketComponent::GetAnimationSequenceAsPoseSnapShot(UAnimSequence* InA const FReferenceSkeleton& RefSkeleton = (TargetMesh) ? TargetMesh->GetSkinnedAsset()->GetRefSkeleton() : InAnimationSequence->GetSkeleton()->GetReferenceSkeleton(); FTransform LocalTransform; - const TArray& TrackMap = InAnimationSequence->GetCompressedTrackToSkeletonMapTable(); + //const TArray& TrackMap = InAnimationSequence->GetCompressedTrackToSkeletonMapTable(); + const TArray& TrackMap = InAnimationSequence->GetCompressedData().Get().CompressedTrackToSkeletonMapTable; int32 TrackIndex = INDEX_NONE; OutPoseSnapShot.LocalTransforms.Reserve(OutPoseSnapShot.BoneNames.Num()); @@ -237,8 +238,9 @@ bool UHandSocketComponent::GetAnimationSequenceAsPoseSnapShot(UAnimSequence* InA if (TrackIndex != INDEX_NONE && (!bSkipRootBone || TrackIndex != 0)) { - double TrackLocation = 0.0f; - InAnimationSequence->GetBoneTransform(LocalTransform, FSkeletonPoseBoneIndex(TrackMap[TrackIndex].BoneTreeIndex), TrackLocation, false); + //double TrackLocation = 0.0f; + // FAnimExtraContext default is fine, its a zero track location + InAnimationSequence->GetBoneTransform(LocalTransform, FSkeletonPoseBoneIndex(TrackMap[TrackIndex].BoneTreeIndex), FAnimExtractContext(), false); } else { @@ -317,7 +319,7 @@ bool UHandSocketComponent::GetBlendedPoseSnapShot(FPoseSnapshot& PoseSnapShot, U const FReferenceSkeleton& RefSkeleton = (TargetMesh) ? TargetMesh->GetSkinnedAsset()->GetRefSkeleton() : HandTargetAnimation->GetSkeleton()->GetReferenceSkeleton(); FTransform LocalTransform; - const TArray& TrackMap = HandTargetAnimation->GetCompressedTrackToSkeletonMapTable(); + const TArray& TrackMap = HandTargetAnimation->GetCompressedData().Get().CompressedTrackToSkeletonMapTable; int32 TrackIndex = INDEX_NONE; for (int32 BoneNameIndex = 0; BoneNameIndex < PoseSnapShot.BoneNames.Num(); ++BoneNameIndex) @@ -345,8 +347,9 @@ bool UHandSocketComponent::GetBlendedPoseSnapShot(FPoseSnapshot& PoseSnapShot, U if (TrackIndex != INDEX_NONE && (!bSkipRootBone || TrackIndex != 0)) { - double TrackLocation = 0.0f; - HandTargetAnimation->GetBoneTransform(LocalTransform, FSkeletonPoseBoneIndex(TrackMap[TrackIndex].BoneTreeIndex), TrackLocation, false); + //double TrackLocation = 0.0f; + // FAnimExtraContext default is fine, its a zero track location + HandTargetAnimation->GetBoneTransform(LocalTransform, FSkeletonPoseBoneIndex(TrackMap[TrackIndex].BoneTreeIndex), FAnimExtractContext(), false); } else { @@ -609,7 +612,7 @@ FTransform UHandSocketComponent::GetBoneTransformAtTime(UAnimSequence* MyAnimSeq if (const IAnimationDataModel* AnimModel = AnimController.GetModel()) { - const TArray& TrackMap = MyAnimSequence->GetCompressedTrackToSkeletonMapTable(); + const TArray& TrackMap = MyAnimSequence->GetCompressedData().Get().CompressedTrackToSkeletonMapTable; int32 TrackIndex = INDEX_NONE; if (BoneIdx != INDEX_NONE && BoneIdx < TrackMap.Num() && TrackMap[BoneIdx].BoneTreeIndex == BoneIdx) @@ -635,7 +638,9 @@ FTransform UHandSocketComponent::GetBoneTransformAtTime(UAnimSequence* MyAnimSeq FSkeletonPoseBoneIndex BoneIndex(TrackMap[TrackIndex].BoneTreeIndex); if (BoneIndex.IsValid()) { - MyAnimSequence->GetBoneTransform(BoneTransform, BoneIndex, /*AnimTime*/ tracklen, bUseRawDataOnly); + FAnimExtractContext NewContext; + NewContext.CurrentTime = tracklen; + MyAnimSequence->GetBoneTransform(BoneTransform, BoneIndex, /*AnimTime*/ NewContext, bUseRawDataOnly); return BoneTransform; } } diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Misc/OptionalRepSkeletalMeshActor.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Misc/OptionalRepSkeletalMeshActor.cpp index be833e5..199c9f0 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Misc/OptionalRepSkeletalMeshActor.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Misc/OptionalRepSkeletalMeshActor.cpp @@ -561,6 +561,7 @@ void UInversePhysicsSkeletalMeshComponent::RegisterEndPhysicsTick(bool bRegister // For testing if the engine fix is live yet or not //return Super::RegisterEndPhysicsTick(bRegister); + if (bRegister != EndPhysicsTickFunctionVR.IsTickFunctionRegistered()) { if (bRegister) diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Misc/VRAIPerceptionOverrides.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Misc/VRAIPerceptionOverrides.cpp index 0e932b3..28a69c0 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Misc/VRAIPerceptionOverrides.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Misc/VRAIPerceptionOverrides.cpp @@ -1117,7 +1117,7 @@ void UAISense_Sight_VR::RemoveAllQueriesByListener(const FPerceptionListener& Li SCOPE_CYCLE_COUNTER(STAT_AI_Sense_Sight_RemoveByListener); UE_MT_SCOPED_WRITE_ACCESS(QueriesListAccessDetector); - const uint32 ListenerId = Listener.GetListenerID(); + const FPerceptionListenerID ListenerId = Listener.GetListenerID(); auto RemoveQuery = [&ListenerId, &OnRemoveFunc](TArray& SightQueries, const int32 QueryIndex)->EReverseForEachResult { @@ -1185,7 +1185,7 @@ void UAISense_Sight_VR::RemoveAllQueriesToTarget_Internal(const FAISightTargetVR void UAISense_Sight_VR::OnListenerForgetsActor(const FPerceptionListener& Listener, AActor& ActorToForget) { - const uint32 ListenerId = Listener.GetListenerID(); + const FPerceptionListenerID ListenerId = Listener.GetListenerID(); const uint32 TargetId = ActorToForget.GetUniqueID(); auto ForgetPreviousResult = [&ListenerId, &TargetId](FAISightQueryVR& SightQuery)->EForEachResult @@ -1212,7 +1212,7 @@ void UAISense_Sight_VR::OnListenerForgetsAll(const FPerceptionListener& Listener { UE_MT_SCOPED_WRITE_ACCESS(QueriesListAccessDetector); - const uint32 ListenerId = Listener.GetListenerID(); + const FPerceptionListenerID ListenerId = Listener.GetListenerID(); auto ForgetPreviousResult = [&ListenerId](FAISightQueryVR& SightQuery)->EForEachResult { diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Misc/VRGameViewportClient.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Misc/VRGameViewportClient.cpp index 44d9e5a..5fffb61 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Misc/VRGameViewportClient.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Misc/VRGameViewportClient.cpp @@ -103,7 +103,7 @@ bool UVRGameViewportClient::InputKey(const FInputKeyEventArgs& EventArgs) } } -bool UVRGameViewportClient::InputAxis(FViewport* tViewport, FInputDeviceId InputDevice, FKey Key, float Delta, float DeltaTime, int32 NumSamples, bool bGamepad) +bool UVRGameViewportClient::InputAxis(const FInputKeyEventArgs& Args) { // Remap the old int32 ControllerId value to the new InputDeviceId IPlatformInputDeviceMapper& DeviceMapper = IPlatformInputDeviceMapper::Get(); @@ -111,8 +111,8 @@ bool UVRGameViewportClient::InputAxis(FViewport* tViewport, FInputDeviceId Input const int32 NumLocalPlayers = World->GetGameInstance()->GetNumLocalPlayers(); // Early out if a gamepad or not a mouse event (vr controller) or ignoring input or is default setup / no GEngine - if (((!Key.IsMouseButton() && !bGamepad) || (bGamepad && !IsValidGamePadKey(Key))) || NumLocalPlayers < 2 || GameInputMethod == EVRGameInputMethod::GameInput_Default || IgnoreInput()) - return Super::InputAxis(tViewport, InputDevice, Key, Delta, DeltaTime, NumSamples, bGamepad); + if (((!Args.Key.IsMouseButton() && !Args.IsGamepad()) || (Args.IsGamepad() && !IsValidGamePadKey(Args.Key))) || NumLocalPlayers < 2 || GameInputMethod == EVRGameInputMethod::GameInput_Default || IgnoreInput()) + return Super::InputAxis(Args); if (GameInputMethod == EVRGameInputMethod::GameInput_KeyboardAndMouseToPlayer2) { @@ -123,7 +123,9 @@ bool UVRGameViewportClient::InputAxis(FViewport* tViewport, FInputDeviceId Input FInputDeviceId DeviceId = INPUTDEVICEID_NONE; DeviceMapper.RemapControllerIdToPlatformUserAndDevice(ControllerId, UserId, DeviceId); - return Super::InputAxis(tViewport, DeviceId, Key, Delta, DeltaTime, NumSamples, bGamepad); + FInputKeyEventArgs NewArgs = Args; + NewArgs.InputDevice = DeviceId; + return Super::InputAxis(NewArgs); } else // Shared keyboard and mouse { @@ -134,7 +136,9 @@ bool UVRGameViewportClient::InputAxis(FViewport* tViewport, FInputDeviceId Input FInputDeviceId DeviceId = INPUTDEVICEID_NONE; DeviceMapper.RemapControllerIdToPlatformUserAndDevice(i, UserId, DeviceId); - bRetVal = Super::InputAxis(tViewport, DeviceId, Key, Delta, DeltaTime, NumSamples, bGamepad) || bRetVal; + FInputKeyEventArgs NewArgs = Args; + NewArgs.InputDevice = DeviceId; + bRetVal = Super::InputAxis(NewArgs) || bRetVal; } return bRetVal; diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Misc/VRRenderTargetManager.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Misc/VRRenderTargetManager.cpp index fbe5a35..2bc26e8 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Misc/VRRenderTargetManager.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/Misc/VRRenderTargetManager.cpp @@ -449,7 +449,7 @@ void ARenderTargetReplicationProxy::SendInitMessage() void ARenderTargetReplicationProxy::SendNextDataBlob() { - if (!IsValid(this) || !this->GetOwner() || !IsValid(this->GetOwner())) + if (!IsValidChecked(this) || !this->GetOwner() || !IsValid(this->GetOwner())) { TextureStore.Reset(); TextureStore.PackedData.Empty(); diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/ReplicatedVRCameraComponent.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/ReplicatedVRCameraComponent.cpp index 346d4ec..bbdecb1 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/ReplicatedVRCameraComponent.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/ReplicatedVRCameraComponent.cpp @@ -210,7 +210,7 @@ void UReplicatedVRCameraComponent::UpdateTracking(float DeltaTime) FRotator StoredCameraRotOffset = FRotator::ZeroRotator; if (AttachChar->VRMovementReference && AttachChar->VRMovementReference->GetReplicatedMovementMode() == EVRConjoinedMovementModes::C_VRMOVE_Seated) { - AttachChar->SeatInformation.InitialRelCameraTransform.Rotator(); + //StoredCameraRotOffset = AttachChar->SeatInformation.InitialRelCameraTransform.Rotator(); } else { @@ -250,7 +250,7 @@ void UReplicatedVRCameraComponent::RunNetworkedSmoothing(float DeltaTime) FRotator StoredCameraRotOffset = FRotator::ZeroRotator; if (AttachChar->VRMovementReference && AttachChar->VRMovementReference->GetReplicatedMovementMode() == EVRConjoinedMovementModes::C_VRMOVE_Seated) { - AttachChar->SeatInformation.InitialRelCameraTransform.Rotator(); + //StoredCameraRotOffset = AttachChar->SeatInformation.InitialRelCameraTransform.Rotator(); } else { @@ -480,12 +480,12 @@ void UReplicatedVRCameraComponent::HandleXRCamera(float DeltaTime) //FRotator OffsetRotator = if (AttachChar->VRMovementReference && AttachChar->VRMovementReference->GetReplicatedMovementMode() != EVRConjoinedMovementModes::C_VRMOVE_Seated) { - AttachChar->SeatInformation.InitialRelCameraTransform.Rotator(); + //AttachChar->SeatInformation.InitialRelCameraTransform.Rotator(); FRotator StoredCameraRotOffset = FRotator::ZeroRotator; if (AttachChar->VRMovementReference->GetReplicatedMovementMode() == EVRConjoinedMovementModes::C_VRMOVE_Seated) { - AttachChar->SeatInformation.InitialRelCameraTransform.Rotator(); + //StoredCameraRotOffset = AttachChar->SeatInformation.InitialRelCameraTransform.Rotator(); } else { @@ -536,7 +536,7 @@ void UReplicatedVRCameraComponent::OnRep_ReplicatedCameraTransform() FRotator StoredCameraRotOffset = FRotator::ZeroRotator; if (AttachChar->VRMovementReference && AttachChar->VRMovementReference->GetReplicatedMovementMode() == EVRConjoinedMovementModes::C_VRMOVE_Seated) { - AttachChar->SeatInformation.InitialRelCameraTransform.Rotator(); + //StoredCameraRotOffset = AttachChar->SeatInformation.InitialRelCameraTransform.Rotator(); } else { diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRBaseCharacter.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRBaseCharacter.cpp index 13d7a03..e0b200b 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRBaseCharacter.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRBaseCharacter.cpp @@ -185,7 +185,7 @@ void AVRBaseCharacter::PostInitializeComponents() Super::PostInitializeComponents(); - if (IsValid(this)) + if (IsValidChecked(this)) { if (NetSmoother) { diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRBaseCharacterMovementComponent.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRBaseCharacterMovementComponent.cpp index 581bc8b..50266e8 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRBaseCharacterMovementComponent.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRBaseCharacterMovementComponent.cpp @@ -1721,6 +1721,17 @@ void UVRBaseCharacterMovementComponent::SimulatedTick(float DeltaSeconds) const FQuat NewCapsuleRotation = UpdatedComponent->GetComponentQuat(); if (Mesh == CharacterOwner->GetMesh() && !NewCapsuleRotation.Equals(OldRotationQuat, 1e-6f) && ClientPredictionData) { + // #TODO: The below is new in 5.6, i don't have saved capsule rotation, don't think i need this change for base char + /* + // Add delta rotation to the target rotation and original offset. Otherwise this object will move back toward the old rotation. + const FQuat RotationDelta = NewCapsuleRotation - SavedCapsuleRotation; + ClientPredictionData->MeshRotationTarget += RotationDelta; + ClientPredictionData->OriginalMeshRotationOffset += RotationDelta; + + // Update the MeshRotationOffset to match the capsule rotation. + ClientPredictionData->MeshRotationOffset = NewCapsuleRotation; + */ + // Smoothing should lerp toward this new rotation target, otherwise it will just try to go back toward the old rotation. ClientPredictionData->MeshRotationTarget = NewCapsuleRotation; Mesh->SetRelativeLocationAndRotation(SavedMeshRelativeLocation, CharacterOwner->GetBaseRotationOffset()); @@ -1941,13 +1952,18 @@ void UVRBaseCharacterMovementComponent::MoveAutonomous( static const auto CVarEnableQueuedAnimEventsOnServer = IConsoleManager::Get().FindConsoleVariable(TEXT("a.EnableQueuedAnimEventsOnServer")); if (CVarEnableQueuedAnimEventsOnServer->GetInt()) { - if (const UAnimInstance* AnimInstance = OwnerMesh->GetAnimInstance()) + if (UAnimInstance* AnimInstance = OwnerMesh->GetAnimInstance()) { if (OwnerMesh->VisibilityBasedAnimTickOption <= EVisibilityBasedAnimTickOption::AlwaysTickPose && AnimInstance->NeedsUpdate()) { // If we are doing a full graph update on the server but its doing a parallel update, - // trigger events right away since these are notifies queued from the montage update and we could be receiving multiple ServerMoves per frame. + // trigger events right away since these are notifies queued from the montage update, and we could be receiving multiple ServerMoves per frame. OwnerMesh->ConditionallyDispatchQueuedAnimEvents(); + + // We need to manually clear the anim notify queue (since normally its only is cleared in PreUpdateAnimation()) otherwise if animation ticks, the notifies queued from the ServerMove would fire twice. + AnimInstance->ClearQueuedAnimEvents(false); + + // When animation ticks, we want its queued events to be triggered. OwnerMesh->AllowQueuedAnimEventsNextDispatch(); } } @@ -1955,7 +1971,7 @@ void UVRBaseCharacterMovementComponent::MoveAutonomous( else { // Revert back to old behavior if wanted/needed. - if (OwnerMesh->ShouldOnlyTickMontages(DeltaTime)) + if (OwnerMesh->ShouldOnlyTickMontages(DeltaTime) || OwnerMesh->ShouldOnlyTickMontagesAndRefreshBones(DeltaTime)) { OwnerMesh->ConditionallyDispatchQueuedAnimEvents(); } diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRCharacterMovementComponent.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRCharacterMovementComponent.cpp index 65cc5a3..4ca1ff7 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRCharacterMovementComponent.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRCharacterMovementComponent.cpp @@ -123,7 +123,7 @@ void UVRCharacterMovementComponent::Crouch(bool bClientSimulation) { if (!bClientSimulation) { - CharacterOwner->bIsCrouched = true; + CharacterOwner->SetIsCrouched(true); } CharacterOwner->OnStartCrouch(0.f, 0.f); return; @@ -195,7 +195,7 @@ void UVRCharacterMovementComponent::Crouch(bool bClientSimulation) //UpdatedComponent->MoveComponent(ScaledHalfHeightAdjust * GetGravityDirection(), UpdatedComponent->GetComponentQuat(), true, nullptr, EMoveComponentFlags::MOVECOMP_NoFlags, ETeleportType::TeleportPhysics); } - CharacterOwner->bIsCrouched = true; + CharacterOwner->SetIsCrouched(true); } bForceNextFloorCheck = true; @@ -240,7 +240,7 @@ void UVRCharacterMovementComponent::UnCrouch(bool bClientSimulation) { if (!bClientSimulation) { - CharacterOwner->bIsCrouched = false; + CharacterOwner->SetIsCrouched(false); } CharacterOwner->OnEndCrouch(0.f, 0.f); return; @@ -341,7 +341,11 @@ void UVRCharacterMovementComponent::UnCrouch(bool bClientSimulation) if (!bEncroached) { // Commit the change in location. - //UpdatedComponent->MoveComponent(StandingLocation - PawnLocation, UpdatedComponent->GetComponentQuat(), false, nullptr, EMoveComponentFlags::MOVECOMP_NoFlags, ETeleportType::TeleportPhysics); + if (!BaseVRCharacterOwner || !BaseVRCharacterOwner->bRetainRoomscale) + { + // we actually move this when not using retained roomscale + //UpdatedComponent->MoveComponent(StandingLocation - PawnLocation, UpdatedComponent->GetComponentQuat(), false, nullptr, EMoveComponentFlags::MOVECOMP_NoFlags, ETeleportType::TeleportPhysics); + } bForceNextFloorCheck = true; } } @@ -352,7 +356,7 @@ void UVRCharacterMovementComponent::UnCrouch(bool bClientSimulation) return; } - CharacterOwner->bIsCrouched = false; + CharacterOwner->SetIsCrouched(false); } else { @@ -881,7 +885,7 @@ void UVRCharacterMovementComponent::PhysWalking(float deltaTime, int32 Iteration return; } - if (!CharacterOwner || (!CharacterOwner->Controller && !bRunPhysicsWithNoController && !HasAnimRootMotion() && !CurrentRootMotion.HasOverrideVelocity() && (CharacterOwner->GetLocalRole() != ROLE_SimulatedProxy))) + if (!CharacterOwner || (!CharacterOwner->GetController() && !bRunPhysicsWithNoController && !HasAnimRootMotion() && !CurrentRootMotion.HasOverrideVelocity() && (CharacterOwner->GetLocalRole() != ROLE_SimulatedProxy))) { Acceleration = FVector::ZeroVector; Velocity = FVector::ZeroVector; @@ -908,7 +912,7 @@ void UVRCharacterMovementComponent::PhysWalking(float deltaTime, int32 Iteration RewindVRRelativeMovement(); // Perform the move - while ((remainingTime >= MIN_TICK_TIME) && (Iterations < MaxSimulationIterations) && CharacterOwner && (CharacterOwner->Controller || bRunPhysicsWithNoController || HasAnimRootMotion() || CurrentRootMotion.HasOverrideVelocity() || (CharacterOwner->GetLocalRole() == ROLE_SimulatedProxy))) + while ((remainingTime >= MIN_TICK_TIME) && (Iterations < MaxSimulationIterations) && CharacterOwner && (CharacterOwner->GetController() || bRunPhysicsWithNoController || HasAnimRootMotion() || CurrentRootMotion.HasOverrideVelocity() || (CharacterOwner->GetLocalRole() == ROLE_SimulatedProxy))) { Iterations++; bJustTeleported = false; @@ -1085,7 +1089,7 @@ void UVRCharacterMovementComponent::PhysWalking(float deltaTime, int32 Iteration } AdjustFloorHeight(); - SetBase(CurrentFloor.HitResult.Component.Get(), CurrentFloor.HitResult.BoneName); + SetBaseFromFloor(CurrentFloor); } else if (CurrentFloor.HitResult.bStartPenetrating && remainingTime <= 0.f) { @@ -2275,7 +2279,7 @@ void UVRCharacterMovementComponent::UpdateBasedMovement(float DeltaSeconds) { // Nothing changed. This means we probably are using another rotation mechanism (bOrientToMovement etc). We should still follow the base object. // @todo: This assumes only Yaw is used, currently a valid assumption. This is the only reason FaceRotation() is used above really, aside from being a virtual hook. - if (bOrientRotationToMovement || (bUseControllerDesiredRotation && CharacterOwner->Controller)) + if (bOrientRotationToMovement || (bUseControllerDesiredRotation && CharacterOwner->GetController())) { // Custom gravity automatically aligns the character to the gravity direction, so we shouldn't zero out pitch and roll. if (!HasCustomGravity()) @@ -2289,7 +2293,7 @@ void UVRCharacterMovementComponent::UpdateBasedMovement(float DeltaSeconds) } // Pipe through ControlRotation, to affect camera. - if (CharacterOwner->Controller) + if (CharacterOwner->GetController()) { const FQuat PawnDeltaRotation = FinalQuat * PawnOldQuat.Inverse(); FRotator FinalRotation = FinalQuat.Rotator(); @@ -3195,7 +3199,7 @@ void UVRCharacterMovementComponent::PhysNavWalking(float deltaTime, int32 Iterat } // Root motion not for VR - if ((!CharacterOwner || !CharacterOwner->Controller) && !bRunPhysicsWithNoController && !HasAnimRootMotion() && !CurrentRootMotion.HasOverrideVelocity()) + if ((!CharacterOwner || !CharacterOwner->GetController()) && !bRunPhysicsWithNoController && !HasAnimRootMotion() && !CurrentRootMotion.HasOverrideVelocity()) { Acceleration = FVector::ZeroVector; Velocity = FVector::ZeroVector; @@ -3814,7 +3818,7 @@ void UVRCharacterMovementComponent::SimulateMovement(float DeltaSeconds) if (IsMovingOnGround()) { AdjustFloorHeight(); - SetBase(CurrentFloor.HitResult.Component.Get(), CurrentFloor.HitResult.BoneName); + SetBaseFromFloor(CurrentFloor); } else if (MovementMode == MOVE_Falling) { diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRGestureComponent.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRGestureComponent.cpp index b660744..166f9e3 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRGestureComponent.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRGestureComponent.cpp @@ -544,7 +544,7 @@ void UVRGestureComponent::DrawDebugGesture(UObject* WorldContextObject, FTransfo FVector MirrorVector = FVector(1.f, -1.f, 1.f); // Only mirroring on Y axis to flip Left/Right // this means foreground lines can't be persistent - ULineBatchComponent* const LineBatcher = (InWorld ? ((DepthPriority == SDPG_Foreground) ? InWorld->ForegroundLineBatcher : ((bPersistentLines || (LifeTime > 0.f)) ? InWorld->PersistentLineBatcher : InWorld->LineBatcher)) : NULL); + ULineBatchComponent* const LineBatcher = (InWorld ? ((DepthPriority == SDPG_Foreground) ? InWorld->GetLineBatcher(UWorld::ELineBatcherType::Foreground) : ((bPersistentLines || (LifeTime > 0.f)) ? InWorld->GetLineBatcher(UWorld::ELineBatcherType::WorldPersistent) : InWorld->GetLineBatcher(UWorld::ELineBatcherType::World))) : NULL); if (LineBatcher != NULL) { diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRPathFollowingComponent.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRPathFollowingComponent.cpp index 6768f25..3043383 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRPathFollowingComponent.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRPathFollowingComponent.cpp @@ -52,7 +52,7 @@ void UVRPathFollowingComponent::GetDebugStringTokens(TArray& Tokens, TA Tokens.Add(GetStatusDesc()); Flags.Add(EPathFollowingDebugTokens::Description); - if (Status != EPathFollowingStatus::Moving) + if (GetStatus() != EPathFollowingStatus::Moving) { return; } diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRRootComponent.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRRootComponent.cpp index c14c376..adda839 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRRootComponent.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRRootComponent.cpp @@ -11,6 +11,7 @@ #include "Engine/ScopedMovementUpdate.h" #include "SceneManagement.h" #include "PrimitiveSceneProxy.h" +#include "SceneView.h" //#include "DrawDebugHelpers.h" #include "IHeadMountedDisplay.h" #include "IXRTrackingSystem.h" @@ -962,7 +963,7 @@ bool UVRRootComponent::MoveComponentImpl(const FVector& Delta, const FQuat& NewR //CSV_SCOPED_TIMING_STAT(PrimitiveComponent, MoveComponentTime); // static things can move before they are registered (e.g. immediately after streaming), but not after. - if (!IsValid(this) || (this->Mobility == EComponentMobility::Static && IsRegistered()))//|| CheckStaticMobilityAndWarn(PrimitiveComponentStatics::MobilityWarnText)) + if (!IsValidChecked(this) || (this->Mobility == EComponentMobility::Static && IsRegistered()))//|| CheckStaticMobilityAndWarn(PrimitiveComponentStatics::MobilityWarnText)) { if (OutHit) { @@ -1233,7 +1234,7 @@ bool UVRRootComponent::MoveComponentImpl(const FVector& Delta, const FQuat& NewR // Handle blocking hit notifications. Avoid if pending kill (which could happen after overlaps). const bool bAllowHitDispatch = !BlockingHit.bStartPenetrating || !(MoveFlags & MOVECOMP_DisableBlockingOverlapDispatch); - if (BlockingHit.bBlockingHit && bAllowHitDispatch && IsValid(this)) + if (BlockingHit.bBlockingHit && bAllowHitDispatch && IsValidChecked(this)) { check(bFilledHitResult); if (IsDeferringMovementUpdates()) @@ -1329,7 +1330,7 @@ bool UVRRootComponent::UpdateOverlapsImpl(const TOverlapArrayView* NewPendingOve TInlineOverlapPointerArray NewOverlappingComponentPtrs; // If pending kill, we should not generate any new overlaps. Also not if overlaps were just disabled during BeginComponentOverlap. - if (IsValid(this) && GetGenerateOverlapEvents()) + if (IsValidChecked(this) && GetGenerateOverlapEvents()) { // 4.17 converted to auto cvar static const auto CVarAllowCachedOverlaps = IConsoleManager::Get().FindConsoleVariable(TEXT("p.AllowCachedOverlaps")); @@ -1553,7 +1554,7 @@ bool UVRRootComponent::IsLocallyControlled() const // Simulated proxies should already have the new height from the server if (!owningVRChar->bRetainRoomscale && (owningVRChar->GetNetMode() < ENetMode::NM_Client || IsLocallyControlled())) { - MoveComponent(this->GetComponentQuat().GetUpVector() * (Offset * this->GetComponentScale().Z), GetComponentQuat(), true, nullptr, EMoveComponentFlags::MOVECOMP_NoFlags, ETeleportType::TeleportPhysics); + MoveComponent(this->GetComponentQuat().GetUpVector() * (Offset * this->GetComponentScale().Z), GetComponentQuat(), false, nullptr, EMoveComponentFlags::MOVECOMP_NoFlags, ETeleportType::TeleportPhysics); } /*else { @@ -1581,7 +1582,7 @@ bool UVRRootComponent::IsLocallyControlled() const void UVRRootComponent::UpdatePhysicsVolume(bool bTriggerNotifiers) { - if (GetShouldUpdatePhysicsVolume() && IsValid(this)) + if (GetShouldUpdatePhysicsVolume() && IsValidChecked(this)) { // SCOPE_CYCLE_COUNTER(STAT_UpdatePhysicsVolume); if (UWorld * MyWorld = GetWorld()) diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRStereoWidgetComponent.cpp b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRStereoWidgetComponent.cpp index 2afa1d3..cd82855 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRStereoWidgetComponent.cpp +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Private/VRStereoWidgetComponent.cpp @@ -11,6 +11,8 @@ #include "VRRootComponent.h" #include "TextureResource.h" #include "Engine/Texture.h" +#include "Engine/Texture2D.h" +#include "SceneView.h" #include "Engine/GameInstance.h" #include "SceneManagement.h" #include "Materials/Material.h" @@ -27,6 +29,8 @@ #include "Engine/Engine.h" #include "Engine/GameViewportClient.h" #include "Engine/TextureRenderTarget2D.h" +#include "ImageUtils.h" +#include "ImageCoreUtils.h" //#include "Widgets/SWindow.h" #include "Framework/Application/SlateApplication.h" #include "Kismet/KismetSystemLibrary.h" @@ -415,6 +419,8 @@ UVRStereoWidgetComponent::~UVRStereoWidgetComponent() void UVRStereoWidgetComponent::EndPlay(const EEndPlayReason::Type EndPlayReason) { + Super::EndPlay(EndPlayReason); + if (EndPlayReason == EEndPlayReason::EndPlayInEditor || EndPlayReason == EEndPlayReason::Quit) { //FStereoLayerAdditionalFlagsManager::Destroy(); @@ -431,6 +437,12 @@ void UVRStereoWidgetComponent::BeginDestroy() LayerId = IStereoLayers::FLayerDesc::INVALID_LAYER_ID; } + if (IsValid(TextureRef)) + { + TextureRef->RemoveFromRoot(); + TextureRef = nullptr; + } + Super::BeginDestroy(); } @@ -601,7 +613,14 @@ void UVRStereoWidgetComponent::TickComponent(float DeltaTime, enum ELevelTick Ti if (AVRCharacter* VRChar = Cast(mpawn)) { - HMDLoc += UVRExpansionFunctionLibrary::GetHMDPureYaw_I(HMDRot.Rotator()).RotateVector(FVector(VRChar->VRRootReference->VRCapsuleOffset.X, VRChar->VRRootReference->VRCapsuleOffset.Y, 0.0f)); + if (VRChar->VRMovementReference && VRChar->VRMovementReference->GetReplicatedMovementMode() == EVRConjoinedMovementModes::C_VRMOVE_Seated) + { + + } + else + { + HMDLoc += UVRExpansionFunctionLibrary::GetHMDPureYaw_I(HMDRot.Rotator()).RotateVector(FVector(VRChar->VRRootReference->VRCapsuleOffset.X, VRChar->VRRootReference->VRCapsuleOffset.Y, 0.0f)); + } } DeltaTrans = FTransform(FQuat::Identity, HMDLoc, FVector(1.0f)); @@ -711,8 +730,12 @@ void UVRStereoWidgetComponent::TickComponent(float DeltaTime, enum ELevelTick Ti if (RenderTarget) { - LayerDsec.Texture = RenderTarget->GetResource()->TextureRHI; + // TODO 5.7 need to figure out how to replace this in some way that isn't so fing slow + //PRAGMA_DISABLE_DEPRECATION_WARNINGS + //LayerDsec.Texture = RenderTarget->GetResource()->TextureRHI; + LayerDsec.TextureObj = RenderTarget; LayerDsec.Flags |= (RenderTarget->GetMaterialType() == MCT_TextureExternal) ? IStereoLayers::LAYER_FLAG_TEX_EXTERNAL : 0; + //PRAGMA_ENABLE_DEPRECATION_WARNINGS } // Forget the left texture implementation //if (LeftTexture) diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/Grippables/GrippablePhysicsReplication.h b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/Grippables/GrippablePhysicsReplication.h index 10acf5f..7cd101f 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/Grippables/GrippablePhysicsReplication.h +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/Grippables/GrippablePhysicsReplication.h @@ -35,7 +35,8 @@ #pragma region FPhysicsReplicationAsync -class FPhysicsReplicationAsyncVR : public Chaos::TSimCallbackObject< +class FPhysicsReplicationAsyncVR : public IPhysicsReplicationAsync, + public Chaos::TSimCallbackObject< FPhysicsReplicationAsyncInput, Chaos::FSimCallbackNoOutput, Chaos::ESimCallbackOptions::Presimulate | Chaos::ESimCallbackOptions::PhysicsObjectUnregister> @@ -45,7 +46,9 @@ class FPhysicsReplicationAsyncVR : public Chaos::TSimCallbackObject< virtual void OnPreSimulate_Internal() override; virtual void OnPhysicsObjectUnregistered_Internal(Chaos::FConstPhysicsObjectHandle PhysicsObject) override; - virtual void ApplyTargetStatesAsync(const float DeltaSeconds, const FPhysicsRepErrorCorrectionData& ErrorCorrection, const TArray& TargetStates); + virtual void ApplyTargetStatesAsync(const float DeltaSeconds); + UE_DEPRECATED(5.6, "Deprecated, call the function with just @param DeltaSeconds instead.") + virtual void ApplyTargetStatesAsync(const float DeltaSeconds, const FPhysicsRepErrorCorrectionData& ErrorCorrection, const TArray& TargetStates) { ApplyTargetStatesAsync(DeltaSeconds); }; // Replication functions virtual void DefaultReplication_DEPRECATED(Chaos::FRigidBodyHandle_Internal* Handle, const FPhysicsRepAsyncInputData& State, const float DeltaSeconds, const FPhysicsRepErrorCorrectionData& ErrorCorrection); @@ -54,7 +57,7 @@ class FPhysicsReplicationAsyncVR : public Chaos::TSimCallbackObject< virtual bool ResimulationReplication(Chaos::FPBDRigidParticleHandle* Handle, FReplicatedPhysicsTargetAsync& Target, const float DeltaSeconds); public: - virtual void RegisterSettings(Chaos::FConstPhysicsObjectHandle PhysicsObject, FNetworkPhysicsSettingsAsync InSettings); + virtual void RegisterSettings(Chaos::FConstPhysicsObjectHandle PhysicsObject, FNetworkPhysicsSettingsAsync InSettings) override; private: float LatencyOneWay; @@ -63,6 +66,8 @@ private: FNetworkPhysicsSettingsAsync SettingsDefault; TMap ObjectToTarget; TMap ObjectToSettings; + TArray ResimIslands; + TArray ResimIslandsParticles; TArray ParticlesInResimIslands; TArray ReplicatedParticleIDs; @@ -74,7 +79,15 @@ private: void CacheResimInteractions(); // Sets SettingsCurrent to either the objects custom settings or to the default settings void FetchObjectSettings(Chaos::FConstPhysicsObjectHandle PhysicsObject); + bool UsePhysicsReplicationLOD(); + void CheckTargetResimValidity(FReplicatedPhysicsTargetAsync& Target); + void ApplyPhysicsReplicationLOD(Chaos::FConstPhysicsObjectHandle PhysicsObjectHandle, FReplicatedPhysicsTargetAsync& Target, const uint32 LODFlags); + void DebugDrawReplicationMode(const FPhysicsRepAsyncInputData& Input); + + /** Static function to extrapolate a target for N ticks using X DeltaSeconds */ static void ExtrapolateTarget(FReplicatedPhysicsTargetAsync& Target, const int32 ExtrapolateFrames, const float DeltaSeconds); + /** Static function to extrapolate a target for N Seconds */ + static void ExtrapolateTarget(FReplicatedPhysicsTargetAsync& Target, const float ExtrapolationTime); public: void Setup(FRigidBodyErrorCorrection ErrorCorrection) diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/Misc/VRGameViewportClient.h b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/Misc/VRGameViewportClient.h index 61f52fd..6ddbeba 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/Misc/VRGameViewportClient.h +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/Misc/VRGameViewportClient.h @@ -61,5 +61,5 @@ public: virtual void PostInitProperties() override; virtual bool InputKey(const FInputKeyEventArgs& EventArgs) override; - virtual bool InputAxis(FViewport* tViewport, FInputDeviceId InputDevice, FKey Key, float Delta, float DeltaTime, int32 NumSamples = 1, bool bGamepad = false) override; + virtual bool InputAxis(const FInputKeyEventArgs& Args) override; }; \ No newline at end of file diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/Misc/VRVehiclePawn.h b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/Misc/VRVehiclePawn.h index 83afc09..672e6b4 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/Misc/VRVehiclePawn.h +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/Misc/VRVehiclePawn.h @@ -93,11 +93,11 @@ public: SetupPlayerInputComponent(InputComponent); InputComponent->RegisterComponent(); - if (UInputDelegateBinding::SupportsInputDelegate(GetClass())) - { + //if (UInputDelegateBinding::SupportsInputDelegate(GetClass())) + //{ InputComponent->bBlockInput = bBlockInput; UInputDelegateBinding::BindInputDelegates(GetClass(), InputComponent); - } + //} } } diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/Misc/VRWheeledVehicle.h b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/Misc/VRWheeledVehicle.h index a0ed62a..10b61d4 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/Misc/VRWheeledVehicle.h +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/Misc/VRWheeledVehicle.h @@ -108,11 +108,11 @@ public: SetupPlayerInputComponent(InputComponent); InputComponent->RegisterComponent(); - if (UInputDelegateBinding::SupportsInputDelegate(GetClass())) - { + //if (UInputDelegateBinding::SupportsInputDelegate(GetClass())) + //{ InputComponent->bBlockInput = bBlockInput; UInputDelegateBinding::BindInputDelegates(GetClass(), InputComponent); - } + //} } } diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/VRStereoWidgetComponent.h b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/VRStereoWidgetComponent.h index 9fddf36..39e3e2f 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/VRStereoWidgetComponent.h +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/Public/VRStereoWidgetComponent.h @@ -181,6 +181,9 @@ public: UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "StereoLayer", Meta = (GetOptions = "EditorFlagCollector.GetFlagNames")) TArray AdditionalFlags; + UPROPERTY() + TObjectPtr TextureRef = nullptr; + protected: /** Texture displayed on the stereo layer (is stereocopic textures are supported on the platfrom and more than one texture is provided, this will be the right eye) **/ //UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "StereoLayer") diff --git a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/VRExpansionPlugin.Build.cs b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/VRExpansionPlugin.Build.cs index f065a80..56a0175 100644 --- a/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/VRExpansionPlugin.Build.cs +++ b/VIRTUOS_ExpansionPluginTests/Plugins/VRExpansionPlugin/VRExpansionPlugin/Source/VRExpansionPlugin/VRExpansionPlugin.Build.cs @@ -11,6 +11,8 @@ public class VRExpansionPlugin : ModuleRules public VRExpansionPlugin(ReadOnlyTargetRules Target) : base(Target) { + DefaultBuildSettings = BuildSettingsVersion.Latest; + IncludeOrderVersion = EngineIncludeOrderVersion.Latest; PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; //bEnforceIWYU = true; @@ -83,6 +85,7 @@ public class VRExpansionPlugin : ModuleRules // "CoreUObject", //"Engine", "InputCore", + "ImageCore", // For new stereo layer stuff //"FLEX", remove comment if building in the NVIDIA flex branch - NOTE when put in place FLEX only listed win32 and win64 at compatible platforms //"HeadMountedDisplay", "RHI", diff --git a/VIRTUOS_ExpansionPluginTests/README.md b/VIRTUOS_ExpansionPluginTests/README.md deleted file mode 100644 index 02dcdcf..0000000 --- a/VIRTUOS_ExpansionPluginTests/README.md +++ /dev/null @@ -1,10 +0,0 @@ -### How do I get set up? ### - -Current compatible versions for template: Latest Engine Version (Template is not kept to as many compatible versions as the plugin itself). - -* Right click on VRExpPluginExample.uproject and switch to your preferred (compatible) engine version. -* If project files did not automatically generate after switching, right click again and select "Generate Visual Studio Files" -* Open Solution and build - Or download the pre-built binary package from the forum thread for the engine version and place into the plugins directory. -* Run - -You need to have visual studio installed and follow the UE4 setup guide for it: https://docs.unrealengine.com/latest/INT/Programming/Development/VisualStudioSetup/ \ No newline at end of file diff --git a/VIRTUOS_ExpansionPluginTests/VRExpPluginExample.uproject b/VIRTUOS_ExpansionPluginTests/VRExpPluginExample.uproject index 5790317..68c8a41 100644 --- a/VIRTUOS_ExpansionPluginTests/VRExpPluginExample.uproject +++ b/VIRTUOS_ExpansionPluginTests/VRExpPluginExample.uproject @@ -1,6 +1,6 @@ { "FileVersion": 3, - "EngineAssociation": "5.5", + "EngineAssociation": "5.6", "Category": "", "Description": "", "Modules": [