Unreal Engine 4.24 Released!

Is the non-volumetric cloud material that Ryan Brucks showed off in the last livestream available somewhere?

Not talking about the volumetric material that he said was on GitHub, I mean the unlit material he described as faking lighting with a “bump-offset type shadow”…

Timestamped (1:06:06) Link

Is there some information about how to set up Sparse Class Data somewhere?

Does anybody know why bSingleLayoutPass in the Performance category was removed from the widget ScaleBox in 4.24? I need it so my frame rate will go above 15fps.

So SSGI does not work with Forward rendering correct?

Horror of horrors… Can’t undo changes in material instances. The message appears but the values don’t go back.

I’m also having no success trying to do a Chaos build of 4.24.0. I’ve downloaded the 4.24.0-release branch via Git, and added


bCompileChaos = true;

to Engine/Source/*.Target.cs, but I’m getting the failure below. I’m trying to make an installed build using:


Engine\Build\BatchFiles\RunUAT.bat BuildGraph -target="Make Installed Build Win64" -script=Engine/Build/InstalledEngineBuild.xml -clean -set:WithWin64=true -set:WithLinux=true -set:WithServer=true -set:HostPlatformDDCOnly=false -set:WithWin32=false -set:WithMac=false -set:WithAndroid=false -set:WithIOS=false -set:WithTVOS=false -set:WithLinuxAArch64=false -set:WithPS4=false -set:WithXboxOne=false -set:WithSwitch=false -set:WithLumin=false -set:WithLuminMac=false -set:WithHoloLens=false

It looks like it’s trying to mix Chaos and PhysX types, so I thought perhaps Chaos isn’t fully integrated in this release and not meant to work, but then there are references to some new Chaos features in the 4.24 release notes.


  ** For UE4Editor-Win64-DebugGame + UE4Editor-Win64-Development
  Module.GeometryCollectionEngine.cpp
  C:/UE/UnrealEngine/Engine/Source/Runtime/Experimental/GeometryCollectionEngine/Private/GeometryCollection/GeometryCollectionComponent.cpp(1948): error C2440: 'initializing': cannot convert from 'FPhysScene *' to 'Chaos::FPhysScene_ChaosInterface *'
  C:/UE/UnrealEngine/Engine/Source/Runtime/Experimental/GeometryCollectionEngine/Private/GeometryCollection/GeometryCollectionComponent.cpp(1948): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
  C:/UE/UnrealEngine/Engine/Source/Runtime/Experimental/GeometryCollectionEngine/Private/GeometryCollection/GeometryCollectionComponent.cpp(1949): error C2027: use of undefined type 'Chaos::FPhysScene_ChaosInterface'
  c:\ue\unrealengine\engine\source\runtime\experimental\chaossolvers\public\PBDRigidsSolver.h(64): note: see declaration of 'Chaos::FPhysScene_ChaosInterface'
  C:/UE/UnrealEngine/Engine/Source/Runtime/Experimental/GeometryCollectionEngine/Private/GeometryCollection/GeometryCollectionComponent.cpp(1952): error C2039: 'GetScene': is not a member of 'FPhysScene_PhysX'
  C:\UE\UnrealEngine\Engine\Source\Runtime\Engine\Public\Physics/PhysicsInterfaceUtils.h(11): note: see declaration of 'FPhysScene_PhysX'
  Module.Engine.10_of_45.cpp
  C:\UE\UnrealEngine\Engine\Source\Runtime\PhysicsSQ\Public\SQVerifier.h(286): error C2664: 'uint32 FindFaceIndex(const FHitLocation &,const FVector &)': cannot convert argument 1 from 'ChaosInterface::FSweepHit' to 'const FHitLocation &'
  C:\UE\UnrealEngine\Engine\Source\Runtime\PhysicsSQ\Public\SQVerifier.h(286): note: Reason: cannot convert from 'ChaosInterface::FSweepHit' to 'const FHitLocation'
  C:\UE\UnrealEngine\Engine\Source\Runtime\PhysicsSQ\Public\SQVerifier.h(286): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
  C:\UE\UnrealEngine\Engine\Source\Runtime\PhysicsSQ\Public\SQVerifier.h(286): error C2789: 'FaceIdx': an object of const-qualified type must be initialized
  C:\UE\UnrealEngine\Engine\Source\Runtime\PhysicsSQ\Public\SQVerifier.h(286): note: see declaration of 'FaceIdx'
BUILD FAILED:  failed, retries not enabled:
AutomationTool exiting with ExitCode=1 (Error_Unknown)
BUILD FAILED

I can also confirm that I cannot build with Chaos enabled.

Can’t wait to test new features!

I built the engine from source without Chaos enabled.
I then compiled with bCompileChaos=true;
I have this error

1> [308/2734] Module.GeometryCollectionEngine.cpp 1>Z:/Unreal Engine Repository/4.24/Engine/Source/Runtime/Experimental/GeometryCollectionEngine/Private/GeometryCollection/GeometryCollectionComponent.cpp(1948): error C2440: 'initializing': cannot convert from 'FPhysScene *' to 'Chaos::FPhysScene_ChaosInterface *' 1> Z:/Unreal Engine Repository/4.24/Engine/Source/Runtime/Experimental/GeometryCollectionEngine/Private/GeometryCollection/GeometryCollectionComponent.cpp(1948): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast 1>Z:/Unreal Engine Repository/4.24/Engine/Source/Runtime/Experimental/GeometryCollectionEngine/Private/GeometryCollection/GeometryCollectionComponent.cpp(1949): error C2027: use of undefined type 'Chaos::FPhysScene_ChaosInterface' 1> z:\unreal engine repository\4.24\engine\source\runtime\experimental\chaossolvers\public\PBDRigidsSolver.h(64): note: see declaration of 'Chaos::FPhysScene_ChaosInterface' 1>Z:/Unreal Engine Repository/4.24/Engine/Source/Runtime/Experimental/GeometryCollectionEngine/Private/GeometryCollection/GeometryCollectionComponent.cpp(1952): error C2039: 'GetScene': is not a member of 'FPhysScene_PhysX' 1> Z:\Unreal Engine Repository\4.24\Engine\Source\Runtime\Engine\Public\Physics/PhysicsInterfaceUtils.h(11): note: see declaration of 'FPhysScene_PhysX'

I cant find anyway to add a wind to GroomHair???

Answering partially to what i noticed: there’s a new behaviour for Nvidia GPU owners, while previous engine version were not impacted by nvidia control panel settings (i had vsync forced ‘on’, yet my editor framerate was at 120fps).

From 4.24 Nvidia control panel settings are effective in editor viewports, as well as PIE.

I’ll see if it fixes my Editor crashes, but it seems i was forcing triple buffering and vsync in editor.

Hello UE team,
I love the all things you are made. But in somehow I feel the new UE4.24 kind slower than before!

Great job man!

Oh yes, I completely forgot I did it, now it work, thanks! :stuck_out_tongue:

Hiiiiiiiii!!!

Hopefully, somebody can help me with this as for the life of me I can’t figure out what it could be :rolleyes:

So I’m updating my Email Plugin for releasing the 4.24 version on the marketplace and it builds fine and I can package for Windows no problem. When I try to package for android I get this:

C:/NVPACK/android-ndk-r14b/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/gcc/aarch64-linux-android/4.9.x/…/…/…/…/aarch64-linux-android/bin\ld: cannot find C:/Users/symon/Desktop/EmailPluginDev/Plugins/EmailPlugin/Source/ThirdParty/lib/Android/arm64-v8a: Permission denied
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)

Now obviously the plugin links to a static library which works fine for 4.21 to 4.23 but in 4.24 it seems to have some issues with getting permission to access the folder in which the android static library lives. I tried looking into the following:

  • Making sure the AndroidWorks doesn’t need to be updated
  • Build for various SDK versions (no luck)
  • Checking read-only permissions on all the plugins subfolders and files

4.24 also prompts you with these messages while building:
[Upgrade] Using backward-compatible build settings. The latest version of UE4 sets the following values by default, which may require code changes:
[Upgrade] bLegacyPublicIncludePaths = false => Omits subfolders from public include paths to reduce compiler command line length. (Previously: true).
[Upgrade] ShadowVariableWarningLevel = WarningLevel.Error => Treats shadowed variable warnings as errors. (Previously: WarningLevel.Warning).
[Upgrade] PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs => Set in build.cs files to enables IWYU-style PCH model. See IWYU | Unreal Engine Documentation. (Previously: PCHUsageMode.UseSharedPCHs).
[Upgrade] Suppress this message by setting ‘DefaultBuildSettings = BuildSettingsVersion.V2;’ in EmailPluginDev.Target.cs, and explicitly overriding settings that differ from the new defaults.

And I already tried to see if any of the above makes a difference and no luck yet.

Does anyone have any idea what this could be?

Same messages here, after creating a new blank C++ template in 4.24 and trying to compile it.

I don’t want to suppress this message. Instead, I would like to upgrade and use the new build settings.

So, what are we supposed to do for migrating to Build Settings V2?

So the message itself isn’t an issue at all for me. It just lets you know that under the new BuildSettingsVersion those values aren’t set to their usual default values and are now set to different default values from previous versions.

As the message points out you can set DefaultBuildSettings inside your Project Target.cs file to BuildSettingsVersion.V2 and it will hide those messages. I could hide them successfully but it doesn’t solve my android packaging issue with linking a static library.

I’m not entirely sure but as far as I understand the new build settings are just those new default values or maybe I’m completely wrong :rolleyes:

Hi Everyone - Have just installed 4.24 - I cannot get the Megascans live link plugin to install - I’m getting the classic ‘could not be compiled / python’ error messages. Will the plugin be built in eventually now that Epic has Megascans?

I guess it may be that Quixel need to update Bridge in the next few days to be compatible with 4.24 - If anyone know how to get it to work in the meantime that would be great???

It seems that Landscape with layers does not return Physical Material from trace hit. I have a project in 4.23, and there landscape returns Physical Material appropriate to trace hit location. However, in 4.24 the trace hits Landscape and it is identified correctly, but the Physical Material is always None.

This version is cursed. Why am I seeing this? VS2017, happens only in Shipping config.


G:/myue/Engine/Source/Programs/SlateViewer/Private/SlateViewerApp.cpp(60): error C3861: SummonPerfTestSuite: identifikátor se nenasel
G:/myue/Engine/Source/Programs/SlateViewer/Private/SlateViewerApp.cpp(65): error C3861: RestoreSlateTestSuite: identifikátor se nenasel
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(210): error C2504: FStatsReadFile: Není definovaná základní (base) trída
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(211): error C2059: chyba syntaxe: <
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(211): error C2238: neocekávané tokeny pred: ;
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(236): error C2065: FStatMessage: nedeklarovany identifikátor
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(236): error C2923: TArray: FStatMessage není platny argument typu sablona pro parametr InElementType.
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(236): error C3668: FNewStatsReader::ReadStatsFrame: Metoda se specifikátorem prepsání override neprepsala zádné metody base class.
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(279): error C3668: FNewStatsReader::PreProcessStats: Metoda se specifikátorem prepsání override neprepsala zádné metody base class.
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(227): error C2614: FNewStatsReader: Neplatná inicializace clenu: FStatsReadFile není základní (base) trída ani clen.
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(232): error C3861: SetHistoryFrames: identifikátor se nenasel
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(250): error C2065: FRawStatStackNode: nedeklarovany identifikátor
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(250): error C2146: Chyba syntaxe: Chybí ; pred identifikátorem Stack.
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(250): error C2065: Stack: nedeklarovany identifikátor
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(251): error C2065: FStatMessage: nedeklarovany identifikátor
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(251): error C2923: TArray: FStatMessage není platny argument typu sablona pro parametr InElementType.
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(251): error C2133: NonFrameStats: neznámá velikost
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(251): error C2512: TArray: Není dostupny zádny odpovídající konstruktor default.
G:\myue\Engine\Source\Runtime\Core\Public\Containers/Array.h(279): note: viz deklarace: TArray
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(252): error C2065: State: nedeklarovany identifikátor
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(252): error C2065: Stack: nedeklarovany identifikátor
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(254): error C2039: GenerateCycleGraphs: Není clenem FServiceConnection.
g:\myue\engine\source\developer\profilerclient\private\ProfilerClientManager.h(28): note: viz deklarace: FServiceConnection
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(254): error C2065: Stack: nedeklarovany identifikátor
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(255): error C2039: GenerateAccumulators: Není clenem FServiceConnection.
g:\myue\engine\source\developer\profilerclient\private\ProfilerClientManager.h(28): note: viz deklarace: FServiceConnection
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(295): error C2275: FStatsReader: neplatné pouzití tohoto typu jako vyrazu
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(211): note: viz deklarace: FStatsReader
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(295): error C2039: Create: Není clenem `global namespace'.
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(295): error C3861: Create: identifikátor se nenasel
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(299): error C2039: ReadAndProcessAsynchronously: Není clenem FNewStatsReader.
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(209): note: viz deklarace: FNewStatsReader
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(446): error C2039: RequestStop: Není clenem FNewStatsReader.
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(209): note: viz deklarace: FNewStatsReader
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(448): error C2039: IsBusy: Není clenem FNewStatsReader.
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(209): note: viz deklarace: FNewStatsReader
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(451): error C2039: GetProcessingStageAsString: Není clenem FNewStatsReader.
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(209): note: viz deklarace: FNewStatsReader
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(451): error C2039: GetStageProgress: Není clenem FNewStatsReader.
G:/myue/Engine/Source/Developer/ProfilerClient/Private/ProfilerClientManager.cpp(209): note: viz deklarace: FNewStatsReader