Motion Capture - Live Recorder
The Live Recorder allows to receive animation data from Face Cap, Hallway Tile, Live Link Face or iFacialMocap and animate the active character in real-time. Head rotation and location as well as shape key data can be animated and recorded in real-time. After stopping the receiver, the animation data can be imported directly into a Blender action, on the active character or the control rig.
Setup
- Make sure that your character is properly registered for mocap (see Mocap Setup).
- Both the computer running Faceit and the device running the capturing application should be on the same network or on the same device.
- Blender should be allowed to communicate in the firewall settings of your computer.
- Depending on your sending application settings, you might need to change the default port and address settings.
- Leave the address field at the default
0.0.0.0
to make sure that all data on your network is received. To receive data from a specific device only, enter the IP-address of that device in the Address field. - Enter a specific port or leave it at the default for each app (It's important to send and receive on the same port).
- See the Network Troubleshooting section below for common issues and how to solve them.
Address and port settings in Faceit.
Application Settings
Face Cap
Read more about Face Cap App here.
- Tap the
Go Live
button in the Face Cap main menu. - Tap the
Connect/Disconnect
button in the following menu. - In the
Server IP & Port
settings that pop up, do the following.. - In the first field, enter the (local) IP-address of your PC/mac running Blender.
- In the second field, enter the same number that you entered in the Faceit port field (default
9001
). - Hit
Connect
to start streaming data to the PC. - Start the receiver in Faceit.
In-App Purchases
The Face Cap app itself is free-to-use, but the live streaming functionality is time capped to 5 seconds. You can unlock unlimited streaming via an in-app purchase (34.99$ - price may vary based on your region).
Connect/Disconnect: Opens a popup to start or stop a live mode sesstion.
Live Link Face
- Go to Settings.
- Make sure the capture mode is set to
Live Link (ARKit)
. - Under
Streaming/Live Link
add a newtarget
. - Enter your PCs
IP address
. - Leave the port at
11111
if you don't have a specfic reason for changing it. - The live link face app is sending to the targets by default. There is no need to start the process.
- Start the receiver in Faceit.
A quick setup is required before the data can be received.
Hallway Tile
- Go to the
OSC
settings. - You can leave the
Host
field at the default0.0.0.0
. Alternatively, you may enter the IP address of your computer running Blender. - The
Port
number should match the port number entered in Blender (default9001
). - Check
Enable OSC Streaming
. - It doesn't matter witch character you choose in Hallway Tile. The sent data will be the same.
- Start the receiver in Faceit.
If you are running Faceit and Tile on the same device, you can keep the default settings.
iFacialMocap
- Open
Settings
. - Enter your PCs
IP address
as target in the respective field. - Default
port
is 49983. Make sure that the port in Faceit and iFacialMocap match. - Start the receiver in Faceit.
You don't need to install the iFacialMocap software or the Blender add-on. Faceit can receive the data directly.
Start Capturing
- Make sure that the capturing application is sending data.
- Hit
Start Receiver
in Faceit. - The character should now move in real-time.
- Hit
Stop Receiver
to stop the recording. - If animation data was received, you can now import it onto your character.
Warning
The data won't be imported automatically. You need to execute the import operator after stopping the receiver.
Check the options dropdown for filtering and smoothing options.
Improve Live Performance
A laggy real-time playback does not necessarily mean that the recording is choppy. The received data is recorded on a separate thread and after importing the recorded frames to an action it should contain smooth continuos motion. It might still be desirable in many scenarious to have a smooth real-time playback. There are multiple factors that contribute to the quality and speed of real-time animation in the viewport! Read on below.
- Custom Normals and Auto Smooth:
- These functions are very demanding and can slow playback performance immensely!
- This neat little script by Artell will quickly remove them from your scene:
import bpy
def set_active_object(object_name):
bpy.context.view_layer.objects.active = bpy.data.objects[object_name]
bpy.data.objects[object_name].select_set(state=1)
for obj in bpy.data.objects:
if obj.type != "MESH":
continue
try:
set_active_object(obj.name)
except:
continue
obj.data.use_auto_smooth = False
try:
bpy.ops.mesh.customdata_mask_clear()
except:
pass
bpy.ops.mesh.customdata_custom_splitnormals_clear()
- Hide Meshes:
- Clean Up Weights:
- Playback Options:
- Simplify Scene
- Maybe you have a subdivision surface modifier in the stack or a multires modifier. I like to use the simplify settings to quickly toggle all modifiers on/off. Click here to learn more about simplify settings
- Maybe you have a subdivision surface modifier in the stack or a multires modifier. I like to use the simplify settings to quickly toggle all modifiers on/off. Click here to learn more about simplify settings
- Rendermode
- The OSC data is streamed over your Wifi network. You should aim to optimize streaming performance. Usually this shouldn't be the bottleneck on modern setups.
Troubleshooting
Receiving animation data from the local network is quite simple, but there are a few pitfalls to be aware of.
How do I find my IP address?
It sais "No recorded Data found."
This is most likely a network issue. Make sure that you followed the Network Setup correctly. Read on below for some additional tips.
- Make sure that your PCs Firewall is not blocking connections for Blender.
- Allow/Block programs in Windows10
- Allow/Block programs in MacOS
- Make sure that both the streaming device and the PC running Blender are in the same local network. If you are unsure if the devices are in the same network you can quickly execute a ping test and check if it is successful.
- Read all about address & port configuration here.
Help! The network performance is bad / laggy / choppy!
- If the performance is bad and you are sure that it is related to the network, it might help to restart the router and give it some time to cool off.
- Bad performance might also be caused by the scene complexity in Blender. Read more about optimizing performance here.
- Lastly, if you are using Face Cap, your iPhone might be the bottleneck. The phone running hot can impact the stream performance. Giving it some time to cool down between shots can help.