FaceTracker
FaceTracker lets you track facial gestures and expressions
without complicated facial motion capture rigs or unstable neural
network based solutions. Works with topologies compatible with
FaceBuilder.
Before tracking connect the footage, geometry and a camera
nodes to the inputs of FaceTracker and launch pre-analysis. Once
the footage is pre-analysed, you can track the object by placing
the model in some of the frames: press the ‘Center Geo’ button and
then drag the model to the right position.
- bg: frame sequence — receives a footage or a number
of photos as a sequence
- geo: geometry — receives a 3D model imported with
ReadGeo or created inside Nuke script
- cam: camera — receives camera settings from a Camera
node
- mask: mask — receives a 2D mask excluding regions of
the image from tracking
- tex: texture — receives image data used for coloring
the wireframe in 2D-viewer
Knobs
| Name |
Label |
Hotkey |
Description |
track_to_start |
|
z |
Track backwards until the previous keyframe or the first frame
is reached |
track_prev |
|
x |
Track one frame backwards |
track_next |
|
c |
Track one frame forwards |
track_to_end |
|
v |
Track forwards until the next keyframe or the last frame is
reached |
refine |
refine |
r |
Refine tracking between closest keyframes using tracking
information from both keyframes |
refine_all |
refine all |
|
Recalculate all tracked frames. Run refine between all
keyframes. Run tracking before first and after last
keyframes. |
refinement_mode |
refine |
|
Refine mode
- precise: Precise refinement provides higher tracking
accuracy but may introduce jitter if keyframes are
inconsistent.
- smooth: Smooth refinement produces smoother motion
between keyframes but with lower tracking accuracy.
|
clear_between_keyframes |
|
|
Remove tracking data between closest keyframes |
clear_bkwd |
|
|
Remove tracking data and keyframes before the current
frame |
clear_all |
|
|
Remove all tracking data and keyframes |
clear_fwd |
|
|
Remove tracking data and keyframes after the current
frame |
enable_surface_mask_brush |
|
|
Use the left mouse button to mark polygons and the right
button to clear them. Marked polygons will be ignored during
tracking. Use this for masking moving or reflective parts of the
object. |
surface_mask_brush_radius |
brush radius |
|
Size of the brush in pixels. You can also change it draging
mouse in the Viewer while holding Shift key. |
ignore_surface_mask |
ignore |
|
Turn off the surface mask keeping it unchanged |
clear_surface_mask |
clear |
|
Clear the surface mask |
| Name |
Label |
Description |
reset_to_neutral |
reset expression |
Reset the facial expressions to neutral in the current
keyframe |
model_stored_version |
|
|
align_face |
align face |
Detect a face in the viewer and pin the model to the detected
face |
center_geo |
center geo |
Place the object in 3D space so it will be visible in the
frame |
reset_bones |
reset bones |
Load bone transformations from the source (input) in the
current frame |
focal_length_view |
|
Current focal length |
remove_pins |
remove pins |
Removes selected pins if there are any, or all pins if nothing
is selected |
toggle_pins |
toggle pins |
Activate or deactivate selected pins, applied to all pins if
nothing is selected |
spring_pins_back |
spring pins back |
Pins will be sticking to the surface of the object after
dragging |
estimate_focal_length |
estimate focal length |
Focal length estimation happens when you drag pins. Estimation
starts once you have at least 4 pins. It’s automatically turned
off after switching frames. It’s also not available if you chose
to get the focal length from a connected Camera node. |
show_transform_handles |
_@2D_ |
Show transform handles in the 2D view |
stabilize_viewer |
stabilize viewer |
Stabilize Viewer around selected pins or the center of
geometry if no pin is selected |
meta_keyframes |
|
Keyframes toolbar |
GeoTracker Tab
| Name |
Label |
Description |
use_gpu |
use GPU |
Using GPU may significantly increase analysis performance. At
the same time it may slightly decrease the quality of analysis
data. |
use_analysis_file |
use analysis file |
Using analysis file makes tracking process faster and more
responsive, because the image is not being analysed during
tracking, but instead the optical flow from the analysis file is
used. In the same time, tracking without the analysis file can
help in some difficult situations, when the optical flow is not
very good. |
create_directories |
create directories |
If the target path does not exist, all directories in the path
will be created if possible. |
analysis_file_name |
analysis file |
The path for the analysis file. The .precalc extension will be
added automatically if not found. |
analyse |
analyse |
Launch analysis and save the result to the analysis file.
Tracking is based on the analysis data, so you need to launch
analysis before trying to track anything. |
show_analysis_info |
show info |
Show the analysis file information |
tracking_channels |
tracking channels |
Channels used for analysis |
Model
| Name |
Label |
Description |
blinking_locked |
eye blinking |
When off, the output geometry will attempt to fit eylash
movement (i.e. eye blinking). When on the eyes of the model will
remain still. This value is used when you’re pinning the model and
when tracking is happening. |
neck_movement_locked |
neck movement |
When off, the output geometry will attempt to fit neck
movement. When on the neck of the model will remain still. This
value is used when you’re pinning the model and when tracking is
happening. |
expressions_model_rigidity |
expression |
With high values the expression tends to stay neutral, with
low values it’s easier to change it. This value is used when
you’re pinning the model and when tracking is happening. |
blinking_model_rigidity |
eye blinking |
With high values the eye blinking tends to stay neutral, with
low values it’s easier to change it. This value is used when
you’re pinning the model and when tracking is happening. |
neck_movement_model_rigidity |
neck movement |
With high values the neck movement tends to stay neutral, with
low values it’s easier to change it. This value is used when
you’re pinning the model and when tracking is happening. |
DotMap()
| Name |
Label |
Description |
focal_length_mode |
|
Focal length settings
- focal length from Camera node: use the focal length
set in the Camera node connected to the ‘cam’ input.
Don’t forget to setup the proper film back dimensions in the
Camera node. Focal length estimation can’t be used in this
mode.
- fixed focal length: use the focal length specified in
the field below. One focal length is used for all frames. The film
back dimensions will be taken from a default Camera node, if you
want to override them — connect a Camera node with the desired
film back dimensions, the focal length will not be taken from that
node. Focal length estimation can be used with this mode.
|
track_with_focal_length_estimation |
track with focal length estimation |
The focal length will be estimated during tracking, which may
be useful for tracking objects in footages filmed with zoom
lenses. Available only when the varying focal length is
selected. |
Mask
| Name |
Label |
Description |
ignore_mask |
mask |
Exclude frame area from tracking |
Render
| Name |
Label |
Description |
lit_wireframe |
lit wireframe |
The shape of the lit wireframe will be more apparent due to
darkening of the furthest regions. |
adaptive_opacity |
adaptive opacity |
Opacity will be reduced for dense regions of the wireframe in
2D viewer, so the footage visibility will suffer less. |
wireframe_opacity |
opacity |
Opacity of the wireframe drawn in 2D viewer over the
footage |
back_face_culling |
back-face culling |
Don’t render back-faced polygons in 2D viewer |
textured_wireframe |
use texture |
A texture will be used to color the wireframe. The default
texture highlights the facial parts. You can connect your own
texture to the ‘tex’ input. |
enable_motion_blur |
motion blur |
Motion blur simulation. Helps to place the object properly in
a frame with motion blur. |
samples |
|
Sample count for motion blur simulation |
shutter |
|
How long the shutter should stay open to achieve motion blur.
Time is measured in frames, so 0.5 is half a frame. |
shutter_offset |
shutter offset |
When the shutter should be opened with respect to current
frame number
- centered: center the shutter around the frame
- start: open the shutter at the frame start
- end: close the shutter at the frame end
- custom: open the shutter at the specified time
|
shutter_custom_offset |
|
Specify custom shutter offset (used only if shutter offset set
to ‘custom’). |
helpers_color |
user tracks |
The color used to draw user track guides in 2D viewer |
surface_mask_color |
surface mask |
The color of polygons included into the surface mask |
face_box_color |
face box |
Color of detected face bounding box |
pins_color |
normal pins |
Normal pin color |
residuals_color |
residuals |
Color of pin residual lines |
unpinned_pins_color |
deactivated pins |
Color of deactivated pins |
selected_pins_color |
selected pins |
Color of selected pins |
wireframe_color |
wireframe |
Base colour of the wireframe drawn in 2D viewer over the
footage |
wireframe_secondary |
wireframe secondary |
The color used for distinct parts of the wireframe like ears,
eyes and lips |
wireframe_midline |
wireframe midline |
The color used for the vertical middle line of the
wireframe |
Smoothing Tab
All smoothing settings are effective during tracking and refine
only.
Once the tracking is done, changing them will not change
the track,
you need to launch tracking or refine again to
apply new smoothing settings.
You can tweak them differently
for different parts of the footage,
the values are not being
saved for different parts of the footage.
‘0’ means
no smoothing while ‘1’ makes the smoothed parameter(s)
almost static.
| Name |
Label |
Description |
z_translation_smoothing |
Z translation |
Z-axis (camera view) translation smoothing |
xy_translations_smoothing |
XY translation |
XY translation smoothing |
rotations_smoothing |
rotation |
Rotation smoothing |
focal_length_smoothing |
focal length |
Smoothing of focal length estimation |
face_model_smoothing |
facial expressions |
Smoothing of facial expressions |
UserTracks Tab
| Name |
Label |
Description |
helpers |
|
User tracks help to track the geometry. Before tracking you
can enable or disable user tracks. User tracks can be imported
from a Tracker or a CameraTracker node. User tracks affect
tracking results only when they’re projected to an object
geometry, meaning you can see them over the rendered geometry in
2D-viewer. |
import_tracker |
import tracks |
Import user tracks from a Tracker or a CameraTracker node |
delete_helpers |
delete tracks |
Remove selected tracks |
set_reference_frame |
set reference keyframe |
Use current keyframe as a reference frame for selected helper
tracks |
Results Tab
Export
| Name |
Label |
Description |
export_mode |
|
Results export mode
- TransformGeo: create a TransformGeo node containing
the movement of the object in 3D relative to the input camera. If
you are using the default camera or the custom focal length mode a
new Camera node will also be created.
- Axis: create an Axis node containing the movement of
the object in 3D relative to the input camera. If you are using
the default camera or the custom focal length mode the new Camera
node will also be created.
- TransformRiggedGeo: create a TransformRiggedGeo node
containing the movement of the object in 3D relative to the input
camera and the object deformations. If you are using the default
camera or the custom focal length mode the new Camera node will
also be created.
- Camera: create a Camera node. Only makes sense if
you’re using the default camera or the focal length estimation.
Doesn’t contain any movement data.
- Tracked Camera: create a Camera node containing the
movement of the camera as if the object was static and the camera
moved
- Bone as TransformGeo: create a TransformGeo node
containing the movement of a selected bone
- FACS as a CSV file: export facial animation
approximated with FACS/ARKit blendshapes into a CSV file with
keyframes (LiveLinkFace format)
- FACS and MixBlendshapes: export facial animation
approximated with FACS/ARKit blendshapes as a FACS and a
MixBlendshape nodes
|
export |
export |
Create a node of the selected type |
link_output |
link output |
The exported node will be linked to GeoTracker, so when you
change someting in GeoTracker the exported node will be updated.
Switch it off if you need to embed all data into the exported
node, to use in another script for example. |
cam_rotate |
|
Inverted rotation. When coupled with inverted translation can
be used as the rotation of a geometry-tracked camera. |
cam_translate |
|
Inverted translation. When coupled with inverted rotation can
be used as the translation of a geometry-tracked camera. |
| Name |
Label |
Description |
translate |
|
Geometry translation |
rotate |
|
Geometry rotation |
global_fixed_rx |
x |
Lock X-axis rotation |
global_fixed_ry |
y |
Lock Y-axis rotation |
global_fixed_rz |
z |
Lock Z-axis rotation |
global_fixed_tx |
x |
Lock X-axis translation |
global_fixed_ty |
y |
Lock Y-axis translation |
global_fixed_tz |
z |
Lock Z-axis translation |
unbreak_rotation |
unbreak rotation |
Fix rotation making it continious and removing 360 degrees
jumps |
scale |
scale |
Geometry input scale. All operations are performed with the
scaled geometry. The scale is not restored on the output. |
copy_expression |
copy |
Copy current facial expressions to clipboard |
paste_expression |
paste |
Paste facial expressions from clipboard to current frame. If
there’s no keyframe, it’ll be created. |
output_transformed_geo |
output transformed geometry |
When on, the output geometry will be translated and rotated in
accordance with the 2D position of the model in keyframes relative
to the camera. You may need it if you want to project the texture
with Project3D or TextureBuilder. |
Last update: Thu Aug 20 12:38:52 2026