涉及知识:python、instance、mel
第一步需要一个模型
第二步创建进行替代的物体
第三步
pymel脚本
//python不要随便换行~
from pymel.core import *
import random
obj=selected()
[setAttr(duplicate(obj[random.randint(1,5)],rr=1)[0].t,v.getPosition('world'))for v in obj[0].vtx]
书写位置:一定是脚本编辑器的“python”区
脚本解释用法:
首先执行最前面两行,作用是引入需要的库
from pymel.core import *
import random
然后执行选择行,代码的意思是返回选中的物体到obj中形成一个数组
obj=selected()
*这里应该先在视图界面选取物体(注意应该先选择需要被替代的物体,我这里就是选正方体),然后再执行这个语句。
最后执行这一句
[setAttr(duplicate(obj[random.randint(1,5)],rr=1)[0].t,v.getPosition('world')) for v in obj[0].vtx]
详细解释:
obj[random.randint(1,5)] //随机从obj1~5中选一个出来
rr=1 //相对的
duplicate(obj[random.randint(1,5)],rr=1)[0].t // duplicate是复制的意思,'.t'意思是trans属性
v.getPosition('world') //获取v的世界坐标
setAttr(duplicate(obj[random.randint(1,5)],rr=1)[0].t,v.getPosition('world'))
//setAttr( a,b) 将a设置为b 也就是将随机选出的小球的trans设置为v的世界坐标值
for v in obj[0].vtx //循环操作obj中的每一个值 也就是每一个正方形的顶点
//接下来看一下XX部分,理论上应该是随便从五个球里面抽取一个并且复制一个
第四步
完成(密恐了家人们)
当然啦,其实也可以用mel写,不过得让我试试



