您的位置:首页 > 新闻 > 资讯 > 河南网站建设价格_个人微信小程序开店_上海最新发布最新_2024年最新一轮阳性症状

河南网站建设价格_个人微信小程序开店_上海最新发布最新_2024年最新一轮阳性症状

2025/5/1 1:27:38 来源:https://blog.csdn.net/qq_36303853/article/details/145158960  浏览:    关键词:河南网站建设价格_个人微信小程序开店_上海最新发布最新_2024年最新一轮阳性症状
河南网站建设价格_个人微信小程序开店_上海最新发布最新_2024年最新一轮阳性症状

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇

  • 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的同学入门。
  • 【unity通用篇】:主要讲解unity的基础通用的知识,包括unity界面、unity脚本、unity资源管理、unity动画、unity摄像机等,适合unity初学者入门。
  • 【unity3D篇】:主要讲解unity3D的知识,unity3D角色、unity3D物理系统、unity3D光照等,适合只想做2D游戏的开发者学习。
  • 【unity2D篇】unity2D篇:主要讲解unity2D的知识,包括unity2D角色、unity2D物理系统、unity2D光照等,适合只想做3D游戏的开发者学习。

这样方便大家按需选择性的去学习,比如有编程基础的大概率可以直接从unity通用篇开始入门,没有编程基础的建议从C#篇开始学习。只想做2D游戏的话,可以直接从unity2D篇开始学习,3D篇大概率就不需要看了,节约学习时间成本。

文章目录

  • 一、什么是动画混合?
  • 如何在状态机窗口创建动画混合状态
  • 1D动画混合
    • 1、介绍
    • 2、动画1D混合参数相关
      • Parameter 参数
      • 蓝色图像:可以在这里控制n个动画的阈值。
      • Motion 关联的动画列表:可以用鼠标改变顺序。
        • Threshold 对应动作的临界阈值
        • 时间图标
        • 人形图标
      • Automate Thresholds 是否自动设置阈值
      • Compute Thresholds 计算阈值的方式
      • Adjust Time Scale 调整时间刻度
    • 3、实战:实现一个人物从走到跑的过渡效果
  • 2D动画混合
    • 1、介绍
    • 2、2D混合具有如下几种类型
    • 3、实战:使用「2D Freeform Directional」模式来制作角色完整的移动效果
  • 专栏推荐
  • 完结

一、什么是动画混合?

游戏动画中常见的功能就是在两个或者多个相似运动之间进行混合,比如:

  • 根据角色的速度来混合行走和奔跑动画
  • 根据角色的转向来混合向左或向右倾斜的动作

如何在状态机窗口创建动画混合状态

在Animator Controller窗口右键->Create State->From New Blend Tree
在这里插入图片描述
双击混合树状态进入混合树界面。
在这里插入图片描述
有了混合树,我们就可以通过设置参数,通过一个动画状态控制多个动画效果的切换和过渡。
在这里插入图片描述

1D动画混合

1、介绍

1D混合是用一个参数控制动画的混合,之所以叫1D是因为一个参数可以看做是1维线性的。

2、动画1D混合参数相关

在这里插入图片描述

Parameter 参数

用于控制混合的参数,在参数列表中的参数。
在这里插入图片描述

蓝色图像:可以在这里控制n个动画的阈值。

在这里插入图片描述
整红色的指针,可以在下面的预览窗口查看动画混合的情况。
比如当前这个例子,调整蓝色图形中的红色指针代表调整了Speed参数的数值,0的话动画完全是默认,0.25是走路和默认结合,0.5的话完全是走路,0.75的话是走路和跑步结合各一半,1的话完全是跑步了。

Motion 关联的动画列表:可以用鼠标改变顺序。

在这里插入图片描述

Threshold 对应动作的临界阈值

当等于这个值时动作权重最大(完全播放该动作)。
这个值可以完全自由控制,数值范围不定。
要取消勾选下面的Automate Thresholds 是否自动设置阈值才能手动设置。

时间图标

控制动作的播放速度。

人形图标

是否镜像动作。

Automate Thresholds 是否自动设置阈值

勾选它会在取值范围内平均分。前面介绍了,取消勾选它我们才可以手动设置Threshold的值。一般我们都取消勾选手动控制更准确。

Compute Thresholds 计算阈值的方式

会从动画剪辑的根运动中获去数据。
在这里插入图片描述

  • Speed:速度。
  • Velocity X、Y、Z:xyz上的分速度。
  • Angular Speed(Rad 、Deg):角度或者弧度表示的角速度。

举例:比如你的动画剪辑行走动画时Speed速度是1.5个单位每秒,慢跑是2.3个单位每秒,快跑是4个单位每秒,阈值就会根据这些值来进行设置进行混合。

Adjust Time Scale 调整时间刻度

在这里插入图片描述

  • Homogeneous Speed:均匀速度。
  • Reset Time Scale:重置时间刻度。

3、实战:实现一个人物从走到跑的过渡效果

混合类型为1D,默认是用一个Float参数控制,如果你有Float参数他会默认使用,你可以选择添加一个新的Float参数叫Blend
在这里插入图片描述
分别添加走路动画和跑步动画
在这里插入图片描述
在这里插入图片描述
Threshold为0表示运行走路动画,1表示运行跑步动画,中间值就是一个混合动画效果
在这里插入图片描述
拖到修改Blend值的效果
在这里插入图片描述

2D动画混合

1、介绍

当我们的动画混合比较复杂,一个参数已经无法满足需求时,就可以采用2D混合。2D混合你可以简单理解是用两个参数控制动画的混合,之所以叫2D是因为两个参数可以看做是2维平面xy轴的感觉。

2、2D混合具有如下几种类型

在这里插入图片描述

  • 2D Simple Directional(2D简单定向模式):运动表示不同方向时使用。例如“向前走”,“向后走”,“向左走”,“向右走”,或“向上瞄准”,“向下瞄准”,“向左瞄准”,“向右瞄准”。如果只有一个动作用这个,但在同一方向上有多个动画,如行走和奔跑,则不建议用这种模式
  • 2D Freeform Directional(2D自由形式定向模式):同上,运动表示不同方向时使用,但是可以在同一方向上有多个运动,例如“向前走”和“向前跑”。需要有一个原点动作(比如Idle)。
  • 2D Freeform Cartesian(2D自由形式笛卡尔坐标模式):运动不表示不同方向时使用,比如向前走不拐弯、向前跑不拐弯、向前走右转、向前跑右转。
  • Direct(直接模式): 自由控制每个节点权重,一般做表情动作等。

3、实战:使用「2D Freeform Directional」模式来制作角色完整的移动效果

首先增加两个控制参数「Horizontal」和「Vertical」用来控制水平方向的动画和垂直方向的动画。

然后将各个方向的动画添加到混合树中,根据方向设置「Horizontal」和「Vertical」的值
在这里插入图片描述
挪动中间的红点,可以预览混合的效果
在这里插入图片描述
然后在代码中根据输入,设置「Horizontal」和「Vertical」参数

_horizontal = Input.GetAxis("Horizontal");  
_vertical = Input.GetAxis("Vertical");  _animator.SetFloat("Horizontal",_horizontal);  
_animator.SetFloat("Vertical",_vertical);

最终效果
在这里插入图片描述


专栏推荐

地址
【零基础入门unity游戏开发——C#篇】
【零基础入门unity游戏开发——unity通用篇】
【零基础入门unity游戏开发——unity3D篇】
【零基础入门unity游戏开发——unity2D篇】
【制作100个Unity游戏】
【推荐100个unity插件】
【实现100个unity特效】
【unity框架/工具集开发】

完结

好了,我是向宇,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com