Elias Unreal Plugin - Quickstart
Learn how to integrate the Elias Plugin into your Unrel project
Download and Setup
1: Download the Elias Unreal Plugin:
- Make sure to have Elias Studio installed. How to Install Elias
- You can find the plugin via the Open extras folder in Elias Studio.
- Open Elias Studio and navigate to File > Open extras folder.
- Open Integrations > unreal-plugin - and you will find the location of the plugin package.
2: Install in Unreal:
- Place the packaged EliasUnrealPlugin directory in the Unreal project's Plugins directory.
- Start Unreal Editor and enable Elias Unreal Plugin if it is not already enabled.
- Restart Unreal Editor when prompted.
- Use plugin binaries and Elias Studio from the same Elias release.
3: Setup
- In the Content Browser, create Elias > Elias Asset Context. Its default asset name is EliasContext.
- Open the asset and use the file picker to select the .elias project file.
- Add an Elias Session component to an actor in the level.
- In the session inspector, press Refresh Project Settings. This copies the current sample rate, buffer size, channel count, and instance limit from the asset context.
- Add an Elias Listener component. For a first-person project, enable Use Player Camera and select the desired player index.
- Add an Elias Sound Instance component and select a patch or configuration with its Elias asset picker.
- Press Play. The session creates the Elias runtime session and the other components create their runtime objects within it.
- The plugin normally finds the asset context and session automatically. Explicit references are available in the collapsed Advanced group when a level needs more control.
- Live Editing:
- While working in the Unreal Editor, you can work with the same Elias project using Elias Studio.
- Open the Elias Studio application, select the project from the list of recent project at the start screen, and you can live edit your audio project.
How it works: Elias Asset Context
The Elias Asset Context is a persistent Unreal asset that associates Unreal content with an Elias project. It stores:
- The path to the .elias project, relative to the Unreal project directory when possible.
- A project model containing editor-visible project settings.
While Unreal Editor is running, it also holds transient values such as the open project URI, project ID, andruntime context handle. These transient values are recreated and are not saved in the asset.
During cooking, the plugin embeds the exported Elias runtime models alongside the cooked Asset Context.Packaged builds use those files and do not open the .elias project or require Elias Designtime.
Context lookup
- Components look for an asset context in the same Unreal package folder as the level or asset that containsthem. If none is found, the search continues through each parent folder up to /Game.
- /Game is Unreal's virtual package root and corresponds to the project's Content directory. It is not a physical/Content package path.
- This lookup permits separate areas of a project to use different asset contexts. Avoid placing multiple contexts inthe same folder because their precedence is ambiguous.
Refreshing the project model
- Press Refresh Project Model in the asset context inspector after changing project settings in Elias Studio.
- Selecting a different .elias file loads and persists its project model automatically; reopening Unreal onlyreopens the project and does not unnecessarily replace the saved model.
How it works: Components
All Elias component settings are grouped in the Elias section. Less frequently used references are in acollapsed Advanced group.
Elias Session
The Elias Session owns one Elias runtime session. Other Elias components resolve a session in their level andcreate their runtime objects within it.
Elias Unreal Plugin User Guide 2 / 8
The session contains:
- Sample rate
- Buffer size
- Channel count
- Instance limit
- Elias units per Unreal unit
Use Refresh Project Settings to refresh the associated asset context and copy the current settings into thesession. A newly created session is invalid until this has been done for its current Elias project.
At the end of every game frame, the session calls the Elias runtime update function. Listener, sound, zone, andBlueprint parameter changes made during the frame therefore become visible to the audio rendering threadtogether.
Unit factor
Elias Units Per Unreal Unit converts Unreal distances before they are sent to Elias. It applies to positions,linear velocities, zone polygon coordinates, and zone height.
Rotations are not distance values. Normalized quaternions and angular velocity are therefore not multiplied bythe unit factor.
Elias Listener
The listener supplies the listener position and orientation to Elias. It only sends an update when its transformchanges.
For player-controlled cameras, enable Use Player Camera and set Player Index. This follows the effectiveplayer camera even when Unreal manages it through a pawn or player controller rather than a visible cameraactor.
When Use Player Camera is disabled, the listener uses its configured transform source or its owning actor.
Elias Sound Instance
The sound instance creates an Elias sound from a sound runtime model.
Use the asset picker to select a patch or configuration. The component persists the selected model's editormetadata and its binary runtime ID. Parameter definitions are fetched from Elias Designtime when the inspectoris displayed and can be reloaded with Refresh Available Parameters.
Enable Use Player Pawn to attach the sound position to the pawn for the selected player index. Otherwise, thecomponent follows its owning actor. Position, orientation, and velocity are sent only when they change.
Elias Zone Instance
The zone instance creates an Elias zone from a selected zone asset. Its polygon lies in the component's localXY plane and is extruded by the configured height.
The geometry is sent when the polygon, height, or transform changes. Polygon coordinates and height use thesession's unit factor.
Elias Unreal Plugin User Guide 3 / 8
Editing a zone in the viewport
Select the zone component or its owning actor to display the visualizer. The zone sides are shown with a darktranslucent surface.
- Click a vertex handle to select it, then use Unreal's translation widget to move it.
- Shift-drag the vertical/top handle to adjust the zone height.
- Cmd-click on macOS or Ctrl-click on Windows on an edge to insert a vertex.
- Cmd-click on macOS or Ctrl-click on Windows on a vertex to remove it.
The polygon must contain at least three vertices.
How it works: Blueprint parameter nodes
The plugin provides Blueprint nodes for global session parameters and sound instance parameters:
- Send Elias Pulse
- Set Elias Boolean Parameter Value
- Set Elias Int Parameter Value
- Set Elias Float Parameter Value
- Set Elias Enum Parameter Value
- Elias Enum Value Constant
Connect the target to an Elias Session for global parameters or an Elias Sound Instance for sound parameters.If the target is left unconnected, the node resolves the first session in the scene and operates on globalparameters.
The parameter field is an editor dropdown. The selected parameter's ID is compiled into the node, so renamingthe parameter in Elias does not break runtime behavior. Changing the target component resets an incompatibleselection.
A None parameter selection performs no operation.
Enum values
The enum setter's value can be selected directly or supplied through an Elias Enum Value Constant. Thevalue type is EliasStrictEnumValue, which contains both the enum asset ID and the enum value ID. This letsthe plugin reject a value belonging to a different enum.
A None enum value performs no operation. When a linked enum constant is incompatible with the selectedparameter, the Blueprint editor reports a warning and runtime validation rejects the value.
How it works: Validation and refresh
Components that depend on project assets record the Elias project UUID used when they were configured.
- Elias Session: Becomes valid after Refresh Project Settings.
- Elias Sound Instance: Becomes valid after selecting a patch or configuration from the current project.
- Elias Zone Instance: Becomes valid after selecting a zone from the current project.
- Elias Listener: Is not tied to a project asset and is unaffected by project UUID changes.
Selecting another project in the asset context invalidates dependent components. Refresh the session settingsand select the sound and zone assets again. This prevents IDs from one Elias project from being usedaccidentally with another.
How it works: Lifecycle
In the editor, the Asset Context opens the Elias project through Designtime and borrows that project's runtimecontext. PIE sessions and their listener, sound, and zone objects are created in the borrowed context.Component calls are collected during the frame and committed when the session updates.
In a packaged game, no .elias project or Designtime library is used. The cooked Asset Context locates itsexported model index, creates a reader factory and standalone runtime, and then supplies that runtime to thesame session and component lifecycle.
Building and packaging
Use Unreal's Platforms menu to choose a target and package the project, or use ProjectLauncher/AutomationTool in an automated build. Build All Levels prepares level data; it does not produce adistributable application.
Before packaging:
- Configure the project's Game Default Map and any maps included in the build.
- Make sure every included level and asset resolves a valid Elias Asset Context.
- Refresh every session for the current project and reselect invalid sound or zone assets.
- Install the Unreal SDK/toolchain required by the target platform.
During cooking, the plugin follows the packages selected by Unreal and inspects their Elias components. Itexports directly used sound and zone models, the project's current runtime defaults, transitive Eliasdependencies, and implicit global-parameter, group-channel, and default-mixer models. The resulting modelsand index.eliasindex are staged with the cooked Asset Context; old exports are rebuilt for each cook ratherthan reused from project content.
Packaging then produces the normal Unreal artifact for the target, such as an .app on Apple platforms or anAPK/AAB for Android. Export failures are reported under LogEliasCook and fail the cook so a package cannotsilently ship with incomplete audio data.
Troubleshooting
No Elias Asset Context can be found
Create an Elias Asset Context in the same Content Browser folder as the level, or in one of its parent folders.Confirm that a valid .elias project is selected.
The session reports that it is invalid
Select the session and press Refresh Project Settings. This is required after creating the context, selectinganother Elias project, or moving the component to a different context hierarchy.
A sound or zone asset is invalid
Open its picker and select the asset again from the active project. IDs from the previous project are intentionallyrejected.
The listener does not move with the player
Enable Use Player Camera and set the correct player index. Attaching a listener to PlayerStart does notfollow the pawn spawned from it.
A session or asset context field only shows None
The picker lists compatible objects in the relevant level or content hierarchy. Usually the explicit field shouldremain None so automatic lookup can be used. Place the required session or context in the applicable level orparent Content Browser folder.
Project path errors
Use the asset context's file picker instead of typing a path. The saved value is relative to the Unreal projectdirectory when possible. The inspector log reports both the stored and resolved absolute paths when a filecannot be opened.
Cooking reports an invalid component
Open the reported component in the editor. Refresh a session's project settings, or reselect the sound/zoneasset, so its stored project UUID matches the effective Asset Context. Also confirm that all Elias assetsreferenced by the component still exist in the selected Elias project.
The packaged game starts but has no sound
Check that the intended map was included, that a session and listener are active, and that cooking logged asuccessful Elias export. Native runtime binaries must also be present for the selected platform and architecture.
Current limitations
- Packaged builds receive generated hard Asset Context references, but an unset session reference stilluses the first session found in the world.
- DLC-specific asset context packaging is not implemented.
- Platform-specific custom readers can be registered in C++, but only the default Unreal UFS reader isbundled.
- Native packaging is currently wired for Windows, macOS, iOS, and Android. Each package still requiresthe platform SDK, architecture-specific Elias runtime binary, and normal Unreal signing/deployment setup.
Version Compatibility:
- Ensure that your organization is using a single version of Elias for your project.
- The version of Elias Studio and the Unity Plugin should come from the same installation on your local machine, and everyone in the team should use the same installer file to avoid version mismatch issues.
- We currently support Unity 6000.2.6f2 and newer. (We are looking into support for older versions as well)
Platform Compatibility:
- Windows (x64 only)
- macOS (arm64 and x64)
- iOS (arm64 with simulator support for both arm64 and x64)
- Android (arm64, armv7, and x64)