当前位置:职场发展 > 虚幻角色肢解

虚幻角色肢解

  • 发布:2023-09-17 15:07

想必大家玩游戏肯定有见过敌人被分解的血腥场面,头被砍掉了,手脚被砍掉了,然后狂飙血哈哈哈。

今天就带大家来实现个角色肢解的案例。

创建项目

首先创建一个第一人称模板项目

下载资源

打开mixamo网站,下载咱们需要的模型和动画。

首先登录,然后选择角色,搜索zombie,选择一个自己喜欢的僵尸吧。

模型下载完以后还需要下载几个动画。

idle动画

walk动画

crawl动画

sleep idle动画

好了,咱们需要的动画都下载好了。

Blender切割角色

打开Blender,删除默认的Cube,导入T-pos那个FBX。

进入编辑模式

使用切分工具

首先切割右手,然后导出。

然后按照这种方法分别切左手、左右脚和上半身。

导入资源

打开刚开始创建的虚幻项目,新建一个Zombie文件夹,然后在它里面创建Animations,Materials和Textures文件夹。

导入我们刚刚下载的模型和动画。

首先导入了那个T-pos模型

然后导入除sleep_idle的所有动画。

最后导入sleep_idle,这玩意需要旋转一下。

在Animations文件夹里面创建个Parts文件夹来存放部分的肢体。

打开僵尸的静态网格体以后会发现这玩意是透明的,咱们找到材质改一下。

把上面三个材质的混合模式都改为Masked。

这个时候僵尸就正常了

Character

创建一个Character类,命名为BP_Zombie。

打开BP_Zombie,把Mesh的静态网格体赋值为Body,然后添加左右手和脚。

放入场景看看效果。

使用动画看看效果

Construction Script

使用模块化角色

我们先给僵尸添加动画,之后再来设置BP_Zombie类。

动画混合

咱们创建两个动画混合,第一个是僵尸从Idle到Walk,还有一个就是Idle到Crawl。

动画蓝图

创建一个动画蓝图,命名为ABP_Zombie。

事件图表

打开创建的动画蓝图,首先就是使用Event Blueprint Initialize Animation获取僵尸。

Speed和Crawling都是通过僵尸角色类获取到的变量,控制着应该怎么播放动画。

动画图表

动画设置完了再来看Character。

Character

把刚刚创建设置好的动画蓝图给它赋值,这个时候运行就可以看见僵尸在Idle动画状态了。

在僵尸角色蓝图里面,

GetHitComponent函数主要功能是获取击中了僵尸那个部分。

DetachComponent自定义事件主要是肢解僵尸,如果打中的是脚还需要改变动画,把Crawling设置为True,动画蓝图那边还记得?会改变动画变为爬行。

OnProjectileHit自定义事件主要是判断是否打中肢解部分

下面这部分主要是控制僵尸朝着玩家运动(场景里面记得添加一个NavMeshBoundsVolume)。

子弹蓝图那边主要是调用OnProjectileHit。

注意Mesh设置一个整体的物理资产,然后Mesh和RL等4个组件都设置碰撞为Ragdoll了。

结尾

血腥的特效和音效就不加了,大家可以自己添加。

UE5Examples

相关文章