> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lightcraft.pro/llms.txt
> Use this file to discover all available pages before exploring further.

# Importing Unreal scenes

> Export a scene from Unreal Engine as a Gaussian splat and USD file for use in Spark Story

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/unreal-scene-overview.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=297e21cffb9f91528c68b3c90ec20834" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/unreal-scene-overview.mp4" />

Export a scene from Unreal Engine as both a Gaussian splat (for the environment) and a USD file (for foreground mesh geometry), then bring them into Spark Story.

## 1. Separate foreground elements

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/create-mesh-layer.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=17c2bef3f15cf049719c41ec52298dea" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/create-mesh-layer.mp4" />

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/add-objects.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=62d72139bb70f7a271442d5d472cdcc9" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/add-objects.mp4" />

Identify which objects in your scene need to stay as mesh geometry — anything with fine detail the splat might miss, or elements you may want to shoot through (railings, stairs, furniture).

1. In the Unreal Editor, open the **Layers** panel.
2. Add a new layer and name it **Mesh**.
3. Drag the foreground elements you want to keep as mesh geometry into this layer (e.g., tables, chairs, railings, staircases).

## 2. Add scene locators

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/add-scene-locator.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=c5890b597abbca19bbeabeeacacc5830" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/add-scene-locator.mp4" />

Scene locators mark positions in the scene where you want to place actors or quickly jump to during previs.

1. Add an empty actor to the scene.
2. Rename it using the naming convention `Scene_Lock_01` (replace `01` with a descriptive name or number).
3. Position it where you want the first locator.
4. **Alt+drag** the actor to duplicate it and create additional locators at other key positions.

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/duplicate-scene-locator.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=572716339a0df9dde32447485ae6b707" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/duplicate-scene-locator.mp4" />

5. Add the scene locators to your **Mesh** layer so they export with the foreground elements.

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/create-mesh-layer.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=17c2bef3f15cf049719c41ec52298dea" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/create-mesh-layer.mp4" />

## 3. Install the USD exporter plugin

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/install-usd-plugin.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=700cb9201ac436f1a4171297c08ea58c" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/install-usd-plugin.mp4" />

1. Go to **Edit > Plugins**.
2. Search for **USD Importer** (this plugin handles both import and export).
3. Enable the plugin.
4. Restart Unreal Engine.

## 4. Export as USD

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/export-usd.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=11f22046d456b654f0c2d3fabb973f5c" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/export-usd.mp4" />

1. Select the **Mesh** layer (double-click it to select all its contents, including the scene locators).
2. Go to **File > Export Selected**.
3. Choose **USD** from the file type dropdown.
4. In the USD export settings, enable **Bake Materials**.

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/bake-materials.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=824cd19601f5508ebf44462f38407ab4" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/bake-materials.mp4" />

5. Expand the material settings menus and remove any generated elements you don't need.
6. Click **Export**.

## 5. Render a panoramic 360 image

Render a single panoramic frame from Unreal Engine to use as the source for your Gaussian splat.

1. Go to **Edit > Plugins** and enable **Additional Render Passes**.
2. Add a **Camera** actor to the scene and position it in the center of your environment.

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/create-camera.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=bd1583fdd9cc796770955e9b695264b2" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/create-camera.mp4" />

3. Open the **Sequencer**, drag your camera in, and set the in and out points so it renders a single frame.

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/sequencer-single-frame.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=8c1f906b54f04e91d98abcbd12ce7cc8" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/sequencer-single-frame.mp4" />

4. Go to the **Media Render Queue** for the sequence.
5. In the render settings, delete the default **Deferred Rendering** pass.

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/media-render-queue.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=a353d9b18fc4aba93c09c9cc1fa8abe1" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/media-render-queue.mp4" />

6. Go to **Settings > Panoramic Rendering** and enable **Allocate History Per Pane**. Without this, the render will come out too dark.

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/allocate-history.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=a18de3f452b1fac9908e130aad20bfe4" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/allocate-history.mp4" />

7. Add any anti-aliasing settings you need.

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/antialiasing-info.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=41c624b354fe8364568e04f57a2f8e89" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/antialiasing-info.mp4" />

8. Set the output resolution to **4096 x 2048** (2:1 aspect ratio).

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/render-output.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=37a8a6138cca6e7eae094b82bfa8003b" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/render-output.mp4" />

9. Render the frame.

## 6. Convert to a Gaussian splat with World Labs

1. Open [World Labs](https://www.worldlabs.ai/) and choose **2D Input**.

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/wl-import-image.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=6e8d9e3f5f6b4e0ba8ff6a4acd8cfc1f" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/wl-import-image.mp4" />

2. Drag and drop your panoramic render into World Labs.
3. World Labs generates a Gaussian splat from the image, preserving the lighting from your Unreal scene.
4. Download the result as a **PLY** file.

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/wl-download.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=de899a417f89163d85c9ff722ece6777" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/wl-download.mp4" />

## 7. Import into Spark Story

Bring both the Gaussian splat and the USD foreground elements into Spark Story.

1. In Spark Story, click **Add** and choose **Location**.
2. Upload your PLY Gaussian splat file. This becomes the environment background with baked lighting.

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/add-gaussian.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=1efb2c257369ac763a69c2094dec983f" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/add-gaussian.mp4" />

3. Click **Add** again and choose **Object**.

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/import-usd.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=5144059a98fa6473b3b58450ca2c903d" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/import-usd.mp4" />

4. Import your USD or USDZ file containing the foreground elements (tables, chairs, staircase, etc.).

The final scene combines mesh detail for foreground elements with a Gaussian splat background that preserves the original Unreal Engine lighting.

<video src="https://mintcdn.com/lightcraft/RVFSm9SzBAPznA23/images/spark/combo-results.mp4?fit=max&auto=format&n=RVFSm9SzBAPznA23&q=85&s=7287de77582958fbf734acfac1f25e44" controls style={{ borderRadius: '0.5rem' }} data-path="images/spark/combo-results.mp4" />
