金文玥
摘? 要: 為提升虛擬場景中的逼真視覺體驗效果,對三維虛擬動畫設(shè)計中的角色進(jìn)行建模與行為控制。在POSER軟件內(nèi)創(chuàng)建三維虛擬動畫角色模型,在3D軟件內(nèi)創(chuàng)建三維虛擬動畫角色骨骼并對骨骼進(jìn)行蒙皮,實現(xiàn)動畫角色建模。通過骨骼動畫技術(shù)模擬角色運動行為,在3D軟件中調(diào)整動作并驅(qū)動骨骼。通過3D軟件中的運動信息、關(guān)鍵幀設(shè)置及足跡等為動畫設(shè)計中所需角色模型的骨骼增添所需動作。采用Implement Gain about()函數(shù)操控虛擬角色動作,實現(xiàn)角色模型的行為控制。將所研究方法應(yīng)用于滅火救援三維虛擬動畫仿真教學(xué)實驗中,結(jié)果表明,此方法創(chuàng)建的消防員模型紋理數(shù)高、更清晰逼真、誤差低、建模精準(zhǔn),且行為控制準(zhǔn)確,模型運行順暢,整體效果理想。
關(guān)鍵詞: 三維虛擬; 動畫設(shè)計; 角色建模; 行為控制; 蒙皮操作; 動畫技術(shù); 運動行為
中圖分類號: TN915.43?34; TP391.9? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識碼: A? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2020)17?0110?05
Abstract: The characters in the 3D virtual animation design are subjected to modeling and behavior control to improve the effect of realistic visual experience in the virtual scene. The 3D virtual animation character model is created in the POSER software, and the 3D virtual animation character skeleton is created in the 3D software and the skeleton is subjected to skinning to achieve animation character modeling. The skeletal animation technology is used to simulate the role motion behavior, adjust action and drive skeleton in the 3D software. The motion information, key frame setting and footprint in the 3D software are used to add required action for the skeleton of required role model in the design. The Implement Gain about() function is adopted to manipulate virtual character movement to control the behavior of role models. The proposed method is applied to the 3D virtual animation simulation teaching experiment of fire fighting and rescue. The experimental results show that the firefighter model created with this method has a large number of textures, which is clearer and more realistic. The model is of low error, accurate modeling and exact behavior control, smooth operation and ideal overall effect.
Keywords: 3D virtual; animation design; role modeling; behavior control; skinning operation; animation technology; movement behavior
0? 引? 言
虛擬動畫技術(shù)隨著網(wǎng)絡(luò)技術(shù)與計算機圖形技術(shù)的快速發(fā)展已然成為國內(nèi)外學(xué)者研究的熱點。虛擬動畫技術(shù)屬于一種體驗虛擬空間的計算機模擬系統(tǒng),通過結(jié)合仿真技術(shù)、計算機技術(shù)及微電子技術(shù)等為用戶提供虛擬空間,提升用戶的感官享受,體驗身臨其境的真實感受[1?2]。
目前,此技術(shù)已應(yīng)用于更多領(lǐng)域,如娛樂游戲、虛擬教學(xué)、影視媒體、醫(yī)療及旅游等各領(lǐng)域,逐漸成為人們生活與工作中不可缺少的一部分[3]。
虛擬動畫技術(shù)中的關(guān)鍵部分即實現(xiàn)虛擬場景中角色模型的漫游,而實現(xiàn)此目的首先應(yīng)完成虛擬動畫場景中的角色建模與行為控制[4]。其中用來模擬虛擬動畫場景角色模型內(nèi)部幾何性質(zhì)的抽象模型即為三維角色模型,此類模型以計算機通過特殊信息格式的方式保存;行為控制即以特定方式控制三維角色模型的動作行為,令三維虛擬動畫場景運行更流暢[5?6]。本文通過三維角色建模對模型實行行為控制,提高三維虛擬動畫的逼真流暢效果。
1? 三維虛擬動畫設(shè)計中角色建模與行為控制方法
1.1? 角色建模
創(chuàng)建骨骼系統(tǒng)三維模型是構(gòu)建虛擬角色的首要步驟,作為三維虛擬動畫設(shè)計平臺中工作基礎(chǔ)的三維角色建模工作,所創(chuàng)建的角色模型應(yīng)同時符合平臺實時閱覽特性及逼真的呈現(xiàn)效果[7]。在三維虛擬動畫設(shè)計中,需要用戶對角色模型的創(chuàng)建過程及方式精準(zhǔn)把控,為此造成角色建模的不易實現(xiàn)。
為了降低角色建模的難度,將建模過程中較為繁瑣的步驟適當(dāng)省掉,可采用已有的人物模型通過修改創(chuàng)建需要的角色模型,并將修改后的角色模型導(dǎo)入三維虛擬動畫場景內(nèi)[8?9]。比如由弗朗科公司設(shè)計的POSER軟件,是三維人物創(chuàng)建模型的常用工具,可提供多種類別的人物模型,如男孩、女孩、成年男女及木偶形態(tài)骨骼的多種模型,為用戶創(chuàng)建角色模型提供幫助,且可通過軟件內(nèi)的工具欄將骨骼調(diào)整成用戶所需的骨骼類型。三維虛擬動畫設(shè)計平臺內(nèi)虛擬角色的建模步驟如下。
1) 在POSER軟件內(nèi)創(chuàng)建角色模型。三維虛擬動畫設(shè)計平臺的關(guān)鍵技術(shù)即為角色模型的創(chuàng)建,角色的形象特點與狀態(tài)通過角色模型展現(xiàn),在此選用POSER 5.0版進(jìn)行角色建模。從角色模型庫內(nèi)挑選與三維虛擬動畫設(shè)計平臺所需角色相符的角色身體、面部及頭發(fā)等模型,對各模型實行拼接,并通過縮小尺寸、拼接及刪除等工具修正模型原始狀況。
為獲取所需角色模型,需在POSER軟件中修正POSER模型庫內(nèi)有限的三維資源,為后續(xù)的角色模型蒙皮環(huán)節(jié)奠定基礎(chǔ)。以3DMAX的格式導(dǎo)出調(diào)節(jié)好的角色模型,并將其導(dǎo)入3D軟件內(nèi)繼續(xù)進(jìn)行模型的調(diào)整,為使模型可于特殊場景內(nèi)使用,應(yīng)在3D軟件內(nèi)通過蒙皮工具插件創(chuàng)建的角色模型進(jìn)行模型單位的調(diào)整。該模型后續(xù)將用于VT軟件內(nèi)實行縮小操作,因此,無需事先對該模型進(jìn)行縮小調(diào)整。由于角色模型并非以貼圖的格式向外導(dǎo)出,而是通過一種材質(zhì)格式經(jīng)蒙皮插件導(dǎo)出,所以在3D軟件內(nèi)無法直接以貼圖的形式導(dǎo)出該模型,故設(shè)計時應(yīng)使用2個角色模型,分別為擁有衣服與頭發(fā)的人物模型、面部非常清楚的臉部模型,如圖1所示。
在3D軟件內(nèi)進(jìn)行整體角色模型構(gòu)建時,先刪除其中一個人物模型的下半身,將其頭部模型保留,然后附加到另外一個臉部模型上,實現(xiàn)角色模型的創(chuàng)建。創(chuàng)建后的模型如圖2所示。
2) 3D軟件內(nèi)創(chuàng)建角色骨骼。通過3D軟件中的CAT插件實現(xiàn)角色骨骼的創(chuàng)建,CAT插件在對人體的行為動作模仿時比3D軟件自有的骨骼系統(tǒng)更準(zhǔn)確。該軟件在創(chuàng)建角色骨骼時可通過直接拖動的方式實現(xiàn),并以刪除或者復(fù)制功能實現(xiàn)角色骨骼數(shù)量的增減,獲取所需角色骨骼模型。通過調(diào)節(jié)角色骨骼的大小,令其同已創(chuàng)建的角色模型對齊,為之后的角色骨骼動作設(shè)計和角色骨骼蒙皮做準(zhǔn)備[10]。
3) 角色骨骼蒙皮。采用3D軟件中的premiere編輯器對角色骨骼進(jìn)行蒙皮操作。在工具面板上對角色骨骼的根節(jié)點進(jìn)行選取,調(diào)整角色骨骼上的封套。其中封套調(diào)整時應(yīng)將封套整體包進(jìn)自身骨骼中,不可牽涉到其余骨骼,是整個角色骨骼蒙皮操作環(huán)節(jié)內(nèi)最易出錯的一環(huán),若出現(xiàn)錯誤將導(dǎo)致角色模型在行走時產(chǎn)生粘連或蒙皮面破損的問題。由于蒙皮過程中出現(xiàn)差錯的幾率較高,因此,調(diào)節(jié)后為檢測蒙皮效果,應(yīng)為角色骨骼設(shè)定一個幅度較大的動作,檢測是否會產(chǎn)生皮面破損等差錯。如果出現(xiàn)差錯,可通過3D軟件內(nèi)自有的修改器尋找到差錯骨骼位置,細(xì)致調(diào)節(jié)蒙皮破損位置;若蒙皮破損位置過多,此修改器過于繁瑣,應(yīng)選擇另一款修改器面板上的Bonm選項,全選角色骨骼進(jìn)行整體調(diào)整。
1.2? 行為控制
1.2.1? 骨骼動畫技術(shù)
骨骼動畫(Skeletal Animation)技術(shù)是當(dāng)下三維虛擬動畫設(shè)計中應(yīng)用范圍最廣泛的技術(shù)[11?12]。此技術(shù)在動畫模擬人物與其余脊椎動物方面表現(xiàn)優(yōu)越,屬于一類計算機動畫技術(shù)。所模擬的角色通常情況下表現(xiàn)為兩部分,分別是層次化骨骼所構(gòu)成的骨架與骨架上蒙皮的皮膚[13]。為實現(xiàn)模擬角色運動行為的目標(biāo),可采用以動畫模擬骨架的方式,并以骨架對皮膚的形變進(jìn)行操控與帶動的方式實現(xiàn)目標(biāo)。應(yīng)用骨骼動畫的基礎(chǔ)模式為:所需動畫通過動畫生成軟件提前制作完成,當(dāng)動畫運行時,程序需依據(jù)時間運算得出詳細(xì)的顯示,并遵循邏輯確定播放動畫的順序。通過在三維虛擬動畫設(shè)計中使用運動捕捉技術(shù),提高動畫動作數(shù)據(jù)的便利性與逼真效果[14]。三維運動捕捉技術(shù)比較適用于模擬人類可完成的動作,對于人類無法完成的動作則應(yīng)通過手動調(diào)整的方法實現(xiàn)。此外,為使動作的連接更順暢、動作方式更多,可應(yīng)用動畫合成(Animation Blending)技術(shù)實現(xiàn)。
1.2.2? 動作調(diào)整
經(jīng)過在3D軟件中對角色骨骼的創(chuàng)建及蒙皮之后,為角色骨骼增添動作。通過軟件中的運動信息、關(guān)鍵幀設(shè)置及足跡等為動畫設(shè)計中角色模型的骨骼增添所需動作,完成角色模型的動作調(diào)整[15]。
1.2.3? 骨骼驅(qū)動
在得到與3D格式規(guī)范相符的三維虛擬角色動畫數(shù)據(jù)之后,便可采用C++語言調(diào)用3D庫函數(shù)對具體應(yīng)用程序進(jìn)行開發(fā)。應(yīng)用3D的三種方法為:
1) 采用直接調(diào)用的方法,通過Direct X或Open GL完成場景的顯示;
2) 在開源圖形引擎Open Scene Graph內(nèi)應(yīng)用通過3D封裝后的osg插件;
3) 在Delt 3D動畫仿真引擎內(nèi)應(yīng)用通過3D封裝后的Replica Body庫。
對三維虛擬動畫設(shè)計綜合考量后,在此選用第三種方法。3D的關(guān)鍵功能被Delt 3D封裝于dtChar命名空間。其中,有dtChar.h與character.h兩個頭文件,對character.h的調(diào)用包括在dtChar.h內(nèi),而關(guān)鍵核心類則包括在character.h內(nèi)。庫文件由dtChard.lib(Debug版)與dtChar.lib(Release版)構(gòu)成。因此,在未使用3D功能時,需確定工程內(nèi)包括dtChar.h,且將庫文件dtChard.lib或dtChar.lib的連接引入,確保編譯器的搜尋路徑中包括這些文件。
1.2.4? 實現(xiàn)行為控制
采用Implement Gain about()函數(shù)完成對虛擬角色動作的實行與操控,.rbody配置文件內(nèi)對動作稱呼的定義由此函數(shù)的參數(shù)指導(dǎo)。在系統(tǒng)對Implement Gain about()函數(shù)進(jìn)行調(diào)用時,虛擬角色便會對其對應(yīng)的動作數(shù)據(jù)進(jìn)行調(diào)用,完成對應(yīng)動作。在此為角色設(shè)定直立、行走及跑步三個動作,且三個動作之間的轉(zhuǎn)換采用F4,F(xiàn)5,F(xiàn)6三個按鍵完成。
關(guān)鍵核心代碼為:
mUnlocking keyRegulator=newUnlocking keyRegulator(m_role1.gain(),Gain Unlocking keyplate());
BoerUnlocking keyPress down(constdCore::Unlocking keyplate*unlocking keyplate,intunlocking key)
{
BoerStatement(fake);
Transformation(unlocking key)
{
example of case osgGA::GRAPHICAL USER INTERFACE Incident The AdaPter::UNLOCKING KEY_F4:
{
m_role1—>ImplementGain about(“STAGE”,fake,authentic);
smash;
}
example of case osfGA::GRAPHICAL USER INTERFACEIncidentThe AdaPter::UNLOCKING KEY_F5:
{
m_role1—>ImplementGain about(“TAKE A WALK”,fake,authentic);
m_role1—>Set upRotate(rotate);
m_role1—>Set upSpeed(speed);
smash;
}
example of case osgGA::GRAPHICAL USER INTERFACEIncidentThe AdaPter::UNLOCKING KEY_F6:
{
m_role1—>ImplementGain about(“FUNCTION”,fake,authentic);
m_role1—>Set upRotate(rotate);
m_role1—>Set upSpeed(speed);
smash;
}
break a contract:
smash;
}
revert Statement;
}
通過以上操作,實現(xiàn)三維虛擬動畫設(shè)計中的角色行為控制。
2? 仿真實驗
將本文方法用于某消防隊的一次滅火救援三維虛擬動畫仿真教學(xué)中,觀察實際應(yīng)用效果,并將本文方法與基于語義樹的三維角色建模方法、基于3DS MAX三維角色建模方法進(jìn)行對比,驗證本文方法的建模效果、建模精準(zhǔn)度及行為控制效果。
2.1? 實際應(yīng)用效果
依據(jù)消防員的服裝與裝備特征,通過本文方法所構(gòu)建的角色模型效果圖如圖3所示。從圖3中可看出,消防員所配備的消防頭盔與滅火戰(zhàn)斗服等可準(zhǔn)確展現(xiàn),且模型效果清晰逼真。
采用本文方法實時控制消防員模型在滅火救援三維虛擬動畫中的行為動作,實現(xiàn)教學(xué)場景動畫的模擬,模擬效果如圖4所示。
在圖4的實際應(yīng)用教學(xué)場景動畫模擬效果圖中,通過本文方法可實現(xiàn)對消防員行為的有效控制,完成動畫教學(xué)中消防員的行走、跑等場景漫游,消防員模型靈敏的反應(yīng)及逼真的整體效果可提升視覺感受及教學(xué)質(zhì)量。
2.2? 建模效果對比
為進(jìn)一步驗證本文方法所構(gòu)建的消防員模型效果,將本文方法與基于語義樹的三維角色建模方法、基于3DS MAX三維角色建模方法進(jìn)行對比,對比不同方法所創(chuàng)建的實驗中各個消防員模型的幀速與紋理數(shù),從3種方法所構(gòu)建的消防員模型中各隨機抽取5個模型進(jìn)行對比,對比結(jié)果見表1。
通過表1可看出,本文方法所創(chuàng)建的消防員模型的幀速與紋理數(shù)均高于其他兩種方法,說明本文方法創(chuàng)建的模型運行時更順暢,模型更加清晰逼真。
2.3? 精準(zhǔn)度對比
將3種不同方法所創(chuàng)建的消防員模型與真實消防員作對比,得出3種方法創(chuàng)建模型的誤差值,結(jié)合3種方法所創(chuàng)建模型的特征點數(shù)量,分析3種方法的精準(zhǔn)度,具體對比結(jié)果見表2。
通過分析表2可得出,本文方法所構(gòu)建消防員模型的誤差值最低,且模型的特征點數(shù)量最多,說明本文方法建模精準(zhǔn)度高。
2.4? 行為控制效果對比
通過分析3種不同方法對消防員模型進(jìn)行行為控制時的偏移量,對比出3種方法的不同控制效果,3種方法的行為控制偏移量情況如圖5所示。
通過圖5能夠看出,本文方法的行為控制偏移量遠(yuǎn)低于其他兩種方法,足以說明采用本文方法對消防員模型進(jìn)行行為控制時,控制準(zhǔn)確性最高,控制效果更理想。
3? 結(jié)? 論
本文通過創(chuàng)建三維虛擬動畫場景中的角色模型,對各模型進(jìn)行特定行為控制,實現(xiàn)三維虛擬動畫的有效設(shè)計。通過實驗驗證本文方法所建模型精準(zhǔn)度高,行為控制流暢準(zhǔn)確,應(yīng)用于滅火救援虛擬仿真消防教學(xué)中,可提升觀感及教學(xué)質(zhì)量。文中僅對三維虛擬動畫設(shè)計中的角色建模與行為控制展開研究,未來應(yīng)繼續(xù)研究三維虛擬動畫設(shè)計中的場景構(gòu)建,進(jìn)一步提升整體動畫場景的逼真體驗。
參考文獻(xiàn)
[1] 孔素然,殷均平.人體特殊動作三維動畫建模與渲染方法改進(jìn)研究[J].微電子學(xué)與計算機,2016,33(9):169?172.
[2] 葉鳳華,葉歡.基于Flash和3D動畫渲染技術(shù)的育苗機器人設(shè)計[J].農(nóng)機化研究,2018,40(3):189?192.
[3] 周渝果.淺析茶葉包裝折疊紙盒上的三維動畫設(shè)計[J].福建茶葉,2016,38(11):189?190.
[4] 胡志剛,黃拼搏,周振宇,等.二維影像技術(shù)和三維可視化技術(shù)輔助ALPPS治療肝癌效果的初步探討[J].中華外科雜志,2016,54(9):686?691.
[5] 孫春輝,成錫平.基于無人機的實景三維建模在消防中的應(yīng)用[J].消防科學(xué)與技術(shù),2018,37(4):501?504.
[6] 詹曙,常樂樂,梁植程,等.SICP配準(zhǔn)的三維人臉建模[J].光電工程,2016,43(3):88?94.
[7] 鄢榮曾,胡敏.顳下頜關(guān)節(jié)三維有限元建模相關(guān)因素分析[J].醫(yī)用生物力學(xué),2016,31(2):182?187.
[8] 艾飛,洪滔,李崇源.三維動畫技術(shù)在茶品牌包裝中的應(yīng)用[J].福建茶葉,2017,39(9):142?143.
[9] 張文英,何坤金,張榮麗,等.基于開源場景圖形的三維可視化與信息管理系統(tǒng)設(shè)計[J].計算機應(yīng)用,2016,36(7):2056?2060.
[10] 朱真,廖惟博,王章野.流體模擬動畫技術(shù)新進(jìn)展[J].計算機工程與應(yīng)用,2016,52(4):142?150.
[11] 孔徳瀚,劉永山.基于路網(wǎng)的三維虛擬現(xiàn)實場景間接可視查詢框架[J].計算機學(xué)報,2016,39(10):2045?2060.
[12] 姬林松,李彥林,黃贊,等.三維有限元分析內(nèi)側(cè)半月板全部切除后不同軟骨缺損面積對膝關(guān)節(jié)應(yīng)力的影響[J].中國現(xiàn)代醫(yī)學(xué)雜志,2016,26(8):65?70.
[13] 陳素華,楊軍,馬順昌,等.虛擬現(xiàn)實技術(shù)在顱頸交界區(qū)病變手術(shù)中的應(yīng)用[J].中華神經(jīng)外科雜志,2018,34(6):591?595.
[14] 陳圖南,尹訓(xùn)濤,李學(xué)剛,等.多模態(tài)融合的3D虛擬現(xiàn)實技術(shù)在中央?yún)^(qū)膠質(zhì)瘤切除術(shù)中的應(yīng)用[J].中華醫(yī)學(xué)雜志,2018,98(17):1302?1305.
[15] 薛艷英,江漢祥,萬江山,等.取證軌跡數(shù)據(jù)在人物行為分析上的應(yīng)用[J].計算機科學(xué),2016,43(12):219?224.