html柳树动画,3D教程-柳树生长动画
首先看一下效果圖。
效果圖2。
動畫線框圖。
粒子流的大體情況如下圖。
先來看看樹體生長的制作,下圖是從根部長出的第一個粒子的產生結構分析圖。
定義這個粒子的初始形態,這樣以來由它所引導出的左右樹支樹干就全是這種形態了。
給樹干加上一點扭曲。
樹干底部是不能分叉的,如圖。
產生分叉的測試,我并沒有讓它將粒子發送到其他事件,所以分叉后的粒子會受它影響繼續分叉。
新長出的樹支總是比老的的樹支或樹干細的,而且這種粗細變化是漸變的。
如圖。
這里的樹支是不長樹葉的,所以長到一定時間后會生出長滿樹葉的柳梢,這也就需要下一個事件來控制。
同理,還是用這個測試來產生分叉的柳梢,只稍作了改動。
控制柳梢的生長。
引導柳樹生長的粒子就已經設置好了,最后用一個Delete操縱器限制引導柳梢的粒子的壽命在45左右,不過它們是不參與渲染著色的,這里再次用到了這個分裂產卵(Spawn)的測試來制造樹體。
看到 [樹干樹支長粗] 的這個事件來,這和上面那個使樹支逐漸變細的縮放操縱是一個道理,只不過在這里是讓樹體長粗。
這樣一棵光禿禿的柳樹就誕生了。為了不讓它顯得一毛不拔,這里加了一個環節。
先來看一下一支樹葉的生長動畫,直接用Mopher修改器就可以弄出來了。
要使每個粒子都象這片樹葉一樣,得用 關聯形態操縱器(Shape Instance)。 需要關注的是要鉤選支持變形動畫那一項和下面的關鍵幀偏移方式,另外,葉子物體的軸心必須在葉柄上。
使樹葉生長方向不至于亂七八糟,需要加一個旋轉操縱器來控制一下。
在所有樹葉中挑出一些將會脫落的樹葉。 在前面那個線框的預覽動畫中這些樹葉是以黃色顯示的。
這些將會脫落的樹葉在年齡到達66左右(+/-33)時脫落下來,用年齡測試(Age Test)解決。
關于樹葉的脫落如圖。
為了使引導粒子不被渲染,這只是簡單的在第一個事件中指定了個透明材質,當然也可以在不被渲染的事件標題欄上點右鍵屬性并取消renderable樹干材質在下面指定。
看看這個材質,為了使樹枝的生長點附近的顏色偏綠,我用了ParticalAge貼圖,其下的子貼圖直接用漸變貼圖調出來。而漸變的角度在渲染出來后就將呈現為樹的受光角度,當然這屬于作假的方法。
將其壽命定為83,會發現在Delete上面的AgeTest中測試的年齡為50,這是因為我并不是真想用Delete來干掉粒子,因此在粒子年齡大于50后將進入停止生長的事件中,在那指定了一個靜態材質,它于粒子年齡在50時所呈現的材質相同。
至于樹葉粒子的材質就直接繼承樹葉物體的了,只是在ShapeInstance(關聯形態)的參數中要鉤選Acquire Material。 但由于發送到其他事件后就無法繼承,我只好笨拙地把這個操縱器在之后的所有事件中都復制了一個。
如果你覺得做實體的樹會更好而你的電腦也還不錯的話可以試試用BlobMesh來生成真實的網格樹干,方法很簡單,在場景中建立一個BlobMesh并入圖選種粒子源1和其中相應的事件就行了。 許要提及的是BlobMesh的尺寸(Size)在這沒有作用,是受粒子尺寸控制的,也就是說它會隨著粒子的長大而變粗。另外在使用木紋的3D程序貼圖時可以看到木紋的生長。這些都是很好的特性,然而它也有弊端,你必須把網格細分到足夠小以產生較細的樹枝。
除此,粒子的數量必須足夠以使樹枝不至于脫節,當然這么做會得到更真實的效果。
由于計算機速度限制而不得不改用小平面來解決。對PF稍微了解一點的人都會知道它在預覽時是很慢的,尤其是在幀數比較靠后的時候,順著時間撥動時間滑塊還稍微強點,而逆撥卻會造成類似死機的情況發生。因為max會花大量時間來從第0幀或第一個粒子出生的那幀來逐步推理出當前幀的精確情況。 而渲染是反倒會覺得很快,畢竟每幀只須在前一幀的基礎上作一次推理計算。 于是制作是在粒子動畫中最耗時的環節。
總結
以上是生活随笔為你收集整理的html柳树动画,3D教程-柳树生长动画的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQLite允许向一个integer型字
- 下一篇: django 时区