Live2D Avatars

Overview

Animaze supports Live2D powered models for various Animaze items such as: 2D avatars, hybrid avatars (3D geometry with Live2D textures), animated backdrops, animated overlays and animated light masks (or light cookies). The Animaze platform supports Live2D models that are exported for the runtime Cubism 3+ (tested with 3.0, 3.1, 3.2, 3.3 and 4.0 models). 

On a technical level, Live2D models are first rendered to an Animaze render target (basically a separate texture) and then rendered on the screen or used as a texture for various other items (e.g. face texture for a 3D avatar).

The Animaze system gathers as much information as possible from the runtime Live2D models in order to have them being run and rendered, out of the box, without too much additional custom configuration, as the models are thought and designed in the Cubism Editor.

These are the specific files that are gathered automatically when importing a Live2D model in the Animaze platform:

  • model meta info like *.moc3 (Live2D model file) and *.png textures will be parsed from the *.model3.json file.

  • special actions (full animations that run to the end and then the model goes to idle. These animations override tracking remapping) – the system will look for *.motion3.json files in the motions/ folder of the avatar.

  • special poses (single frame animations, the pose is kept. These animations override tracking remapping) - the system will look for *.exp3.json files in expressions/ folder of the avatar.

  • idle animations – the system will parse the *.model3.json file and look for motion files grouped into the “Idle” group, first *.motion3.json file in that group will become the default idle animation.

  • default idle pose (which can hide certain parts for the default pose) - *.pose3.json file

  • physics – *.physics.json file

This is the additional and optional info that can be configured after the initial import:

  • friendly (decorated) name and description (default values are the name of the Live2D *.model3.json file name).

  • Live2D model rendering resolution (default 2048).

  • position and scale in the Animaze canvas (Animaze render target)

  • avatar framing through Animaze rendering camera options

  • reordering special actions, special poses and idle animations

  • parameter tracker inputs remapping (i.e. an animation input doesn’t follow the naming convention, you can remap it to an existing tracker input).

  • retargeting overrides (i.e. adding other animation inputs - e.g. tail animation inputs - to be tracked by existing tracker inputs).

Animation Standards

Animation Standards refer to the sets of Live2D parameter inputs of the model that are required by the Animaze Retargeting System to map the raw tracking data (e.g. from face trackers) to the model's movement.

Animaze supports two distinct Animation Standards for Live2D avatars:

  • the Default one which is the most widespread and works with virtually all vtubing platforms.

  • the Extended Parameter Set which aims to improve on the expressivity of Live2D avatars and map key tracking inputs that otherwise would be used only for 3D avatars. A sample avatar (.avatar file, Live2D runtimes, and Live2D sources) using the extended parameters can be found here .

Default Live2D Animation Standard Parameters (last revision 20 Sep 2021)

Live2D Parameter

Description

Default Value

Comment

Head Movement

ParamAngleX

head yaw movement

at 50% of the input interval

ParamAngleY

head pitch movement

at 50% of the input interval

ParamAngleZ

head roll movement

at 50% of the input interval

Body Movement

ParamBodyAngleX

body yaw movement

at 50% of the input interval

not tracked by face trackers. Reserved for future use.

ParamBodyAngleY

body pitch movement

at 50% of the input interval

triggered by user's face leaning forward/backward

ParamBodyAngleZ

body roll movement

at 50% of the input interval

triggered by user's face moving on horizontal axis in camera feed

ParamBodyUpDown

body up/down movement

at 50% of the input interval

(non-standard-parameter)* triggered by user's face moving on vertical axis in camera feed

ParamBreath

breathing movement

at 50% of the input interval

Eyes Movement

ParamEyeLOpen

blink and eye wide open movement.

at 75% of the input interval

Default value is eye opened (75% of the interval), when blink occurs, value goes to 0% of the interval, when eye wide open occurs the value goes to 100% of the interval

ParamEyeROpen

blink and eye wide open movement.

at 75% of the input interval

Default value is eye opened (75% of the interval), when blink occurs, value goes to 0% of the interval, when eye wide open occurs the value goes to 100% of the interval

ParamEyeBallX

eye horizontal movement

at 50% of the input interval

ParamEyeBallY

eye vertical movement

at 50% of the input interval

ParamEyeLSmile

activated when smiling

at 0% of the input interval

ParamEyeRSmile

activated when smiling

at 0% of the input interval

ParamEyeBallForm

bends eyes contour to complement frown and smile expressions. Start of the interval is for frowning, while the end of the interval is for smiling.

at 50% of the input interval

Eyebrows Movement

ParamBrowLY

eyebrow down to up movement

at 50% of the input interval

ParamBrowLForm

eyebrow tilting movement, frowny/angry at the start of the interval, happy/surprised at the end of the interval

at 50% of the input interval

ParamBrowLAngle

eyebrow changing shape movement, frowny/angry at the start of the interval, happy/surprised at the end of the interval

at 50% of the input interval

ParamBrowRY

eyebrow down to up movement

at 50% of the input interval

ParamBrowRForm

eyebrow tilting movement, frowny/angry at the start of the interval, happy/surprised at the end of the interval

at 50% of the input interval

ParamBrowRAngle

eyebrow changing shape movement, frowny/angry at the start of the interval, happy/surprised at the end of the interval

at 50% of the input interval

Mouth Movement

ParamMouthOpenY

mouth open movement, closed at start of interval, open at end of interval

at 0% of the input interval

ParamMouthForm

mouth frown/smile animation. frown at start of interval, smile at end of interval

at 50% of the input interval

ParamMouthSize

used for puckered lips from the center of the interval to start (normal to small size).

upper half of the interval is not used in this Animation Standard

at 50% of the input interval

(non-standard-parameter)*

*non-standard-parameters are totally optional. The Animaze Retargeting system automatically replaces them with other retargeting methods (e.g. puckered lips without the ParamMouthSize is implemented with the use of ParamMouthY and ParamMouthForm).

Default Viseme Mapping (last revision 20 Sep 2021)

Visemes retargeting uses the Live2D model’s standard parameters for mouth open and form. A complete mapping of Viseme to Live2D parameter is depicted below.

Viseme

Live2D Parameter

Value

AA

ParamMouthOpenY

1

ParamMouthForm

1

AH

ParamMouthOpenY

1

ParamMouthForm

0.6

AO

ParamMouthOpenY

1

ParamMouthForm

0

AW

ParamMouthOpenY

1

ParamMouthForm

-0.5

OY

ParamMouthOpenY

1

ParamMouthForm

-1

EH

ParamMouthOpenY

0.65

ParamMouthForm

0

IH

ParamMouthOpenY

0.65

ParamMouthForm

-0.6

EY

ParamMouthOpenY

0.65

ParamMouthForm

-0.3

Y

ParamMouthOpenY

0.65

ParamMouthForm

-1

R

ParamMouthOpenY

0.5

ParamMouthForm

0.3

L

ParamMouthOpenY

0.5

ParamMouthForm

0.3

W

ParamMouthOpenY

0.7

ParamMouthForm

-0.85

M

ParamMouthOpenY

0

ParamMouthForm

-0.4

N

ParamMouthOpenY

0

ParamMouthForm

-0.4

CH

ParamMouthOpenY

0.3

ParamMouthForm

-0.4

FV

ParamMouthOpenY

0.15

ParamMouthForm

-0.4


Extended Parameter Set (last revision 20 Sep 2021)

Live2D Parameter

Description

Default Value

Comments

Head Movement

ParamAngleX

head yaw movement

at 50% of the input interval

ParamAngleY

head pitch movement

at 50% of the input interval

ParamAngleZ

head roll movement

at 50% of the input interval

Body Movement

ParamBodyAngleX

body yaw movement

at 50% of the input interval

not tracked by face trackers. Reserved for future use.

ParamBodyAngleY

body pitch movement

at 50% of the input interval

triggered by user's face leaning forward/backward

ParamBodyAngleZ

body roll movement

at 50% of the input interval

triggered by user's face moving on horizontal axis in camera feed

ParamBodyUpDown

body up/down movement

at 50% of the input interval

triggered by user's face moving on vertical axis in camera feed

ParamBreath

breathing movement

at 50% of the input interval

Eyes Movement

ParamEyeLOpen

blink and eye wide open movement.

at 75% of the input interval

Default value is eye opened (75% of the interval), when blink occurs, value goes to 0% of the interval, when eye wide open occurs the value goes to 100% of the interval

ParamEyeROpen

blink and eye wide open movement.

at 75% of the input interval

Default value is eye opened (75% of the interval), when blink occurs, value goes to 0% of the interval, when eye wide open occurs the value goes to 100% of the interval

ParamEyeBallX

eye horizontal movement

at 50% of the input interval

ParamEyeBallY

eye vertical movement

at 50% of the input interval

ParamEyeLSmile

activated when smiling

at 0% of the input interval

ParamEyeRSmile

activated when smiling

at 0% of the input interval

ParamEyeBallForm

bends eyes contour to complement frown and smile expressions. Start of the interval is for frowning, while the end of the interval is for smiling.

at 50% of the input interval

ParamEyeForm

same as ParamEyeBallForm

at 50% of the input interval

Eyebrows Movement

ParamBrowLY

eyebrow down to up movement

at 50% of the input interval

ParamBrowLForm

eyebrow tilting movement, frowny/angry at the start of the interval, happy/surprised at the end of the interval

at 50% of the input interval

ParamBrowLAngle

eyebrow changing shape movement, frowny/angry at the start of the interval, happy/surprised at the end of the interval

at 50% of the input interval

ParamBrowRY

eyebrow down to up movement

at 50% of the input interval

ParamBrowRForm

eyebrow tilting movement, frowny/angry at the start of the interval, happy/surprised at the end of the interval

at 50% of the input interval

ParamBrowRAngle

eyebrow changing shape movement, frowny/angry at the start of the interval, happy/surprised at the end of the interval

at 50% of the input interval

Mouth Movement

ParamMouthOpenY

mouth open movement, closed at start of interval, open at end of interval

at 0% of the input interval

ParamMouthForm

mouth frown/smile animation. frown at start of interval, smile at end of interval

at 50% of the input interval

ParamMouthSize

used for puckered lips from the center of the interval to start (normal to small size).

used by wide smiles and frown from the center of the interval to the end (normal to large size)

at 50% of the input interval

ParamMouthX

mouth movement on the horizontal axis.

at 50% of the input interval

triggered by asymmetric smiles and jaw tracking.

ParamLipUnder

lower lip movement on vertical axis

at 50% of the input interval

triggered by pressed lips and unveil teeth tracked inputs

ParamLipUpper

upper lip movement on vertical axis

at 50% of the input interval

triggered by pressed lips and unveil teeth tracked inputs

ParamPuffCheeks

puffed cheeks

at 0% of the input interval

puffed cheeks input is tracked only by ARKit. On Windows Animaze also features puffed cheeks as a special pose automatically added by the system.

ParamTongue

moves tongue inside the mouth

at 0% of the input interval

parameter is not used by the tongue out movement that is detected by the face tracker, rather it is used for a more expressive viseme mapping

ParamTooth

clenches and opens teeth

at 0% of the input interval

 

Extended Parameter Set Viseme Mapping (last revision 20 Sep 2021)

Visemes retargeting uses the Live2D model’s standard parameters for mouth open and form. A complete mapping of Viseme to Live2D parameter is depicted below.

Viseme

Live2D Parameter

Value

AA/AO

ParamMouthOpenY

1

AH/AW

ParamMouthOpenY

0.7

ParamMouthSize

0.75

OY

ParamMouthOpenY

0.3

ParamMouthSize

0.35

EH

ParamMouthOpenY

0.3

ParamMouthSize

0.75

ParamTooth

0.8

ParamLipUnder

0.6

IH

ParamMouthOpenY

0.4

ParamMouthSize

0.9

EY

ParamMouthOpenY

0.3

ParamMouthSize

0.9

ParamTooth

1

Y

ParamMouthOpenY

0.22

R

ParamMouthOpenY

0.3

ParamMouthSize

0.35

ParamLipUnder

0.6

L

ParamMouthOpenY

1

ParamTongue

1

W

ParamMouthOpenY

0.1

ParamMouthSize

0

M

ParamLipUnder

1

ParamLipUpper

1

N

ParamMouthOpenY

0.1

ParamTooth

1

CH

ParamMouthOpenY

0.2

ParamTooth

1

FV

ParamTooth

1

ParamLipUnder

0.2

 

Parameter Ranges

The Animaze Retargeting System normalizes all values (interval 0 to 1) before applying the Live2D parameters so that the parameter ranges can be of any values (e.g. ParamMouthOpenY can be defined from -10 to 10 with default value 0, so when Animaze sets 0.75 - which is a half smile -, it will apply the value 5 to the ParamMouthOpenY parameter).

Having said that, we do suggest following ranges for the Live2D Parameters:

Item

Minimum values

Default values

Maximum values

ParamEyeLOpen

ParamEyeROpen

0

0.75

1

ParamEyeBallX ParamEyeBallY

-1

0

1

ParamBrowLY 

-1

0

1

ParamBrowLX

-1

0

1

ParamBrowLAngle ParamBrowRAngle

0

0.5

1

(*)ParamBrowLForm

(*)ParamBrowRForm

0.2

0.5

0.8

ParamMouthForm

-1

0.5

1

ParamMouthOpenY

0

0

1

ParamMouthSize

-1

0

1

(*)The values for ParamBrowLForm & ParamBrowRForm in the table make the eyebrows deform as intended with the current tracking system.

Additionally, you can check the standard cubism parameter list here and here.

©2020, Animaze, Inc. and the Animaze logo are registered and/or unregistered trademarks of Holotech Studios Inc.