朱惠娟,管 悅
1(南京理工大學紫金學院 計算機學院,南京 210023)
2(南京郵電大學 傳媒與藝術學院,南京 210023)
藝用人體解剖學是根據藝術探究的需要,以人的骨骼和肌肉作為研究對象,研究人體內部結構、外部形象以及人體動作和姿態等基本規律的一門學科.藝用人體解剖和醫用人體解剖不一樣,其目的是在藝術創作中更準確地表達人體的外形.據不完全統計,為了更好地讓學生掌握人體結構繪畫和動畫制作的方法,很多高校的動畫專業或者美術專業都需要學習藝用人體解剖的知識[1].
藝用人體解剖已經作為必修內容,但是教學方法上一直存在缺陷.很多教師還是以灌輸的方式在授課,作為一門理論課程,學生需要反復記憶一些骨骼和肌肉的名稱和作用,效率低,很難引起學生的興趣,也無法學以致用,經調查發現[2],傳統的學習中主要存在以下幾個問題:
(1)在學習初期,學生大多只知道人物的大致畫法,但對人物比例,骨骼肌肉狀態的掌握相對比較稚嫩,繪畫時經常容易造成一些錯誤,同時老師在授課時傳統的圖片展示,以及視頻講解往往不能更加直觀有效的讓學生去理解.
(2)在學習過程中,學生雖然掌握了解了基礎的骨骼和肌肉的知識,但是通常人物姿態發生變化后,學生不能夠清楚正確意識到人物骨骼肌肉變化規律,在繪畫時通常會造成錯誤.
(3)在課下自由練習時,學生無法花巨額的資金去聘請模特,對模特相片繪畫,只能選擇相片拍攝者給出的角度,往往不具備美感.
為了解決上述問題,學者們都從提高藝用人體解剖的實踐性方面開展研究[3].隨著虛擬仿真技術的發展,仿真模擬系統已廣泛應用在各行業[4].本文引入虛擬現實技術(Virtual Reality,VR),開發基于Forge 平臺的藝用人體結構仿真系統.系統按照人體結構進行模型構建及可視化過程,完全遵照動畫運動規律,模擬骨骼肌肉的運動仿真.通過“漫畫人物姿態仿真”模塊,實現學習者對漫畫人物動作姿態的深刻認知,提高繪畫技巧.學習者通過該平臺可以全方位、多角度的自由瀏覽和認識人體骨骼系統和肌肉系統,仔細觀察特定部位的運動仿真,充分表現了虛擬現實的沉浸感和交互性.
藝用人體結解剖繪畫仿真系統的設計要求能模擬人體結構以及人體骨骼與肌肉的運動過程,同時考慮到使用該系統的用戶主要是美術專業、繪畫專業、動漫專業的學生,他們雖然從理論課的學習中大致了解了人體結構,但是將理論運用在繪畫和動畫制作上尚有一段距離,所以系統的設計旨在為用戶提供一個虛擬的人體結構仿真平臺,通過對人體結構的模擬,實現骨骼和肌肉系統動畫.同時為了讓用戶了解在繪畫時不同的位姿對應的骨骼和肌肉變化,把握繪畫的技巧,加入了漫畫人物姿態仿真功能,實現漫畫人物的姿態仿真.
系統框架如圖1,通過對人體結構的了解,人體結構從類型上分為男性和女性兩類;從認識的結構層次分為骨骼、肌肉、外部形態,從認識部位分為頭、軀干、四肢.針對這些實際需求,系統的設計方案為分類型選擇、分層次學習.分類型選擇主要是進行平臺后選擇男性或者女性的人體結構;分層次學習可分為骨骼的認識、肌肉的認識、骨連接處的肌肉運動演示、繪畫中的關鍵動作對應的人體結構狀態等.學習者可以通過單擊可交互結構來實現人體各部位的信息,對人體結構的某一部位進行任意的操作或者從漫畫人物動作庫中任意選擇一個動作進行觀察,實現對人體結構更深入地了解,從而達到指導繪畫的目的.
根據系統的需求分析,藝用人體解剖繪畫仿真系統包含人體結構仿真和漫畫人物姿態仿真.人體結構仿真下用戶可以觀察骨骼、肌肉系統以及對應的關節動畫;漫畫人物姿態仿真下,用戶可以用漫畫人物動作庫中任意選擇一個動畫,觀察其對應的骨骼和肌肉特征.
1.2.1 人體結構仿真
人體建模一直是計算機圖形學的研究熱點之一.目前人體建模技術主要包括三維掃描數字建模、參數化建模、三維軟件建模等.雖然三維軟件建模成本相對較大,但是幾種人體建模方法中最精確美觀的,考慮到本系統的使用人群,本系統選用三維軟件建模方式[5],分為骨骼、肌肉、外部形態,選用基于物理的角色運動方法實現運動仿真[6,7].進入仿真平臺后,用戶可以通過菜單選擇學習男性人體結構或是女性人體結構.通過UI 界面選擇學習人體的哪個部位,包括頭部、軀干、四肢,進而選擇學習骨骼系統或者肌肉系統.用戶每選擇一個對象,都會顯示該對象的基本信息,用戶也可以對該對象進行隱藏、顯示、旋轉、縮放、測量、觀看運動動畫等操作.
1.2.2 漫畫人物姿態仿真
動漫專業、美術專業等都要求學生掌握漫畫人物的繪畫技巧,而漫畫人物雖形象上與普通人有所不同,但她的動作即便夸張化也應當符合人體的動畫運動規律.在漫畫人物姿態仿真模塊,用戶可以從平臺的漫畫庫中任意選擇漫畫人物的一個動作,查看其對應的骨骼和肌肉狀態,體會繪畫時的細節;可以通過調整骨骼或肌肉,觀察漫畫人物動作的同步變化,從而更深刻掌握繪畫技巧.
人體結構模型使用幾何建模法在3DsMax 平臺和Zbrush 平臺下按照人體結構比例、采用塊面加線的模式完成人物模型的構件和可視化過程.為了準確表現人體結構,首先通過PhotoShop 為繪制人體骨骼、肌肉分布線稿三視圖,并導入MAX 中作為參考.從骨骼開始構建人物模型框架,先利用MaxScript 生成對應尺寸的初始模型,核心代碼如下:
Cylinder()
$.name=初始名稱
$.height=初始長度(cm)
$.radius=初始半徑(cm)
$.heightsegs=初始的長度/2 (每2 厘米分為一段)
$.position=初始的三維坐標
關鍵步驟如下:
第1 步.將初始模型轉換為構成算法更加優秀的可編輯多邊形,通過修改器中的FFD(自由變形)、擠出、渦輪平滑、球面化等生成骨骼的初步模型.
第2 步.利用Zbrush 平臺,對MAX 中的制作模型進行二次模型雕刻,可以得到更加細膩的模型.
第3 步.通過Substance Painter 為模型繪制基礎貼圖、高度貼圖、法線貼圖、AO 貼圖,使模型大大提高真實度[8].
在做肌肉模型時,要考慮肌肉與肌腱、腱膜的關系,以及肌肉的起始點和終止點.這樣制作出來的肌肉才會符合真實人體肌肉[9].
為了在繪畫和動畫制作過程中,使人物顯得更自然、合理,就需要研究時間、空間、張數、速度的概念以及彼此之間的關系,也就是處理好動畫和漫畫人物動作的節奏規律.動畫運動規律大致分為人類、動物和自然現象3 個方面.本系統表現的是人體運動仿真,因此首先要研究和掌握人物動作的一些基本規律,比如走路時,左右腳交替向前,帶動驅趕朝前運動;奔跑時,身體重心向前傾,兩手自然握拳,手臂略成彎曲狀等[10].
我國在人體運動仿真上也取得了一些研究成果,以醫學和體育方向的偏多.文獻[11]提到Minetti 等通過計算機仿真,研究了古希臘運動員為提高奧林匹克跳遠比賽成績而提重物訓練的現象等.本系統中人體運動仿真構建的主要方法是先以3DMax 骨骼動畫結合OptiTrack 三維動作捕捉設備捕捉到的自然人真實的物理運動過程等數據作為基礎,運用計算機模擬人體運動過程,并將運動過程賦予計算機建立的虛擬人體模型.
2.2.1 骨骼動畫
骨骼動畫是當前模型兩種動畫方式之一,是由互相連接的“骨骼”組成骨架結構,通過改變骨骼的朝向和位置來生成動畫.骨骼動畫通常包括骨骼層次結構數據、網格數據、網格蒙皮數據和骨骼動畫關鍵幀數據[12].
骨骼層次結構數據決定了模型整體在世界坐標系中的位置和朝向,首先要設置根骨骼,然后根據骨骼之間的變化關系計算出各個骨骼的位置和朝向.網格數據就是一層皮膚,如果沒有骨骼,網格就和靜態模型一樣.網格蒙皮數據是綁定到骨骼上的頂點數據,包括頂點受哪些骨骼的影響以及影響的權重.骨骼動畫數據是骨骼的運動數據,本文使用式(1)的線性插值來產生權重對動畫的影響效果.

其中,p′表示頂點p點形變后的坐標,i表示骨骼數量,pi′表 示各骨骼分別形變后得到的頂點位置,wi表示權重.通過骨骼的運動帶動蒙皮的運動.由于頂點是綁定骨骼的,因此,當骨骼運動時,頂點相對于骨骼并沒有變化,需要通過蒙皮矩陣把頂點轉換到世界坐標系的坐標,就可以對頂點進行渲染.
以右手手指運動為例,骨骼層次模型(腕掌關節-掌骨間關節-掌指關節-指間關節),通過根骨骼的位置變化改變骨骼的朝向.一個頂點可能有多個骨骼,設置骨骼的權值,獲得最合適的骨骼運動效果.
2.2.2 動作捕捉
動作捕捉[13,14]OptiTrack 是一款主動式紅外光學定位系統,它利用多個紅外發射攝像頭、對室內定位空間進行覆蓋,再被追蹤物體上放置紅外反光點,通過捕捉這些反光點反射回攝像機的圖像,確定對象在空間的位置信息.整體流程可見圖2.

圖2 動作捕捉流程
本項目采用了8 個130 萬像素分辨率的Flex13 攝像頭,攝像頭越多,捕捉的動作越精確,但是成本也越高.首先通過攝像頭捕捉3 個光點的移動來計算三維空間的區域;然后用L 型標定直角對地面進行校準;攝像機對空間進行紅外線覆蓋并拍攝,提出畫面中的Mark 點;最后將采集到的動作數據與三維人物綁定即可實現動作捕捉動畫.
(1)系統配置
把8 臺攝像放置好并對準方向后,演員可以任意姿態站在中間,使用T 型標定桿掃描場景,劃定運動空間.用L 型標定直角捕獲3 個Mark 點進行地面校準,圖3是從相機視圖中獲取的8 臺相機的二維數據,圖4是在透視圖中獲取的三維數據.一旦標定完成,不能隨便移動攝像頭的位置,否則會在后續的捕捉動畫中出現數據溢出.

圖3 攝像機視圖

圖4 透視圖
(2)Mark 點捕獲
選擇標記定的綁定模式,以Baseline 為例,該模式下綁定標記點37 個,測試人員需要完全按照示意圖綁定標記點,一旦綁定錯誤,就會影響相機拍攝到的運動軌跡,從而使動畫數據出錯.

圖5 標記點綁定
(3)校準Mark 點
如圖6所示,在動作幀面板,紅色代表X 軸,綠色代表Y 軸,藍色代表Z 軸,從圖中看出動畫有斷裂處,表示動作數據出現錯誤,這是由于在標定不準確造成,可通過重新標定或手動修補動畫的方式調整動作.如若不調整,將對后期動作綁定骨骼有很大的影響.

圖6 動作幀面板
(4)與內置Actor 進行數據傳輸
通過Motive 軟件獲取動作數據后,將動作數據導入motion bulider 中,進行骨骼綁定,如圖7所示.

圖7 數據傳輸
(5)綁定三維模型
當運動數據和骨骼綁定后,可以采用逆向動力學或者正向動力學來調整人體的運動,逆向動力學是一種子節點驅動父節點運動的動畫制作方法,而正向動力學是父節點驅動子節點的運動,兩者共同點是讓關節運動更加連貫,表現更加真實.綁定示意圖見圖8.
本項目的人機交互部分采用了Autodesk Forge API 服務,由于該平臺的數據中心是基于AWS 的海外搭建,國內部分地區訪問Forge 云端口的速度會受到影響.特別是Forge Viewer 瀏覽大型模型,以及對反饋時間比較銘感且涉及關鍵業務的工作流等諸多場景時,對服務端的存取效率有著較高要求.因此,項目中采用離線加載、云端緩存的方案,實現了流程與性能的優化.
關于離線模型加載,可以使用新近瀏覽器原生的Service-Worker 和Cache API 緩存模型的方案,通過靜態路徑解決Viewer 庫和線上模型資源本身的緩存問題.但是該實現也存在幾點問題:待緩存的靜態鏈接是根據展示用的模型所需配置的,模型更換后靜態鏈接也需要手動更新,一次性緩存了所有實例模型所需的資源,超配且不必要,影響加載性能,Viewer 庫版本一旦更新,需手動更新緩存的靜態資源鏈接.因此,文獻[15]提出采用先注冊完成緩存任務的Service Worker再加載Viewer 庫的流程.這樣,Viewer 庫依賴與模型資源的加載請求也會自動得到緩存,無需手動干預緩存過程,大幅增進代碼的可維護性.

圖8 運動綁定
藝用人體解剖繪畫仿真系統提供了360 度旋轉模型、測量模型角度、長度等功能,通過group.addControl()和group.removeControl()新增或移除不需要的功能,使用Three.js 根據二維鼠標坐標與旋轉角度,計算出當前點擊在三維世界的位置并生成彈窗,根據旋轉角度對彈窗大小進行修改,調用骨骼動畫.本文使用的旋轉角度修改彈窗大小的式(2)如下:

其中,Scale表示縮放,α 表示系數,Ratationnow表示當前角度,Ratationinit表示初始角度.標簽彈窗在初始時Ratation最大,在角度改變時,根據公式計算縮放比例,從而改變標簽彈窗大小,實現三維視角下近大遠小的視覺效果.
漫畫人物的繪畫創作是美術專業學生的基礎技能之一,要求學生能從人物內部結構出發,描繪出以骨骼為支撐、以肌肉作為填充的飽滿、生動的人物形象.傳統教學中學生只能從解剖圖譜、雕塑人體、局部放大的照片或教學道具中觀察骨骼與肌肉,但是這種理解缺乏交互性.漫畫人物的姿態仿真可以根據漫畫人物的動作姿態在三維模型上呈現對應的骨骼和肌肉,學生通過增減骨骼和肌肉來觀察對應的漫畫人物姿態.
在漫畫人物姿態這部分,漫畫模塊通過與Forge云三維模型模塊的雙向通信來完成實時交互.漫畫模塊可以將自身索引傳給Forge 云模塊,且Forge 云模塊可以傳數據給漫畫人物模塊.系統中采用的是連接漫畫人物姿態的索引與Forge 云3d 模型ID 之間的關系,使漫畫人物姿態的索引能映射到模型ID 上,即存在α使式(3)成立:

Im為 模型model 的索引,Ic為漫畫索引.由于模型model 的索引數量遠大于漫畫人物姿態索引的數量,所以 αIc為Im的子集.
同時Forge 云的索引需要連接三維動畫的部分,比如,如果人物漫畫為躺著的人,那么相應的骨骼三維動畫將播放躺著的內容.即存在式(4):

連接上述公式得式(5):

由此得到三維動畫索引與漫畫索引的關系.
在漫畫模塊與Forge 云模塊通信的過程中,按照式(5)做索引轉換,以此實現漫畫與Forge 云交互高亮,動畫切換.當點擊Forge 云的部分骨骼,將該索引映射到漫畫界面,在漫畫界面將映射后的部分做出顏色修改,以此實現選中骨骼與漫畫高亮,同時當點擊漫畫部分肢體時,實現反向傳輸到Forge 云上,修改相應的骨骼狀態與三維動畫狀態.
為了驗證該系統是否滿足美術類課程的要求,筆者邀請了動畫專業的200 名學生以及5 位教師對該系統各個模塊進行了測試,包括系統的功能測試和性能測試,功能測試.主要包括:1)系統的人機交互是否有好;2)人體結構仿真模型是否具有科學性;3)人體運動仿真是否符合動畫運動規律;4)漫畫人物姿態仿真是否合理.測試結果如表1所示.

表1 功能測試結果(%)
測試結果表明,該系統具有較高的科學性和仿真度,骨骼肌肉動畫符合人體動畫運動規律,漫畫人物的姿態與是三維仿真模型能做到高精度的匹配.
除功能測試外,性能測試主要目的是在大用戶量、數據量的超負荷下,獲得服務器運行時的相關數據,如初步確定系統的最大在線用戶數、系統在合理壓力下穩定性運行情況等,從而進行分析,查看該網站系統是否能符合需求.網絡測試環境為CPU2 核、內存4 GB,帶寬20 MB,測試結果如表2所示.
測試結果表明,并發人數對本系統的三維場景加載速度影響較大,對網頁響應時間影響較小.但由于三維仿真系統的運行流暢程度與客戶機的配置關系很大,包括CPU 和內存的性能等.為此,筆者也選擇的4 種不同配置類型的機器進行測試,測試結果如表3所示.

表3 用戶機測試結果
測試結果表明,用戶機的配置CPU 在雙核及以上,內存在4 GB 及以上,系統運行的流暢度較高.
本系統基于Forge 云開發了一個藝用人體解剖繪畫仿真系統,為美術類和動漫類學生提供了一個較為具象的仿真人體結構,提供了豐富的人機交互功能,從而加深學生對人體骨骼以及肌肉系統的認知,更加準確地構造漫畫人物造型和位姿.系統采用3Ds MAX 軟件構建人體模型,在遵照人物運動規律的前提下,通過動作捕捉設備以及骨骼動畫完成人體骨骼與肌肉的運動仿真,采用Forge 云平臺和Three.Js 實現人機交互,為用戶提供了旋轉、測量、360 度觀察人體仿真模型的功能.基于繪畫的實踐需求,設計了漫畫人物姿態仿真功能,實現了漫畫人物關鍵動作的三維仿真模擬,允許用戶任意刪減骨骼或模型,實時觀察修改后的漫畫姿態,便于用戶從實踐角度把握繪畫的技巧.通過志愿者對系統的測試證明,該系統的仿真度和易用性較高,打破了現實條件以及空間的限制,為數字化學習和移動學習提供了環境,有助于學習者深入理解人體解剖結構的只是并正確掌握漫畫人物的造型方法.