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 ...
随机推荐
- update_base_x.txt
update g_temp.test_baseset field_date = '20210101'::datewhere field_int = 6
- ServiceEntry与WorkloadEntry
ServiceEntry: 用于将未能自动添加至网格中的服务,以手形式使得内发 现机制能够访问或路由到这些服务.网格外部的服务 运行于 Kubernetes 上,但却非为 Istio 网格 ...
- 【SHELL】记一个没啥用的脚本
因为最近Terraria更新了嘛,然后又想开服了,但是捏,我原来的UbuntuServer系统因为没有界面,而且我新购置了一台3D打印机,需要软件界面去操作,所以原先的系统就格了,重装win10,然后 ...
- 阿里云ECS部署单机kafka 并对外提供服务(带认证)
1. zk配置(单机) zoo.cfg tickTime=2000initLimit=10syncLimit=5dataLogDir=/data/zookeeper/log/dataDir=/data ...
- 【git】3.4 git分支-分支开发工作流
资料来源 (1) https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E5%BC%80%E5%8F%91% ...
- window操作
1.进入目录 cd ... 2. 进入D盘 D: 3.读取文件内容 type file
- mysql redis 开启远程访问
springboot 加载外部yml nohup java -jar warehouse-0.0.1-SNAPSHOT.jar --Dspring.config.location=/root/www/ ...
- 为什么要有jvm,jvm的作用?
jvm的两个作用:第一.运行并管理java源码文件所生成的Class文件.第二.在不同的操作系统上安装不同的jvm,从而去实现跨平台的一个保障. 一般情况下,即使不熟悉jvm的运行机制,也不影响业务代 ...
- 使用Visual Studio工具将ActiveX控件的COM类库转换为窗体控件
1:转换目的 Windows窗体只能继承Windows 窗体控件.如果要承载ActiveX控件,必须生成AxHost派生的包装器控件. 在使用WPF呈现ActiveX控件的时候,需要将com类库(oc ...
- Npoi.Mapper 日期转换
问题:Excel文档里有一些列是日期类型的数据,使用Mapper默认的转换,发现生成的实体,在有的系统环境下能正常转换,但是在有的系统环境下,转换的日期出现中文. 猜想是Excel文档里,日期列的单元 ...