Unity动画系统常用知识总结

2023-11-07

资源导入需要注意的地方

导入数据的时候,需要看当前模型是否符合unity的正常大小。
方法:创建一个Cube,然后将模型拖到场景中与Cube比较一下大小,如果大小不合适需要在模型中调整,而不是调整unity的游戏物体,避免出现不必要的错误。
在这里插入图片描述

常用的组件

Animator 组件

在这里插入图片描述
重点介绍一下前三个。
Contorller:游戏状态控制器,控制当前角色处于什么状态(播放对应的动画)。
Avatar:骨骼,当前人物模型的骨骼,通常情况下美工配好。
只要有经过处理的Avatar,我们就可以通过 Animator Controller动画控制器控制人物模型播放一组制定的动画。
所以符合Avatar进行Retaring重定向的条件为:
1、相同的Animator Controller控制器。
2、都有经过成功处理的Avatar资源组件(可以不是同一个Avatar)。
3、可以模型不带任何动画。

Apply Root Motion:简单理解,有的动画自带移动,带有矢量,如果勾选,则表明使用动画自带的位移,不适用则自己手写移动相关的代码。

Avatar Mask 骨骼遮罩

在这里插入图片描述
在Project面板创建,点击对应的位置,即可让对应的部位无法播放动画,在Animator Controller中的layer层绑定,绑定完之后该layer层下的所有手臂动画无法播放(该图中)。

Animator Controller

动画状态控制器,控制动画切换的核心组件。

动画切换

常用动画切换,创建两个State,然后点击其中一个右键选择Make Transition
在Parameters中添加跳转参数。
可以通过代码控制
animator.SetBool(“CanMove”, true);
满足条件时就会走向下一个状态,如下图。
在这里插入图片描述

Any State

代表当前所有状态都可以转向一个,例如死亡,避免出现连线到处都是。
在这里插入图片描述

Has Exit Time:是否有退出时间(是否一定要播放完当前动画才可以切换到下一个)

在这里插入图片描述

如何让两个动画同时播放,例如一边走路一边挥手

我上家公司做模拟休闲游戏,有个厂长巡查,需要走路,挥手,边走路边挥手功能,下面探讨一下如何实现。
1、让美工一共做三个动画,分别是走路,挥手,走路+挥手,但是这样非常繁琐,而且维护起来也麻烦(需要不同状态之间来回切换)。
2、使用多个layer层
在这里插入图片描述
如图所示,Base Layer控制行走,Arm Layer控制厂长挥手,但是需要注意,Arm Layer的权重需要和Base Layer一样,Blending中需要改为Additive,默认是override覆盖重写。
3、使用混合树,下面单独开一个标题讲混合树,但是混合树更适合多种状态之间的平滑处理,而不是同时实现效果。

混合树

1D

在Animator面板中创建BlendTree,先从最简单的1D讲起。
添加一个BlendValue,然后在BlendTree中添加两个行为,最左边是Walk,最右边是Run,动画系统会自动综合。
在这里插入图片描述
也可以在混合树中添加混合树,达到与更多效果综合的效果,我用的不多,此处不再赘述。

2D

2D Directional两个差不多,Freedom比Sample更好用一点,但是需要注意,Freedom中必须要有一个0,0点,即Idle状态。
在这里插入图片描述
如上图所示,目前一共有五个状态,分别是向前、后、左、右跑,还有一个待机,我们可以获取用户输入WASD的坐标,GetAxis方法,将对应的值传给动画组件。
animator.SetInteger();
然后角色就会做对应的动画。
ps:时间的那个图标,改为负数则是向后运动。
另外,设置完动画这里最好选择Velocity XZ,代表由XZ的坐标控制动画切换,对应两个参数。
在这里插入图片描述
在这里插入图片描述
剩下的一个笛卡尔积2D,更加复杂,也适合更多的动画平滑切换,我用的不多,此处不再赘述。

IK反向动力学

简单介绍一下,例如你推门,你给门一个力,相对的门也会给你一个力,他会让你的手臂弯曲,这个就被称之为IK反向动力学。
在这里插入图片描述

    void OnAnimatorIK(int layerIndex)
    {
        {
            //设置位置权重
            animator.SetIKPositionWeight(AvatarIKGoal.RightHand, 1f);
            //设置旋转权重
            animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 1f);
            animator.SetIKPosition(AvatarIKGoal.RightHand, objPosition.position);
            animator.SetIKRotation(AvatarIKGoal.RightHand, objPosition.rotation);
        }
    }

如上图所示,角色右手受到球的影响,需要注意,需要将layer层的IK Pass勾选上,代码中加上对应的逻辑即可。

动画事件

在这里插入图片描述
找到资源的动画,在Event这一栏可以添加事件,选择脚本,与脚本的方法即可。选择固定的某一帧执行。
在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity动画系统常用知识总结 的相关文章

  • Unity3d 插件 系列——DoTweenPro介绍(图文详细+案例)

    Unity3d 插件 系列 DoTweenPro介绍 图文详细 案例 前言 一 DoTweenPro简介 二 DoTweenPro安装 三 DoTweenPro主要组件 1 DoTweenAnimation 2 DoTweenPath 3
  • Java与C#一些区别(学习笔记)

    一 基础语法 1 Console表示控制台 2 输入 Console ReadLine 格式 string name name Console ReadLine 3 输出 Console WriteLine 这个自带换行 Console W
  • unity工程崩溃资源找回

    1 Unity死机未保存场景 当你在Unity中编辑场景 突然死机时 可以在项目文件目录中找到Temp文件夹 双击文件夹 找到 Backupscenes文件夹 把后缀为 backup的文件后缀改为 unity 然后拖进Unity的Proje
  • 【IMGUI】 各种辅助类 EditorGUIUtility、EditorUtility、GUIUtility、GUILayoutUtility

    EditorGUIUtility class in Editor 继承自 GUIUtility EditorGUI 的各种辅助程序 EditorGUIUtility currentViewWidth 我尝试打印了下这个值和position
  • unity3d大型互动照片墙

    1 本次应客户需求 制作一个大型照片墙互动 输出分辨率为9600 4320 注 unity3d官方推荐最大分辨率为8192 3686 4 经过现场长达24小时暴力测试中途未发生问题 姑且判定可以达到正常标准 废话不多说 先上效果 unity
  • Unity打包WebGL的优化常用操作?

    1 贴图部分优化 如果贴图格式时2048 在不影响画面效果的情况下 改成1024或者5 12 还可以缩小包体 2 压缩和解压缩问题 WebGL打包的时候分三种压缩情况 gzip 比Brotli文件打 但打包快 http和https都支持 B
  • unity3d切换场景Application.LoadLevel(1)含义

    Application LoadLevel 1 场景ID
  • unity3d 自定义的图片无法放入source image中

    须将图片的texture type改为 sprite
  • unity3d image组件不显示

    需要将UI组件放到画布下面
  • Linux shell编程学习笔记32:declare 命令

    0 前言 在 Linux shell编程学习笔记16 bash中的关联数组 https blog csdn net Purpleendurer article details 134053506 spm 1001 2014 3001 550
  • 【原神游戏开发日志1】缘起

    原神游戏开发日志1 缘起 版权声明 本文为 优梦创客 原创文章 您可以自由转载 但必须加入完整的版权声明 文章内容不得删减 修改 演绎 相关学习资源见文末 大家好 最近看到原神在TGA上频频获奖 作为一个14年经验的游戏开发行业的老兵 我就
  • mixamo根动画导入UE5问题:滑铲

    最近想做一个跑酷游戏 从mixamo下载滑铲动作后 出了很多动画的问题 花了两周时间 终于是把所有的问题基本上都解决了 常见问题 1 动画序列 人物不移动 2 动画序列 人物移动朝向错误 3 蒙太奇 人物移动后会被拉回 4 蒙太奇 动画移动
  • unity小球跟随音乐节奏放大缩小和改变颜色

    放在小球身上 设置对应组件即可 using System Collections using System Collections Generic using Unity VisualScripting using UnityEngine
  • 【转载】【Unity】WebSocket通信

    1 前言 Unity客户端常用的与服务器通信的方式有socket http webSocket 本文主要实现一个简单的WebSocket通信案例 包含客户端 服务器 实现了两端的通信以及客户端向服务器发送关闭连接请求的功能 实现上没有使用U
  • Unity学习笔记

    一 旋转欧拉角 四元数 Vector3 rotate new Vector3 0 30 0 Quaternion quaternion Quaternion identity quaternion Quaternion Euler rota
  • 监控显卡显存(python代码)

    一 前言 我和我同学的代码 分别占用14G显存 而显卡的显存只有24G 没有办法同时跑 所以 他先跑 我的代码时刻监控显存的使用情况 只要显卡显存大于14G 我的代码就自动启动 二 代码 import pynvml import time
  • U3D游戏开发中摇杆的制作(NGUI版)

    在PC端模拟摇杆 实现控制摇杆让玩家或者物体移动 以下是完整代码 using System Collections using System Collections Generic using UnityEngine public clas
  • 游戏开发常见操作梳理之小地图的制作

    游戏中一般存在小地图系统 实际上就是设置一个新的摄像机放置在玩家的正上方 然后在小地图上显示新摄像机看见的东西就可以了 在小地图上一般存在放大地图和缩小地图的按钮可以方便放大和缩小地图 这些操作是如何实现的呢 接下来直接上核心代码 usin
  • 游戏开发常见操作梳理之角色选择一

    进入游戏后 我们经常会进入角色选择的界面 通常是左右两个按钮可以更改角色供玩家选择 对于这种界面我们通常使用数据持久化将角色信息存储起来 接下来的笔记中 我将使用自带的数据持久化系统对其进行操作 实现角色的选择页面 后续会更新xml系列的文
  • 游戏开发中常见系统梳理之背包系统的实现一

    游戏中几乎都存在大大小小的背包系统 接下来我将讲述背包系统具体是如何实现的 完整源码 以下是使用unity NGUI实现 使用txt配置的方法 后续更新UGUI Json实现的背包系统敬请期待 背包中的物品我们常常将其制作成预设体 通过改变

随机推荐

  • 循环语句

    for循环 for循环其实本质上与while循环本质上是一样的 标准形式 for 语句1 表达式的初始化 语句2 测试条件 语句3 执行更新 语句内容 关于for循环的结构 语句1是表达式是初始化 只会在程序开始的时候执行一次 语句2是判断
  • EMC测试项分类

    EMC包含两大项 EMI 干扰 和 EMS 敏感度 抗干扰 EMI测试项包括 RE 辐射 发射 CE 传导干扰 Harmonic 谐波 Flicker 闪烁 EMS测试项包括 ESD 静电 EFT 瞬态脉冲干扰 DIP 电压跌落
  • linux 日志 硬件检测,在Linux上分析硬件检测日志

    数据库管理员在数据库的运维过程中或多或少要和操作系统乃至硬件打上交道 分析数据库故障时操作系统日志往往也是一个重要的线索来源 以Linux操作系统为例 其主要的日志子系统 syslog subsystem 可大致分为三类 即1 用户连接日志
  • IKE主模式及预共享密钥认证配置实验

    一 组网和实验环境 按如上的接口ip先作配置 本文实验采用的交换机是H3C模拟器 下载地址如下 http forum h3c com forum php mod viewthread tid 109740 highlight H3C E6
  • L1-018 大笨钟(java)

    1 题目详情 微博上有个自称 大笨钟V 的家伙 每天敲钟催促码农们爱惜身体早点睡觉 不过由于笨钟自己作息也不是很规律 所以敲钟并不定时 一般敲钟的点数是根据敲钟时间而定的 如果正好在某个整点敲 那么 当 数就等于那个整点数 如果过了整点 就
  • kerberos认证系统服务器,基于Kerberos认证的NFS服务器搭建

    NFS是Linux下常用的共享软件 v3版本不太安全 无法进行用户认证 这里简单说明一下V4版本和Kerberos配合实现认证访问的过程 0 准备工作 跟之前的Kerberos一样 需要3台机器来做试验 很多资料上写的是两台 即kdc ni
  • 2022年11月14日--11月25日(ue4 tf1视频教程+socket视频教程+cesium for ue源码抄写,本周10小时,合计1747小时,剩余8253小时)

    工作内容中有高并发 我感觉cesium for ue除了例子外 很难突破 所以把网络视频教程学下 学习不是难事 难的是没有资料 从0到1 目前 mysql 7 1 tf1 4 4 oss 12 1 蓝图反射 1 7 moba 1 5 web
  • 【解决新手爬虫 python3】UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘‘ in position

    解决新手爬虫遇到的UnicodeEncodeError gbk codec can t encode character xa0 in position 7084 illegal multibyte sequence 起初的代码 from
  • Qt程序图标

    网络上有很多这方面的介绍 这里只是MARK一下 程序图标说明 准备 1 图标文件 ICO图标文件 也许需要BMP PNG转ICO工具 2 资源文件 RC文件 可手动创建一个空的RC文件 注 这两个文件应与工程文件 PRO 放在同一路径下 步
  • 编写一个函数计算传入字符串中数字、字母、空格以及其它字符的个数

    编写一个函数计算传入字符串中数字 字母 空格以及其它字符的个数 def num str1 a b c d 0 for i in str1 if i isdigit a 1 elif i isalpha b 1 elif i isspace
  • 记录一次生产环境Net Core应用内存暴涨导致OOM的排查过程

    事情起源于某个周五 刚开始是突然发现生产服务不能访问 请求时居然直接提示服务器拒绝响应 然后连用于管理生产环境的Portainer虽然能打开 但登录右上角直接出红色告警信息无法接收服务器信息 进去后所有的node都不显示 生产环境跑了二年多
  • XCTF黑客精神解题报告

    题目来源 https adworld xctf org cn 解题环境 kali frida 12 8 0 Win10 IDA PRO 7 0 整体思路 静态分析 dex 应用的核心思路为com gdufs xman MyAPP类中最先执行
  • 为什么 bindService 能和 Activity 的生命周期联动?

    前言 之前做一道面试题 startService 和 bindService 有什么不同 为什么 bindService 能和 Activity 的生命周期联动 前一个问题可以很快回答出来 生命周期不同 结束方式不同 交互方式不同 后一个问
  • java实现批量更新数据_java批量更新数据库

    String queries INSERT INTO Employee Eno Ename Ecode EDept values 1 Allen abc Sales INSERT INTO Employee Eno Ename Ecode
  • 在零配置的情况下,怎么启动、打包一个.vue文件?

    问题 比如我们在开发一个组件 以及做一些小demo的时候 怎么快速启动服务 解决 1 安装拓展 npm install g vue cli service global 复制代码 2 新建vue文件 建立一个vue test文件夹 在里面新
  • npm、yarn 与 pnpm 的逻辑区别

    目录 npm2的依赖管理 npm3 yarn的依赖管理 pnpm的依赖管理 npm2的依赖管理 npm2 安装依赖的时候比较简单直接 直接按照包依赖的树形结构下载填充本地目录结构 比如在项目中A和 C 都依赖 B 无论被依赖的 B 是否是同
  • Dapper入门

    Dapper 一 dapper是什么 dapper是一款轻量级的ORM Object Relationship Mapper 它负责 数据库和编程语言之间的映射 SqlConnection MysqlConnection OracleCon
  • Jmeter之Android脚本录制

    在进行测试的时候 可能有好多脚本或者界面需要操作测试 并且有些测试链接需要重复多线程高并发进行测试 我们一般会针对这一些操作 进行一个脚本录制 录制好之后 之后测试就可以在这个基础上进行测试 使用Jmeter自带的代理服务器进行脚本录制 注
  • 阿里云服务器linux选centos哪个版本好?

    如果要我推荐一般就推荐首选阿里云centos 8 2 64位或者是最新版本的centos系统 当天centos 7 9也可以的 其实具体哪个版本真的没啥区别的 一般用户不和系统打交道的话 完全是感受不到什么差异的 不过关于阿里云ecs服务器
  • Unity动画系统常用知识总结

    Unity动画系统常用知识总结 资源导入需要注意的地方 常用的组件 Animator 组件 Avatar Mask 骨骼遮罩 Animator Controller 动画切换 Any State Has Exit Time 是否有退出时间