What is Uber Graph or Uber Graph Frame?

Hi,

I am new to UE, and recently reading code of blueprint, I encounter this uber graph, but I find hard to understand this concept. It seems not a event graph or a function graph, and I cannot see a UI representation, if any, in the bp editor.

In code, I got this in UBlueprintGeneratedClass::CreatePersistentUberGraphFrame() method:

uint8* FrameMemory = NULL;
const bool bUberGraphFunctionIsReady = UberGraphFunction->HasAllFlags(RF_LoadCompleted); // is fully loaded
if (bUberGraphFunctionIsReady)
{
	INC_MEMORY_STAT_BY(STAT_PersistentUberGraphFrameMemory, UberGraphFunction->GetStructureSize());
	FrameMemory = (uint8*)FMemory::Malloc(UberGraphFunction->GetStructureSize());

	FMemory::Memzero(FrameMemory, UberGraphFunction->GetStructureSize());
	for (FProperty* Property = UberGraphFunction->PropertyLink; Property; Property = Property->PropertyLinkNext)
	{
		Property->InitializeValue_InContainer(FrameMemory);
	}
}

It looks like all it does is just to initialize the “tail” property’s value on the heap, and point a uber graph to that piece of memory. Why would we need this? It makes little sense to me…

Please leave comments or pointers of related reading stuff, thanks!

1 Like