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 | |
声音音量 | 声音音量 | ||
声音延迟 | 设置动作播放后延迟多久开始播放声音 | ||
声音循环 | 循环播放声音 | 常用于播放背景音乐 | |
混合模式 | 用于不同层级的动作混合 | ■ 覆盖 ■ 叠加 |
|
混合权重 | 当前动作与其他动作混合的权重 | ||
淡入 | 动作淡入 | ||
淡出 | 动作淡出 | ||
优先级 | 动作执行优先级 | ■ 可设定范围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),则执行此动作组下指定动作名的动作
控制器¶
插槽透明度¶
预定义网格透明度,可以让用户进行控制
项目属性见 共用项目属性B
插槽颜色¶
预定义网格颜色,可以让用户进行控制
项目属性见 共用项目属性B
好感度系统¶
属性 | 说明 |
---|---|
初始值 | 第一次加载模型时赋予的初值,此值需在最大最小值之间 |
最小值 | 好感度下限 |
最大值 | 好感度上限 |
激活时奖励 | 模型被加载时每分钟的奖励值,通常设置为正值 |
非激活时奖励 | 模型没有被加载时每分钟的奖励值,通常设置为负值 |
每日奖励限制 | 每日奖励的上限 |
绑定参数ID | 绑定到一个模型参数,参数值由好感度控制,常用于显示当前好感度的值 |
提示
可以通过【动作事件】的【好感度】属性来改变好感度的值
#附录:共用项目属性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时会覆盖应用程序中的贴图各向异性过滤等级设定值 |
边缘填充 | 解决模型出现黑色边缘的问题 |
允许用户自定义 | 勾选后用户可以自定义模型 |
着色器 | 某些情况下,默认着色器可能会出现模型显示异常,更换着色器或许可以解决显示问题 |
修订日期:2024年02月24日