yyds 2008-7-7 10:04:49
请教如何统一场景所有材质的某一属性呢?比如我想所有材质公用一个透明贴图,但所有材质其他属性不被改变,材质多的话逐个添加是很麻烦的,有简单快捷的方法吗?谢谢
用户回复

yyds 2008-7-24 0:15:13
比如场景里面有20个材质球,我希望在高光强度上都贴上同一张图或同一个数值,最容易的办法是怎样呢,因为如果材质球实在太多了会让人崩溃的

bolixiong 2008-7-25 12:55:04
给我一段mel代码:
首先选择所有的材质,然后在script editor写代码:

string $shades[]=`ls -sl`;
for ($s in $shades)
{
//根据自己的需要确定属性名,这是简单的用diffuse属性。
string $attr=$s+".diffuse";
//将diffuse属性改为红色
setAttr $attr 1 0 0;
}

运行上述代码就可以

bolixiong 2008-7-28 9:20:29
代码用有错误,改一下:
string $shades[]=`ls -sl`;
for ($s in $shades)
{
//根据自己的需要确定属性名,这是简单的用diffuse属性。
string $attr=$s+".diffuse";
//将diffuse属性改为1
setAttr $attr 1 ;
//色彩属性。
$attr=$s+".color";
//改为红色
setAttr $attr 1 0 0;
}
对一些通用的属性,更简单的方法是选择这些物体后,在channel栏里对相应的属性直接改数据就行了,所有选择的节点的相同属性都有相同的值.
对于共用贴图的情况,不能用上面的方法,只要把贴图节点逐个连接到每个共享这个贴图的材质节点的输入属性上即可,不同的情况需要不同的解决方法

请在这里留言

请登陆后在发布帖子