Animation View动画的编辑

动画的编辑的打开方式:一是可以通过Ctrl+6来完成,二是可以通过在project窗口鼠标右键里面的Create里面的Animation创建,三是可以通过Window窗口菜单里面的Animation里面的Animation进行创建。
其次就是在Animation View里面可以使用Animation Event,这个Animation Event的可执行函数的要求就是:函数的修饰符必须是public,函数的返回值是void,函数只有一个输入参数,输入参数的类型可以包括int,string,float,object。

Animator Translation动画的设置

在Animation State下面的设置:
LoopTime:动画的循环播放
Loop Pose :循环播放的姿势,使得动画循环播放更加自然
Cycle Offset:动画循环的偏移量
Root Translation Rotation:动画的旋转是否切合
Bake into Pose当前动画的播放是否会影响动画人物本身的位置
Base Upon:一个参照点
Root Transform Position(Y):动画的Y轴是否切合,也是动画、根动画在Y轴上的一个旋转
Root Transform Position(X,Z):动画的X和Z轴上的一个切合,根动画X,Z轴上的旋转

Animator Controller动画控制器的窗口

layers:动画的分层
Paramenters:存放条件参数用来进行动画状态的切换
Weight:一个层的权重,权重越高,层里面的动画就是越明显
Mask:放置动画人物骨骼的地方,也是放avatar Mask
Blending:混合,有两种属性,Override(覆盖)和Additive(添加),第一个就是可以使用Avatar Mask 做动画的部分肢体覆盖,第二个就是将不同的动画进行一定的融合
Sync:复制一个层的动画
Timing: 当打开Sync时,才可以打开该选项。这时同步层可以取得被同步层的控制权
IK Pass:使用反向动力学的时候需要将这个点击上
AnyState:满足条件可以将任意状态切换为连接的状态
State:单个动画
Sub State Mechine:动画组
Blend Tree:动画混合树
可创建条件参数:float, int, bool, Trigger

Animator Controller动画控制器组件(Component)

Update Mode:动画的更新方式,包含Normal(普通状态下与Update进行每一帧的调用),Animate Physical(根据物理状态下的动画更新,与FixUpdate进行配合),Unscaled Time(常用于UI组件动画的使用)
Culling Mode:用于场景优化,包含Always Animate(指动画在视角看不见的地方仍会进行动画的播放),Cull Update Transform(只会播放根动画,节省资源得配置,在视角看不见的地方,不会进行动画的播放),Cull Completely(当渲染器不见得时候则会完全的禁用动画。但是动画仍然在场景中,不受动画剔除的影响)

AnimatorIK

只能在OnAnimatorIK函数中使用
代码示例:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
​
public class Test_IK : MonoBehaviour
{public Transform look_obj;//看向的位置点public Transform left_Hand;public Transform right_Hand;public Transform left_Foot;public Transform right_Foot;private Animator my_Animator;//动画控制器public bool active=true;// Start is called before the first frame updatevoid Start(){my_Animator = transform.GetComponent<Animator>();}
​// Update is called once per framevoid Update(){}private void OnAnimatorIK(int layerIndex){if (my_Animator == null){return;}if (active){//设置各个的权重my_Animator.SetIKPositionWeight(AvatarIKGoal.LeftFoot, 1f);my_Animator.SetIKRotationWeight(AvatarIKGoal.LeftFoot, 1f);my_Animator.SetIKPositionWeight(AvatarIKGoal.LeftHand, 1f);my_Animator.SetIKRotationWeight(AvatarIKGoal.LeftHand, 1f);my_Animator.SetIKPositionWeight(AvatarIKGoal.RightFoot, 1f);my_Animator.SetIKRotationWeight(AvatarIKGoal.RightFoot, 1f);my_Animator.SetIKPositionWeight(AvatarIKGoal.RightHand, 1f);my_Animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 1f);
​if (left_Foot != null){my_Animator.SetIKPosition(AvatarIKGoal.LeftFoot, left_Foot.position);my_Animator.SetIKRotation(AvatarIKGoal.LeftFoot, left_Foot.rotation);}if (left_Hand != null){my_Animator.SetIKPosition(AvatarIKGoal.LeftHand, left_Hand.position);my_Animator.SetIKRotation(AvatarIKGoal.LeftHand, left_Hand.rotation);}if (right_Foot != null){my_Animator.SetIKPosition(AvatarIKGoal.RightFoot, right_Foot.position);my_Animator.SetIKRotation(AvatarIKGoal.RightFoot, right_Foot.rotation);}if (right_Hand != null){my_Animator.SetIKPosition(AvatarIKGoal.RightHand, right_Hand.position);my_Animator.SetIKRotation(AvatarIKGoal.RightHand, right_Hand.rotation);}if (look_obj != null){my_Animator.SetLookAtPosition(look_obj.position);my_Animator.SetLookAtWeight(1f, 1f, 1f, 1f);}}else{​}}
}

Unity动画系统基础总结相关推荐

  1. Unity动画系统详解10:子状态机是什么?

    摘要:除了使用Layer还有没有更好的组织状态的方式呢?感觉一个Layer里面状态多的时候,还是很显得很乱. 洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,这是复(yu)习( ...

  2. Unity动画系统学习

    Unity动画系统学习 文章目录 Unity动画系统学习 AnimationState 动画状态 Animation Transitions 动画过渡 动画分层和遮罩 动画混合 1D混合 2D混合 动 ...

  3. VR开发——Unity动画系统(V客it学院技术分享)

    在我们进行VR开发的过程中,免不了需要各种各样的模型动画.那么面对这样的简单动画,我们大可以使用Unity的动画系统来完成整个事情. 前段时间我在博客看见了一篇非常不错的动画系统讲解,今天我就借花献佛 ...

  4. Unity动画系统简单介绍

    Unity动画系统知识点简单介绍(简易) 本文是学习文,其中转载某些文章,如有侵权,联系删除. 学习要点: 1.动画的分类 游戏物体的基础动画设置,UGUI设置的按钮状态,2D游戏Sprite动画,R ...

  5. Unity动画系统详解9:Target Matching是什么?

    摘要:在游戏中,经常有这种情况:角色的手或者脚需要在特定时间放在特定的位置.比如角色需要用手撑着跳过一个石头或一堵墙,或者跳起抓住房梁.Target Match就是让动画的特定片段去匹配特定的位置. ...

  6. Unity动画系统详解5:BlendTree混合树是什么?

    摘要:"Animator中有一个功能,用来解决多个动画之间的混合,经常用于移动动画之间的混合,这个功能叫做BlendTree,混合树." 洪流学堂,让你快人几步.你好,我是跟着大智 ...

  7. Unity动画系统详解4:如何用代码控制动画?

    摘要:通过上一篇咱们知道了播放动画需要使用Animator,那么如何用代码控制动画呢? 洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,这几周一起来复(yu)习(xi)动画系统 ...

  8. Unity动画系统常用知识总结

    Unity动画系统常用知识总结 资源导入需要注意的地方 常用的组件 Animator 组件 Avatar Mask 骨骼遮罩 Animator Controller 动画切换 Any State Ha ...

  9. Unity动画系统详解8:IK是什么?

    摘要:IK是Inverse Kinematic的缩写,也就是反向动力学.是根据骨骼的终节点来推算其他父节点的位置的一种方法.比如通过手的位置推算手腕.胳膊肘的骨骼的位置. 洪流学堂,让你快人几步.你好 ...

最新文章

  1. 再话单元测试unittest
  2. 客户跟进节奏(转至索菲外贸日记)
  3. java解压文件、复制文件、删除文件代码示例
  4. java doubke类型转换为String_Java基础知识面试题大集合
  5. [转载] 使用DirectInput进行交互
  6. edge android apk下载地址,edge app下载-edge完整版v7.2.0 安卓版 - 极光下载站
  7. 差分跳频MATLAB,基于Matlab的短波差分跳频通信仿真设计与实现
  8. electron-vu打造低配版网易云(Mv版)
  9. 小学计算机纸牌教案,小学信息技术《玩好纸牌》教案
  10. 【语音去噪】基于matlab GUI LMS+RLS语音去噪【含Matlab源码 528期】
  11. excel常用函数公式及技巧_Excel公式使用技巧大全
  12. 微服务之核心架构思维
  13. Ubuntu双系统卸载教程
  14. MySQL从删库到跑路(6):子查询
  15. Tkinter 组件详解(十):Scale
  16. php直播推流rtmp,直播推流nginx-rtmp-module集成
  17. 第002篇 深入体验C#项目开发(一)
  18. 部编版三下《燕子》教学反思
  19. java Excel导出工具类
  20. 网站突然无法访问解决方案

热门文章

  1. 报税软件连接网站服务器,云报税服务器地址
  2. {{π型人才培养计划}}BootStrap
  3. Uber 是如何低成本构建开源大数据平台的?
  4. 杨焘鸣:说得多不如问得多
  5. 【评测】小鼠脾脏T细胞转染
  6. 在线JSON转PlainText工具
  7. 第一次前后端联合开发项目总结
  8. 从GaussDB到无限想象:开发者眼中的2019数据变局
  9. 电脑螺旋丸html,index.html
  10. flutter 参数函数_Flutter 基本用法摘记