先看效果图 下面来讲解制作流程 1. 创建草的笔刷,适当调整参数如图。让草直一点,随后好任意旋转
调整笔刷生长动画。我们将主要通过设置start time来生成草地生长的动画。当然,如果你愿意,你还可以调整speed的值来获得不同的生长速度 重命名笔刷为:grass,创建一个空的组物体,我们将用它来放随后复制的笔刷物体。创建一个circle并作100帧的缩放动画。让circle发射粒子,速度为0,我们将在每一个粒子产生的地方放置一个笔刷。场景如图
选择粒子,创建creation expression:
string $grassn=`duplicate -rr -un grass`;//copy grass
parent $grassn grassgrp; //put the duplicated brush under the grassgrp
vector $p=particleshape1.birthworldposition/2.5;//不知道为什么这个birthworldposition和绝对坐标只有出入。总较实际的小,所以我除了个系数。
move -a ($p.x) ($p.y) ($p.z) $grassn;
rotate -r 0 (rand(360)) 0 $grassn;//let brush natural
string $ntemp=`listhistory $grassn`;//find duplicated brush curve
parent $ntemp grassgrp;
string $cmd="setattr "+$ntemp+".starttime "+frame/25;//set the starting grow time
eval($cmd); 现在复制的笔刷能够顺利的生长了,但是回放的时候却不能自动删除,我们得在0帧的时候reset一下 选择grassgrp创建一个命名为reset的表达式:
if(frame==0)
{
select -r -hi grassgrp;//select group and it's children
select -tgl grassgrp; //deselect the group obj
delete;
} 更多教程尽在纳金网maya论坛。
|