之前在公司参与的一个与国外合作的项目中,有一景需要动态、随机地选取场景中的一些物体,同时显示指定材质,当时是用Houdini的节点+Hscript 解决的;
今天用简洁优雅的Python在Maya中写了一个类似的效果,
代码如下:
import maya.cmds as mc
import random def selTest(): mc.select(allDagObjects=1) sel = mc.ls(sl=True) selSize = len(sel) #print sel rand = random.sample(sel, 17) mc.select(rand, r=1) selTest()
这段代码需要使用Python的随机模块,但Maya的commandsPython帮助中没有这个模块,幸运的是可以从Python库中直接调用;
import random
ramdom模块的函数很多,这里用sample()采样函数即可;
最后再指定Shader,这样渲染就能看到效果了~
加快版,看起来流畅点,不过当时用的是上图稍慢一点的效果。