当前位置: 首页 > news >正文

【Unity3D实例-功能-切换武器】切换武器(一)动画配置

今天,我们就一起来探讨一下,在游戏中角色如何切换武器的功能。由于该功能相对有一点复杂度,所以我将会连载两篇文章进行分享:

(1)首篇文章:如何配置切换武器的动画。

(2)次篇文章:如何编写武器架的代码,实现多武器切换功能。大家可以参考《【Unity3D实例-功能-切换武器】切换武器(二)功能实现》

目录:

1.创建动画器

2.设置动画

3.配置Base Layer图层

4.创建和配置武器图层

5.测试和运行

--------------------

代码、模型和动画都已经上传到我的个人博客了,大家可以自行下载。

原创来源于-谷宇博客:https://www.biguyu.top/home

一.创建动画器

在 Unity 的“Project”面板中,点击鼠标右键,选中“Create”,点击“Animator Controller”创建动画器,然后把动画器绑定到角色上。

二.设置动画

我这里已经准备好了动画,分别有角色普通的跑步动画和站立动画。角色手持手枪的拔枪动画、跑步动画和站立动画。最后是角色手持步枪的拔枪动画、跑步动画和站立动画。我们选中所有的动画,然后点击右侧菜单栏中的“Rig”页签,在“Animation Type”选项中,选择“Humanoid”,然后点击“Apply”应用。

三.配置Base Layer图层

1.第一步双击打开动画器,选中“Base Layer”图层。接着我们点击鼠标右键,在弹出的菜单中,选择“Create Sub-State Machine”,分别创建三个子动画机(我这里分别命名为“Base Movement、Pistol Movement和Rifle Movement”)。

2.第二步我们在左侧栏中,创建四个触发变量,分别为Bool类型的“run”用于触发角色的移动动画、Triggle类型的“grab”用于触发角色的拔枪动画、Triggle类型的“pistolMove”用于切换成pistol相对应的动画组(包括手持手枪的站立动画和移动动画)、Triggle类型的“rifleMove”用于切换成rifle相对应的动画组(包括手持步枪的站立动画和移动动画)。

3.第三步点击选中“Any State”和“Pistol Movement”之间的过渡线,设置触发变量为Triggle类型的“pistolMove”。然后再选中“Any State”和“Rifle Movement”之间的过渡线,设置触发变量为“rifleMove”。

4.第四步双击打开子动画机“Base Movement”,接着把角色的普通站立动画和移动动画拖拉到子动画机上。为站立和移动动画创建过渡线,并设置触发变量“Run”(“站立”过渡到“移动”,变量“Run”为true,反之变量“Run”为false)。最后去掉“Has Exit Time”的勾选,因为移动需要实时进行。

5.第五步同理双击打开子动画机“Pistol Movement”,然后把手枪的站立和移动动画拖拉到子动画机中,再创建站立动画和移动动画的过渡线,并选中过渡线,在右侧栏中,设置触发变量“Run”(“站立”->“移动”,变量“Run”为true,反之变量“Run”为false),最后去掉“Has Exit Time”的勾选。

6.第六步同理配置步枪子动画机。如下图:

四.创建和配置武器图层

1.点击动画器,选择“Layers”页签,点击页签下的“+”号,添加一个手枪的动画图层(我这里命名为“Pistol Layers”)。接着在图层内点击鼠标右键,选择“Create”,点击“Empty”,创建一个空动画(该空动画的目的是让拔枪动画不是在切换图层时就播放,并且避免循环播放拔枪)。

2.接着把拔枪动画拖拉到动画器上,然后创建过渡线连接“Any State”和“拔枪动画”。点击该过渡线,在右侧栏中设置触发变量为Trigger类型的“grab”变量。最后去掉“Has Exit Time”的勾选,随时可以进行拔枪操作。

3.最后在“拔枪动画”和“空动画”之间创建一条过渡线,让拔枪后回到“空动画”循环播放,形成闭环。要注意这里的“Has Exit Time”需要勾上,因为需要等待拔枪动画完成后,再过渡。然后点击“Setting”,设置过渡时间为“1”秒,让拔枪动画更平滑过渡到空动画。

4.同理创建步枪的动画图层和配置,如下图:

5.在 Unity 的“Projects”面板中,点击鼠标右键,选择“Create”,点击“Avatar Mask”创建一个遮罩(我这边把Avatar Mask的名称命名为“UpperBody”)。

6.选中创建完成后的Avatar Mask,在右侧的面板中,点击展开“Humanoid”选项,把“人物”中的下身全部点击禁用掉。

7.点击动画器,选中“Layers”页签,点击手枪图层右边的“小齿轮”打开图层设置,把权重Weight设置为0,把遮罩Avatar Mask添加到图层中,表示该图层只对人物上身有效果。再勾选上“IK Pass”,使图层执行OnAnimatorIK方法。(步枪图层设置同理,如下图)

五.测试与运行

亲测过程:完成的切换武器效果。

http://www.dtcms.com/a/360336.html

相关文章:

  • IAR 用JLINK 下载代码设置步骤
  • FLEXPART 拉格朗日粒子扩散模式建模技术及研究大气污染物源-汇关系中的实践
  • 订餐后台管理系统-day06菜品分类模块
  • 工业软件领域SAAS模式为何不能得到普及?
  • 上海交大具身导航中的感知智能、社会智能和运动智能全面综述
  • 网络端口与服务对应表 - 白帽子安全参考指南
  • Android开发-设计规范
  • 安装proteus,并实现stm32仿真
  • 当 AI 开始 “筛选” 信息:算法偏见会加剧认知鸿沟吗?如何构建公平的 AI 生态?
  • 深入解析 Oracle 并发与锁机制:高并发环境下的数据一致性之道
  • Log File Sync等待事件分析
  • linux日志同步
  • strtok()字符串分隔函数
  • OpenStack 01:介绍
  • Batch Normalization 批归一化
  • 实现自己的AI视频监控系统-第三章-信息的推送与共享1
  • AI辅助编程日记和chat历史开源Series 1:VSCode + GitHub Copilot 自动下载及安装软件
  • 大模型训练全流程
  • 在deepseek v3.1上加自信度参数的外挂方案,plugin,朝向一步一步
  • [光学原理与应用-361]:ZEMAX - 分析 - 像差分析
  • Win32学习笔记 | recv函数
  • MVC架构模式
  • XXL-JOB任务执行The access token is wrong问题分析解决及原理源码解析
  • 【Linux】linux进程 vs 线程
  • 《WINDOWS 环境下32位汇编语言程序设计》第9章 通用控件(2)
  • Modbus CRC16校验码在线计算器
  • Python训练营打卡Day49-神经网络调参指南
  • 大模型参数量与计算量(FLOPs)估算方法
  • [WUSTCTF2020]B@se1
  • 后向投影合成孔径辐射源定位方法(一)