1-4期
195人加入学习
(33人评价)
Houdini 影视特效实验班

6个月零基础到入职

价格 ¥ 6198.00
教学计划
承诺服务

主体闪电上自己创建的四个初始属性,第一个i@branch_time属性用来规定分支闪电的存在时间,初始值是8帧到15帧之间;   

 

i@branch_count属性用来规定分支闪电的数量,初始值是-1,表示现在还没有任何分支闪电。主体闪电上的点每找到一个分支闪电的目标点,那么就会形成一个分支闪电,这个属性的值就加1;   

 

并且可以拿i@branch_time属性的值和i@branch_count的值做一个比较,当i@branch_count的值大于i@branch_time属性的最大值的时候,就可以让大于15的分支闪电清除掉;         

 

i@branch_point属性是用来记录主体闪电上的点找到了哪些分支闪电的目标点,初始值是-1,表示主体闪电上的点还没有找到任何一个分支闪电的目标点;

 

v@Cd属性是用来做debug的,初始值全部设置成黑色

 

i[]@already_taken属性是一个数组,同样也是用来存储被找到的分支闪电的目标点的序号,初始值只是一个{},代表是一个空数组,还没有写进任何点序号,这个属性的作用是这样的,比如分支闪电的目标点上有一个序号是147的点,主体闪电上有一个序号为444的点,主体闪电上序号为444的点找到了分支闪电的目标点上序号为147的点,由此创建了一根分支闪电,那么主体闪电上别的点也有可能找到分支闪电的目标点上序号为147的点,也由此创建了一根分支闪电,这样形成的分支闪电就很奇怪,为了避免这种情况,分支闪电的目标点每被找到一个通过append函数被储存进i[]@already_taken属性这个数组中,再通过find函数,确认被找到的分支闪电的目标点的唯一性,那么主体闪电上别的点再去找分支闪电的目标点便会跳过这个已经被找到了的点

[展开全文]

本节关键在于base spline里创建的id是从0-1000,而不是500,所以放进loop中,使两根线有相同的500个id

 

给base spline几个初始值:

i@branch_time = int(fit01(rand(@id), 8, 15));
i@branch_count = -1;
i@branch_point = -1;
v@Cd = set(0, 0, 0);

i[]@already_taken ={};

 

基于每个id随机创建一个值,当帧数+1时,count便+1,加到这个time的值即停止,下面是个数组的创建,用于存放点,当数组中有这个点时,便不再查找

[展开全文]