王小銘,鐘林海
(1.廣東科技學(xué)院計(jì)算機(jī)系,廣東東莞 523083;2.華南師范大學(xué)計(jì)算機(jī)學(xué)院,廣東廣州 510631;3.深圳市龍崗區(qū)龍崗街道辦大綜管中心,廣東深圳 518116)
基于物理與生物學(xué)機(jī)理的人工魚行為模擬
王小銘1,2*,鐘林海3
(1.廣東科技學(xué)院計(jì)算機(jī)系,廣東東莞 523083;2.華南師范大學(xué)計(jì)算機(jī)學(xué)院,廣東廣州 510631;3.深圳市龍崗區(qū)龍崗街道辦大綜管中心,廣東深圳 518116)
提出一種簡(jiǎn)化的基于物理與生物學(xué)原理相結(jié)合的對(duì)象建模方法,并運(yùn)用到魚群運(yùn)動(dòng)的模擬之中.在該模擬中,人工魚群的每一個(gè)體被定義為一個(gè)自主智能體,在個(gè)體生物感知模型和群體行為運(yùn)動(dòng)的物理機(jī)制約束下,采用運(yùn)動(dòng)學(xué)原理和漸變動(dòng)畫技術(shù),較好地解決了人工魚集群運(yùn)動(dòng)中個(gè)體與整體之間的運(yùn)動(dòng)協(xié)調(diào)性問(wèn)題,在普通PC機(jī)上實(shí)現(xiàn)了三維魚群游動(dòng)較好的計(jì)算機(jī)模擬效果.
人工魚; 集群運(yùn)動(dòng); 物理與生物學(xué)機(jī)理; 漸變動(dòng)畫
群體生物模擬一直是計(jì)算機(jī)動(dòng)畫研究的熱點(diǎn)之一,而生物個(gè)體的行為建模則是其最核心的技術(shù).長(zhǎng)期以來(lái),國(guó)內(nèi)外學(xué)者一直探索各種模擬生物及其行為的方法[1-2].而動(dòng)畫實(shí)現(xiàn)的方法則主要有傳統(tǒng)的“關(guān)鍵幀”技術(shù)和漸變技術(shù).文獻(xiàn)[3]、[4]是我國(guó)學(xué)者涂曉媛和班曉娟以行為建模結(jié)合人工生命建模方法所做的人工魚模擬研究,代表了人工魚模擬領(lǐng)域的主要成果.然而,所有這些對(duì)象與行為建模的過(guò)程及其動(dòng)畫實(shí)現(xiàn),都需要描述個(gè)體在某一時(shí)刻的位置、形狀、運(yùn)動(dòng)狀態(tài)及其與其他個(gè)體的相關(guān)關(guān)系,不僅工作量巨大而且對(duì)硬件資源的要求非常高(往往需要在圖形工作站環(huán)境中才能實(shí)現(xiàn)),集群行為模擬的復(fù)雜程度就更不用說(shuō)了.針對(duì)這一問(wèn)題,本文提出一種簡(jiǎn)化的基于物理與生物學(xué)原理相結(jié)合的對(duì)象建模方法,并運(yùn)用到魚群運(yùn)動(dòng)的模擬之中.在該模擬中,人工魚群的每一個(gè)體被定義為一個(gè)自主智能體,在個(gè)體生物感知模型和群體行為運(yùn)動(dòng)的物理機(jī)制約束下,采用運(yùn)動(dòng)學(xué)原理和漸變動(dòng)畫技術(shù),較好地解決了人工魚集群運(yùn)動(dòng)中個(gè)體與整體之間的運(yùn)動(dòng)協(xié)調(diào)性問(wèn)題,在普通PC機(jī)上實(shí)現(xiàn)了三維魚群游動(dòng)的計(jì)算機(jī)模擬,達(dá)到了較好的模擬效果.
生物的感知和運(yùn)動(dòng)行為功能是各種生物得以進(jìn)化繁衍的基礎(chǔ).每種生物的基本行為均依靠不同的感觀信息來(lái)決定,模擬生物的感知和運(yùn)動(dòng)行為就是要解決好如何根據(jù)其感受環(huán)境的準(zhǔn)確程度,進(jìn)而采取相應(yīng)運(yùn)動(dòng)行為的逼真程度.
虛擬魚的感知功能由代表魚的視覺(jué)、嗅覺(jué)、觸覺(jué)等感覺(jué)器官的感知器實(shí)現(xiàn).通過(guò)這些感知器從環(huán)境信息中取得水溫、水深、水流方向和速度等水環(huán)境的相關(guān)信息,以及食物、捕食者、障礙物等場(chǎng)景中的對(duì)象信息.經(jīng)過(guò)初步的篩選處理后,將這些信息傳遞給行為決策模塊,以便對(duì)個(gè)體的進(jìn)一步行為作出決策[3].為了感知模型得到簡(jiǎn)化,本文把視覺(jué)作為個(gè)體的唯一感觀,每一個(gè)體通過(guò)眼睛觀察周圍可視范圍內(nèi)與其生存有關(guān)的目標(biāo),通過(guò)視覺(jué)范圍檢測(cè)和目標(biāo)距離計(jì)算確定感知程度,并為可能的碰撞作出規(guī)避預(yù)判.
圖1表示的是集群中個(gè)體的局部視野[5],圖中用粗線條表示的個(gè)體可見(jiàn)視野是一個(gè)以r為半徑的扇形區(qū)域.任何其他個(gè)體落入這個(gè)區(qū)域,都會(huì)被這個(gè)個(gè)體看見(jiàn).扇形區(qū)域由半徑r及角度θ兩個(gè)參數(shù)決定.這2個(gè)參數(shù)的取值會(huì)影響最后的群聚行為:較大的半徑r會(huì)讓個(gè)體看到群體中更多的同伴,從而產(chǎn)生凝聚性更強(qiáng)的群體;較小的半徑r會(huì)讓整個(gè)群體分裂,形成較小群體的可能性較高.參數(shù)θ決定了每個(gè)個(gè)體的視野范圍,視野寬廣,就會(huì)得到組織良好的群體;視野較窄,得到的群體傾向就會(huì)如同螞蟻那樣沿著單一路徑行進(jìn),如圖2所示[5].
圖1 個(gè)體的局部視野
圖2 寬廣視野與狹窄視野效果圖
一般情況下大部分魚都在視覺(jué)感知范圍的半徑之內(nèi),所以在進(jìn)行視覺(jué)感知檢測(cè)的時(shí)候首先檢測(cè)目標(biāo)是否在視覺(jué)感知半徑范圍之內(nèi),判斷時(shí)只需要簡(jiǎn)單比較自身坐標(biāo)和其他對(duì)象坐標(biāo)之間的距離D是否小于相應(yīng)的感知器官的感知范圍半徑即可.感知主體魚對(duì)象m與感知客體魚對(duì)象o之間的距離公式如下:
(1)
感知程度為距離的反比例函數(shù),而且在魚群運(yùn)動(dòng)中,魚個(gè)體受到鄰居的影響遠(yuǎn)遠(yuǎn)大于遠(yuǎn)距離魚的影響,為距離的2次或者3次方函數(shù)[6].
在集群整體考慮過(guò)程中,本文使用270°的視野角度,得到了組織結(jié)構(gòu)良好的群體.定義視覺(jué)范圍是為了限制生物個(gè)體的感知范圍,從而避免了可以無(wú)限感知環(huán)境的不真實(shí)行為.
在感知建模時(shí)有2點(diǎn)特殊的簡(jiǎn)化處理:第一是場(chǎng)景中魚對(duì)象數(shù)目多時(shí),根據(jù)集群運(yùn)動(dòng)的生物原理,魚只是對(duì)感知范圍內(nèi)的目標(biāo)感興趣.第二是對(duì)于幾何形狀較復(fù)雜的障礙物和角色,可采用長(zhǎng)方體、圓柱或球體作為邊界箱,以加速實(shí)現(xiàn)遮擋判斷,提高感知性能.
與視覺(jué)范圍檢測(cè)直接相關(guān)的另一個(gè)重要問(wèn)題就是碰撞檢測(cè),對(duì)可能的碰撞作出規(guī)避預(yù)判.碰撞檢測(cè)就是檢測(cè)虛擬場(chǎng)景中不同對(duì)象之間是否發(fā)生了碰撞.如果一個(gè)物體的任何部分進(jìn)入視野范圍并且沒(méi)有被其他物體全部遮擋,則物體是可見(jiàn)的.本文對(duì)于礁石遮擋體采用包圍球代替進(jìn)行遠(yuǎn)處對(duì)象的可見(jiàn)性判斷.虛擬魚需要處理的不是碰撞發(fā)生之后如何進(jìn)行下一步行為,而是需要考慮如何規(guī)避可能發(fā)生的碰撞,也就是虛擬魚是不允許和場(chǎng)景中的障礙物發(fā)生碰撞的.當(dāng)“個(gè)體”分析得出對(duì)當(dāng)前行為的執(zhí)行將會(huì)導(dǎo)致碰撞的發(fā)生時(shí),將發(fā)出碰撞規(guī)避的行為決策,所以關(guān)鍵是如何推斷當(dāng)前行為狀態(tài)下自身是否會(huì)和其它礁石等對(duì)象發(fā)生碰撞.分析過(guò)程如下:
對(duì)于可能發(fā)生的碰撞,需要滿足2個(gè)先決條件:一是碰撞主體M與碰撞客體O之間的距離Dm小于某一閾值;二是碰撞客體正在或者可能出現(xiàn)于碰撞主體當(dāng)前行為的路徑上.而且先執(zhí)行第1點(diǎn)的判斷,如果滿足再執(zhí)行第2點(diǎn)判斷.這是由于第1次對(duì)距離的判斷將剔除掉大部分對(duì)象,第2次判斷只需要針對(duì)比較少的對(duì)象進(jìn)行即可.另外對(duì)距離判斷的計(jì)算量也要遠(yuǎn)少于對(duì)游動(dòng)路徑判斷的計(jì)算量,所以這樣的判斷順序是合理的.
首先,設(shè)置運(yùn)算向量a為個(gè)體到障礙物位置間的差值.接著取a和v的內(nèi)積,將a投射到v上,由此可以得到向量p,用向量p減去向量a得到向量b,如果向量v和圓在某處相交,則必須滿足以下2個(gè)條件:首先,p的長(zhǎng)度必須小于v的長(zhǎng)度;其次,b的長(zhǎng)度必須小于該障礙物的半徑r.如果兩者均滿足,則需要校正轉(zhuǎn)向力;否則,該個(gè)體可繼續(xù)沿著當(dāng)前方向前進(jìn).本文模擬的是海底大規(guī)模的群體運(yùn)動(dòng),為了更好地展示效果,將魚群的活動(dòng)范圍限制在一個(gè)區(qū)域內(nèi),對(duì)于該區(qū)域邊界也實(shí)行碰撞檢測(cè)規(guī)避.
圖3 碰撞檢測(cè)示意圖
根據(jù)生物魚的特性,采用以下這些行為決策準(zhǔn)則:
(1) 行為的優(yōu)先權(quán):以外部信息和自身意圖決定當(dāng)前最優(yōu)先的行為;
(2) 行為的持續(xù)和終止:在意圖得到滿足以前,保持對(duì)當(dāng)前行為的執(zhí)行,避免行為發(fā)生抖動(dòng).
行為決策主要基于外部信息和內(nèi)部的自身意圖.個(gè)體負(fù)責(zé)接收并分析外部信息,包括水環(huán)境信息以及感知到的各種對(duì)象的信息,結(jié)合當(dāng)前的自身意圖序列,作出最后的行為決策.這里的行為決策包括兩部分內(nèi)容:首先是行為模式的確定,包括碰撞規(guī)避、逃脫捕食、休閑游動(dòng)、集群游動(dòng)等;然后是對(duì)確定的行為模式進(jìn)行參數(shù)化.行為模塊的任務(wù)則是將參數(shù)化的行為模式分解為例如前進(jìn)、轉(zhuǎn)彎等的具體動(dòng)作.
2.1行為選擇系統(tǒng)的物理學(xué)原理
為了簡(jiǎn)化模型設(shè)計(jì),針對(duì)魚個(gè)體的模擬引入剛體模型的概念.剛體內(nèi)任意兩點(diǎn)間的距離是始終保持不變,但實(shí)際上物體受力時(shí)總會(huì)有變形.如果物體受力時(shí)變形很小,并且忽略變形后不影響研究問(wèn)題的實(shí)質(zhì),則仍可把變形前后的物體看作一個(gè)剛體,這樣簡(jiǎn)化了對(duì)問(wèn)題的研究.本文中對(duì)大規(guī)模群體模擬時(shí),不考慮同一個(gè)體各部位之間力的相互作用及由此產(chǎn)生的形變.
在剛體運(yùn)動(dòng)建模中,研究的重點(diǎn)是如何根據(jù)物體的物理特性,計(jì)算出物體在不同時(shí)刻所受的合力和合力矩,建立物體運(yùn)動(dòng)的數(shù)學(xué)表示,即運(yùn)動(dòng)方程.剛體的運(yùn)動(dòng)狀態(tài)可表示為式(2)所示的初值問(wèn)題[5]:
(2)
其中p代表物體在環(huán)境中的狀態(tài),一般是一個(gè)向量,描述了剛體的位置、方向等.t是當(dāng)前時(shí)刻,v是物體的速度,w是物體的角速度,a是加速度,ε是物體的角加速度,式(2)為物體的運(yùn)動(dòng)方程或物體的狀態(tài)變化方程.直接或間接使用物理方法及相應(yīng)的物理參量,建立物體行為的數(shù)學(xué)表示,以此控制物體的行為,獲得逼真的運(yùn)動(dòng)效果.
在本文建立的個(gè)體類RigidBody中,使用fWidth(寬)、fLength(長(zhǎng))、fHeight(高)3個(gè)量來(lái)表示個(gè)體的形狀特性.
運(yùn)動(dòng)學(xué)模型就是通過(guò)直接給出物體的運(yùn)動(dòng)速度或者運(yùn)動(dòng)軌跡,來(lái)控制物體的運(yùn)動(dòng)規(guī)律.最簡(jiǎn)單的,可以通過(guò)確定每一時(shí)刻物體上的點(diǎn)在空間世界坐標(biāo)系中的位置來(lái)實(shí)現(xiàn).當(dāng)物體只有運(yùn)動(dòng)而沒(méi)有變形時(shí),物體上點(diǎn)的相對(duì)位置保持不變,它的運(yùn)動(dòng)可以用一個(gè)統(tǒng)一的公式來(lái)表示:
(3)
根據(jù)真實(shí)世界中魚個(gè)體的情況,可以把魚左右兩側(cè)鰭擺動(dòng)的力抽象為調(diào)整自身轉(zhuǎn)彎和產(chǎn)生角加速度的推動(dòng)力,把尾巴擺動(dòng)產(chǎn)生的力抽象為使個(gè)體產(chǎn)生直線加速度的推進(jìn)力.為了在三維空間中達(dá)到更逼真的模擬效果,同時(shí)在個(gè)體身上加入上下兩側(cè)的推進(jìn)力來(lái)改變魚上浮或下沉的運(yùn)動(dòng)狀態(tài).在個(gè)體類中,引入6個(gè)力來(lái)表示個(gè)體在運(yùn)動(dòng)過(guò)程中的一系列受力情況.
圖4是各力作用在個(gè)體上的示意圖,其中Thrust為作用在個(gè)體尾部的推進(jìn)力,PThrust、SThrust、UThrust、DThrust為作用在個(gè)體左右上下側(cè)的推進(jìn)力,4個(gè)力使個(gè)體產(chǎn)生轉(zhuǎn)動(dòng),F(xiàn)a為個(gè)體受到的流體阻力.
圖4 個(gè)體受力示意圖
2.2集群運(yùn)動(dòng)的實(shí)現(xiàn)
在模擬群聚運(yùn)動(dòng)過(guò)程中,個(gè)體的受力是根據(jù)自身和周圍個(gè)體的運(yùn)動(dòng)情況而實(shí)時(shí)變化的,我們把這些力全部設(shè)置為距離、角速度等一些物理量的函數(shù),由個(gè)體根據(jù)這些量來(lái)自我調(diào)整,使個(gè)體更具有智能性.
根據(jù)凝聚和分離規(guī)則,同類個(gè)體都有聚集在一起的傾向,但是當(dāng)個(gè)體之間的距離小于某一閾值時(shí),分離規(guī)則的貢獻(xiàn)必須足夠大,才能避免個(gè)體碰撞在一起.所以,個(gè)體之間的分隔距離是很重要的參數(shù).為此,本文將用作避開(kāi)的轉(zhuǎn)向力,寫成分隔距離的函數(shù).使用簡(jiǎn)單的反函數(shù),使分隔的轉(zhuǎn)向力和分隔距離成反比,如下式:
Fs=m1*steeringforce*
(unit[i].length*factor)/fabs(d),
(4)
其中,m1是根據(jù)個(gè)體與鄰近單位位置關(guān)系而設(shè)定的轉(zhuǎn)向力方向系數(shù),steeringforce是設(shè)置轉(zhuǎn)向力的初始值,factor是設(shè)置的初始分離因子,unit[i].length是個(gè)體的身長(zhǎng),d是兩者之間的距離向量.由上式可以看出,分隔距離越小,得出的避開(kāi)轉(zhuǎn)向力就越大.
就對(duì)齊而言,考慮某個(gè)體當(dāng)前的方向與其臨近成員間平均方向間的角度.如果該角度較小,只需對(duì)其方向做小幅度調(diào)整;如果該角度較大,就需要做較大的調(diào)整.為了實(shí)現(xiàn)上述功能,把對(duì)齊用的轉(zhuǎn)向力,設(shè)定成和該成員當(dāng)前方向及其臨近成員平均方向間的角度成正比.運(yùn)用下式:
Fs+=m1*steeringforce*fabs(sub2),
(5)
其中,sub2是個(gè)體速度與平均速度的向量差.
2.3人工魚漸變動(dòng)作的實(shí)現(xiàn)
將魚個(gè)體看成是剛體而進(jìn)行的行為分析和行為選擇,對(duì)于魚群整體游動(dòng)來(lái)看,是符合自然界規(guī)律的.但是從單個(gè)個(gè)體來(lái)看,就顯得機(jī)械、僵硬.為了解決這個(gè)問(wèn)題,我們采用漸變動(dòng)畫技術(shù),使剛體魚的運(yùn)動(dòng)具有柔體魚運(yùn)動(dòng)時(shí)的身體形變效果.
這里強(qiáng)調(diào)“動(dòng)作”隱含“無(wú)意識(shí)”的概念[7].本文將魚的碰撞規(guī)避、逃脫捕食者等歸為行為范疇,而向前游動(dòng)的實(shí)現(xiàn)、轉(zhuǎn)彎的實(shí)現(xiàn)等歸結(jié)為動(dòng)作范疇,這樣的好處是可以分層次處理,條理清晰,有利于分工協(xié)作,最重要的是便于擴(kuò)展.
根據(jù)魚的運(yùn)動(dòng)規(guī)律,將魚的動(dòng)作大致概括成前進(jìn)、左拐和右拐.人工魚的任何行為都可由這3個(gè)動(dòng)作組成.
(1)前進(jìn).前進(jìn)是魚在運(yùn)動(dòng)中的主要?jiǎng)幼鳎跊](méi)有障礙物或者其他力的作用下,魚基本都會(huì)以前進(jìn)的運(yùn)動(dòng)為主,勻速與減速前進(jìn)時(shí),魚的尾鰭基本都是不會(huì)擺動(dòng)的,只有在加速前進(jìn)時(shí),魚的尾鰭才左右擺動(dòng),以產(chǎn)生向前的推動(dòng)力.本文抽象出魚在游動(dòng)中的5個(gè)狀態(tài)模型(圖5).其中L是尾巴完全左偏的狀態(tài),ML是尾巴左偏與中間位置的中間狀態(tài),M是中間位置,MR右偏與中間位置的中間狀態(tài),R是右偏狀態(tài).
圖5 魚在游動(dòng)中的5個(gè)狀態(tài)
基于漸變動(dòng)畫技術(shù),對(duì)個(gè)體模型進(jìn)行插值計(jì)算,生成具有形變的柔體動(dòng)畫效果.具體思想如下:
①由L變化到ML可以通過(guò)以下公式計(jì)算:
Dest=L*(1-t)+ML*t;
(6)
②由ML變化到M可以通過(guò)以下公式計(jì)算:
Dest=ML*(1-t)+M*t;
(7)
③由M變化到MR可以通過(guò)以下公式計(jì)算:
Dest=M*(1-t)+MR*t;
(8)
④由MR變化到R可以通過(guò)以下公式計(jì)算:
Dest=MR*(1-t)+R*t,
(9)
其中Dest是目標(biāo)模型,t從0漸變到1,L、ML、M、MR和R是上文各狀態(tài)的源模型,從上面式子可以得出,個(gè)體魚左右擺動(dòng)的式子可以用式(6)~(9)聯(lián)合得出.因?yàn)長(zhǎng)→ML→M→MR→R的漸變過(guò)程如果選用線性變化,個(gè)體魚的擺尾效果將非常機(jī)械僵硬,不符合真實(shí)魚的運(yùn)動(dòng)規(guī)律.本文選用非線性變化:T=tan(t),用T代替t.按照此曲線變化,魚尾鰭的擺動(dòng)就符合自然規(guī)律了.
(2)左、右拐.當(dāng)魚遇到障礙物或者其他因素影響,則會(huì)改變?cè)瓉?lái)的運(yùn)動(dòng)狀態(tài),例如躲避障礙物,魚就要拐彎.左右拐彎也是魚的一種主要?jiǎng)幼鳎勺笥夜盏膭?dòng)畫效果,需要考慮2個(gè)因素:一是選用哪幾個(gè)源模型進(jìn)行漸變計(jì)算;二是魚身彎曲的角度θ如何確定.
左拐選用L、ML、M等3個(gè)模型進(jìn)行漸變計(jì)算,魚身彎曲的角度θ可以用魚的轉(zhuǎn)身角度來(lái)近似計(jì)算.
Dest=ML*t+M*(1-t),
(10)
(11)
其中θ是魚轉(zhuǎn)彎時(shí)魚身彎曲的角度,θ0是ML模型彎曲的角度.同理,右拐將選用R、MR、M等3個(gè)模型進(jìn)行漸變計(jì)算,計(jì)算公式如下:
Dest=MR*t+M*(1-t),
(12)
(13)
在普通PC機(jī)及Visusl C++6.0環(huán)境下,利用DIRECTX3D對(duì)魚的集群運(yùn)動(dòng)進(jìn)行了仿真試驗(yàn).實(shí)驗(yàn)方法及處理流程如圖6.
圖6 實(shí)驗(yàn)流程圖
在面向?qū)ο笤O(shè)計(jì)思想的指導(dǎo)下,本文設(shè)計(jì)的人工魚群感知和行為機(jī)制模型分別封裝在各自的對(duì)象之中,在上述實(shí)驗(yàn)流程的驅(qū)動(dòng)下完成對(duì)魚的集群運(yùn)動(dòng)模擬.與圖形工作站環(huán)境下復(fù)雜模型的模擬效果相比,本文的建模方法具有模型相對(duì)簡(jiǎn)單、環(huán)境資源要求不高,模擬效果比較好的特點(diǎn).圖7、圖8是在上述實(shí)驗(yàn)流程下某一時(shí)刻產(chǎn)生的群聚效果截圖和碰撞檢測(cè)與規(guī)避原則下的魚群運(yùn)動(dòng)截圖.
圖7 一段時(shí)間后群聚效果
圖8 碰撞檢測(cè)和規(guī)避原則下的運(yùn)動(dòng)
Figure 8 The movement accord to the principle of collision detection and avoid rules
本文基于物理與生物學(xué)機(jī)理抽象出一個(gè)簡(jiǎn)約的人工魚群感知模型和行為模型,并應(yīng)用到人工魚群游動(dòng)的模擬之中.人工魚群的每一個(gè)體都是一個(gè)自主智能體,能感知到周圍相鄰個(gè)體的運(yùn)動(dòng)情況和其它環(huán)境物體的狀態(tài),并能為達(dá)到所在群體更好的集群運(yùn)動(dòng)效果而時(shí)刻調(diào)整自己的運(yùn)動(dòng)狀態(tài),從而實(shí)現(xiàn)由感知驅(qū)動(dòng)行為的運(yùn)動(dòng)模式.在個(gè)體生物感知模型和群體行為運(yùn)動(dòng)的物理機(jī)制約束下,采用運(yùn)動(dòng)學(xué)原理和漸變動(dòng)畫技術(shù),較好地解決了人工魚集群運(yùn)動(dòng)中個(gè)體與整體之間的運(yùn)動(dòng)協(xié)調(diào)性問(wèn)題,達(dá)到了較好的模擬效果.
[1] 曾芬芳. 虛擬現(xiàn)實(shí)技術(shù)[M]. 上海:上海交通大學(xué)出版社,1997
[2] LANGTON C G. Artifical life[M]//LANGTON C G. Artificial Life, SFI Studies of Complexity(Voll.VI).London: Addison-Wesley, 1989.
[3] 涂曉媛.人工魚-計(jì)算機(jī)動(dòng)畫的人工生命方法[M].北京.清華大學(xué)出版社,2000.
[4] 班曉娟,吳崇浩,王曉紅,等. 基于多Agent的人工魚群自組織行為算法[J].計(jì)算機(jī)工程, 2007,33(23):182-188.
[5] BOURG David M, SEEMAN Glenn.AI for game developers [M].O’Reilly, 譯. 南京: 東南大學(xué)出版社, 2004.
[6] CRAIG W. Reynolds,Flocks,Herds,and Schools: A distributed behavrioral model[J]. Computer Graphics,1987,21(4):25-34.
[7] TYRRELL T.Defining the action selection problem[C]//Proceedings of the Fourteenth Annual Conference of the Cognitive Science Society, Bloomington: Indiana University,1992.
Keywords: artificial fishes; Flock; mechanism of biology and physics; tweening animation
SimulationofArtificialFishesBasedonPhysicalandBiologicalMechanism
WANG Xiaoming1,2*, ZHONG Linhai3
(1. Department of Computer, Guangdong University of Science and Technology,Dongguan, Guangdong 523083, China;2.School of Computer, South China Normal University,Guangzhou 510631,China;3.Longgang Sub-district Office, Longgang District,Shenzhen, Guangdong 518116,China)
For the artificial fish simulation, there exists a problem of huge workload demands and strict request for hardware resources to model objects and behaviors to achieve animation. In this article, a new simplified model object method is put forward to solve this problem, based on the combining of physical and biological mechanism. This method is used to simulate the movement of fishes. In the simulation, each individual fish is defined as an independent agent, which is restrained by the physical mechanism of group activities and model of biological perception of an individual. According to the kinematics knowledge and the tweening animation technique, the problem of coordination between an individual and the overall is solved well, and good simulation of three-dimensional swimming of fishes on PC is achieved.
2011-04-17
*通訊作者, wangxm@scnu.edu.cn
1000-5463(2012)01-0058-05
TP391
A
【責(zé)任編輯 莊曉瓊】