Skip to content

Configuration

Tip

Please use Online Json Formatter sites to format and validate Json string

Property List

Property Description
Version Version
Moc Moc3 file
Textures Texture files
Bounds Bounds of model
HitAreas Hit areas
Motions Motions
Controllers Controllers
Expressions Expressions
Physics Physics file
Pose Pose file
Options Options

Bounds

Bounds of model

Name Description
Width Width
Height Height
CenterX Center X
CenterY Center Y

HitAreas

Event trigger areas

Name Description Note
Name Area name Essential
Id Area ID Essential
Order Sorting order Optional, a higher value means a higher priority, default is 0
Motion Motion group name Optional

Controllers

■ List

Name Description Options
MouseTracking Mouse tracking ■ SmoothTime
■ Items A
LipSync Lip sync ■ Gain
■ SmoothTime
■ Items A
EyeBlink Eye blink ■ MinInterval
■ MaxInterval
■ Items A
ParamHit Hit parameters ■ Items C
ParamLoop Loop parameters ■ Items D
ParamValue Parameter value ■ Items B
PartOpacity Part opacity ■ Items B
ArtmeshOpacity Artmesh opacity ■ Items B
ArtmeshColor Artmesh color ■ Items B
ArtmeshCulling Artmesh culling ■ DefaultMode
■ CullFront
■ CullBack
■ CullNone
AutoBreath Auto breath
ExtraMotion Extra motion
Accelerometer Accelerometer ■ Items A
Microphone Microphone ■ Items A
FaceTracking Face tracking ■ Face Tracking Parameter
HandTracking Hand tracking ■ Hand Tracking Parameter
IntimacySystem Intimacy system ■ InitValue: initial value, valid only for the first time
■ MinValue: minimum value
■ MaxValue: maximum value
■ ActiveBonus: bonus value per minute when model is activating (loaded)
■ InactiveBonus: bonus value per minute when model is inactivating (unloaded)
■ BonusLimit: daily bonus value limit, default is -1 (no limitation)
■ Id: parameter id
KeyTrigger Key Trigger ■ DownMtn: Key down motion
■ UpMtn: Key up motion

About Key Trigger

To use Key Trigger, you must set Hotkey option to Always enable or When click desktop in Control Panel setting

■ Item A

Name Description
Parameter Parameter ID
Axis Axis
Inverted Inverted
Min Min value
Max Max value
DefaultValue Default Value
Factor Factor
BlendMode 0: Override
1: Additive
2: Multiply
Weight Weight
Order Order
Input Input. When binding to Input, Axis will be invalid

■ Item B

Name Description
Name Name
Text Text
Value Value
Hidden Hidden from users
Ids ID group
KeyValues Key values, only for ParamValue

■ Item C

Name Description Note
Name Name
Id Parameter ID Essential
HitArea Area name Essential
Type 0: Dragging
1: Stroking
■ Dragging: The parameter value changes with the mouse movement
■ Stroking: The parameter value is accumulated with the mouse movement distance
Axis 0 is x, 1 is y Optional, default is 0
Weight 1.0 for complete coverage Optional, default is 1.0
Factor Parameter value changes for every 1 pixel movement The scale of the model affects the value
MinMtn The motion triggered when the dragging distance reaches its minimum value ■ Optional, the format is 'group:motion', e.g. 'tap:mtn1'
■ If you do not specify motion, write the group name directly, e.g. 'tap'
MaxMtn The motion triggered when the dragging distance reaches its maximum value Same as above
BeginMtn The motion triggered when dragging started Same as above
EndMtn The motion triggered when dragging ended Same as above
LockParam lock param Keep the current parameter value after releasing the mouse. The default is false
Release release duration(ms) The time to restore the original parameter value after releasing the mouse. The default is 100ms
ReleaseType release type 0: Linear
1:Slow Out
2: Fast Out
3: Ease In Out

■ Item D

Name Description Note
Name Name
Id Parameter ID Essential
Duration Unit is millisecond Essential
Type 0: Linear (min → max)
1: Sin
2: Random
3: Linear Back-and-forth (min → max → min)
4: Reverse Linear (max → min)
5: Reverse Linear Back-and-forth (max → min → max)
Optional, default is 0
MinValue Min value
MaxValue Max value
MinInterval Min interval(ms) Optional, only for the type of Linear (0,3,4,5)
MaxInterval Max interval(ms) Optional, only for the type of Linear (0,3,4,5)
Weight 1.0 for complete coverage Optional, default is 1.0
BlendMode 0: Override
1: Additive
2: Multiply
Optional, default is 0
TimeSync The initial value of the parameter will be set according to the current time if set to true Optional, default is false

■ Face Tracking Parameter

Name Description Note
AngleX Left and right ■ Relative to initial head angle
■ Default: ParamAngleX / PARAM_ANGLE_X
AngleY Up and down ■ Relative to initial head angle
■ Default: ParamAngleY / PARAM_ANGLE_Y
AngleZ Tilt left and right ■ Relative to initial head angle
■ Default: ParamAngleZ / PARAM_ANGLE_Z
PositionX Relative position X ■ Relative to initial head position
■ Default: ParamBodyAngleZ / PARAM_BODY_ANGLE_Z
PositionY Relative position Y ■ Relative to initial head position
■ Default: -
PositionZ Relative position Z ■ Relative to initial head position
■ Default: -
EyeLOpen Left eye opening ■ Default: ParamEyeLOpen / PARAM_EYE_L_OPEN
EyeROpen Right eye opening ■ Default: ParamEyeROpen / PARAM_EYE_R_OPEN
EyeWide Eye wide ■ Only for FaceTracker for iOS
■ Default: -
EyeSquint Eye squint ■ Only for FaceTracker for iOS
■ Default: -
EyeballX Eyeball x ■ Only for FaceTracker for iOS
■ Default: ParamEyeBallX / PARAM_EYE_BALL_X
EyeballY Eyeball y ■ Only for FaceTracker for iOS
■ Default: ParamEyeBallY / PARAM_EYE_BALL_Y
BrowLY Left brow up and down ■ Default: ParamBrowLY / PARAM_BROW_L_Y
BrowRY Right brow up and down ■ Default: ParamBrowRY / PARAM_BROW_R_Y
MouthOpenY Mouth opening ■ Default: ParamMouthOpenY / PARAM_MOUTH_OPEN_Y
MouthForm Mouth form ■ Default: ParamMouthForm / PARAM_MOUTH_FORM
MouthPucker Mouth pucker ■ Only for FaceTracker for iOS
■ Default: -
MouthFunnel Mouth funnel ■ Only for FaceTracker for iOS
■ Default: -
CheekPuff Cheek puff ■ Only for FaceTracker for iOS
■ Default: -
TongueOut Tongue out ■ Only for FaceTracker for iOS
■ Default: -

■ Hand Tracking Parameter

Name Description Note
LeftAngleX / RightAngleX Hand flip ■ 5 states (-1, -0.5, 0, 0.5, 1)
■ -1=Min Value; 1=Max Value
LeftAngleZ / RightAngleZ Hand shake
LeftPositionX / RightPositionX Wrist relative position X ■ Relative to the reference position
LeftPositionY / RightPositionY Wrist relative position Y ■ Relative to the reference position
LeftThumb / RightThumb Thumb ■ Bend=Min Value; Stretch=Max Value
LeftIndex / RightIndex Index ■ Bend=Min Value; Stretch=Max Value
LeftMiddle / RightMiddle Middle ■ Bend=Min Value; Stretch=Max Value
LeftRing / RightRing Ring ■ Bend=Min Value; Stretch=Max Value
LeftPinky / RightPinky Pinky ■ Bend=Min Value; Stretch=Max Value
LeftGapTI / RightGapTI Gap: Thumb - Index ■ Close=Min Value; Spread=Max Value
LeftGapIM / RightGapIM Gap: Index - Middle ■ Close=Min Value; Spread=Max Value
LeftGapMR / RightGapMR Gap: Middle - Ring ■ Close=Min Value; Spread=Max Value
LeftGapRP / RightGapRP Gap: Ring - Pinky ■ Close=Min Value; Spread=Max Value

Motions

Motions

■ Properties

Name Description Sub Parameter Note
Name Motion name
File Path of motion file
FileLoop Loop play Can be interrupted by MotionDuration
Sound Path of sound file
SoundDelay Sound delay time Unit is millisecond
SoundChannel Sound channel 3 channels are available(0, 1,2), can play sound simultaneously, default is 0
SoundVolume Sound volume
SoundLoop Sound loop
Text Text
TextDelay Text delay time Unit is millisecond
TextDuration Duration of text display Unit is millisecond
Language Language Depending on the model language selected by user
■ en:English
■ zhs:Chinese Simplified
■ zht:Chinese Traditional
■ ja:Japanese
■ ru:Russian
Expression Expression name
FadeIn Fade in (ms)
FadeOut Fade out (ms) SDK 3 is not valid currently
MotionDuration Duration of event (ms) Used for custom event duration, regardless of motion and sound duration
Priority Motion priority ■ Range is 2 - 9
■ default is 2, if set to 9, the previous event will be overwritten forcibly
Interruptable Can be interrupted ■ When true, this event can be interrupted by events with the same priority
■ This parameter has no effect on events with priority 9
Command Command Will be triggered before motion started
PostCommand Post command Will be triggered after motion finished
Choices Selection branch ■ Text: text
■ NextMtn: next motion
■The format is 'group:motion', e.g. 'tap:mtn1'
■ If you do not specify motion, write the group name directly, e.g. 'tap'
TimeLimit Time limit ■ Hour: (0 - 23)
■ Minute: (0 - 59)
■ Month
■ Day
- Sustain: (minute)
■ Birthday: (true / false)
Ignorable Can be ignored ■ Determine if this motion can be triggered
■ When there have other motions with time_limit parameter
■ This parameter will be ignored when time_limit has been set■ default is false
Intimacy Intimacy ■ Min: minimum intimacy required to trigger events
■ Max: maximum intimacy required to trigger events
■ Bonus: bonus value when event is triggered
PreMtn Previous motion ■ If set, this motion can be triggered only when the value equals to the last motion
■ The format is 'group:motion', e.g. 'tap:mtn1'
■ If you do not specify motion, write the group name directly, e.g. 'tap'
NextMtn Next motion ■ The format is 'group:motion', e.g. 'tap:mtn1'
■ If you do not specify motion, write the group name directly, e.g. 'tap'
Weight Weight Range is 1-999, default is 1. The higher the value, the higher the trigger probability
VarFloats Float variables Condition
■ greater
■ greater_equal
■ lower
■ lower_equal
■ equal
■ not_equal

Value operation
■ assign
■ add
■ substract
■ multiply
■ divide
■ init
■ Condition is used to determine whether the event can be triggered
■ Value operation is used to operate the value after the event is triggered
■ Can be performed on two variables, e.g. greater $var2 ($+name)
■ Variables can be saved
■ 'init' is only valid if the variable is not initialized
OverrideFaceParams Override face tracking parameters

About Weight

For example, there are three motions A, B, and C participating in random selection, where A has a weight value of 1, B is 10, C is 89, and the sum of the weights is 100, then the trigger probability of A is 1%, and B is 10 %, C is 89%.

How to use Ignorable

For example, there have two motions in start motion group, motion A contains TimeLimit parameter. If set Ignorable of motion B to false, when motion A can be triggered, it will be triggered definitely, otherwise application will randomly choose a motion from motion A and B to trigger.

■ Events

Name Description Note
Idle Idle
Tap Mouse click If HitArea exists, TapArea will be triggered first
TapArea Area click, e.g. TapBody please use Tap event if there is no HitArea property
Start Triggered when model loaded
Shake Triggered when shake device For devices with gravity sensor
Tick Triggered per minute
TickX ( tick_x ) Triggered per X minutes X from 1 to 60, e.g. Tick1, Tick2 ...
LeaveX_Y_Z ( leave_x_y_z ) Leave (no other motions except idle) X indicates the start execution time, Y indicates the minimum trigger interval, Z indicates the maximum trigger interval, and the unit is seconds.
For example: Leave30_10_20 means the motion will be started after 30 seconds, and the trigger interval is between 10-20 seconds.

About play multiple motions simultaneously

Motion play has the concept of layer, motions can be played simultaneously at different layers. By default, all motions are played at layer 0, if you want to play the motion at other layers, name it to name#layer (e.g. idle#1 means playing idle motion at layer 1).

■ Commands

  • A Command separates each parameter by space, so there must be no space in id or path!
  • Several commands are separated by ';'
Name Description Example
open_url Open the link from the browser "Command":"open_url https://www.baidu.com"
change_cos Change costume "Command":"change_cos cos02.model.json"
start_mtn Perform the motion of the specified model "Command":"start_mtn model_id group:motion"
stop_mtn Stop the motion of the specified layer "Command":"stop_mtn 1" (1 means layer number)
next_exp Next expression "Command":"next_exp"
clear_exp Clear expression "Command":"clear_exp"
replace_tex Replace texture "Command":"replace_tex 1 tex/texture_01.png" ()(The texture number starts from 0, and 1 means the second texture)
stop_sound Stop sound "Command":"stop_sound 0" (0 is channel id)
stop_all_sounds Stop all sounds "Command":"stop_all_sounds"
mute_sound Mute sound "Command":"mute_sound 0" (0 is channel id)
unmute_sound Unmute sound "Command":"unmute_sound 0" (0 is channel id)
hide_text Hide text "Command":"hide_text"
Parameter Command Description Example
parameters
parts
artmeshes
artmesh_colors
lock
unlock
set
lock
unlock
set
■ "Command":"parameters lock PARAM_ANGLE_X 10" (10 is value for parameter)
■ "Command":"parameters lock PARAM_ANGLE_X $var" (Set the value of VarFloat named 'var' to parameter, must start with $)
■ "Command":"parameters unlock PARAM_ANGLE_X"
■ "Command":"parameters unlock" (Unlock all)
■ "Command":"parameters set PARAM_ANGLE_X 10" (10 is value for parameter)
■ "Command":"parameters set PARAM_ANGLE_X $var" (Set the value of VarFloat named 'var' to parameter, must start with $)

* The difference between lock and set is that lock is continuous and set is only assigned once
motions enable
disable
enable
disable
■ "Command":"motions enable group:motion"
■ "Command":"motions disable group:motion"
hit_areas
param_loop
enable
disable
enable
disable
■ "Command":"hit_areas enable area_name"
■ "Command":"hit_areas disable area_name"
mouse_tracking
physics
extra_motion
auto_breath
enable
disable
enable
disable
■ "Command":"mouse_tracking enable"
■ "Command":"mouse_tracking disable"
eye_blink
lip_sync
enable
disable
enforce
enable
disable
enforce
■ "Command":"lip_sync enable"
■ "Command":"lip_sync disable"
■ "Command":"lip_sync enforce"

■ Special Placeholders

Name Description Note
{$br} newline Used for text wrapping (do not use enter key to wrap)
{$username} Username The username set in setting (Control Panel)
{$timenow} Current time 16:27
{$datenow} Current date 2017-08-14
{$intimacy} Current intimacy value Integer
{$intimacy_max} Max intimacy value Integer
{$intimacy_min} Min intimacy value Integer
{$vf_xxx} Value of var_floats 'xxx' Float
{$vi_xxx} Value of var_floats 'xxx' Integer

Options

Options

Name Description
Id Model ID
Name Display name, this is used for AITalk
ScaleFactor ■ Used to scale the model when loaded
■ Default is 1, this is useful when the loaded model is too small or too large
AnisoLevel ■ Anisotropic filtering level of the texture
■ Default is 1. Anisotropic filtering makes textures look better in some cases, but comes at a performance cost in the graphics hardware. The value range of this property goes from 1 to 9. It will overwrite the value of Anisotropic Filtering Level in Control Panel setting when the value is greater than 1
AllowMod ■ Allow customization
■ Default is true. If you do not want users to customize mode contents, set it to false

Last modified: 2020.7.15