Spine 动画教程:皮肤制作

一、前言

搁了很久的抖音直播小玩法开发,最近又让我想起来了。由于是初次尝试,所以我将开发费用的预算降到为零。不但不买服务器采用 UnitySDK 的指令直推,而且游戏的资产也用 AI 生成,主打省时又省钱。

但是图片有了,动画还是得自己做,于是我又从零开始学了一下 Spine 动画制作。整个过程也是有很多值得记录下来的,比如制作皮肤的教程,网上还是比较少,问 DeepSeek 也不全,做完后导入 Unity3D 报错等问题。所以,跟着我这篇文章动手走一遍,还是能快速制作动画皮肤的。

二、工具

Spine 3.8.75

spine-unity-3.8-2021-11-10

三、皮肤制作

在动手制作前,可以先对照一下自己的 Spine 版本,和 Unity3D 的 Spine 插件版本,后面我会说一个很有意思的导入问题,那下面就开始如何制作皮肤了。

1. 简单的图片皮肤示例

1.1. 画面创建

导入两张形状一致,但纹理不同的图片,然后两张图全部绑定在一个骨骼下,层级结构参考下图。

1.2. 添加皮肤

在层级树的皮肤中,点击创建两个皮肤,名字自定义。

1.3. 创建皮肤占位符

在层级树中选择一个皮肤,点击左边的 “眼睛(小圆点,表显示)”,然后选中某插槽下的一个附件(图片)。选择后再点击下面的 “新建” -> “皮肤占位符”。,名字自定。

1.4. 检查皮肤切换

通过点击皮肤左边的眼睛按钮,看看能不能展开皮肤占位符里的附件,因为给附件添加皮肤占位符后,就被折叠进占位符中了。

1.5. 创建动画

进入动画模式后,点击两张图片上的骨骼,在摄影表中给该骨骼添加移动的关键帧,最后我们在播放时就可以切换皮肤了。

2. 简单的网格皮肤演示

装配和上面图片的皮肤示例一样,但是在绑定骨骼前,现对图片网格处理(蒙皮),然后绑骨骼,刷权重。

2.1. 网格编辑

点击图片 -> 勾选网格 -> 编辑网格 -> 新建,然后对图片的轮廓围起来(像 PS 里的钢笔一样操作)。

2.2. 添加骨骼

选择自定义的根骨骼,按照预期的动画效果,添加几个骨骼。

2.3. 给网格绑定骨骼

选中网格,点击添加骨骼上方的 “权重” 按钮,弹出一个权重窗口,点击绑定,然后将下面添加的几个骨骼选中(按 ctrl 多选),最后再点一下绑定。

2.4. 添加皮肤

第二张图片重复前面的添加网格,但是不用再新建骨骼,和第一张共用,皮肤切换的作用就在这里了,多个皮肤共用一套骨骼动画。

就像我们玩游戏的时候,不管怎么换皮肤,英雄的招式是一样的,当然打击特效可能也拆分出了皮肤除外。

2.5. 创建皮肤占位符

皮肤添加和占位符创建和前面的图片皮肤示例一样,只是这次是点击网格而不是附件了。

四、导出与导入

导出是在 Spine 中导出能在 Unity3D 中使用的动画文件,这里要注意格式和添加方法,还有前面提到的导入游戏引擎中报错问题。

Spine 导出

点击导出,选择 “JSON”,确定输出文件夹后,点击 “打包设置”,为了被 Unity3D 支持,图集扩展名要加上 “.txt”。

导入 Unity3D

从 Spine 导出后有三个文件,分别是 atlas.txt 的图集文件,json 数据和 png 贴图。

放入一个文件夹后直接复制到 Unity3D 项目的 Resources 后,游戏引擎会再生成一个 atlas 和 skeletonData 的 asset 文件,以及一个 mat 文件。

进入编辑器中,只需要将 SkeletonData.asset 拖到场景中即可。

导入运行报错

当我第一次导进去后就提示错误:Error reading skeleton JSON file for SkeletonData asset: skeleton_SkeletonData Unsupported skeleton data, please export with a newer version of Spine。

根据提示是导出的 Spine 文件版本太低,其实就是我安装的 Spine-Unity 插件和 Spine3.8.75 不匹配。一般的做法就是换新版 Spine,或安装低版本 Unity 插件,但是我这次就对比了一下可以使用的 spine 动画 json 文件。

发现格式都差不多,唯一不同的只是 skeleton 下的 spine 版本号,原本的是 3.8.75,当我改成 3.8.99 重新加载进去后竟然就可以了。这整得我也是很无语,就只是校验了一下版本号,我还以为是格式不对。

五、写在后面

其实想要快速制作游戏动画,还有以一种更好的方法,那就是序列帧动画。首先将 AI 生成的图片,再输入指定动作的提示词,用图生视频。然后将视频拆成图片帧,最后只需要挑选一些抠图做成图片精灵就可以了。

虽然我一开始就是这样想的,但是了解到 Spine 优点后就放弃这种方式。第二个原因,通过学习 Spine 我可以可持续制作动画贴图,还能上传到平台赚取收益,以后有时间我也会不定时地更新 Spine 动画制作小案例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/78345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读笔记——π0.5: a Vision-Language-Action Model with Open-World Generalization

π0.5 论文 通过异构数据协同训练与分层推理,用中等规模的目标数据(400小时)实现了大规模泛化能力,为现实世界机器人学习提供了新范式。 高层推理(high-level) 根据当前观测和任务指令预测子任务(如“打开抽屉”&…

记录搭建自己应用中心

记录搭建自己应用中心 应用架构主应用-管理中心系统文件系统子应用 日志系统日志系统前端日志系统后端 用户系统接入使用暂未完成 研发管理需求面板消息推送任务分配应用发布 应用架构 一直想做个试试,这是一个简易版的,主要是整合下知识的,…

【网工第6版】第5章 网络互联⑦

目录 ▲ 路由协议OSPF ◎ OSPF简介 ◎ OSPF特点 本章重要程度:☆☆☆☆☆ ▲ 路由协议OSPF ◎ OSPF简介 OSPF(Open Shortest Path First,开放式最短路径优先协议)是目前应用最广泛的路由协议。 OSPF是一种内部网关协议IGP,也是链路状态路由协议&am…

5.3 Dify:低代码平台,适用于企业快速部署合规AI应用

Dify作为一款开源低代码平台,已成为企业快速构建和部署合规AI应用的首选工具。Dify通过整合后端即服务(Backend-as-a-Service, BaaS)、大型语言模型操作(LLMOps)以及直观的视觉化界面,显著降低了AI应用开发…

AI 编程工具:Augment Code

Meet Augment Agent: Your AI pair programmer that deeply understands your codebase, and learns as you work Augment 是开发人员AI平台,它可以帮助您理解代码、调试问题,并更快地发布,因为它了解您的代码库。使用聊天、Next Edit和Augme…

vc++ 如何调用poco库

1. 下载并安装 Poco 库 你可以从 Poco 的官方网站(POCO C Libraries - Simplify C Development )下载其源代码压缩包。下载完成后,按照下面的步骤进行编译和安装: 解压源代码:把下载的压缩包解压到指定目录。配置编译…

浅谈OpenAIClaude LLM Tools的额外配置

前言 https://platform.openai.com/docs/guides/function-calling?api-modechat&strict-modedisabled#additional-configurationshttps://docs.anthropic.com/en/docs/build-with-claude/tool-use/overview#forcing-tool-use tool_choice “none” 就是不用tools&#x…

SystemWeaver详解:从入门到精通的深度实战指南

SystemWeaver详解:从入门到精通的深度实战指南 文章目录 SystemWeaver详解:从入门到精通的深度实战指南一、SystemWeaver环境搭建与基础配置1.1 多平台安装全流程 二、新手必学的十大核心操作2.1 项目创建全流程2.2 建模工具箱深度解析 三、需求工程与系…

力扣DAY68 | 热100 | 寻找两个正序数组的中位数

前言 困难 ○ 这题搞了3天实在太难了,本质就是每次排除k/2个数,直到找到第k个数。 题目 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为…

Linux常见故障:排查思路与错误分析指南

引言 当Linux系统"生病"时,它不会说话但却会通过各种症状"求救"🆘!本文将带你建立系统化的故障排查思维,从磁盘到内存,从网络到服务,全方位掌握Linux系统的"把脉问诊"技巧。…

深度解析:从12306看混合云架构下的高并发系统设计

作为曾参与12306余票查询系统高并发升级的技术从业者,笔者注意到公众对于12306底层技术常存在认知盲区。为破解这一迷思,特此分享十年前的架构解密文献(该技术之前名叫 gemfire 现已晋升为Apache顶级项目Geode,代码库详见&#xf…

华为Pura X的智控键:让折叠机体验更上一层楼的设计

还记得Mate 70系列刚出那会,我体验了下智控键,那时候就觉得这个“把快捷方式做进电源键”的交互方式非常惊艳,没想到在Pura X上,这种便捷体验感更上了一层楼。 智控键:折叠屏手机的天选快捷方式? 传统折叠…

springboot如何管理多数据源?

静态多数据源管理 配置多个数据源 :创建多个数据源的配置类,通常使用 @ConfigurationProperties 注解来绑定配置文件中的数据源属性,并通过 @Bean 注解定义多个 DataSource Bean 。例如: 配置类: @Configuration public class DataSourceConfig {@Bean(name = "prima…

谷歌终止新冠疫情时期结构化数据支持:SEO影响与应对策略

2025年4月,谷歌悄然宣布将于7月31日起停止支持新冠疫情时期的“特殊公告”(SpecialAnnouncement)结构化数据。这一举措标志着谷歌正式结束一项在疫情期间推出的实验性功能,对依赖该结构化数据的网站管理员和SEO从业者来说&#xf…

常见游戏引擎介绍与对比

Unreal Engine (UE4/UE5) 主语言:C Unreal Engine 主要使用 C 作为开发语言。C 提供了高性能的底层控制,适用于需要精细调优的 AAA 级游戏。C 在 Unreal 中用于开发核心游戏逻辑、物理引擎等性能要求较高的部分。 脚本语言:蓝图(B…

【C++】继承----下篇

文章目录 前言一、实现一个不能继承的类二、友元与继承三、继承与静态成员四、多继承以及菱形继承问题1.继承模型:2.菱形继承的问题3.虚拟继承解决数据冗余和二义性的原理4.虚拟继承的原理 五、继承的总结和反思1.继承和组合 总结 前言 各位好呀!今天呢我们接着讲继…

洛谷 B3647:【模板】Floyd 算法

【题目来源】 https://www.luogu.com.cn/problem/B3647 【题目描述】 给出一张由 n 个点 m 条边组成的无向图。 求出所有点对 (i,j) 之间的最短路径。 【输入格式】 第一行为两个整数 n,m,分别代表点的个数和边的条数。 接下来 m 行,每行三…

netlist

在电子设计自动化(EDA)中,网表(Netlist) 是描述电路设计连接关系的核心数据结构,本质上是电路元件(如逻辑门、晶体管、模块)及其互连关系的 文本化或结构化表示。它是从抽象设计&…

Cadence学习笔记之---原理图设计基本操作

目录 01 | 引 言 02 | 环境描述 03 | 原理图工具介绍 04 | 原理图设计基本操作 05 | 生成页间引用 06 | 元件自动编号 07 | 结 尾 01 | 引 言 书接上回,在前文中讲述了怎样制作常用的库元件,如电阻、二极管,IC器件,以及怎…

【华为HCIP | 华为数通工程师】821—多选解析—第十七页

多选835、IS-IS协议所使用的NSAP地址主要由哪几个部分构成? A、AREA ID B、SEL C、DSCp D、SYSTEM ID 解析:NSAP地址:网络服务访问点(Network Service Access Point)是 OSI 协议中用于定位资源的地址。NSAP 的地址结构如图所示,它由 IDP(Initial Domain …