首页 理论教育 实现地面群体移动的特殊多点目标

实现地面群体移动的特殊多点目标

时间:2024-10-05 理论教育 版权反馈
【摘要】:实现粒子在地面上群体移动需要利用两个目标属性:goalU和goalV属性。接下来就要让粒子沿着面运动了:为粒子添加goalU和goalV属性(通过添加和设置预先确定的跟踪粒子物体形状节点的goalU和goalV属性,用户可使粒子更加直接和均衡地向表面运动。那么goalU和goalV就意味着这个面上的点的坐标,所以粒子其实是被吸附到这些坐标上去的。

实现地面群体移动的特殊多点目标

第三节 特殊多点目标

对于群集动画的概念,相信大家都不陌生。我们看到指环王中成千上万的士兵排山倒海的在起伏的山脉上,像瀑布一样的从屏幕上掠过,一定有被震撼到。这种效果使用粒子目标很容易实现,当然了最终要用士兵替换粒子。

实现粒子在地面上群体移动需要利用两个目标属性:goalU和goalV属性。

下面就用实践来学习这两个属性:新建一个场景,制作一个起伏的地面(注意一定要使用NURBS建造,因为只有NURBS才有UV方向,显示UV方向):

接下来就是要让粒子在面上“奔跑”起来,在场景里面添加一个粒子发射器(使用默认选项),然后将面作为粒子的目标体。

默认情况下,粒子是直接在曲线的编辑点上。

接下来就要让粒子沿着面运动了:为粒子添加goalU和goalV属性(通过添加和设置预先确定的跟踪粒子物体形状节点的goalU和goalV属性,用户可使粒子更加直接和均衡地向表面运动。这些粒子属性设置粒子在NURBS表面受吸引的精确位置。)

在粒子的PerParticle属性面板单击General按钮,添加粒子属性

在添加属性窗口里选择goalU和goalV属性,然后选择Add按钮,粒子的goalU和goalV属性将会自动添加到PerParticle属性面板里面

再观察场景里面的粒子,发现所有的粒子都集中到了曲面的uv等于0,0的位置。

这也就意味着我们可以通过对goalU和goalV属性的单独控制来制造一种类似瀑布的效果,也就是粒子从一头“狂泻”到另一头。

那么观察这个场景,曲面的v方向是绿色的方向,我们希望在这个方向粒子是随机出现的,然后沿着u方向也就是红色方向在曲面上运动。

如何实现上面的语言描述呢?当然使用表达式了,首先我们要确定一个概念:那就是U和V的最大值是1,最小值是0。所以要让粒子在绿色V方向上随机出现,只需要一个CreationExpression(因为我们只是让粒子在u方向运动,v方向只是在粒子产生的时候定下来就可以了)。

只需要一个简单的使用随机值particleShape1.goalV=rand(1);就可以搞定了。

添加表达式:(www.xing528.com)

效果如下:

已经可以看到粒子在v方向随机的出现了,整齐的一排士兵已经就位了,剩下的工作就是让这些士兵“跑起来”了,当然是控制粒子的goalU属性了:

我们接着需要为particleShape1.goalU赋值,需要一个随着粒子年龄的增加返回从0~1的值,那么就是粒子出生的时候在U等于0的位置(也就是现在的位置),粒子死亡的时候在V等于1的位置(也就是对面的底边上),很容易就让我们想到Ramp了,不是么?那么我们就为goalU属性添加Ramp:

在goalU属性的后面,用鼠标右键单击,在弹出菜单里面选择CreatRamp,自动的一个Ramp就赋值给了这个属性,并且自动与粒子生命周期联系上了。

看看场景里怎么样了:

有两个问题不尽如人意:

第一,粒子移动的方向反了;

第二,粒子移动的速度太快了。

接下来我们就解决这两个小问题,首先是粒子的方向反了当然是Ramp的值反了,我们只要重新调整Ramp的颜色结构就可以了:

方向问题解决了,接下来是粒子的速度问题了,粒子的速度是由两个属性决定的,一个是Ramp,一个就是Lifespan,因为Ramp的返回值是随着粒子的年龄增加而返回从下至上的颜色(<<R,G,B>>)值的,所以粒子的速度过快一定是粒子的Lifespan设置得过低了,因为默认的Lifespan会被设置成1,也就是只用了1秒钟粒子从这头到那头然后死亡了,我们把它调整一下:

我们将Lifespan设置成含有Random(随机)的,这样粒子在前进的时候就会有快有慢了,而且随着地势的起伏而起伏,非常有气势。

粒子的goalU和goalV是怎么工作的?

Nurbs曲面有一个非常特殊的属性就是UV这两个属性就好像数学上的平面坐标,可以在画面中看到,红色是U绿色是V,就如同坐标里面的X和Y,那么整个曲面就变成了平面坐标的面了,只是这个坐标的最大值是1,最小值是0而已。

那么goalU和goalV就意味着这个面上的点的坐标,所以粒子其实是被吸附到这些坐标上去的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈