分类: 大话3dsmax

3dsmax教学

  • lumion渲染效果

    lumion渲染效果

    lumion渲染效果

    感觉效果还不错,做初期设计方案效果绝对是够用了,完全可以替代Vray了。

     

  • 3dsmax maxscript教程-间隔取一个多边形面小脚本

    3dsmax maxscript教程-间隔取一个多边形面小脚本

    重新编写一段关于editpoly间隔一格取一个面的算法,我之前也写过一个类似的算法,但是觉得算法太过于依赖数学运算而不是3dsmax maxscript的运算流程的,数学运算的通用性感觉不大好,而且修改繁琐,这次改进的算法就简练多了,可重用性还不错,只要稍微修改几个参数就能得到各式各样的效果,

    算法分解:

    –建立空数组

    n=#()

    –分列数。就是一个网格格子纵向的数量

    k=32

    –数组n的系列排序,初始量为1

    u=1

    –for循环 a的值等于网格的行数量

    for a =0 to 20 do

    (

    –mod是取余数的运算,当余数等于0时运算代码,不等于0时运行代码

    if (mod a 2)==0 then

    (

    –在if语句中嵌套for循环函数,当等于0时,做k值范围内的循环运算,b的值每次加2取值

    for  b=1 to k by 2 do

    (

    –数组赋值

    n[u]=a*k+b

    u+=1

    )

    )

    else

    (

    –同上

    for  b=2 to k by 2 do

    (

    n[u]=a*k+b

    u+=1

    )

    )

    )

    –定义变量m,把n数组的数据类型转化为bitarray

    m=n as bitarray

    –选择bitarray值的曲面

    $.EditablePoly.SetSelection #Face m

     

  • 3dsmax动画原子运动

    3dsmax动画原子运动


    本实例是做原子运动穿越薄片的效果。制作的原理和上次类似。

    这次被穿越的方块不做高低变化,而是体积“坍缩”为零,当原子穿越之后方块体积又恢复到原始状态。这样的变化同样是通过距离来判定的。

    select $box*

    for t=0 to 100 do

    animate on

    at time t

    for a in selection do

    (

    x=distance $sphere01 a

    if x < 300 then

    (

    a.width=0

    a.length=0

    a.height=0

    )

    else

    (

    a.width=100

    a.length=100

    a.height=100

    )

    )

    3dsmax 动画基础,3dsmax脚本动画制作教程

  • 3dsmax动画基础教程_土拨鼠钻泥土小动画

    3dsmax动画基础教程_土拨鼠钻泥土小动画

    本实例中有点土拨鼠在地底钻洞时地面泥土隆起的效果。

    也是使用脚本的逐帧动画,脚本原理跟上一次的那篇文章差不多,大家可以这里《随小球运动而塌陷的方块地面动画-maxscript》查看原理。

    其中distance控制方块和球体之间的距离,if判断语句控制球体和方块的位置关系,当两者距离小于某设定值时,高度做相应变化,否则做另一种变化。

    for t=0 to 100 by 2 do

    animate on

    at time t

    (

    for a in selection do

    (

    d=(distance $sphere01 a)

    h=a.height

    if d<100 then

    (a.height=200

    a.wirecolor=white)

    else

    (a.height=h

    )

    )

    )

     

  • 随小球运动而塌陷的方块地面动画-maxscript

    随小球运动而塌陷的方块地面动画-maxscript

    为做出上图的效果,花了点时间想了个算法,相比之前的几个实例算法稍微深了个层次。

    算法描述:

    n=#() –新建空数组

    u=1 –定义变量起始量为1

    for t=0 to 100 do –for循环语句,这里是指在0到100帧做循环计算

    (

    animate on–开启动画关键帧

    at time t–在第t帧时做什么

    (

    for a in selection do –在第t帧时执行for循环语句,这里指的是所有被选择的物体做循环计算

    (

    x=distance $sphere01 a–定义x变量,变量赋值为球体01和方块的距离,distance是计算距离的变量

    y=200–定义y变量,这个变量做下面的比较运算

    if x>y then –if条件表达式,表示如果…那么…否则,当x>y是,执行then后面的语句,否则执行else后面的语句

    (n[u]=y)     ​    ​–给n数组赋予y的值

    else n[u]=x–给n数组赋予x的值

    a.height=n[u]–给a(指方块)的高度赋予n数组的当前值(x)

    u+=1–递增表达式

    )

    )

    )

     

  • maxscript 关键帧动画实例–正弦函数曲线生成动画

    maxscript 关键帧动画实例–正弦函数曲线生成动画

    [intense_image imageurl=”http://pic-7niu.3dscg.com/sin_curve.gif” /]

    喷射出正弦函数曲线的粒子曲线算法

    算法解释:animate on 开启关键帧开关,定义一个时间函数t ,时间函数t在0到100帧递增,递增等差为2,在递增的关键帧中“do”一件事情:at time t中复制$(指的是选择的方块),复制后的位置为[5*u , 500*(sin u) ,0],其中u的增量是45,增量的写法是u+=45或者u=u+45这两者都行。

    代码

    u=0

    animate on

    for t=0 to 100 by 2 do

    (

    at time t

    copy $ pos:[5*u , 500*(sin u) ,0]

    u+=45

    )

    关键字:maxscript,3dsmax 动画脚本

  • 3dsmax脚本动画-放置的图画

    3dsmax脚本动画-放置的图画

    还是移动帧动画,先看效果

    模型建模:制作两层50*50*10的方块,上层贴一张贴图,下层贴另一张贴图,并都赋予UVW贴图坐标,注意下层的效果更上一层有所不同。由于每个方块都要经过10帧动画就要做y轴翻转180°的角度,因此每个方块在翻转前要做自身X轴的“镜像”处理。处理效果如下图

    从这个图片看出,方块之间拼接不能构成完整的图形,但是做y轴方向翻转180°之后就刚好还原图形了。

    模型完成后,上层方块和下层方块分别执行下面的maxscript脚本,完成动画操作

    u=0

    for a in selection do

    (

    movekeys a u

    u=u+2

    )

    本文完

    代码备份:之前原以为要把上层下层抽取个一个分别组块,后来发现不用组块也能执行上面的movekeys的命令,那下面这段代码就可以不用了。但写好的代码还是留下备份了。

    n=$ as array         –定义一个n的数组变量

    m=n.count            –计算出n数组的数量

    b=m/2

    for a=1 to m/2 do     ​    –​for循环

    (

    y=#(n[a],n[a+b]) –选择集数组

    group y     ​–群组命令

    )

     

  • 3dsmax流星动画

    3dsmax流星动画

    一个类似流星的小动画,同昨天做的计时器动画原理一样。效果如下

    模型建立略过

    代码

    for a in selection do

    (

    movekeys a (random 0 100)

    )

    random 是随机参数,后面带0到100标示输出的随机值是0到100的整数值。

    movekeys表示选择的物体移动关键帧,移动的帧数为random的随机值

    上次的链接《3dsmax计时器动画小教程​》

  • 3dsmax计时器动画小教程

    3dsmax计时器动画小教程

    一个很简单3d动画,在配合3dsmax的脚本语言,就算是初学者也能学会的。

    先看效果

    [intense_image imageurl=”http://image16-c.poco.cn/mypoco/myphoto/20140923/15/5616http://image16-c.poco.cn/mypoco/myphoto/20140923/15/5616515920140923153451025.gif515920140923153451025.gif?523x473_110″ /]

    方法

    创建盒子,开启“aotu key”(自动关键帧)

    在第0帧,盒子参数1080 90 100(也可以任意,按自己喜好)

    在第10帧,盒子参数0 0 0(盒子消失)

    在第20帧,盒子参数1080 90 100(盒子又变回原来大小)

    以上的步骤,一个盒子的动画就制作完成。

    选择盒子,使用shift+i间隔工具,在一个圆圈(之前就要创建好,大小自定)上排列盒子,数量60左右。

    排列后看看到一圈的盒子,删除原来的单个盒子,选择排列的一整圈的盒子。

    在maxscript中新建maxscript,复制下面的Max脚本,按键盘Ctrl+E运行脚本,动画便制作完成了。

    u=0
    for a in selection do
    (
    movekeys a (u+=3)
    )

    如果动画播放不完整,在帧播放按钮上点击右键,请设定下图这个参数

  • 3dsmax模型贴图丢失应该怎么找回

    3dsmax模型贴图丢失应该怎么找回

    这个问题老困扰着好多使用和学习3dsmax的初学者啊,很多同学在学习过程中老在问我,还是写个简单的教程吧,真有问题直接发链接得了。

    [box] 我在好久之前分享过找回丢失贴图的插件,很好用,怎么用就看这篇文章吧《分享一个功能强大的3dsmax制作效果图的插件-场景助手》《如何把模型连同贴图、光域网一并带走》[/box]

    不过话说回来,想要贴图不丢失,平时建模习惯还是得养好。贴图要放好位置,名字命名等。

    上面的链接是用插件找回贴图的,如果没有插件或者插件不兼容你自己的3dsmax版本,那就得用3dsmax自带的资源管理器了。

    [intense_hr type=”double” size=”small” title=”用法” title_color=”success” title_background_color=”#ffffff” title_position=”left” /]

    ①按快捷键Shift+T 弹出资源管理器面板

    ②选择灰色的图标(丢失的贴图或光域网文件),按Ctrl加选,选第一张后按住shift键再选择下面的某一张可以快速选择多个文件。

    ③在文件链接上点击右键有个“set path”(设置路径)命令,指定好贴图或光域网的位置就可以了。

    [box] 注意:这种方法可以找回文件的路径,但是它要求所有的贴图尽量收集到一个文件夹内,否则得多次使用这个命令。[/box]