ue4植被foliage漂浮问题

时间:2022-05-06 04:31:06

当项目有很大地形的时候,我们有时候在刷地形很容易遇到一个问题

就是刷完植被后,再刷地形突然发现植被不跟着地形走了,或者干脆飞天了,亦或者删不掉

好像地形没法影响植被了,这个其实很大程度上可能是在项目合作过程中地形位置变动了

或者植被位置别错误移动造成的,当多个人编辑一个地形的时候问题会更突出

(测试版本4.16)


可以看这里
https://answers.unrealengine.com/questions/161217/when-deforming-the-terrain-foliage-wont-apply-to-i.html
https://answers.unrealengine.com/questions/390774/floating-landscape-grass.html
可以看到好几个版本都有问题(包括到4.18都有这种问题)
都没有具体解决这个问题
然后大部分人的做法通常都是删除,重新刷,浪费大量时间
当然也有选中后往下移动的,但是都不方便

ue4植被foliage漂浮问题

然后通过查找发现有人通过下面命令解决了问题

RemoveLandscapeXYOffsets  移除地形的偏移,但是发现这个命令代码提示也没有(包括4.16或者4.18)
然后grass.flushcache 没有效果

foliage.OffGroundThreshold 5 也没有任何效果(但是这个给了我提示,虽然设置任意大的值没有效果,但是这个肯定在ue内容有值让超出的植物不在起作用,然后结合下面的功能才最终发现了更稳妥的解决方法)


我使用的解决方案

ue4植被foliage漂浮问题

植被系统上有的select invalid功能
这个功能就是选中已经失效,不再随着地形变换位置的植物
那为什么植物会不随着地形变化位置呢

因为有地形移动,或者植物被整体选中后错误移动了

可以选中植物使用end 键,让植物落下地面(之前应该把植物拉得脱离地面足够高,不要碰到地面)

落下后的植物就恢复正常了,可以试试select invalid也不会选中些植物了

而且之后可以随着地形变换了,记得如果很多植物不要一起操作,会卡崩溃,最好用套索工具一簇簇的选

参考网址

https://forums.unrealengine.com/development-discussion/content-creation/112393-invalid-foliage
https://answers.unrealengine.com/questions/161217/when-deforming-the-terrain-foliage-wont-apply-to-i.html



还有好多人问我怎么复制植物到另外一个关卡中

其实如果你不是刷地形上的话是很好复制的,只要复制同一个物体就行了

但是如果是刷在地形上的估计要困难点


首先创建地形会在大纲产生两个内容如下

ue4植被foliage漂浮问题

关于Landscape Gizmos 这个随着地形一起创建的,主要用来复制地形高度信息到地形的另一个部分

https://docs.unrealengine.com/en-us/Engine/Landscape/Editing/Gizmos

而刷的植物则不会出现在大纲里

如果想要复制InstancedFoliageActor 也没有内置的方法
但像植被刷到其他物体上一样,信息是存储在物体本身上的,可以通过ctrl c复制出来
直接复制地形本身,不过这个里面因为数据量很大,非常难处理,还会引起崩溃
理论上可以制作一个筛选工具用于复制地形上特定的植被

ue4植被foliage漂浮问题

当然还要保证素材目录是相同的


AInstancedFoliageActor关于这个就是植物本身的信息

ue4植被foliage漂浮问题

另外这里有api文档可以具体了解下
api.unrealengine.com/INT/API/Runtime/Foliage/AInstancedFoliageActor/index.html