跳转至

Live2D编辑器 - 手册

用户界面

左侧:操作栏

功能 说明
背景 ■ 纯色:纯色背景
■ 图片:自定义图片背景
■ 禁用:关闭背景,用于保存无背景的模型快照
缩放 缩放模型
旋转 旋转模型
保存当前大小和位置 将当前大小和位置写入Json配置的选项内,用于设置模型初始状态
表情 切换表情
显示可触摸区域 用红色框显示区域
提示 操作提示
信息 模型moc文件信息
日志 模型日志,显示动作事件
渲染尺寸 当前预览窗口的分辨率
快照尺寸 自定义快照大小,值为生成的图片的长边值

中间:模型预览

图标 说明
编辑Json配置
编辑模型边界
在桌面预览模型
保存模型快照

关于模型边界

  • 模型边界定义了鼠标追踪的范围和可以触发全局点击事件的区域
  • 默认情况下程序通过遍历所有网格位置自动计算出边界,但在某些情况下会出现计算出来的边界过大或过小,此时需要自己手动调整

右侧:标签页

文件检视器

  • 显示模型文件夹

    图标 说明
    打开Moc或Json文件
    打开模型文件夹
    刷新文件夹
  • 显示模型相关文件

    • 点击motion3.json文件预览动作
    • 点击exp3.json文件预览表情
    • 点击音频文件播放音频
  • 其他操作

    操作 说明
    打开文件夹 打开模型文件夹
    创建配置文件 参考:创建Json配置文件
    从Facerig配置创建Json文件 参考文章:https://www.bilibili.com/read/cv11482720

配置文件

  • 显示Json配置文件内容

  • 其他操作

    操作 说明
    编辑 编辑Json文件
    修复动作文件 尝试修复某些播放异常的动作文件,无法保证有效性

参数

  • 显示模型所有参数值

  • 其他操作

    操作 说明
    数值同步 关闭后参数值不再实时刷新
    重置所有 重置用户对参数值的所有操作
    移除排序
    升序排序
    降序排序

部件

  • 显示模型所有部件透明度

  • 其他操作

    操作 说明
    自由选择 勾选后点击模型显示点击部分的所有网格
    重置所有 重置用户对参数值的所有操作
    移除排序
    升序排序
    降序排序

网格

  • 显示模型所有网格透明度

  • 其他操作

    操作 说明
    数值同步 关闭后参数值不再实时刷新
    重置所有 重置用户对参数值的所有操作
    移除排序
    升序排序
    降序排序

Json编辑器

关于【保存】和【关闭】

  • 【保存】会将当前配置写入文件并重新加载模型
  • 【关闭】仅关闭编辑器窗口,模型不会被重新加载

通用图标按钮

图标 说明 图标 说明
添加多个 复制
添加 移除
上移 下移
修改项目名 选择项目

模版

图标 说明
读取模版(插入到项目列表)
读取模版(替换项目列表)
保存模版

执行顺序

描述 说明
恢复保存的参数值和部件透明度 每帧开始时恢复上一帧保存的数据
播放动作文件 按层级顺序播放
控制器 执行控制器代码
执行指令 执行指令代码(若存在)
保存参数值和部件透明度 保存之后,此帧剩余部分对数据的修改将不会影响下一帧的数据
执行物理文件 执行之后,此帧剩余部分对数据的修改会影响物理效果

关于动作的执行

  • 默认状态下,程序会循环执行【待机】动作,所有层级的动作同步执行
  • 动作执行完毕之后,需要有其他动作打断当前动作(或者用指令【stop_mtn】来停止动作),否则将会停止在动作的最后一帧
  • 基于以上两点,在有【待机】动作的层级,其他动作执行完后会回到待机动作;没有【待机】动作的层级,其他动作执行完后会停止在最后一帧
  • 动作有优先级之分,优先级高的动作可以打断优先级低的动作。同级别动作默认不可以打断,除非在【动作事件属性】里勾选了【可被中断】

补充说明

  • 参数拖拽有高低优先级之分,高优先级会对物理效果造成影响
  • 未提及的指令和控制器会在满足条件时立刻执行,不会参与每帧的执行中
  • 此顺序提及的内容并非全部,会根据开发需要随时做出调整

版本

模型版本


贴图

模型贴图文件

注意

贴图必须按照正确顺序排列,否则会造成模型显示异常


点击区域

模型触发区域,可以通过鼠标触发动作事件

项目属性 说明
名称 区域名称
ID 模型网格ID
排序 当有区域重叠时,只有序号最高的区域可接收鼠标事件
点击时动作 鼠标点击区域时触发
进入时动作 鼠标进入区域时触发
离开时动作 鼠标离开区域时触发
启用 区域是否可用

关于网格可见性和区域触发

触发区域关联的网格必须有可见部分才能被触发,全透明或不可见则无法被触发。可以在【网格】列表页通过拖动滑动条,观察网格的变化来确认网格可见性


动作

  • 动作由多个动作组构成,每个动作组可以有多个动作事件
  • 支持同时播放不同层级的动作组,层级以【#层级号】表示
示例 说明
Start 预定义动作组
TapHead 预定义动作组【Tap区域名】,其中【Head】为触发区域名称
MyGroup 自定义的动作组名
MyGroup#3 自定义的动作组名,动作组所在层级号为【3】

关于多动作同时播放

  • 动作播放有层级(Layer)的概念,不同层级的动作可以同时播放,高层级播放的动作会覆盖低层级带有相同参数的动作
  • 动作默认在层级0上播放,若希望在其他层级中播放,使用【动作组#层级】的命名格式,例如【idle#1】表示该动作组在层级1上播放。注意,在层级0上播放请勿使用【动作组#0】,请直接使用【动作组】
  • 预定义动作组除了【Idle】以外均不支持层级,请在预定义动作内使用【start_mtn】来执行其他层级的动作
  • 应用实例见 多动作组同时播放

预定义动作组

事件 描述 备注
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秒之间

动作事件属性

基础属性 说明 可选项 备注
名称 动作名 动作只有在填写名称之后,才能被其他引用者正确识别,否则只能识别到动作组
语言 动作对应的语言 ■ en:英文
■ zhs:简体中文
■ zht:繁体中文
■ ja:日文
■ ru:俄语
只有当程序设置的语言与此相匹配时才可以被触发
文件 动作文件(motion3.json)
动作循环 勾选后将循环播放动作
文本 动作执行时显示的文本
文本时长 自定义文本显示的时长 不设定则由系统自动判断
文本延迟 设置动作播放后延迟多久开始显示文本
表情 动作播放时的表情,此处填写表情名
声音 动作播放时的声音
声音频道 设置播放声音的频道 总共可以选择三个频道(0,1,2),不同频道声音可以同时播放。默认为0
声音音量 声音音量
声音延迟 设置动作播放后延迟多久开始播放声音
声音循环 循环播放声音 常用于播放背景音乐
混合模式 用于不同层级的动作混合 ■ 覆盖
■ 叠加
混合权重 当前动作与其他动作混合的权重
淡入 动作淡入
淡出 动作淡出
优先级 动作执行优先级 ■ 可设定范围2-9,越大优先级越高
■ 默认为2,若设置为9则强制覆盖前一个事件
动作时长 自定义动作事件的时长 设置之后此事件不受动作和语音时长影响
比重 动作触发概率 范围1-999,值越大触发概率越高。默认为1
速度 动作播放速度 SDK 2 不可用。默认为1
进阶属性 说明 可选项 备注
前置指令 动作开始播放之前执行 可用指令列表
后置指令 动作播放结束后执行 可用指令列表
上一个动作 指定上一个动作事件 只有上一个动作为设置的动作,才可以执行当前动作
下一个动作 指定下一个动作 动作执行完后执行的下一个动作
覆盖面部追踪参数 勾选后动作不会受面部捕捉的影响
启用 此动作事件是否可以被执行
可被中断 动作是否可被打断 ■ 当勾选时,此动作事件可以被相同优先级的动作打断
■ 此参数对优先级为9的事件无效
可被忽略 动作是否可被忽略 ■ 当存在符合触发条件并设置了【时间限制】的其他动作事件时,此事件是否允许被执行
■ 设置【时间限制】会导致该参数无效
时间限制 只有满足时间条件才可以被执行 ■ 时/分/月/日
■ 持续时间(分钟)
■ 生日:用户在程序设定里设置的生日
好感度 只有满足好感度条件时才可以被执行 ■ 最小值:触发事件所需最小亲密度
■ 最大值:触发事件所需最大亲密度
■ 等于:好感度等于此值时触发
■ 奖励:成功触发事件增加的亲密度值
特殊属性 说明 可选项 备注
选择项 通过在文本框显示选择项来执行动作事件 ■ Text:文本
■ NextMtn:下一个动作
浮点变量 通过浮点变量来控制动作的执行 条件判断(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操作仅在该变量没有存档(未初始化)的情况下有效

浮点变量

  • 浮点变量分两种类型:【条件判断】和【值操作】
  • 条件判断:当浮点变量满足条件时,此动作事件才被允许执行
  • 值操作:动作事件执行之后,对浮点变量的值进行操作

关于动作的引用

  • 动作引用格式为【动作组:动作名】(例如:Tap:MotionA)
  • 若只写【动作组】(例如:Tap),则随机执行此动作组下的任意一个满足条件的动作
  • 若完整填写【动作组:动作名】(例如:Tap:MotionA),则执行此动作组下指定动作名的动作

控制器

鼠标追踪

让模型跟随鼠标进行一定程度的活动

项目属性见 共用项目属性A

属性 说明
平滑时间 平滑时间越高,模型跟随鼠标的速度越慢,动作顺滑度越高

若项目列表为空,则读取默认参数,默认参数列表见下方

默认参数(SDK3) SDK2
ParamAngleX PARAM_ANGLE_X
ParamAngleY PARAM_ANGLE_Y
ParamAngleZ PARAM_ANGLE_Z
ParamEyeBallX PARAM_EYE_BALL_X
ParamEyeBallY PARAM_EYE_BALL_Y
ParamBodyAngleX PARAM_BODY_ANGLE_X

嘴型同步

让音频音量大小控制模型的嘴部开闭参数

项目属性见 共用项目属性A

属性 说明
增益 增益越大,嘴部开闭受音量影响越灵敏
平滑时间 平滑时间越高,嘴部开闭的变化越慢,动作顺滑度越高

若项目列表为空,则读取默认参数,默认参数列表见下方

默认参数(SDK3) SDK2
ParamMouthOpenY PARAM_MOUTH_OPEN_Y

提示

若动作中存在控制参数的关键帧,可能会导致此控制器失效


眨眼

模型自动眨眼

项目属性见 共用项目属性A

属性 说明
最小间隔 两次眨眼最小间隔时间
最大间隔 两次眨眼最大间隔时间

若项目列表为空,则读取默认参数,默认参数列表见下方

默认参数(SDK3) SDK2
ParamEyeLOpen PARAM_EYE_L_OPEN
ParamEyeROpen PARAM_EYE_R_OPEN

提示

若动作中存在控制参数的关键帧,可能会导致此控制器失效


参数拖拽

用鼠标相关操作控制模型参数

项目属性 说明
名称 项目名称
ID 参数ID
点击区域 触发拖拽的区域
类型 ■ 拖拽:按住鼠标左键拖拽
■ 抚摸:按住鼠标左键来回移动
■ 按住:长按鼠标左键
坐标轴 鼠标的XY轴
因子 乘算因子
■ 拖拽 / 抚摸:鼠标每移动一像素的参数改变值
■ 按住:每按住1秒钟的参数改变值
锁定参数 松开鼠标后参数不归位
释放时间 松开鼠标之后参数值回归时间
释放类型 参数回归的动画曲线
比重 参数值对模型的影响程度,即【实际影响值 = 参数值 x 比重】
最小值动作 参数值达到最小时触发
最大值动作 参数值达到最大时触发
开始动作 鼠标左键按下时触发
结束动作 鼠标松开时触发(未达到参数最大值)
低优先级 低优先级项目不会覆盖模型物理效果
启用 项目是否可用

参数循环

参数随时间循环播放

项目属性 说明
最小间隔 两次循环之间的最小间隔
最大间隔 两次循环之间的最大间隔
时间同步 根据当前系统时间设定参数值

参数值

预定义参数值,可以让用户进行控制

项目属性见 共用项目属性B


部件透明度

预定义部件透明度,可以让用户进行控制

项目属性见 共用项目属性B


网格透明度

预定义网格透明度,可以让用户进行控制

项目属性见 共用项目属性B


网格颜色

预定义网格颜色,可以让用户进行控制

项目属性见 共用项目属性B


自动呼吸

控制模型呼吸参数 ParamBreath


小幅度动作

叠加到模型动作之上的随机动作

默认参数(SDK3) SDK2
ParamAngleX PARAM_ANGLE_X
ParamAngleY PARAM_ANGLE_Y
ParamAngleZ PARAM_ANGLE_Z
ParamBodyAngleX PARAM_BODY_ANGLE_X

加速器

使用手机硬件加速器控制模型参数


麦克风

使用麦克风控制模型参数


面部追踪

项目属性见 共用项目属性A

参数 缺省值
角度X ParamAngleX / PARAM_ANGLE_X
角度Y ParamAngleY / PARAM_ANGLE_Y
角度Z ParamAngleZ / PARAM_ANGLE_Z
位置X ParamBodyAngleZ / PARAM_BODY_ANGLE_Z
位置Y
位置Z
左眼开闭 ParamEyeLOpen / PARAM_EYE_L_OPEN
右眼开闭 ParamEyeROpen / PARAM_EYE_R_OPEN
睁大眼睛
眯眼
眼球X ParamEyeBallX / PARAM_EYE_BALL_X
眼球Y ParamEyeBallY / PARAM_EYE_BALL_Y
左眉Y ParamBrowLY / PARAM_BROW_L_Y
右眉Y ParamBrowRY / PARAM_BROW_R_Y
嘴部开闭 ParamMouthOpenY / PARAM_MOUTH_OPEN_Y
嘴部形变 ParamMouthForm / PARAM_MOUTH_FORM
噘嘴(张开)
噘嘴(闭合)
鼓腮
伸舌

手部追踪

项目属性见 共用项目属性A

参数 说明 备注
角度X 手腕翻转 ■ 五个状态,分别对应值 (-1, -0.5, 0, 0.5, 1)
■ -1=参数最小值;1=参数最大值
角度Z 手腕左右晃动
位置X 手腕左右相对位置 ■ 相对于基准位置
位置Y 手腕上下相对位置 ■ 相对于基准位置
拇指 ■ 弯曲=最小值;伸直=最大值
食指 ■ 弯曲=最小值;伸直=最大值
中指 ■ 弯曲=最小值;伸直=最大值
无名指 ■ 弯曲=最小值;伸直=最大值
小指 ■ 弯曲=最小值;伸直=最大值
指间:拇指 - 食指 ■ 并拢=最小值;张开=最大值
指间:食指 - 中指 ■ 并拢=最小值;张开=最大值
指间:中指 - 无名指 ■ 并拢=最小值;张开=最大值
指间:无名指 - 小指 ■ 并拢=最小值;张开=最大值

好感度系统

属性 说明
初始值 第一次加载模型时赋予的初值,此值需在最大最小值之间
最小值 好感度下限
最大值 好感度上限
激活时奖励 模型被加载时每分钟的奖励值,通常设置为正值
非激活时奖励 模型没有被加载时每分钟的奖励值,通常设置为负值
每日奖励限制 每日奖励的上限
绑定参数ID 绑定到一个模型参数,参数值由好感度控制,常用于显示当前好感度的值

提示

可以通过【动作事件】的【好感度】属性来改变好感度的值


按键触发

项目属性 说明
按下时动作 按键按下时触发
抬起时动作 按键抬起时触发

提示

要使按键生效,需要在【控制面板】【设定】里启用【热键】


参数触发

属性 说明
名称 项目名称
参数 参数ID
触发值 ■ 值:当参数值穿过该值会触发指定动作
■ 方向:正向表示参数值从小到大经过触发值时有效;反向表示从大到小经过有效;双向表示只要穿过均有效
■ 触发动作:条件满足时触发的动作

区域触发

属性 说明
名称 项目名称
目标区域 被触发区域
进入时动作 触发区域进入目标区域时触发的动作
离开时动作 触发区域离开目标区域时触发的动作
触发区域 主动触发的区域

注意

  • 系统持续检测目标区域与触发区域是否形成重叠部分,并触发【进入时动作】和【离开时动作】
  • 因每帧都会检测,所以可能对性能产生影响

手势触发

属性 说明
名称 项目名称
触发手
方向 ■ 忽略:不判定方向
■ 正向:手心朝向相机
■ 反向:手背朝向相机
动作 触发动作
手指 ■ 忽略:不判定该手指
■ 伸直:手指伸直
■ 弯曲:手指弯曲

#附录:共用项目属性A

项目属性 说明 鼠标追踪 嘴型同步 眨眼 面部追踪 手部追踪
参数 模型参数
坐标轴 鼠标的XY轴
反转 反转参数值
最小值 参数最小值
最大值 参数最大值
默认值 参数默认值
因子 实际值 = 面捕值 x 因子,限制范围(-1, 1)
混合模式 参数与模型动作的混合模式
比重 参数值对模型的影响程度,即【实际影响值 = 参数值 x 比重】
输入 直接绑定到鼠标的移动或左右键
排序 参数顺序可能影响叠加效果,序号越大越靠后

最大值、最小值和默认值

  • 参数本身自带最大最小值和默认值,选择参数时会自动填入
  • 可以自定义三个值,会覆盖参数自带的值
  • 自定义的值必须在参数最大最小值范围内

#附录:共用项目属性B

项目属性 说明
名称 项目名称
文本 显示文本,若不填写则显示项目名称
初始值
对用户隐藏 不显示在编辑面板里
ID组 关联的参数ID组
关键值 ■ 仅用于【参数值】控制器
■ 若存在关键值,用户界面以左右箭头形式显示,否则以滑动条的形式显示

对用户隐藏

正常情况下用户可以通过编辑面板对项目值进行修改,若此项目为固定值或不希望用户修改,请勾选【对用户隐藏】

#附录:可用指令

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

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

表情

项目属性 说明
名称 表情名
文件 表情文件

物理

项目属性 说明
文件 设置physic3.json文件
最大权重 物理对模型的影响,值越大影响越大

姿势

设置pose.json文件


选项

属性 说明
ID 模型ID,用于模型与模型之间的交互
名称 显示名称,此名称将用于在各种地方展示模型名称(如文本框)
缩放因子 模型的默认缩放比例
位置X 模型的默认左右位置
位置Y 模型的默认上下位置
各向异性过滤级别 各向异性过滤使贴图在某些情况下看起来效果更好,但是会增加图形硬件的性能开销。当值大于1时会覆盖应用程序中的贴图各向异性过滤等级设定值
边缘填充 解决模型出现黑色边缘的问题
允许用户自定义 勾选后用户可以自定义模型
遮罩缓存尺寸 某些情况下,模型使用遮罩会出现锯齿边。增加缓存尺寸可以减少锯齿边,但会影响性能

修订日期:2024年02月24日