The Unreal HoloSuite Player uses the OMSMeshActor class, which follows the Media Framework (External Link) for video playback, and regular UE materials using a custom Material Function for rendering. Users can integrate the player with any Material graph or Blueprint scene logic.
This is the plugin reference documentation for working with the HoloSuite player inside Unreal Engine.
For a step by step guide to setting up a HoloSuite Player in Unreal, refer to the Player Configuration example document.
The OMSMeshActor class is used to create OMS players in your scene. It drives necessary components of the Arcturus OMS Material function and can be configured to specify an OMS file and enable or disable retargeting. This class drives OMS playback in conjunction with an ArcturusOMS Material Function.
The OMSMeshActor class contains the following plugin-specific properties:
OMS: An OMS file for mesh playback.
Texture Source: An MP4 video or an image sequence for texture playback.
Mesh Material: A Material for OMS Playback. This material should include an ArcturusOMS Material Function for proper playback.
Media Player: An automatically generated Media Player configured with a corresponding Media Texture. See Media Player for OMS Playback for more information.
Media Player Material: An automatically generated Material for the Actor’s Media Player. See Media Player for OMS Playback for more information.
Media Sound Component: An automatically generated MediaSoundComponent for the Actor’s Media Player. See Media Player for OMS Playback for more information.
Play on Open: Toggle whether the OMS should play automatically.
Loop: Toggle whether the OMS should loop, i.e. should restart once it finishes playback.
Frame Rate: Set the Frame Rate. If your mp4 file was exported with a custom frame rate, set this parameter to match your exported frame rate.
Retarget Enabled: Enable Retargeting for OMS files that have been exported with rigging data.
Retarget Skeletal Mesh: A Skeletal Mesh for Retargeting. It must be created automatically from any OMS containing rigging data.
Responsive AA: Toggle to enable responsive anti-aliasing. This feature is experimental and aims to address playback motion blur.
ArcturusOMS Material Function¶
OMSMeshActors drive the Arcturus OMS Material function in an assigned Material for OMS Playback. In order to play back correctly, you will need to configure the properties of your OMSMeshActor to the corresponding OMS and material.
The Arcturus OMS Material function is used to animate and texture OMS files for playback. Used in combination with an OMSMeshActor Class this Material function drives OMS playback. The ArcturusOMS node has three Output Pins:
Texture: The Color texture sampled from the Media Player assigned to the object’s OMSMeshActor class.
Normals: The Mesh Normals produced from SSDR deformation.
World Position Offset: The World Position Offset required to deform the mesh for playback.
For a simple player, these pins can be connected to the Emissive (or base) color, Normal, and World Position Offset outputs, respectively. In your Custom Materials, apply additional nodes as needed between the ArcturusOMS function and your output node.
Media Player for OMS Playback¶
A Media Player, media texture, and a media player material are automatically generated during OMSMeshActor configuration.
One Media Player configured to control Playback.
One Media Texture configured to select the corresponding Media Player that was generated.
One Material to shade the Media Player playback. This Material contains one Texture Sample node sampling the Media Texture, connected to the Emissive Color output pin.
One key feature of OMS Playback is Retargeting. Retargeting allows you to dynamically re-pose your volumetric capture like any other Skinned Mesh in Unreal without disrupting playback.
Using the AnimGraph, you may re-animate any bones embedded in the OMS via the Generate Skeleton stage. If Skin Weights have been provided, either manually or via the Generate Skin Weights for Head Retargeting stage in HoloEdit, the weighted vertices will be transformed accordingly.
To enable retargeting, you must configure a Skeletal Mesh, Skeleton, and Animation Blueprint. The components of Retargeting are as follows:
Skeletal Mesh: A mesh bound to a hierarchical skeleton of bones which can be animated for the purpose of deforming the mesh. This should be created automatically from any OMS containing rigging data.
Skeleton: A component that links between mesh and animation. It must be created via right clicking on the SkeletalMesh component and choosing “Create Skeleton” from the “Skeleton” category.
Retargeting Blueprint: Retargeting uses an Animation Blueprint to drive animation during playback.
See Retargeting Configuration to learn how to configure an OMSMeshActor with retargeting enabled.
Blueprints and Scripting¶
Getters and Setters: Most OMSMeshActor properties have corresponding getter and setter functions to modify them on runtime through Blueprint logic.
Is Playing: Returns true if playback is occurring.
Pause: Pauses playback.
Play: Starts playback.
Seek: Seeks to the specified playback time.
Set Frame: Sets the frame from which a new mesh should be read from the source OMS file. Should be used carefully, most use cases call for the use of Seek() instead.
Try Set Frame: Attempts to set the frame from which a new mesh should be read from the source OMS file. Safer than SetFrame but should still be used carefully, most use cases call for the use of Seek() instead.
LoadOMSFromPath: Loads an OMS file from the specified path. This is not necessary for standard OMS playback workflows.
LoadTextureSourceFromPath: Loads an MP4 file or image sequence from the specified path. This is not necessary for standard OMS playback workflows.
OpenNewSource: Assigns a new OMS file and a new MP4 file or Image Sequence to the actor. Automatically starts playback after completion if PlayWhenReady is enabled.
OpenOMS: Assigns a new OMS file to the actor.
OpenTextureSource: Assigns a new MP4 file or Image Sequence to the actor.