Unity 并没有自带建模工具。

3D建模工具

maya, 3dmax, blender

Skinned Mesh Renderer

Mesh Renderer

Mesh Filter

Modelling

最好是 T-pose

Rigging

建立骨架(Skeleton) 的过程。定义骨头之间的运动关系。是由外部制作的(Maya 3dmax)。Unity也没有工具用来做这个事情。Homanoid Character 至少需要15根骨头。臀部应该做为根

Skinning

将骨架绑定到 Mesh 的过程,定义每个顶点受到哪几根骨头的影响。定义当骨头动时,身体的哪一部分跟着动,绑定顶点。Unity 最多支持一个顶点受4个骨头的影响。是由外部制作的

Modelling, Rigging, Skinning 这3部全部是在外部制作的。

Muscle

肌肉,是一个 Mecanim里的概念,它可以让你更直观地控制角色的骨架,当 Avatar 存在时, Mecanim 是在 Muscle 空间工作的,而不是在 bone 空间工作的,这更加直观。

Muscle Clip

就是 Animation Clip

Mecanim

是 Unity 4.0.0 引入的新的动画系统的名字,旧的现在被称为 Legacy。Mecanim 包含2种,一种是 Humnoid, 一种是 Generic。这个新系统特别适合做人形的动画(Humnoid)。人形动画在游戏中使用非常广泛,Unity专门为他提供了一套工作流程。因为骨架是相似的,所以很容易将动画应用到另一个人形骨架上,就是retargeting,还有IK。人形都包含身体、头、四肢。Mecanim系统简单了人形的 Rigging,和动画的控制。

T-pose

就是一个人双臂展开的姿势。为了做 Avatar

Bind-pose

角色被建模时的姿势。

Human template

如何 将 FBX 中的 bone 匹配到 Avatar 的模板。

Retargeting

将动画应用到其他模型上去

Avatar

将骨架应用到另一个模型上去,定义骨骼结构。Avatar 就是一个人形的样子。创建 Avatar:导入 fbx 文件后,选择 Mesh -> 看 Inspector 中的 XX Import Settings -> Rig -> Animation Type -> Homanoid。然后点击 Apply。然后你的 fbx 下面就会出现一个 avatar子对象。然后选中这个avatar,在 Inspector 中就会有一个 config 按钮。

改完之后发现,在 import setting 的 Model 页中,下面本来是 Animation,现在变成了 Animator

然后,拖一个这个 fbx 到场景中 ,自然也会有一个 Animator 组件

Root Motion

角色的根的运动。可以被动画控制,也可以被外部控制。

Animator Component

就是这个

Animator Controller(Asset)

是在Unity 编辑器中编辑的,也可以新建。他使用 State Machine 来处理动画之间的过渡。然后你通过为模型添加 Animator 组件,为 Animator 添加 Animator Controler 来实现模型的动画。

在Unity中编辑Animator Controller:选中某个Animator -> Inspector 中点击 Edit

在文件夹中的对应文件如下:

Animation Layer

动画的层。用于控制整个模型的动画,或者是模型的一部分。他包含一个 Animation State Machine。例子:一个层用于控制整个角色的行走、跳跃,还有一个更高的层用于控制用于控制上半身的动作比如投掷或射击。后者优先级更高。

Animation State Machine

动画状态转换图。控制动画状态的转换。每一个动作就是一个状态,需要限定每一个状态可以过渡到哪几个状态。

Animation State

动画状态,每个状态代表一个 Animaiton Blend Tree 或是一个简单的 Clip

Animation Blend Tree

使用 Animation parameters 在相似的 Clip 中进行混合。

Blend Node

就是一个 Blend Tree,因为他也是一个 State,所以算是一个节点。

ATENTION!! 注意区分transition(过渡)和 blend tree(混合相似动作)

transition 是指在一定的时间内,从一个动作(状态)平滑地过渡到另一个动作(状态)。过渡是animation state machine 的一部分。他不是一种状态。

blend tree 是将多个相似的动作进行混合,每个动作都有一个权重。blend tree 是一种state。混合时使用“归一化的时间” normalized time。应该是指按比例对应。在相同的时间点,左脚同时着地。2个clip不需要时间一样长。

Animation parameters

在脚本和 Animation Controller 中进行通信。有一些是在脚本中设置,然后在 Animation Controller 中使用。有一些是是 Clip 中的 Curves 的参数,然后在脚本中使用。

Humanoid Character

Humanoid Animation

Generic Animation

也是 Mecanim 系统,但是他并不使用 Homanoid ,也没有 Avatar。

Legacy Animation

以前的动画系统,如果不想从以前的动画转换到新的,可以继续使用。在新的项目中,不需要使用这种动画了。

Animator

新的动画,导入 fbx 时,如果 Rig 选择 Generic 和 Humanoid,那么都使用 Animator。

Animation

旧的动画,导入 fbx 时,如果 Rig 选择 Legacy,就会自动加一个 Animation。

包含很多 AnimationState,每个 AnimationState 包含 AnimationClip 及剪辑的参数。

Animation Clip

是动画剪辑,如“跑步”,“行走”,“空闲”。Mecanim的Clip和Legacy的Clip在Inspector中是不一样的。

Animation Curves 曲线可以被附加到剪辑上,他可以用多个参数,然后由脚本进行控制。

Animation Layer

Skeleton

Body Mask

用于指定在一个骨架中,将身体的哪一部分剔除出去。在 Animation Layer 和 Importer 中使用

一个模型,从多个文件中载入动画。

Orc.FBX

Orc@idle.FBX

Orc@attack.FBX

在这种情况下,有带@的文件,导入时,只会使用他包含的 Animation,Mesh 则是从 Orc.FBX 中取出,这是 Unity 支持的。

Unity动画的更多相关文章

  1. Unity动画机制 Animator与Animator Controller教程

    Unity动画机制Animator 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...

  2. Unity 动画知识之一

    Unity现在已经用的很广泛啦,可是却一直没有什么美术向的教程. 程序用方面的内容在各个论坛都有讨论,但是美术似乎很弱势啊. 明明美术也很需要掌握引擎方面的内容嘛! 山谷里的野百合还有春天呢 我们美术 ...

  3. Unity 动画系统目录 之 Animation

    返回 Unity 动画系统目录 官方文档 Animation:https://docs.unity3d.com/ScriptReference/Animation.html Animator:http ...

  4. Unity动画优化

    Unity动画优化 https://blog.csdn.net/TracyZly/article/details/79991593 Unity中Animator做UI动画的一些细节 https://b ...

  5. Unity 动画

    Unity 并没有自带建模工具. 3D建模工具 maya, 3dmax, blender Skinned Mesh Renderer Mesh Renderer Mesh Filter Modelli ...

  6. [Unity动画]01.HasExitTime & ApplyRootMotion

    参考链接: https://www.cnblogs.com/hammerc/p/4828774.html 资源下载: https://assetstore.unity.com/packages/ess ...

  7. Unity动画知识之二:Animator动画状态机

    上次我们讲过Unity游戏动画从入门到住院,今天我们来讲一下动画状态机. 好了,现在我们已经成功的导入了动画.接下来要玩的东西就很装13啦.因为大部分动画师是用不到这家伙的,需要掌握这个技能的,至少也 ...

  8. Unity 动画 命名

    unity标准的动画命名格式是 ?模型名@动画名 如boss1@idle ,这样导入进来之后unity会自动给这个动画命名为idle而不是Take 001.

  9. Unity 动画系统 Animation 和 Animator的小实例

    本文结合一个很简单的动画demo,分别采用2种方法,来对比Animation和Animator的使用方式: 方法1:单独使用Animation 方法2:Animation结合Animator 动画De ...

随机推荐

  1. 数组的foreach方法和jQuery中的each方法

    /* * 数组的forEach方法: * 1.返回给回调的参数先是值,然后是下标 * 2.回调函数执行时内部的this指向window * */ /*var arr = [1,2,3,4,5]; ar ...

  2. 关于Json处理的两个实例

    <script> var value1="{\"layer_datum\":{\"holdId\":\"dcdm\", ...

  3. SwipeRefreshLayout

    也许之前下拉刷新你可能会用到一些第三方开源库,如PullToRefresh, ActionBar-PullToRefresh.XlistView等 但现在已经有官方的组件了---SwipeRefres ...

  4. 给宏基装WIN8.1系统之问题与解决方法(原创)

    1.采用老毛桃U盘PE进入笔记本: 2.备份桌面文件以防丢失: 3.将下载好的Win8操作系统镜像加载到虚拟光驱,最好把操作系统拷贝到笔记本硬盘上,不然可能会出现意想不到的错误: 4.打开老毛桃桌面安 ...

  5. iOS 开发之重力动画效果

    步骤:1.使用single view application创建新的项目 2.在viewcontroller.h文件中创建一个图片实例并与相关图片相连,然后创建一个UIDynamicAnimator ...

  6. STL 源码分析《1》---- list 归并排序的 迭代版本, 神奇的 STL list sort

    最近在看 侯捷的 STL源码分析,发现了以下的这个list 排序算法,乍眼看去,实在难以看出它是归并排序. 平常大家写归并排序,通常写的是 递归版本..为了效率的考虑,STL库 给出了如下的 归并排序 ...

  7. javascript:;与javascript:void(0)使用介绍

    有时候我们在编写js过程中,需要触发事件而不需要返回值,那么就可能需要这样的写法 href=”#”,包含了一个位置信息.默认的锚是#top,也就是网页的上端,当连续快速点击此链接时会导致浏览器巨慢甚至 ...

  8. Send Mail using C# code

    using System.Net.Mail; public class MailHelp { public static void Send(string subject, string body) ...

  9. 实现简单ThreadPool

    在很多的应用场景,需要根据任务去创建线程去异步处理问题,不过不停的创建线程和销毁线程本身是一个非常耗时和消耗系统资源的事情,所以通常这种情况使用线程池来实现,常用的场景比如web容器对于web请求的处 ...

  10. window8快捷键

    win8中有很多比较重要的快捷键经常忘记: cmd快捷键:win+x; 截图工具:win+q; 添加环境变量:右键点击左下角window图标; 添加定时任务:右键点击计算机管理->任务计划程序.