張夢(mèng),尹愛(ài)菊,陳丹
(1.馬鞍山師范高等專(zhuān)科學(xué)校 藝術(shù)設(shè)計(jì)系,安徽 馬鞍山 243000; 2.大連科技學(xué)院 設(shè)計(jì)藝術(shù)學(xué)院,遼寧 大連116052)
在動(dòng)漫創(chuàng)作領(lǐng)域中,使用計(jì)算機(jī)軟件進(jìn)行設(shè)計(jì)是比較常見(jiàn)的一種方法,但這個(gè)過(guò)程,需要相關(guān)專(zhuān)家來(lái)將不同結(jié)構(gòu)的知識(shí)、數(shù)據(jù)進(jìn)行融合,從而完成最后的創(chuàng)作,形成計(jì)算機(jī)動(dòng)漫設(shè)計(jì)軟件[1]。從現(xiàn)實(shí)來(lái)看,擁有一定專(zhuān)業(yè)水準(zhǔn)以及藝術(shù)造詣的人才有限,導(dǎo)致我國(guó)在動(dòng)畫(huà)設(shè)計(jì)領(lǐng)域方面停滯不前,嚴(yán)重落后于歐美國(guó)家。目前以MAYA和2DMax為首的三維動(dòng)畫(huà)軟件雖然較為成功,但需要使用者具備一定的專(zhuān)業(yè)水準(zhǔn)才能夠達(dá)到熟練的狀態(tài)[2]。因此業(yè)內(nèi)的專(zhuān)家、科技人員都希望能夠?qū)?dòng)畫(huà)制作技術(shù)進(jìn)一步改良,朝著更為智能化、自動(dòng)化的方向發(fā)展。李然[3]從網(wǎng)絡(luò)游戲出發(fā),認(rèn)為要想三維游戲動(dòng)畫(huà)角色更加形象,設(shè)計(jì)人員需要對(duì)三維游戲設(shè)計(jì)方面進(jìn)行認(rèn)真探索。李亞琴,方立剛等[4]提出一種基于三維動(dòng)畫(huà)的數(shù)字水印算法,將動(dòng)畫(huà)中的骨骼數(shù)據(jù)作為嵌入水印的載體。李寅以層次化產(chǎn)品造型結(jié)構(gòu)設(shè)計(jì)產(chǎn)品造型基因編碼,并由遺傳算子支撐產(chǎn)品造型設(shè)計(jì)方案的進(jìn)化直至產(chǎn)生用戶滿意的方案。其發(fā)現(xiàn)虛擬現(xiàn)實(shí)環(huán)境下遺傳算法在工業(yè)產(chǎn)品造型設(shè)計(jì)中收斂到全局最優(yōu)結(jié)果速度更快[5]。本研究針對(duì)三維動(dòng)畫(huà)角色的設(shè)計(jì)提出了一種新的方法,在動(dòng)畫(huà)形象創(chuàng)新設(shè)計(jì)當(dāng)中融入了計(jì)算機(jī)技術(shù),并以非均勻有理B樣條(Non-Uniform Rational B-Spline,簡(jiǎn)稱(chēng)NURBS)為基礎(chǔ),為動(dòng)畫(huà)形象設(shè)計(jì)建立了一個(gè)更為智能化的系統(tǒng)。并根據(jù)動(dòng)畫(huà)形象創(chuàng)新設(shè)計(jì)要求,在計(jì)算機(jī)軟件的輔助下完成制作過(guò)程,以此設(shè)計(jì)了一個(gè)全新的動(dòng)畫(huà)模型。本系統(tǒng)由多個(gè)部分組成,作用較為廣泛,不僅可以完成進(jìn)化設(shè)計(jì),還可以在可視化環(huán)境下進(jìn)行重構(gòu)、管理、組裝等,如果出現(xiàn)數(shù)據(jù)偏差或有其它需求,還可以進(jìn)行人工修改。
在NURBS當(dāng)中,B樣條方法是基礎(chǔ),它擁有著B(niǎo)ezier方法[6]的優(yōu)勢(shì),同時(shí)還能夠克服傳統(tǒng)方法的劣勢(shì),即由整體引發(fā)的局部不確定性。
K次B樣條曲線的定義:
(1)
在式(1)中,控制頂點(diǎn)(P(u)):P0,P1,…,Pn;規(guī)范B樣條基函數(shù)(K次):Ni,k(u),其中U為一個(gè)稱(chēng)為節(jié)點(diǎn)矢量的非遞減參數(shù)u的序列:U:u0≤u1≤…un+k+1,所決定的K次分段多項(xiàng)式,即K次多項(xiàng)式樣條。i的取值范圍為0到n-k,表示B樣條函數(shù)的系數(shù),N(i,k)(u)是K次B樣條基函數(shù)。
NURBS方法又稱(chēng)為非均勻有理B樣條,該樣條具有諸多優(yōu)點(diǎn):首先在形狀構(gòu)件上較為多元化,不僅可以解析成為傳統(tǒng)的標(biāo)準(zhǔn)形狀,同時(shí)還可以形成自由型曲面形狀,該設(shè)計(jì)為數(shù)學(xué)帶來(lái)了一種新方法;其次它除了能夠使曲線曲面不斷控制改變,還具有很大的靈活性,能夠?qū)?quán)因子充分利用完善;最后就是該方法比較適合推廣。
1.3.1 NURBS曲線 如式(2)所示,對(duì)于NURBS曲線(K次),可以用有理多項(xiàng)式來(lái)進(jìn)行表示,具體的函數(shù)如下:
(2)
NURBS曲線的特質(zhì)較為明顯,一是具有局部調(diào)整性的狀態(tài),二是可以產(chǎn)生凸包性,三是可以使幾何不變性。同時(shí),權(quán)因子的加入使該曲線的優(yōu)勢(shì)更為顯著,整體調(diào)整十分靈活。
1.3.2 NURBS曲面 NURBS曲面(k1×k2次)的公式為:
(3)
其中Pi,j(i=0,1,…,n;j=0,1,…,m)是以控制網(wǎng)格的形式而存在的,原因是因?yàn)樗男螒B(tài)為拓?fù)渚匦蔚臓顟B(tài)。權(quán)因子:i,j,它與控制點(diǎn)之間有所關(guān)聯(lián)。規(guī)范有理B樣條基函數(shù)(k1次):Ni,k2(v);規(guī)范有理B樣條基函數(shù)(k2次):Ni,k2(v)。
有理B樣條曲面中的幾何特質(zhì)較為明顯,并且與非有理B樣條曲面當(dāng)中的幾何特質(zhì)十分相似。并且還與NURBS曲線有類(lèi)似之處,那就是權(quán)因子同樣具有將曲面形狀進(jìn)行調(diào)整的作用。NURBS曲面之所以優(yōu)點(diǎn)更為顯著,是因?yàn)樗軌驅(qū)㈩?lèi)似圓柱、圓環(huán)等帶有曲面形狀的物體精準(zhǔn)的變現(xiàn)出來(lái),這也是它能夠與B樣條曲面區(qū)分開(kāi)來(lái)的原因所在,由圖1可以看出NURBS所表現(xiàn)出的各類(lèi)形態(tài)。
圖1 圓柱、網(wǎng)型、圓環(huán)(壺身)的NURBS擬合
NURBS曲面可以作為一個(gè)控制網(wǎng)格而存在,與NURBS曲線之間是一樣的,一張NURBS曲面(k×l次)的表示形式可以分為三種:
(1)有理分式:
(4)
在式(4)中,Pi,j(i=0,1,…,m;j=0,1,…,n)作為控制頂點(diǎn)而存在,形成了一個(gè)控制網(wǎng)格(拓?fù)渚匦侮嚵?;權(quán)因子:i,j,該權(quán)因子與控制頂點(diǎn)之間有所關(guān)聯(lián);節(jié)點(diǎn)矢量:u非有理B樣條基函數(shù)(k次):Ni,k(u)(i=0,1,…,m),該函數(shù)位于U上;節(jié)點(diǎn)矢量:v非有理B樣條基函數(shù)(l次):Ni,j(u)(j=0,1,…,n),該函數(shù)位于v上。
U=[u0,u1,…,um+k+1]與V=[v0,v1,…,vn+l+1]
(5)
其中u、v為節(jié)點(diǎn)值,是在德布爾遞推公式的基礎(chǔ)上決定從而得出的。盡管是以張量積曲面的形式推廣得出NURBS曲面公式,但該曲面的表現(xiàn)形式并非單獨(dú)的量積曲面,具體可由以下推理看出。
(2)有理基函數(shù):
(6)
在式(6)中,雙變量有機(jī)函數(shù)為Ri,k;j,l(u,v),該函數(shù)在參數(shù)化方向上具有“u和v”兩種。
(7)
在式(7)中可以看出,Ri,k;j,l(u,v)所表現(xiàn)出的形態(tài)并非是“u和v”的乘積,所以可以證實(shí)上述觀點(diǎn),一張NURBS曲面并不是作為單獨(dú)的個(gè)體(一張張量積曲面)而存在的。
(3)齊次坐標(biāo):
(8)
在式(8)中,控制頂點(diǎn):Pi,j=[i,jPi,ji,j],齊次坐標(biāo):Pi,j。超平面:=1投影:H{S(u,v)},P(u,v)想要構(gòu)建一張NURBS曲面,就需要在平面上進(jìn)行投影。
如果一個(gè)造型想要進(jìn)化,首先要先進(jìn)行種群生成,生成方法是基于該構(gòu)件造型的標(biāo)準(zhǔn)之上,然后再將所形成的種群進(jìn)行詳細(xì)的進(jìn)化。在進(jìn)化過(guò)程中需要精準(zhǔn)把握,尤其對(duì)于每個(gè)個(gè)體之間,要合理化計(jì)算種群對(duì)他們是否適應(yīng)。在選擇父?jìng)€(gè)體后,執(zhí)行遺傳操作,驗(yàn)證是否滿足終止條件。具體流程如圖4所示。
圖4 卡通構(gòu)件創(chuàng)新設(shè)計(jì)流程圖
在遺傳算法當(dāng)中,個(gè)體性能是一項(xiàng)重要的描述內(nèi)容,而該性能的主要指標(biāo)為適應(yīng)度,主要決定著個(gè)體的選擇標(biāo)準(zhǔn)。由于卡通形象的特點(diǎn)比較夸張,形態(tài)較為圓滑,因此本文的適應(yīng)度計(jì)算方法將按照兩項(xiàng)比例標(biāo)準(zhǔn)來(lái)完成。第一項(xiàng)比例標(biāo)準(zhǔn)是最佳結(jié)構(gòu)線比例,該比例可以通過(guò)種子結(jié)構(gòu)線比例以及手工輸入結(jié)構(gòu)線比例兩種方法進(jìn)行設(shè)定;第二項(xiàng)比例標(biāo)準(zhǔn)是當(dāng)前個(gè)體結(jié)構(gòu)線比例。
以某一構(gòu)建為例,假設(shè)其中具有n條結(jié)構(gòu)線,并已經(jīng)明確了其中的兩項(xiàng)比例標(biāo)準(zhǔn),則可以得出公式(9),即計(jì)算個(gè)體的適應(yīng)度。其中Besti為比值,代表的是第一項(xiàng)比例標(biāo)準(zhǔn)當(dāng)中的比值,即第i條結(jié)構(gòu)線與第l條結(jié)構(gòu)線中的半徑;Currenti則代表該兩條結(jié)構(gòu)線(i條與l條)之間的比值。
(9)
fitnessi代表適應(yīng)度函數(shù),該函數(shù)的值越大,證明該個(gè)體的適應(yīng)度值越高,也就是更容易對(duì)陌生環(huán)境進(jìn)行適應(yīng),從而更容易被繁殖。
如果一個(gè)新的個(gè)體沒(méi)有達(dá)到成熟的抑制狀態(tài)則被稱(chēng)之為變異操作,該操作能夠起到維持種群多樣性的作用,用來(lái)搜索一些難以發(fā)現(xiàn)的區(qū)域,例如局部最優(yōu)解之外,其作用顯著。因此,在相同的種群批次中,每個(gè)個(gè)體的優(yōu)劣決定著它們的變異概率。如果個(gè)體的劣勢(shì)較多,那么它產(chǎn)生變異的概率越大;反之,一個(gè)個(gè)體如果較優(yōu)質(zhì),那么出現(xiàn)的變異概率就會(huì)很少。對(duì)此,為了防止早熟現(xiàn)象過(guò)多出現(xiàn),詳細(xì)分析了早熟程度,并設(shè)計(jì)了如下方法,能夠?qū)ψ儺惛怕视兴m應(yīng),使種群能夠保持多樣性的狀態(tài)。
(10)
Pm=Pm minf>favg
(11)
在以上公式中,Pm min、Pm min所代表的均為常數(shù),變異個(gè)體適應(yīng)度值由f來(lái)表現(xiàn),fmax代表當(dāng)前種群最大適應(yīng)度,fmin代表當(dāng)前種群最小適應(yīng)度,當(dāng)前種群的平均適應(yīng)度由favg代表。由以上公式可以看出,變異概率不是固定的,而是能夠隨時(shí)變化,變化依據(jù)是染色體的早熟程度以及每個(gè)待變異個(gè)體的適應(yīng)度值。
(1)為了將初始種群P生成,需要對(duì)其進(jìn)行實(shí)數(shù)編碼。
(2)為了將群體適應(yīng)度平均值(AVG)得出,需要先對(duì)其適應(yīng)度函數(shù)進(jìn)行定義,并將每個(gè)個(gè)體(種群)中的適應(yīng)度值進(jìn)行計(jì)算。
(3)將遺傳策略精準(zhǔn)化確定,對(duì)種群大小(N)進(jìn)行篩選,并進(jìn)行一系列遺傳操作(變異、交叉)。
(4)判斷新一代群體適應(yīng)度均值能夠達(dá)到預(yù)定迭代次數(shù),如果沒(méi)有達(dá)到需要返回步驟2,或者對(duì)該策略進(jìn)行修改再返回,如果達(dá)到標(biāo)準(zhǔn)即流程結(jié)束。
為了確定遺傳算法的精準(zhǔn)度,在VC++.net平臺(tái)上進(jìn)行了仿真模擬實(shí)驗(yàn),用戶可以自由操作,隨意更改數(shù)值,最終得到一個(gè)完整的卡通模型。下文將以大噴菇為實(shí)驗(yàn)案例,將種群數(shù)N設(shè)定為100,交叉概率Pc設(shè)定為0.65,變異概率Pm設(shè)定為0.05,迭代次數(shù)設(shè)定為1000。圖5為最終得到的三維動(dòng)畫(huà)形象“大噴菇”身體。經(jīng)過(guò)該實(shí)驗(yàn)可以證實(shí),采用遺傳算法來(lái)制作卡通構(gòu)件是可以做到的,更能體現(xiàn)出其中的智能型,能夠用于動(dòng)漫制作當(dāng)中,符合標(biāo)準(zhǔn)。
圖5 進(jìn)化得到三維動(dòng)畫(huà)形象“大噴菇”身體
我國(guó)在動(dòng)畫(huà)制作方面的研究有限,整體技術(shù)還需進(jìn)一步改良,朝著更為智能化、自動(dòng)化的方向發(fā)展。因此,深入研究了當(dāng)前創(chuàng)新設(shè)計(jì)現(xiàn)狀以及動(dòng)畫(huà)形象設(shè)計(jì)過(guò)程,提出了以NURBS為基礎(chǔ)的進(jìn)化設(shè)計(jì)方法,并構(gòu)建了一個(gè)CAD系統(tǒng),該系統(tǒng)能夠完成多種組成部分,并可以進(jìn)行人工修改。利用該系統(tǒng)在VC++.net平臺(tái)上進(jìn)行了仿真模擬實(shí)驗(yàn),結(jié)果證實(shí)能夠適用于動(dòng)漫制作當(dāng)中,為設(shè)計(jì)人員以及技術(shù)專(zhuān)家們提供了參考價(jià)值,提高了設(shè)計(jì)效率。