Unreal Engine 4.24 Released!

Epic Chaos is working in 4.23. You release 4.24. Why doesn’t Chaos work in 4.24? Very strange.

So we noticed immediately after upgrading to 4.24 from 4.23.1 that the Paper2D Normal Buffer was acting as if it was Y-Up… Thus things like ambient occlusion and any other world normal based system was horrifically broken on paper2D Sprites and flipbooks. This seems to be from a recent optimization that utilizes a new vertex buffer. At the end of the buffer you can just simply change TangentZ to GetTangentY()
Engine/Plugins/2D/Paper2D/Source/Paper2D/Private/PaperSpriteVertexBuffer.cpp line 150

TangentBufferData[2 * i + 1] = Vertices*.TangentZ;


TangentBufferData[2 * i + 1] = Vertices*.GetTangentY();

I am not a graphics programmer… so its possible this could be wrong in other ways, but at the moment this seems to have fixed the issue for us.

What’s up with the new hair? Any tutorial? I’m confused, since in documentation you’re claiming it should be available also for 3ds max somehow (with Ornatrix only I suppose), but first image clearly says xgen from Maya, and at this point it stops here… no more explanations whatsoever. Can’t find any info or tutorial on how it works, or what should I download/use, what or how to import/export…
I’m clueless, but completely interested!
Would be awesome if that could work without Ornatrix and with Blender as well… we (indie developers) don’t sh*t money for all these plugins you know, right, right?

Edit: Okay… I red right now how demanding that is, so I give up up that… 30fps with GTX 2080Ti… oh well, I will think about that in the next decade.

Same here, i’m very surprising that this problem is still in the final release

Has anyone even filed bug report about that? (I’ll upvote it if it’s a public one)

Guys does SSGI work with Forward rendering?

Found the same problem. Getting “none” returned when I’m trying to play footsteps audio based on the physical material in a landscape layer. Would like to know how to resolve this.

Anyone else notice this regression?

When hitting reset, it no longer goes back to the number it reset to in floatfields.

The errors regarding the Tangents come far back from 4.19, i personally coded the changes to add the new VertexBuffer and fixed them too, although the pull request was somewhat adapted to the engine, the tangent issue shouldn’t be happening anymore… or at least, it should be different from 4.19 which has the Tangents flipped.
This only happens though, if you use the new Vertex Path, there’s still the DynamicMeshBuilder path, which is incredibly slow, but is the 4.19 to 4.23 version.


@HeavyBullets If you take a paper2D sprite and a static mesh plane and add them to the world while looking through the world normal buffer visualization you will see the discrepancy between the sprite and the plane which did not exist in 4.23 (Almost as if the sprite is Y-Up). The above mentioned fix makes it so they match the world normal direction as expected. Why would the New Vertex Path with corrected tangents show any difference to other meshes world normals? If this new vertex path is correct then how would you get it to work properly with Ambient Occlusion because you’ll also notice that ambient occlusion ends up darkening the objects and creating artifacts. I would be forever happy if you could try these steps and verify that what you setup is correct and what I mentioned as a fix is correct in regards to the world normal visualization and use.

  1. Open a blank UE4 Project
  2. Create a sprite using the default sprite material as the base material
  3. Add sprite to world
  4. Add a static mesh plane to the world
  5. Apply the same material to the static mesh plane
  6. Switch the visualization of the viewport to world normal buffer

Results :The colors for each of the objects do not match when facing the same direction

Expected: The World Normal Colors should match when facing the same direction.

Your time is appreciated!

I downloaded the installer but it gives me an error saying the Epic Launcher is already running…but it’s not? How did you get this new download to work?

Edit: I just realized that I had to hit the plus symbol to see the new 4.24 install, FROM the Epic Launcher I already had installed! Duh!

I came here to say this. My physical meterials for the landscape aren’t working at all. Is there any way to fix this?

On a positive note, SSGI looks and performs a hell of a lot better than in 4.23.

I’ll check it out…
The issue is that, pre 4.24, all tilemaps where broken due to normals pointing to wrong places, and this issue was maintained during 4.19-4.23… which was a big issue.
Most probably the tilemaps are corrected now but the sprites are broken, given that they forgot to account that they need to have their tangents correctly put.

The thing is, the PR i uploaded didn’t have that issue, so its most likely an issue that happened during conversion to the PR that was eventually uploaded to 4.24… given that they wanted to maintain dynamic mesh builder as an option for the time being (hence my PR wasn’t uploaded exactly the same, but instead adapted to a new PR)

Dynamic Mesh Builder was maintained mainly because they wanted to add all this changes to 4.24 but be able to rollback them by changing a config variable
I think its r.SpriteUsesPrebuiltVertexBuffer or something like that… this would give us the chance to detect any bug and basically have the fallback to using previous methods while hotpaches fix all the issues, instead of waiting for 4.25, which was too late for some projects who needed the sprite optimizations really quick.

I’ll check that issue, i still had some other things to fix for hotpatch 1, so i’ll just add this to the list… but in the meantime, be wary that changing tangents on the VertexBuffer will most probably break them on the tilemaps (which was the pre-4.24 issue), which i assume is not an issue if you haven’t discovered by now.


Asset tabs restoring on editor restart, stopped working on 4.24 which was very useful feature for me :confused: I Enabled “Restore Open Asset Tabs on Restart” in editor preferences and still doesn’t work.
I made a video showing this issue:

I added issue to answerhub: Since 4.24 restore open asset tabs on restart, doesn't work - Community & Industry Discussion - Unreal Engine Forums

Hi Everyone,
I just update my 4.23 project to 4.24, all is allright, editor works well , compilation is ok with visual studio 2017, but when I lunch (F5) the game, a crash occured in the WinMain :

Fatal error: [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Core/Private/Internationalization/ICUInternationalization.cpp] [Line: 153] 
ICU data directory was not discovered:

If I reverse my project in 4.23, all is working well.
Any Idea?

Bug, undo doesn’t work for material instance parameter changes, just message popup, value stays unchanged. Recorded clip: https://streamable.com/ggjxz, submited bug report just now.

After switching to 4.24, tessellation on the landscape disappeared. I returned tessellation by unchecking the “default falloff” checkbox in the landscape settings. In 4.23.1 everything worked like that, is that a mistake? Tessellation works, but I want to know why and how it will affect the project as a whole?

Fonts in graph editors seem to stretch in 4.24, is it an intended change or a display bug on my end? Does this happen to anyone else? I have 1920x1200 res, so I’m not sure.
It’s mostly visible on the function names, e.g. the “Return Node” here: Font stretch, 4.23 vs 4.24 - Album on Imgur

Sooooo I loveeee this (sarcastic tone).

If anybody encounters the same issue here is what happens.
For some perfectly valid reason (even more sarcastic), only while building for android, if you try to use PublicAdditionalLibraries.Add(PATHTOLIBRARY) inside your Build.cs file to link against a library the name of the library gets stripped away from the full path that should be used while building. So what you end up having is a path to a folder and unreal will complain that it cannot be found/permission denied. Just to be clear if you have something like this PublicAdditionalLibraries.Add(“Some\Path\To\AFile\File.a”), the path that will be used is “Some\Path\To\AFile”.

The solution is to obviously add another pair of “” followed by something random like this: PublicAdditionalLibraries.Add(“Some\Path\To\AFile\File.a\Random”); at which point the correct path gets used.

:rolleyes::rolleyes::rolleyes: Makes perfectly sense ahahaha (this doesn’t happen in previous versions)

Always use forward slash.