to a public Git repo! If you accidentally push your login password to a public Git, be sure to change your password immediately. |
If you have not yet created a Space for your users to join, create one now.
Once a User is authenticated, you can immediately place them inside a pre-defined Space. To do this, select Automatic as your Space Join Method. You must then get the ID of the Space you wish them to join. This ID can be copied by clicking on the Join ID at the bottom of the Space thumbnail in the Spaces section of the Cavrnus Management Console.
Image ModifiedYou can then Paste the Join ID into the given field.
Image ModifiedAlternatively you can simply present Users with a list of all the spaces they are currently allowed to join and let them pick one. Select “Spaces List” to trigger a prompt when the team member first enters the space. Note that this requires a Blueprint Widget to be selected as the prompt that will display. A default widget is provided with the Cavrnus Plugin files, but you can also create your own custom design.
Image Modified Info |
---|
Note: A Cavrnus Space will often be filled with Properties pointing to specific paths within your application. Therefore, allowing users to just open any Space could result in them bringing down a Journal that is meant to be for a different application. Example: One of your users has access to a Car Configurator Application which connects to the “Car Config” Space. They also have access to a Conference Room Application. Allowing them to join the “Car Config” Space from the Conference Room Application would give them a bunch of car-related Properties which their Application wouldn’t know what to do with. |
Avatar properties are synchronized the same way in a Cavrnus Space as any other asset. Therefor a pawn or character must, at a minimum, have a SyncTransform component on it to synchronize the User’s movement. The Unique Container Name can be left blank because it will be automatically filled in by the Cavrnus system for each individual user when spawned. In addition to position, avatars can also send & receive other custom properties:
User Color
Left Elbow Transform
Right hand socket
Laser state/color
and more …
Default Pawn Class
Just as any Unreal Engine project, you can define different pawns for the local and remote users. The local avatar is defined in the standard location in Unreal Editor, the Default Pawn Class in the GameMode.
To synchronize a user’s local position to display in other team member’s views, the local player pawn must have a SyncTransform_Character component to post it’s transform matrix to the Journal.
Image ModifiedIn the image above, the default BP_CavrnusPawn blueprint has been derived to create a custom character pawn. The SyncTransform_Character component is inherited from the parent and can be uniquely configured. Other Cavrnus components include the SyncLaserComponent, SyncPawnColor, and the NameTagWidget components, which appears above the character in the viewport. Each of these are necessary for synchronizing specific properties in the character, and are available in the Cavrnus Spatial Connector plugin folder.
Remote Avatar Class
The Remote Avatar Class is assigned in the CavrnusSpatialConnector instance placed in the level. This can use the same Character blueprint as the local user, or use a custom pawn.
Image ModifiedThe Cavrnus Spatial Connector gives you complete control to customize the UI, both while the Space is Loading and once it is ready. The CSC plugin files include several default widgets to get you started, either to use directly or as a template to create your own:
Info |
---|
Spawned menus, such as Loading Screens, will spawn at startup and will then be destroyed once the Space is connected. |
Image Modified
Blueprints can be spawned into the Scene at runtime to further customize the Cavrnus experience. These can be added to the Spawnable Objects list at the bottom of the CavrnusSpatialConnector instance.
Image ModifiedThe Unique Id is what is stored in the Journal as the thing being spawned. The use-case is that objects placed in the scene with this unique identifier can be swapped out with new, modified blueprints. The properties stored in the Journal would then be applied to this new blueprint as though it were the original.
Image Modified