首页 百科知识 使用粒子制作摩擦时的火星

使用粒子制作摩擦时的火星

时间:2022-10-16 百科知识 版权反馈
【摘要】:1.需要将飞机变成主动刚体并且为飞机添加在X轴上的速度使得飞机沿着X轴“飞行”。然后为飞机模型添加重力场,这样飞机就会一面飞行一面向下落。制作这个效果,使用粒子碰撞然后制造粒子碰撞事件发出粒子火花,这个方法是很不错的。接下来就是把外面的模型变成柔体,使用菜单命令Soft\RigidBodies→CreateSoftBody:所以,选择柔体粒子,同时选中地面模型,使用菜单命令Particles→MakeCollide使得柔体粒子与地面产生碰撞。为碰撞地面的柔体粒子制造碰撞事件,产生火星。

第二节 使用Point粒子制作摩擦时的火星

在这一节,我们使用Point粒子来制作一个飞机迫降时候,机身与地面发生摩擦时发出剧烈火化的特效。

首先是制作一个飞机:

img851

然后制作一个起伏的地形,我们不准备让飞机降落在跑道上,而是在起伏不平的地面上:

img852

请注意飞机的自身坐标轴和世界坐标轴的情况,飞机的模型的机头方向指向世界坐标轴的X轴方向,并且机头方向也是飞机自己的X轴方向。

接下来,我们要制作飞机坠落在地上摩擦最终停止的动画。

这里我们使用动力学来模拟取代手动调整关键帧的工作:

操作步骤是:

1.需要将飞机变成主动刚体(ActiveRigidBody)并且为飞机添加在X轴上的速度使得飞机沿着X轴“飞行”。

2.然后,将地面变成被动刚体(PassiveRigidBody)。

3.最后为飞机添加重力场,于是飞机下落和地面产生摩擦。

先选择飞机模型使用菜单命令Soft\RigidBody→ActiveRigidBody将飞机变成主动刚体:

img853

img854

其中的InitialVelociity是初始速度,有了这个速度飞机就会沿着X轴飞行了。然后为飞机模型添加重力场,这样飞机就会一面飞行一面向下落。

img855

接下来,选择地面使用菜单命令Soft\RigidBody→PassiveRigidBody将地面变成被动刚体,于是下落的飞机就会和地面发生碰撞了。

img856

img857

最后将飞机模型和地面来开一定的距离,点击播放按钮,察看动画:

img858

img859

img860

通过反复调整地面的飞机的位置关系,最后产生满意的动画以后,我们就需要将动力学解析转换成为关键帧动画了,这个过程称之为:“烘焙关键帧”。

使用菜单命令Edit→Keys→BakeSimulation就能够将任何动画转换成关键帧动画了。

选择飞机,使用菜单命令Edit→Keys→BakeSimulation:

img861

img862

经过一段时间的运算,200帧的动画就做好了,这时候就可以将动力学删除,飞机模型由于已经被关键帧控制,所以就不再受动力学的影响了。

img863

动画制作不是本书的重点,所以就不多做负累了,接下去就是制作碰撞时候的摩擦和火星了。

既然是碰撞时候擦出火花,那么就应该有碰撞、同时碰撞的地方有Point粒子释放出来。

制作这个效果,使用粒子碰撞(Colition)然后制造粒子碰撞事件(ColitionEvent)发出粒子火花,这个方法是很不错的。

所以,选择飞机模型,复制出一个新的模型,选择新模型的所有的面,使用菜单命令EditPolygon→Extrudeface将模型变大一圈(如果使用缩放工具并不能产生理想的效果):

img864

然后将放大的模型变成原来模型的子物体,并且打断该模型的材质的连接:

img865

之所以要这样做,目的是要把放大了一圈的模型变成柔体,然后利用柔体粒子的GoalPP跟随飞机运动,同时利用粒子碰撞地面产生粒子碰撞事件,发射粒子火花。

接下来就是把外面的模型变成柔体,使用菜单命令Soft\RigidBodies→CreateSoftBody:

img866

这样就会有一个比飞机模型大一圈,同时又有粒子附着在每一个点上的模型跟随飞机模型进行运动了。

img867

有了粒子,接下来就是制作粒子碰撞、粒子碰撞事件了:

所以,选择柔体粒子,同时选中地面模型,使用菜单命令Particles→MakeCollide使得柔体粒子与地面产生碰撞。

然后再选中柔体粒子,使用菜单命令Particles→ParticleCollisionEvents…为碰撞地面的柔体粒子制造碰撞事件,产生火星。

所以接下去就是为柔体粒子和地面创建碰撞(使用菜单命令Particles→MakeColide):

创建碰撞:

img868

为柔体粒子创建粒子碰撞事件:

img869

通过设置,碰撞时的火花粒子产生了:

img870

接下来就是控制火花粒子的运动状态、形态、颜色这三个属性了:

首先是颜色,为粒子添加颜色属性,然后将粒子颜色设置成为火星的颜色,最重要的是打开ColorAccum(颜色堆积)属性。

对粒子属性、颜色、透明的设置:

img871

这里没有使用PerParticleAttribute,因为根本就不准备控制每一个粒子的颜色,只是使用了ColorAccum使颜色产生堆积,从而达到火星的感觉:

img872

接下来调整粒子的形态,通过调整粒子的生命周期和粒子渲染属性控制火星粒子的形态:

img873

调整粒子的生命周期,这样火星就不会太夸张:

img874

使用DynamicRelationships编辑器,连接火星粒子和重力场,产生真实的火星:

img875

最后,播放动检查哪里有错误,不断的结合场景里的效果调整粒子的生命周期值、粒子属性的MultiCount和MultiRadio值的大小以求得到最满意的数值。

如果对粒子的状态满意的话,就可以为粒子的现存状态创建粒子缓存,使用菜单:Solver→CreateParticleDiskCache将粒子每一帧的状态都记录在硬盘上,与“烘焙关键帧”的效果相同,用法也相同:

首先在渲染设置里面设置好需要渲染的时间段,然后,选中场景中所有的粒子,最后使用菜单命令Solver→CreateParticleDiskCache:

img876

img877

最后通过长时间的计算,就可以很轻动的播放整个动画了:

img878

粒子缓存建立以后就可以将不需要的动力学属性全部删除了,否则占用系统资源,使得无法进一步制作更多的效果。

img879

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

我要反馈