【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"。按下拔枪键,触发拔枪动画后。这时观察角色的手部位置可以紧紧贴着武器,角色移动时,手部也可以跟随武器和身形进行摆动。

相关推荐
Rotion_深8 小时前
C# 对Bitmap 的一些处理方法,裁剪,压缩,旋转等
图像处理·c#
秋月的私语9 小时前
如何快速将当前的c#工程发布成单文件
android·java·c#
切糕师学AI12 小时前
在 C# 中,如何使 $““ 字符串支持换行
c#
小先生81215 小时前
.NET Core项目中 Serilog日志文件配置
c#·.netcore
雨落在了我的手上17 小时前
C语言趣味小游戏----猜数字小游戏
c语言·开发语言·游戏
大飞pkz17 小时前
【设计模式】迭代器模式
开发语言·设计模式·c#·迭代器模式
AndrewHZ17 小时前
【3D图像技术讨论】3A游戏场景重建实战指南:从数据采集到实时渲染的开源方案
人工智能·算法·游戏·3d·开源·llm·colmap
张人玉19 小时前
C# UDP 服务端与客户端2.0
单片机·udp·c#
小林up19 小时前
《Unity Shader入门精要》学习1:Phong 模型中法向量归一化的正确位置
学习·unity·游戏引擎
wanhengidc20 小时前
云手机在软件资源方面的优势
运维·服务器·网络·游戏·智能手机