Shadow Artifacts with the Custom Character

Following the tutorial, I created a child BP character class and changed the skeletal mesh. After that the shadows started glitching during movement. The project is configured to use Lumen with Virtual Shadow Maps.

Changing Virtual Shadow Maps to normal Shadow Maps fixed the character shadow issues, but I get a bunch of warnings that island meshes in the level use Nanite and it needs Virtual Shadow Maps to work properly.

Changing the skeletal mesh back to the original Mannequin also fixes the shadows issue (with Virtual Shadow Maps enabled), but then I don’t get to use the custom character.

Ideally I want to have Nanite, Lumen, Virtual Shadow Maps, and custom character. How do I do that?

I can’t replicate this on my end. Have you tried updating your GPU drivers?

Yes, I have the latest driver (552.12) and I’m running Unreal 5.3.2. Here is my DefaultEngine.ini (with Virtaul Shadow Maps disabled):

[URL]
GameName=ObstacleAssault

[/Script/EngineSettings.GameMapsSettings]
GameDefaultMap=/Game/Maps/Main.Main
TransitionMap=
bUseSplitscreen=True
TwoPlayerSplitscreenLayout=Horizontal
ThreePlayerSplitscreenLayout=FavorTop
GlobalDefaultGameMode=/Game/ThirdPersonBP/Blueprints/ThirdPersonGameMode.ThirdPersonGameMode_C
GlobalDefaultServerGameMode=None
EditorStartupMap=/Game/Maps/Main.Main

[/Script/HardwareTargeting.HardwareTargetingSettings]
TargetedHardwareClass=Desktop
AppliedTargetedHardwareClass=Desktop
DefaultGraphicsPerformance=Maximum
AppliedDefaultGraphicsPerformance=Maximum

[/Script/Engine.Engine]
+ActiveGameNameRedirects=(OldGameName="TP_ThirdPersonBP",NewGameName="/Script/Epic_Unreal")
+ActiveGameNameRedirects=(OldGameName="/Script/TP_ThirdPersonBP",NewGameName="/Script/Epic_Unreal")

[/Script/Engine.RendererSettings]
r.MobileMSAA=4
r.Mobile.AmbientOcclusion=True
r.GenerateMeshDistanceFields=True
r.SupportAtmosphericFog=False
r.SupportSkyAtmosphereAffectsHeightFog=True
r.Mobile.DisableVertexFog=False
r.SupportStationarySkylight=False
r.SupportLowQualityLightmaps=False
r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=False
r.Shadow.Virtual.Enable=0
r.ReflectionMethod=1
r.DynamicGlobalIlluminationMethod=1
r.DBuffer=False
r.AllowStaticLighting=False

[/Script/Engine.PhysicsSettings]
bSubstepping=False
bEnableEnhancedDeterminism=False
bSubsteppingAsync=False
bTickPhysicsAsync=True
MaxPhysicsDeltaTime=0.033333
AsyncFixedTimeStepSize=0.016667

[/Script/WindowsTargetPlatform.WindowsTargetSettings]
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
-D3D12TargetedShaderFormats=PCD3D_SM5
+D3D12TargetedShaderFormats=PCD3D_SM6
-D3D11TargetedShaderFormats=PCD3D_SM5
+D3D11TargetedShaderFormats=PCD3D_SM5
Compiler=Default
AudioSampleRate=48000
AudioCallbackBufferFrameSize=1024
AudioNumBuffersToEnqueue=1
AudioMaxChannels=0
AudioNumSourceWorkers=4
SpatializationPlugin=
SourceDataOverridePlugin=
ReverbPlugin=
OcclusionPlugin=
CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0)
CacheSizeKB=65536
MaxChunkSizeOverrideKB=0
bResampleForDevice=False
MaxSampleRate=48000.000000
HighSampleRate=32000.000000
MedSampleRate=24000.000000
LowSampleRate=12000.000000
MinSampleRate=8000.000000
CompressionQualityModifier=1.000000
AutoStreamingThreshold=0.000000
SoundCueCookQualityIndex=-1

[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings]
bEnablePlugin=True
bAllowNetworkConnection=True
SecurityToken=[reducted]
bIncludeInShipping=False
bAllowExternalStartInShipping=False
bCompileAFSProject=False
bUseCompression=False
bLogFiles=False
bReportStats=False
ConnectionType=USBOnly
bUseManualIPAddress=False
ManualIPAddress=

Everything still looks fine to me, what GPU do you have?
Also would you mind sending me your project using the following link?

https://gdev.tv/projectupload

Please use File > Zip Project within Unreal as this will ensure only required files are zipped up and things like the Binaries are excluded.

Hey,

I’m using NVIDIA GeForce RTX 4080 Laptop GPU on an Intel Core i9 machine.

The project is uploaded. Just launch it and run in a circle to see the issue.

Thank you for looking into this!

Best!

Had no idea, but I’m a professional Googler so found this thread:

Creating a physics asset does indeed magically fix the issue. Navigate to the mesh in the Content Browser then right click it, Create > Physics asset > create and assign. I just went with all the default options and hey presto, no longer get lagging shadows.

1 Like

Wow, thanks, that solved it! I also googled the problem, but everything I could find was about disabling Virtual Shadow Maps (like this, for example: https://www.youtube.com/watch?v=sC7P0hWWjUA). This made sense when it was a beta feature, but since it’s not in beta anymore and everything works just fine with the standard mannequin - that got me thinking that something weird was going on with the character.

This also made me think that adding physical asset might solve the problem with moving cubes not pushing the character properly if the character is not moving, but no, looks like we still need this weird hack

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.

Privacy & Terms