跳转至

Json配置

提示

请使用 BeJSON 等网站校验和格式化Json文件

关于SDK 3命名规则

SDK 3与SDK 2主要的区别在于属性的命名规则,基于官方定义,SDK 2均以小写为主,SDK 3为首字母大写,详细可以参考 http://docs.live2d.com/cubism-editor-manual/cubism3-viewer-for-ow/

主配置列表

配置项 描述
Version 版本
Moc moc文件
Textures 贴图文件
Bounds 模型边界
HitAreas 点击区域组
Motions 动作组
Controllers 控制器组
Expressions 表情组
Physics 物理效果文件
Pose 姿势文件
Options 选项

Bounds

模型边界

模型边界定义了鼠标追踪的范围和可以触发全局点击事件的范围。默认情况下程序通过遍历所有网格位置自动计算出边界,但是有时因遍历了某些无用的网格,造成计算出的边界过大,最终影响鼠标追踪效果。通过自定义边界,将边界缩放至合适大小可以解决上述问题。

参数 描述
Width 长度
Height 高度
CenterX 中心点X坐标
CenterY 中心点Y坐标

HitAreas

点击区域组

参数 描述 备注
Name 区域名称 必须
Id 区域ID 必须
Order 排列顺序 可选,数值越大触发优先级越高。默认为0
Motion 动作组名 可选

Controllers

控制器组

控制器列表

名称 描述 选项 说明
MouseTracking 鼠标追踪 ■ SmoothTime:平滑时间
■ Items:自定义参数组A
LipSync 嘴型同步 ■ Gain:增益
■ SmoothTime:平滑时间
■ Items:自定义参数组A
EyeBlink 眨眼 ■ MinInterval:最小间隔
■ MaxInterval:最大间隔
■ Items:自定义参数组A
ParamHit 参数拖拽 ■ 参数拖拽项目组
ParamLoop 参数循环 ■ 参数循环项目组
ParamValue 参数值 ■ 自定义参数组B
PartOpacity 部件透明度 ■ 自定义参数组B
ArtmeshOpacity 网格透明度 ■ 自定义参数组B
ArtmeshColor 网格颜色 ■ 自定义参数组B
AutoBreath 自动呼吸
ExtraMotion 小幅度动作
Accelerometer 加速器 ■ 自定义参数组A
Microphone 麦克风 ■ 自定义参数组A
FaceTracking 面部追踪 ■ 面部追踪参数组
HandTracking 手部追踪 ■ 手部追踪参数组
IntimacySystem 好感度系统 ■ InitValue:初始值
■ MinValue:最小值
■ MaxValue:最大值
■ ActiveBonus:激活时奖励
■ InactiveBonus:非激活时奖励
■ BonusLimit:每日奖励限制
■ Id:绑定参数ID
KeyTrigger 按键触发 ■ DownMtn:按下时动作
■ UpMtn:抬起时动作
要使按键触发生效,需要在Live2DViewerEX控制面板的设定里,将热键设定为 总是启用点击桌面时
ParamTrigger 参数触发 ■ Name:名称
■ Parameter:参数
■ TriggerValues:触发值
触发值项目包括

■ 触发值:当参数值穿过该值会触发指定动作
■ 方向:正向表示参数值从小到大经过触发值时有效;反向表示从大到小经过有效;双向表示只要穿过均有效
■ 触发动作:条件满足时触发的动作
AreaTrigger 区域触发 ■ Name:名称
■ TargetArea:目标区域
■ EnterMtn:进入时动作
■ ExitMtn:离开时动作
■ TriggerAreas:触发区域
■ 系统持续检测目标区域与触发区域是否形成重叠部分,并触发 进入时动作离开时动作
■ 因每帧都会检测,所以可能对性能产生影响
HandTrigger 手势触发 ■ Name:名称
■ Hand:左右手
■ Direction:手心朝向
■ Motion:动作事件
■ Fingers:手指状态
■ FingerGaps:指间状态

自定义参数A

名称 描述
Parameter 参数ID
Axis 轴向
Inverted 反转
Min 最小值
Max 最大值
DefaultValue 默认值
BlendMode 0: Override(覆盖)
1: Additive(叠加)
2: Multiply(乘算)
Weight 权重
Order 排序
Input 输入。当绑定输入时,轴向属性将无效

自定义参数B

名称 描述
Name 名称
Text 文本
Value
Hidden 对用户隐藏
Ids ID组
KeyValues 关键值,仅适用于ParamValue

参数拖拽

参数 描述 备注
Name 名称
Id 区域ID 必须
HitArea 触发区域名 必须
Type 0: 拖拽(Dragging)
1: 抚摸(Stroking)
2: 按压(Pressing)
■ 拖拽:参数值随鼠标移动改变
■ 抚摸:参数值随鼠标移动距离累加
■ 按压:鼠标持续按住左键
Axis 控制轴,0为x轴,1为y轴 可选,默认为0
Weight 权重,1.0为完全覆盖 可选,默认为1.0
Factor ■ 拖拽&抚摸:每移动1像素改变的参数值,模型的缩放会影响该值大小
■ 按压:每秒增加的参数值
MinMtn 拖动距离达到最小值时触发的动作 ■ 可选,格式为 “group:motion”,例如 "tap:mtn1"
■ 不指定motion时请直接写group名即可,例如 "tap"
MaxMtn 拖动距离达到最大值时触发的动作 同上
BeginMtn 开始拖拽时触发 同上
EndMtn 结束拖拽时触发(参数值未达到最小或最大值) 同上
LockParam 锁定参数 松开鼠标之后保持当前参数值,默认为false
Release 释放时间(ms) 松开鼠标之后恢复原来参数值的时间,默认为 100ms
ReleaseType 释放类型 0:线性(Linear)
1:减速(Slow Out)
2:加速(Fast Out)
3:缓入缓出(Ease In Out)
LowPriority 低优先级 勾选之后拖拽会在计算物理之前执行,最终会影响物理效果

参数循环

参数 描述 备注
Name 名称
Ids 参数ID 必须
Duration 循环时间(ms) 必须
Type 0: 线性(最小 → 最大)
1: 正弦式
2: 随机
3: 线性(往返)(最小 → 最大 → 最小)
4: 逆向线性(最大 → 最小)
5: 逆向线性(往返)(最大 → 最小 → 最大)
可选,默认为0
MinValue 最小值
MaxValue 最大值
MinInterval 最小间隔(ms) 可选,仅支持线性循环(0,3,4,5)
MaxInterval 最大间隔(ms) 可选,仅支持线性循环(0,3,4,5)
Weight 权重,1.0为完全覆盖 可选,默认为1.0
BlendMode 0: Override(覆盖)
1: Additive(叠加)
2: Multiply(乘算)
可选,默认为0
TimeSync 时间同步,设为true之后会根据当前时间设定参数初始值 可选,默认为false

面部追踪参数

参数 描述 备注
AngleX 头部左右转动 ■ 相对于初始头部的角度
■ 默认值:ParamAngleX / PARAM_ANGLE_X
AngleY 头部上下摆动 ■ 相对于初始头部的角度
■ 默认值:ParamAngleY / PARAM_ANGLE_Y
AngleZ 头部左右倾斜 ■ 相对于初始头部的角度
■ 默认值:ParamAngleZ / PARAM_ANGLE_Z
PositionX 头部左右相对位置 ■ 相对于初始头部位置
■ 默认值:ParamBodyAngleZ / PARAM_BODY_ANGLE_Z
PositionY 头部上下相对位置 ■ 相对于初始头部位置
■ 默认值:无
PositionZ 头部前后相对位置 ■ 相对于初始头部位置
■ 默认值:无
EyeLOpen 左眼开闭 ■ 默认值:ParamEyeLOpen / PARAM_EYE_L_OPEN
EyeROpen 右眼开闭 ■ 默认值:ParamEyeROpen / PARAM_EYE_R_OPEN
EyeWide 睁大眼睛 ■ 仅适用于IOS版FaceTracker
默认值:无
EyeSquint 眯眼 ■ 仅适用于IOS版FaceTracker
■ 默认值:无
EyeballX 眼球X ■ 仅适用于IOS版FaceTracker
■ 默认值:ParamEyeBallX / PARAM_EYE_BALL_X
EyeballY 眼球Y ■ 仅适用于IOS版FaceTracker
■ 默认值:ParamEyeBallY / PARAM_EYE_BALL_Y
BrowLY 左眉上下位置 ■ 默认值:ParamBrowLY / PARAM_BROW_L_Y
BrowRY 右眉上下位置 ■ 默认值:ParamBrowRY / PARAM_BROW_R_Y
MouthOpenY 嘴部开闭 ■ 默认值:ParamMouthOpenY / PARAM_MOUTH_OPEN_Y
MouthForm 嘴部形变 ■ 默认值:ParamMouthForm / PARAM_MOUTH_FORM
MouthPucker 噘嘴(张开) ■ 仅适用于IOS版FaceTracker
■ 默认值:无
MouthFunnel 噘嘴(闭合) ■ 仅适用于IOS版FaceTracker
■ 默认值:无
CheekPuff 鼓腮 ■ 仅适用于IOS版FaceTracker
■ 默认值:无
TongueOut 伸舌 ■ 仅适用于IOS版FaceTracker
■ 默认值:无

手部追踪参数

参数 描述 备注
LeftAngleX / RightAngleX 手腕翻转 ■ 五个状态,分别对应值 (-1, -0.5, 0, 0.5, 1)
■ -1=参数最小值;1=参数最大值
LeftAngleZ / RightAngleZ 手腕左右晃动
LeftPositionX / RightPositionX 手腕左右相对位置 ■ 相对于基准位置
LeftPositionY / RightPositionY 手腕上下相对位置 ■ 相对于基准位置
LeftThumb / RightThumb 拇指 ■ 弯曲=最小值;伸直=最大值
LeftIndex / RightIndex 食指 ■ 弯曲=最小值;伸直=最大值
LeftMiddle / RightMiddle 中指 ■ 弯曲=最小值;伸直=最大值
LeftRing / RightRing 无名指 ■ 弯曲=最小值;伸直=最大值
LeftPinky / RightPinky 小指 ■ 弯曲=最小值;伸直=最大值
LeftGapTI / RightGapTI 指间:拇指 - 食指 ■ 并拢=最小值;张开=最大值
LeftGapIM / RightGapIM 指间:食指 - 中指 ■ 并拢=最小值;张开=最大值
LeftGapMR / RightGapMR 指间:中指 - 无名指 ■ 并拢=最小值;张开=最大值
LeftGapRP / RightGapRP 指间:无名指 - 小指 ■ 并拢=最小值;张开=最大值

Motions

动作事件

事件属性

参数 描述 子属性 备注
Name 动作名
File 动作文件路径
FileLoop 动作循环播放 MotionDuration可以中断循环
Sound 声音文件路径
SoundDelay 延迟播放声音 单位毫秒(ms)
SoundChannel 声音频道 总共可以选择三个频道(0,1,2),不同频道声音可以同时播放。默认为0
SoundVolume 声音音量
SoundLoop 声音循环播放
Text 文本
TextDelay 延迟显示文本(ms)
TextDuration 文本显示时长(ms)
Language 语言 根据用户在控制面板选择的模型语言来过滤
■ en:英文
■ zhs:简体中文
■ zht:繁体中文
■ ja:日文
■ ru:俄语
Expression 表情名
FadeIn 淡入(ms)
FadeOut 淡出(ms) SDK 3暂不可用
MotionDuration 事件时长(ms) 用于自定义事件时长,不受动作和语音时长影响
Priority 优先级 ■ 可设定范围2-9,越大优先级越高
■ 默认为2,若设置为9则强制覆盖前一个事件
Interruptable 可被打断 ■ 当为true时,此动作事件可以被相同优先级的动作打断
■ 此参数对优先级为9的事件无效
Command 指令 动作开始之前执行
PostCommand 后置指令 动作完成之后执行
Choices 选择支 ■ Text:文本
■ NextMtn:下一个动作
■ 动作格式为 “group:motion”,例如 "tap:mtn1"
■ 不指定motion时请直接写group名即可,例如 "tap"
TimeLimit 时间限制 ■ Hour:小时(0 - 23)
■ Minute:分钟(0 - 59)
■ Month:月
■ Day:日
■ Sustain:持续时间(分钟)
■ Birthday:生日(true或false)
Ignorable 可被忽略 ■ 当存在符合触发条件并包含时间限制(TimeLimit)的其他动作事件时,此事件是否允许被触发
■ 设置TimeLimit会导致该参数无效
■ 默认为false
Intimacy 好感度 ■ Min:触发事件所需最小亲密度
■ Max:触发事件所需最大亲密度
■ Bonus:触发事件亲密度变化值
PreMtn 上一个动作 ■ 当设置该属性时,仅当上一个动作为指定动作才可以触发此动作
■ 动作格式为 “group:motion”,例如 "tap:mtn1"
■ 不指定motion时请直接写group名即可,例如 "tap"
NextMtn 下一个动作 ■ 动作格式为 “group:motion”,例如 "tap:mtn1"
■ 不指定motion时请直接写group名即可,例如 "tap"
Weight 权重 范围1-999,值越大触发概率越高。默认为1
Speed 速度 动作播放速度,SDK 2 不可用。默认为1
VarFloats 浮点变量 条件判断(Condition)
■ greater:大于
■ greater_equal:大于等于
■ lower:小于
■ lower_equal:小于等于
■ equal:等于
■ not_equal:不等于

值操作(Operation)
■ assign:赋值
■ add:加
■ subtract:减
■ multiply:乘
■ divide:除
■ init:初始化
■ 条件判断用于判断该动作事件是否可被触发
■ 值操作用于在事件触发后对值进行操作
■ 可以对两个变量进行条件判断和操作,例如:greater $var2($+变量名)
■ 变量名可以为模型参数名,参数名前需加@,例如:@ParamAngleX
■ 随机数函数:rand(min,max) 和 randf(min,max) 。rand为整数随机;randf为浮点数随机;min和max写随机数的最小值和最大值
■ 变量可存档
■ init操作仅在该变量没有存档(未初始化)的情况下有效
OverrideFaceParams 覆盖面部捕捉参数,SDK 2暂不可用

关于参数 Weight

例如有三个动作A,B,C参与随机选择,其中A的Weight值为1,B为10,C为89,三个动作的权重总和为100,则A的触发概率为1%,B为10%,C为89%。

参数 Ignorable 的使用场景

例如在模型启动时有两个启动事件参与随机抽选,其中事件A带有 TimeLimit 参数,只在特定日期触发,事件B为普通事件。将事件B的 Ignorable 设置为 false 时,到了特定日期后,会在事件A和事件B中随机选择一个触发;将事件B的 Ignorable 设置为 true 时,到了特定日期后,只会触发事件A而忽略事件B

事件列表

事件 描述 备注
Idle 待机
Tap 鼠标点击 若存在 HitAreas,优先触发 Tap区域名
Tap区域名 鼠标区域点击 需要配置 HitAreas,否则请使用 Tap 事件
Start 模型载入时触发
Shake 晃动设备时触发 限支持重力感应功能的设备使用
Tick 每分钟触发一次
TickX(tick_x) 每x分钟触发一次 X处填写数字,范围1-60
对于同时符合条件的(如第2分钟的Tick1和Tick2)随机选择一个事件进行触发
LeaveX_Y_Z(leave_x_y_z) 放置(除待机之外无任何其他事件触发) X表示开始执行时间,Y表示最小触发间隔,Z表示最大触发间隔,单位为秒
例如:Leave30_10_20 表示放置30秒后开始执行此事件,触发间隔为10-20秒之间

关于多动作同时播放

动作播放有层级(Layer)的概念,不同层级的动作可以同时播放,高层级播放的动作会覆盖低层级带有相同参数的动作。动作默认在层级0上播放,若希望在其他层级中播放,使用 事件名#层级 的命名格式,例如 idle#1 表示该动作组在层级1上播放。注意,在层级0上播放请勿使用 事件名#0,请直接使用 事件名

可用指令

  • 指令是以空格分割每个参数,所以在写id或是路径之类的时候一定不能有空格,切记!
  • 多条指令之间以英文分号(;)分割
指令 描述 示例
open_url 从浏览器打开链接 "Command":"open_url https://www.baidu.com"
change_cos 换装 "Command":"change_cos cos02.model.json"
start_mtn 执行指定模型的动作 "Command":"start_mtn model_id group:motion" (model_id可以不写,代表当前模型)
stop_mtn 停止指定层级的动作 "Command":"stop_mtn 1" (1代表层级序号)
set_exp 设置表情 "Command":"set_exp 01.exp.json"
next_exp 下一个表情 "Command":"next_exp"
clear_exp 清除表情 "Command":"clear_exp"
replace_tex 替换贴图 "Command":"replace_tex 1 tex/texture_01.png" (贴图编号从0开始,1代表第二张贴图)
stop_sound 停止声音 "Command":"stop_sound 0" (0为频道标识)
stop_all_sounds 停止所有声音 "Command":"stop_all_sounds"
mute_sound 静音 "Command":"mute_sound 0" (0为频道标识)
unmute_sound 解除静音 "Command":"unmute_sound"
hide_text 隐藏文本显示 "Command":"hide_text"
属性 指令 说明 示例
parameters
parts
artmesh_opacities
artmesh_colors
lock
unlock
set
锁定
解锁
设置
■ "Command":"parameters lock PARAM_ANGLE_X 10" (10为锁定的参数值)
■ "Command":"parameters lock PARAM_ANGLE_X $var" (将浮点变量名为var的值设为参数值,变量名开头需要加$)
■ "Command":"parameters lock PARAM_ANGLE_X @PARAM_NAME" (将参数PARAM_NAME的值赋给目标参数,参数开头需要加@)
■ "Command":"parameters unlock PARAM_ANGLE_X"
"Command":"parameters unlock"(解锁全部)
■ "Command":"parameters set PARAM_ANGLE_X 10" (10为锁定的参数值)
■ "Command":"parameters set PARAM_ANGLE_X $var" (将浮点变量名为var的值设为参数值,变量名开头需要加$)

* 锁定和设置的区别在于,锁定是持续性的,而设置仅赋值一次
motions enable
disable
启用
禁用
■ "Command":"motions enable group:motion"
■ "Command":"motions disable group:motion"
hit_areas
param_loop
enable
disable
启用
禁用
■ "Command":"hit_areas enable area_name"(area_name指名称)
■ "Command":"hit_areas disable area_name"
param_hit enable
disable
lock
unlock
begin
end
启用
禁用
锁定参数
解锁参数
开始拖拽
结束拖拽
■ "Command":"param_hit enable name"(name指名称)
■ "Command":"param_hit disable name"
■ "Command":"param_hit lock name"
■ "Command":"param_hit unlock name"
■ "Command":"param_hit begin name PARAM_NAME"
■ "Command":"param_hit end name"
mouse_tracking
physics
extra_motion
auto_breath
enable
disable
启用
禁用
■ "Command":"mouse_tracking enable"
■ "Command":"mouse_tracking disable"
eye_blink
lip_sync
enable
disable
enforce
启用
禁用
强制
■ "Command":"lip_sync enable"
■ "Command":"lip_sync disable"
■ "Command":"lip_sync enforce"

特殊占位符

占位符 描述 备注
{$br} 换行 用于文本换行(请勿直接回车换行)
{$username} 用户昵称 设置里设置的昵称
{$timenow} 当前时间 16:27
{$datenow} 当前年月日 2017-08-14
{$intimacy} 当前好感度 整数
{$intimacy_max} 最大好感度 整数
{$intimacy_min} 最小好感度 整数
{$vf_xxx} 显示浮点变量xxx 浮点数
{$vi_xxx} 显示浮点变量xxx 整数

Options

选项

名称 描述
Id 模型ID
Name 显示名称,此名称将用于在各种地方展示模型名称(如文本框,AI对话等)
ScaleFactor ■ 用于在加载时缩放模型
■ 默认为1,适合于某些加载时过大或过小的模型
AnisoLevel ■ 贴图的各向异性过滤等级
■ 默认为1。各向异性过滤使贴图在某些情况下看起来效果更好,但是会增加图形硬件的性能开销。此变量的值的范围从 1 - 9。当值大于1时会覆盖应用程序中的贴图各向异性过滤等级设定值
AllowMod ■ 允许用户自定义
■ 默认为true,若模型制作者不希望用户自定义部分内容,请设置为false

修订日期:2021年7月1日