Live2D Viewer‎ > ‎05. Expression‎ > ‎

01. Constructing Expression

    Expression and Parameter

Games and apps renders expressions on your model through reading JSON data.

The following chart presents the parameter value difference between the default state and expression state.

 value difference of the two states is what configures the expression.

Take the "Angry" expression as an example.

Here is the comparison between the "default" state and the "angry" state.
The last column represents the value difference.

デフォルト       怒り
左眼 開閉110
右眼 開閉110
目玉 X 110
目玉 Y000
左眉 上下0-0.3-0.3
右眉 上下0-0.3-0.3
左眉 左右0-0.3-0.3
右眉 左右0-0.3-0.3
左眉 角度000
右眉 角度000
左眉 変形0-1-1
右眉 変形0-1-1
口 開閉0 0
口 変形1 -1-2 

The value difference will be combined into the active motion to give a final result on the outcome.
(※Viewer uses a simple addition algorithm to operate, but depending on the program, the algorithm may vary)

For parameters that have 0 difference, the expression data would have no effect on the active motion performance.

The "default" value is configured in "Set Parameters" dialog in Modeler. 

    Values to Beware

When making an expression, be careful of parameter values that are often configured by Motion data (.mtn). 
These include "EyeL Open", "EyeR Open", "Eyeball X", "Eyeball Y". Because of lip-sync, "Mouth Open" is also one to look out for.

About Eye Blinking

To perform a "Sad" expression, it requires some adjustments on the eyes. The default value for "EyeL Open" and "EyeR Open" is "1.0".
If we use an expression data to adjust the Eye Open parameters to have a value of "0.8", while having the auto-blinking motion active, then the calculation would result a -0.2 the moment the character blinks (which is beyond to the lower limit of the parameter). Being so, when the eyes blink, the fully-shut state would stay shut longer than usual. 

Vice versa, if the "Shocked" expression sets the Eyes Open at "1.2", then it would only drop to "0.2" when the character blinks, which makes the eye not fully closed yet before it  opens again.

Therefore, it is better to use "multiplication" method than "addition". To do this, right-click the parameter "EyeL Open" or "EyeR Open" to open a pop-up menu with both options available.

About Eyeball Positioning

Take the sample model "Hibiki" for example, her eyes are not looking directly forward in her default state (she is looking at the viewer when the body and face are facing to the side). In this case, be careful when configuring both the default state value and the expression value for eye positioning (Eyeball X, Eyeball Y). Both the Expression data and the motion data need to adjust to this default settings.

When handling this type of cases, the Motion data should have the eyeball X and Y remain as their default value, and let Expression data determine the positioning of the eyeballs. 

About Mouth Open/Close

Generally, it is recommended that the "Mouth Open" parameter to be set at "0" for both the default state and the expression. 

If the expression sets the mouth at "0.2", while the expression is active, the mouth would never completely close. This would make a lip-sync animation look unnatural. It would appear as if the character is biting on something. Hence, take this factor into consideration when making expressions.