Capture Studio: Difference between revisions
Line 213: | Line 213: | ||
* '''Xsense''' | * '''Xsense''' | ||
* '''Rokoko''' | |||
* '''Qualisys''' | |||
* '''PeelCapture''' | * '''PeelCapture''' | ||
Line 223: | Line 225: | ||
[[File:Search Motion Capture Type.png|center|frameless|1456x1456px]] | [[File:Search Motion Capture Type.png|center|frameless|1456x1456px]] | ||
====== Optitrack | ====== Optitrack ====== | ||
# Enable Remote Trigger. | # Enable Remote Trigger. | ||
# Fill in the XML Broadcast Port into Capture Studio. | # Fill in the XML Broadcast Port into Capture Studio. | ||
Line 233: | Line 234: | ||
'''If you can not find XML Broadcast Port, you can check Optitrack document. [https://docs.optitrack.com/motive/data-streaming#xml-broadcast-port V3.1], [https://docs.optitrack.com/v/v3.0/motive/data-streaming#remote-triggering V3.0]''' | '''If you can not find XML Broadcast Port, you can check Optitrack document. [https://docs.optitrack.com/motive/data-streaming#xml-broadcast-port V3.1], [https://docs.optitrack.com/v/v3.0/motive/data-streaming#remote-triggering V3.0]''' | ||
====== Vicon | |||
'''START'''<blockquote><?xml version="1.0" encoding="UTF-8" standalone="no" ?> | |||
<CaptureStart> | |||
<Name VALUE="RemoteTriggerTest_take01"/> | |||
<SessionName VALUE="SessionName" /> | |||
<Notes VALUE="Take notes goes here if any"/> | |||
<Assets VALUE="skel1, skel2, sword" /> | |||
<Description VALUE="" /> | |||
<DatabasePath VALUE="S:/shared/testfolder/"/> | |||
<TimeCode VALUE="00:00:00:00"/> | |||
<PacketID VALUE="0"/> | |||
<HostName VALUE="optional host name" /> | |||
<ProcessID VALUE="optional process id" /> | |||
</CaptureStart></blockquote>'''STOP'''<blockquote><?xml version="1.0" encoding="utf-8"?> | |||
<CaptureStop> | |||
<Name VALUE="TakeName" /> | |||
<Notes VALUE="Take notes go here if any." /> | |||
<Assets VALUE="skel1, skel2, sword" /> | |||
<TimeCode VALUE="00:00:00:00" /> | |||
<HostName VALUE="optional host name" /> | |||
<ProcessID VALUE="optional process id" /> | |||
</CaptureStop></blockquote> | |||
====== Vicon ====== | |||
# Enable '''Triggered Capture'''. | # Enable '''Triggered Capture'''. | ||
# Set the same port number. | # Set the same port number. | ||
# Enable recording at the motion capture. | # Enable recording at the motion capture. | ||
[[File:Vicon.png|center|frameless|447x447px]] | [[File:Vicon.png|center|frameless|447x447px]][https://help.vicon.com/space/Shogun112/31233490/Control+remote+capture Vicon Document] | ||
'''START'''<blockquote><?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<CaptureStart> | |||
<Name VALUE="dance"/> | |||
<Notes VALUE="The pets ants crime deer jump. "/> | |||
<Description VALUE="The crowd pencil pets alert fold deer. With welcome practice representative complete great? Or jolly tiny memorise thread. However wool insect pipe! "/> | |||
<DatabasePath VALUE="D:/Jeremy/Susan/Captures/Take"/> | |||
<Delay VALUE="33"/> | |||
<PacketID VALUE="33360"/> | |||
</CaptureStart></blockquote>'''STOP'''<blockquote><?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<CaptureStop RESULT="SUCCESS"> | |||
<Name VALUE="dance"/> | |||
<DatabasePath VALUE="D:/Jeremy/Susan/Captures/Take"/> | |||
<Delay VALUE="33"/> | |||
<PacketID VALUE="33361"/> | |||
</CaptureStop></blockquote> | |||
====== Xsense ====== | |||
[https://base.movella.com/s/article/UDP-Remote-Control?language=en_US Xsense document] | |||
'''START'''<blockquote><?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<CaptureStart> | |||
<Name VALUE="Optional Name of the take/capture. When set, it defines the base filename to use for this specific recording. When missing, the current session information will be used" /> | |||
<SessionName VALUE="Ignored" /> | |||
<DatabasePath VALUE="Optional Path to write the data to. Prefixed to the Name parameter if present." /> | |||
<TimeCode VALUE="Optional Desired time of start of capture" /> | |||
<Notes>Optional Additional text to be stored in the capture</Notes> | |||
</CaptureStart></blockquote>'''STOP'''<blockquote><?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<CaptureStop> | |||
<Name VALUE="Optional Name of the take/capture, ignored by MVN" /> | |||
<TimeCode VALUE="Optional Desired time of end of capture" /> | |||
<Notes>Optional Additional text to be stored in the capture. This will replace the Notes from CaptureStart if present.</Notes> | |||
</CaptureStop></blockquote> | |||
====== Rokoko ====== | |||
[https://support.rokoko.com/hc/en-us/articles/14905272191505-Rokoko-Studio-UDP-Trigger-Messages Rokoko document] | |||
'''START'''<blockquote><?xml version="1.0" encoding="UTF-8" standalone="no" ?> | |||
<CaptureStart> | |||
<Name VALUE="RemoteTriggerTest_take01"/> | |||
<TimeCode VALUE="00:00:00:00"/> | |||
<PacketID VALUE="0"/> | |||
<ProcessID VALUE="optional process id" /> | |||
</CaptureStart></blockquote>'''STOP'''<blockquote><?xml version="1.0" encoding="utf-8"?> | |||
<CaptureStop> | |||
<Name VALUE="TakeName" /> | |||
<TimeCode VALUE="00:00:00:00" /> | |||
<SetActiveClip VALUE="False"/> | |||
<ProcessID VALUE="optional process id" /> | |||
</CaptureStop></blockquote> | |||
====== Qualisys ====== | |||
[https://docs.qualisys.com/qtm/#Project_options/udp_trigger.htm Qualisys Document] | |||
'''START'''<blockquote><?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<CaptureStart> | |||
<Name VALUE="measurement name"/> | |||
<DatabasePath VALUE="measurement directory"/> | |||
<Delay VALUE="0"/> | |||
<PacketID VALUE="increasing number"/> | |||
<HostName VALUE="computer name"/> | |||
<ProcessID VALUE="process id (to be able to easier ignore own udp broadcast messages"/> | |||
<Notes VALUE=""/> | |||
<Description VALUE=""/> | |||
<Timecode VALUE=""/> | |||
</CaptureStart></blockquote>'''STOP'''<blockquote><?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<CaptureStop RESULT="SUCCESS/FAIL/CANCEL"> | |||
<Name VALUE="measurement name"/> | |||
<DatabasePath VALUE="measurement directory"/> | |||
<Delay VALUE="0"/> | |||
<PacketID VALUE="increasing number"/> | |||
<HostName VALUE="computer name"/> | |||
<ProcessID VALUE="process id (to be able to easier ignore own udp broadcast messages"/> | |||
</CaptureStop></blockquote> | |||
== FAQ == | == FAQ == | ||
Revision as of 08:03, 19 August 2024
Capture Studio is a next-generation high-precision facial capture software launched by FACEGOOD, primarily targeting enterprise-level, large-scale, multi-actor facial capture scenarios, providing motion capture teams with 24/7 uninterrupted, stable, wireless, multi-channel, real-time, recording, and motion capture-triggered facial capture capabilities.
Paired with the FACEGOOD Stereo-HMC P2 binocular hardware system, this hardware system adopts the SmartUnit edge computing architecture, separating computation from control, enabling Capture Studio to be installed on any desktop computer running Windows, significantly lowering the software installation threshold. Meanwhile, based on the SmartUnit architecture, the P2 hardware system reduces the number of spare parts by 50% compared to the previous generation P1 system, making it easier to maintain and use. The SmartUnit edge computing architecture of the P2 provides ample computing power for motion capture teams, allowing for an unlimited number of synchronized actors. Capture Studio's real-time facial capture capability is outstanding, with built-in SeattleAI technology supporting real-time facial capture for actors of any ethnicity and age group, directly driving 660 blend shapes and 820 bone points of metahuman binding, with an accuracy 20 times that of ARKit. Additionally, motion capture teams can conduct AI training for their own binding systems to achieve higher precision in the end.
DOWNLOAD NOW!!!
Note:
① Capture Studio software only supports the FACEGOOD Stereo-HMC P2 binocular hardware system at the moment. Other HMC devices cannot be controlled using Capture Studio.
② The camera of P2 is a 920nm infrared camera, which can block indoor lighting sources. However, outdoor infrared sources may interfere with the camera's operation, potentially causing overexposure in backlit conditions.
Quick Intro
Log in to Capture Studio
- Open Capture Studio and enter your account credentials to log in at the login screen.
Search for SmartUnit and join
When you get SmartUnit for the first time, you need to go through the following steps to make Capture Studio discover it.
Preparation
- Monitor
- Keyboard and Mouse
- Ethernet Cable (optional)
Connection and Startup
- Connect the Monitor
- Find the HDMI cable provided in the packaging and connect the SmartUnit to the monitor.
- Connect the keyboard and mouse, then power on the device.
- Login to the System
- Enter the password `facegood` (lowercase) to access the main interface.
Connect to WIFI
- Select Network
- Click the button in the upper right corner and choose `Select Network`.
- Connect to WIFI
- In the WIFI list that appears, select the WIFI that is on the same local network as your Windows host.
Use Capture Studio on Windows
- Search for SmartUnit
- Open Capture Studio on Windows, and it should detect the SmartUnit.
- Troubleshooting if SmartUnit is Not Detected
- Follow the steps below to diagnose the issue.
Find the IP Address of SmartUnit
Method 1: Find IP Address via Settings
- Open Settings
- Click `Setting` in the upper right corner.
- Find WIFI IP Address
- On the left side, go to the `WI-FI` option and click the gear icon next to `Connected` on the right side.
- In the window that appears, the `IPv4 Address` is the WIFI IP address.
- Find Ethernet IP Address
- If an Ethernet cable is connected, go to the `Network` option on the left side and click the gear icon next to `Wired`.
- In the window that appears, the `IPv4 Address` is the Ethernet IP address.
- Note: The two IP addresses are different.
Method 2: Find IP Address via Terminal
- Open Terminal
- Right-click on the desktop and select `Open in Terminal`.
- Enter Command to View IP Address
- Enter `ifconfig`: The `inet` under `enpxxx` is the Ethernet IP address, and the `inet` under `wlo1` is the WIFI IP address.
Check Connection on Windows
- Open Command Prompt
- Press `Ctrl+R` on Windows, type `CMD`, and press Enter to open the Command Prompt.
- Enter ping Command
- Type `ping -t xxx.xxx.xxx.xxx` (preferably the Ethernet IP address) and check the result.
- Result 1: If you get "Destination host unreachable"; you are not on the same local network, please contact your IT department.
- Result 2: If you get replies, everything is normal, and you can find the SmartUnit in Capture Studio.
- Type `ping -t xxx.xxx.xxx.xxx` (preferably the Ethernet IP address) and check the result.
By following these steps, you should be able to successfully connect and use the SmartUnit. If you encounter any issues, please contact technical support.
Adjust the camera parameters
- Click on the "Eye Button" in the display area to show the camera feed.
- Click on the "settings button" in the bottom left corner of the screen to adjust recording information.
Adjust helmet wearing
- When wearing the helmet, remove glasses and ensure hair does not cover the eyebrows. If the screen is blurry, check for any dirt obstructing the lens. With the P2 helmet, adjust the focus by twisting the lens direction.
- Adjustment criteria:
- Ensure the actor's facial features are clear and unobstructed.
- Align the center of the nose with the center of the camera.
- Maintain clear focus without overexposure or underexposure.
Record and download
- Start/stop recording (recorded content will be saved in SmartUnit).
- The download interface will display all video files from connected SmartUnits.
- After setting the download location, click "Download."
RealTime
View in Capture Studio
To configure real-time capture settings, click the "Settings" button in the bottom left corner of the screen. You'll need to choose the Avatary.AI type (Metahuman\ARKit).
Then, click "choose real-time solving" to select the current frame for real-time solving. Finally, click the "Start" button.
Back on the main page, open the "expression tuning" subpage in the title bar. Here, you'll be able to see the real-time driving effects of the built-in models in the capture studio.
These steps will help you easily set up real-time capture settings and adjust expressions during the capture process for more accurate and realistic results.
View in UE
Please use UE5.3 or above, please refer to the UE tutorial from this link.
Calibrate Headset
Overview
Capture Studio provides two methods, screenshot and ruler, to calibrate the position of the helmet. These methods ensure maximum consistency in the helmet's position during each recording. Typically, helmet calibration is used for facial expression library solving and custom training projects.
Usage instructions
Snapshot
- Please right-click on the screen and select "Snapshot," then click "Console" to view the location where the screenshot is saved.
- When you need to record again, load the previously saved actor's screenshot so the software can quickly and accurately locate the position of the helmet from the previous session, thus improving work efficiency.
- After loading the screenshot, the previous helmet position will be displayed as a ghost image on the screen. At this point, align the positions of the sides of the nose and try to align the corners of the eyes and mouth with the ghost image as much as possible.
- It's important to note that different helmets may have different lens settings. Therefore, after changing the helmet, it may not be possible to adjust to the exact same angle as the previous helmet.
Ruler
- Our software supports dragging out annotation lines, allowing you to quickly and accurately locate the previous position of the helmet.
- Right-click on the screen and select "Show face rule" to enable this feature. Once enabled, simply drag out the annotation lines from the left or top of the screen to use them.
Audio & Timecode Device
Audio
- Using the P2 in Capture Studio will automatically use the P2's built-in audio, so you don't have to choose.
Timecode
Timecode devices are typically used to ensure frame alignment between multiple videos during animation pipeline. As different computer systems may have time discrepancies, using timecode ensure that the recording time remains consistent across different machines.
How to connect timeCode device
- Check FACEGOOD Hardware -> P2 Hardware Setup Guide
Capture Studio setting
Once the timecode hardware is connected
- In the audio settings tab, select the timecode device from the dropdown menu.
- Click the "Open" button next to the TimeCode to establish the timecode connection.
- After click 'Open', the timecode information will be displayed in real-time in the time information section below.
- Offset: to adjust the timecode offset by one unit of time.
Motion Capture Trigger
Overview
- Within the same LAN, the motion capture device triggers the facial capture recording, enabling synchronized recording of motion capture and facial capture. The naming convention for synchronized recording files is as follows:
FG_{performer name}_{device name}_{motion trigger name}_{current time}.mov
Currently supported motion capture devices
- Optitrack
- Vicon
- Xsense
- Rokoko
- Qualisys
- PeelCapture
How to use
- In Capture Studio, check the motion capture trigger option and select the corresponding motion capture device. Set the signal port to match the one on the motion capture.
- On the motion capture software, set the same port number as well.
- Set the file name on the motion capture software.
Optitrack
- Enable Remote Trigger.
- Fill in the XML Broadcast Port into Capture Studio.
XML Triggering Port: Command Port (Advanced Network Settings) + 2. This defaults to 1512 (1510 + 2).
If you can not find XML Broadcast Port, you can check Optitrack document. V3.1, V3.0
START
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<CaptureStart>
<Name VALUE="RemoteTriggerTest_take01"/>
<SessionName VALUE="SessionName" />
<Notes VALUE="Take notes goes here if any"/>
<Assets VALUE="skel1, skel2, sword" />
<Description VALUE="" />
<DatabasePath VALUE="S:/shared/testfolder/"/>
<TimeCode VALUE="00:00:00:00"/>
<PacketID VALUE="0"/>
<HostName VALUE="optional host name" />
<ProcessID VALUE="optional process id" />
</CaptureStart>
STOP
<?xml version="1.0" encoding="utf-8"?>
<CaptureStop>
<Name VALUE="TakeName" />
<Notes VALUE="Take notes go here if any." />
<Assets VALUE="skel1, skel2, sword" />
<TimeCode VALUE="00:00:00:00" />
<HostName VALUE="optional host name" />
<ProcessID VALUE="optional process id" />
</CaptureStop>
Vicon
- Enable Triggered Capture.
- Set the same port number.
- Enable recording at the motion capture.
Vicon Document START
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<CaptureStart>
<Name VALUE="dance"/>
<Notes VALUE="The pets ants crime deer jump. "/>
<Description VALUE="The crowd pencil pets alert fold deer. With welcome practice representative complete great? Or jolly tiny memorise thread. However wool insect pipe! "/>
<DatabasePath VALUE="D:/Jeremy/Susan/Captures/Take"/>
<Delay VALUE="33"/>
<PacketID VALUE="33360"/>
</CaptureStart>
STOP
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<CaptureStop RESULT="SUCCESS">
<Name VALUE="dance"/>
<DatabasePath VALUE="D:/Jeremy/Susan/Captures/Take"/>
<Delay VALUE="33"/>
<PacketID VALUE="33361"/>
</CaptureStop>
Xsense
START
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<CaptureStart>
<Name VALUE="Optional Name of the take/capture. When set, it defines the base filename to use for this specific recording. When missing, the current session information will be used" />
<SessionName VALUE="Ignored" />
<DatabasePath VALUE="Optional Path to write the data to. Prefixed to the Name parameter if present." />
<TimeCode VALUE="Optional Desired time of start of capture" />
<Notes>Optional Additional text to be stored in the capture</Notes>
</CaptureStart>
STOP
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<CaptureStop>
<Name VALUE="Optional Name of the take/capture, ignored by MVN" />
<TimeCode VALUE="Optional Desired time of end of capture" />
<Notes>Optional Additional text to be stored in the capture. This will replace the Notes from CaptureStart if present.</Notes>
</CaptureStop>
Rokoko
START
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<CaptureStart>
<Name VALUE="RemoteTriggerTest_take01"/>
<TimeCode VALUE="00:00:00:00"/>
<PacketID VALUE="0"/>
<ProcessID VALUE="optional process id" />
</CaptureStart>
STOP
<?xml version="1.0" encoding="utf-8"?>
<CaptureStop>
<Name VALUE="TakeName" />
<TimeCode VALUE="00:00:00:00" />
<SetActiveClip VALUE="False"/>
<ProcessID VALUE="optional process id" />
</CaptureStop>
Qualisys
START
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<CaptureStart>
<Name VALUE="measurement name"/>
<DatabasePath VALUE="measurement directory"/>
<Delay VALUE="0"/>
<PacketID VALUE="increasing number"/>
<HostName VALUE="computer name"/>
<ProcessID VALUE="process id (to be able to easier ignore own udp broadcast messages"/>
<Notes VALUE=""/>
<Description VALUE=""/>
<Timecode VALUE=""/>
</CaptureStart>
STOP
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<CaptureStop RESULT="SUCCESS/FAIL/CANCEL">
<Name VALUE="measurement name"/>
<DatabasePath VALUE="measurement directory"/>
<Delay VALUE="0"/>
<PacketID VALUE="increasing number"/>
<HostName VALUE="computer name"/>
<ProcessID VALUE="process id (to be able to easier ignore own udp broadcast messages"/>
</CaptureStop>
FAQ
Common Problem
- Does Capture Studio support regular webcam recording or other devices?
Capture Studio only supports the FACEGOOD Stereo-HMC P2 system at the moment. Other systems cannot be controlled using Capture Studio for now.
- What video formats does Capture Studio output?
The videos recorded with the P2 system are saved in MOV format.
- In Capture Studio, how many screens can be monitored simultaneously?
There is no specific limit on the number of screens that can be monitored in Capture Studio. However, since screen rendering requires local computational resources, you may need to adjust accordingly based on CPU usage. It is recommended not to monitor more than 6 screens simultaneously.
- Capture Studio supports a maximum of how many hardware devices to record simultaneously?
Based on the number of subscriptions purchased by the user, a specified number of synchronous recording capabilities will be provided.
- Dark image of the P2 recording?
Adjust the brightness and contrast settings within Capture Studio to maintain the principle of keeping the face bright while keeping the surroundings darker.
- When using Capture Studio, the CPU usage reaches 100%?
When multiple SmartUnits are connected and camera monitoring is opened simultaneously in Capture Studio, the local computational resources are consumed for rendering the images, leading to high CPU usage. To reduce CPU usage, you can adjust your head-worn device and then click the 'eye button' in the image to turn off monitoring. It's important to emphasize that the increase in CPU usage does not affect the quality of the recorded video, as recording always takes place internally within the SmartUnit. Capture Studio is primarily used for monitoring and control.
- Can recording be done when turning off screen monitoring in Capture Studio?
Yes, to reduce the CPU load on your computer, you can choose to turn off screen monitoring after adjusting the headset. This way, when you start recording, the unmonitored screen can still be recorded.
- Why is there a delay or slight screen tearing in the Capture Studio?
The connection between Capture Studio and SmartUnit is established via WiFi. When the resources of the router are overly utilized or the quality of the WiFi signal is poor, significant delays and packet loss may occur, leading to some screen tearing. However, this does not affect the quality of the recorded video, as the recording always takes place internally within the SmartUnit. Capture Studio is mainly used for monitoring and control.
TimeCode
- Why does the timecode displayed in Capture Studio suddenly start jumping?
The jumping of the timecode is typically caused by signal interference or connection issues. Ensure that the timecode is plugged into the microphone jack or line-in jack rather than connected to a combo jack. A combo jack may introduce interference, leading to the timecode jumping.
RealTime
- How many actors can be supported for real-time driving at the same time?
Based on the number of subscriptions purchased by the user, a specified amount of real-time functionality will be provided. In fact, it supports an infinite number.
- Can real-time data of an actor be sent to multiple target addresses simultaneously?
Of course, you can add multiple target addresses in the settings and then click the start button.
Remote Triggering
- Does it support motion capture synchronized triggering?
YES. Capture Studio natively supports synchronous triggering for Xsens, Optitrack, and Vicon, eliminating the need to purchase third-party motion capture software. Additionally, Capture Studio is compatible with third-party motion capture triggering software such as PeelCapture.