【Unity3D实例-功能-拔枪】角色拔枪(二)分割上身和下身

简介: 本文介绍如何在Unity3D中实现角色“上身动画”与“下身动画”的分离控制,使角色在执行拔枪、射击等动作时,下身可独立进行移动动画,提升游戏动画灵活性与玩家体验。内容包含创建动画器、配置动画、设置Avatar Mask等步骤,并附测试效果。后续将讲解IK使用,使角色持枪更自然。

4.png

今天是“角色拔枪”的第二篇文章,我将会告诉大家,如何实现角色的“上身动画”和“下身动画”分开,也就说上身执行拔枪、射击和换弹等动作,而下身则独立进行移动动画。这种分离式动画控制不仅增强了动画的灵活性,还为玩家带来更好的游戏体验。完整的拔枪功能:
(1)首篇文章:如何实现动态创建武器和角色拔枪的动画,大家可以参考《【Unity3D实例-功能-拔枪】角色拔枪(一)动态创建武器》。
(2)末篇文章:如何使用IK来让角色持枪的双手更加贴合武器,显得更加平滑而真实,大家可以参考《【Unity3D实例-功能-拔枪】角色拔枪(三)IK的使用-紧握武器》

目录:

1.创建动画器
2.配置拔枪动画
3.创建和设置Avatar Mask
4.Avatar Mask挂载到图层
5.测试和运行


一.创建动画器

在 Unity 的“项目”面板中,点击鼠标右键,在弹出的菜单中,接着选中“Create”,点击“Animator Controller”创建动画器,然后把动画器拖拉到角色上进行绑定。
585a0d71-a38a-46bb-b1b2-eb7dcf17a4f6.png

二.配置拔枪动画

1.(可选)第一步如果大家是按照我上一篇文章《【Unity3D实例-功能-拔枪】角色拔枪(一)动态创建武器》来配置拔枪动画的话,点击打开动画器,把拔枪的动画和过渡线删掉,我们重新设置动画。
7f2facff00d8f586c8e6cd240c27ac0d.png

2.第二步打开动画器,点击选择“Layers”面板。在面板中,点击“+”添加一个新的动画图层,我这里它命名为“Weapon Layer”,然后把“RifleIdle”(站立动画)和“GrabRifleFromBehind”(拔枪动画)拖拉到动画器的“Weapon Layer”的动画图层中。
0d9535406450d756a9aa03eeb0bf66e2.png

3.第三步我们选中“Weapon Layer”图层,我们点击“Any State”(任何状态下),右键选择“Make Transition”创建过渡线,我们需要把“Any State”的节点与“GrabGun”(拔枪动画)的节点通过过渡线连接起来,然后再把“GrabGun”(拔枪动画)和“Idle”(站立动画)也连接起来。
e5459516131e10821977a70dab2ff201.png

4.第四步在《【Unity3D实例-功能-拔枪】角色拔枪(一)动态创建武器》文章中,已经创建好了触发变量“grab”,如果没有创建的小伙伴。可以选择动画器中“Parameters”面板,点击“+”,添加一个Trigger的触发变量。
706171a7208d1aced9489402fd0f80fa.png

5.第五步选中“Any State”(站立动画)与“GrabGun”(拔枪动画)之间的过渡线,然后在右侧面板中,点击“Conditions”列表旁边的“+”按钮,在触发变量下拉框中选择“grab”变量,用于激活拔枪动画。记得取消勾选“Has Exit Time”,因为拔枪操作可以根据玩家输入随时触发。
9cf707b49e507b9b965eef8b6cc9ee5e.png

6.第六步选中“GrabGun”(拔枪动画)和“Idle”(站立动画)之间的过渡线,这里需要保持“Has Exit Time”的勾选状态是选中的,因为我们希望在拔枪动画完全播放结束后才进行过渡。接着点击“Settings”,将“Transition Duration”的过渡时长设置为1秒,使得拔枪动画结束后,角色能更平滑地切换到Idle站立状态。
2cab6dc6b14af55082c1bd90dd9a1515.png

三.创建和设置Avatar Mask

1.在 Unity 的“Projects”面板中,点击鼠标右键,在呼出的菜单中选择“Create”,点击“Avatar Mask”创建一个头像面具(我这边把Avatar Mask的名称命名为“UpperBody”)。
8e6ed72e04727137953273adaac45691.png

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

四.Avatar Mask挂载到图层

打开动画控制器,选择动画器的“Layers”面板,点击“Weapon Layer”动画面板旁边的“齿轮”按钮,打开Mask设置。接着需要把“Weight”权重调到1。再点击“Mask”选项,选择刚刚我们创建的Avatar Mask。
ccadb518fb8c6f6fbd5e2d6e7fc38899.png

五.测试与运行

亲测过程:进入 Play Mode 进行测试。当玩家按下拔枪键(我这里设置为“空格”键)触发拔枪动画时,同时按下WSAD角色移动按键,角色上身成功播放拔枪动画,下身仍然保持奔跑的动画。这时角色的手部位置还不能紧贴武器,没关系。在末篇文章《【Unity3D实例-功能-拔枪】角色拔枪(三)IK的使用-紧握武器》中,我将会分享给大家IK的使用。
1b548afd306b4e62ab25e5ca103b1bbc.gif

目录
相关文章
|
2月前
|
存储 SQL 大数据
告别 Count Distinct 慢查询:StarRocks 高效去重全攻略
在大数据分析中,去重计算(如 Count Distinct)因高计算开销常成为性能瓶颈,尤其在高基数和高并发场景下更为明显。本文以 StarRocks 为分析平台,深入探讨多种去重优化策略,包括使用函数、数据类型转换(如 String 转 Int)、高效数据结构(如 Bitmap 和 HLL),以及物化视图的预计算方案。通过实际案例分析,对比不同方法在性能、精度和易用性方面的优劣,帮助用户在不同业务场景下选择最合适的优化手段。此外,文章还详细解析了如何结合 SQL 查询构建物化视图,以提升去重计算效率,并讨论了精确与近似去重的适用场景。最终目标是为复杂数据分析提供高效、灵活的解决方案。
|
2月前
|
存储 算法 Sentinel
熔断降级
本内容介绍了微服务中熔断降级的实现原理及Sentinel的底层机制。通过OpenFeign集成Sentinel,利用断路器统计异常和慢请求比例,触发熔断并降级,提升系统稳定性。还讲解了Sentinel使用的限流算法,如滑动窗口、令牌桶和漏桶算法,以应对不同场景下的流量控制需求。
|
4月前
|
传感器 人工智能 IDE
通义灵码用户说 | 编程智能体+MCP加持,秒查附近蜜雪冰城
通义灵码现已全面支持Qwen3,新增智能体模式,具备自主决策、环境感知、工具使用等能力,可端到端完成编码任务。支持问答、文件编辑、智能体多模式自由切换,结合MCP工具与记忆功能,提升开发效率。AI IDE重构编程流程,让开发更智能高效。
489 20
|
2月前
|
机器学习/深度学习 人工智能 算法
AI 基础知识从 0.4 到 0.5—— 计算机视觉之光 CNN
本文系统回顾了计算机视觉的发展历程,从早期基于手工特征的传统方法,到深度学习的崛起与卷积神经网络(CNN)的广泛应用,并通过数学原理、代码示例与可视化手段,全面解析了卷积操作的本质与CNN的架构设计。
266 33
AI 基础知识从 0.4 到 0.5—— 计算机视觉之光 CNN
|
2月前
|
消息中间件 Java 测试技术
RocketMQ-5.3.1异常、原因汇总表
本简介汇总了常见的RocketMQ异常信息及其解决方案,涵盖主题配置、网络通信、SSL设置、权限控制、消息发送与消费等多个方面,帮助开发者快速定位和理解异常原因。
216 34
|
2月前
|
人工智能 自然语言处理 前端开发
用通义灵码渐进式开发 0->1 实现高考志愿规划项目题文档
0-1 完全通过自然语言交互 实现一个 AI 高考志愿填报系统,结合通义千问 AI 模型提供专业推荐。该项目旨在帮助高考学生和家长根据个人情况智能推荐合适的专业和学校,减少志愿填报的盲目性。
105 11
|
2月前
|
负载均衡 Java Nacos
微服务架构中的服务注册与发现流程
本内容介绍了微服务架构中的服务注册与发现流程,包括服务注册中心(如Nacos)、服务提供者和调用者的角色分工。服务启动时自动注册信息至注册中心,调用者通过客户端负载均衡(如Spring Cloud Loadbalancer)选取服务实例进行远程调用。同时,内容还讲解了OpenFeign的工作原理,其作为HTTP客户端集成负载均衡,通过接口定义、代理生成、请求发送与结果解析,实现服务间的高效通信。
|
4月前
|
人工智能 供应链 安全
实现企业级 MCP 服务统一管理和智能检索的实践
本文将深入剖析 MCP Server 的五种主流架构模式,并结合 Nacos 服务治理框架,为企业级 MCP 部署提供实用指南。
999 63
|
2月前
|
C# 图形学 开发者
【Unity3D实例-功能-移动】角色行走和奔跑的相互切换
本文介绍了如何在Unity中实现角色行走与奔跑的切换功能,涵盖动画器创建、动画设置、角色移动代码编写及测试运行,帮助开发者提升角色移动的灵活性与操作体验。
74 0