【Unity3D实例-功能-拔枪】角色拔枪(三)IK的使用-紧握武器

这篇文章是"角色拔枪"功能的末篇文章,我将向大家展示如何利用 Unity 强大的逆向运动学------IK技术,开发一个角色拔枪并紧握武器的功能案例。本文将详细介绍从动画配置到 IK 应用的全过程,以及如何通过IK技术,让角色的双手紧紧握住武器。如果大家还不清楚拔枪功能和分割上下身的功能可以参考我前两篇文章:

(1)首篇文章:如何实现动态创建武器和角色拔枪的动画,大家可以参考《【Unity3D实例-功能-拔枪】角色拔枪(一)动态创建武器》。

(2)次篇文章:如何分离角色的"上身动画"和"下身动画",使得上半身进行特定动作(诸如:拔枪、射击、换弹)时,下半身仍能持续执行移动动画的技巧,大家可以参考《【Unity3D实例-功能-拔枪】角色拔枪(二)分割上身和下身》。

目录:

1.安装Animation Rigging

2.为角色安装骨络

3.准备实现IK前的工作

4.编写IK的关键代码

5.完整的拔枪代码

6.测试和运行


一.安装Animation Rigging

点击 Unity 的"Package Manger"下拉框,选择"Unity Registry",然后在搜索框中输入"Animation Rigging",再点击"Install"按钮进行安装即可。

二.为角色安装骨络

选中角色,点击菜单栏中的"Animation Rigging",然后点击"Rig Setup"和"Bone Renderer Setup",为角色添加骨络。

三.准备实现IK前的工作

1.点击角色左手和右手的骨络,在右侧栏中可以看到骨络的定位,然后我们在角色的左手和右手的骨络下,分别创建一个空物体(我这里分别命名为"LeftHandPosition"和"RightHandPosition")。

2.接着把角色左手和右手下的空物体,在场景中分别拖拉到角色对应的左手和右手下。

3.点击动画控制器,选中"Layers"页签,选择上身的动画图层(如果不清楚该动画怎么来的小伙伴,可以去查看我上一篇文章《【Unity3D实例-功能-拔枪】角色拔枪(二)分割上身和下身》),点击图层右上角的"小齿轮",在弹出的窗口中,勾选上"IK Pass"。

四.编写IK的关键代码

1.IK的关键代码

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

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

2.编写完IK代码后,把角色左右手下的空物体和武器的预制体赋予给变量(记得把脚本挂载到角色上)。

3.接着大家可以在运行状态下,拖拉角色左右手下的空物体,调整角色的手部来紧紧握住武器。

五.完整的拔枪代码

1.在 "Assets" 文件夹中新建一个名为 "Scripts" 的文件夹(可以根据自己的喜好来命名),然后在该文件夹里创建一个 C# 脚本文件。并将它拖拉到角色上。

2.完整的拔枪代码

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

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

六.测试与运行

亲测过程:进入"Play Mode"。按下拔枪键,触发拔枪动画后。这时观察角色的手部位置可以紧紧贴着武器,角色移动时,手部也可以跟随武器和身形进行摆动。

相关推荐
北域码匠5 小时前
嵌入式限幅滤波:工业信号降噪利器
c#·传感器采集·数据预处理·嵌入式算法·限幅滤波·数字滤波·数据降噪
leoZ2315 小时前
Claude 全面解析:从基础原理到实战应用指南
人工智能·游戏
2501_943782358 小时前
【共创季稿事节】猜数字游戏:二分法思维与交互式反馈
前端·游戏·microsoft·harmonyos·鸿蒙·鸿蒙系统
吴梓穆10 小时前
untiy TextMeshPro (TMP) text 操作 中文字符集 字体材质操作(添加纹理 添加描边 添加阴影)
unity
SmalBox11 小时前
【节点】[IrisOffset节点]原理解析与实际应用
unity3d·游戏开发·图形学
星空露珠12 小时前
迷你世界UGc3.0脚本Wiki[剧情动画模块管理接口 Timeline]
开发语言·数据结构·算法·游戏·lua
yangmu320313 小时前
《星露谷物语》MOD配置与实战安装综合指南
游戏·游戏引擎·游戏程序
xcLeigh13 小时前
Unity基础:Game视图详解——游戏预览、分辨率模拟与性能显示
游戏·unity·游戏引擎·音频·视频·game·play模式
csdn_aspnet14 小时前
C# 提取、截取或匹配字符串内包含指定字符的一些方法分享
c#·字符串·正则·分割·提取·匹配
枳实-叶14 小时前
【Linux驱动开发】第23天:spi_driver 的 probe / remove 函数实现规范
linux·驱动开发·c#