砍树功能效果的实现

​ 在UE中想做一个砍树的功能,B站上没找到什么教程,最后在油管上找到个视频并跟着实现了,一共设计到三个蓝图和一个什么也没写的蓝图接口,下面介绍下步骤。

1.角色蓝图的部分

人物这里我做的是按F挥动手上的斧头攻击树,最后树的倒下。蓝图如下:

砍树射线追踪蓝图节点是个自定义节点:

节点中要新建一个局部变量“被射线扫描到的树” ,是个Actor类型的数组变量。

此处是否实现接口 的意义是,自己建的一个空蓝图接口,里面就改了函数名,其他啥也没,主要用这个接口来判断某个类是否属于某一类物体。

查找最近的树节点也是个自定义节点。其中有三个局部变量,如图

查找最近的树节点完毕,下面这张还是角色部分剩余的蓝图节点。

事件蓝图的部分没啥好讲的,也就一个bIsUseAxe布尔变量是新建的。

2.动画蓝图部分

突然想起来人物砍树是有动画的。大家根据自己的来,这里仅供参考。

点进ChopTreeMachine状态机后:

继续进入节点:

用的一个从Maximo下载的动画,用RTG重定向到了自己角色的身上,你们可以自己找个舒服的劈砍动画用。在轨道中添加了两个事件,左边是开启判断造成伤害的通知,右边的是关闭。这两个通知在动画蓝图的事件部分实现,在角色蓝图的部分中使用。

事件部分:

3.斧子蓝图的部分

砍树得有斧子,来看看斧子怎么做的

这是斧子蓝图,找一个斧子的模型加进去,再附加一个盒体碰撞进去,调整盒体碰撞至盒子的大小,这个盒子就是用来判断是否和树发生碰撞的关键。然后给盒体添加一个组件开始重叠时的事件。

后面那个deal damage事件是BPI_Tree蓝图接口的,是在树的蓝图中实现的,后面会有截图。这里 在位置处生成发射器 生成的是一个贴花效果,我想要斧子砍到树上的时候,产生木屑飞溅的效果,我用的资产包是商城中免费的,下面标红的就是商城中的资产名称,记得把横线去掉。

后面的在位置处生成音效就是生成一个砍木头的声音,这个我自己随意找的,你们随便找个或者不要这个节点都行。

4.树蓝图的部分

它之前是一颗健壮的树,直到我把它拖到blender里砍成了三段。而为什么要变成三段可以看看最下面放的油管教程链接。我只能说是必要的。

下面是蓝图接口事件deal damage的部分,以及蓝图一开始先设定血量,这里我设定的是100,而下面的伤害是110,也就是说一斧子就能把树砍倒,怎么让树倒呢,这时开启树干部分的模拟物理就行了。同时给树干施加一个和角色同向向前的作用力保证树不会砸着角色。而树冠是附加在树干上的,就会一起跟着倒。

后面有个生成节点,我做的效果是树倒后过四秒,树的模型部分会消失,然后生成四个木材蓝图,就像爆装备一样的效果。之所以加这么多随机位置和随机朝向是为了防止都生成在一个位置,各物品受到挤压从而发生寒霜航空。

所有事情处理完后再销毁自己。

UE5农场项目小功能(1)-砍树的更多相关文章

  1. XJOI 夏令营501-511NOIP训练14 砍树(2)

    小A是小B家的园丁.小B的家里有n棵树,第i棵树的横坐标为i.一天,小B交给小A一个任务,让他降低自己家中的某些树木的高度.这个任务对小A来说十分简单,因为他有一把极其锋利的斧头和一门独门砍树秘籍,能 ...

  2. 牛客挑战赛30 小G砍树 树形dp

    小G砍树 dfs两次, dp出每个点作为最后一个点的方案数. #include<bits/stdc++.h> #define LL long long #define fi first # ...

  3. 用MVC5+EF6+WebApi 做一个小功能(三) 项目搭建

    一般一个项目开始之前都会有启动会,需求交底等等,其中会有一个环节,大讲特讲项目的意义,然后取一个高大上的项目名字,咱这是一个小功能谈不上项目,但是名字不能太小气了.好吧,就叫Trump吧.没有任何含义 ...

  4. 1369 xth 砍树

    1369 xth 砍树  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解       题目描述 Description 在一个凉爽的夏夜,xth 和 ...

  5. JS实现项目查找功能

    又是好久没有更新文章了,技术差,人又懒是重罪啊!! 在工作中每天都要查找目前正在接手的项目,而如果项目一多起来怎么办呢? 最近主管突然说要找一下以前的项目改一点BUG,然后我就找了半天才找到对应的文件 ...

  6. wikioi1369 xth 砍树

    题目描述 Description 在一个凉爽的夏夜,xth 和 rabbit 来到花园里砍树.为啥米要砍树呢?是这样滴, 小菜儿的儿子窄森要出生了.Xth这个做伯伯的自然要做点什么.于是他决定带着 r ...

  7. C#、Java中的一些小功能点总结(持续更新......)

    前言:在项目中,有时候一些小的功能点,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小功能点,以备用,并持续更新...... 1.禁用DataGrid ...

  8. [经验共享] MapGIS实用小功能图解——由excel文件导成MapGIS点文件

    项目小组的几个成员都是学地下水和环境的,对于GIS懂得不是很多,于是把一些我们经常用到的mapgis实用小功能做成帮助文档,方便大家使用,发布共享! 1.整理好EXCEL文件(注意X,Y坐标的正确性( ...

  9. 有些有IP的项目,公司不至于测试不行砍项目,但是会砍项目组,把IP收回交给别的团队做(因为一旦一测数据太差,公司(投资人)会判断在二测的时候数据能提升到什么样。说白了就是历史信用问题)

    作者:匿名用户链接:https://www.zhihu.com/question/309778033/answer/579761064来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  10. xth 砍树(codevs 1369)

    题目描述 Description 在一个凉爽的夏夜,xth 和 rabbit 来到花园里砍树.为啥米要砍树呢?是这样滴,小菜儿的儿子窄森要出生了.Xth这个做伯伯的自然要做点什么.于是他决定带着rab ...

随机推荐

  1. MCU构成及其运行原理

    MCU构成及其运行原理 1. MCU概念 MCU,微控制单元(Microcontroller Unit) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中 ...

  2. 尝试在virtualbox虚拟机中fedora30中实现文件夹共享

    $ sudo dnf install gcc kernel-devel kernel-headers dkms make bzip2 perl $ rpm -qa|grep kernel|sort 确 ...

  3. 详解 C++ 左值、右值、左值引用以及右值引用

    一.左值和右值 1.左值 [可以取地址的对象就是左值] 左值是一个表示数据的表达式,比如:变量名.解引用的指针变量.一般地,我们可以获取它的地址和对它赋值,但被 const 修饰后的左值,不能给它赋值 ...

  4. ELKF搭建

    logstash cat /etc/logstash/logstash.yml |grep -v '#'path.data: /data/logstash/datapipeline.ordered: ...

  5. 《Python深度学习》《卷积神经网络的可视化》精读

    对于大多数深度学习模型,模型学到的表示都难以用人类可以理解的方式提取和呈现.但对于卷积神经网络来说,我们可以很容易第提取模型学习到的表示形式,并以此加深对卷积神经网络模型运作原理的理解. 这篇文章的内 ...

  6. <<运算?&=、|=、 ^=、<<=、>>=的意思? 十六进制前缀是 0x。

    <<运算? a<<b 表示把a转为二进制后左移b位(在后面添加 b个0).例如100的二进制表示为1100100,100左移2位后(后面加2个零):1100100<< ...

  7. Centos7 更换yum软件源

    https://blog.csdn.net/zhinian1204/article/details/123975403

  8. object-fit: cover;

    加上之后,改变宽高,图片还是原来的比例 没加上的话,改变宽高,图片会跟着伸缩变形.

  9. Web Uploader上传文件

    Web Uploader是百度提供的. 1:下载:http://fex.baidu.com/webuploader/(官方下载/示例) 2:使用Web Uploader文件上传需要引入三种资源:JS, ...

  10. Oracle修改查询优化器版本

    查询优化器参数optimizer_features_enable 在每个数据库版本中,Oracle都会在查询优化器中引入或启用新的特性. 如果在升级到一个新的版本后希望保留查询优化器的行为,可以通过设 ...