游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4960|回复: 0

unity游戏动画 从入门到住院 三:动画导入

[复制链接]

8

主题

8

帖子

86

积分

注册会员

Rank: 2

积分
86
发表于 2016-12-21 12:03:33 | 显示全部楼层 |阅读模式
前情回顾:

unity游戏动画 从入门到住院 一:导出设置

unity游戏动画 从入门到住院 二 模型导入

现在,我们已经完美的导入了模型,接下来要讲到重头戏动画导入设置了。由于动画导入该如何设置取决于使用的是那种动画系统,所以我会把三种动画系统的导入设置分开讲,三种动画系统会有一些重合的内容,这类内容前边讲过之后后面就不会再重复了。

好 首先是Legacy动画系统(以下简称L),Legacy动画系统过去不叫这个名字,从前他是unity动画系统的高大帅气武艺超群的独生子 ,当时它也不叫这个名字 image001.png ,他就叫Animation动画系统,对应的动画脚本名字也是Animation。后面4.0版本出来了,自带了全新的Generic(以下简称G)和Humanoid(以下简称H)动画系统,unity官方就把自己的亲儿子改名叫Legacy(遗产)。

Legacy的优势在于简洁,他仅仅提供了动画系统最基础的功能,动画切分、动画压缩以及一些基础的参数设置。功能少就意味着少出错,所以Legacy动画系统更稳定产生bug更少,也是因为功能少,当你需要新功能的时候就需要程序来写,这就需要程序更多的工作量。

而且遇到新手程序的话,可能写出来的东西,还不如官方在Humanoid和Generic动画系统里自带的 image002.gif ,这也就是Legacy系统的弊端了 image003.gif

image006.png

首先这个界面,其实我是不想讲的因为除了Store in root(New)这个选项,其他的都被打上了Deprecated(弃用)标签,这里我曾尝试过使用其它选项有什么区别,答案是没什么区别……写这段完全是给好奇宝宝和强迫症患者的福利……

image008.png image010.png

然后是这个页签下的第一部分。

Import Animation就是字面意思啦,动画导入 不勾选的话就没有动画了(那么换言之就是说模型文件如果不小心也带了动画信息,你可以去掉这里的勾选)。

Wrap Mode 动画循环模式 下拉的选项分别是 默认、一次、循环、乒乓循环(正播一次倒播一次反复循环)以及停留在最后一帧

Anim.Compression 动画压缩 这里有三个选项 分别是关闭压缩、减少关键帧、减少关键帧并压缩。后面两个主要的区别就是 第三个选项在减少关键帧的同时,还会压缩文件的大小。

下面这三个Error参数 是压缩的阈值 他的压缩原理是,当两帧之间移动、旋转、缩放的数值小于你当前所填的0.5时,这一帧就会被删掉。这个0.5是以什么为单位我还真是不清楚…… image012.jpg


撕逼指南:这个值我最多开到0.8,再大的话 就会出现比较严重的失真了,动画会跟你在max里面见到的差很多。但是程序经常会要求你尽可能把这个值加大,再大,再大,大……他要求的是性能,但是我们要求的是画面。你跟他讲,真正的优化是保证画面效果的前提下优化性能,而不是一味的降低美术效果,那算个屁优化!

image013.jpg

常见的一些脚步晃动、物件抖动都可能是根动画压缩有关,改小压缩值通常能够解决动画的抖动问题。当然了,动画抖动是个巨坑,产生抖动的原因不计其数,有些原因甚至是无解的……如果改了压缩阈值还是没好,你可以这样跟程序解释……

image015.jpg

image017.png

这里是动画切分,有时出于制作的和修改的方便,我们会把几个动画做在同一个动画文件里面,这样就需要在unity里面将他们切分开。点击红色框选的地方增加或删减动画片段,然后再橙色框选处重命名当前选中的动画蓝色部分修改动画的起止帧。补充一下橙色部分相关的内容,unity标准的动画命名格式是  模型名@动画名 如boss1@idle   这样导入进来之后unity会自动给这个动画命名为idle而不是Take 001。

image018.png

这里看到了一个熟悉的名字 Wrap Mode 动画循环模式,这里的动画循环模式是针对我们分出来的动画片段,上面那个是针对整个动画文件的。注意看这里的Wrap Mode上方有个Add Loop Frame,勾选这个选项则使用整个动画文件总体的循环模式设置,不勾选就可以单独设置循环模式。

Mask 动画遮罩  Definition这部分是说使用动画本身的遮罩还是从别处获得动画遮罩,这个遮罩的用处是屏蔽一部分肢体的动画,那具体怎么用我们放到动画状态机部分来讲。下面这个Transform会列出这个动画的所有骨骼,你可以根据你的需要来勾选。如果没有特别要求应该是都要勾选上,但是会有比如bone骨骼的末端、CS骨骼的末端dummy这类是可以不勾选的。

Import Messages 导入信息 导入的动画如果报错了,就会在这里有提示。最常见的就是骨骼链接不规范的报错……

右下角俩按键就是还原和执行啦 你做了一堆操作设置之后千万要记得点Apply,或者你放弃这一切从头开始也可以点Revert。

Generic 这就是unity官方用来替代Legacy的次子了,跟他大哥不同,Generic在4.0刚推出的时候各种bug,使用时候各种坑,根本无法正式在项目中使用,简直就是恶魔…… image020.png

但是随着版本的叠迭代,Generic越来越完善,越来越强大,小恶魔已经成为龙妈的国王之手了……咳咳,我是说Generic已经成为大部分项目的首选了。。。

image021.png

Avatar Definition  Avatar模式 模型用自身的Avatar,动画用copy的Avatar之前讲过不重复了。

Root node 这里可以指定根骨骼,这本身没什么可说的内容,只要选定你所需的根骨骼填进来就好了。但是这里要着重介绍一下None这个选项,如果你给拔根骨骼直向None,也就是空的,那么unity会自己根据重心来计算出一个根骨骼,这个根骨骼是实时运算得出来的,恩……简单来说就是,他会把你玩死……

接下来还有个选项叫做Optimize Game Object 优化游戏对象    我查过官方自述,大意是说他会优化Avatar上的骨骼节点并优化蒙皮骨骼的提取,总的来说就是目前还没用过不是很请楚……

image022.png

Loop Time 是动画循环设置,勾选之后动画就会循环播放,这个循环是指在状态机里循环播,讲到状态机我会再说一次这个问题。

Loop pose 可以理解为位置循环。比如动画是向前走了一米,再循环播第二次的时候,是在一米的位置播还是原点的位置播取决于这个选项。

Cycle Offset 字面意思是循环抵消。可以理解为是播放延迟。假设一个40帧的动画,这里填0.5的话,动画就会从20帧的位置开始播。

具体应用:我随便说你们随便听吧,这个功能估计没几个人用得到。假设一个突突突的射击游戏,有朝左跑和超朝右跑的动画,并且动画是镜像复制出来的(镜像方法下面会说),并且需要给动画做融合左跑右跑无缝切换。左跑动画的第一帧迈的是左脚,又跑是镜像过去的,那第一帧自然是迈右脚的,这样就是无缝的啦!那我们就在又跑的Cycle Offset填上0.5,OK他会从动画的中间开始播也就是先迈左脚了。

恩 这很耐撕…… image023.png

至于后面那个loop match是检查循环是不是匹配的,用动画师的语言来说,就是首尾帧是不是一致……越绿越一致越红差别越大……

下面三个选项是一回事 分别是旋转、Y轴位移(竖方向)、XZ轴位移(水平方向)。Bake Into Pose是指“基于什么”但是你可以简单粗暴的理解为锁定,勾选之后就会锁住旋转或者是位移,不管是动画上做的位移还是引擎计算出来的位移都会被干掉。Based Upon大概理解成初始位置轴向吧。Body Orientation是身体朝向、Original是动画原本的样子、Center of Mass讲道理的话是质心,但是肯定不是你理解的那个质心……这里说一下,官方自述我并没有看,我上面讲这些基本是我基于使用时的表现反推的理论。如果你在别的教程里看到了跟我说的不一样的,我不管 反正是他错了…… image024.jpg

image026.png

Mirror镜像 比如你做了一个左转跑,在动画切分哪里多加一个动画片段改名叫右转跑,然后勾选Mirror就可以得到一个右转跑啦。

广告时间 马上走开 不要回来!

点击加入群【unity坑中的动画师】:http://jq.qq.com/?_wv=1027&k=29TyJtG 广告结束

Additive Reference Pose 添加参考pose 至于是干嘛用的…… 本宝宝也不清楚……还有下面这个Curves这个曲线功能我也……从来没用过……不晓得干嘛用的……

Events事件 这个主要是给程序用的,在动画的时间轴上加一个事件点,程序可以检查到这个事件点,然后执行某个命令。比如在攻击动画的某一帧加事件点,作为播放特效的通知。

Mask上面讲了 Definition上面讲了Transform上面讲了 还剩个Humanoid。 这个Humanoid可以理解为是一个开关吧,手脚的IK和各部位动画的开关。默认是一个绿色的小人,如果不需要某一部位的动画,可以把它点成红色。

Motion 指定根骨骼,是的就是这么不讲道理。明明指定过一次根骨骼了,这里又要指定。但是两边的区别到底是什么,我还没搞懂,我问了程序,程序也没搞懂,所以这个问题留给你们了。问问程序这两个地方都是干吗用的,有啥区别!快去找程序员问吧,谁家的程序答得出来记得给他一个爱的抱抱,然后来这里分享一下哟!


image028.png

Humanoid

我发现Humanoid能讲的,前面都讲过了……这特么就尴尬了 image030.png

那这次就到这里吧~

下一篇:unity游戏动画 从入门到住院 四 动画状态机


image005.png
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-25 04:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表