Reference API Roblox

Engine API

Website

Related

Reference API Roblox

FaceControls

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

Member index 53

HistoryMember
737ChinRaiser: float
737ChinRaiserUpperLip: float
737Corrugator: float
737EyesLookDown: float
737EyesLookLeft: float
737EyesLookRight: float
737EyesLookUp: float
737FlatPucker: float
737Funneler: float
737JawDrop: float
737JawLeft: float
737JawRight: float
737LeftBrowLowerer: float
737LeftCheekPuff: float
737LeftCheekRaiser: float
737LeftDimpler: float
737LeftEyeClosed: float
737LeftEyeUpperLidRaiser: float
737LeftInnerBrowRaiser: float
737LeftLipCornerDown: float
737LeftLipCornerPuller: float
737LeftLipStretcher: float
737LeftLowerLipDepressor: float
737LeftNoseWrinkler: float
737LeftOuterBrowRaiser: float
737LeftUpperLipRaiser: float
737LipPresser: float
737LipsTogether: float
737LowerLipSuck: float
737MouthLeft: float
737MouthRight: float
737Pucker: float
737RightBrowLowerer: float
737RightCheekPuff: float
737RightCheekRaiser: float
737RightDimpler: float
737RightEyeClosed: float
737RightEyeUpperLidRaiser: float
737RightInnerBrowRaiser: float
737RightLipCornerDown: float
737RightLipCornerPuller: float
737RightLipStretcher: float
737RightLowerLipDepressor: float
737RightNoseWrinkler: float
737RightOuterBrowRaiser: float
737RightUpperLipRaiser: float
737TongueDown: float
737TongueOut: float
737TongueUp: float
737UpperLipSuck: float
709HasOverrideFACSData(): bool
709InternalFacsOverrideChanged()
inherited from Instance
553Archivable: bool
670Capabilities: SecurityCapabilities
723IsInSandbox: bool
553Name: string
553Parent: Instance
702PredictionMode: PredictionMode
670Sandboxed: bool
680UniqueId: UniqueId
576AddTag(tag: string): null
573ClearAllChildren(): null
462Clone(): Instance
573Destroy(): null
486FindFirstAncestor(name: string): Instance
486FindFirstAncestorOfClass(className: string): Instance
486FindFirstAncestorWhichIsA(className: string): Instance
486FindFirstChild(name: string, recursive: bool = false): Instance
486FindFirstChildOfClass(className: string): Instance
486FindFirstChildWhichIsA(className: string, recursive: bool = false): Instance
486FindFirstDescendant(name: string): Instance
563GetActor(): Actor
486GetAttribute(attribute: string): Variant
462GetAttributeChangedSignal(attribute: string): RBXScriptSignal
631GetAttributes(): Dictionary
648GetChildren(): Instances
462GetDebugId(scopeLength: int = 4): string
707GetDescendants(): Instances
486GetFullName(): string
706GetStyled(name: string, selector: string?): Variant
657GetStyledPropertyChangedSignal(property: string): RBXScriptSignal
576GetTags(): Array
576HasTag(tag: string): bool
486IsAncestorOf(descendant: Instance): bool
486IsDescendantOf(ancestor: Instance): bool
664IsPropertyModified(property: string): bool
698QueryDescendants(selector: string): Instances
573Remove(): null
576RemoveTag(tag: string): null
664ResetPropertyToDefault(property: string): null
573SetAttribute(attribute: string, value: Variant): null
462WaitForChild(childName: string, timeOut: double): Instance
648children(): Instances
553clone(): Instance
573destroy(): null
553findFirstChild(name: string, recursive: bool = false): Instance
648getChildren(): Instances
553isDescendantOf(ancestor: Instance): bool
573remove(): null
462AncestryChanged(child: Instance, parent: Instance)
462AttributeChanged(attribute: string)
462ChildAdded(child: Instance)
462ChildRemoved(child: Instance)
462DescendantAdded(descendant: Instance)
462DescendantRemoving(descendant: Instance)
500Destroying()
657StyledPropertiesChanged()
553childAdded(child: Instance)
inherited from Object
647ClassName: string
647className: string
647GetPropertyChangedSignal(property: string): RBXScriptSignal
647IsA(className: string): bool
650isA(className: string): bool
647Changed(property: string)

Removed member index 1

HistoryMember
709HasInternalFacsOverrideChanged()

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.

History 408

Members 53

ChinRaiser

TypeDefault
float0

Raises the chin up; moves the lower lip upwards

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

ChinRaiserUpperLip

TypeDefault
float0

Moves the upper lip when ChinRaiser is engaged and touching the upper lip

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

Corrugator

TypeDefault
float0

Brings the left and right brows inward together

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

EyesLookDown

TypeDefault
float0

Moves gaze down. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

EyesLookLeft

TypeDefault
float0

Moves gaze left. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

EyesLookRight

TypeDefault
float0

Moves gaze right. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

EyesLookUp

TypeDefault
float0

Moves gaze up. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

FlatPucker

TypeDefault
float0

Also known as lip tightener; brings the corners of the mouth inward and pressing the lips back against the teeth

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

Funneler

TypeDefault
float0

Makes a 'O' shape with the mouth

This property is not replicated. Its interface does not cross the network boundary.

History 8

  • 737 Change WriteSecurity of Funneler from PluginSecurity to None
  • 737 Change ReadSecurity of Funneler from PluginSecurity to None
  • 553 Change Default of Funneler from to 0
  • 490 Change WriteSecurity of Funneler from None to PluginSecurity
  • 490 Change Tags of Funneler from [NotReplicated, NotScriptable] to [NotReplicated]
  • 490 Change ReadSecurity of Funneler from None to PluginSecurity
  • 489 Change Category of Funneler from Control to Mouth
  • 487 Add Funneler
Tags: [NotReplicated]

HasOverrideFACSData

Parameters (0)
No parameters.
Returns (1)
bool

History 1

InternalFacsOverrideChanged

Parameters (0)
No parameters.

History 1

JawDrop

TypeDefault
float0

Lowers the jaw downward opening the mouth. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

  • 737 Change WriteSecurity of JawDrop from PluginSecurity to None
  • 737 Change ReadSecurity of JawDrop from PluginSecurity to None
  • 553 Change Default of JawDrop from to 0
  • 490 Change WriteSecurity of JawDrop from None to PluginSecurity
  • 490 Change Tags of JawDrop from [NotReplicated, NotScriptable] to [NotReplicated]
  • 490 Change ReadSecurity of JawDrop from None to PluginSecurity
  • 489 Change Category of JawDrop from Control to Jaw
  • 487 Add JawDrop
Tags: [NotReplicated]

JawLeft

TypeDefault
float0

Moves the mouth and jaw to the character's left. Like all FaceControls properties, this value is clamped between 0 and 1 and defaults to 0, meaning no displacement. FaceControls.JawRight applies the opposite displacement, moving the mouth and jaw to the character's right.

This property is not replicated. Its interface does not cross the network boundary.

History 8

  • 737 Change WriteSecurity of JawLeft from PluginSecurity to None
  • 737 Change ReadSecurity of JawLeft from PluginSecurity to None
  • 553 Change Default of JawLeft from to 0
  • 490 Change WriteSecurity of JawLeft from None to PluginSecurity
  • 490 Change Tags of JawLeft from [NotReplicated, NotScriptable] to [NotReplicated]
  • 490 Change ReadSecurity of JawLeft from None to PluginSecurity
  • 489 Change Category of JawLeft from Control to Jaw
  • 487 Add JawLeft
Tags: [NotReplicated]

JawRight

TypeDefault
float0

Moves mouth and jaw to the right (character right)

This property is not replicated. Its interface does not cross the network boundary.

History 8

  • 737 Change ReadSecurity of JawRight from PluginSecurity to None
  • 737 Change WriteSecurity of JawRight from PluginSecurity to None
  • 553 Change Default of JawRight from to 0
  • 490 Change WriteSecurity of JawRight from None to PluginSecurity
  • 490 Change Tags of JawRight from [NotReplicated, NotScriptable] to [NotReplicated]
  • 490 Change ReadSecurity of JawRight from None to PluginSecurity
  • 489 Change Category of JawRight from Control to Jaw
  • 487 Add JawRight
Tags: [NotReplicated]

LeftBrowLowerer

TypeDefault
float0

Lowers the left brow down

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

LeftCheekPuff

TypeDefault
float0

Puffs up the left cheek

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

LeftCheekRaiser

TypeDefault
float0

Squints the left eye

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

LeftDimpler

TypeDefault
float0

Moves the corners of the mouth back in Z

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

LeftEyeClosed

TypeDefault
float0

Closes the left eyelid. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

LeftEyeUpperLidRaiser

TypeDefault
float0

Raises the left eyelid upwards to reveal more of the eye white above the iris

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

LeftInnerBrowRaiser

TypeDefault
float0

Raises the interior half of the left brow upwards

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

LeftLipCornerDown

TypeDefault
float0

Lowers the corners of the mouth downwards in a frown

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

LeftLipCornerPuller

TypeDefault
float0

Raises the corners of the mouth upwards in a smile. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

LeftLipStretcher

TypeDefault
float0

Stretches the corners of the mouth apart. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

LeftLowerLipDepressor

TypeDefault
float0

Lowers the lower lip down away from the upper lip revealing the lower teeth. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

LeftNoseWrinkler

TypeDefault
float0

Raise the left nostril, pulls the brow down slightly, and wrinkles on the side of the nose

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

LeftOuterBrowRaiser

TypeDefault
float0

Raises the outer part of the left brow upwards

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

LeftUpperLipRaiser

TypeDefault
float0

Raises the left upper lip away from the lower lip revealing the upper teeth. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

LipPresser

TypeDefault
float0

Presses the lips together

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

LipsTogether

TypeDefault
float0

Brings the lips together relative to JawDrop. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

LowerLipSuck

TypeDefault
float0

Rolls the lower lip up over the teeth

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

MouthLeft

TypeDefault
float0

Moves the mouth left

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

MouthRight

TypeDefault
float0

Moves the mouth right

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

Pucker

TypeDefault
float0

Makes a kiss-like shape with the mouth. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

  • 737 Change ReadSecurity of Pucker from PluginSecurity to None
  • 737 Change WriteSecurity of Pucker from PluginSecurity to None
  • 553 Change Default of Pucker from to 0
  • 490 Change WriteSecurity of Pucker from None to PluginSecurity
  • 490 Change Tags of Pucker from [NotReplicated, NotScriptable] to [NotReplicated]
  • 490 Change ReadSecurity of Pucker from None to PluginSecurity
  • 489 Change Category of Pucker from Control to Mouth
  • 487 Add Pucker
Tags: [NotReplicated]

RightBrowLowerer

TypeDefault
float0

Lowers the right brow down

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

RightCheekPuff

TypeDefault
float0

Puffs up the right cheek

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

RightCheekRaiser

TypeDefault
float0

Squints the right eye

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

RightDimpler

TypeDefault
float0

Moves the corners of the mouth back in Z

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

RightEyeClosed

TypeDefault
float0

Closes the right eyelid. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

RightEyeUpperLidRaiser

TypeDefault
float0

Raises the right eyelid upwards to reveal more of the eye white above the iris

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

RightInnerBrowRaiser

TypeDefault
float0

Raises the interior half of the right brow upwards

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

RightLipCornerDown

TypeDefault
float0

Lowers the corners of the mouth downwards in a frown

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

RightLipCornerPuller

TypeDefault
float0

Raises the corners of the mouth upwards in a smile. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

RightLipStretcher

TypeDefault
float0

Stretches the corners of the mouth apart. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

RightLowerLipDepressor

TypeDefault
float0

Lowers the lower lip down away from the upper lip revealing the lower teeth. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

RightNoseWrinkler

TypeDefault
float0

Raises the right nostril, pulls the brow down slightly, and wrinkles on the side of the nose

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

RightOuterBrowRaiser

TypeDefault
float0

Raises the outer part of the right brow upwards

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

RightUpperLipRaiser

TypeDefault
float0

Raises the right upper lip away from the lower lip revealing the upper teeth. This is a required pose for avatars.

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

TongueDown

TypeDefault
float0

Bends the tongue down

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

TongueOut

TypeDefault
float0

Extends the tip of the tongue out of the mouth

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

TongueUp

TypeDefault
float0

Bends the tongue up

This property is not replicated. Its interface does not cross the network boundary.

History 8

  • 737 Change ReadSecurity of TongueUp from PluginSecurity to None
  • 737 Change WriteSecurity of TongueUp from PluginSecurity to None
  • 553 Change Default of TongueUp from to 0
  • 490 Change WriteSecurity of TongueUp from None to PluginSecurity
  • 490 Change Tags of TongueUp from [NotReplicated, NotScriptable] to [NotReplicated]
  • 490 Change ReadSecurity of TongueUp from None to PluginSecurity
  • 489 Change Category of TongueUp from Control to Tongue
  • 487 Add TongueUp
Tags: [NotReplicated]

UpperLipSuck

TypeDefault
float0

Rolls the upper lip around the teeth

This property is not replicated. Its interface does not cross the network boundary.

History 8

Tags: [NotReplicated]

Removed members 1

HasInternalFacsOverrideChanged

Parameters (0)
No parameters.

History 2

Settings