高 晶,孟 鹿
(青島農(nóng)業(yè)大學(xué),山東 青島 266109)
隨著大型游戲、影視特效和VR應(yīng)用的拓展,在動畫制作中經(jīng)常出現(xiàn)模擬大規(guī)模生物群體行為的場景,通常群體行為控制需要具備良好的全局與局部效果[1]才能保證動畫場景的逼真性,因此不能通過簡單的設(shè)置直接實現(xiàn),必須對群體動畫采取引導(dǎo)控制,或者使其實現(xiàn)自主控制[2-3]。為了提高大場景動畫的真實性,高性能群體動畫行為控制成為動畫技術(shù)的重要研究方向。
針對群體動畫行為控制在全局表現(xiàn)出的整體趨向性,以及局部表現(xiàn)出的差異性,現(xiàn)有研究大多采用群體智能算法進行建??刂?。群體智能算法通過仿生計算,可以很好的模擬自然狀態(tài)下群體行為,常被用于處理各類尋優(yōu)和調(diào)度問題。文獻[4]采用FA算法對群體動畫進行建模,根據(jù)亮度與距離關(guān)系設(shè)計運動策略,同時通過速度調(diào)節(jié)進行躲避。FA算法不存在質(zhì)量與速度屬性,需要在動畫制作時通過人為添加,實現(xiàn)復(fù)雜。文獻[5]采用果蠅算法對群體動畫疏散建模,并引入FA算法的感知機理來改善控制的平滑性。該方法中果蠅的屬性需要全局數(shù)據(jù)支持,導(dǎo)致其整體控制效果不佳。文獻[6]采用了布谷鳥算法查詢整體最佳行為,并將其和個體行為融合,該方法獲得了較好的控制連貫性。文獻[7]在布谷鳥基礎(chǔ)上融合了Logistic混沌序列,利用Logistic迭代得到鳥巢位置,并根據(jù)步長更新實現(xiàn)自主尋優(yōu)。布谷鳥算法在尋優(yōu)計算過程中,具有較小的復(fù)雜度,容易實現(xiàn),可是其尋優(yōu)效率和局部尋優(yōu)效果一般。人工魚群算法(AFSA)符合群體共性與個性要求,且具有動態(tài)感知性能[8],本文在AFSA基礎(chǔ)上進行了優(yōu)化,改善AFSA的尋優(yōu)性能,并基于改進AFSA實現(xiàn)群體動畫行為的高性能控制。
在對群體動畫行為進行控制時,內(nèi)部個體的描述性能很重要。考慮到動畫的平順性,這里依據(jù)RGB空間模型對個體進行描述。假定個體動畫圖像區(qū)域面積為s,則根據(jù)區(qū)域內(nèi)所有像素點的RGB分量得到其色彩度為
(1)
根據(jù)RGB進一步得到個體動畫圖像熵為
G=E(log2pi)
(2)
其中,E(·)為熵函數(shù);pi為像素i的出現(xiàn)概率。利用圖像熵G,可以增強個體特征描述的細膩程度。對于個體動畫具有的紋理特征,描述如下
M(i,j)=#{(x1,y1),(x2,y2)∈L×W|f(x1,y1)=i,f(x2,y2)=j}
(3)
M(i,j)為由i灰度與j灰度信息構(gòu)造的共生矩陣。#{·}用于統(tǒng)計包含的個體動畫量;f(x,y)為群體動畫目標(biāo),對應(yīng)活動的區(qū)域范圍是L×W。
群體動畫行為容易出現(xiàn)碰撞,為準(zhǔn)確檢測碰撞,同時避免動畫行為控制的不自然,這里根據(jù)個體動畫的位置與加權(quán)策略,構(gòu)建如下碰撞檢測模型
(4)
其中,n為群體動畫的規(guī)模;li為依據(jù)特征判斷出的個體動畫i的頂點位置;wi為個體i的控制權(quán)重;Bi,k(t)為B樣條曲線基。碰撞模型參數(shù)受個體移動影響,于是,對個體移動檢測如下
(5)
(6)
考慮到群體動畫的方向趨同性,應(yīng)該保證全部個體的總體趨勢,引入聚合中心,將移動方向的檢測控制優(yōu)化如下
(7)
其中,cj為個體動畫j的聚合中心。
在群體動畫行為模型中,通過特征與位置信息獲取得到個體動畫目標(biāo),并進行了碰撞檢測。為更好的對群體動畫共性與個性行為采取控制,本文采用改進人工魚群模擬群體動畫,通過尋優(yōu)獲得群體動畫的最佳控制效果。
對ASFA的視野和步長進行分析優(yōu)化。其中,視野將影響魚群的隨機性與效率,步長將影響收斂性與尋優(yōu)。為確保它們的合理性,這里設(shè)計具有調(diào)節(jié)系數(shù)的更新公式
(8)
其中,horizon、step依次代表視野與步長;λ代表調(diào)節(jié)系數(shù)。在魚群向目標(biāo)接近的過程中,應(yīng)該讓調(diào)節(jié)系數(shù)逐漸降低。據(jù)此,將調(diào)節(jié)系數(shù)λ公式設(shè)計為
λ=exp(-a×(t/Tmax)α)
(9)
其中,a代表常系數(shù);t代表迭代次數(shù);Tmax代表t的上限;α代表調(diào)節(jié)指數(shù)。進行迭代操作時,令調(diào)節(jié)系數(shù)λ不斷降低,從而使個體動畫接近聚合中心的過程中實時保持合理的horizon與step,確保適應(yīng)性和收斂性。
對ASFA的行為進行分析優(yōu)化,它們是控制魚群活動的引導(dǎo)要素。傳統(tǒng)ASFA的三種行為更新公式為
(10)
(11)
其中,μ表示調(diào)整因子,它的計算公式為
μ=μmax-λ(μmax-μmin)
(12)
其中,μmax、μmin依次代表調(diào)整因子的上下閾值,λ為視野與步長的調(diào)節(jié)系數(shù)。據(jù)此可知,移動策略的更新與視野、步長有關(guān),從而使得魚群移動的依據(jù)更加充分合理,并且調(diào)整因子控制了移動的隨機性。在最初更新時,考慮到群體的不確定性較大,采用較小的調(diào)整因子,增加當(dāng)前狀態(tài)的保持性,避免局部解的出現(xiàn)。在中后期更新時,考慮到魚群狀態(tài)的趨穩(wěn),不斷增加調(diào)整因子,使其快速收斂。
在考慮群體動畫碰撞時,魚群個體應(yīng)該具有相互躲避的認知,這里引入R-A模型。在R-A中,包含以r1、r2和r為半徑的三個圓形區(qū)域,且r1 在ASFA中,所有的人工魚之間看似具有整體的信息交互,來保證它們具有向心性。但是實際上只具備局部交互,通過不斷調(diào)整實現(xiàn)整體平衡效果??紤]到魚群交互的復(fù)雜度,這里基于局部交互設(shè)計通信策略。將所有人工魚的通信覆蓋區(qū)域定義為:以所描述個體動畫質(zhì)心做為中心,半徑是r的三維空間。將交互對象定義為:處于通信區(qū)域中的全部個體。每次迭代,對感知范圍中個體產(chǎn)生的移動信息進行記錄,并向外傳播,從而擴散至全局。關(guān)于本文算法的動畫行為控制流程描述如圖1所示。 圖1 改進ASFA的群體動畫行為控制流程 基于Matlab對群體智能算法及其動畫行為控制性能進行仿真。初始化λ計算的常系數(shù)a=25,調(diào)整因子的上下閾值分別為μmax=0.95、μmin=0.25,視野和步長的閾值分別為horizonmin=0.001、stepmin=0.001。 對改進ASFA的性能進行驗證,同時選擇與傳統(tǒng)ASFA作對比。實驗選取的測試函數(shù)如下: f1(x)=-cos(2π|x|)+|x|+1 (13) (14) 測試函數(shù)的搜索范圍均為[-100,100],限定算法的迭代次數(shù)500,得到算法的收斂曲線與性能對比,如圖2和表1所示。根據(jù)收斂曲線與平均時間對比可知,兩種測試函數(shù)情況下,改進ASFA算法的收斂性均得到明顯提高,測試函數(shù)為f1(x)時大約迭代170次完成最優(yōu)解搜索,執(zhí)行時間0.493s;測試函數(shù)為f2(x)時大約迭代80次完成最優(yōu)解搜索,執(zhí)行時間0.276s,表明改進ASFA算法具有更快的收斂速度,雖然改進ASFA較傳統(tǒng)ASFA存在一定的復(fù)雜度增加,但是每一輪迭代全局搜索性能的提升,使得改進ASFA在整體算法上具有更好的收斂性。另外,f1(x)與f2(x)兩種測試函數(shù)下,改進ASFA算法的方差分別為0.0841和0.0032,結(jié)合收斂曲線的平滑性和收斂效果,顯然比未改進前具有更好的計算精度與穩(wěn)定性。 圖2 算法收斂曲線 表1 算法性能對比 在驗證群體動畫行為性能時,從耗時、碰撞數(shù)量和連貫性三個方面進行實驗分析,并與文獻[5]與文獻[7]中提出的方法作對比。設(shè)置群體動畫規(guī)模初始值為100,最大規(guī)模為1000,以100為步長采取遞增。在群體動畫規(guī)模變化過程中,得到群體動畫行為時間曲線如圖3所示。由曲線對比可知,本文方法對應(yīng)的群體動畫行為時間曲線受群體規(guī)模影響較小,且上升率極小,由于改進ASFA算法提高了收斂速度與全局規(guī)劃性能,所以在群體動畫規(guī)模增加的過程中,行為時間的變化較為線性。 圖3 群體動畫行為時間曲線 在群體動畫規(guī)模增長的過程中,群體動畫行為碰撞數(shù)量如圖4所示。由曲線對比可知,本文方法的碰撞次數(shù)明顯少于對比方法,這得益于本文對碰撞行為的優(yōu)化,從群體中的個體,到動畫場景中的移動物體、靜止障礙多方面采取了碰撞檢測和躲避策略,顯著降低了群體動畫行為的碰撞發(fā)生。 圖4 群體動畫行為碰撞數(shù)量曲線 表2統(tǒng)計了三種方法對應(yīng)的群體動畫行為連貫性,根據(jù)結(jié)果可知,本文方法的動畫連貫性分別比文獻[5]與文獻[7]方法提高了0.107和0.049。導(dǎo)致該結(jié)果的原因是由于改進ASFA優(yōu)化了視野與步長更新方式,每次迭代搜索時,使個體動畫在接近聚合中心的過程中實時保持合理性,從而令動畫的社會行為具有良好的連貫平順性。 表2 動畫行為連貫性 本文在對群體動畫場景中的個體動畫圖像特征、區(qū)域和碰撞分析基礎(chǔ)上,提出了改進ASFA的動畫行為控制方法。利用改進ASFA群體算法模擬群體動畫行為,并分別對算法中視野、步長、行為和碰撞進行了相應(yīng)優(yōu)化設(shè)計,使改進ASFA能夠快速有效的實現(xiàn)群體動畫行為控制。通過測試函數(shù),驗證了改進ASFA算法顯著改善了穩(wěn)定性與全局收斂性;通過群體動畫行為仿真,驗證了本文方法控制的高效性,明顯降低了動畫碰撞數(shù)量,提高了動畫連貫性。4 改進ASFA動畫行為控制流程
5 仿真與結(jié)果分析
5.1 改進AFSA算法性能驗證
5.2 群體動畫行為性能驗證
6 結(jié)束語