简述unity的模型动画功能

235 篇文章 20 订阅

理解和简单使用unity的模型动画功能,以及插件。以FBX与Generic类型的骨骼蒙皮动画为主要叙述。

官方链接: 模型 - Unity 手册

3D资源文件-模型与动画
基本概念

首先,我们得知道,3d游戏中,我们说到一个模型动画的时候,包含两个部分,一个是模型,一个是动画,都来自于.fbx格式文件,或其他支持的格式文件:模型文件格式 - Unity 手册。本篇是以.fbx格式文件为叙述。

模型基本组成是网格:网格 - Unity 手册。网格是指的由顶点组成三角片,再由三角片组成整个可见外观的数据集合。而一个模型可以包含多个这样的集合。比如人,如果需要,我们可以把身体、四肢、头都拆成单独的网格,并形成一个统一的.fbx文件。当然,如无必要,尽量不要拆分这么多网格。

引用参考,可以了解相关的更多概念,入门可以直接跳过,全部可能劝退:

维基百科:https://en.wikipedia.org/wiki/FBX
官网FBX的SDK,有介绍明码数据结构:Help
自定义FBX二级制读取器:FBX binary file format specification — Blender Developers Blog
有个不错的解析流程:深入理解加载FBX模型文件_海洋个人博客-CSDN博客_fbx文件
有个不错的原理介绍:骨骼动画程序原理介绍_阿赵的博客-CSDN博客_骨骼动画
 

https://en.wikipedia.org/wiki/FBX

FBX binary file format specification — Blender Developers Blog

骨骼动画程序原理介绍_阿赵3D的博客-CSDN博客_骨骼动画原理

深入理解加载FBX模型文件_海洋_的博客-CSDN博客_fbx文件解析


资源常见的划分与命名方式

        通常,我们会将模型数据文件单独导成一个.fbx,而将其他的动画文件也导成独立的.fbx。分别按照model_name.fbx和model_name@animation_name.fbx的形式进行命名,则动画.fbx文件会自动生成一个内置的 animation_name.anim 动画剪辑组件,可供后续的 Animator组件使用。这些概念后面还会提到。
 

模型与动画类型



Unity模型类型
 基础概念与使用场景

 

       从Unity的角度来讲,模型动画类型有三种分别是 Legacy、Generic、Humanoid。Legacy基本是在被舍弃了,用的多的是Generic和Humanoid。而从程序的角度来讲模型动画是:顶点动画、蒙皮骨骼动画等等分类。

Unity Generic与Humanoid的若干基础点除盲:

Humanoid类型使用范围与Generic类型使用范围是等价的,但是内部实现方式不一样,即是说使用Generic能达成的效果,Humanoid基本都能达成。但是Unity对Humanoid做了更多上层应用的封装.
Generic满足于一般的动画需求,而Humanoid类型结合Unity的Avartar可以使用Unity内置的IK、AvartarMask、重定向等等功能(提出这个是因为不少同事都是基于商业引擎开始学习的,误将Avartar这类定义在概念层面与3D模型动画绑定在了一起,这里除下盲)。
Humanoid的性能消耗>Generic。一般的模型动画播放,使用Generic也可以满足要求,即使是人形态的模型动画。
常见的几种程序和美术意义上的动画类型:

骨骼蒙皮动画(SkinnedMesh):类比于:如同人体运动骨骼带动皮肤。概述一下就是,由世界矩阵驱动根骨骼,根骨骼矩阵驱动子骨骼,逐层递进驱动全身骨骼,再通过蒙皮信息决定每个骨骼对物体模型网格上每个顶点的权重影响,最终决定物体上每个顶点的实际运算位置。这一篇blog写的比较清楚,想继续了解,可以找专门的3D知识学习: 骨骼动画程序原理介绍_阿赵3D的博客-CSDN博客_骨骼动画原理


混合形状动画(BlendShape):这个和骨骼动画不同,它是由相同网格顶多,预定义出不同的网格形状,进行插值运算,而不是通过骨骼层层递进去运算,参考:Unity项目捏脸解决方案BlendShape_天富儿的博客-CSDN博客_unity 捏脸
顶点动画:在Unity中很少直接接触到顶点动画,顶点动画与混合动画类似,不过它是记录每一帧的所有顶点数据,逐帧播放。这种对于大顶点数的模型,会占据相当大的内存,不过没啥运算压力。而在一些动画解决方案中,会有bake烘焙动画的功能,其实就是把骨骼动画的每帧计算结果转化成顶点动画,记录下来.由于用得少,这里只提一下.

https://blog.csdn.net/zhousanxi123/article/details/122959094

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unity是一种流行的游戏引擎,其中包含了许多可以用于游戏制作的工具和资源。在Unity中,工人模型动画是一个非常重要的元素,有助于游戏中的角色动作表现和角色跑动效果的实现。 工人模型动画可以通过Unity内置的动画控制器或第三方插件来创建和编辑。动画控制器是一种用于管理游戏角色动画的软件模块,可以用于处理各种动画事件,包括开始、停止、暂停、重新启动等。 创建工人模型动画时,可以使用Unity提供的标准动画库或自己的动画文件。标准动画库包括一些基本动作,如行走、跑步、跳跃、攻击等,可以直接应用于工人模型。如果需要更复杂的动画效果,可以使用外部动画制作软件,例如Blender和Maya,然后将其导入到Unity中。 在游戏中使用工人模型动画时,需要将动画控制器与角色模型绑定,在代码中使用动画接口来控制角色的动作。这样可以实现各种复杂的动画效果,包括连续的动作序列和动作过渡。 总之,Unity工人模型动画是游戏制作中不可或缺的重要组成部分。它可以为游戏增添更多的乐趣和视觉体验,使玩家更加沉浸在游戏中。通过充分利用Unity的工具和资源,可以创建非常优秀的工人模型动画。 ### 回答2: Unity是一款流行的游戏开发引擎,它提供了丰富的工具和资源,方便开发者创建高品质的游戏。在Unity中,工人模型动画是一种常见的技术,用于赋予游戏中的工人角色生动的动作和表现力。 首先,我们需要创建一个工人模型。在Unity中,我们可以使用现有的3D模型资源或者使用内置的模型来创建我们的工人角色。然后,我们可以使用Unity的强大的动画系统来为工人模型添加动画Unity动画系统支持多种动画技术,包括关节动画、骨骼动画和混合动画等。我们可以使用这些技术来为工人模型赋予不同的动作,例如走路、跑步、举重等。我们可以通过操作动画曲线和参数来控制工人模型的动作。 另外,Unity还提供了一些现成的动画资源,例如动画剪辑和动画控制器。我们可以使用这些资源来快速创建复杂的动画效果。同时,Unity还支持使用第三方工具创建和导入动画,例如使用Blender创建工人模型动画,并将其导入到Unity中使用。 在创建工人模型动画时,我们还可以为其添加物理效果,例如碰撞检测和重力等。这样工人模型的动作将更加真实和逼真,使玩家能够更好地沉浸在游戏体验中。 总的来说,Unity工人模型动画是一种基于Unity引擎开发的技术,用于为游戏中的工人角色添加生动的动作和表现力。通过使用Unity动画系统和相关工具,开发者可以轻松地创建出逼真的工人模型动画,为游戏增添更多乐趣和体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值