Unreal Engine 4

Overview

The NVIDIA Omniverse™ Unreal Engine 4 Connector offer a simple toolkit for UE4 Users to send and live sync their model data to an Omniverse Nucleus server. This not only gives UE4 users a first class renderer through Omniverse View or Omniverse Create but also the ability to open, edit and sync with any of the Omniverse Connect applications. Now, depending on the use case, UE4 users can choose the workflows and pipelines that work best for their needs while maintaining up to date revisions for all downstream consumers of their work.

The Omniverse Unreal Engine 4 Connector plugins are an excellent way to export scene, geometry, and material content to USD and Omniverse. The MDL (Material Definition Language) plugin’s material export unlocks access to using Unreal Engine’s industry-leading material editor as one of the easiest and quickest ways to author MDL materials. Artists can use Unreal Engine’s terrain and landscape editor, and with one click can export geometry and materials straight to Omniverse, stored as a USD mesh. The plugins also support USD and MDL importing as well as live-editing of meshes, materials, and stages.

Introduction (Video)

USD and MDL in UE4

USD assets are used by Omniverse USD Actors, just like a Static Mesh is used by a Static Mesh Actor. MDL assets are at first identified with this Omniverse MDL icon. Once they are imported they are represented by an Unreal Material asset icon.

Note that red folders and USD/MDL assets with a lock on them identify read-only files that are located on a Omniverse Nucleus mount.

Omniverse USD and MDL asset icons

Assets Loading and Caching

Assets are not actually loaded and converted from Omniverse until they are used. Once loaded, the converted UE4 assets, such as textures, materials, are cached on disks. And they will be updated when necessary. Note that the Content Browser displays USD and MDL files inside the project’s /Content/Omniverse folder, but those files do not exist on disk. As assets are loaded, intermediate UE4 assets are saved to those locations, but the are purely intermediate and only aid in reload times. Do not create assets within the /Content/Omniverse folder as they could be removed from disk when these folders are cleaned.

A Note about the Epic Games USDImporter Plugin

Currently the Epic Games USDImporter plugin is disabled by the Omniverse USD plugin. This is due to incompatibilities between the USD libraries used by the two plugins that cause crashes on startup. We are working hard to resolve these conflicts.

Usage Instructions

Project Settings

Though the default settings should be correct for most situations, you may wish to edit settings based on your use case. You may edit these settings in project settings under plugins > Omniverse.

Omniverse Plugin Settings UE4

Note

Live Edit settings can also be controlled through an Omniverse button in the Main UE4 Toolbar.

Setting

Effect

Server List

A list of Omniverse Nucleus servers that are visible in the Content Browser

Live Edit

Enable/Disable the ability to actively edit the USD that you’re
connected to, in realtime. If disabled, you must save your changes
to update the USD.

MDL Template Paths

Locations of the base MDLs that Unreal can use to convert
materials to MDL.

Render Context

Material import/render material setting - MDL or Default (USD Preview Surface)

Open Developer Log

Show developer log messages in the editor log

Texture Compression

Enable texture compression on import (disable to speed up import)

Enable Query Collision

If enabled, meshes will have query collision enabled on import

Connecting

To connect to an Omniverse Nucleus server, navigate to the Omniverse Icon in the top tray and select “Add Server”.

Connection Notification

Once selected you will be brought to this connection dialogue.

Connection Window

After entering an Omniverse Nucleus server, click “Add to Content Browser” to continue. Once you browser into the folder in the Content Browser you may or may not be required to login using browser authentication depending on the state of your connection ticket. If connecting to a pre-2020.2 server it will login to the server using your Windows username.

Note

caption1

If a connection fails to exist for the Omniverse Unreal Engine 4 Connector Plugin, a notification will appear on the bottom right of your screen. It signifies that you do not have a current connection open to an Omniverse Nucleus.

Removing a Server

To remove a Omniverse Nucleus server from the Content Browser, right click on it and select “Remove Server”. This will also remove all local cached UE4 assets that were previously imported.

Removing a Nucleus Server

Live Mode

If enabled, Live mode allows for realtime interaction with assets you work with in UE4 through Omniverse. Be aware that when enabled changes are stored and transmitted realtime, all changes are effectively saved to the server as they happen.

Live Mode

Visual Notification

Off

liveoff

On

liveon

Note

While live editing with another Omniverse client one might notice that while UE4 is in the background edits might not appear in the editor viewport. This is because UE4 has a performance setting that uses less CPU while in the background. This setting can be disabled in the editor preferences by unchecking the “Use Less CPU when in Background”. The Omniverse USD plugin unchecks this setting the first time it is run within a project by default. caption2

Cleaning Local Assets

Inevitably there are sometimes issues with the intermediate files contained in the project’s /Content/Omniverse and /Content/MDL folders that represent USD and MDL assets on the server. One way to resolve these issues is to simply remove them from the disk and let the plugin recreate/rediscover them from the server. Note, if the assets are open, or have been opened, it’s possible that the editor will not be able to delete them. Also, note that cleaning these folders locally does not remove the data on the Omniverse Nucleus server(s), it removes the intermediate UE4 assets on disk.

Cleaning Intermediate Assets

Opening USD Files

Users can open and use USD files already organized and managed from an Omniverse Nucleus server within UE4.

Connection Window

Once Connected, the Omniverse Unreal Engine 4 Connector Plugin lists all Omniverse Nucleus assets in UE4 Content Browser within a directory called /Omniverse. Any USD files existing within your Omniverse Nucleus can be opened, used and edited with UE4. Any edits or modification can be saved or live synced to your Omniverse Nucleus. While USD files do not get converted, Omniverse Textures and Shaders (MDL’s) are converted to native UE4 textures and materials automatically and are managed by the Omniverse-UE4 Plugin.

To find the stage in the Content Browser after it is opened, select the Omniverse/OmniverseStageActor in the World Outliner. From the Details panel select the magnifying glass to browse to the USD stage in the Content Browser.

Browsing to the USD stage in the Content Browser

Saving USD Files

When working in a non-live workflow changes made to a USD stage are not sent back to the Omniverse Nucleus server immediately and save must be done explicitly. To save a USD file’s changes back to the server, right click on the USD in the Content Browser and select Save to Omniverse. Note that the File menu’s Save, or the Control+S keyboard shortcut do not save the USD back to the server, they will simply save the intermediate UE4 asset, which is ineffective.

Saving a USD stage to Omniverse in the Content Browser

Copying Omniverse URLs

To copy the Omniverse URL into the clipboard, right click on an Omniverse asset from within the /Game/Omniverse folder in the Content Browser and select Copy Omniverse URL

Copy Omniverse URL for asset into clipboard

The Omniverse USD Layers Tab

Omniverse USD Layers can be viewed, manipulated, and locked by opening the Omniverse Layers tab from Window menu and selecting the Omniverse Layers option.

Opening the Omniverse Layers Tab

Exporting to Omniverse (as USD and MDL)

Note: before trying to export anything to Omniverse, ensure that the editor has a valid connection to a Omniverse Nucleus server.

These types of assets can be exported to Omniverse as USD or MDL files by right clicking on them and choosing Omniverse Export in the Content Browser
  • Maps

  • Meshes

  • Materials

Actors in a level can also be exported to Omniverse as USD by right clicking on the in the World Outliner and choosing Omniverse Export

Export Dialogue
  • Make sure that the output folder is under the /Game/Omniverse folder, otherwise there’s no mapping back to the Omniverse Nucleus server

  • Meshes, lights, and cameras found inside of Blueprint actors are also exported

Export Options

Export Dialogue

Option

Result

Export Method

Shared organizes materials so they can be shared by many assets.
Modular exports a material for every asset so that assets and their materials are all self-contained.

Include MDL

Export MDL materials

MDL Dependency Option

Include Dependencies - Duplicates the MDL dependencies (templates) in Destination Folder
Use Core Library Dependencies - Core MDL Library templates are referenced.

Destination UE4 Template Path

Destination Folder on Omniverse Nucleus for the MDL dependencies (templates)
Note: A file must be selected, but only the folder is used.

Texture Size

Use Texture Setting or Source as Exported Texture Size

Include USD Preview Surface

Export Preview Surfaces

Include DDS Texture

Save DDS Files to Destination Path and reference them from materials (note, these cannot be reimported in
UE4, this is to save GPU texture memory in Omniverse Kit)

Export physics data

Include collision data with static meshes

USD Scenegraph Instancing

Make every referenced mesh in a stage an instance. If the stage has duplicate meshes this can greatly
reduce geometric GPU memory in another renderer, but the editing workflow may be hampered.

Export as Payloads

Use Payloads instead of References in the stage

Include invisible levels

If checked, levels that are hidden will be included in the export and marked as invisible.

Add extra extension to exports

Stage files will be named .stage.usd, props will be named .prop.usd
MDL Templates

The MDL Core Library is a set of MDL templates shipped with every Connect plugin. An MDL preset can simply reference the template with requiring it to be in a particular location.

  • Reasons to choose “Include Dependencies”
    • You want all exported MDL presets to use a specific MDL template which you control and possibly modify.

    • You are concerned that as the MDL templates are modified and improved over time that there might become parameter incompatibilities between the different Connect plugins

  • Reasons to choose “Use Core Library Dependencies”
    • You want to avoid the proliferation of the MDL templates as you do many different MDL exports

    • You want to use the newly updated MDL templates that ship with Omniverse Kit or other Connect plugins rather than what existed when you exported

Export USD and MDL to Local Disk

Maps or meshes can be exported directly to disk as USD and MDL files with the File menu’s Export All or Export Selected options. Export All will export the entire open map while Export Selected will export the selected actor from the editor viewport.

Exporting USD and MDL assets or maps to the local disk

Stages and MDL materials can also be exported from the Content Browser. Right click on the asset, select Asset Actions, then Export.

Exporting USD and MDL assets or maps to the local disk

Once the File menu option is selected (or right-click-export), the file type, or “Save as type” should be set to .usd or .usda.

Select USD or USDA file type to export USD and MDL

Export Commandlet

The Omniverse commandlet automates the process of exporting levels to Omniverse.

Instructions: The “-AllowCommandletRendering” flag must be added to the command line if exporting Text Render actors or USD Preview Surface.

In the following example, the FooSample map from the BarProject project is exported to a local server for testing:

BarProject.uproject -run=Omniverse -AllowCommandletRendering -map=FooSample.umap -path=”/Projects/FromUE4” -user=admin -omniverse_server=localhost:3009 -log

Export Options:

Option

Effect

MAP

The map name (with or without) extension. Note, specify the entire path to the map (/Game/Maps/MapToExport) if the name is ambiguous

PATH

The output path on the Omniverse server path (absolute)

USD

The name of the USD file. Defaults to the Map name

USER

The user name

PASSWORD

The password (Defaults to the user name)

OMNIVERSE_SERVER

The address of the desired server

Export Flags (true/false):

Flag

Default State

Effect

MDL

True
Include MDL in export

MODULAR

False
Materials are exported for each asset

PREVIEWSURFACE

False
Generate preview surfaces

ADDEXTRAEXTENSION

False
Add extra extension to exported file, ie, .stage.usd, .prop.usd

COPYTEMPLATE

True
Copy templates to export directory

TEXTURESOURCE

False
Use the source texture for the texture size

VERBOSE

True (non-shipping)
Emit some messages along with the export for debugging

STATICMESHES

False
Convert Actors to StaticMeshActors

COLLISION

False
Export collision components

BEGINPLAY

True
Call BeginPlay on world to create runtime components. Default true.

TEST

False
Log operations but do not perform the export.

Multiple Maps: If you supply a ‘+’ delimited set of maps following the -map option, the maps will be exported at the path using the map name as the sub-folder and the name of the USD file.

Example:

MyProject.uproject -run=Omniverse -AllowCommandletRendering -map=Island.umap+Cavern.umap+Moon.umap -path=”/Projects/FromUE4” -user=admin -omniverse_server=ovserver.mycompany.com

Generates:

/Projects/FromUE4/Island/Island.usd
/Projects/FromUE4/Cavern/Cavern.usd
/Projects/FromUE4/Moon/Moon.usd

Supported & Unsupported Features

Supported

Import/Open (From USD)

  • Geometry
    • Static Meshes

    • Skeletal Meshes

  • Materials
    • Preview Surfaces

    • MDL

  • Animation Introduced in 100.1
    • Skeletal Mesh animation

    • TimeSamples (as Level Sequence Actor)

  • Cameras
    • USD Camera attributes mapped to Cinematic cameras

  • Lights
    • USD Distant Light (as Directional)

    • USD Rect Light (as Rect)

    • USD Sphere Light (as Point)

    • USD Dome Light (as sky sphere mesh and sky material) Introduced in 101.1

Export (To USD)

  • Geometry
    • Export to USD w/ Skeleton

    • Static Mesh Collision data

    • Landscapes

    • Grass textures Introduced in 101.1

    • Foliage

    • Brushes

    • Text Actors

  • Animation Introduced in 100.1
    • Skeletal Mesh animation export

    • Level Sequence Actor export (if Autoplay checked)

  • Materials
    • Preview Surfaces

    • MDL Export: Native translation

  • Cameras
    • Cinematic camera attributes mapped to USD Cameras

  • Lights
    • Directional Light (as USD Distant)

    • Point Light (as USD Sphere)

    • Spot Light (as USD Sphere)

    • Rect Light (as USD Rect)

  • Postprocess
    • Some exposure settings saved with stage export

  • Blueprints
    • Meshes, Lights, Cameras, SceneComponents, etc within a Blueprint are exported as USD after the Construction Script is run

  • Groom Asset Introduced in 100.4
    • USD BasisCurves exported if OmniverseGroom plugin enabled

Live Workflow

  • Stage Editing
    • Actor transformations

    • Actor addition/removal

    • Receive mesh deformation from other clients

  • Material Syncing
    • Material assignment

    • Material Instance parameter changes

Unsupported

The Unreal Engine is vast and has many varied authoring pipelines and asset types. For now the Omniverse USD and MDL plugins are targeting a subset of those that are useful and it will continue to grow. Listed below are some of the items that are not supported, but note that this list doesn’t cover everything.

Packaging

For now the Omniverse USD and MDL plugins are only supported in editor mode. They cannot be run in “-game” mode or used as a packaged, shipping project.

Blueprints

Logic Run in a Blueprint is not yet translated into any sort of compute logic within USD. A Blueprint’s components are exported to USD in whatever state that they exist after the Construction Script is run. Note that if a user wishes to capture Blueprint motion as timesamples, Unreal’s Sequence Recorder may be used and then exported as USD timesamples.

Level Sequences

Only linear keyframes are supported in the USD import/export. On export, a cubic, or any native UE4 keyframe will be translated into per-frame, linear timesamples. On import, linear USD timesamples will be imported as linear UE4 keyframes.

Materials

When exporting unsupported material functions watch the Message Log for notifications. Not all material functions map to MDL properly, so they are often replaced with a constant value.

The Message Log shows materials with unsupported functions
These material functions are not supported (incomplete list):
  • Complicated Custom HLSL Material Expressions that use code that doesn’t align with MDL

  • Atmospheric Light Vector

  • Atmospheric Light Color

  • Atmospheric Fog Color

  • Pixel Depth

  • Camera Vector/Position

  • Object Position/Radius

  • Field of View

  • View Property

  • Light Vector

  • Bump Offset

  • Fresnel

  • IOR from texture lookup

  • Media texture sampler

  • Particle
    • Particle Color

    • Particle Direction

    • Particle MacroUV

    • Particle PositionWS

    • Particle Radius

    • Particle Random

    • Particle RelativeTime

    • Particle Size

    • Particle Speed

    • Particle SubUV

Meshes

  • Meshes with more than 2 UV channels with materials that use Vertex Color won’t have correct materials in Omniverse Kit.

  • There are issues with exporting Brushes as USD meshes. The commandlet fails to export them, and when they are exported from in the Editor UI they sometimes don’t have the correct materials.

Commandlet Limitations

  • The export commandlet will only export maps, not individual meshes or materials.

  • When a sublevel is exported by the commandlet the persistent (parent) level will also be exported along with all other sublevels.

  • The export commandlet doesn’t currently set the Perspective camera in the custom layer data

  • The export commandlet must be run with the -AllowCommandletRendering flag to support text render actors and USD Preview Surface

Release Notes

101.1 Point Release

Highlights

  • Source code included to allow source builders of Unreal Engine to use the plugin.

  • USD Skeletal Mesh import improvements to support more USD hierarchies

  • Fixed Skeletal Mesh material editing in live-sync

  • Added support for exporting IOR values in MDL with Unreal Ray Tracing Translucency

  • Fixed many custom HLSL material expression issues for MDL export

  • Add import and live-sync support for USD DomeLights as UE4 sky sphere actors.

Features

  • Include source code in the Launcher download to support GitHub Unreal Engine source builds

Bug Fixes

  • Materials

    • Fix an issue where an MDL parameter name might be redefined, causing invalid materials (OM-29128)

    • Fix an issue where deleting a material made in Create while in a live sync session didn’t update in Unreal (OM-28940)

    • Fix missing parameter annotations from parameters in material functions

    • Fix live editing of materials in a skeletal mesh (OM-29530)

  • USD importer will convert mesh from Y-up to Z-up, so cache should be changed if the up-axis is different (OM-29351)

Changes

  • Materials

    • Add support for Unreal’s combined material and post process volume ray tracing translucency in transparent MDLs (OM-27969)

    • Prevent duplicate custom expressions in exported MDLs by using a cache

    • Add support for radians and degrees in custom expressions in exported MDLs

    • Add support for mul in custom expressions in exported MDLs (OM-29276)

    • Support exporting additional outputs for custom expressions (OM-29276)

    • Support exporting additional outputs for custom expressions (OM-29276)

    • Support additional float4 constructors in custom expressions (OM-29276)

    • Unifying the material loading for USD skeletal and static meshes (OM-29351)

    • Add support for DistanceToNearestSurface material node when exporting MDLs by using a constant value to generate a valid material (OM-30208)

  • Skeletal Meshes

    • Reorganize the hierarchy of UsdSkelRoot to fix a missing UsdSkeleton transform, also helpful for the multiple skeletons. (OM-29351)

      • Old: UsdSkelRoot -> SkeletalMeshActor

      • New: UsdSkelRoot -> Actor and UsdSkeleton + UsdMesh -> SkeletalMeshActor

  • Landscapes

    • Export Landscape actors with a GeomSubset and MDL Preset for each Landscape component to address issues with the visibility mask (OM-29643)

    • Only export the Landscape visibility mask once, as opposed to once for every layer

  • Lights

    • Improve skylight when importing a USD stage (OM-27528)

    • Add support for importing USD DomeLights as UE4 sky sphere mesh plus a material that supports some DomeLight properties (textures, exposure, intensity, color)

100.6 Hotfix Release

Highlights

  • Significant Skeletal Mesh and Animation import and export improvements

  • Fix bugs to allow for easy USD timesample/animation exports of recorded sequences - makes it easy to capture dynamic Blueprint behavior as timesampled data

  • Further fixes to material creation live-syncing between Create and Unreal Engine

  • Improvements to mesh caching of USD stages, both during the editor process lifetime (mesh cache) and between editor executions (DDC) - this makes reloading a USD stage significantly faster

  • Added an option to export prims in a stage as Payloads rather than References.

Bug Fixes

  • Fix a USD Skeletal Mesh animation import issue where the start time was being ignored (OM-27456, OM-27454)

  • Fix a Skeletal Mesh export issue when morph targets are employed by using LOD RenderData instead of the LOD Model

  • Fix crash when loading skel root with multiple skeleton bindings as the default prim

  • Fix exporting Level Sequence visibility/boolean sections if there’s only one keyframe (OM-27613)

  • Remove live-syncing of Level Sequence changes because of performance issues

  • Fix exporting spawned Blueprint meshes in Level Sequences (OM-27613)

  • Fix exporting Level Sequence with a 3D constraint section that has an infinite range

  • Fix exporting a mesh component as a Xform prim when there’s no actual mesh asset assigned (OM-27790)

  • Fix exporting material with PrecomputedAOMask in DDS mode

  • Fix a material export crash when HLSL text in custom material expressions contain comments near the end of the text block.

  • Fix a material export/import issue where refraction was removed with using the Fresnel node (now default IOR for invalid refraction is set to 1.491 instead of 1.0)

  • Fix another issue where initial material creation and application on a prim in Create did not live-sync to Unreal Engine (OM-26415)

  • Fix attenuation radius scaling (MetersPerUnit) for spot and point lights

  • Fix scaling (MetersPerUnit) for USD cameras, which use fixed units, so no scaling required

Changes

  • USD Mesh Importing
    • Meshes are now cached by both the mesh cache and the DDC to speed the subsequent loading of unmodified USD meshes

  • USD Payloads and References
    • Add an option to export props as payloads rather than references (OM-28488)

  • Materials
    • Update MDL Core Definitions to version 2.0.0 and set the exported SDK version to 1.6

    • Add support for exporting sincos() HLSL function in custom material expressions (OM-27401)

    • Workaround HLSL usage of the SampleGrad() function in custom material expressions (OM-27401)

    • Support exporting HLSL vector components as left assignment in a custom expression (OM-27401)

    • Add support for exporting Texture2DSample UE4 material function in custom material expressions

    • Add support for HLSL distance in a custom material expression

    • Prevent MDL export errors when encountering View to World and World to View transforms and emit a warning

    • Update the MDL Core materials to support hair color

    • Add MDL display_name annotations to strip the extraneous “inputs:” from the name in Create

    • Add support for exporting 2D Render Targets to PNG and DDS (OM-28954)

  • Animation
    • Add support for exporting a Blueprint animation with the “Copy Pose from Mesh” graph
      • Note: Only attached parent is supported

    • Automatically export a Level Sequence if there’s only one in the level, previously “Auto Play” had to be checked

  • File Support
    • Use UTF-8 (rather than ANSI) when interacting with the Omniverse Client Library to support all possible characters from the Content Browser

  • Installer
    • Make the uninstaller silent (OM-28140)

100.5 Hotfix Release

Features

  • Add the module .Build.cs files to allow C++ source project builds using the Epic Games Launcher source

Bug Fixes

  • Materials
    • Unify MDL export warnings so they all appear in the same message log whether exporting to local disk or Nucleus server

    • Add a new way to identify if the refraction contained in material expressions can be used for MDL IOR. For example, if texture sampling is used to drive refraction attributes in a material, it will be ignored and replaced with the default IOR constant.

    • Fix 4.26 fog volume MDL exports, the subsurface color attribute was incorrect

    • Fix an issue with a missing override material when exporting instanced meshes

    • Fix an issue where initial material creation and application on a prim in Create did not live-sync to Unreal Engine

    • Fix MDL/texture importing when sampled with address mode (wrap vs. clamp)

    • Fix translation of the Panner material expression node to MDL

  • USD
    • Fix a crash when exporting shots in a Level Sequence that end outside the time range

    • Fix a crash by not allowing an imported Level Sequence actor to be renamed

    • Fix a crash when editing the transform of an instanceable prim by locking the movement of an actor if it’s a descendent of an instanceable prim

    • Fix USD warnings when reading incorrect value types

    • Fix an issue where USD mesh shapes axis changes did not live-sync

  • Lights
    • Fix export of SpotLights to USD SphereLights

    • Fix the import of SphereLights as SpotLights to take the stage’s metersPerUnit setting into account

  • Install
    • Fix the uninstall to only delete files that were installed, not the entire folder where the plugins were installed

Changes

  • Materials
    • Add annotation to MDL parameters so that DisplayName, Description, SortPriority, Group, and Range are all exported and visible in Create

    • Add support for the clamped texture sample setting in the texture asset for MDL export

    • Add support for the exporting the PerInstanceRandom material expression node to MDL

  • Other
    • Add a utility Blueprint function to list the contents of a Omniverse server folder (ListOmniverseFiles)

    • Add support for exporting Level Sequence shots with the correct priority into a single Omniverse shot camera

    • Support mapping a Post Process Volume’s “Exposure Compensation” to “cm^2 Factor” in the Tone Mapping RTX Settings in Create

    • Add support for importing USD capsule shapes

    • The defaultPrim on exported stages now have a blank Kind, rather than be set to “group”. This fixes some prim/defaultPrim selection issues in Create.

100.4: Hotfix Release

Features

  • Add the optional OmniverseGroom plugin to 4.25 and 4.26. This plugin will export Groom assets as USD Basis Curves.

Bug Fixes

  • Fix crash when importing Black_Oak from mounted tree library. Do not attempt to reuse an actor of a different class.

  • Fix a crash when closing the editor when connection to an Omniverse server had previously failed

  • Fix a crash when opening an MDL that is referenced from a path larger than 260 characters (or so) due to Unreal Editor path length issues

  • Fix a crash when exporting a Level Sequence actor with a shot in negative time

  • Fix USD Skeletal Mesh animation importing and playing when triggered from within a Level Sequence

  • Fix an issue where imported USD timesamples that changed visibility on a parent prim did not affect children meshes.

Changes

  • Make basic USD shapes (sphere, cube, etc) use the same default material that meshes use when no material is bound

  • Don’t allow deletes of ancestral prims from referenced USDs within a stage

  • Support live replacement of mesh prim from point instancer with a UE4 static mesh

  • Workaround issues related to materials that employ Parallax Occlusion Mapping (POM) since this doesn’t translate well to MDL

  • Add support for the Black-body radiation material expression node with MDL

  • Add primitive data (bounding box, etc) from Unreal Engine to MDLs through a custom expression

  • Trigger Skeletal Mesh animation from within a Level Sequence rather then on the actor to ensure that animations with other actors are synchronized.

100.3: Hotfix Release

Features

  • Add support for MetersPerUnit on import and export for meshes, shapes, cameras, lights, and stages

Bug Fixes

  • Fix crash when editing material caused by Geometry Subset material binding

  • Remove duplicate vertices when exporting UE4 Landscape to USD mesh

  • Fix SkelRoot live edit perf issue

  • Get full data and handle transform exporting from Level Sequence sections even if there’s no key in a shot

  • Avoid crashing when MDL function call creation fails and reports an error

  • SkyAtmosphere material expressions get a constant 0 value when exported as MDL

Changes

  • Always create UE4 actor when loading a USD prim (rather than only if it is a model or lacks a parent component). This changes the layout actors, meshes, components, etc in UE4 to be more like the USD stage. Fewer components, more actors

  • Merge multiple camera sequence shots into a new USD camera while still preserving the original shot cameras

  • Support exporting BC6H/BC7 2D textures

  • Replace UE4 material function DeriveTangentBasis with TangentBasis when exporting MDL materials due to the usage of incompatible DDX and DDY material nodes

100.2: Hotfix Release

Features

  • Add Unreal Engine 4.26 editor support
    • Note: The export folder dialogs in 4.26 do not refresh Omniverse server folders properly. Browse/create folders from the Content Browser first.

Bug Fixes

  • Collision properly exported from stand-alone static mesh asset exports

  • Fix crash when exporting DDS textures when a material uses virtual textures (note, proper VT export is not supported)

  • Fix crash when loading Level with USD actors

  • Fix live-edit of many Cinematic Camera properties

  • Fix binding materials to geometry subsets, honored only if the familyName of subset is UsdShadeTokens->materialBind

  • Remove the “Omniverse USD Sequence+ (usd)” Image Output Format from the Render Movie Settings because it is no longer supported

  • Fix crash when importing USD skeletal meshes. Garbage collection cleans up StaticMeshLOD so some classes needed to be moved to a different module.

Changes

  • Avoid exporting TangentX array for skeletal meshes if unnecessary

100.1: Point Release

Features

  • USD upgraded from 19.11 to 20.08

  • Skeletal Mesh animation import and export support added

  • Level Sequence actor import and export support added (as USD Time-sampled data).

  • USD Scenegraph Instancing export option added

Bug Fixes

  • Improve Blueprint export (for meshes, cameras, text render actors, and lights)

  • Fix normal generation on USD imports that contain no normals

  • Fix live update issues with Camera actors

Changes

  • If DDS textures are exported then they will be referenced by exported materials

    • Note, there’s no DDS importer so the exported textures will not import properly in UE4.

  • Log messages added during export to Omniverse to make it more clear when

  • Add option to include invisible levels when exporting

  • Exporting levels as USD to the file system are now organized as props and references. Previously all meshes were defined in the stage USD file.

  • Add an “About Plugin” dialog from the Omniverse toolbar button

2020.2: Hotfix 2

Bugs

  • Update Omniverse Client Library to 0.9.1064 to address file listing issues and potential data loss while overwriting large files

2020.2: Hotfix 1

Bugs

  • Fix a crash when running in VR Mode in the editor

  • Skip exporting a section if there are no faces

  • Update Omniverse Client Library to 0.9.723-mr2020.2.1-602740bb to fix some LFT issues

  • Fix a couple problems with texture exporting and importing (settings and global texture settings)

Changes

  • Improve the hierarchy of meshes under Blueprint actors when exporting. Remove an extra Xform and make them have a proper origin (not 0,0,0)

2020.2: Point Release

Features

  • New Omniverse Client Library

    • Add support for multiple Omniverse Nucleus servers connected simultaneously

    • References between servers supported

  • Add a right-click save to Omniverse option on assets when Live mode is not enabled

  • Bake O/R/M USD Preview Surface textures to 8-bit gray textures

  • For a shared asset export the MDL Schema will be a material instance based on an MDL Preset, rather than simply pointing to an MDL Preset

    • This reduces the number of materials in a stage export, but note that static switches will still cause distinct material creation

Bug Fixes

  • Fix a reload issue on USD stages, now it will pull the latest version from the server rather than a stale version

  • Fix exporting multiple text components from a Blueprint

  • Fix importing and exporting the relative transform of a USD prim

  • Fix crash when loading MDLs for the first time in a new project

  • Fix getting Export LOD from LandscapeStreamingProxy

  • Fix writing files larger than 2GB to Omniverse

  • Indicate that no filename is necessary when exporting multiple assets and don’t lose the default path when Cancel is hit

  • Use global ::anno style imports for standard MDL modules (per specificiation)

  • Add support for the MDL core library clearcoat and opacity base variants

  • Resolve UDIM path for USD Preview Surface and MDL Schema

    • Note that the UDIM path is resolved with the first texture only. If UV > 1 then the texture shown will be incorrect.

2020.1: Hotfix

Bug Fixes

  • Make sure all characters are UTF8 with MDL exports and imports

  • Replace engine variable with constant in custom expression during exporting

  • Fix distilling of MDLs that use a Fresnel function

  • Notify users that vertex and pixel normal expression cannot be used for MDL IOR

  • Fix an issue where the Omniverse texture etag was saved before a texture load was completed. This prevents random garbage materials appearing on meshes.

  • Avoid loading from empty USD asset path address

  • Support masked materials when exporting and importing USD Preview Surfaces

  • Support actors with the same name in multiple sublevels while exporting USD

  • Fix proto index if there are empty instanced mesh components

  • Fix separating sections to meshes: Note that the number of vertices can’t be obtained from static mesh section

  • Fixing baking preview surface for the dynamic translucent material instance : Dynamic material instance can’t set the parent directly

  • Mangle/Unmangle invalid characters to make UE4 access Omniverse path

Features

  • Use the editor’s Landscape ExportLOD property to determine what LOD to export to USD
    • This is useful because Landscape actors are currently exported as meshes and the size can get out of hand quickly

  • If MDL load fails try to load the preview surface instead (and vice versa)

  • Automatically disable the editor CPU throttling to avoid live editing issues

2020.1: Point Release

Changes

  • 4.25 Support

  • Geometry (Static Mesh)

    • Switched from exporting GeomSubsets to Meshes to support Preview Surface

    • Multiple landscapes in one map is now supported

    • Better support for brush geometry export

    • Text Render actor export

  • Materials

    • Vertex color support added

    • Vertex color painting

    • Landscape layers

    • Unlit translucent material support added

    • Dynamic material instances are exported to a single MDL file (greatly improves rendering performance)

    • Precomputed AO mask support added

    • Texture bombing added

    • Many noise features added

      • Noise

        • Simplex: Perlin

        • Gradient: 2D texture (3D texture not supported)

        • Value

        • Vornoi

      • Vector Noise

        • Cellnoise

        • Perlin 3D

        • Perlin Gradient

        • Perlin Curl

        • Voronoi

  • Cameras

    • Perspective camera in Omniverse Kit defaults UE4 editor perspective camera transform

  • Lighting

    • Some post process settings saved to stage (exposure)

  • Local Workflow

  • Physics

    • Export collision by default

    • Exporting complex, triangle mesh collision

  • Editor Experience

    • Read-only Omniverse mount icon overlay on new Omniverse USD and MDL asset icons

    • Versions in plugin info

    • More/fixed documentation

  • Omniverse

    • Live material updates and stage management bug fixes

  • Automation

    • Level export commandlet

    • Script to automate level export