Unity——Spine动画的使用

这篇具有很好参考价值的文章主要介绍了Unity——Spine动画的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Spine是什么?

Spine是一个收费的跨平台的2D骨骼动画制作工具。
官方地址:http://zh.esotericsoftware.com/

二、Spine导出的Unity资源

Spine导出的资源有3个文件

  • .json 存储骨骼信息
  • .png 使用的图片图集
  • .atlas.txt 图片在图集中的位置信息

当我们把这三个资源导入到已经引入了Spine运行库的Unity工程后会自动为我们生成

  • _Atlas 材质和.atlas.txt文件的引用配置文件
  • _Material 材质文件
  • _SkeletonData json和_Atlas资源的引用配置文件

三、在Unity中使用Spine动画

首先我们需要导入跟Spine动画资源相对应的Spine运行库(官网下载),然后导入使用的Spine动画。
当我们向场景中拖入相关Spine动画时,会出现以下选项。
unity spine,Unity,unity,spine,游戏引擎
分别为:

  1. 使用Spine提供的Api控制动画
    unity spine,Unity,unity,spine,游戏引擎
  2. 在UI中使用动画
  3. 用Unity提供的动画系统控制
    unity spine,Unity,unity,spine,游戏引擎
    1和3的区别就是,一个使用Spine提供的API控制动画,另一个使用Aimator控制动画。

四、具体参数

SkeletonData骨骼数据文件

unity spine,Unity,unity,spine,游戏引擎

SkeletonData JSON:骨骼数据文件

Scale:缩放大小

  • Skeleton Data Modifiers:骨骼数据修改器

Blend Mode Materizls:混合模式材质

  1. Apply Additive Material:是否使用叠加材质
  2. Additive Materials:叠加材质
  3. Multiply Materials:相乘材质
  4. Screen Materials:屏幕材质

Atlas Assets:图集资源

Mix Settings:混合设置

  • Animation State Data:动画状态数据

Default Mix Duration:默认混合持续时间

  • Add Custom Mix:添加自定义混合(可以指定某两个动画之间的持续时间)

Preview:预览

Animations:动画

  1. Setup Pose:设置姿势(还原到默认姿势)
  2. Create Animation Reference Assets:创建动画参考资源

Slots:插槽相关(一个部位有多张图片构成,可以在这预览)

SkeletonMecanim:骨骼机制

  • Controller:关联动画控制器

SkeletonMecanim是SkeletonAnimation的替代品,它不是必须的

Skeleton Animation

SkeletonData Asset:

关联的骨骼动画信息

Initial Skin:

初始蒙皮
美术在制作时可能有几套蒙皮
一般情况下只有一套 不需要修改

Advanced

  • Initial Flip X/Y:初始翻转X和Y

  • Update When Invisible:不可见时是否更新

     			Nothing:不更新
     			Only Animation Status:仅动画状态
     			Only Event Timelines:仅事件
     			Everything Except Mesh:除了网格其它都更新
     			Full Update:更新所有
    
  • Use Single Submesh:使用单个子网格

  • Fix Draw Order:固定提取顺序

  • Immutable Triangles:不变三角形

  • Clear State On Disable:禁用时清楚状态

  • Separator Slot Names:分隔符插槽名称

  • Z Spacing:Z间距

  • Vertex Data:顶点数据

     			PMA Vertex Colors:PMA顶点颜色
     			Tint Black:淡黑色
     			Add Normals:添加法线
     			Solve Tangents:求解切线
    
  • Add Skeleton Utility:添加骨骼公共程序

Debugunity spine,Unity,unity,spine,游戏引擎

  • Show Bone Names:显示骨骼名字

  • Show Paths:显示路径

  • Show Shapes:显示形状

  • Show Constraints:显示约束条件

  • ScaleX/Y:XY的缩放

  • RGBA:颜色

  • Bone:骨骼

     Show Bone Names:显示骨骼名字
    
  • Slots:插槽

  • Constraints:约束条件

  • Draw Order and Separators:提取顺序和分离器相关

  • Events:事件

  • Data Counts:数据数量

     			Bones:骨骼数量
     			Slots:插槽数量
     			Skins:蒙皮数量
     			Events:事件数量
     			IK Constraints:IK约束数量
     			Transform Constraints:位置约束数量
     			Path Constraints:路径约束数量
    

Animation Name:

当前播放的动画名。

Loop:

是否循环。

Time Scale:

时间缩放,值越大动画播放的越快。

Root Motion:

是否添加根运动的脚本,一般情况下不添加。文章来源地址https://www.toymoban.com/news/detail-782398.html

五、API

//获取组件
private SkeletonAnimation sa;
	#region 便捷特性,方便使用,以免命名出错。
        // 动画特性
    [SpineAnimation]
    public string jumpName;
        // 骨骼特性
    [SpineBone]
    public string boneName;

        // 插槽特性
    [SpineSlot]
    public string slotName;

        // 附件特性
    [SpineAttachment]
    public string attachmentName;
        #endregion

    void Start()
    {
        sa = this.GetComponent<SkeletonAnimation>();
        #region 动画播放
        //方法一:直接改变SkeletonAnimation中参数
        sa.loop = true;
        sa.AnimationName = "jump";

        方法二:使用SkeletonAnimation中动画状态改变的函数
        //马上播放
        SetAnimation (int trackIndex默认索引,填0即可, string animationName
        要播放的动画名字, bool loop是否循环)
        sa.AnimationState.SetAnimation(0, jumpName, false);
        //排队播放
        sa.AnimationState.AddAnimation(0, "walk", true, 0);

        #region 转向
        sa.skeleton.ScaleX = -1;
        #endregion

        #region 动画事件
        //动画开始播放
        sa.AnimationState.Start += (t) =>
        {
            print( sa.AnimationName +  "动画开始播放");
        };
        //动画被中断或者清除
        sa.AnimationState.End += (t) =>
        {
            print(sa.AnimationName + "动画中断或者清除");
        };
        //播放完成
        sa.AnimationState.Complete += (t) =>
        {
            print(sa.AnimationName + "动画播放完成");
        };
        //在Spine软件中制作动画时添加的自定义事件
        sa.AnimationState.Event += (t, e) =>
        {
            print(sa.AnimationName + "自定义事件");
        };
        #endregion
        
        #region 获取骨骼、设置插槽附件
        //获取骨骼
        Bone b = sa.skeleton.FindBone(boneName);
        
        sa.skeleton.SetAttachment(slotName, attachmentName);
        #endregion

到了这里,关于Unity——Spine动画的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 快速解决Spine动画导入Unity后需要设置Straight Alpha Texture的问题

    在导入Spine资源后,Unity会根据不同的后缀,自动化构建出不同格式的资源。导入后,会发现播放的动画和导入前的动画的图片不一样。这时上网查基本都是需要手动吧材质资源的Straight Alpha Texture 勾上。 查看材质的Shader可以看出这个选项是用来选择颜色是否加了透明度的计算

    2024年02月16日
    浏览(28)
  • 【Unity】GPU骨骼动画 GPU Spine动画 2D/3D渲染性能开挂 动画合批 支持武器挂载 支持实时获取骨骼位置

     GPU 3D骨骼动画和 GPU 2D Spine动画插件均包含在【万人同屏整合方案】中,老板们可在某宝搜:[游戏开发资源商店] 以获取全套方案的所有源码插件。 插件功能: 1. 支持3D动画转GPU动画  2. 支持2D Spine动画转GPU动画 3. 支持挂点、支持挂载物、动态切换挂载物、实时获取挂点T

    2024年01月18日
    浏览(34)
  • unity spine 进阶使用

    在项目实践中,我们常常遇到收集金币,钻石等这样的特效需求,最初我们也是全靠代码实现,效果总是差点,偶然和我们动画师聊天确定了一种新的实现方案。 大概流程是动画师在spine软件中实现炸金币+飞金币的过程 输出文件给到程序,程序需要在代码中动态修改节点位

    2023年04月08日
    浏览(65)
  • 【Unity】GPU骨骼 GPU Spine动画 2D/3D渲染性能开挂 合批渲染 支持武器挂载 动画事件 动画融合 实时获取骨骼位置

     GPU 3D骨骼动画和 GPU 2D Spine动画插件均包含在【万人同屏整合方案】中,老板们可在某宝搜:[游戏开发资源商店] 以获取全套方案的所有源码插件。   万人同屏渲染避障锁敌方案实现对抗战斗demo 展示GPU动画高级功能 动画事件 动画平滑过渡 融合   插件功能: 1. 支持3D动画

    2024年02月22日
    浏览(33)
  • Spine(Unity)

    1.当前动画播放完毕后自动播放下一个动画 2.自动动画补偿问题 1)由于spine在切换动画的时候自动补偿,用于动画的平稳过度。但是会导致残影等bug,这时候需要在SetAnimation前调用 skeletonAnimation.skeleton.SetToSetupPose (); spineAnimationState.ClearTracks ();    或 skeletonGraphic.AnimationState

    2024年02月11日
    浏览(32)
  • Unity Spine帧事件

    编辑窗口 点坐边的那个小灰点来切换 亮点代表当前动画 可以一个事件 添加多个监听 一个事件可以添加多个监听

    2024年02月12日
    浏览(31)
  • Unity 导入spine插件

    1.首先去spine官网下载插件,地址是http://zh.esotericsoftware.com/spine-runtimes 2.选择unitypackage 3.问美术 他们的spine版本号 选择对应版本 4.下载下来后 直接导入Unity,删除案例文件夹。这样插件就导入了 5.美术给的资源,一般是三个,你在Unity新建个文件夹直接拖入,这时候会报错,说

    2024年02月02日
    浏览(46)
  • 随笔-Unity中修改Spine材质

            我们在Unity中使用Spine动画时,往往需要在材质上添加一些效果,比如描边、闪光等等。              这些效果其实在Spine插件中就给我们提供好了对应的Shader,路径分别是: Spine/Outline/Skeleton、Spine/Skeleton Fill。 虽然有插件上给我提供好了这些常用的Shader,单独

    2024年02月11日
    浏览(47)
  • Unity 2D Spine 外发光实现思路

    前言 对于3D骨骼,要做外发光可以之间通过向法线方向延申来实现。 但是对于2D骨骼,各顶点的法线没有向3D骨骼那样拥有垂直于面的特性,那我们如何做2D骨骼的外发光效果呢? 理论基础 我们要知道,要实现外发光效果,首先得先实现外描边效果。对于2D图片的描边实现有

    2024年02月22日
    浏览(34)
  • 如何将spine的素材导入unity

    最近做项目,想将少前里的小人素材导入到unity里,于是乎便去捣鼓了一下,随便记录一下方便以后查看。 第一步:将素材导入spine(如果你已经有素材了,直接跳到第二步即可) 这里参考b站的一个教程:【少前/教程/小人动画】3分钟学会如何提取少前小人制作小人动画_哔

    2024年02月09日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包