Built-In Multiplayer

ūüď£ Read the Discord Announcement for this feature

New Multiplayer update! Create motion capture with other players, instantly export multi-avatar motion capture to Blender. Includes chat worlds and motion capture worlds. Create motion capture with other players, then export multi-avatar scenes and motion capture directly to Blender for final rendering. 

Multiplayer Features:

APS Dedicated Server v5.9.8

A lightweight server application for hosting mocap rooms and custom chat worlds. The dedicated server is used for hosting the game and worlds for other users join. The dedicated server can also be used to host local LAN games for eg. a small dev studio.

With the APS Dedicated server properly configured and running players should then be able to connect to the server from Mocap Fusion [VR]. from steam and in the multiplayer menu enter the IP or domain of the server and  players  Full body tracking is , fully finger tracking, VOIP and simultaneous motion capture of multiple avatars in a shared VR environment. 

Motion capture is recorded on the local player's PC then may be uploaded, the collection of animation data can be exported to Blender as a scene containing all avatars and ready for final rendering in Cycles or EEVEE engine. The APS Multiplayer mode allows all players in a online or private room to record mocap, sync the animations and export the mocap data in a single Blender scene.

APS Dedicated Server for Linux

APS Dedicated Server for Windows

Linux setup:

After downloading  the Dedicated Server for Linux  cd into the build folder and you should see a  server.cfg file. This file contains the parameters to setup the server. In most cases only a scene_url needs to be set, this file also contains parameters for more advanced configurations, eg. running multiple background servers on a single machine each with for a different custom world.

The most basic command to launch the server from Linux in a terminal:

$ ./build.x86_64

That should start the server.

If you see a Permission denied error it means that build.x86_64 has not been set as executable. To make the file executable run the command:

$ sudo chmod +x build.x86_64


From here it would be necessary to edit server.cfg and add a file download URL for the scene asset.

When players join the room they will need to download the scene, using a fast file hosting site is recommended, rather than hosting the scene file locallly. This can save lots of bandwidth on the local server!

Optionally if scene URL is left blank the server will try to locate for first *.scene file in the working directory and tries to host the file locally (local hosting is intended for small scene files only, or if only a few players intend to join).


Advanced Configuration

If you wish to run the server in the background (detached from shell) you can run the command:

$ nohup ./build.x86_64 > log.txt 2>&1 &

That should launch the server in the background and run indefinitely.

Note: the "2>&1 &" is needed to detach the process and redirect output to the log.

To terminate the process you can simply run the command:

$ sudo killall build.x86_64

That should completely end all dedicated server processes system wide!

It may be required to run the command multiple times if multiple background processes have been started.

Supplying the optional -c or -config parameter specifies the server.cfg path. 

This allows you to create several server.cfg files for hosting multiple worlds (ensure each config has unique port numbers!!). 

For example, If you wish to run multiple servers in the background:

$ nohup ./build.x86_64 -c server_island.cfg > log_island.txt 2>&1 &

$ nohup ./build.x86_64 -c server_mirror_room.cfg > log_mirror_room.txt 2>&1 &

This would launch two background servers, each with a different configuration,.

Also you may create a .sh file containing those similar commands to start or restart many server/rooms at once.

server.cfg

Opening server.cfg with a text editor you will see some parameters and default values:

{

"password": "",


"listen_address": "0.0.0.0",

"listen_port": 7777,

"data_port": 8887,


"connection_timeout": 100000,


"scene_url": "",

"avatar_file_size_max": 100000000,


"max_players": 20,

"motion_capture": true,


"record_seconds_max": 10,

"record_framerate" : 30, 


"encode_audio": true,


"nsfw_allowed": false,


"server_tick_rate": 50,

}

Most of the defaults values are okay to leave unchanged, however these are the settings that are loaded by the server when it starts, and must be set properly to get the server up and running.

Most important is the scene_url which is used whenever a new players joins the game and instructs the client where to download the scene asset from. You can host the scene file a number of ways, and many file hosing sites work, Medifire and Google drive seem to work well. If no scene_url is specified then the APS server will try to locate the first *.scene file in the folder and host it on the data_port socket connection.


Parameters Description: