背景:

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

这个教程将告诉你怎么用一个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标志设计结合
您可能感兴趣的内容

Python 的效率編程_simplified

Python --- 说是当今最热门的编程语言之一,相信大家都不会反对。在去年就有报导说在美国顶针的计算机大学当中,有80%的大学已选用......

阅读更多
1

Blender制作出水果命名的动画电影

在互联网上,一群喜爱Blender的CGer正在有计划的使用Blender合作完成一部部的动画电影,并以水果的名字命名这些计划。 辛特尔(开源视频计划:榴......

阅读更多

3ds Max出图异常问题---之参数篇

在上一期的文章中,详细分析了由素材原因导致的出图异常的5个小点,这次就是“由参数设置原因导致出图异常”的专场了。 3ds Max文件提交云渲染,包含了五花八门......

阅读更多

热搜关键词

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

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

合作伙伴

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