maya 粒子发射粒子颜色继承问题

1,给粒子1一个rgbPP属性,在创建表达式中为其赋予一个随机颜色rgbPP=\u0026lt;\u0026lt;rand(0.99),rand(0.99),rand(0.99)\u0026gt;\u0026gt;;2,粒子1发射粒子2后,给粒子2一个rgbPP属性和一个parentId属性,在创建表达式中输入float $color=`particle -at rgbPP -id (parentId) -q particle1`;rgbPP=\u0026lt;\u0026lt;$color,$color,$color\u0026gt;\u0026gt;;这样就可以了简单解释就是,粒子2通过parentId属性可以知道他是由父粒子,既粒子1的哪个粒子发射出来的,在查出这个父粒子的颜色赋予粒子2就行了。复杂解释:表达式中parentId是父物体ID,一般就是在粒子发射粒子的时候才会用到,他可查出粒子2是由粒子1的哪个粒子发射出来的,例如这种粒子发射粒子所产生的拖尾效果,尾巴肯定是粒子2,那么粒子1的ID号为5的粒子,他的尾巴粒子2的parentId属性数值都是5,所以依据parentId查询到粒子1的属性并赋予粒子2的话,粒子2就会与粒子1具有同样的属性particle -at rgbPP -id (parentId) -q particle1这个是查询粒子属性的写法,这种用法一般也是在粒子发射粒子的时候会用到,或2套粒子有着某种关系,那么可在一套粒子中查询另一套粒子的属性,或者你在编写MEL脚本时,要查询特定粒子的属性时也会用到(针对粒子本身来说,是不需要查询自己的属性的,你直接建立一个变量去接收就行,这里只是在查询其他粒子属性时才会用到)-at后接你要查询的属性-id后接被查询粒子的ID号,并且一定要有ID号,比如你要查询粒子1的ID号为5的粒子的某个属性,则要输入-id (5),这里就可以使用parentId了-q后就接被查询粒子的名称,这里就是粒子1了查询到的粒子属性要用浮点数组来接收,在写成矢量数组就可以赋予粒子2的颜色了。有了这种方法,你不仅可以控制颜色,还可以控制半径,透明等等。
■网友
是做烟花吧,不是的话当我没说,第一个人回答的是对的,不过有个bug,这种rgbpp的写法会出现一些黑白粒子,对于做烟花跟定有问题,所以先定义两个变量float $H赋值rand(360)/360 , float $S赋值随机0.9到1,然后把他写的表达式矢量改为《$H,$S,1》这样效果会很好
■网友
题主的问题其实是学习粒子时的基础问题,可以找找总动员之类的基础教程看看。手头上没maya,就给些提示吧。这两个问题其实都是通过表达式来解决的,涉及到单个粒子的属性,粒子属性里per particle attribute可以添加rgbpp属性,然后给一个rand表达式就可以了。至于继承,就要通过表达式抓取每个粒子的ID,通过粒子生成的new particle可以添加一个parentID这个属性,这个代表了它父粒子的ID,同样也需要写一个继承这个ID的颜色信息的表达式。再具体的还是去百度搜搜吧,应该有类似的图文解释。
■网友
MAYA里不太知道,小的用MAX。但软件的一些逻辑和处理方式应该会有相同的地方,所以斗胆说说:1MAX里是靠多维材质来指定的,且不用调整就会始终为一种颜色。2粒子产卵的节点再单独给粒子材质。因为MAX里的粒子是事件方式计算的,所以这样做可以,MAYA的粒子没有碰过。希望能帮助到你!


    推荐阅读