找回密码
 立即注册

QQ登录

只需一步,快速开始

vray材质库
查看: 11941|回复: 1

[精品教程] MAXSCRIPT初级教程

  [复制链接]

该用户从未签到

1504

主题

1279

回帖

2万

积分

管理员

积分
23415
发表于 2003-1-26 22:09:00 | 显示全部楼层 |阅读模式
曾有一段时间,许多三位工作者在掌握了较全面的技术后发现现有的软件已无法全力表现出她们的思想,他们需要一种可以随时扩展软件工作能力的工具,而Script就是他们所需的。对于三位软件的高级用户来说,可以自己开发程序外挂来帮助工作已经是必需的要求了。由于不必为了一两种软件间独有的功能而将模型转来转去,有会大大的提高工作效率,因此,现在已有为数众多的大师们来开发外挂插件了。 max4.0终于发布了,这次的变化可能是历次最大的。对于maxscript的部分自然也是加强了不少。此次特别来介绍一下这个部分。 我们通过几个较典型的例子和尽量详尽的注解来由浅入深的带大家完成这部分练习。 最简单的max外挂程序 maxscript是可以调用大部分c++函数的,和MAYA的MEL语言也有很多的相通之处。但他也有自己的书写格式及语法。max已经提供了编写script程序的工具。在utilities面版中,你可以打开maxscript的编写工具。我们现在用自己的手编写一个max的外挂,你会发现这将是一件极简单的事。先打开MAXScript,点击New Script打开编写面版,并输入如下字符: Utility uti "My First Plug-in" ( ) 完成后按Ctrl+E运行此程序。此时,在左下脚的Listener Window中出现OK,说明max已经承认此语法并生成一个叫"My First Plug-in"的外挂程序。此时在外挂程序栏中可以调用这个程序了。在这个程序中只有一个卷轴,因为你并没有加入任何内容在里面。下面有一个按钮,是程序自动生成的,用来关闭卷轴。我们在语句中间插入一段字符,让他生成一个按钮。 button btn_box "BOX" 现在这个程序的界面已经多了一个叫“BOX”的按钮。如图使按钮产生功能
界面已经完成了,现在需要使按钮“BOX”产生功能。继续输入下面的字符: on btn_box pressed do ( box() ) Ctrl+E运行。界面立刻更新了,试着点击一下,发现视窗中央出现一个标准的box物体。box的参数使用的是程序默认的参数值建立的,各边长为25单位,各面片断数为1。此时这个maxscript外挂程序就已经做好了。选择Save以“My Script”为名字来保存文件。光盘上会提供完整的剧本源代码,可以通过Open Script打开文件“My Script”查看源代码内容。 相信此时您应该对这个强大的功能有了一个大概的了解,并希望继续了解他的能力,我们稍候会逐渐揭开他的神秘面纱。我们在后面的内容将会接触到一些在MAXScript中常会用到的功能函数以及如何使用他们。
MAXSCRIPT初级教程(一)
室内人成立于2002年11月7日。室内人欢迎你!
.....提示:网站下载资源都有备份,如遇到下载地址失效请及时联系管理员(QQ:3459039404)恢复下载地址(个别无法恢复会退币)

该用户从未签到

1504

主题

1279

回帖

2万

积分

管理员

积分
23415
 楼主| 发表于 2003-1-26 22:12:00 | 显示全部楼层
MAXSCRIPT初级教程(二) 通过前面的例子,我们已经大致了解了MAXScript的一些简单功能,这回我们继续添加内容,制作更加复杂的外挂程序。 下面的步骤将生成一个简单的物体建立面版,就像MAX程序的“CRERTE MIODE”一样,不但可以通过点击按钮生成物体,还可以设置其他如:长、宽、高、半径等参数。在开始之前我们不妨考虑一下到底是制作一个什么功能的外挂,可以至少有三个功能,分别是制作一个立方体、球体和一个圆柱体,并且要可以设置他们的各种参数。那么现在先打开“Open Script”并输入下面的语句。我们将建立一个新的max外挂程序。 Utility uti "Create" ( ) 我们先将首尾的代表开始和结束的扩号写好,是为了养成一个比较好的书写习惯,以防止在运算时丢掉其中一些运算符号。确认无误后我们就可以开始加入内容了。前面我们已经自己制作一个生成立方体的按钮,这回我们还用同样的方法制作三个按钮,现在我们在扩号中加入下面语句: button btn_box "Box" button btn_sphere "Sphere" button btn_cyl "Cylinder" Ctrl+E运行程序。现在得到了含有三个按钮的插件。我们继续添加内容,并在刚才的第一行后面输入控制立方体宽度的控制器: spinner sp_wid "width:" range:[0,100,10] 继续输入,生成控制立方体高度的控制器: spinner sp_heibox "height:" range:[0,100,10] 继续输入,生成控制立方体长度的控制器: spinner sp_len "length:" range:[0,100,10] 运行程序。发现在第一个按钮“BOX”下面出现了三个分别控制宽度、高度、长度的微调控制器,并且里面默认的数值均为10。 现在还要为第二个按钮“Sphere”加入两个控制半径和片断数的微调控制器,并且设置半径的默认值为10,片断数的默认值为16。在第二个按钮下面加入下面的语句生成控制球体半径的控制器: spinner sp_radsph "Radius:" range:[0,100,10] 继续输入,生成控制球体片断数的控制器: spinner sp_seg "Segments:" range:[0,100,16] 到目前为止已经为两个按钮加入了参数的控制器,先不忙着运算程序,先检查一下是否有遗漏或输入错误的字符和标点。并且和下面的源代码比对一下: Utility uti "Create"( button btn_box "Box" spinner sp_wid "width:" range:[0,100,10] spinner sp_heibox "height:" range:[0,100,10] spinner sp_len "length:" range:[0,100,10] button btn_sphere "Sphere" spinner sp_radsph "Radius:" range:[0,100,10] spinner sp_seg "Segments:" range:[0,100,16] ) 检查后如果没有错误继续为第三个按钮添加参数控制器。在后面输入一下字符: 生成控制圆柱体半径的控制器: spinner sp_radcyl "Radius:" range:[0,100,10] 生成控制圆柱体高度的控制器: spinner sp_heicyl "Height:" range:[0,500,50] 生成控制圆柱体边数的控制器: spinner sp_sid "Sides:" range:[0,100,10] 到目前为止,这个插件的界面就已完成了,但是看上去还有点乱的感觉,我们可以继续在添加一些辅助性的内容,让界面看上去更整齐美观一些。下面的源代码可以把这个插件分成几部分,使他们各自独立成组。这里我们使用“组”这个功能。 将按钮“Box”和控制立方体的三个控制器加入到下面代码中的两个括号之间: group"BOX" ( ) 将按钮“Sphere”和控制立方体的两个控制器加入到下面代码中的两个括号之间: group"SPHERE" ( ) 将按钮“Cylinder”和控制立方体的两个控制器加入到下面代码中的两个括号之间: group"CYLINDER" ( ) 到目前的全部界面部分的源代码已经写好,可以对照下面的语句检查一遍:Utility uti "Create" ( group"BOX" ( button btn_box "Box" spinner sp_wid "width:" range:[0,100,10] spinner sp_heibox "height:" range:[0,100,10] spinner sp_len "length:" range:[0,100,10] ) group"SPHERE" ( button btn_sphere "Sphere" spinner sp_radsph "Radius:" range:[0,100,10] spinner sp_seg "Segments:" range:[0,100,16] ) group"CYLINDER" ( button btn_cyl "Cylinder" spinner sp_radcyl "Radius:" range:[0,100,10] spinner sp_heicyl "Height:" range:[0,500,50] spinner sp_sid "Sides:" range:[0,100,10] ) ) 现在可以再次运行这个外挂,运行结果如图。 [upload=jpg]http://www.vrdesigner.com/teaching/pic/script02.jpg[/img]
会发现整个界面的感觉已经非常整齐规矩,很有“感觉”了。在制作完界面以后,我们会继续深入研究maxscript,并把这个外挂程序做完。

MAXSCRIPT初级教程(二)

[此贴子已经被作者于2003-1-26 22:12:57编辑过]
室内人成立于2002年11月7日。室内人欢迎你!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

室内设计工具箱

QQ|手机版|Archiver|室内人 ( 辽ICP备05022379号 )

GMT+8, 2024-4-29 20:05

Powered by Discuz! X3.5关于室内人 | QQ:3459039404(客服) | Email:snren_com@163.com

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表