Difficulties when packing to HTML5

Good day,

in my company we are trying to create a web tool through Unreal. Given the lack of support from 4.23, we are testing in 4.24 (since this version has a GitHub where the necessary tools for the pack to web are offered, and is the one in which the Variant Sets are integrated).

After successfully following the instructions and managing to make several successful tests (we managed to get the first and third person templates to the web without any problem), we have tried to pack a first phase of our project into the web, just to see if it works. Result? An error, and one that we don’t even know where to begin with.

Browser: Chrome

Any help? It’s hard to understand why the first two projects in TP and FP worked, but then when testing ours, that is the result. We have also tried to build the architectural visualisation template into the web, just for testing, and we get exactly the same error.

Could it have something to do with the size (500 Mb), or with the camera sequences…?

Any help or guidance, no matter how small, is appreciated.

Any aditional info needed, just ask.

Hey,

Sadly, I have no knowleadge about html5 builds, but just by looking at the error window, this looks like a runtime crash or failed check at the very beggining of Viewport lifetime.
Probably, the latest Log should contain more useful info about this. Are you able to get it? and posibly share it here?

Also, it would be nice, if this error message was posted as a copy-paste snipped.
It’s hard to read and search anything basing on screenshot.

My bad, here is the error message

Uncaught Error at 9589578 (blob:http://localhost:8000/b74d84d4-cc2a-444e-a39d-de29a2985ec2:2530:19) at _emscripten_asm_const_iii (blob:http://localhost:8000/b74d84d4-cc2a-444e-a39d-de29a2985ec2:3198:26) at FSceneView::VerifyMembersChecks() const (wasm://wasm/143cca56:wasm-function[96885]:0x2310529) at FSceneView::FSceneView(FSceneViewInitOptions const&) (wasm://wasm/143cca56:wasm-function[96881]:0x230fc10) at ULocalPlayer::CalcSceneView(FSceneViewFamily*, FVector&, FRotator&, FViewport*, FViewElementDrawer*, EStereoscopicPass) (wasm://wasm/143cca56:wasm-function[89056]:0x1fe38c2) at UGameViewportClient::Draw(FViewport*, FCanvas*) (wasm://wasm/143cca56:wasm-function[86204]:0x1ec1c5c) at non-virtual thunk to UGameViewportClient::Draw(FViewport*, FCanvas*) (wasm://wasm/143cca56:wasm-function[86209]:0x1ec4501) at FViewport::Draw(bool) (wasm://wasm/143cca56:wasm-function[101227]:0x252d5f6) at FSceneViewport::ResizeViewport(unsigned int, unsigned int, EWindowMode::Type) (wasm://wasm/143cca56:wasm-function[98757]:0x2436f9b) at FSceneViewport::ResizeFrame(unsigned int, unsigned int, EWindowMode::Type) (wasm://wasm/143cca56:wasm-function[98753]:0x243678a)

My attempts to search for different parts of the error have been fruitless.

And the issue is that, when I click on toggle log, nothing happens. Or did you mean the UE log when packing the project?

I ment - the runtime Log of your game.
As I said I’m not sure how html5 build is structurized, but if it’s a Development Build, it should dump the Logs.
Logs are usually under /Saved/Logs/ directory.


btw, this is a callstack from this error:

[UNKNOWN]
_emscripten_asm_const_iii
FSceneView::VerifyMembersChecks() const
FSceneView::FSceneView(FSceneViewInitOptions const&)
ULocalPlayer::CalcSceneView(FSceneViewFamily*, FVector&, FRotator&, FViewport*, FViewElementDrawer*, EStereoscopicPass)
UGameViewportClient::Draw(FViewport*, FCanvas*)
non-virtual thunk to UGameViewportClient::Draw(FViewport*, FCanvas*)
FViewport::Draw(bool)
FSceneViewport::ResizeViewport(unsigned int, unsigned int, EWindowMode::Type)
FSceneViewport::ResizeFrame(unsigned int, unsigned int, EWindowMode::Type)

I bet the FSceneView::VerifyMembersChecks() const causes this issue.

It seems to be this function:
SceneView.cpp

bool FSceneView::VerifyMembersChecks() const
{
	bool bIsTemporalAccumulation = IsTemporalAccumulationBasedMethod(AntiAliasingMethod);

	if (PrimaryScreenPercentageMethod == EPrimaryScreenPercentageMethod::TemporalUpscale)
	{
		checkf(bIsTemporalAccumulation, TEXT("ScreenPercentageMethod == EPrimaryScreenPercentageMethod::TemporalUpscale requires TAA, TSR or custom Temporal Upscaler"));
	}

	if (bIsTemporalAccumulation)
	{
		checkf(State, TEXT("TemporalAA requires the view to have a valid state."));
	}

	return true;
}

So basically one of these checks is failing and causing the crash.
As you can see, this function does some validation about Anti Aliasing (I’m not sure how it is suppoused to work though).

Just guessing right now, have you tried to change any Anti Aliasing option?
You should probably try to turn it off by default and check if this issue still occurs.


Another question:

Does it mean that You are using custom Engine build with html5 support?
If yes could You provide a link to it?

1 Like

PC_Ortosan_424.log (739.9 KB)

That is the latest log.

Wow… That would make a lot of sense. That’s why the basic FP and TP scenes are being packed into the web without any problem, while the Archviz scene and our scene, which is a product configurator, which are more aesthetically developed and have AA activated, give problems.

Perfect, it will be the first thing I’ll look at then, the AA options of the scene itself. Hopefully that is! Thanks!

Sure, that is the general documentation with the links to the instructions. Just link your accounts and you should have acces to the repo with the custom Unreal with HTLM5 setup.

1 Like

I’m pretty bad at reading Logs, but this one seems to be an Unreal Editor Log, not the Log of your Game/App build. For the proper Log, you should look in the directory of where the build is stored, not the Engine.


I hope, changing AA will fix this issue. If not, then probably there is other setting related to AA that causes it.

As I remember html5 platform is limited when it comes to graphic settings. Probably there are more options that would have to be turned off.

Well, at least…

it opened!

I switched the temporal Anti-aliasing shown in the function you sent to no Anti-aliasing and now it’s working.

I don’t completely understand it, since in the First Person and TP project, they also work with temporal Anti-aliasing and they don’t get any error. But oh well, since now it’s not giving any kind of error I’m not going to complain.

And yep, sorry about the log, when packing to HTML5 you don’t get any Saved/Logs, as you do when packing to Windows for example.

Thank you so much for the help!

1 Like