Engine news 8/21

Engine News

New Features
**
Hot-reload Improvements**

Unreal Engine now automatically “hot reloads” your C++ gameplay code after you compile in Visual !

img1.jpg&stc=1

No need to shutdown the editor while you’re working. Just compile your gameplay code normally from Visual or Xcode, and the engine will apply your C++ changes instantly.

Rendering
**
New: OpenEXR Screenshots**

OpenEXR image support has now been added into the high resolution screen shot code!
This enables full 16 bit colour depth (HDR) export of all of available intermediate rendering stages.

img2.jpg&stc=1

img3.jpg&stc=1

Clicking the capture button writes out a bunch of intermediate targets, including scene color which is of particular interest when saved in a HDR format.
The scene color image contains the full HDR source (pre tone mapping) which you can use in Photoshop or other HDR capable tools.
Here is an example capture from the realistic rendering project in Photoshop:

&stc=1

In addition to scene color, the HDR format allows us to create an image containing the full scene depth (in unreal units):

img5.jpg&stc=1

Persona
**
Anim Notify Marquee Selection**

A new Marquee selection feature has been added to the animation notify panel in Persona!
It is analogous to the graph panel marquee so unmodified it replaces the current selection, modified with Shift it will add to the current selection and modified with Control will remove from the current selection.

img6.jpg&stc=1

UnrealHeaderTool
**
C++11 Enum Class Support**

C++11’s enum class is now supported within the UnrealHeaderTool!
You can write something like this:

img7.jpg&stc=1

… and it will be treated in the same way as if you had written this:

img8.jpg&stc=1

This change allows UEnums to be forward-declared, and thus header dependencies reduced.
However, you cannot put a UENUM() decorator on a forward declaration and UHT still needs to have parsed the enum before you can create a UPROPERTY of it, but at least the native code should be able to take advantage of forward declarations.
Note: Only uint8 is currently supported, which isn’t a limitation of UHT but rather of the property system and enums being tied to UByteProperty.

**Misc.
**
Editor

  •      Exposed several Blueprint nodes to the interactive tutorial system.
    
  •      Tutorial system can now open the editor for any highlighted widget.
    
  •      Blueprint nodes can now be dynamically highlighted in tutorials.
    
  •      Changed the material Custom Node to use a multi-line edit box to type code into.
    

**
Blueprints
**

  •      Added editor exposed configuration of script max loop iterations count.
    
  •      Adds range clamping to the maximum loop iteration setting and updates the script core on change in the editor.
    

Are these changes in the 4.4.1 preview?

No, the weekly engine news are typically of things that have happened in the main branch in the last week. They’re a preview of things to come / stuff you can play around with now if you are on a GitHub build.

The only things new in the 4.4.1 hotfix are listed in the announce post for that release (hotfixes will generally never include new features, only fixes for critical or blocking issues that we or customers have found).

Cheers,
Noland

These changes look great :slight_smile: Looking forward to the Hot-reload improvements.

can’t wait to get my hands on the next promoted build :slight_smile: even better implementation of hot reload (than was shown on the stream!)

[= Noland;123114]
No, the weekly engine news are typically of things that have happened in the main branch in the last week. They’re a preview of things to come / stuff you can play around with now if you are on a GitHub build.

The only things new in the 4.4.1 hotfix are listed in the announce post for that release (hotfixes will generally never include new features, only fixes for critical or blocking issues that we or customers have found).

Cheers,
Noland
[/]

The last binary dependencies drop was for 8/12 so how can we build these releases?

[]
Unreal Engine now automatically “hot reloads” your C++ gameplay code after you compile in Visual !

No need to shutdown the editor while you’re working. Just compile your gameplay code normally from Visual or Xcode, and the engine will apply your C++ changes instantly.
[/]

YES! Finally it’s done! :smiley:
Awesome updates!

In the “Introduction to C++” tutorial by Lauren Ridge, she uses the following enum:

enum class ETutorialCodePlayState : short
{
EPlaying,
EGameOver,
EUnknown
};

From my admittedly novice perspective, it looks like this feature has been in UE4 for a while. I also note that she used “short” as the data type, which I believe is an int16, rather than a uint8. I asked about this departure from the published Coding Standard in the tutorial’s forum but no one was able to answer. Her format (and now yours) is definitely less verbose, so can you clarify for me what is new? For a C++ noob, this is still a little confusing. Thanks.

Dean

[=Dijon;123410]
In the “Introduction to C++” tutorial by Lauren Ridge, she uses the following enum:

enum class ETutorialCodePlayState : short
{
EPlaying,
EGameOver,
EUnknown
};

From my admittedly novice perspective, it looks like this feature has been in UE4 for a while. I also note that she used “short” as the data type, which I believe is an int16, rather than a uint8. I asked about this departure from the published Coding Standard in the tutorial’s forum but no one was able to answer. Her format (and now yours) is definitely less verbose, so can you clarify for me what is new? For a C++ noob, this is still a little confusing. Thanks.

Dean
[/]

The enum class syntax was introduced in C++11. It gives you the benefit of scoped enums (like you get in C# or Java) without having to manually scope them within a namespace. It also allows you to specify the storage type for the enum which is super rad because if you only have 5 values then you don’t need a full 32 bits.

So in short it simply allows you to type less and get more.

As for using a short in the example, that will be truncated to a byte by the serialize I imagine.

/

Thanks, . I’m still curious why this is being touted as something new that UE4 “will” support in a future version, when it already appears to be supported. Am I missing something subtle?

Dean

I think the new thing is that you can use them with the ENUM() macro.

Hi Parkar. That’s probably it, thanks.

Dean

Is the openEXR 16 bit format the half float? Does Unreal do all of it’s rendering in half float or full 32-bit?

[]

Hot-reload Improvements

Unreal Engine now automatically “hot reloads” your C++ gameplay code after you compile in Visual !

[/]

Wow, does it mean that we can do absolutly any kind of change in project code and we do not need to shutdown editor ?

Thanks for the iteration limit option! :slight_smile:

Love the new hotload improvements. It’s getting sexier every update!

C++11 addition is nice too! Looks way cleaner.

Does the Hot Reload allow for changes to header files, declaring new functions & variables etc?

Can EXR format be used when recording an image sequence? And any buffer like Zdepth can be saved as layers in the EXR file?

[=;127709]
Does the Hot Reload allow for changes to header files, declaring new functions & variables etc?
[/]

Yes, you can now add or remove anything from source and header files, so standard C++ as well as UCLASS, UFUNCTION and UPROPERTY!

Hot Reload changes are totally Epic!