Download

Animation LOD to Frame Skip Map not working

Hi everyone,

Back in February I implemented an LOD to frame skip map for my player character to allow potentially hundreds on screen at once with good performance. It worked great and all was well in the kingdom.

However I recently revisited this during some optimisation efforts and noticed that it had suddenly stopped working. The frame skip was not happening at all at any LOD level.

This is how I am implementing the skip map. It is in a character component and executes in the BeginPlay function:



        if (OwningCharacter) {
            OwningCharacter->GetMesh()->bEnableUpdateRateOptimizations = true;
            OwningCharacter->GetMesh()->AnimUpdateRateParams->bShouldUseLodMap = true;

            for (int i = 0; i < Mesh_LOD_FrameRates.Num(); i++)
            {
                OwningCharacter->GetMesh()->AnimUpdateRateParams->LODToFrameSkipMap.Add(i, Mesh_LOD_FrameRates*);
            }
        }


I have used logging to confirm that this code is being executed, and the LOD framerates values are correct (they are). I also confirmed that bEnableUpdateRateOptimizations and bShouldUseLodMap are both enabled using logging in Tick. I have no idea when this stopped working or why, but I’m now in a bit of a dire situation as without this optimisation we will not be able to get the player counts we want with decent performance.

Does anyone know what else I could check to determine why this isn’t working? Are there any plugins I need enabled that might have somehow been disabled?

I am running engine version 4.24.1

Thanks!