背景:

很多情况下,在一个场景中我们很多类似的物体,有着相同的材质只是在颜色上有不同,比如一棵树上有上千的叶子,这些叶子的颜色有绿的,有黄的,有褐的。。。。。如果想把这各种颜色都能制作出来,我们就要一个一个给材质加载贴图,这样做很麻烦,效果也很低。

这个教程将告诉你怎么用一个ramp节点来控制多个物体的颜色。

原理:

使用arnold提供的aiUserDataColor节点使用每个物体的颜色受各的属性控制,再通过表达式从ramp上获取到随机的颜色赋给每一个物体。aiUserDataColor这个节点的作用就是给物体的shape节点上添加属性,通aiUserDataColor来读取这个属性的值以改变物体的颜色。

第一步:打开maya通过复制来创建很多个小球,创建一个面片pPlane1,一个aiSkyDomeLight来方便我们渲染观察。打开Hypershade窗口,并创建一个aiStandard 材质(aiStandard1)赋给所有的小球。渲染所下

第二步:选中所有的小球,打开脚本编辑器运行下面的脚本:

string $sel[] = `ls -sl`;

for($current in $sel)

{

string $shape[] = `listRelatives -s $current`;

if(!`attributeExists delightSurfaceColor $shape[0]`)

{

addAttr -ln "mtoa_constant_Color" -at double3 $shape[0];

addAttr -ln "mtoa_constant_ColorR" -at double -p "mtoa_constant_Color" $shape[0];

addAttr -ln "mtoa_constant_ColorG" -at double -p "mtoa_constant_Color" $shape[0];

addAttr -ln "mtoa_constant_ColorB" -at double -p "mtoa_constant_Color" $shape[0];

setAttr -e -keyable true ($shape[0] + ".mtoa_constant_Color");

setAttr -e -keyable true ($shape[0] + ".mtoa_constant_ColorR");

setAttr -e -keyable true ($shape[0] + ".mtoa_constant_ColorG");

setAttr -e -keyable true ($shape[0] + ".mtoa_constant_ColorB");

}

}

这些脚本的做用是,给所有的小球添加mtoa_constant_Color 属性。

第三步:运行下面的脚本:

shadingNode -asTexture -n "ColorRamp" ramp;

创建一个叫做ColorRamp的ramp,这样创建出来的ramp是没有连接place2dTexture节点的,如果手动创建要记得打断与place2dTexture的连接。

第四步:选中所有的小球,运行下面的脚本:

string $sel[] = `ls -sl`;

for($current in $sel)

{

select -r $current ;

pickWalk -d down;

string $shape []= `ls -sl`;

if(!`attributeExists delightSurfaceColor $shape[0]`)

{

expression -s "float $vCoord = rand(0,1);\nsetAttr \"ColorRamp.uvCoord.vCoord\" ($vCoord);\nvector $color = `getAttr ColorRamp.outColor`;\nmtoa_constant_ColorR = $color.r;\nmtoa_constant_ColorG = $color.g;\nmtoa_constant_ColorB = $color.b;" -o $shape[0] -ae 1 -uc all ;

}

}

这个脚本的作用是给所有小球的 mtoa_constant_Color属性上添加一个表达式来随机读取ramp上的颜色。

第五步:运行下面的脚本,创建一个aiUserDataColor ,设置color attr Name属性为 Color;

string $aidataColor = `shadingNode -asTexture aiUserDataColor`;

setAttr -type "string" ($aidataColor+".colorAttrName") "Color";

第六步:把aiUserDataColor 连接到aiStandard1的color属性上,赋给物体。渲染结果为:

第七步:改变ramp的颜色,

改变时间线上的当前帧(因为maya的表边式赋值是基于时间的),再次渲染为:

第八步:通过改变ramp的颜色取值,可以得到自己想要的随机颜色。

除了直接把aiUserDataColor连接到color上我们也可以把他连接到高光或者其它的颜色属性上,也可以把得到这个随机颜色通乘除节点或者加减节点和贴图连接到一起来改贴图的颜色。

以上就是本期瑞云学堂的讲授内容,讲述了如何在maya场景中控制物体的随机颜色的方法,希望感兴趣的朋友赶紧打开maya软件按照我们的例子一步一步操作一下,相信你会学到很多知识,请关注我们的微信公众号吧。下期瑞云小讲堂再见!

上一篇:Maya物体随机颜色教程案例一
下一篇:深圳市瑞云科技CIS设计分享第三期:LOGO标志设计结合
您可能感兴趣的内容
r71

MAYA制作粒子流体材质

超写实的表现云体的流动,拖尾,战斗机的爆炸等复杂的物理现象的研究。时下主流的 3D 软件各自在流体表现方面的工具。 MAX版本是依靠第三方的强力插件After......

阅读更多

3ds Max的这些雷区,你是否也踩过?

摘要:无规矩不成方圆,每一个文件也有自身的规范。 无规矩不成方圆,每一个文件也有自身的规范。今天小编就要带大家了解3ds Max的文件规范的几个重......

阅读更多

在Blender中快速创建高品质的玻璃材质

Blender开源软件在业内广为熟知,是一个兼容多平台的轻量级全能三维动画制作软件。具有建模、雕刻、绑定、粒子、动力学、动画、交互、材质、渲染、音频处理、视频......

阅读更多

热搜关键词

搜索
渲染网| 瑞云渲染| Siggraph| 三维渲染| 渲染| 渲染农场| 奥斯卡| 瑞云大事件| 阿里云战略合作| SIGGRAPH Asia| 云计算| CGTrader| 好莱坞| 北京电影学院| 战狼2| CG英雄会| 丝路| Maya| Renderbus| vivue| 熊出没| 巴霍巴利王| 米粒影业| 大圣归来| 原力动画| VR| Vray| Blender| Autodesk| 龙之谷| Evermotion| 中式卡通| 哈布洛先生| 金鸡百花奖| 爵迹| 最终幻想| 吃饭睡觉打豆豆| 精灵王座| CIS设计| Redshift| 大数据| 瑞云科技| 深圳文博会| 秦时明月| 中国国际动漫节| 豆福传| 一万年以后| Cinema 4D| 云栖大会| 瑞云| 渲染客户端| 比拉传奇| 萌妻食神| 扶摇| 大闹西游| 毒液| 迷谭动画| 聚光绘影| 西行纪| 狄仁杰四大天王| 效果图大赛| 效果图设计大赛| C4D| 镭速传输| NVIDIA Quadro RTX| NVIDIA| Softimage| 漫威宇宙| 斯坦·李| 云渲染服务平台| 金马奖| 张艺谋| | 第九届短片节| 中国国际新媒体短片节| 金鸡百花电影节| Howard Lovecraft3| 数字媒体技术交流峰会| 大文件加速服务| 飞驰人生| 昆明动漫展| 杭州动漫节| 雷蛇| 教育优惠| 赤道| 渲染软件| RAYVISION| 瑞云渲染平台| 星火国际设计奖| Turtle渲染器| 全局照明| Python| 视觉特效| 赛尔号| GPU渲染| CPU渲染| SketchUp| 瑞云教程| RenderMan| 京交会| Houdini| 超能龙骑侠| 猪猪侠| 人工智能| SQUARE ENIX| 无偏差渲染| 创新型人才| Aspera| LightWave| VAX| 效果图客户端|

关注瑞云官方微信,送10元渲染券!

合作伙伴

rayvision aliyun
rayvision beiying
rayvision IBM
rayvision aspera
查看更多