Skip to content

FaceControls

Not planned Class Animation & Avatar

The FaceControls object defines a set of properties for controlling the facial expressions of a Dynamic Head.

Not planned

This class is intentionally out of scope. Nova will not implement it; see What Nova supports for the policy.

0 Nova members · 58 modern Roblox members not implemented yet

Description

The FaceControls object defines a set of properties for controlling the facial expressions of a character head capable of animation.

The FaceControls properties are based on the Facial Action Coding System (FACS), a comprehensive system for describing all visually discernible facial movement based on anatomy. FaceControls properties can only be set between 0 and 1. Different combinations of the FaceControls property values create different facial expressions. Recording multiple facial expressions over time creates facial animation.

What is an Animatable Head?

An animatable head is a MeshPart that implements a facial rig and is capable of playing facial animations and triggering facial expressions. A FaceControls object that is a child of a head MeshPart can change the facial expressions of the head.

A head consists of the following three components:

  • Skinned MeshPart instance for the head geometry with an internal rig that deforms this skinned MeshPart
  • FaceControls instance that drives the internal rig when properties such as FaceControls.JawDrop are changed.
  • Cage WrapTarget instance for tight fitting facial accessories

In a third-party modeling tool, such as Blender or Maya, an artist can create a joint-driven facial rig, pose the joints to match each of the individual FACS controls, and save as an FBX. When a head .FBX is imported in Studio, a facs-to-joint mapping is created. This mapping deforms the mesh geometry when FaceControls properties are changed. The mapping and the facial rig (including Bone instances) are not exposed to developers and can only be accessed through the FaceControls instance. The MeshPart for a Dynamic Head looks and behaves the same as a regular MeshPart except when a FaceControls instance is a child of the MeshPart. Editing the properties of the FaceControls deforms the MeshPart's geometry. These properties are available to animate in the Animation Editor.

See Facial animation for more information on usage and creation of an animatable head.

Animatable Heads in the Marketplace

If you are publishing your head to the Marketplace, your head asset must include a minimum subset of face controls. Roblox's publishing validation rejects assets without the following required poses:

  • EyesLookDown
  • EyesLookLeft
  • EyesLookRight
  • EyesLookUp
  • JawDrop
  • LeftEyeClosed
  • LeftLipCornerPuller
  • LeftLipStretcher
  • LeftLowerLipDepressor
  • LeftUpperLipRaiser
  • LipsTogether
  • Pucker
  • RightEyeClosed
  • RightLipCornerPuller
  • RightLipStretcher
  • RightLowerLipDepressor
  • RightUpperLipRaiser

See FACS poses reference for more information on usage and creation of an animatable head.

Inheritance

Object → Instance → FaceControls

Properties

Member Signature Summary
ChinRaiser ChinRaiser: float Raises the chin up; moves the lower lip upwards.
ChinRaiserUpperLip ChinRaiserUpperLip: float Moves the upper lip when ChinRaiser is engaged and touching the upper lip.
Corrugator Corrugator: float Brings the left and right brows inward together.
EyesLookDown EyesLookDown: float Moves gaze down. This is a required pose for avatars.
EyesLookLeft EyesLookLeft: float Moves gaze left. This is a required pose for avatars.
EyesLookRight EyesLookRight: float Moves gaze right. This is a required pose for avatars.
EyesLookUp EyesLookUp: float Moves gaze up. This is a required pose for avatars.
FlatPucker FlatPucker: float Also known as lip tightener; brings the corners of the mouth inward and pressing the lips back against the teeth.
Funneler Funneler: float Makes a 'O' shape with the mouth.
InternalOverrideFACSData InternalOverrideFACSData: BinaryString —
JawDrop JawDrop: float Lowers the jaw downward opening the mouth. This is a required pose for avatars.
JawLeft JawLeft: float Moves mouth and jaw to the left (character left).
JawRight JawRight: float Moves mouth and jaw to the right (character right).
LeftBrowLowerer LeftBrowLowerer: float Lowers the left brow down.
LeftCheekPuff LeftCheekPuff: float Puffs up the left cheek.
LeftCheekRaiser LeftCheekRaiser: float Squints the left eye.
LeftDimpler LeftDimpler: float Moves the corners of the mouth back in Z.
LeftEyeClosed LeftEyeClosed: float Closes the left eyelid. This is a required pose for avatars.
LeftEyeUpperLidRaiser LeftEyeUpperLidRaiser: float Raises the left eyelid upwards to reveal more of the eye white above the iris.
LeftInnerBrowRaiser LeftInnerBrowRaiser: float Raises the interior half of the left brow upwards.
LeftLipCornerDown LeftLipCornerDown: float Lowers the corners of the mouth downwards in a frown.
LeftLipCornerPuller LeftLipCornerPuller: float Raises the corners of the mouth upwards in a smile. This is a required pose for avatars.
LeftLipStretcher LeftLipStretcher: float Stretches the corners of the mouth apart. This is a required pose for avatars.
LeftLowerLipDepressor LeftLowerLipDepressor: float Lowers the lower lip down away from the upper lip revealing the lower teeth. This is a required pose for avatars.
LeftNoseWrinkler LeftNoseWrinkler: float Raise the left nostril, pulls the brow down slightly, and wrinkles on the side of the nose.
LeftOuterBrowRaiser LeftOuterBrowRaiser: float Raises the outer part of the left brow upwards.
LeftUpperLipRaiser LeftUpperLipRaiser: float Raises the left upper lip away from the lower lip revealing the upper teeth. This is a required pose for avatars.
LipPresser LipPresser: float Presses the lips together.
LipsTogether LipsTogether: float Brings the lips together relative to JawDrop. This is a required pose for avatars.
LowerLipSuck LowerLipSuck: float Rolls the lower lip up over the teeth.
MouthLeft MouthLeft: float Moves the mouth left.
MouthRight MouthRight: float Moves the mouth right.
Pucker Pucker: float Makes a kiss-like shape with the mouth. This is a required pose for avatars.
RightBrowLowerer RightBrowLowerer: float Lowers the right brow down.
RightCheekPuff RightCheekPuff: float Puffs up the right cheek.
RightCheekRaiser RightCheekRaiser: float Squints the right eye.
RightDimpler RightDimpler: float Moves the corners of the mouth back in Z.
RightEyeClosed RightEyeClosed: float Closes the right eyelid. This is a required pose for avatars.
RightEyeUpperLidRaiser RightEyeUpperLidRaiser: float Raises the right eyelid upwards to reveal more of the eye white above the iris.
RightInnerBrowRaiser RightInnerBrowRaiser: float Raises the interior half of the right brow upwards.
RightLipCornerDown RightLipCornerDown: float Lowers the corners of the mouth downwards in a frown.
RightLipCornerPuller RightLipCornerPuller: float Raises the corners of the mouth upwards in a smile. This is a required pose for avatars.
RightLipStretcher RightLipStretcher: float Stretches the corners of the mouth apart. This is a required pose for avatars.
RightLowerLipDepressor RightLowerLipDepressor: float Lowers the lower lip down away from the upper lip revealing the lower teeth. This is a required pose for avatars.
RightNoseWrinkler RightNoseWrinkler: float Raises the right nostril, pulls the brow down slightly, and wrinkles on the side of the nose.
RightOuterBrowRaiser RightOuterBrowRaiser: float Raises the outer part of the right brow upwards.
RightUpperLipRaiser RightUpperLipRaiser: float Raises the right upper lip away from the lower lip revealing the upper teeth. This is a required pose for avatars.
TongueDown TongueDown: float Bends the tongue down.
TongueOut TongueOut: float Extends the tip of the tongue out of the mouth.
TongueUp TongueUp: float Bends the tongue up.
UpperLipSuck UpperLipSuck: float Rolls the upper lip around the teeth.

Methods

Member Signature Summary
HasOverrideFACSData FaceControls:HasOverrideFACSData(): bool —

Events

Member Signature Summary
InternalFacsOverrideChanged InternalFacsOverrideChanged() —

Roblox reference: FaceControls

Generated from Nova's API dump and Roblox creator-docs. Nova-only members come from the engine's reflection metadata.