基于MAXScript 的建筑虚拟场景设计探讨

2013-07-30 04:07莹,王
电子测试 2013年10期
关键词:关键帧三维动画灯光

李 莹,王 哲

(1.陕西工业职业技术学院信息工程学院,陕西 咸阳,712000;2.陕西工业职业技术学院,陕西 咸阳,712000)

三维动画是当前动画艺术领域中的热点,3DS Max 软件的开发降低了CG 制作的门槛,为三维动画的制作提供了便捷的实现途径。建筑动画制作是三维动画制作中一个重要的组成部分。但是由于建筑动画场景制作十分复杂,3DS Max 中一些关键的技术较难掌握,同时这一软件在场景漫游实现、绘制速度等方面也存在着一些的不足之处,因此,分析基于3DS Max的建筑动画制作的关键技术,提高建筑动画制作的效率十分必要。

1 关于MAXScript

MAXScript 是3DS Max 内置的脚本语言,在3DS Max2.0版本及以后版本中均有此项功能,它是专门为3DS Max 而设计的,主要是提供3DS Max 的大多数功能的调用及功能重写,采用的是开放式的界面来自定义和编写3DS Max 脚本,用户利用其可以轻松地扩展用户界面,通过自动化操作实现批处理,是编程语言中较自由的一种脚本开发操作环境,功能十分强大。同时它还为用户提供建模、材质、灯光、渲染、动画等一些常用功能,在建筑动画场景设计制作中,这一功能有着显著的现实意义。

2 基于MAXScript 的建筑虚拟场景设计

在利用3DS Max 进行建筑动画设计制作时多数用户采用的是软件的人工交互操作技术,目前该软件的这一功能已十分强大,但由于其脚本程序语言设计层次较深,技术难以掌握,加之建筑动画场景设计制作复杂,一个场景中可能有上百栋的建筑和大量的树木等其他周边物体,这时手工交互操作就出现了工具功能不够的问题,如果仍采用手工方式,建造好后一样摆放数量众多的建筑物、周边物体等就需要花费大量的时间,影响动画制作的效率。MAXScript 可执行的批处理能很好地解决这一问题,而同时MAXScript 还可以用于Autodesk VIZ、Plasma 等其他与3DS Max 相关的建模、动画、渲染等软件编写中,利用其进行二次开发,将其他的相关软件的优秀功能集成于3DS Max 中,提高建筑动画场景设计制作的速度和效率。

2.1 三维动画模型建立

在建筑动画的设计和制作中,最基础的部分为三维模型的制作,三维建模中存在着类型一致的对象,即是同类对象,利用3DS Max 创建同类对象有利用创建工具创建一个对象,对对象进行复制、变形复制,利用间隔复制工具、粒子发射器等多种方法,这些方法均可实现同类对象的创建,但存在着一定的不足,而利用MAXScript 脚本语言的程序设计能对其功能进行延伸和扩展,如在“建筑房屋生成器中”可以将当前所选物体定为中心,通过编写程序定义楼的高度、中心与原来的正负位置叠加、定义楼体高度和屋檐高度,然后在程序中定义For i=1 to 20 do,来实现多个同类对象的生成,执行操作后,在创建的一个Dummy 物体周围就会生成20个形状、高度不同的小房子。

2.2 场景对象属性的改变

建筑动画场景制作中为了增强动画逼真效果,增强动画的表现力还须对灯光、材质贴图等进行调整,通过不断地渲染查看效果,不断地调整灯光、材质贴图等,如当前场景的灯光较暗,就对其进行整体加亮,改变灯光的颜色、角度等来使建筑动画更贴近实际场景,从而使动画更为逼真。

在对对象属性进行修改时,一般是在Exclude 或Include中对需要修改的物体进行选择,此种方法不仅速度较慢,还需要记住每个物体的名字,十分麻烦,而利用MAXScript 则可以方便地进行批处理,如需要对灯光调亮时,可以在场景中选择几个灯光,运行相应的script 即可完成,例如需将场景中原本的灯光调亮3 倍,则可以运行以下的script:

2.3 场景中动画设置

在动画设计中,对象位置、大小、颜色等的变化是通过软件中关键帧的形式来记录和实现的,应用MAXScript 也可以设置动画效果,如通过运行:

For i $sphere* do

--选择场景中名称以sphere 开头的所有物体

(For j in 1 to 3 do

--为所有名称以sphere 开头的物体设置3个关键帧

(at time ((j 20)+random -10 10) i.position=(random 7 50)

--在第20、40、60 帧设置关键帧,并且在关键帧时在Z 轴上移动7-50 之间的随机值

at time ((j* 20)+random -10 10)rotate I(eulerangles (random -3 3) (random -3 3) (random-20 20)

--在第20、40、60 帧设置关键帧,并在关键帧时以X轴为轴心旋转最多3 度,以Y 轴为轴心旋转最多3 度,以Z 轴为轴心旋转最多20 度)

即可实现场景中所有名称以sphere 开头的对象的动画效果。

2.4 编程步骤简化

MAXScript 的菜单的Macro Recorder 能够在绘制图形时,将每一步操作自动转化为脚本语言,打开统一菜单下的MAXScript Listener 即可对每一步的命令形式进行查看,利用其能够简化编程步骤,从而更好地提高建筑动画制作效率。以一个球体的运行为例,通过调用简单动作的脚本命令,即可实现复杂动画的编写,其部分的脚本语言如下:

1.line transform:(matrix3[1,0,0][0,0,1][0,-1,0][442850,-1.45167e-007,3.32103])isSelected:on Sphere radius:13.0567 smooth:on segs:32 chop:0 slice:off sliceFrom:0 slice To:0 transform:(matrix3[1,0,0][0,0,1][0,-1,0][86.7159,-3.25819e-006,74.5387]) isSelected:on--在任意窗口划一直线和一个球体。

2.select $ Sphere01

$.pos.controller=path ()

$.pos.controller.path=$ Line01

--为球体制定位置控制器为路径,选择直线作为运动路径。

3.max tool animmode

set animate on

sliderTime=150f

select $Sphere01

--打开动画记录按钮,将时间调到150 帧。

4.$.pos.controller.percent=80

max tool animmode

set animate off

--将球体在路径中位置调到80(%Along Path),关闭动画记录按钮。

3 结语

3DS Max 等软件的开发为三维动画的制作提供了十分便捷的途径,极大地推动了动画的发展,运用MAXScript 进行三维动画中建筑动画场景的设计能够方便地实现建筑动画制作中多个同类对象的模型创建、多对象属性的修改及场景动画效果的设置等,改变了传统动画创作手工制作的方式,极大地提高了动画的质量和制作效率。

[1]陆丽芳.基于3DS Max 的小区模型制作方法[J].计算机时代,2007,(11).

[2]杜洁,张磊.基于3DS Max 的节能建筑动画研究[J].建筑节能,2012,(12).

[3]陕晋军.MAXScript 在建筑虚拟场景设计中的应用[J].电脑编程技巧与维护,2010,(22).

猜你喜欢
关键帧三维动画灯光
水中灯光秀
三维动画技术及其在动漫中的应用分析
今晚的灯光亮了天
论三维动画特效数字模拟真实性与艺术性的结合
中国水墨画在三维动画设计中的应用
来一场灯光派对
自适应无监督聚类算法的运动图像关键帧跟踪
基于改进关键帧选择的RGB-D SLAM算法
基于相关系数的道路监控视频关键帧提取算法
基于聚散熵及运动目标检测的监控视频关键帧提取