浅析3ds max脚本

3dsMax插件开发 / maxscript脚本语言学习 3dsMax是多边形建模的最佳工具之一。一个好的插件,会大大提高制作效率。很多复杂且重复的步骤完全可以通过插件来完成,制作人员其实只需要做很少及简单的操作即可。maxscript开发Python开发maxSDK开发maxscript是Autodesk官方提供的编程语言,其提供的API基本能实现绝大多数的功能。maxscript是我接下来要分享的工具主要使用的开发语言。因为这个语言都是官方提供的,能直接调用内部函数,性能是高效的,能实现的功能也是最全的。 阅读详情

浅析3ds max脚本

 

1.概述:

3ds max脚本功能强大,方便。本文是介绍3ds max脚本技术,运用一个实例来说明如何编写3ds max脚本,以及程序设计的基本思想。我尽量做到让没有看过和写过任何一行程序的朋友,也能读懂本文,并理解文章后面的源程序,我特意在脚本程序中加上适当的注释方便理解。读懂本文,读者至少使用过3ds max,本文后面的例子程序在3ds max5和3ds max7环境下测试并能正常运行。 

 

2.基础知识:

在计算机里,程序的概念是:所谓程序是由计算机能够执行的指令构成。程序是一种逻辑思维,程序逻辑主要包括三部分:1.顺序 2.判断 3.循环  

具体说明程序逻辑三部分:

(1)程序执行顺序,就像我们生活中常见的时间从前到后,从上到下,从左到右。

(2)程序中的判断,在C/C++等大多数计算机语言使用if( )语句来实现,下面以C/C++语言作为说明,if( )括号里边是判断的条件,我举个简单生活中的判断例子:假如今天不下雨,我就去看电影,假如今天下雨我就在家玩游戏,用程序可以这样写,每段程序后的”//”斜杆是程序注释,计算机执行时会忽略注释,把实现的功能写成函数,实现不同的功能写成不同的函数。

if (today!=rain)          //假如今天不下雨

    SeeMovie( );        // 这里是看电影的函数

else                   //否则的话

    HomePlayGame( );   //在家玩游戏

(3)程序中的循环,就是让计算机不断的执行某段代码,直到不满足条件为止。例如:今天我要在家玩十局星际争霸游戏,程序可以这样写。

 for(int i=0; i<10; i++)    //玩十局游戏, i=0,每玩一次i+1直到i=9为止

 {

    PlayStarCraft(1);     //玩星际争霸游戏,1是函数参数,表示玩一局

}                    //一对大括号表示循环范围

 

3. 3DMax脚本基础知识:

(1)    如何编辑3ds max脚本。

3ds max脚本扩展名为*.ms ,可以使用记事本来编辑脚本另保存为*.ms,3ds max内置有一脚本编辑器,我们通常都使用这种方式来编写脚本,可以直接打开程序中的3ds max7,在菜单栏中,有一个菜单MAXScript ,也可以通过快捷键Alt+M 来打开MAXScript菜单。菜单包括”新建脚本”,”打开脚本”,”运行脚本”, “MAXScript侦听器” ,”宏录制器”,”Visual MAXScript编辑器” 共六个项。这里我简要介绍一下后面三个项的作用。打开”MAXScript侦听器”用于显示我们在视图中的操作,以命令和参数的形式显示。”宏录制器” 用于在操作视图时是否以命令字符显示我们的操作,这个功能用处非常大,我们可以把宏录制器录制下来的命令拷贝到我们自己的程序里边。不过要注意不是所以的操作都能录制宏,如“Video Post”的操作就无法录制成宏命令。”Visual MAXScript编辑器”主要用于写3dsmax插件,以直观的方式编辑和定义插件介面外观,如卷展栏、菜单、按纽、微调控件等,还可以很方便的编写编辑事件处理程序。

(2)如何运行一个脚本。

可以通过3ds max中的”MAXScript”菜单下的 ”运行脚本” 找到脚本所存储的目录并”打开”,即可看到运行脚本的效果。

(3)如何记录我们创建修改对象和设置动画的宏,便于把这些宏运用到我们自己的脚本当中。

    首先我们打开”MAXScript”菜单下的 ”宏录制器”,然后再打开“MAXScript侦听器”这样的话我们就可以在视图中操作,比如在透视图中创建一个Box长方体在“MAXScript侦听器”对话框中的顶部窗格,在窗格背景为粉红色上显示

Box lengthsegs:1 widthsegs:1 heightsegs:1 length:44.5692 width:40.1423 height:28.437 mapCoords:on pos:[20.6308,-22.0995,0] isSelected:on

这个宏命令告诉我们我们创建了一个BOX,并定义了长宽高、段数及长宽高数值,是否打开纹理坐标,box创建在视图中的位置,当前是否选择了box。我们可以把这个宏拷贝,然后在“MAXScript侦听器”对话框中下边的窗格中,并修改部分数值,然后敲键盘Enter键,一切OK的话,透视图中会显示你用脚本创建的这个box长方体。

 

3. 动手编写Max脚本:

最后激动的时刻到了,我们动手写一个”雪山飞壶”3ds max脚本程序。

    这算是我们的第一个入门程序吧,(这个程序离实用还很远,庆幸的是你已经入门了)我们要实现的功能:创建一雪山,创建粒子雪,创建一个茶壶,创建“雪山飞壶”字幕,创建一个摄影机,并设置动画。需要说明的是,max脚本程序中注释是使用--两个横杆,写好的max脚本直接选择”MAXScript”菜单下的 ”运行脚本”,就可以看到效果。雪山飞壶脚本运用分模块来设计,先创建雪山,水壶等对象,然后设置动画,每创建一个对象后赋给一个变量,这个变量用于设置动画,设置动画时可以很方便的调用设置好的变量。例如创建一个茶壶,并赋给一个荼壶变量,可以这样做   chahu=Teapot radius:9 ,变量直接可以使用,无需先申明,变量样式是这样:  “茶壶变量名= Teapot 茶壶参数”。最后说明一下程序中”/”斜杆是换行符,表示下一行继续书写程序。运行脚本后可以切换到摄影机视图查看到完整动画效果(附图1)。以下是完整的”雪山飞壶”脚本源程序。

 

(附图1)

----------------源程序开始----------------------

--created by: 李英江

--生成一个雪山飞壶脚本

--日期:2005年7月26日

 

--第一步.生成一个box 长方体设置box参数

box length:140 width:140 height:5 /                     

               lengthsegs:30 widthsegs:30 heightsegs:2 /

               pos:[0, 0, 0] wirecolor:[50,250,245]/

mapCoords:off

--修改box 加入噪波修改使之成为一个凸起的山

addModifier $box01(NoiseModifier fractal:true /      

                                 seed:9 /

                                                 scale:100.0 /

                                                 strength:[0, 0, 60] )

 

--第二步.生成一个水壶并设置参数 赋予chahu变量

chahu=Teapot radius:9 /

              smooth:on /

                       segs:4 /

                       body:on /

                       handle:on /

                       spout:on /

                       lid:on /

                       mapCoords:off /

                       pos:[-117, -18, 65]/

                       wirecolor:[233, 154, 229]

 

--第三步.生成一个粒子雪景及设置参数并赋予变量sn

sn = snow   pos:[4, 16, 100] /

           wirecolor:[255, 255,255] /

           viewportcount:100 /

                rendercount:100 /

                flakesize:2.0 /

                speed:10.0 /

                variation:2.0 /

                tumble:0.0 /

                tumblerate:1.0 /

                display:0 /

                start:(-30) /

                life:(65) /

                constant:true /

                emitterwidth:200 /

                emitterheight:200

sn.hideEmitter = true

 

--第四步.生成一个“雪山飞壶” 字体,赋予变量t

t = text size:20 pos:[0,200,57] font:"宋体"  --设置字体

t.text = "雪山飞壶"           --字为

rotate t 90 [1,0,0]      --字体绕x轴旋转90度

addModifier t (extrude amount:(-10))  --挤压成立体字

textMat = standardMaterial diffuse:[178, 102, 178] --加入材质光

t.mat = textMat

 

--第五步.生成一个目标摄象机

cam=Targetcamera fov:45 nearclip:1 farclip:1000 /

              nearrange:0 farrange:1000 /

              mpassEnabled:off mpassRenderPerPass:off /

              pos:[20.1, -191.169, 89.275] /  --isSelected:on

              target:(Targetobject transform:(matrix3 [1,0,0] [0,1,0] [0,0,1] [-9.8, 52.891, 11.745]))

--第六步.茶壶动画

animate on

(  at time 100       --时间为100帧

   (

   move chahu [228.0, 0.0, 0.0]        --茶壶沿x轴位移

   rotate chahu (angleaxis 360.0 [0,1,0]) --茶壶沿y轴旋转360度

   move t [0, -200, 0]   --字效沿y轴位移

   scale t [1.4, 1.4, 1.4]  --缩放字效

  

   )

)

max zoomext sel all     --放大视图

max time play          --场景创建完成 自动播放动画

 

----------------源程序结束---------------------

 

D3D9--X File浅析 D3D9—X File浅析                3D模型文件格式多样,如3ds Max导出的.3ds文件,以及一些通用的.fbs文件、.obj文件等。微软早在DirectX 2.0时就已经定义了X文件。是一种用于存储网格模型、贴图、动画等数据的文件。并在D3DX中提供了一系列读写.x文件的接口和方法。当然,后来在Direct3D 10推出时又淘汰了X文件,使用基于XML的.x 阅读详情

相关推荐

浅析游戏引擎的资源管理机制

欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,【狗刨学习网】unity极致学院,致力于打造业内unity3d培训、学习第一品牌。   游戏中通常有大量资源,如网格、材质、纹理、动画、着色器程序和音乐等,游戏引擎作为做游戏的工具,自然要提供良好的资源管理,让游戏开发者用最简单的方

1630

【非常赞!】推荐9款3dMax脚本开发的插件

推荐9款3dMax脚本开发的插件

沐风老师 1915

3dsmax脚本大全3dmax脚本大全

3dsmax脚本大全

MAXScript入门

Part1前言3ds max是目前国内动画行业使用最普遍的、功能强大的三维动画设计软件,它除了具有交互操作方式外,还提供了编程开发工具——MAXScript脚本语言。MAXScript是3ds max众多插件中最有特色的一个。可以这样说,MAXScript把Max几乎所有的功能重写一遍(少数功能除外),而且能实现无法用鼠标键盘实现的操作。Part2MaxScript侦听器...

1787

3dmaxscript脚本语言完全学习手册

maxscript语言是3ds max 自带的脚本语言,它不但拥有一般程序语言的所有特点,而且可以在程序内实现几乎所有在3ds max界面下的交互操作,功能非常强大,而且语法比较简单,容易上手。.   本书详细、系统地介绍了maxscript语言。全书分成4部分,共23章。第1部分详细介绍了maxscript语言的基础知识、数据类型、变量、表达式、函数及程序流程控制等语法方面的基础知识;第2部分讲述了maxscript语言如何创建和修改模型、如何对材质以及动画进行控制;第3部分详述了用maxscript语言创建实用工具、用户界面等方面的知识;第4部分讲述了如何在脚本程序里控制3ds max用户界面、如何暂停脚本执行、如何控制渲染器、如何执行外部命令或程序以及如何退出和重置3ds max系统等方面的问题。

MAX脚本.pdf

MAX脚本.pdf

3ds max - 浅析脚本

我的网站:http://www.cgsir.com  转载时请保持原文完整,谢谢! 1.概述:   3ds max脚本功能强大,方便。本文是介绍3ds max脚本技术,运用一个实例来说明如何编写3ds max脚本,以及程序设计的基本思想。我尽量做到让没有看过和写过任何

_Max 2192

SiamFC++笔记

SiamFC++: Towards Robust and Accurate Visual Tracking with Target Estimation Guidelines 文章根据这些思路:引入分类和目标状态估计分支(G1),无歧义的分类得分(G2),无先验知识的跟踪(G3)和评估质量得分(G4)来设计SiamFC ++。 SiamRPN ++和SiamFC ++的比较(红色部分代表得分高的区域): guide: G1 : 分类和状态估计任务的分离:分类任务将目标从干扰物和背景中分类出来,目标状态

木木JL的博客 9434

[转]浅析3ds max脚本

1.概述: 3ds max脚本功能强大,方便。本文是介绍3ds max脚本技术,运用一个实例来说明如何编写3ds max脚本,以及程序设计的基本思想。我尽量做到让没有看过和写过任何一行程序的朋友,也能读懂本文,并理解文章后面的源程序,我特意在脚本程序中加上适当的注释方便理解。读懂本文,读者至少使用过3ds max,本文后面的例子程序在3ds max5和3ds max7环境下测试并能正常...

weixin_30835923的博客 298

ECMWF等大气数据批量下载(Python API)详细步骤

ECMWF等大气数据批量下载(Python API) 遥感方向做热红外温度反演,不可避免的要用到大气廓线数据,大气数据具有实时性,比如2018年9月1日的早上8点的影像,为了提高反演精度就需要用到时间上与其相差尽可能接近的大气数据,用于消除大气的影响,如果数据量较少我们可以查看影像的时间和空间范围进行下载,但是如果处理某个较大区域时可能涉及到大量的影像,如果一景一景对应查找去下载会很麻烦,因此针对大量数据的自动批量下载很有必要。本文根据 https://cds.climate.copernicus.eu/#

liuxiaojiangtobeno1的博客 1万+

保姆级教程:在Windows上用VS2019和OpenCV4.6搞定海康MV-EB435i RGBD相机图像采集

本文提供了一份详细的教程,指导如何在Windows环境下使用VS2019和OpenCV4.6配置海康MV-EB435i RGBD相机进行图像采集。从开发环境准备、SDK部署到代码移植和优化,涵盖了深度图与RGB图同步采集的实战技巧,帮助开发者快速上手工业级RGBD相机的应用开发。

weixin_28675557的博客 467

一个读取3DS文件的类CLoad3DS浅析Ⅰ

http://www.zwqxin.com/archives/opengl/3ds-cload3ds-view.html CLoad3DS类是Sourceforge中的一个开源项目,作用在于帮助开发者学会简单的对3DS文件的载入(OpenGL)程序。虽然有更成熟更强大的3dslib库,但是平时写写Demo中,对模型载入的要求一般比较低,这时候只把CLoad3DS类包含到程序就够了。——ZwqXi...

wang13342322203的博客 276

mot_challenge官方评估代码

mot_challenge官方代码使用介绍 评估mot17验证集:每个视频序列的后一半帧作为验证集 下载源码:git clone https://hub.fastgit.org/JonathonLuiten/TrackEval.git 官网上下载data样例,放在TrackEval/下,结构如下: data |-- gt | |-- bdd100k | |-- davis | |-- kitti | |-- mot_challenge | | |-- MOT15-train |

qq_37866436的博客 4896

3ds Max制作红旗飘动操作浅析

红旗飘动操作浅析

weixin_63015804的博客 573

STM32驱动SPL06-001气压传感器:I2C通信与温度补偿实战

气压传感器在无人机定高、室内定位和气象监测中至关重要。SPL06-001凭借±0.06 hPa相对精度和I2C接口,成为STM32项目的理想选择。通过I2C总线读取原始数据,并利用出厂校准系数进行温度补偿和气压解算,可输出高精度气压值。本文详细解析SPL06-001的寄存器操作、校准系数拼接及补偿算法,并分享I2C上拉电阻、地址配置等避坑经验,帮助开发者快速实现气压测量与高度解算。

weixin_29188043的博客 341

工业模型导入Unity实战:从ProE/SolidWorks到实时渲染的完整流程

在工业仿真、数字孪生和VR/AR应用开发中,将高精度工程模型导入实时渲染引擎是一个常见的技术挑战。其核心原理在于参数化工程软件与实时渲染引擎的数据结构差异:前者基于精确的B-rep边界表示和特征树,后者依赖轻量化的三角网格与材质贴图。这一转换的技术价值在于实现工程数据的可视化与交互化,为产品展示、虚拟培训和工厂仿真等应用场景提供基础。通过数据翻译与优化流程,特别是利用3ds Max或Blender作为中转站进行网格优化与UV展开,能够有效解决模型破面、材质丢失和性能问题。本文聚焦于ProE(Creo)和So

weixin_33050117的博客 344

用3ds导入spk文件好小坐标多_OBJ模型文件的结构、导入与渲染Ⅰ

在[3DS文件结构的初步认识]中提及了3DS格式模型文件。固然3DS格式很常用,但OBJ格式的模型也是很常见的,于是咔嚓了一下心,熟悉了一下格式,并写了一个导入OBJ格式模型的类,顺便有此文。——ZwqXin.com先总体说一下两种格式的不同处。比起二进制文件为主、连每个块的用途也得试探来试探去的3DS,文本文件为主的OBJ对我们更友好。与3DS文件的树状[块结构]不同,OBJ文件只是很单纯的字典...

weixin_39724004的博客 487

新代永久解锁西门子smart S7-200PLC 上传程序步骤

西门子 SMART S7-200 PLC 程序上传步骤 打开编程软件 或左下角依次打开 程序 所有程序 Siemens Automation Simatic STEP 7-MicroWIN SMART V2.4 STEP 7-MicroWIN SMART 技术交流 plcjiesuo1 2. 确认plc电源端以及输入电压; 3.用网线连接plc与电脑技术交流 plcjiesuo1 4.plc通电; 5.打开编程软件,双击通讯 6.按照...

m0_60773720的博客 2万+

DDR5浅析

DDR4 To DDR5DDR5是什么? DDR5是什么?

T630_NoThing的博客 2135

环境配置与基础教程:当前大厂主流套路:使用 MLflow 全链路管理 YOLO 实验参数、指标与模型版本

YOLO26与MLflow结合实现高效实验管理 YOLO26通过移除DFL模块和实现无NMS端到端推理,在CPU推理速度上提升43%,同时简化了模型导出流程。MLflow 3.10/3.11版本新增多工作区支持、成本追踪和安全序列化等功能,为机器学习实验提供全生命周期管理。两者结合可解决传统"截图+Excel"式实验管理的痛点,实现参数追踪、指标对比和模型版本控制的自动化。 关键优势: YOLO26架构优化带来显著性能提升 MLflow提供实验到生产的全链路管理 原生集成简化了计算机视觉

ZXSXJ的博客 191

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

c4d怎么导入mtl文件_OBJ模型文件的结构、导入与渲染Ⅰ

在[3DS文件结构的初步认识]中提及了3DS格式模型文件。固然3DS格式很常用,但OBJ格式的模型也是很常见的,于是咔嚓了一下心,熟悉了一下格式,并写了一个导入OBJ格式模型的类,顺便有此文。——ZwqXin.com先总体说一下两种格式的不同处。比起二进制文件为主、连每个块的用途也得试探来试探去的3DS,文本文件为主的OBJ对我们更友好。与3DS文件的树状[块结构]不同,OBJ文件只是很单纯的字典...

weixin_36102776的博客 4041

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

OBJ模型文件的结构、导入与渲染Ⅰ

在[3DS文件结构的初步认识]中提及了3DS格式模型文件。固然3DS格式很常用,但OBJ格式的模型也是很常见的,于是咔嚓了一下心,熟悉了一下格式,并写了一个导入OBJ格式模型的类,顺便有此文。——ZwqXin.com 先总体说一下两种格式的不同处。比起二进制文件为主、连每个块的用途也得试探来试探去的3DS,文本文件为主的OBJ对我们更友好。与3DS文件的树状[块结构]不同,OBJ文件只是很单纯的

前路漫漫的博客 8427

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

计算机组装教学方法,浅析计算机硬件组装与教学方法初探

浅析计算机硬件组装与教学方法初探浅析计算机硬件组装与教学方法初探,就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕业生考试网!计算机硬件组装与维护课程是计算机应用技术的一门重要基础课程,其主要任务是使学生了解计算机各种部件的分类、性能、选购方法,理解各主要部件工作原理、硬件结构、软件安装、相互联系和作用,并能掌握微型计算机的组装与简单故障的维修方法。由于计算机硬件安装强调的是...

weixin_39754915的博客 217
上一篇: GPU为什么跑得快?
下一篇: 3d 相关网站
海之子99
博客等级 码龄21年 53粉丝 147原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值