Unreal Engine Lighting Export / Import Tool (Python)
A Python-based Unreal Editor tool designed for non-destructive lighting iteration and documentation. The system extracts per-light data—including actor label, light type, world transform, color, and intensity—into a structured CSV format that can be re-imported to update or reconstruct lighting setups without duplicating actors.
The pipeline was built to support stable round-trip workflows, with investigation and fixes for Unreal’s internal color (BGRA) representation and rotation instability caused by Euler–quaternion conversions. Lights are matched by Outliner label on import, enabling rapid comparison, revision, and reuse of lighting configurations across scenes. The tool is exposed through an Editor Utility Widget and structured to support future extension with light-type–specific attributes.
Extending the Pipeline: Light-Type–Specific Attributes
Future development (currently in progress Feb 2026) — extend to include light-specific attributes / serialize attributes conditionally based on light class, for example:
Point Lights
Attenuation Radius
Source Radius
Source Length
Soft Source Radius
Spot Lights
Inner / Outer Cone Angle
Attenuation Radius
Source Radius
Rect Lights
Source Width / Height
Barn Door Angle
Barn Door Length
All Light Types
Volumetric Scattering Intensity
Indirect Lighting Intensity
Cast Shadows / Shadow Bias
Affect Translucency / GI flags
Goals:
During export, the script checks the light’s class (PointLightComponent, RectLightComponent, etc.) and conditionally writes only the relevant attributes to CSV columns.
During import, those attributes are reapplied only if the receiving light supports them, preventing errors or invalid data assignment.
Missing or unsupported fields can safely default, making the system backward-compatible as new attributes are added.
This approach keeps the pipeline robust, extensible, and production-safe, while allowing increasingly granular lighting control over time.