UE5农场项目小功能(1)-砍树
砍树功能效果的实现
在UE中想做一个砍树的功能,B站上没找到什么教程,最后在油管上找到个视频并跟着实现了,一共设计到三个蓝图和一个什么也没写的蓝图接口,下面介绍下步骤。
1.角色蓝图的部分
人物这里我做的是按F挥动手上的斧头攻击树,最后树的倒下。蓝图如下:

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


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

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

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


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


事件蓝图的部分没啥好讲的,也就一个bIsUseAxe布尔变量是新建的。
2.动画蓝图部分
突然想起来人物砍树是有动画的。大家根据自己的来,这里仅供参考。

点进ChopTreeMachine状态机后:

继续进入节点:

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

事件部分:

3.斧子蓝图的部分
砍树得有斧子,来看看斧子怎么做的

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


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

后面的在位置处生成音效就是生成一个砍木头的声音,这个我自己随意找的,你们随便找个或者不要这个节点都行。
4.树蓝图的部分
它之前是一颗健壮的树,直到我把它拖到blender里砍成了三段。而为什么要变成三段可以看看最下面放的油管教程链接。我只能说是必要的。

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

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


所有事情处理完后再销毁自己。
UE5农场项目小功能(1)-砍树的更多相关文章
- XJOI 夏令营501-511NOIP训练14 砍树(2)
小A是小B家的园丁.小B的家里有n棵树,第i棵树的横坐标为i.一天,小B交给小A一个任务,让他降低自己家中的某些树木的高度.这个任务对小A来说十分简单,因为他有一把极其锋利的斧头和一门独门砍树秘籍,能 ...
- 牛客挑战赛30 小G砍树 树形dp
小G砍树 dfs两次, dp出每个点作为最后一个点的方案数. #include<bits/stdc++.h> #define LL long long #define fi first # ...
- 用MVC5+EF6+WebApi 做一个小功能(三) 项目搭建
一般一个项目开始之前都会有启动会,需求交底等等,其中会有一个环节,大讲特讲项目的意义,然后取一个高大上的项目名字,咱这是一个小功能谈不上项目,但是名字不能太小气了.好吧,就叫Trump吧.没有任何含义 ...
- 1369 xth 砍树
1369 xth 砍树 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 在一个凉爽的夏夜,xth 和 ...
- JS实现项目查找功能
又是好久没有更新文章了,技术差,人又懒是重罪啊!! 在工作中每天都要查找目前正在接手的项目,而如果项目一多起来怎么办呢? 最近主管突然说要找一下以前的项目改一点BUG,然后我就找了半天才找到对应的文件 ...
- wikioi1369 xth 砍树
题目描述 Description 在一个凉爽的夏夜,xth 和 rabbit 来到花园里砍树.为啥米要砍树呢?是这样滴, 小菜儿的儿子窄森要出生了.Xth这个做伯伯的自然要做点什么.于是他决定带着 r ...
- C#、Java中的一些小功能点总结(持续更新......)
前言:在项目中,有时候一些小的功能点,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小功能点,以备用,并持续更新...... 1.禁用DataGrid ...
- [经验共享] MapGIS实用小功能图解——由excel文件导成MapGIS点文件
项目小组的几个成员都是学地下水和环境的,对于GIS懂得不是很多,于是把一些我们经常用到的mapgis实用小功能做成帮助文档,方便大家使用,发布共享! 1.整理好EXCEL文件(注意X,Y坐标的正确性( ...
- 有些有IP的项目,公司不至于测试不行砍项目,但是会砍项目组,把IP收回交给别的团队做(因为一旦一测数据太差,公司(投资人)会判断在二测的时候数据能提升到什么样。说白了就是历史信用问题)
作者:匿名用户链接:https://www.zhihu.com/question/309778033/answer/579761064来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...
- xth 砍树(codevs 1369)
题目描述 Description 在一个凉爽的夏夜,xth 和 rabbit 来到花园里砍树.为啥米要砍树呢?是这样滴,小菜儿的儿子窄森要出生了.Xth这个做伯伯的自然要做点什么.于是他决定带着rab ...
随机推荐
- 《【转载】ChatGPT创始人,给我们上的8堂课》 回复
<[转载]ChatGPT创始人,给我们上的8堂课> https://tieba.baidu.com/p/8276644432
- BP神经网络及手工搭建神经网络
import pandas as pd import numpy as np import matplotlib.pyplot as plt def sigmoid(x): # 定义网络激活函数 re ...
- 怎么才能卸载inventor?完全彻底卸载删除干净inventor各种残留注册表和文件的方法和步骤
怎么才能卸载inventor?完全彻底卸载删除干净inventor各种残留注册表和文件的方法和步骤.如何卸载inventor呢?有很多同学想把inventor卸载后重新安装,但是发现inventor安 ...
- linux check folder files how many files
https://linuxhandbook.com/count-number-files/ tree -a
- fetchAllAssoc 小分析
这个函数出现在了两个地方 includes\database\database.inc line 2245 includes\database\prefetch.inc line 481 foreac ...
- yestoday once more
夏日的光为百叶窗所驯服,褪去了令人刺痛的热烈.yestoday once more~ 耳机里传来那熟悉的旋律,恍惚间仿佛回到了十五年前的那个午后,老式收音机里放着同样的歌曲,对面办公桌旁某个少年正惶恐 ...
- 可汗儿童版kids安卓版下载安装教程
可汗儿童版kids安卓版幼儿版下载安装教程 点击下面 http://vip.ho27.com/Khan.apk 备用下载链接 天翼网盘下载安装就行 https://cloud.189.cn/t/6RV ...
- 解决从PLSQL导出到CSV文件的时候提示 is not a valid date and time的问题
操作下面步骤的时候,报出[XXXXXis not a valid date and time]的错误 问题原因:以前嫌弃任务栏右下角的时间显示格式不好,手动手改了一下,导致Oracle的日期格式与现在 ...
- 在Vue中实现app拍照-选取本地图库-图片上传成功后预览
基于Vue和uni-app实现手机app的功能实现和打包.拍照功能和选取本地图片使用的是HTML5的API 实现. 我为测试这个功能使用node写了个本地服务器,对于手机调试,可以通过连接同一个无线网 ...
- RestTemplate 连接池最大链接数
原文链接:https://www.cnblogs.com/x-x-736880382/p/11591906.html 以前我们项目都是基于Apache HttpClient 连接池进行web 接口调用 ...