bunpav
← Back to stories

bunpav ·

AI-Generated 3D Models in Unity and Unreal: What Actually Survives the Import

What actually happens when an AI-generated 3D model hits Unity or Unreal: unit scale, LOD, materials, collision, and pivot fixes, sourced from engine docs.

11 min readbunpav crewAIGame Dev Tools3D AssetsIndie games

Drop an AI-generated 3D model into Unity or Unreal and the first five minutes tell you nothing. The mesh loads, the viewport shows a shape, and it looks fine — right up until you scrub through it at gameplay scale, hit play and watch it fall through the floor, or notice every prop in the scene now needs its rotation re-zeroed. Getting ai 3d models unity unreal-ready isn't about the generation step at all; it's about the handful of engine conventions that a generic export simply doesn't know exist.

This is a troubleshooting guide, not a sales pitch. We're going to walk through what specifically breaks — unit scale, LOD expectations, texture and material reconnection, pivot points, and collision — and cite the actual Unity and Unreal documentation behind each one, because "just import it and see" wastes far more time than a five-minute checklist.

TL;DR — the questions people actually ask

QuestionDirect answer
Unity or Unreal units?Unity: 1 unit = 1 meter. Unreal: 1 unit = 1 centimeter (World to Meters = 100 by default).
Which format for each engine?FBX when you need a skeleton/animation; GLB for static props to skip loose-texture reconnection.
Does Unreal build collision automatically?Yes, a fallback convex hull — unless you name custom shapes UCX_/UBX_/USP_/UCP_ in the source file.
Why are my textures missing in Unity?The FBX Materials tab searches a Textures subfolder, then the whole project — a flat folder breaks that search.
Why does my normal map look inverted in Unreal?Blender bakes OpenGL-convention normal maps by default; Unreal expects DirectX convention unless you flip the green channel.
Does polycount matter for AI-generated meshes specifically?Yes — generators routinely over-tessellate hidden or flat surfaces, so budget an LOD pass before shipping.

What actually happens when ai-generated assets hit a game engine?

An AI text-to-3D or image-to-3D generator's job ends at "produce a textured mesh that looks correct in a neutral viewer." It has no concept of your engine's unit convention, material graph, collision budget, or LOD chain — those are downstream, engine-specific decisions no generator can see. That's the gap this guide closes.

These failure modes aren't unique to AI-generated meshes — a hand-modeled asset from a freelancer can hit the same wall. But AI output tends to concentrate certain problems: scale that assumes a generic "1 unit" with no engine context, uniform triangle density that ignores what's actually visible to a camera, and PBR texture sets packed for a generic glTF/FBX target rather than your engine's specific shader.

Why does Unity vs Unreal unit scale break every AI-generated model at least once?

This is the classic gotcha, and it's still accurate as of current engine documentation. Unity's convention is 1 unit equals 1 meter — Unity's own Model Importer reference notes that the importer's Scale Factor and Convert Units settings exist specifically because "applications like 3ds Max use 1 unit to represent 10 centimeters," and Unity's physics and lighting systems are tuned assuming 1 meter per unit (Unity Manual: Model tab Import Settings reference).

Unreal's convention runs the other way. Epic's own documentation states that Unreal Engine defaults to 1 Unreal Unit equals 1 centimeter, with the World to Meters setting at 100 because the engine expects your project to work in centimeters (Unreal Engine: Units of Measurement documentation). A model exported assuming meters-per-unit and dropped straight into Unreal imports at roughly 1% of its intended size — or 100 times too large if the mismatch runs the other direction.

The practical fix isn't memorizing which engine is which — it's checking scale on every import, every time, regardless of engine or generator. Both engines expose an explicit scale override precisely because this mismatch is common enough to warrant a first-class settings field, not an edge case.

What's on the Unity-specific checklist for an ai generated assets game engine workflow?

Scale and Convert Units

Open the Model tab on the FBX importer and check the Scale Factor before you do anything else. If the source file wasn't authored at Unity's 1-unit-equals-1-meter convention, toggle Convert Units rather than manually rescaling the mesh in your scene — rescaling in-scene skews child transforms and can quietly break skinned mesh bounds later (Unity Manual: Model tab Import Settings reference).

Materials and shader reconnection

Unity's FBX Materials tab has a Location setting for whether materials are embedded or extracted, and Unity searches for matching textures — first in a Textures subfolder next to the mesh, then the parent folder, then the whole project if that fails (Unity Manual: Materials tab). AI exports often ship textures in a flat folder with generic names like "albedo.png", exactly the layout that search struggles with. Put textures in a Textures subfolder from the start and skip most pink-material troubleshooting entirely.

PBR channel packing is the other reconnection tax: a generator that packs metallic, roughness, and ambient occlusion into one texture's R/G/B channels (a common glTF convention) has to be manually wired into Unity's Standard or URP/HDRP shader slots, since Unity's material doesn't assume that packing by default. Budget a few minutes per material the first time — after that it's a repeatable node setup.

LOD and polycount

Unity's LOD Group component supports up to eight LOD levels, with LOD 0 as the closest, most detailed level (Unity Manual: LOD Group component reference). Unity's own Asset Transformer SDK docs give teams without a standard a starting point: progressively fewer triangles per level, with a deep LOD (its example uses roughly 10% of LOD0's triangle count) collapsed to one mesh and one baked material for a single draw call (Unity: LOD generation guidelines). AI-generated meshes usually arrive at one fixed density with no LOD chain — that's a step you add, not one you inherit.

Pivot point

Unity does not silently relocate a mesh's baked pivot — the position you set in your source DCC tool or generator is what imports — but plenty of AI-export pipelines default to a bounding-box center rather than a base-of-object pivot, which breaks rotation and placement logic that assumes a floor-level origin. Check pivot placement in the Scene view before wiring up any placement or rotation script that assumes a specific origin.

What's on the Unreal-specific checklist for import fbx unreal engine work?

Units, again

Set export scale before the file leaves your generator if you can — fixing it after the fact in Unreal means rescaling every child component and any physics asset built against the original size. If you can't control the export, use Unreal's FBX import scale override rather than scaling the Static Mesh actor in the level, which leaves the asset itself mismatched for every future placement.

Collision generation

Unreal's Static Mesh Editor provides a Collision menu with automated options, including K-DOP simplified hulls and Auto Convex Collision (which takes a max hull count, max vertices per hull, and a precision value) for generating a hull directly from the mesh (Unreal Engine: Setting Up Collisions With Static Meshes). If your FBX contains no named collision geometry, Unreal's Auto Generate Collision import setting builds a fallback convex hull automatically. For a shape you control, name a collision mesh with the UCX_, UBX_, USP_, or UCP_ prefix followed by the exact render mesh name (UCX_SM_Crate_01 for a convex hull on a mesh named SM_Crate), and Unreal imports it as custom collision instead of generating its own (Unreal Engine: FBX Static Mesh Pipeline). AI-generated meshes essentially never include this naming convention, so plan on the auto-generated hull or a manual collision pass for anything the player collides with directly.

Skeleton and skeletal mesh import

For rigged or auto-rigged characters, Unreal's importer lets you assign an existing Skeleton asset instead of creating a new one — useful for reusing animation sets across multiple AI-generated characters — but the bone hierarchy must stay structurally consistent between meshes sharing a Skeleton, and bone names and ordering can't be violated even when proportions differ (Unreal Engine: Skeleton Assets documentation). If an auto-rigged character doesn't match your existing skeleton's naming and hierarchy, use Unreal's Animation Retargeting and Retarget Manager tools to reuse animations across the mismatch instead of expecting a drop-in fit.

Normal maps and material channels

This one is a widely reported gotcha rather than a single documented "bug": Blender's default normal-map bake uses OpenGL convention, where a brighter green channel reads as the surface tilting up, while Unreal's material system expects DirectX convention, where brighter green reads as tilting down — importing one into the other inverts surface detail on every non-flat face (Epic Developer Community Forums: OpenGL or DirectX for Normal Maps). Unreal's texture import options include a Flip Green Channel toggle for exactly this. Check which convention your generator's texture export uses before trusting the first import.

What belongs on a pre-import checklist for any ai generated assets game engine handoff?

Regardless of which engine you're targeting, run this pass on any freshly generated mesh before it goes anywhere near a scene file:

CheckWhat you're looking for
ScaleReal-world unit assumption matches your target engine's convention
PivotOrigin sits at the base or center you'll actually place/rotate around
PolycountTriangle count matches the asset's role — background prop vs. hero character
UV layoutNo stretching or overlap that will smear texture detail at runtime
Texture channel packingYou know which channels hold metallic, roughness, AO, and normal data
NamingMesh and texture names are stable and descriptive, not generic export defaults
Non-manifold geometryNo floating vertices or internal faces that will break collision generation

What should you do before importing an AI-generated asset into Unity or Unreal?

  1. Confirm the export scale before the file leaves your generator. Fixing scale after import means touching every child transform and physics asset built against the original size — fix it at the source.
  2. Rename mesh and texture files with intent, especially if you plan to use Unreal's UCX_/UBX_ collision naming convention or rely on Unity's Textures-subfolder search pattern for material reconnection.
  3. Run a polycount and LOD pass before the asset ships, not after a profiler flags it — AI generators routinely over-tessellate hidden or flat geometry that a human modeler would have simplified by hand.
  4. Check pivot placement in the viewport, not just in the generator's preview window, since placement and rotation logic in your engine will assume a specific origin.
  5. Decide collision strategy deliberately. Let Unreal auto-generate a convex hull for background props, but name custom collision shapes for anything gameplay-critical, like a platform edge or a weapon's hitbox.
  6. Verify normal map convention before wiring materials, particularly for Unreal — a five-second Flip Green Channel toggle beats debugging "inverted lighting" for twenty minutes.
  7. Export FBX for anything with a skeleton, GLB for everything else — it's the difference between reconnecting loose textures by hand and getting PBR materials that mostly just work.

How does bunpav fit into this pipeline?

bunpav turns a text prompt or a reference photo into a textured mesh with optional auto-rigging, exporting to GLB, FBX, OBJ, USDZ, or STL — the GLB path for a straightforward Unity/Unreal drop-in, FBX when a skeleton needs to travel with the mesh. It doesn't set your engine's unit scale or generate a UCX_-named collision shape for you; the checklist above still applies to anything bunpav or any other generator produces. bunpav is currently in private beta — join the waitlist at bunpav.com for access when it opens more broadly.


Facts about Unity's and Unreal's default unit scale, import settings, and collision naming conventions are accurate as of July 17, 2026, per each engine's official documentation linked above. Engine defaults and importer UI change between versions — check your specific Unity or Unreal version's docs before relying on exact menu names for a production pipeline.

Player questions

Does Unity use meters or centimeters for imported 3D models?

Unity treats 1 unit as 1 meter by default, and its FBX importer exposes a Scale Factor and a Convert Units option specifically to reconcile models authored at a different scale, per Unity's Model Importer documentation. An AI-generated mesh exported at the wrong scale will still import — it just won't match your existing props or physics tuning until you correct it.

Does Unreal Engine use meters or centimeters?

Unreal's default is 1 Unreal Unit equals 1 centimeter, with World to Meters set to 100 by default, according to Epic's own Units of Measurement documentation. That's the inverse of Unity's convention, and it's the single most common reason an AI-generated mesh imports at 1/100th or 100 times its intended size.

Why does my AI-generated model look tiny or gigantic after import?

Almost always a units mismatch, not a broken mesh. If the generator exported assuming 1 unit equals 1 meter and you're dropping it into Unreal, which assumes 1 unit equals 1 centimeter, the mesh imports at 1% of its intended footprint until you fix the scale on export or during import.

Does Unreal Engine automatically generate collision for imported meshes?

Yes — if an imported FBX contains no named collision shapes, Unreal's Auto Generate Collision setting builds a simple convex hull automatically. For precise collision, name a mesh in your source file with the UCX_, UBX_, USP_, or UCP_ prefix matching your render mesh's name, and Unreal will use that shape instead of guessing.

Why do textures or materials look wrong after importing into Unity or Unreal?

Two different failure modes. In Unity, the FBX Materials tab has to locate texture files itself — via a Textures subfolder search, then a project-wide fallback — so a flat folder structure can leave you with pink placeholder materials. In Unreal, the more common issue is a normal map baked in OpenGL convention (Blender's default) meeting an engine that expects DirectX convention, which inverts surface detail until you flip the green channel.

What file format should I use to import an AI-generated model into Unity or Unreal?

FBX if you need a rig or skeleton — both engines' import pipelines are built around FBX for skeletal meshes and animation data. GLB is the simpler choice for static props since it bundles mesh, PBR materials, and textures in one file with less manual material reconnection than a raw FBX plus loose textures.

More to read