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

相关推荐
William_cl21 分钟前
C# ASP.NET 分层架构实战:BLL (Service) 业务层从入门到封神(规范 + 避坑)
架构·c#·asp.net
weixin_424294671 小时前
Unity 的Button Animator
unity·游戏引擎
拖孩1 小时前
我用 AI 搓了一个"比谁更持久"的微信小游戏,AI实现只用了一天,微信审核却用了一个月!!!
微信小程序·ai编程·游戏开发
non-action_pilgrim1 小时前
《小坦克大战小怪兽》小游戏实战四:基于 protoactor-go 的游戏服务器框架与状态持久化实战
服务器·游戏·golang
qq_454245032 小时前
图数据标准化与智能去重框架:设计与实现解析
数据结构·架构·c#·图论
UQ_rookie2 小时前
【Unity3D】在URP渲染管线下使用liltoon插件出现粉色无法渲染情况的解决方案
unity·游戏引擎·shader·urp·着色器·vrchat·liltoon
CSharp精选营2 小时前
C# 如何减少代码运行时间:7 个实战技巧
性能优化·c#·.net·技术干货·实战技巧
aqiu~13 小时前
VSCode编辑器用于Unity项目
vscode·unity
hhh3u3u3u15 小时前
Visual C++ 6.0中文版安装包下载教程及win11安装教程
java·c语言·开发语言·c++·python·c#·vc-1
加号315 小时前
【C#】实现沃德普线光控制器通信控制(附完整源码)
开发语言·c#