Why are asset files so big?

I’m working with highly detailed static meshes (> 1 000 000 triangles), and I’m a bit concerned by the asset file sizes in my final build. My source material is compressed OpenCTM files, I convert them to Collada with ctmconv then FBX with Blender, then I import them in UE 4.6.1. Here is an example with a 1 500 000 triangles mesh:

  • mesh.ctm: 6.8 MB
  • mesh.fbx: 36 MB
  • mesh.uasset: 302 MB

This is a static mesh with two materials and no LODs. I use several meshes like this so in the end my shipping build is 3 GB, which is a bit overkill for only static models.

Why does geometrical data that can take as few as 6.8 MB end up taking 302 MB in UE?
Is there a way to compress these assets, other than using compressed paks or zipping the final build?

Hi Romanito,

What platform are you publishing to? If you are developing for mobile platforms, your meshes greatly exceed the max amount of triangles as described here in our documentation: (Roughly 64K)

https://docs.unrealengine.com/latest/INT/Platforms/Mobile/Content/index.html

As for 1.0 to 1.5 million tris for static meshes, this is virtually unheard of in games due to the effect on rendering frames per second. Typically models of that size are used to produce normal maps that are then applied to lower poly models for the illusion of great detail.

To give you an idea of polycounts used in AAA titles, a main character runs between 65K-100K max.

As for the difference in sizes between the ctm, fbx, and uasset file sizes. The ctm is raw triangle data with some UV data as opposed to the uasset that contains applied texture, collision, pivot point, -and a lot of other data- that makes it game compatible. The fbx falls somewhere in between.

.

1 Like

Hi , thanks for your answer.

I made a model viewer for space ships taken from Star Citizen. The program only has to handle those static models, but they are very big nevertheless. It took a long time to import all the models in UE one by one. Anyway this has become even more a problem now that I’m trying to upgrade my project from UE 4.6 to UE 4.9. When I open the project in UE 4.9, the editor seems to try reimporting all the models and the process never completes.

So this project has become too big to handle, I think I’ll move to Unity. It produces smaller files, is faster to import models and allow assets packages to be deployed independently.

There’s a couple of ways to approach this. One, (if you didn’t do it this way) open a Copy of your 4.6 project in 4.9 without overwriting the original. Or two, create a new 4.9 project and migrate your assets. I feel your assets may be too large, as I stated before, but if you feel you will have less problems, in your case, with Unity, then it’s understandle if you make the switch.

Hopefully, though, you will be able to take advantage of UE4’s other powerful features in future projects.

Thanks for the feedback.

Are there any news about this issue? Our game’s Android package size is 115MB and nearly 50MB of it only mesh assets.

Huge package size effects mobile games download rates very badly.

Are you still getting large package sizes after following the following guidelines on this link Reducing Packaged Game Size?

Is there anything unclear in the documentation you would like clarified?

Yes we did all of these and already saved lots of space. But we can’t find a solution for meshes. 10k vertices costs nearly 1.9MB, this is unacceptable for a mobile game. Also, cooked mesh assets are unable to be compressed. Compressed mesh sizes are half of this but still too big.

Are the 10K vertices for a static or skeletal mesh asset, because a skeletal mesh mesh is going to be more expensive in terms of size… Also, 10K is a pretty high count for any mobile asset… I’d say on average, playable characters on mobile should run up to 7.5K (triangles) max and about 3K (triangles) max for enemies. *Triangle count is typically the most accurate count as graphics hardware can generally only draw triangles.

1 Like