Unity学习笔记(7) Unity2D骨骼动画制作流程

这篇具有很好参考价值的文章主要介绍了Unity学习笔记(7) Unity2D骨骼动画制作流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用骨骼动画最大的好处就是方便之后做换装系统。
无论对3Dor2D游戏都是这样的。
这篇博文记录一下2D骨骼动画的制作流程,参考b站麦扣的系列教程:
https://space.bilibili.com/370283072/channel/seriesdetail?sid=211996

素材制作

用PS做一个将人物各个部件(骨骼)都分解开来的人物模型。
Unity学习笔记(7) Unity2D骨骼动画制作流程

导出时注意选择PSB模式,不然无法分层读取。
Unity学习笔记(7) Unity2D骨骼动画制作流程

导入Unity

直接将PSB文件拖拽进去工作区,记得选择精灵模式为多图片模式:
Unity学习笔记(7) Unity2D骨骼动画制作流程

骨骼绑定

进入Sprite Editor,用Skinning Editor模式:
Unity学习笔记(7) Unity2D骨骼动画制作流程

绘制骨骼

Create Bone创建骨骼。
需要有一个骨骼能够联动影响其它骨骼时,先左键选中此骨骼,然后创建其他的。
Unity学习笔记(7) Unity2D骨骼动画制作流程

网格化

可以直接使用Auto Geometry,调整自动网格化的参数,生成受到骨骼影响的网格:
Unity学习笔记(7) Unity2D骨骼动画制作流程

Unity学习笔记(7) Unity2D骨骼动画制作流程
Unity学习笔记(7) Unity2D骨骼动画制作流程

可以进入Sprite Sheet,双击选中某个部位,设定其受哪些骨骼的影响。
Unity学习笔记(7) Unity2D骨骼动画制作流程

完成

用修改骨骼影响和权重刷后,就完成了骨骼制作,现在可以把它放到场景中了。
但是不要直接将做好的body这个预制体放进场景,他是个只读的不允许别的修改,
应该先创建一个空物件将人物挂载到它的儿子中:
Unity学习笔记(7) Unity2D骨骼动画制作流程

IK反向动力学

听起来很高端,其实就是使得调整某个点时,对各种骨骼更好的作用,使得更符合人体动力学模型,减少人的工作量。
比如下蹲时调整身体向下,腿部两骨骼能形成一种屈膝的效果。

首先选中需要能够被控制的骨骼们的末端,创建一个空儿子,并移动到需要进行调整的位置,
这里我的是倒数第二个骨骼用来控制:
Unity学习笔记(7) Unity2D骨骼动画制作流程

接下来在骨骼集的同级创建一个空物体挂载IK Manager 2D做动力学管理:
Unity学习笔记(7) Unity2D骨骼动画制作流程

+,添加一个肢体控制Limb,将刚刚创建的影响点移动到Effector中,并点Create Target创建控制目标。
下面就可以看到调整控制点,整个控制目标(两个腿部骨骼)都能自动调整:
Unity学习笔记(7) Unity2D骨骼动画制作流程

可以点开Flip实现反向解算。

这一套做下来,本质就是通过末端点,向上寻找父、祖两代骨骼,并模拟人的肢体进行运动学解算,使得末端点保持在模型空间中的一个固定位置上:
Unity学习笔记(7) Unity2D骨骼动画制作流程

Unity学习笔记(7) Unity2D骨骼动画制作流程

将其它部位也做好IK

添加动画

为Player挂载动画机,创建一个Idle动画。
Unity学习笔记(7) Unity2D骨骼动画制作流程
点红圈开始录制,将所有的骨骼选中,右击Inspector面板中的Transform-Position,选择Add Key
Transform-Rotation也做如上操作。
不仅仅骨骼,对于IK的末端控制点也要记录他们的关键帧。
这样所有的骨骼都会在动画帧编辑器中有关键帧记录,下面调整各个关键帧的骨骼位置即可。
Unity学习笔记(7) Unity2D骨骼动画制作流程

有时候不小心操作会看不到骨骼,只需要将如图的gizmos开过来即可
Unity学习笔记(7) Unity2D骨骼动画制作流程文章来源地址https://www.toymoban.com/news/detail-406371.html

到了这里,关于Unity学习笔记(7) Unity2D骨骼动画制作流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【笔记】Unity2D角色和物体移动的几种方法

    在Unity中对于物体移动有多种方法,这里根据b站up主【鼓励Jun】的视频整理了一些笔记 变量声明: 位移向量var dir=new Vector3(deltax.deltay,deltaz); 移动速度var speed=2; ps:变量声明都在主要都在方法外,实际位移操作则在Update方法中。 #键盘输入,这里举一个只x轴上移动的例子,y轴同

    2023年04月08日
    浏览(32)
  • Unity2D RPG开发笔记 P1 - Unity界面基础操作和知识

    按下 QWERTY 可以选择不同的工具进行 旋转、定位、缩放 按下 Ctrl + D 可以复制物体 16:9 为最常见的分辨率 Transform 组件 物体在空间中的位置、缩放、旋转 点击这里可以进行 reset 操作,位置将会被重置 不知道算不算冷知识的冷知识:鼠标拖动这里可以移动该数值 Sprite Renderer

    2024年02月13日
    浏览(32)
  • 【小沐学Unity3d】3ds Max 骨骼动画制作(CAT、Character Studio、Biped、骨骼对象)

    官网地址: https://help.autodesk.com/view/3DSMAX/2018/CHS https://help.autodesk.com/view/3DSMAX/2019/CHS https://help.autodesk.com/view/3DSMAX/2020/CHS https://help.autodesk.com/view/3DSMAX/2021/CHS https://help.autodesk.com/view/3DSMAX/2022/CHS 3ds Max 包含两套完整的对各个角色设置动画的独立子系统(即 CAT 和 character studio),

    2024年02月08日
    浏览(31)
  • 【小沐学Unity3d】3ds Max 骨骼动画制作(Mixamo )

    官网地址: https://www.mixamo.com/#/ 使用 Mixamo 上传和装配 Adobe Fuse CC 3D 人物、自定义 3D 人物,或者利用 Mixamo 库中的人物开始操作。 Mixamo支持3种文件格式上载:FBX,OBJ,ZIP。 确保FBX文件的“嵌入媒体”已打开,以上传纹理。OBJ文件不包含纹理,使字符显示为灰色。要显示.obj文

    2024年02月04日
    浏览(53)
  • Unity2D控制角色左右移动

    1.在Hierarchy一栏中选中角色; 2.在inspector栏最底端找到Add Component选项并点击; 3.添加Rigidbody2D,合适的collider和new script; 4.将添加的Rigidbody2D拖到new script中;   5.在project栏中找到新添加的C#文件并双击打开(如果还没有编辑代码的工具,推荐Vscode) 6.代码如下: using System.Nu

    2024年02月14日
    浏览(29)
  • Unity2D绘制游戏地图

    首先,我们选择我们的地图素材(由于笔者在前段时间已经进行切割,最近才开始整理这一段,所以这个是用的老素材,可能有朋友就会觉得切割前后不一致,但是思路是一样的,大家学习思路即可)  接着,我们找到右上角的Slice进行图片切割,我这边简单介绍一下这个切

    2024年02月08日
    浏览(34)
  • Unity2D实现子弹追踪目标

    实现子弹追踪目标有很多种方法,首先是一开始就选定了目标的位置,然后按照曲线运动轨迹的方式,持续运动到目标点,不过如果目标移动了,就得将对应的轨迹重新计算一次,另外如果需要设置范围的话更不好做。另一种是锐角追踪,就是在目标进入识别范围后,将子弹

    2024年02月06日
    浏览(38)
  • Unity2d游戏项目--小狐狸

    (一) 在文件夹中找到back图片,并在检查器面板中将back图片的每单位像素数设置为16。 (文件所在地) (面板设置) (二) 将图片拖入到场景中 (一) 生成矩形的瓦片地图 (二) 打开平铺调色板 (三) 新建并命名为map,在原目录新建一个文件夹,用于存放你在这个瓦

    2024年02月03日
    浏览(27)
  • Unity2D-使人物翻转的方法

    方法①:使用组件: SpriteRenderer 使用 GetAxis() 和 GetAxisRaw() 没有区别 方法②:使用组件: Transform 情况1:使用 GetAxisRaw() ;没有刹车效果,及翻转过程没有过渡, m o v e F a c t o r moveFactor m o v e F a c t or 取-1,1,0 情况1:使用 GetAxis() ;有刹车效果,及翻转过程有过渡, m o v e F a c t

    2024年02月12日
    浏览(23)
  • Unity2D子弹朝向鼠标位置发射

    废话不多说,先说明一下我使用的变量 float attack_time 用于表示每次攻击的间隙时间 float current_time 攻击时间的冷却 Rigidbody2D body 2D刚体组件 Object bomb 需要发射的物体对象 创建一枚子弹,unity的Instantiate()函数就可以实现,这里需要的三个参数是物体对象(Object),生成位置(Vecto

    2024年02月10日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包