Maya硬件渲染粒子与软件渲染元素结合 Sprites-调整spriteScale和Twist 效果开始合成一起,但是还有改进的余地。当创建一个sprite基础上的效果的时候,sprites顶部每个分层都赋予它最终效果。利用不同的缩放值和扭曲值并在此基础上动画,可添加角色到模拟。 为粒子物体添加以下的动力学属性,方法和你添加spritNumPP属性一样: spriteScaleXPP spriteScaleYPP spriteTwistPP 在AddAttibute窗口New栏目里,保留Float,PerParticle属性添加以下属性: randXPP randYPP randTwistPP spriteTwistMultPP spriteScaleMultPP 给spriteTwistMultPP和spriteScaleMultPP贴上凹凸贴图,重新命名这些贴图,名字要能正确反映他们要连接的属性,可以命名为spriteTwistramp,spriteScaleRamp等等。反过来,于spriteTwistMultPP有联系的rump贴图,底端设为black,顶端设为white。 打开粒子物体需要的creationExpression并键入: //generaterandomnumbersforXandX // float$randx=rand(0.3,1.3) float$randy=rand(0.8,1.2) //storearandomnumberforXandY // // randXPP=$randx randYPP=$randY //setspriteScaleXPPandSpriteYPP // spriteScaleXPP=0 spriteScaleYPP=0 //setrandTwistPP // randTwistPP=rand(-180,180) 每个粒子X,Y,Twist的数值都是任意指派的,这些值会赋予每个粒子独特的特征,并会被用在RuntimeExpression里。既然我们用rand功能生成值并且边缘功能返回结果总是不一样,那么,我们就在单粒子属性里保存这些值,以便以后使用。 用rump给spriteTwistMultPP和spriteScaleMultPP贴图,也可将它们作为增效器,并给我们一个插值,但是,能否给我们一个interpolation,那就要看粒子的年龄如何。可以用常规表达式控制扭曲和放缩值,但是在控制基于时间的属性改变上,增加一个由rump控制的乘数,会给我们更大的控制灵活性。 为什么用0值初始化spriteScaleYPP和spriteScaleYPP?因为cg/image/的一个bug,rump在Creation上没有正确估算,产生了不可预料的结果。 打开粒子物体需要的RuntimeExpression并键入: //setspriteScaleXPPandspriteScaleYPP // spriteScaleXPP=spriteScalex*spriteScaleMultPP*randXPP; spriteScaleYPP=spriteXcaleY*spriteScaleMultPP*randYPP*randXPP 为sprite渲染类型创建默认属性时,cg/image/添加了一个spriteScaleX,spriteScaleY和spriteTwist属性。如果没有这些属性的单粒子版本,比如spriteScaleXPP,cg/image/就会用scalar属性代替,例如spriteScale。既然有了这些属性的单粒子版本,缩放版本就被忽略了。我不忽略它们,在全局增效器中,我习惯用他们作为表达式的一部分。用一个你众所周知的属性名字,这个名字不仅用在保存创建一个新属性阶段(作为增效器),也展示给使用者一个属性——具有相似的方式相似的功能。在通道盒里改变spriteScaleX或spriteScaleY,这会改变粒子总值。 在下面一行中: spriteScaleXPP=spriteScaleY*spriteScaleMultPP*randYPP*randXPP; spriteScaleYPP和spriteScaleXPP的值大体相当,回到creationexpression,randYPP,随意初始化一个值——0.8至1.2之间,这会导致sprite在x轴成矩形的—— /-20。 添加下面几行到runtimeExpression: //spriteTwistPP // spriteTwistPP =spriteTwistMultPP*sign(spriteTwistPP)*spriteTwist; 如果值是正的,用sign功能返回1;如果值是负的,用sign功能返回-1。spriteTwist属性是用用默认Sprite属性创建的,在这种情况下,我们添加它的值到当前sprite的twist上,引起sprite每帧旋转。利用spriteTwistMultPP,你可以改变每个spritetwist的速率,sprite越大,自转越慢。 此时,你可以开始回放场景,交互式地调整被当作spriteTwist,spriteScaleX和spriteSclaeY属性创建的rmaps值。该阶段有很大的扭曲空间,要得到sprites正确的缩放和扭曲值需要花点时间,但是,利用ramp贴图,就可以创建一些非常有趣的效果。 打开尘土粒子属性编辑器,在AddDynamicAttribute栏点击Opacity按钮。 1、为透明度创建PerObject和PerParticle属性 2、点击color按钮,为色彩添加PerParticle属性 3、点击General按钮,作为Float,PerParticle添加属性: intensityPP opacityOrgPP opacityMultPP 4、用ramp贴图为opacityMulPP贴图,正确重新命名。 5、在creation表达式中键入 //opacityPP // opacityOrgPP=rand(0.1,0.4) opacityPP=0 用相对较低的值初始化透明度,该值保存在opacityOrgPP里,Runtime表达式要用到它。 既然spriteScaleXPP和spriteScaleYPP属性已经设置0,当sprite缩放到0并无法看见时,就没有必要初始化opacityPP一个值。
V.创建尘土粒子外观
maya硬件渲染粒子与软件渲染元素结合(5)_maya教程
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » maya硬件渲染粒子与软件渲染元素结合(5)_maya教程
相关推荐
-      李嘉诚投资6000万美元给Facebook
-      教你用photoshop外插滤镜做卷页效果_photoshop教程
-      photoshop非主流照片:可爱红脸蛋美女_photoshop教程
-      photoshop制作美女的梦幻环绕光圈_photoshop教程
-      php的ajax框架xajax入门与试用_php教程
-      photoshop表现光线特效的秘密_photoshop教程
-      photoshop滤镜巧妙绘制火流星_photoshop教程
-      在php中全面阻止sql注入式攻击之二_php技巧