当前位置:首页>软件教程>maya教程>教程内容

Maya的粒子替换功能和高级的MEL命令colorAtPoint(2)

来源:火星时代 作者: 学习:11077人次

选择新创建的盒子,选择Particles->Instancer(replacement)(粒子->粒子替换)后面的小方块,打开粒子替换选项盒,使用默认设置,点击Create,创建粒子替换。(图10)

图10

选择小方盒子pCube1,按Ctrl+H将其隐藏。接下来是创建一个2D贴图,可以是程序纹理,也可以是文件纹理,然后用MEL命令读取贴图的亮度,最后用这个亮度值控制粒子替换的缩放。选择Windows->Rendering Editors->Hypershade(窗口->渲染编辑窗口->超级滤光器窗口)。(图11)

图11

创建一个noise程序纹理,设置noise1的Depth Max(最大深度)为1,Frequence(频率)为5,Noise Type(扰乱的类型)为Perlin Noise。(图12)

图12

选择粒子,打开粒子属性编辑窗口,在添加动态属性卷展栏(Add Dynamic Attributes)里,点击General按钮,打开添加粒子动态属性窗口,在New粒子标签添加新属性,名字:scl,数据类型:Vector,属性类型:Perparticle(array)。(图13)

图13

点击OK添加新属性scl,在新属性右边的方框里点击右键,在弹出菜单中选择Runtime After Dynamics,打开运行时动力场之后表达式编辑窗口,编写表达式:

float $u=goalU;
float $v=goalV;
float $c[]=`colorAtPoint -o A -u $u -v $v noise1`;
scl=<<1,1,(1+($c[0])*5)>>;(图14)

图14

应用新属性scl作为粒子替换的缩放控制属性,在粒子的属性编辑器里,找到Instancer(GeometryReplacement)粒子替换卷展栏,在Scale的控制选项里选择自定义的属性scl。(图15)

图15

这时的被表达式读取的贴图还只是个单帧图片,并不是贴图序列,所以还没动画效果。(图16)

图16

可以给noise1程序纹理的time属性写一个表达式,使其有动画效果,使粒子替换产生波浪般起伏效果。在Hypershade的textures贴图标签里,选择noise1节点,在noise1的属性编辑器里找到Time属性,右键打开表达式编辑窗口,为其写表达式:

noise1.time=time*0.5;(图17)

图17

这时播放,会看到动画效果。也可以使用贴图序列来控制粒子替换的缩放。笔者这里准备了一个贴图序列,现在就把这个贴图序列读取到Maya中。在Hypershade里,创建一个文件纹理。(图18)

图18

学习 · 提示

  • 一定要打开PS,跟着教程做一遍,做完的图到这交作业:提交作业
  • 建议练习时,大家自己找素材,尽量不要用教程提供的素材。
  • 教程有看不懂的地方,可以到论坛发帖提问:新手求助
  • 加官方微信,随时随地,想学就能学:ps_bbs,或扫右侧二维码!
  • 关注我们学更多,每天都有新教程:新浪微博 抖音视频 微信小程序
- 发评论 | 交作业 -
最新评论
暂无评论,交个作业支持一下吧~

关注大神微博加入>>

网友求助,请回答!