3D脚本 maxscript入门教程.docx
《3D脚本 maxscript入门教程.docx》由会员分享,可在线阅读,更多相关《3D脚本 maxscript入门教程.docx(28页珍藏版)》请在冰豆网上搜索。
3D脚本maxscript入门教程
3D脚本maxscript入门教程
maxscript入门教程
内容图文并茂,语言高度概括,文采形象生动,思路清晰可见;
指出要害,抓住关键,透彻理解那些难懂的编程概念;
不用担心数学基础很差,无需害怕英文单词不懂,只需初中数学知识,把英文单词作图形符号看待,拿脚本编程当文字游戏把玩。
能够提高解决问题的能力,可以降低学习脚本的门槛。
不用费力看英文帮助,何需辛苦找编程资料,减轻学习负担,节省宝贵时间!
发挥自己的聪明才智,运用科学的学习方法,首先认真学好入门教程,然后虚心请教各位高手,
脚本编程从此不再难!
-----------------------------------------------------------------------------------------------------------------------------------------
入门教程内容结构
本教程内容分为五个部分,用几个具体的例子讲解大多数的脚本操作和语法知识。
一、MAXScript简介
1、说明什么是MAXScript以及它有什么功能,能给用户带来什么好处。
2、访问脚本,认识脚本访问的界面。
二、基本操作:
创建和修改简单的对象,给对象赋材质,从而引出下面的概念
构造器:
创建对象的语法称为构造器;
路径名;
数据类型:
它们是数字,字符串,数组。
对象和类(层级树);
属性和方法;
变换;
函数和方法的联系;
通用属性和动态属性;
显示属性的函数;
一些常用的方法;
三、创建和操作具有复杂关系的对象,从而引出下面的概念
变量,变量和属性的关系;
对象引用:
引用另外一个对象的属性值作为自己的值;
数组和集合等:
数组,数组和变量的关系;
运算符和表达式;
表达式:
求值的规则。
流程控制:
选择和循环,条件选择。
制作简单的动画:
"attime",动画控制器。
四、换一角度——从大家熟悉的操作流程来学习脚本
这是对前面知识的总结,前面是对语法基本概念的学习,现在是从大家操作流程的角度来学习,一纵一横,让我们对脚本有个相对全面的了解,理论和实际相互联系。
有了前面的基础才好学下面的内容。
第一步:
创建物体
一些常用物体的创建方法。
第二步:
选择物体
select
路径名,
变量名引用
条件选择
用类和集合选择物体
组Group:
是一个虚拟对象,不是集合。
第三步:
变换物体
变换:
postion,move,scale,rotate,变换坐标系和变换中心
第四步:
修改器
第五步:
材质和贴图
第六步:
制作动画
五、基本的语法知识
现在来学语法恐怕不会那么头痛了吧?
-----------------------------------------------------------------------------------------------------------------------------------------
一、MAXScript简介
1、MAXScript
MAXScript语言是为了扩展3dsMAX
功能而专门设计的一种脚本语言,是面向对象编程语言中的一种。
用它创建的场景物体和材质与在3ds
MAX界面中创建的场景物体和材质完全对应。
可以生成自动关键帧的动画模式,并可以通过层级路径名来访问场景中的物体。
有记录在3ds
MAX界面中的交互操作过程的能力,在使用界面操作的同时可以使用MAXScript来自由创作。
可以实现3DStudioMAX的全部用途,如建模、动画、材质、渲染等。
MAXScript可以运用各种数学工具来完成高级复杂的程序设计任务。
可以对含有大量对象的集合进行操作。
例如在复杂的场景中选择物体,可以把大量物体放置在精确的位置上,例如在山或路边放置一些树木,使用MAXScript操作起来是非常的方便。
它也能将一些功能定义为界面元素,例如工具栏按钮、菜单、浮动窗口,程序面板卷帘窗。
可以建行批处理操作提高工作效率。
例如建立一次可以渲染多个场景文件的脚本程序。
可以自定义输入输出工具,可以定义修改器,渲染效果插件等。
2、访问脚本
2.1、认识MAXScript界面:
包括MAXScript卷帘窗,脚本监听器窗口,脚本编辑窗口。
单击命令面板中的按钮,打开应用程序面板,再单击MAXScript按钮,在应用程序面板出现MAXScript卷帘窗,如图1-1所示。
图1-1
脚本监听器又叫脚本跟踪器,单击MAXScript卷帘窗中的OpenListener按钮,也可选择菜单栏中的
MAXScript/MAXScriptListener命令,快捷键F11。
如图1-2所示。
图1-2
也可右击用户界面左下方的Mini-Listener(迷你监听器)打开脚本监听器窗口,如图1-3所示。
图1-3
脚本监听器窗口是一个命令编辑和执行窗口,它由两部分组成,上半部分为宏记录窗口,下半部分为脚本运行结果输出窗口。
如图1-4所示。
图1-4
运行脚本时,脚本监听器窗口会输出脚本的运行结果,运行正确就显示为蓝色,运行错误就显示为红色,希望你的脚本不要出现红色啊。
在窗口中可以编写新的脚本语言或对已有的脚本语言进行修改,用户输入的脚本显示为黑色。
选择主菜单中的宏记录Macro
Recorder/Enable命令,如果此时进行操作,在窗口中淡红色部分将记录所进行的操作,这就是宏记录,选择菜单栏中的File/Save
as命令可以将记录保存为一个脚本。
单击MAXScript卷帘窗中的NewListener按钮,或者选择菜单中的MAXScript/NewScrip
命令打开脚本编辑窗口,如图1-5所示。
图1-5
脚本编辑窗口是一个文本编辑窗口,你能在3ds
MAX内部打开、创建或者编辑扩展名为"*.ms"、"*.txt"和"*.dat"格式的文本文件。
调试文件时大键盘中的回车键与在记事本中的用法一样的,用来换行,当鼠标光标出现在某一行时,敲一下小键盘区的回车键,就可以执行本行程序。
如果选择多行程序,敲下小键盘区的回车键,可以执行选择被选择的程序。
如图1-6所示。
图1-6
按住鼠标左键不放,把选择的一行或者多行程序拖到3DSMAX工具栏里,将生成一个宏脚本按钮,单击此按钮,就可以运行这个宏脚本。
在脚本编辑窗口或脚本监听器窗口里调用edit()函数,可以打开脚本编辑窗口,语法是:
edit"脚本文件名称"。
例如打开
effect.ms文件:
输入edit"effect.ms",运行就可以打开这个脚本文件。
二、基本操作:
创建和改变对象
1、创建简单的对象
传说天地未创建之时,是为无极,及有太极,则宇宙处于浑沌状态,就象鸡蛋一样盘旋着,在空间上无大无小无内无外,在时间上追溯到远古时代也无法知道其起源,所以把这种状态称为盘古,后来又不知那个好事者把盘古这种状态变成了一个传说——“盘古开天地”,结果“盘古”变成了一个宇宙创始人。
老子给它起了个玄之又玄的名字——道。
盘古一斧头就把这混混沌沌蛋给劈开了,结果太极判为天地,一气分为阴阳,中国就有了太极八卦和阴阳学说。
自从盘古开辟天地之后,则万物具备,轻清者上升为天,重浊者下降为地。
在天成象,在地成形,仰观天有日月星辰,俯察地有人鱼鸟兽,花草树木,种类繁多,数量庞大,不可计数。
人类为了征服大自然,掌握这些事物,就给它们进行了分类,把相同的对象归类到具有相似特征的类之中,类与类之间如果还有相似的地方,那么就把这些归纳到更高层次的类中,例如把植物类和动物类归纳到生物类。
面向对象编程中类和对象的概念就是试图对上面这些比较符合人类认识规律的概念进行描述。
好吧,现在就来看看在MAXScript中谁是宇宙万物的创造者——“盘古”。
选择菜单中的MAXScript/NewScrip
命令打开脚本编辑窗口,如果想调试程序,跟踪程序执行结果,也可以把脚本监听器窗口打开,输入
boxlength:
100width:
100height:
2
sphereradius:
10segments:
16
按Ctrl+E键或者选择脚本编辑窗口菜单中的File/EvaluateAll
命令执行程序,还可以用鼠标全部选定,敲小键盘上的回车键执行程序(以后都按此方法,不再说明)。
----------------------------------------------------------------------------------------------------------------
结果创建了一个盒子和一个球体,如图2-1所示。
现在单击工具栏按名字选择对象按钮,在弹出的对话框中会出现这个盒子的名字“Box01”和球体的名字“Sphere01”,这是默认的名字。
图2-1
boxlength:
100width:
100height:
2
这一行代码就是一个box构造器,它创建了一个长度为100、宽度为100、高度为2的box。
搞了半天,原来构造器就是“盘古”啊,伟哉,万物之始!
什么是构造器?
在MAXScript帮助中常常看到Constructor这个单词,中文意思就是构造器。
但是帮助中只是说明构造创建对象的语法,但并没有专门的内容来说明构造器这个概念。
我把它归纳如下:
在MAXScript中创建对象的语法就叫作构造器,其实质就是调用函数来创建对象,所以可以把它看作是一个函数调用
。
也可以说是用一个抽象的类产生一个具体的对象。
这个函数的名称就是基类的名称,所谓基类就是不能再分的类。
我们创建对象都是从基类开始的。
Box就是个基类,它的上一级就是几何类,再上一级就是节点。
如果学过JAVA,那么知道创建一个box对象的语法是:
BoxBox01=newbox();
呵呵,学习MAXScript可舒服了,只需输入box()就可以构造一个box了,面且大小写,分号都可以不用注意。
当我们手工单击创建面板中的Box按钮,然后在视窗中完成一个长度为100、宽度为100、高度为2的Box时,在程序内部就调用了Box(
)函数,就是把我们在界面中的操作转换成了boxlength:
100width:
100height:
2这行内部代码。
构造器由两部分组成,基类名和创建参数。
整个构造器就是一个函数调用,函数名box就是基类的名字。
创建参数由参数名后跟一个冒号:
和参数值组成,如图2-2所示。
图2-2
如果调用函数没有输入任何参数,那么必须在类名后加上一对英文(
)括号,例如box(),将创建缺省参数的盒子。
知道构造器原理后就知道怎么创建其它的对象了,例如创建球体,输入
sphereradius:
10就可以了。
注:
由于对象和类、层级关系等详细概念的内容比较复杂,将另立一文讲述。
请看>>
2、改变对象
创建了盒子和球体对象之后,我们想知道刚才的长度、宽度等参数是否正确,应该怎么办呢?
那就要访问对象的属性。
诸如长度、宽度、名字、线框颜色半径等等对象所具有的特性统统称为对象的属性(Properties)。
访问对象属性的语法是由对象的路径名(PathName)后跟小数点.和属性名组成,路径名由美元符号$后跟对象在场景中的名称组成,$表示当前场景。
例如访问box01的长度,输入
$Box01.length,在脚本跟踪器窗口中返回100.0,访问Sphere01