00:00
大家好,我是小郭,今天我们一起来探讨一下角色拔枪,关于拔枪的细节很多,我打算分三期的视频来分享。第一期我会告诉大家如何动态创建武器,实现拔枪的功能和动画。第二期我将会告诉大家如何把角色上身动画和下身动画分开,就是上身动画在播放拔枪、射击、换弹等动作时,下身仍然可以保持移动动画的播放。最后一期我会告诉大家如何使用IK。使角色持枪的双手更加贴合武器,显得更加平滑和真实。完整的拔枪代码已经上传到我的博客了,点击我的头像,博客地址就在我的个人简介那里。好,我们先看看如何实现拔枪功能和动画。我们打开UN,首先把所有的动画都变更为人形,然后改好名字。然后我们双击打开角色动画器,先把拔枪的动画拖拉到动画器上,然后点击左侧菜单有个新增的一个加号。
01:10
我们新增一个缺口的触发变量,我这里就命名为罐。接着我们需要创建过渡线,在任何状态下都可以触发拔枪的动画。我们点击过渡线。把这里的has time勾选去掉。然后为过渡线添加刚刚我们创建的变量grab。拔枪的动画播放完后,我们要让它回到idol。选中过渡线,这里的X time要保持勾选。因为我们需要等待拔枪动画完全播放后才回到idol的。这里我们还需要设置退出的时间,因为拔枪动画的幅度它是非常大的,所以我们希望它可以平滑的过渡到idol。所以我们点击setting,在这里的过渡时间我们设置长一点。
02:03
我这里就设置为1秒吧。设置完动画之后,重要的部分来了,我们切换回场景。选中我们的角色,我们要找到角色右手骨落的模型。接着,我们在右手骨络模型下创建一个空物体。我这里命名为yhan position.然后大家可以把这个空物体拖拉到角色的右手上。大家要注意啊,这个空物体它是非常重要的,我在第三期分享使用IK的时候也会用到这个空物体。然后我们需要创建武器,但我们首先需要拿到武器的位置和大小的参数。所以我们把武器拖拉到这个空物底下,先去确认一下武器的位置是否刚好在角色的手上。那如果不是的话,那大家就可以调一下位置啊这样子。
03:02
这里还有一个小小的技巧,我们可以在运行的状态下调整武器。好,大家都知道运行状下的参数它是不会保存的,所以我们可以点击transform,这里有3个小点点。然后选择copy,选择复制组件。然后退出运行的状态,然后我们再点击transform这里的3个点点选择粘贴组件的值,那就可以了。为武器找到合适的位置后,我们要记录一下它的圈参数,然后我们再把它删掉,那就可以了。好,双击打开脚本。除了动画器和角色控制器外,我们还需要声明两个变量,第一个变量是武器的预制体。第二个变量就是角色右手模型下的那个空物体。然后我们在大函数里面获取动画器和角色控制器。好,接着我们先不看update方法,我们一会儿再说。我们先来到create weapon的方法,这是我新开的一个方法,是用来实现动态创建武器的。
04:09
首先我们判断角色右手的空物体下是否存在武器,如果存在的话,就把这个旧的武器删掉。然后我们通过实例化的函数来动态创建武器。实例化的函数它有三个参数,第一个参数它是武器的预制体。第二个参数就是物体创造的位置。那我们把物武器创建的角色右手上的那个空物体给他,那就可以了。第3个identity,它的意思是代表创造出来的物体使用的是它本来的旋转方向,那这个我们就先不用管了。然后它下面的3句代码,就是刚刚大家调整武器的位置的那个参数。好,我们回过头来看看update的方法。
05:00
他当玩家按下空格键时,我们就播放拔枪的动画,然后这里我们需要使用一个remote函数来延迟执行创造武器的方法。为什么要这样做呢?它其实是可以配合动画的那个效果,就是当玩家按下空格键后,等拔枪的动画的人物的手放到后背的时候,我们才创建武器,让他看起来会更平顺一些。到这里代码就已经写完了,但还有最后的一个工作,我们要回到英语题,把脚本挂载到角色上,并且把武器的预制体和角色右手的空物体复制到脚本的变量上。好,我们运行来看看。在这里大家可以看到角色拔枪的时候腿还不会动,没关系,在下一期视频我将会分享给大家如何分开角色的上身动画和下身动画。我是小郭,期待大家的点赞关注我们下期见。
我来说两句