Cavrnus Unreal API Headers
The Cavrnus API provides access to a wide range of public functions. Many of these functions can be accessed through the no-code features of the Cavrnus system, as well as pre-configured blueprints. These API calls are available for you to code your own custom blueprints and interfaces. To gain a deeper understanding, descriptions of the header files are provided in the following pages.
General Notes:
The plugin heavily relies on delegates (callbacks) for asynchronous operations and event handling.
The plugin has a robust system for managing properties of different data types, define default values, and then bind to property updates.
The plugin includes features for user management, voice and video communication, and remote content handling.
Workflow:
The following workflow describes how to integrate the Cavrnus Spatial Connector into your project. The provided workflow is purely for illustration purposes, as most of this work is done automatically for you simply by dropping in the CavrnusSpatialConnector actor into a Level within the Unreal Editor interface.
1. Configuration:
Set up the plugin settings using
UCavrnusConnectorSettings
, specifying parameters like auto-start behavior, RelayNet configuration, and logging options.
2. Authentication:
Use
UCavrnusFunctionLibrary
to authenticate users, either with email/password (AuthenticateWithPassword
) or as a guest (AuthenticateAsGuest
).Handle login UI interactions using
UCavrnusLoginWidget
andUCavrnusGuestLoginWidget
.
3. Space Selection and Joining:
Fetch and display available spaces using
UCavrnusFunctionLibrary::FetchJoinableSpaces
andUCavrnusSpaceListWidget
.Implement pagination for the space list using
UPagination
andIListElementInterface
.Allow users to select a space and join it using
UCavrnusFunctionLibrary::JoinSpace
.
4. Property Synchronization:
Attach Cavrnus Value Sync components (e.g.,
UCavrnusValueSyncFloat
,UCavrnusValueSyncTransform
) to actors to synchronize their properties.Configure the components with the property names and update settings.
5. Real-Time Updates:
Use Cavrnus Live Property Update classes to send and receive real-time property updates between Unreal Engine and Cavrnus.
6. User Interface:
Create custom UI elements by extending
UCavrnusBaseUserWidget
.Display user information and video streams using
UCavrnusUserWidget
.Utilize
UTexture2dDynamicHelper
to handle dynamic textures in the UI.
7. Additional Features:
Explore other functionalities provided by
UCavrnusFunctionLibrary
, such as chat messaging, object spawning, permissions management, and voice/video communication.
- 1 General Notes:
- 2 Workflow:
- 3 Public Headers
- 3.1 Core Headers
- 3.2 FlagComponents
- 3.3 LivePropertyUpdates
- 3.4 Types
- 3.5 UI
- 3.6 UI/Pagination
- 3.7 UI/SpaceList
- 3.8 ValueSyncs
Public Headers
The header files & folders in the Source/Public folder define the structure and functionality of the Cavrnus Spatial Connector plugin for Unreal Engine.
Core Headers
The core functionality of the Cavrnus Spatial Connector, including the definition of the CavrnusSpatialConnector actor that can be placed in a level to immediately connect your Unreal project to the metaverse.
FlagComponents
The header files in the FlagComponents folder relate to flagging or marking entities within the Cavrnus system (users, avatars, spawned objects). These components play a role in identifying and tracking these entities for collaboration.
LivePropertyUpdates
The header files in the LivePropertyUpdates
folder define a set of classes designed to handle real-time updates of different property types within the Cavrnus collaborative environment. These classes share a common base class, UCavrnusLivePropertyUpdate
, and provide specialized functionality for specific data types.
CavrnusLivePropertyUpdate.h
CavrnusLiveBoolPropertyUpdate.h
CavrnusLiveFloatPropertyUpdate.h
CavrnusLiveStringPropertyUpdate.h
CavrnusLiveTransformPropertyUpdate.h
CavrnusLiveVectorPropertyUpdate.h
CavrnusLiveColorPropertyUpdate.h
Types
The header files in the "Types" folder define essential data structures used throughout the Cavrnus Spatial Connector plugin.
CavrnusAuthentication.h
CavrnusBinding.h
CavrnusCallbackTypes.h
CavrnusInputDevice.h
CavrnusOutputDevice.h
CavrnusPropertyValue.h
CavrnusRemoteContent.h
CavrnusSpaceConnection.h
CavrnusSpaceInfo.h
CavrnusSpawnedObject.h
CavrnusUser.h
CavrnusVideoInputDevice.h
PropertyId.h
UI
The header files in the "UI" folder define the core structure and functionality of the user interface (UI) elements for the Cavrnus Spatial Connector plugin. They enable users to log in, select spaces, view other users, and potentially perform other essential actions within the collaborative environment.
CavrnusBaseUserWidget.h:
CavrnusGuestLoginWidget.h:
CavrnusLoginWidget.h:
CavrnusSpaceListWidget.h:
CavrnusUserWidget.h:
Texture2dDynamicHelper.h:
UI/Pagination
The header files in the "Pagination" folder define the UI structure and interface for handling pagination of list elements within the Cavrnus Spatial Connector plugin.
IListElementInterface.h:
Pagination.h:
UI/SpaceList
The header files in the "UI/SpaceList" folder define the UI elements and logic for displaying and interacting with a list of Cavrnus spaces.
SpaceListEntry.h:
SpaceListOption.h:
ValueSyncs
The header files within the ValueSyncs
folder, along with IPropertySyncInterface.h
, form a structured system for synchronizing property values between Unreal Engine and the Cavrnus platform.
CavrnusValueSyncBase.h
CavrnusValueSyncBoolean.h
CavrnusValueSyncColor.h
CavrnusValueSyncFloat.h
CavrnusValueSyncString.h
CavrnusValueSyncTransform.h
CavrnusValueSyncVector.h
IPropertySyncInterface.h
Â