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