Data Handler

Documentation for the Osero Suite: Render Results Screen update 1.1 (5.2+)

A Render Results Screen Data Handler allows a user to create an automated task at the end of a render to process the render data in a way other than the Render Results Screen.

Setting a Data Handler

The Data Handler class can be set in the Project Settings, along with an option to disable the Render Results Screen (see here). When a render finishes in the Movie Render Queue, the data will be sent to this class to process in the user-defined way.

Blueprints

To create a new Data Handler, right-click in the Content Browser or click +Add. Select Blueprint Class.

Under All Classes select Osero Suite: Render Data Handler.

When the new Data Handler is opened, it will be empty.

Under FUNCTIONS, click Override and select Handle Data.

This will add a new event to this Blueprint called Handle Data.

The Result Data pin can be split into the data from the render and used as required.

The Job Data struct can be split into the data from the Job and used as required.

The Shot Data struct can be split into the data from the Shot and used as required.

There also a number of functions available under the Osero Suite: Render Results Screen category to help with interpreting this data.

C++

To create a new Data Handler, add a new C++ class of type OS_RRS_DataHandler.

The Data Handler Class is in an Editor Module, and so the recommended place for a new Data Handler Class is in another Editor Module.

Add Blutility, MovieRenderPipelineCore, and OS_RRS_Editor to the Module's Build.cs file.

PrivateDependencyModuleNames.AddRange(
	new string[]
	{
		...
		"Blutility",
		"MovieRenderPipelineCore",
         	"OS_RRS_Editor",
         }
);

Override HandleData_Native in the new UOS_RRS_DataHandler to receive the render data once a render has finished.

/* Header File */
UCLASS()
class PROJECT_EDITOR_API UNewDataHandler : public UOS_RRS_DataHandler
{
	GENERATED_BODY()
	
protected:
	virtual void HandleData_Native(FOS_RRS_ResultData ResultData) override;
};
/* Cpp File */
#include "NewDataHandler.h"

void UNewDataHandler::HandleData_Native(FOS_RRS_ResultData ResultData)
{

}

In this new function, the data can then be used as required. The main classes and structs of relevance are:

Example

There is an example Data Handler located here: Osero Suite: Render Results Screen Content > Example > HandleData_SaveToDataAsset. This is a simple little Blueprint that takes the input data and saves it to a new Data Asset.

Last updated