Hot-reload now supports adding/removing new properties/classes/structs/enums!
You will no longer see ‘generated code changes are not supported’ error when doing any structural changes to your C++ code.
Retargeting option is intimidating (the combo box showing next to bone name): only showing this in Skeleton tab
Animation editor window default size has been updated
New Animation Thumbnails
&stc=1
Blueprints
New Editor Only Blueprint
The Blueprint will be an editor-only asset. Outside the editor only a class, generated from a blueprint, will be loaded and used.
In the future the feature will be mandatory. Currently it is optional, because it’s not 100% backward compatible.
Misc.
Editor
Added ENGINE_API to FComponentInstanceDataBase so it could be used in other modules .
Added the ability to flag custom events as CallInEditor and extended the main editor actor details view.
New dynamic parameters now copy there parameter names from pre-existing dynamic parameters.
Removed Paper2D texture:// usage and dependency on Editor Style.
Removed transactions from importing normal maps.
Actors now default to being aligned to Z-up if they are placed on the background.
Refactored StringClassReference to be a subclass of StringAssetReference.
Core
Helper functions have been added to FreferenceCollector to be able to automatically add references to TArrays, TMaps and TSets of UObjects.
Behaviour Tree
Added Behavior Tree execution order index widgets.
Added new widget overlay system for graph panels, designed to allow more flexibility than the current brush-only implementation.
Behaviour Trees are now correctly focused on double-click Correctly called through to parent implementation of FocusWindow().
Blueprints
Added BP-callable accessors for spline mesh component values.
Persona
Changed Zoom in Persona tracks to be based on mouse position instead of track center.
Removed Persona generic delete and created specific UI commands for the notify panel to stop Persona consuming all delete input.
Rendering
Removed scaling when calculating tangents for instanced mesh particles.
Removed LocalToWorld scaling when calculating tangents for skinned meshes.
Added a message warning that precomputed visibility is disabled when in ES2 mode.
Hot-reload now supports adding/removing new properties/classes/structs/enums!
You will no longer see ‘generated code changes are not supported’ error when doing any structural changes to your C++ code.
[/]
Uhm sorry for the question, but you still can’t compile the code within the editor when doing changes to header files, right?
The point is full C++ hot-reload is not availlable in “latest-preview” tag (7d7ee986 on branch master - 28/07/2014 11:28):
It was added to the “master” branch after the “latest-preview” tag in two different commits:
26f250c9 on branch master - by Manuszewski, 29/07/2014 08:43
Hot-reload: support for structural changes for hot-reload (adding/removing properties/classes/structs/enums)
#change Classes will now be defer registered instead of being created during static initialization #change Added class re-instancing after hot-reload #change Changes to UHT to keep track of generated code changes #change Refactored a few CoreUObject delegates to a common namespace struct.
[CL 2235479 by Manuszewski in Main branch]
73fe7a96 on branch master - by Manuszewski, 30/07/2014 17:06
Missing file from Hot-Reload improvements check in
Does that new hot-reload improvements mean that we dont need to restart the editor AT ALL now?, or does it still have a few limits where you need to restart the editor and compile outside it?
If now we dont need to restart, its a HUGE improvement to c++, putting it on line with a scriptng lenguage, and absolutely awesome.
Sorry, the C++ recompiling improvements are actually for 4.5, guys. We branched for 4.4 a week ago, so this week’s engine news post is actually a preview for the following release. If you want to try the new C++ compiling feature this early, you’ll have to compile from GitHub ‘master’ source. By the way, 4.4 is in testing now and the Preview version is available today from the Launcher.
The C++ compiling improvements are indeed awesome though – I spent my entire Saturday working on a little C++ sprite shooter project, and I was able to keep the editor running the entire time! Well, except when my own code crashed, or if I wanted to totally revert an asset. We will try to work on that.
> are we going to see detection of changes to C++ and auto compile in 4.4?
This is something that is not yet implemented but we are going to try to get it done before 4.5. We’re really excited about that workflow.
> Does that new hot-reload improvements mean that we dont need to restart the editor AT ALL now?
Yes. You do not have to restart at all while writing C++ gameplay code.
We’re also working on making C++ compiling even faster for 4.5, especially reducing the time it takes for UnrealBuildTool to startup and check for out of date files, so your incremental compiles will complete very quickly.
Finally, we won’t have to close the editor to recompile the change to headers Well when 4.5 is released anyways. This will make it much faster for prototyping out functionality. The image in the post though looks like just changing a variable value in the constructor which if I am not mistaken is already possible to recompile a value change to a variable. If an image of the header file was there instead showing the new variable then that would show off that it is Hot-Reloading for changes in the header files. This is just me being nit-picky on that image. I am really looking forward to 4.4 and then 4.5 for this Hot-Reloading feature
[=ryanjon2040;109208]
Can you please explain more about this feature?
[/]
It’s a move towards making the Blueprint an editor-only asset, since it is ‘source code’, and the generated class is the actual meaningful runtime element. By itself, this is a very small load time / memory optimization in cooked games, but it will enable a couple of desirable new features once we’ve switched over to it, such as being able to edit the defaults of an inherited component that was added in an ancestor blueprint, and being able to potentially get rid of the _C suffix on the generated class, reserving the ‘good name’ for the class and making the BP asset use an anonymous inner name.
[= Fricker;109001]
If you want to try the new C++ compiling feature this early, you’ll have to compile from GitHub ‘master’ source.
[/]
Hi
Will the dependency packages that were released for the 4.4 preview be compatible for building the master with the c++ compiling? Would be nice to get another preview that has this in. Or am I misunderstanding and one of the released previews has it included?
[=dokipen;109225]
Will the dependency packages that were released for the 4.4 preview be compatible for building the master with the c++ compiling?
[/]
I did not try this combination, instead I used the ‘latest-preview’ dependency zips to compile ‘master’ successfully: to reduce risks, I only get master updated up to the second ‘hot-reload’ commit that I reference in my previous post.
Everything went smoothly, although I did not have time to test this specific feature yet!
Edit:
[=dokipen;109225]
Or am I misunderstanding and one of the released previews has it included?
[/]
No, as stated before, there is currently no preview with this feature.
Everything went smoothly, although I did not have time to test this specific feature yet!
[/]
So did the same thing and build up to this commit point. The build worked but couldn’t successfully compile a project. Had a couple of issues. First was that the generated xcode project only had schemes which would compile the whole engine. So compiling project code only wasn’t an option.
Second issue was that the compile from editor started but was getting errors in code (couldn’t find a reference to GEngine, as I was trying to log something to the screen)
Also the editor seemed buggy with mouse clicks (a lot of buttons/UI elements required to clicks to register, not sure if slate is a bit buggy at this stage). I’ll keep a watch on the commits and see if anything pops up which looks like its worth compiling again.
Hi, just to let you know, I had none of those issues with Visual (under Windows).
Compiling without restarting the Editor works for anything I tried (adding variable and function members), really nice improvement, thanks a lot for this Epic!
Compile time is much longer though, and you really have to hide the Editor to get full CPU power for compilation.
The C++ compiling improvements are indeed awesome though – I spent my entire Saturday working on a little C++ sprite shooter project, and I was able to keep the editor running the entire time! Well, except when my own code crashed, or if I wanted to totally revert an asset.
[/]
Hee hee! Thanks for sharing !
[= Fricker;109001]
We’re also working on making C++ compiling even faster for 4.5, especially reducing the time it takes for UnrealBuildTool to startup and check for out of date files, so your incremental compiles will complete very quickly.
–
[/]
Woohoo!
I was actually going to mention that part about the initial file check, but sounds like you have this all sorted out already!