跳转至

Spine编辑器 - 手册

用户界面

左侧:操作栏

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

中间:模型预览

图标 说明
编辑Json配置
编辑模型边界
保存模型快照
视频录制
显示/隐藏左面板
显示/隐藏右面板
在桌面预览模型

右侧:标签页

文件检视器

  • 显示模型文件夹

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

  • 其他操作

    操作 说明
    打开文件夹 打开模型文件夹
    创建配置文件 参考:创建Json配置文件

配置文件

  • 显示Json配置文件内容

  • 其他操作

    操作 说明
    编辑 编辑Json文件

动画

  • 显示模型所有动画

  • 其他操作

    操作 说明
    循环 预览动画循环播放
    速度 预览动画的速度
    重置所有 重置用户对动画的所有操作
    移除排序
    升序排序
    降序排序

骨骼

  • 显示模型所有骨骼

  • 其他操作

    操作 说明
    重置所有 重置用户对骨骼的所有操作
    移除排序
    升序排序
    降序排序

插槽

  • 显示模型所有插槽透明度

  • 其他操作

    操作 说明
    重置所有 重置用户对插槽的所有操作
    移除排序
    升序排序
    降序排序

Json编辑器

关于【保存】和【关闭】

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

通用图标按钮

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

模版

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

版本

模型版本


纹理图集

模型纹理图集

  • 一个模型可以有复数个纹理图集(altas)
  • 一个纹理图集对应复数个贴图文件(png)

点击区域

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

项目属性 说明
名称 区域名称
ID 模型骨骼ID
排序 当有区域重叠时,只有序号最高的区域可接收鼠标事件
点击时动作 鼠标点击区域时触发
按下时动作 鼠标在区域内按下时触发
抬起时动作 鼠标抬起时触发,可以不在区域内
进入时动作 鼠标进入区域时触发
离开时动作 鼠标离开区域时触发
宽度 区域宽度
高度 区域高度
中心X 区域中心X位置
中心Y 区域中心Y位置
启用 区域是否可用

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

触发区域关联的网格必须有可见部分才能被触发,全透明或不可见则无法被触发


动作

  • 动作由多个动作组构成,每个动作组可以有多个动作事件
  • 支持同时播放不同层级的动作组,层级以【#层级号】表示
示例 说明
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
声音音量 声音音量
声音延迟 设置动作播放后延迟多久开始播放声音
声音循环 循环播放声音 常用于播放背景音乐
混合模式 用于不同层级的动作混合 ■ 覆盖
■ 叠加
仅支持Spine 3.7及以上
混合权重 当前动作与其他动作混合的权重 仅支持Spine 3.5及以上
淡入 动作淡入
淡出 动作淡出
优先级 动作执行优先级 ■ 可设定范围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),则执行此动作组下指定动作名的动作

控制器

注意

  • 控制器中所有显示为 参数 的,在Spine里都代表 动画
  • Spine控制器与Live2D控制器不同之处:Live2D控制器控制的参数值,而Spine控制器控制的动画,将动画速度设置为0并通过代码来控制动画时间。请在使用时注意。

鼠标追踪

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

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

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

嘴型同步

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

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

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

参数拖拽

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

注意

指定的动画需要处于播放中,否则此控制器将无效

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

参数循环

参数随时间循环播放

注意

控制器会在高层级播放动画并进行控制

项目属性 说明
名称 项目名称
ID组 参数ID组
类型 参数值变化方式
混合模式 参数与模型动作的混合模式
时长 循环时间(ms)
最小值 参数最小值
最大值 参数最大值
最小间隔 两次循环之间的最小间隔
最大间隔 两次循环之间的最大间隔
比重 参数值对模型的影响程度,即【实际影响值 = 参数值 x 比重】
时间同步 根据当前系统时间设定参数值
启用 项目是否可用

插槽透明度

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

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


插槽颜色

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

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


加速器

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

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


按键触发

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

提示

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

注意

  • 当使用鼠标左右键时,请将对应的触发动作设置与【点击事件】不同的层级,否则在触发了鼠标左右键事件后会无法触发【点击事件】
  • 请利用【在桌面预览模型】或直接在桌面/壁纸软件里加载模型查看效果

好感度系统

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

提示

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


#附录:共用项目属性A

注意

控制器会在高层级播放动画并进行控制

项目属性 说明 鼠标追踪 嘴型同步 加速器
参数 参数ID
坐标轴 鼠标的XY轴
反转 反转参数值
最小值 参数最小值
最大值 参数最大值
默认值 参数默认值
混合模式 参数与模型动作的混合模式
比重 参数值对模型的影响程度,即【实际影响值 = 参数值 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
stop_sound 停止声音 stop_sound 0 (0为频道标识)
stop_all_sounds 停止所有声音
mute_sound 静音 mute_sound 0 (0为频道标识)
unmute_sound 解除静音
hide_text 隐藏文本显示
set_skins 设置多个皮肤
add_skins 添加皮肤
remove_skins 移除皮肤
reset_pose 重置姿势
属性 指令 说明 示例
slot_opacities
slot_colors
lock
unlock
set
锁定
解锁
设置
■ slot_opacities lock SLOT_A 1 (1为锁定值)
■ slot_opacities unlock SLOT_A
■ slot_opacities unlock(解锁全部)
■ slot_opacities set SLOT_A 1

* 锁定和设置的区别在于,锁定是持续性的,而设置仅赋值一次
motions enable
disable
启用
禁用
■ motions enable group:motion
■ motions disable group:motion
hit_areas enable
disable
启用
禁用
■ hit_areas enable area_name(area_name指名称)
■ hit_areas disable area_name

选项

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

修订日期:2025年01月18日