unity怎么显示骨骼_Unity骨骼优化(转)

本文介绍了Unity中3D骨骼动画的工作原理,包括模型顶点、骨骼结构、蒙皮权重以及骨骼父子关系。讨论了骨骼动画对性能的影响,并提出Unity的骨骼优化功能,如Optimize Game Objects选项,以减少游戏运行时的CPU消耗。此外,还解释了如何在优化后仍然保持对特定骨骼的控制,以实现动态绑定和动画效果。
摘要由CSDN通过智能技术生成

用Unity做游戏经常会用到3D角色,也就会用到骨骼动画。骨骼动画对性能的影响其实非常大的,在说这个问题之前,先来说说骨骼动画的原理。

我之前做过多种骨骼动画,包括写过2D的骨骼动画系统(类似于现在比较流行的龙骨系统),也在flash的stage3D里面写过3D的骨骼模型动画。骨骼动画的原理实际上都是一样的:

首先你需要有一个模型,2D或者3D的,这些模型是由顶点组成的,2d模型的顶点就是一个个四边形的四个顶点,3D模型的顶点就是每个Mesh网格的三角面顶点。

然后,你需要搭建一套骨骼,这些骨骼是树形结构的,也就是有父子连接关系的,父级骨骼在做运动的时候,子级骨骼是跟随父级骨骼运动,在这个基础上然后子级也可以自己运动而不影响父级骨骼。

接下来,你需要把模型的顶点和骨骼做一个对应关系,这就是所谓的蒙皮权重。蒙皮要做的事情,是指定某个顶点受到多少根骨骼的影响,然后在骨骼运动的时候,顶点根据权重的百分比来跟随骨骼运动。比如一个顶点是受到了2跟骨骼的影响,第一根骨骼的权重是30%,第二根骨骼的权重是70%。在两根骨骼同时移动的时候,第一根骨骼向左移动了10米,第二根骨骼向右移动了10米,假若向右是正方向,那么这个顶点实际移动的位置应该就是-10*0.3+10*0.7 = 4,也就是向右移动了4米。在实际的计算中,我们不会这么简单的乘以百分比,是会用矩阵来运算,分别算出正常受到每一根骨骼矩阵影响之后该顶点的最终坐标,然后再乘以百分比相加。

最后再来说说骨骼父子关系。每一个子级的骨骼,需要先获取到它的父级,通过矩阵来转换局部坐标系

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity 是一款流行的游戏开发引擎,它提供了强大的骨骼显示系统。 在 Unity显示骨骼,我们需要使用骨骼动画系统来实现。首先,我们需要创建一个骨骼数据结构,该结构通常由层级关系的骨骼节点组成。这些节点通常包括根节点、父节点和子节点等。我们还需要确定每个节点的局部坐标以及其相对于父节点的变换。 接下来,在 Unity 中,我们可以使用骨骼动画系统来实现骨骼显示和动画。一般来说,我们可以导入包含骨骼动画数据的文件,例如 FBX 或者 Collada 格式。在导入后,Unity 会自动解析文件中的节点和动画数据,并将其与模型进行绑定。 为了在场景中显示骨骼,我们可以使用 Unity 的 SkinnedMeshRenderer 组件。这个组件可以将动态骨骼系列应用到一个静态网格上。我们可以将这个组件添加到我们的角色模型上并将模型与我们导入的骨骼数据进行绑定。 显示骨骼通常需要使用一些额外的工具,例如骨骼详细信息的调试器。在 Unity 中,我们可以使用 Mecanim 去检查我们的骨骼动画系统。Mecanim 是 Unity 引擎内置的一套动画系统,它提供了一系列的编辑器工具和脚本接口,以方便我们查看、编辑和调试骨骼动画。 总之,Unity 提供了全面的骨骼显示和动画编辑工具,使得开发者能够方便地在游戏中实现精美的骨骼动画效果。通过使用 Unity 的 SkinnedMeshRenderer 和 Mecanim 等组件和工具,我们可以轻松地显示和调试骨骼
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值