Importing Assets
Awaken reads Unity, Godot, and Unreal packages - plus glTF, OBJ, and image files - directly in the browser, with no re-export step. This page explains the pipeline, the three ways to start an import, and exactly what comes across from each source.
How importing works
Every engine-package importer - Unity, Godot, and Unreal - funnels its data through one shared import IR (intermediate representation) called SceneImport. A loader's only job is to translate its own file format into that neutral shape - decoded mesh geometry, encoded texture bytes, a node tree with transforms, materials, lights, cameras, and colliders - all already converted into Awaken's coordinate space (right-handed, Y-up, metres). A single consumer then turns that IR into real project assets. (A single .glb/.obj/image takes a lighter, direct path instead - see below.)
Because there is exactly one consumer for engine packs, every one of them benefits from the same treatment: lossless vertex welding, device-neutral texture storage, static-batching flags on scenery, and hardening that clamps out any NaN/Inf that a corrupt file might carry.
The distinction that trips people up first: engine packs import into the Library, not the live scene. A .unitypackage or .zip gives you prefabs to drop and scenes to open - nothing spawns automatically. A single .glb/.obj/image, by contrast, lands directly (a model into the current scene, an image as a texture asset).
Three ways to import
| Entry point | Where | Best for |
|---|---|---|
| File ▸ Import Model… | The Toolbar menu | A single model file |
| + Import | The Asset Browser header | Models, images, or engine packs |
| Drag and drop | Anywhere on the editor window | Everything, including whole folders |
Drag-and-drop is the most capable path. If you drop a folder, Awaken walks it recursively and imports every file inside - so dragging a starter-content folder that contains a prefab alongside its scripts, materials, and textures resolves all the dependencies in one go. Multiple selected files are imported in sequence, with any .awakenprefab imported last so its dependencies are already present.
All three entry points accept the same file types:
.zip .unitypackage .glb .gltf .obj .fbx
.png .jpg .jpeg .webp .bmp .gif .tga
.ogg .mp3 .wav .m4a .aac .flac .mid .midi
.pdf .txt .md .markdown .rtf .nfo
.awakenmat .awakenscript .awakenanimgraph .awakenprefab .awakenfxAudio imports as a sound named after the file. That includes .mid: a score is not a recording and nothing decodes one, so the engine performs it on a built-in General MIDI synthesiser - which is how 18 minutes of music fits in 17 KB.
📸 Screenshot - save as img/import-entry-points.png
The editor with the File ▸ Import Model menu open and the Asset Browser's "+ Import" button highlighted, plus a drag-drop overlay hint.
Support matrix
What actually comes across, feature by feature. ✓ Full · ◐ Partial · – Not supported. These reflect what the importers do today (audited against the source), not aspirations.
| Feature | Unity .unitypackage | Godot .zip | Unreal .zip | glTF / GLB | OBJ | Images |
|---|---|---|---|---|---|---|
| Meshes & geometry | ✓ | ✓ | ◐ | ✓ | ✓ | – |
| Materials & textures | ✓ | ◐ | ◐ | ◐ | – | ✓ |
| Scene tree & transforms | ✓ | ✓ | ◐ | ✓ | ◐ | – |
| Lights | ✓ | ◐ | ✓ | – | – | – |
| Cameras | ✓ | ✓ | – | – | – | – |
| Colliders & physics | ✓ | ◐ | – | – | – | – |
| Terrain | ✓ | – | ✓ | – | – | – |
| Sky & post-FX | ✓ | ◐ | ◐ | – | – | – |
| Particle systems | ◐ | ◐ | – | – | – | – |
| Skeletal animation | ◐ | – | – | ✓ | – | – |
| Prefabs & instances | ✓ | ✓ | – | – | – | – |
| In-game UI (HUD) | ◐ | – | – | – | – | – |
| Destination | Library | Library | Library | Live scene | Live scene | Library |
Notes on the partial cells:
- Unity materials carry albedo and normal maps plus scalar metallic, roughness and opacity; metallic/roughness/occlusion maps are not applied. A Unity Shader Graph shipped in the pack is transpiled when it does something the flat PBR fields cannot reproduce. glTF materials import the base-colour factor only, with no texture maps. OBJ has no
.mtlparsing, so meshes arrive a neutral grey. - Unity scene tree keeps the GameObject hierarchy, and resolves every instance's world transform including mount points inside nested prefabs. Godot and glTF keep the full node tree too. A scene's own MonoBehaviours are converted into scripts and attached to the objects Unity put them on.
- Lights: Unity and Unreal import directional, point and spot. A spot arrives as a cone with its angle; the source's inner angle is not carried, so the edge feathering over the outer quarter of the cone is proportional rather than authored. Godot still collapses
SpotLight3Dto a point light, so a Godot spot washes its surroundings instead of throwing a beam. Area lights are skipped everywhere. - Skeletal animation imports from glTF (skins, skeletons and its own clips) and from Unity, whose pack clips are imported and retargeted onto characters; hands and fingers are left at bind pose. Non-humanoid Unity skinned meshes arrive at bind pose. Godot and Unreal skins are not animated.
- In-game UI is Unity-only: a uGUI HUD/menu Interface pack imports its sprite art as textures, its uGUI widget prefabs and assembled screens as draggable Awaken UI prefabs, its
.animclips as UIClips, and its.ttf/.otffonts as@font-face. Navigation labels set by the pack's runtime scripts stay as their placeholder. See Unity. - Unreal is the youngest importer. It reads static-mesh geometry, textures, landscape terrain with its splat layers, and material expression graphs, which it translates into node shaders (28 of the 39 engine functions a surveyed pack used). No cameras, colliders, or prefabs yet.
- Particle systems are approximated, not reproduced. A Unity
ParticleSystemor a GodotGPUParticles3D/CPUParticles3Dbecomes a Awaken particle effect asset plus aParticleEmitteron the node, carrying the concepts both engines share - rate, bursts, lifetime, shape, speed and spread, gravity, colour and size over life. Trails, sub-emitters and emission-by-distance import from both. Anything richer is sampled down: source curves and gradients keep their endpoints, Godot'sexplosivenessbecomes either a burst or a continuous rate, and itsdampingis converted to exponential drag. The renderer's draw material supplies the sprite texture, tint colour, and blend mode (additive vs bounded alpha) for both Unity and Godot; a system with no readable draw material falls back to the procedural round sprite with additive blending. Expect to open the effect and tune it.
In this section
- The Import Dialog - the options modal for engine packs: file tree, include/exclude, type filters, preview pane, and the texture size cap.
- Unity (.unitypackage) - the fullest importer: meshes, PBR materials, colliders, terrain, sky and post-FX, prefabs, posed characters, and uGUI HUD import from Interface packs.
- Godot (.zip) - node tree, ArrayMesh and primitives, colliders, instanced scenes, materials, lights, and cameras.
- Unreal (.zip) - current partial support and an honest list of the gaps.
- glTF / GLB / OBJ & Images - single models straight into the scene, and image → texture + material.
- Textures & Terrain - decode options, the size cap, device-neutral storage, and Unity terrain baking.
- Colliders, Skeletons, Lights & Cameras - what physics and animation data survives the trip.
See also
- Scenes & the World - where imported prefabs and scenes live
- Prefabs - dropping imported models into your scene
- Render Pipeline Overview - how imported materials and sky settings are drawn
- Mesh Format - welding and the quantized on-disk geometry