[Unity]Curvy插件随机生成装饰物

Curvy插件在生成铁轨,公路,河流等方面确实很方便。教程之前参考了下面这篇教程(这个博主的教程主要囊括了官网****的前两部,第三部的Generator建议再看看视频,可以调出YouTube的字幕看一看)

https://blog.****.net/cordova/article/details/52215079

本文主要总结下Curvy中随机物体的生成方式(如路边杂草等)。因为实在是没有搜到相关教程,自己琢磨了好久。以插件中所附的Demo Scene21为例。

首先根据前面教程所讲,还是创建一个Generator,选Shape Extrusion的Template创建,并创建一个Spline赋值给它,选好Material.之后可以将多种随机生成物都在这同一个Generator下生成(如Scene21中的Track和Obstacles都在同一个Generator下生成).但是根据实际使用感觉该插件有bug,经常在同一个Generator下创建第二个Mesh的时候,第一个Mesh就无法再修改了.

首先来看Track,这里需要注意的是Track的VolumeMesh组件中勾选了Split(如下图),因此生成的Mesh是分段的。

[Unity]Curvy插件随机生成装饰物

此外,对生成物体的粗细控制,除了在InputSplinePath组件中一开始创建时设置Width外,还可以在Shape Extrusion组件中的Scale标签中修改Multiplier的曲线来控制。如下图。

[Unity]Curvy插件随机生成装饰物[Unity]Curvy插件随机生成装饰物

 

然后重点看Obstacles的生成, 对于Obstacles的生成过程分为如下几步:

1.创建一个InputMesh组件,然后在其中选择需要生成的随机装饰物的Mesh,并设置好Material和Transform信息.这里可以点+号拖入多个.

[Unity]Curvy插件随机生成装饰物

2.创建一个Volume Spots组件(而不是像Track一样使用默认的Volume Mesh组件).观察Scene21会发现,此组件需要ShapeExtrusion的Volume和InputMesh的V Mesh作为输入。用鼠标将对应的线连上。

[Unity]Curvy插件随机生成装饰物

之后选到第三个标签,在Items里添加想要随机的物体(如果在多个之间随机选择就在这里添加多个).然后关于随机生成,注意下面的Space Before和Space After,这两个是用来决定Mesh间距的,如果都为0的话Mesh就会密密麻麻地排满整条曲线.如图中Space Before填2,就是固定每个Mesh与前面的Mesh有2的间隔.然后SpaceAfter后面打了勾,填上5 To 60,意思是在本Mesh后面在随机5到60的范围后再生成下一个Mesh.

3.创建一个Create Mesh组件,同样观察Scene21可知分别将Input Mesh和VolumeSpots的输出与此组件的输入端连线.这个组件需要调整的部分不多,就不截图了。

通过以上三步,就生成了Spline旁的随机物体。

最后都修改完后需要在CreateMesh组件中Export到Scene,或者保存为Asset.

Demo Scene 21看明白以后,可以再看一看Demo Scene 25中是怎样进一步随机化生成铁轨旁物体的。