admin 管理员组

文章数量: 1087135


2024年3月12日发(作者:数之始也中数的读音)

电脑编程技巧与维护 

利用MaxScript脚本语言实现粒子流特效动画 

黄竞 

(北京工业大学计算机学院,北京100124) 

摘要:3DS Max是专业的电脑三维动画制作软件,它的最大优势与最大魅力在于动画制作。MaxSeript是3DS Max 

内置的脚本语言,3DS Max的大多数功能都可以通过脚本调用。利用MaxSeript可以编制各种影视广告、影视特效 

动画脚本,运行脚本程序后就会自动生成动画特效。主要介绍粒子流特效动画脚本的编制方法。 

关键词:粒子流;事件;生命周期 

Implementation of Particle Flow Effects Animation Using 

MaxScript Script Language 

HUANG Jing 

(College of Computer Science,Beijing University of Technology,Beijing 100124,China) 

Abstract:3DS Max is three dimensional animation professional production software.The biggest advantage with the biggest 

attraction iS the animation.MaxScript is 3ds Max’s built—in scripting language.3DS Max most functions can be achieved 

through script.MAXScript can be used to prepare aJl kinds of film and television advertising.film and television animation 

script.It will generate the animation automatically run the script after.This article mainly introduces the compiling method of 

particle flow effects animation script. 

Key words:particle flow;event;lire span 

随着计算机图形图像技术的不断发展,数码创作已经成 

为了一种全新的艺术表现形式。Autodesk公司出品的3DS Max 

作为一款应用最为广泛的三维动画软件。一直以其强大的功 

能受到广大CG爱好者的推崇,在数码创作领域表现卓越。 

2术语解释 

PF Source(粒子流)是3DS Max 6以后的版本中新增加 

的粒子系统生成环境.它是一种多功能强大的3DS Max粒子 

系统,它使用一种称为粒子视图的特殊对话窗来使用事件驱 

动粒子形态。粒子流系统经常涉及到下面几个术语作。 

1 引言 

3DS Max广泛应用于电影特技.电视广告、工业造型和建 

筑艺术等各个领域。它不仅满足使用者手工交互调整动画场 

2.1 Event—driven(事件驱动) 

3DS Max提供了两种不同类型的粒子系统:Event—driven 

事件驱动和Non—event—driven非事件驱动。事件驱动粒子系统 

又称为粒子流。它测试粒子属性.并根据测试结果将其发送 

给不同的事件。粒子位于事件中时,每个事件都指定粒子的 

不同属性和行为。适合制作较复杂的粒子动画,如爆炸随时 

间生成碎片、火焰和烟雾等。在非事件驱动粒子系统中,粒 

子通常在动画过程中显示一致的属性。 

景,也为其提供了编程工具。3DS Max作为标准的三维软件, 

提供了一种类似C语言的脚本语言.称为MAXScript.主要提 

供对软件内部功能的调用。脚本语言是使用3DS Max制作动 

画和进行设计的方便工具.能够使用手工调整制作的动画和 

模型基本都能使用脚本语言完成.而且使用脚本语言实现起 

来要简单得多。特别是制作中的重复性工作,使用脚本语言 

就更为方便。本文利用“轰炸大桥”案例来说明使用脚本语 

言实现粒子流特效的方法。由于3DS Max逐年升级版本,为 

了统一界面格式,下面均使用3DS Max 2010版本。 

粒子系统是3DS Max的一种特殊模型,它用于创建水化、 

降雪、焰火、烟雾等场景。这种模型不是单个存在的,而是 

2.2 Event(事件) 

定义粒子的状态.是组成流的基本单位。是使粒子流从一种 

状态进入另一种状态所需要的必要手段.可以改变粒子流现有的 

运动状态.使之演变成为其他某种粒子流组合。不同的事件可 

以互相连接起来组成流。事件由多个Actions【动作]指令组成。 

群小的子物体合成的模型.另外.它也是一种动画模型。 

2.3 Particle View(粒子视图) 

粒子视图是对粒子流程和粒子事件进行编辑的环境,它 

提供了用于创建和修改“粒子流”中的粒子系统用户主界面 

动画模型的意思是创建这种模型时,它已经具备了动匦属性, 

用不着再为它设计专门的动画,当然,对于创建的粒子系统, 

还可以调整其参数来改变动画。3DS Max 2010中包含了7套 

制作粒子特效的工具包,PF Source(粒子流)、Spray(喷射)、 

Snow(雪)、Blizzard(暴风雪)、PArray(粒子阵列)、PCloud 

作者简介:黄竞(1965一),女,工程师,研究方向:计算机 

应用。 

(粒子云)和Super Spray(超级喷射)。 

收稿日期:2013—08—08 

86电 与难 

ARTIFICIAL INTELLIGENCE AND IDENTIFICATION TECHNIQUES 

(图1)。主窗口包含描述粒子系统的粒子图表。粒子系统包 

人工智能及识别技术 

Particle Flow(粒子流)的工作方式可以理解首先选择一 

含一个或多个相互关联的事件.每个事件包含一个具有一个 

或多个“操作符”和“测试”的列表。操作符和测试统称为 

动作。 

些Actions【动作】,这些动作用来定义某一粒子的特殊状态, 

可以把一组动作组合成Event(事件),然后使用Tests(测试) 

将粒子从一个事件发送到下一个事件。这样连续的一连串事 

件则组成了Particle nOW(粒子流)。它们之间的关系如图l 

所示。其中事件驱动型Particle Flow(粒子流)属于Particle 

System(粒子系统)中的一种,而Particle Flow(粒子流)由 

2.4 PF Source(粒子流源) 

每个粒子流在视图中所显示的图标,是默认的粒子流发 

射器。 

2.5 Emitte(发射器) 

用来发射粒子的对象。是粒子系统建立在视图上的显示 

图标.发射器是产生粒子流的二维平面空间,发射器标示的 

大小决定了粒子流发射的空间范围。它是场景中定义粒子行 

为的物体和规则的集合。默认情况下粒子流使用“粒子流源” 

连串Event(事件)组成,每一个Event(事件)是由一个 

或多个Actions(动作)组成的。 

图标作为发射器.也可以选择场景中的其他对象作为发射器。 

2.6 Actions(动作) 

是粒子系统中最小的组成单位.也是粒子系统的核心部 

分.每个动作都有很多粒子控制的基本设置,实质上是能实 

现各种功能的命令,可以利用脚本指令实现动作的各种参数 

的设置。粒子流中有很多动作,主要分为Operators(操作符) 

和Tests f测试】两种类型。 

2.7 Operators(操作符) 

也称操作,是粒子系统的基本元素。将操作符合并到事 

件中可指定在给定期间粒子的特性。操作符用于描述粒子速 

度和方向、形状、外观以及其他。 

图1粒子视图 

①菜单栏②事件冠示③“参数”面板④指令库⑤“说明”面板⑥显示工具 

2.8 Tests(测试) 

粒子流中的测试的基本功能是确定粒子是否满足一个或 

4脚本语言MaxScript交互窗口 

在3DS Max中可以通过多种方法访问MaxScript脚本语 

言,包括Utilities(工具)面板、MaxSeript菜单、MaxScript 

多个条件。如果满足。使粒子可以发送给另一个事件。 

2.9 Life Span(生命周期) 

生命的概念对粒子来说就是它们在视图中显示的时间长 

度。在视图中的粒子流不可能毫无限制地保持显示状态,它 

从产生到衰变需要经历一段时间。拥有这种特性的粒子所模 

拟出来的特效才够真实。 

Listener(脚本侦听器)等。下面主要介绍利用MaxScript菜单 

开启脚本语言的方法。 

打开3DS Max 2010界面.通过MaxScript屏幕菜单执行相 

应的命令,如图2菜单项所示。 

New Script(新建脚本):打开一个新的脚本编辑窗口,以 

编写新的脚本.图3为新脚本编辑窗口。这个功能一般用来 

编写多行脚本。 

一0■ ■ 

3粒子流工作方式 

粒子流程的制作原理实质上是粒子事件驱动模式的顺 

序延伸.PF Source粒子系统允许自定义粒子的行为,这里 

的自定义含义是系统给出了一个控制粒子的操作符集合,在 

N删S∞口t 

任意一个流程中,用户都可以根据实际的制作需要,将操作 

符提出放到粒子流程中,这种操作方式被看成为自定义粒 

子属性。 

Opea S L 

Run S DL 

a1 Uute ̄er_ 

。t Eo' ̄for- 

F】l 

M…R—rder 

粒子系统的这种开放式模式奠定了用户可以自由地创建 

出非常复杂的粒子特效动画,这种使用流程图来定义粒子的 

行为具有极大的可变性和灵活性。 

v x r Ed r— 

D ̄ugg* ̄D_曲g一 

图2 MAXScript菜单 图3脚本编辑窗口 

在流程图中,各种规则、测试以及时间能够被创建和编 

辑。使得粒子在它的生命周期内的行为能够直观、实时地出 

现在用户面前。 

Open Script(打开脚本):打开一个Open File(打开文 

件)对话框,可以打开一个已存在的脚本文件。 

Run Script(运行脚本):打开Choose Editor File(选择编 

辑器文件)对话框,选择一个已经编写好的脚本文件,然后 

执行该脚本文件。 

粒子流程图的制作就像是编写一段小程序来管理粒子的 

各种运动状态,通过影响粒子的运动,改变粒子的属性以及 

测试粒子与场景中其他物体的相互作用.在不同的时刻决定 

粒子进入一个新的运动状态或者开始一个新的行为。 

5粒子特效描述 

下面利用粒子流案例一轰炸大桥.来阐述粒子流特效的制 

;曩l 脑墒程2技0巧13与.2缝2护87 

电脑编程技巧与维护 

作流程,以及利用MaxScript脚本语言实现的具体方法。打开 

现有的场景文件“轰炸大桥.max”。这个场景很像一部好莱坞 

战争大片中的惊险情节。也许是在第二次世界大战期间的一 

次战役中.蓝天白云下.有一座大桥静静地矗立在一条大河 

送到一个新的“删除”事件中.这个新的事件的功能就是删 

除所有粒子。落在大桥下方的那枚炸弹激起的水柱受到大桥 

遮拦,在“垂直水柱”事件中再添加一个Collision(碰撞)测 

试,导向板摸拟大桥替身.遮挡水柱。 

根据上面的粒子流流程分析.利用粒子视图使用手工交 

互方法可以生成如图5所示的粒子流程图。每个方框代表一 

的中间,突然来了一架轰炸机,对大桥实施了超低空轰炸, 

多颗炸弹落在水中。激起了巨浪与水柱,显得非常壮观。场 

景中主要物体为一条河流与一座大桥,轰炸机飞行关键帧动 

画制作完成,动画长度已经被设置为210帧左右。我们只需 

要使用脚本语言创建粒子流程图.调用粒子流系统方法制作 

炸弹落水,激起的水花与水柱的动画效果。图4为“轰炸大 

桥.max”场景文件某一帧的渲染图。 

个事件.每个事件由若干“动作”指令组合而成,事件的标 

题栏显示该事件的名称。每个事件名称以汉语拼音命名,分 

别为新建粒子流【PF Source01】、投弹【TouDan】、水平水花 

【ShuiPing ShuiHua]、垂直水柱【ChuiZhi ShuiZhu】、删除 

『ShanChu]。主要介绍利用MaxScript脚本语言编写脚本自动生 

成粒子流程图的方法。 

图4现有场景渲染图 

6水花飞溅粒子流特效制作思路 

6.1轰炸机投弹 

水花飞溅是粒子特效动画的典型代表.在空中飞行的轰 

炸机作为粒子发射器,飞抵大桥上空。依次投下5颗炸弹。 

这时的粒子就是炸弹,用Shape Instance(形状替代)操作符 

进行粒子替换。使用Speed(速度)和Rotation(旋转)操作 

符,调整炸弹粒子的飞行速度和旋转方向。炸弹被推出飞机 

弹仓后,靠重力落下,接触水面,落入水中时应该爆炸。利 

用Deflector(导向板)模拟水面,经Collision(碰撞)测试炸 

弹与水面碰撞时间,炸弹碰撞水面瞬间产生“水平水花”和 

“垂直水柱”两股粒子流.进入到“水平水花”和“垂直水 

柱”两个不同Event(事件)中。 

图5水花飞溅粒子流程图 

7编写脚本实现粒子流特效 

按照上述粒子流流程.利用脚本语言编写生成本案例粒 

子流程图的“飞机轰炸大桥”脚本,运行脚本后自动生成图5 

所示粒子流程图。播放动画.就可以看到“水花飞溅”的粒 

子流特效效果。下面按粒子流程图事件的先后顺序分别介绍 

编写脚本生成粒子流程图的方法。 

6.2产生水平水花 

在“水平水花”事件中,炸弹爆炸后删除原始粒子流一 

“炸弹”,同时经过(分裂)测试生成500个左右的新生粒 

7.1模拟器创建与设置 

单纯由粒子发射器模拟出来的粒子流运动通常是不真实 

的.所以重力、阻力等空间影响物体的介入使粒子的发射更倾 

子一“水平水花”。使用Speed(速度)操作符调整其运动方 

向和速度,水平水花逐渐扩散消失,使用Delete(删除)操作 

符给予粒子有限的生命周期,50帧以后自动消亡。炸弹粒子 

流经过第2个(分裂)测试生成另外一股60O个左右的新生 

粒子一“垂直水柱”。 

向于自然、随意。导向板具有对接触到其表面的粒子流产生反 

弹的功能。在场景中炸弹落水,在水面上激起水花,需要设置 

导向板模拟水面;落在大桥旁侧水面的炸弹激起的水柱受到大 

桥遮挡.也需要创建导向板模拟大桥遮挡水柱。因此在制作粒 

子流之前,首先利用脚本语言,创建重力、阻力和导向板。首 

6.3产生垂直水柱 

在“垂直水柱”事件中,使用Force(力场)操作符使粒 

先打开现有的场景文件“轰炸大桥.max”。执行菜单命令 

MaxScript>New Script(脚本>新建脚本).可以打开脚本编辑 

子受Gravity(重力)和Drag(阻力)影响,加入重力场控制 

垂直水柱的高度.模拟水柱的下落感。加入阻力场限制水柱 

的高度,可以控制水柱生成的粗细程度和水柱生成速度。同 

样使用Delete(删除)操作符为新生粒子制定寿命,5O帧以 

后自动消亡。为了删除水面下的多余水柱,再次利用Collision 

(碰撞)测试,当粒子与水面碰撞时,落入水下的粒子就会被 

88电 技22

器。键人以下脚本,完成粒子流所需的模拟器的设置。 

馕}lI嚣的剞撕 置一 

5 .59 ̄ ̄

oa:t7s

: 嚣迅}. i。 l粕【1.10。6.2B. 】 OT.O] 

.。.。

r n●‘rⅢJH 

趟蛩睾蓼 210r 1 {ft d唧w.5d∞w 

自■囝黼 . 

Den ctor b埔嘣:I ̄idth:67描l龇tt I §pos:【 . 1 B.52.953。一7 

弼墅 簧鞠鞋}躺髓I 

圬与壤 

ARTIFICIAL INTELLIGENCE AND IDENTIFICATION TECHNIQUES 

使用上面的脚本分别创建了重力、阻力和导向板对象。 

人工智能及识别技术 

其中“¥轰炸机”和“¥Bomb”分别代表场景中已经创建 

MaxScript中比较常用的方法是将一个对象指定给一个变量. 

这样就可以通过变量名称来对这个对象进行操作。此时重力 

变量名为 ,阻力变量名为dr,导向板变量名为df和udf。 

的轰炸机和炸弹物体。 “evl_birth=Bitrh Amount:5 Emit—start: 

6400 Emit

stop:17920”粒子生成指令指定了粒子开始发射时 

间和停止发射时间,粒子总数即炸弹个数为5。利用 

7.2创建粒子流事件 

首先利用“pf=PF_Source X_Coord:20 Y—Coord:0 Logo_Size: 

153.625 Emittet pe:0 Emitter

Length:182 324 Emittel 

_

ev l

pos=Position

_—

Object emitter_Objects:#(¥轰炸机)loca— 

tion:7”指令指定粒子从轰炸机的腹部发出。 “evl—shape= 

ShapeInstance SealeValue:200 Shapeidth: 

—_

Object:¥Bomb”形状替 

256.604 pos:【-289,371,416]Quanti ̄一Viewport:100”指令创建 

粒子发射器.主要定义粒子发射器的类型、大小、位置以及粒 

代指令指定发射器发射的粒子为Bomb炸弹。 “Speed”、 

“Rotation”和“DisplayParticles”分别定义了粒子的速度方向、 

粒子发射初始姿势和视图中粒子显示形状。 “evl_force= 

Force Influence:300 ForceSpace

Warps:#(gr)”指令定义投射 

——

子数量倍增器值。其中Quantity—Viewport参数表示视图中粒子 

数量倍增器值默认值为50%.会造成部分粒子效果无法显示, 

【天I此设置为100%。“RenderParticles”指令定义粒子的渲染属 

性添加到粒子流事件中。以下脚本为创建粒子流全局事件脚本。 

出的炸弹粒子靠重力来维持运动最终落水。利用“evl_colli. 

sion=Collision Collision

Nodes:#(df)”碰撞检测,导向板模拟 

_

剖建靛子 量毋事件一 

水面,可以检测到每一颗炸弹落水的时间。从而转入下面的 

产生“水平水花”事件。 

蝴I鞋手 

慧 tXh C1 oord。:“20EYl 背嚣 i 譬:p1 5 3.:6卜26 8E  ̄3it tl:前 v 。 t:l∞ 

7.4产生水平水花 

炸弹落入水中爆炸.生成新生粒子“水平水花”。下面为 

产生水平水花的脚本片断。 

; 嚣舞 盘 ; ” 一 强?翥;豁 

∞ rt} leFl ̄ .自1d£d1t‘) 

梆拙 俩毒星 

予:密幂帆畦j舳率 啦銎 

pf.GetPV1● .0cIt1On tx ty 

通常粒子流事件中所有粒子属性的定义追加语句都放在 

: : 1 be ll l,O 

particleFlow.BeginEdit0…‘particleFlow.EndEdit0”两个函数之 

ev2 p 

Ⅲi m

强 f制聃 『 

Ⅵr 

“ 

档菇 柱 

9 

h Pl[u¨… 

.《 啦 

 i

_{ u| f m… 

e 明“ 

自 ¨ { 

¨ r}》 蚰 … Ⅷ㈨

利 l 糟 垃j 生 i 

1日J。 

~ 

1… 

4扛 }j: …

兰 …l 。f…Nu_ L_ 一 

口“: h’ ” 【 ~ ^ 

1 …__I 

— ““ 

 堡指。 ,

0 

;蠢 括错 

ev2

±f 【、M ’口1 t: ∞E“:  :

一# 辑 

:: 器: : L d_x ; 

ev2 del= 

嚣 :嚣; i 

雌】 

u 

i T。 。

:扣 } 

{ 《 一 

5  .

1 。..} b 

懈睁把子铺一 椴 j= r 

杼亍鹊早 

T州 龆疆圭 

” i i1“ 

_¨n悟机融 

 ’t…

 1驯地 

! 簧瑟 

¨. ●n…

"2. nion 

{p2 

裤霹0 . 

00pl 

ev? 砷 弹dInl or.ev2 蹄eed 

e 2 卵州 …2

di卵Pa— 

e订.砷pend t1on卵 d e 

・ j ∞da …

pp ev2 

v Jl e【1 . 

l 

平 

ev 1.

e ol

蛳 r  {】斗 } l 搁 

lls  异 嚣 

…c 】i’¨ 

” 

( ・' 

 ̄eol l z: ̄#, .一 

| }f 事件驰 

; 

佃 堪 

【JH:‘l。J…t 

e .set 1柙Loc 

图6初始化脚本 

脚本中“飞溅水花”代表3ds Max场景中已经设置的材质 

球。其中

——

在新建脚本编辑器中选择File>Save菜单命令,将7.1和 

7.2所述初始化脚本存为“飞机轰炸大桥.ms”文件如图6所 

“ev2一sp l=spawn Spawn—Type:O Delete—Parent:true 

NumberofOffsprings:500 Variation:45 SpeedInherited:120 Di— 

示。选择Tools>Evaluate AU菜单命令,执行上述脚本片段后, 

在场景中自动创建重力、导向板等模拟器和粒子流发射器。 

vergence:20”分裂测试指令删除父粒子炸弹.产生500个左右 

的新粒子“水平水花”。使用“speed”、 “Materil—Dynamiac” 

和“displayParticles”分别定义了粒子的速度方向、粒子动态 

7-3投弹事件 

个标准的粒子流不仅包括粒子发射器.还需要包括粒子 

材质和视图中粒子显示形状。此时产生的水平水花生命周期 

都是无限的.利用“deleteParticles”指令可以为粒子指定生命 

周期。图7为产生水平水花的渲染图。 

生成、速度、方向和粒子在视图中的显示模式等操作符在内 

的粒子诞生事件。由于从轰炸机投弹动作开始产生粒子,把 

粒子诞生事件起名为“投弹事件”。参考以下脚本片断。 

p 1c1 1 Be 

】t …0 

竹J 

ht O 

1t甜art:州 # l T目20 nh_l r h hO埘t: 

¨I:p∞=P一¨ £ ) 

师l: 

畔i—i舯●d。0 ei矸B d…35 

4 n- 

i 。Ob) Hj: t鞠嗍'lac i 

. 

… 

} 00 峰e10 je , 

1 z』:0 盯I_r 孙t1 i r 1蜘: 仉 r 

¨】J… 

" l—e l1E蛳

1. l ㈨1 

嚣娃上童睫啦衔霄坩奇 埔瓤 抟 平件 中 

I.趣 …I,h1rth 

l-坤"t删 稚¨L. ● 

,.●M 

一 l…‘ O P。 卸 ■ :{(‘ ) 

= c 1H ∞CoII … * ej: ‘蝌 

_】i{ 珊e 

…1.■ 

蛳∞ l一,p・酣 

I—r吐 

l—m∞ 

e“-趣 ∞ …

I.&∞HtM 

1.却 ^吐^ 

鱼忡nd【扎t - 胁

… tH 

I.f能诗 

i ̄- ̄in・ 

哪1. H^曲时i蚺tart ̄ ̄oll ‘蝴 

wft1cl l l nt0 

料1.s.tm●-‘口口 i0h t‘一】00) 

图7水平水花渲染图 

脑确 

护89 

电脑编程技巧与维护 

7.5生成垂直水柱 

除了向四面八方水平扩散的浪花.炸弹落人水中会激起 

很高的水柱。下面是制作垂直水柱的脚本片断。 

嚣 ‰ 

ev3

警 未 

【】 

岛 

::鞘 翠 

般锕 早 

l # 

件 对孟r 件 

:; 

v,

del 

lcit , ‘” 。 

.“ ,∞ ll_ _'. 一 

eo

旺e

理嚣 竿’i}on  ,霉II笔墨 }#, .

ll : %盖篓 Act 山 曲u 

j:If , 

:;;:: ?“一 n‘Mtk0哪 ” 

舞练 : 

∥ ’ 

’ 概 

善n(mIr{ 融 

童 ” 眭 。 

: ;基 ::蛊 ‘{ n口 ) 盼 们 ,¥ 肿佃 

:;{:; = . 

糍 : 

。 

{.蛔““^n…v l 

: 童 

’ 

黝;: 誉嚣瓢“。 

将7.1—7.6所述脚本使用菜单命令重新保存为“飞机轰炸 

大桥.ms”文件。运行该脚本文件后,3DS Max系统会自动生 

成由上述一连串的事件构成的粒子流图(图5),其中每个事 

件标题栏显示事件的汉语拼音名称。在3DS Max 2010界面播 

;,器:盘嚣::= };:;:g 

^ n…" slant 

}嚣: 嚣 嚣;: 

挈! 霉瓣 

嚣;:麓霉鬻黜盘 曼 ’ 

pill! i I

tm!{l IIK .

‘ 

. 自 

) 1 ¨ ㈣ 

放动画.根据粒子流图3DS Max自动生成水花四散水柱腾空 

而起的粒子流特效。图lO为轰炸大桥动画的某两帧渲染图。 

“ev2_sp2=spawn 

, 

,㈨

利用产生“水平水花”事件中的

__

Spawn

Type:O DeleteParent:false Number of Offsprings:600 Vari- 

ation:0 SpeedInherited:150 speed

Variation:100 Divergence:5’’ 

—_

分裂测试指令产生60O个左右的新粒子“垂直水柱”。使用 

ev2

sp2.setNextActionList ev3 ev2

__

sp2”指令将“水平水花” 

事件中的spawn测试与“垂直水柱”事件连接起来。与“水平 

水花”事件相同,使用“Material

Dynamic”和“displayParti. 

图10最终粒子流特效渲染图 

eles”分别定义了粒子动态材质和视图中粒子显示形状。使用 

8结语 

上述案例利用MaxSeript脚本语言以及粒子流系统指令实 

现了水花特效动画。在影视作品中,经常需要制作这种激起 

“deleteParticles”指令为垂直水柱粒子指定寿命,这样水柱的 

高度就不是无限的了。垂直水柱显然受到重力影响作用比较 

大,所以使用“ev3_force2=Force Influence:150 Force_Space

巨大的水柱的战争场面,可以利用脚本语言开发成水花特效 

插件,使在场景中生成的水花根据用户需求可调节水平水花 

的数量、扩散速度,材质和生命周期以及水柱的高度和水柱 

的粗细程度等。 

MaxScript脚本语言是为扩展3DS Max的功能而专门设计 

的。使用它不仅可以建模、赋予材质、加入灯光和动画,更 

主要的是利用MaxSeript处理实际工作中的复杂问题,提高动 

画制作的工作效率。使用它可以编制一些需要的特殊功能, 

完成一些软件自身无法完成的工作。例如在建筑动画和影视 

特效制作过程中.可以利用脚本语言开发很多实用的小程序, 

Warps:#(gO”指令使水柱有下落感。其中gr变量代表模拟器 

创建部分创建的重力。为了解决水柱太细且生成速度太均匀 

问题.利用“ev3 force3=Force Influence:100 Force Space War 

ps:#(dr)”指令,对水柱主要施加垂直方向的阻力。其中dr变 

量代表模拟器创建部分创建的拖曳阻力。垂直水柱延伸到了 

水面下如图8所示,为了去掉水面下多余的水柱,可以利用 

ev3

eollision=Collision Colhsion

_—

Nodes:#(dO”碰撞检测,df 

导向板模拟水面,当水柱粒子与水面碰撞时,就会被送到下 

面的删除所有粒子的新事件中。为了使落在大桥旁侧水面的 

炸弹激起的水柱受到大桥阻挡,使用“ev3一collision3=Colli. 

sion Collision

转化成宏脚本或集成为插件,大幅度地提高项目的制作效率。 

Nodes:#(udf)”碰撞检测指令,udf变量代表场景 

参考文献 

『11元鑫辉,张汉平.3DS Max影视特效火星课堂一脚本应 

用篇.北京:人民邮电出版社,2011. 

中的一个模拟大桥替身的挡板.通过碰撞测试,碰到挡板的 

粒子均被反弹回去。图9所示的是动画中的第135帧渲染图. 

可以看到大桥附近的水柱激起后部分被大桥拦截。 

【2】李宇宁.飚三维一飞舞的视界一3DS Max7特效动画师手 

记.北京:中国铁道出版社,2005. 

【3】黄心渊,古梅,戈建涛,等.3DS Max高级编程一使用脚 

本制作动画.北京:清华大学出版社,2004. 

f41宋广波,殷炜晔.热点追踪--3DS Max实用技术基础.北 

京:人民邮电出版社,20o4. 

图8垂直水柱延伸到水下 图9水柱被大桥拦截 

7.6删除水面下的水柱 

经过“垂直水柱”事件的碰撞测试后将检测结果引入到 

新的删除事件中。本事件的主要任务就是删除与水面碰撞后 

的水面下的所有多余水粒子。下面是删除多余水粒子的脚本 

片断 

90电 技巧22

电■一程技巧与维护 与雄 


本文标签: 粒子 粒子流 事件 水柱 脚本