最终实现的效果如下:
教程时间:2021年12月29日
教程版本:Unity 2020.3
上一篇,我们已经完成了一个简约的人物持枪,但是,这样的效果和操作让我们无法接收的,所以,我们继续优化,我们今天将实现精细的手持武器
第一步,在PlayerPerfab 下,新建一个空物体:Rig_HandIK
1. 然后,在 Rig_HandIK 下,新建2个空物体:LeftHandIK 和 RIghtHandIK
2.给 Rig_HandIK 添加组件: Rig
3. 给LeftHandIK 和 RIghtHandIK 添加组件:Two Bone IK Constraint
我们把人物的胳膊,小胳膊,手腕,赋给 Root,Mid,Tip(LeftHandIK RIghtHandIK 都需要,只不过是不同手而已)
拖入的骨骼位置
4.我们在WeaponHolder下新建2个空物体:RightHandIK 和 LeftHandIK
5.然后,我们将 WeaponHolder 下的 RightHandIK 拖入到 Rig_HandIK 下的RightHandIK 的 Two Bone IK组件的Source Object 的Target上
6.我们现在选中 WeaponHolder 下的 RightHandIK ,在视图窗口中,将坐标轴移动到右手应该握住的位置,再将 WeaponHolder 的LeftHandIK 的坐标移动到左右应该握住的位置
7.我们打开PlayerPerfab ,将 Rig_HandIK 拖入到Rig Layer上,运行
第二步,开始精细优化
1.运行后,我们发现,手指手掌特别扭曲,这时候,我们通过旋转位移来调整手掌的握住方式,然后复制transform,停止运行游戏,粘贴transform即可
此时,再次运行游戏,应该持枪效果就好很多了!
第三步, 绑定肩膀和武器的运动同步
很简单,给WeaponPose添加组件:Multi- Position-Constaint再次运行游戏,肩膀和武器应该就同时运动了
如果你觉得枪的位置和真实情况有不同,可以调整 上图中的Settings上的Offset来设置,比如我的枪托进身体了,我就调整Z轴,让枪托出来一点
接下来就是精彩的部分了
END