Better loading screens: Scaleform GFx displaying percent loaded possible?

There are two things I’d like to implement and I’m not sure that either is possible without serious digging into native code. I would like to…

  1. Load an interactive Scaleform movie instead of a pre-rendered Bink movie during level transitions
  2. Get the load progress from the game and use that to update a progress bar in the Scaleform movie

I tried putting some Kismet in my TransitionMap level to load a GFx movie, but that didn’t appear to have any effect. Any ideas when and where I might try opening the movie, either in Kismet or code?

The best thing I found for checking out level loading progress is from the save game state gem. There’s this code:


	for (i = 0; i < WorldInfo.StreamingLevels.Length; ++i)
	{
		// If any levels still have the load request pending, then return
		if (WorldInfo.StreamingLevels*.bHasLoadRequestPending)
		{
			return;
		}
	}

But that only tells us when there are still levels waiting to be loaded. The StreamingLevels array contains objects from the LevelStreaming class, which doesn’t have any variables for load progress. But is there somewhere else that might give us that information?

So I’ve realized I can open a GFx movie when my persistent level loads, and then I can close the movie when all of the streaming levels are done loading. I can tick off progress when a streaming level finishes loading, but I probably have no way of knowing how close any individual level is to finishing.