3dsMax与Spine互导工具
# 3dsMax与Spine互导工具
# Spine Max 互倒工具说明
# 1.1 目标
- 将2D动画软件Spine 资源导入 3dsMax 方便动画师制作动画。
- 将 3dsMax 动画导入 2D动画软件Spine 中。
# 1.2 - Spine导入3dsMax 目前支持
- 面片模型
- 骨骼蒙皮权重
- 骨骼动画以及曲线
- 顶点动画
- 绘制顺序动画
- spine纹理打包配置
# 1.3 - 3dsMax导出 Spine 目前支持
- 骨骼动画以及动画曲线
- 绘制顺序动画
# 安装
3dsMax 版本应没有限制,但我只在 3dsMax 2015 上开发测试,其他搞版本不保证能否正常使用。
- SpineToMax_01.mse ,拖进Max 运行 即可。
# 3. 如何从Spine中导出json
如下图,点两下按钮即可。
# Spine 贴图纹理打包说明
spine 中的纹理打包器,就是将全部贴图拼合成一张或者多张贴图,通常提交的最终spine 资源,都会包含 主体 json 文件,和atlas 纹理配置文件。
纹理打包不会改变现有的spine 资源, 只是生成一个 .atlas 面片 UV 整合配置文件,和一张或多张拼合之后的整图。
纹理打包器设置 ,如下图
只解释下重要参数,其他参数保持如上图设置即可。
# 4.1 页面大小
纹理打包支持打包出多张贴图,而不是所有贴图全部整到一张图,一个UV里,每张整图被称为 页面,理想情况下就只有一页。
- 最小宽高
打包出来的整图,最小尺寸。
- 最大宽高
打包出来的贴图最大尺寸,如果你想全部整合成一张图,此值 要给大,给小了,打包错误或者是打包出多张整图,而不是一张图。
- 正方形
打包出来的整图是不是正方形,此选项应保持勾选。
# 4.2 输出
图片格式设置。
- 缩放
非常重要的设置,该值无法给建议值,得在打包过程中测试出来,此值给大了,可能打包错误,给小了浪费贴图。
现在你有一张 页面大小为 1024 * 1024 的空间,如果把你的spine角色每个面片,都放进去这个 1024 空间中,是否放的下?如果放不下,是不是缩放之后就能放的下?
所以 这个输出 缩放 值 ,就是你大概预估 你的角色面片缩放多少才可能放进你的贴图页面中。
如下图,缩放值 给的比较小,整图中有很多空白,相对于浪费。
# 5. 3dsMax 导入Spine 资源
# 5.1 导入 - 模型 骨骼 材质
打开插件,选择 spine 中导出的 json 文件, 点击 【导入按钮】即可导入spine 资源。
自动设置面片的材质贴图。
- bones ,骨骼
- slots , 插槽
- skins , 只导入 mesh 类型。
# 5.2 材质贴图
只要保持 Spine 默认的文件夹结构,便可自动找到贴图。
# 5.3 导入altas纹理配置
在使用 Spine To Max 工具导入 spine 资源时,只是还原spine 中的面片模型效果,即每一张图对应一个面片,其UV也是每个面片单独。
但是spine最终输出资源,都会使用 【Spine 纹理打包】,将贴图整合成一张图,而我们最后使用的模型资源也应该是全部面片UV整合之后的,可以直接将UV配置文件导入 3dsMax 自动处理面片UV。
- 处理面片UV 前。
- 导入 atlas 纹理配置 处理之后的 面片UV。
处理好面片的UV,就可以将全部面片合并成一个模型了。
# 5.4 合并模型
直接将全部面片合并成一个模型,在上面 【导入模型】,【UV拼合】两个步骤之后合并模型,
不需要选择面片,直接点击 【合并模型】按钮即可,如下图,直接使用 skin wrap 蒙皮包裹合并权重。
注意上图,一个模型 vbody,蒙皮骨骼里也有 vbody , 是因为在spine 中有根骨骼也叫 vbody
- 更新权重:
选中 合成来的 vbody 模型,直接从 json 文件中导入 权重,放弃 蒙皮包裹skin wrap 权重,那些在spine 中没有蒙皮的模型,请手动处理权重。
# 5.5 导入动画
动画和模型是分开处理,在导入 模型完成之后,最好是 手动 给全部骨骼设置下 【蒙皮姿势】
在确认模型导入无误之后,直接点击 【仅导入动画】按钮即可加载动画。
导入 Spine 内容如下:
- 骨骼位置,旋转动画,转为骨骼动画,位置XY轴,旋转 Z 轴。
- 还有每帧的曲线手柄设置。
- 面片绘制顺序,转插槽Z轴 动画。
- 顶点变形动画,转为Morpher 变形器。
# 6. 3dsMax 导出Spine资源
首先要说明,导出资源 ,并不是从无到有生成 一个 新的json 文件。
而是替换 早先 导入max 的那个 json 文件中的 动画或者其他数据,保留部分原始数据。
# 6.1 导出动画
导出内容:
- 骨骼位置,旋转动画
- 还有每帧的曲线手柄设置
- 面片绘制顺序
首先要说明,导出资源 ,并不是从无到有生成 一个 新的json 文件。
而是替换 早先 导入max 的那个 json 文件中的 动画数据,保留其他原始数据。
当你 点击 【导入】按钮时,就会把这个json 加载到内存,此时点击 【仅导入动画】 是直接从内存中取数据。
如果你不点击 【仅导入动画】而去点击 【导出动画】 按钮,那就会用当前场景中的骨骼动画数据覆盖掉刚刚加载进内存的数据,不关掉插件重新选择 原 json 是没法导入动画了。
所以导出动画前,先选对生成这个spine角色的 原始 json 文件,把max 里的骨骼动画数据替换到这个 原始Json 上。
例如 , spine 导入 max 使用 【弓手3.json】这个文件生成角色模型,那导出动画时,还是要选择这个 【弓手3.json】文件。
# 6.2 注意点
# 不要去修改骨骼的 transform 控制器
全部保持如下图的默认类型,才能正常导入导出动画!
# 插槽曲线被锁定
如下图,插槽的 旋转 ,缩放 和 位置X Y 动画曲线全都锁定 ,无法设置动画,如果还想把动画导回spine 不要设置锁定轴向动画。
位置 Z 是spine 导入的 绘制顺序动画。
显示 动画曲线的 锁定 按钮 ,如下图
# 6.3 插槽 排序动画 说明
spine 绘制顺序动画导入 3ds Max 之后用 插槽位置 Z 轴 动画表示 。
当前帧 数值
- 零 ,表示 排序不变。
- 负数,表示向下 移动排序。
- 正数,表示向上 移动排序。
移动排位数 = (k.value - 0.5) / 2