Unity‘s Animation学习日志 您所在的位置:网站首页 unity动画混合 Unity‘s Animation学习日志

Unity‘s Animation学习日志

2022-12-31 01:29| 来源: 网络整理| 查看: 265

Aniamtions

Animation 当前播放动画 Animations 动画合集

Play Automatically 运行自动播放

Animate Physics 角色对动画可以与物理引擎进行交互,

Culling Type 一个是一直渲染吗,看不到也会播放,另一个是当摄像机看到时再渲染,看到在播放

动画

在game object上面加一个Animations, 然后在window上找一个Animation,

开始制作动画, 点击动画,在右上角有 default 默认 Once 播放一次 loop 循环播放 ping pong 正着放一遍,反着放一遍,重复播放, 在方块上的动画球也可以用,轨迹可以重复使用, 选中cube然后ctrl+6可以继续编辑。

动画系统

我第一次没整明白,所以去看了另外的视频来学习这个东西,所以会有两个学习的日志 常用方法 ISplaying 是否正在播放某个动画 Play 播放动画,看起来比较生硬 PlayQueude 在一个动画播放完成后播放下一个动画 CrossFade 播放动画,看起来比较柔和 CrossFadeQueued 在前一个动画播放完成之后淡出下一个动画

第一次学习动画 动画制作

动画只会播放一次的话,

单击模型找到Animation,单击,然年定位到动画,单击动画,Edit,最下面有一个Wrap Mode 换成loop,apply. 就会一直播放这个动画。

动画切换

Animation ani; ani=GetComment(); if(input.get........) { ani.CrossFade("动画名称"); }//按下某一个键就会播放动画 if (!ani.isPlaying) { ani.CrossFade("idle"); } //如果没有动画在播放就会播放这个动画 复制代码 Animator

新版动画系统 动画状态机,使用图形来控制动画, 箭头就是动画之间的切换 Layer

Parmeters 用来增加参数 Conditions 条件 Greater大于 Less小于 Equals等于 NoEqual不等于

新版动画系统两个动画切片转换必须有时间,(“动画名字”,0.1f);

两个箭头之间的关系是and的关系,

如果是或的关系就再加一个箭头就好了

animation Event

在动画里面插入一个事件,脚本 ctrl+6,插入事件,在动画结束的前一帧插入事件,是一个蓝色的标记 有一个没有选择函数的报错

模型的参数

Model,模型的参数 3ds的模型是unity模型的参数的百分之一, Scale Factor是用来调整模型的缩放比例,用来调整模型的缩放值。

动画重定向

Avatar 是一个模型可以播放另外一个模型的动画。就是动画重定向。增加动画的利用效率. Animation Type 动画类型,换成human就是人形的动画,然后Condigure…然后Apply,进入骨骼界面(骨骼动画,骨骼动画体系) 不同的人不同的所制作模型的名字是不一样的,但是unity给了一个统一的名字。 玩坏了就重新导入就好了

遮罩系统

Avatar Mask 一个模型的不同部位同时运行两个动画,就是遮罩系统 有一个Layer层制作 注意权重,默认层面的权重是一,注意是loop. 当关系到谷歌的时候就Creart —Avatar Mask.出来骨骼。在Layer里面把Avatar Mask对应的骨骼加上去。

IK

反向运动学 IK和FK对那个,正向运动学是根骨骼带动节点骨骼运动,而反向运动学,是反过来的, IK是手带动胳膊 FK是胳膊带动手 注意是人形动画 动画要支持ik(在Animator中对使用ik的动画勾选foot ik),layer要有ik,还要是人形动画,然后再代码中实现 OnAnimatorIK 函数来控制IK。

新版动画和旧版的区别

为人型的动画提供了很多的优化; 运动重定向,提高了动画的利用效率 针对动画片段的建议工作流,即针对动画片段以及他们之间的过渡和交互过程的预览能力, 在编写游戏逻辑代码之前就可以预览动画效果; 一个用于管理动画间复杂交互的可视化工具; 通过不同的逻辑来控制身体不同部位的动画

第二次学习动画 Legacy动画系统

旧版动画系统 当动画不托上去的时候看动画是新版还是旧版,要换成Legacy

Animation 录制关键帧动画

给gameobject添加一个Animation,然后选中物体Ctrl+6,或者去windouw下面找Animation,制作关键帧动画 Animation Clip 动画片段 Curves 曲线,在左下角 Samples 采样 调整播放速度, 曲线的参数: Add Key 添加关键帧 下面是动画的限制关键,管理动画关键帧的切线 Clamped Auto 限制自动, Auto 自动 Free Smooth 自由平滑 Flat 平坦的 Broken 折断 Tangent 切线

Animation Event

在动画插入事件, 检视面板选择函数,公开或者不公开都可以 是一个蓝色的标记,然后写一个函数来运行,如果插入事件但是没有选择脚本就会报错 先要写一个鼠标或着键盘的事件,用来调用这个动画,然后在另外一个方法里面执行event的函数,用来执行事件。

public void OnAttack(Object go) { Debug.Log("攻击"); Debug.Log(go); Instantiate(go as GameObject); } 复制代码

在Event中有个Object加入一个东西就在执行到事件的时候产生一个gameobject

控制动画集里面的动画 animation ani; ani=getcom...(animation); if(input.......) { ani.coressfade("动画名称"); } 复制代码 动画倒播 ani=getcommpoent(); ani.Play("die"); ani ["die"].time=ani["die"].length; ani ["die"].speed=-0.1f; 复制代码 Legacy动画控制 Mecanim动画系统

新版动画系统 新版动画优点 针对人形角色提供了一种特殊的工作流,包含Avatar的创建和对骨骼的调节。 动画重定向的能力,可以把一个模型的动画给其他的模型, 提供了可视化Animator视窗,可以直观地通过动画参数和Transition等管理各个动画间的过度。 人形动画-Humanoid 非人形动画-GenericCharacter 让角色运动 动画剪辑 AnimationClips 状态机(动画控制器) AtaeMachines 混合树 BlendTree 动画参数 AnimationParameters 三个文件夹:模型动画贴图

切割动画

需要将动画切割成单独的动画才能用 会有一个帧数,一个动画是多少帧到多少帧, 在Animation面板,动画总帧数下面有个加号和减号,单击加号,改名开始帧数和结束帧数就好了

模型名@动画名

里面含有动画可以直接用

面板参数

Model

Acale Factor 模型的缩放(不行就建立一个父物体改变父物体的)

Mesh Compression 网格压缩,用于改善画质

Read/Write Enabled 可读可写,撞车了车子会变形就是可读可写,不会变形就是只读

Optimize Mesh 改善画质

Import BlendShapes 导入表情动画

Generate Colliders 导入碰撞器,用于很大的场景

Rig

Animation Type 动画类型

当要改成Humanoid的时候 Apply是个X,就去下面的 Avatar Definition(谷歌映射系统)

最后一个是调节性能

Animations

Anim.Compression 默认就好

下面三个是缩放,越大月不准确,越小月消耗性能

新版的循环是Loop Time 勾选就好了

Root 固定旋转轴,不明白,红色是报错,其他不用管

Mirror 镜像,左手变成右手

Cueves 曲线

Event 事件

Mask 遮罩。一个模型同时进行两个动画,拉克丝一边开大招一边走

Motion

Inport Messages

组件参数

Controller 动画控制器 Avatar 骨骼(绿色的小人人) Apply Root Motion 勾选的话应用物体本身的位移,不勾选就是只有动画的位移,一直错位就用这个 Update Mode 更新方式,物理更新当有碰撞等物理交互的时候选择, Unscaled Time 不跟随时间线,UI动画 Cuilling Mode 优化动画, always 总是更新动画, cul update transforms 摄像机看不到之后只更新位移, cull completely 摄像机看不到之后,都不更新

Animator

动画编辑器 Entry 开始动画 Exit 推出 AnyState 任何动画,所有的动画都可以连接到这个动画

一个动画片段到另外一个动画片段的连线是有东西的,Have Exit Time 动画是否又退出时间,可以从跑随时切换到攻击,但是攻击不能随时切换到跑

接下里是个图,两个动画有交叉的地方,那是用来两个两个动画淡入和淡出的部分。 箭头指向谁谁就是True

BlendTree

相当于一个复合的动画片段,可以作为Mecanim动画状态机中的一个节点,对于BlendTree来说,它的主要作用就是把几个类似的动画合成一个符合的对动画

使用设置来增加几个条件然后控制动画的播放,1D是一个条件,2D是两个条件,值的范围是-1到1,不同的值的取值也是不一样的,在动画状态机面板,creat-第一个然后最后一个就有混合数了。

动画的Layer

下身跑上身手不动,同一个模型可以播放两个不同的动画,一边跑一边喝茶。

IK

子节点控制父节点 OnAniamtiorIK用于控制物体的反向动力学的函数

方法,其他东西

ISplaying 是否正在播放某个动画= Play 播放动画,看起来比较生硬 PlayQueude 在一个动画播放完成后播放下一个动画 CrossFade 播放动画,看起来比较柔和 CrossFadeQueued 在前一个动画播放完成之后淡出下一个动画

if (!anil.isPlaying)//是走正在播放动画 //从字符串转换成ID runid = Animator.StringToHash("RunInt"); //获取当前的动画信息 info = ani.GetCurrentAnimatorStateInfo(0); 复制代码


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有