• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    手機(jī)3D動畫中基于Kinesiology的骨骼數(shù)據(jù)計算

    2018-11-19 10:58:58
    軟件導(dǎo)刊 2018年11期
    關(guān)鍵詞:骨骼動畫矩陣

    楊 勇

    (北京工業(yè)大學(xué) 信息學(xué)部,北京 100124)

    0 引言

    動畫作為一門綜合藝術(shù),是集繪畫、電影、數(shù)字媒體、音樂等眾多藝術(shù)門類于一身的藝術(shù)表現(xiàn)形式。傳統(tǒng)動畫通常是用畫筆畫出一張張靜止的畫稿,再用攝影機(jī)連續(xù)拍成一系列畫面,從而給視覺帶來連續(xù)變化的效果。畫面制作方式除最常見的手繪在紙張或賽璐珞片上外,其它方式還包括黏土、木偶、沙畫以及皮影等。為進(jìn)一步提高動畫制作效率,上世紀(jì)90年代,中國科學(xué)院陸汝鈐院士[1]提出計算機(jī)全過程輔助動畫自動生成技術(shù),該技術(shù)實現(xiàn)了從文本到動畫的自動生成。隨著智能手機(jī)以及3G通信技術(shù)的普及,中國科學(xué)院的張松懋研究員于2008年提出將動畫自動生成技術(shù)應(yīng)用于手機(jī)短信上,設(shè)計并實現(xiàn)了面向手機(jī)短信的3D動畫自動生成系統(tǒng)。該系統(tǒng)可依據(jù)短信內(nèi)容,自動生成相應(yīng)的3D動畫并呈現(xiàn)給接收方。

    對于角色動畫而言,根據(jù)動作行為的復(fù)雜程度,一般可分為兩大類:單人運(yùn)動與交互運(yùn)動,這兩類運(yùn)動對于角色動畫都是必不可少的[2]。交互類運(yùn)動規(guī)劃相較于單人運(yùn)動規(guī)劃處理更為困難,主要原因在于其除需表達(dá)動作內(nèi)容及確定交互雙方身體姿態(tài)外,還需要動態(tài)規(guī)劃人物之間的時空關(guān)系[3],包括相對距離與絕對位置、身體接觸面范圍、運(yùn)動路徑、交互物傳遞等。

    對于表達(dá)動作內(nèi)容以及確定交互雙方身體姿態(tài),一般采用動作數(shù)據(jù)捕捉技術(shù)。動作數(shù)據(jù)捕捉技術(shù)是一種通過記錄物體信息以供分析、回放及傳遞的技術(shù)[4]。通常動作捕捉的取樣信息來源于人類,通過記錄人體運(yùn)動軀干的空間位置信息、角度、速度及沖量,進(jìn)而得到準(zhǔn)確的動作數(shù)據(jù)信息并將其應(yīng)用于三維軟件里具有相同軀體信息的骨骼模型中,使骨骼模型完成相應(yīng)動作內(nèi)容。常見格式有BVH與TRC,但這種原始數(shù)據(jù)格式并不便于程序讀取,而且本系統(tǒng)采用的底層動畫軟件Maya并不支持上述數(shù)據(jù)格式。因此,王妍[5]、邱真真[6]利用一種將BVH運(yùn)動數(shù)據(jù)轉(zhuǎn)換為動畫制作軟件Maya中可用數(shù)據(jù)的算法,通過建立關(guān)系數(shù)據(jù)庫存儲主要關(guān)節(jié)數(shù)據(jù),以存儲和讀取動作數(shù)據(jù)。然而,在實際應(yīng)用中,轉(zhuǎn)換后數(shù)據(jù)與人物的映射效果并不理想,容易造成部分動作扭曲變形。對于人物之間的時空關(guān)系規(guī)劃,需要根據(jù)交互雙方之間的動作內(nèi)容及距離確定位置與生成路徑,其中涉及到骨骼數(shù)據(jù)計算。Wilhelms等[7]提出一種矩陣方法,不需要用單純的方程表達(dá)骨骼關(guān)節(jié)自由度以減少其約束,但該方程在求解加速度時計算量很大;Armstrong等[8]提出用圖形仿真骨骼方法規(guī)避矩陣建立過程,該方法復(fù)雜度低且較為準(zhǔn)確。

    考慮到交互動畫中的角色不僅需要進(jìn)行位置規(guī)劃,還需要對單個人物的動作細(xì)節(jié)進(jìn)行研究,因此本文在定量計算階段提出基于Kinesiology的骨骼數(shù)據(jù)計算方法對交互雙方進(jìn)行運(yùn)動規(guī)劃,動作數(shù)據(jù)提取格式為FBX(由BVH經(jīng)動作制作軟件MotionBuilder轉(zhuǎn)換而成)[9]的單人動作作為交互動作的單個原子動作(可以構(gòu)成交互行為的單人動作),通過建立感興趣點與感興趣區(qū)域(該虛擬人物執(zhí)行交互動作時雙方的身體接觸面范圍,包括人體手部骨骼、肩部骨骼、根骨骼等18塊主要接觸骨骼)對人物位置、路徑以及交互物綁定進(jìn)行規(guī)劃計算,從而在系統(tǒng)中自動生成虛擬人物交互運(yùn)動規(guī)劃,使生成的三維動畫在表現(xiàn)動畫主題、敘述動畫劇情以及增強(qiáng)動畫表現(xiàn)力方面更為突出。

    1 系統(tǒng)整體設(shè)計

    手機(jī)3D動畫自動生成系統(tǒng)由多個子系統(tǒng)組成,包括情節(jié)規(guī)劃子系統(tǒng)、變形規(guī)劃子系統(tǒng)、攝像機(jī)規(guī)劃子系統(tǒng)等。系統(tǒng)使用機(jī)器學(xué)習(xí)的思想對開放的短信文本進(jìn)行信息抽取,通過抽取語句中已標(biāo)記實體對之間的語義關(guān)系、主客觀分析、否定詞提取等,獲得短信文本所有表達(dá)主題及關(guān)鍵信息,將抽取的信息作為各系統(tǒng)輸入,并且各子系統(tǒng)之間都具有一定聯(lián)系。通常子系統(tǒng)均由定性規(guī)劃與定量計算兩部分組成,定性規(guī)劃依據(jù)信息抽取結(jié)果對模型、燈光、攝像機(jī)以及人物進(jìn)行初步規(guī)劃并生成定性描述語言;定量計算根據(jù)定性規(guī)劃結(jié)果將其轉(zhuǎn)換為具體數(shù)值,依據(jù)場景內(nèi)的實際情況對場景與模型進(jìn)行添加修改,自動規(guī)劃計算模型、運(yùn)動、燈光、攝像機(jī)、特效以及布局等數(shù)據(jù)信息,調(diào)用Maya API生成相應(yīng)動畫,最后經(jīng)過服務(wù)器渲染生成可播放的3D動畫視頻。圖1為系統(tǒng)整體流程。

    圖1 系統(tǒng)整體流程

    其中本文提出的基于Kinesiology的骨骼數(shù)據(jù)計算處于交互運(yùn)動規(guī)劃的定量計算階段,根據(jù)計算得到的骨骼數(shù)據(jù)確定人體感興趣點位置,進(jìn)而對人物進(jìn)行初始位置確定、運(yùn)動路徑規(guī)劃以及交互物綁定規(guī)劃計算。

    2 骨骼數(shù)據(jù)計算方法

    在交互運(yùn)動規(guī)劃中,主要是基于興趣識別人物位置以及確定交互人物之間的身體接觸范圍。由于感興趣點分布于人體主要骨骼表面,因此需要進(jìn)行骨骼數(shù)據(jù)計算。骨骼數(shù)據(jù)計算包括骨骼數(shù)據(jù)正向推導(dǎo)計算(根據(jù)父骨骼信息求其各子骨骼信息)與骨骼數(shù)據(jù)逆向推導(dǎo)計算(根據(jù)子骨骼信息求骨骼鏈上各父骨骼信息),其中骨骼運(yùn)動基于三維動畫軟件Maya中的人物設(shè)計系統(tǒng)——FBIK(Full Body IK,即骨骼之間存在約束控制,牽動身體每一部分都對全身動作有影響)。

    2.1 Maya中IK/FK求解原理

    在動畫制作過程中,人物運(yùn)動設(shè)計對于整個動畫是至關(guān)重要的,其擔(dān)負(fù)著表現(xiàn)動畫主題及敘述動畫劇情的重要任務(wù)。在三維軟件Maya中有一套完整的人物設(shè)計系統(tǒng)——FBIK,該系統(tǒng)將整個人作為一個整體進(jìn)行控制,身體每一部分動作都會影響全身[10]。以一個使用FBIK的二足骨骼角色撿東西為例,如圖2所示,當(dāng)骨骼角色的手伸向地面目標(biāo)時,腰與膝蓋也隨之自然彎曲。

    圖2 FBIK控制動作實例

    在Maya的FBIK系統(tǒng)中,存在兩套對于骨骼運(yùn)動的描述,一種是基于正向運(yùn)動學(xué)(Forward Kinematics)的骨骼描述,簡稱FK;一種是基于反向運(yùn)動學(xué)(Inverse Kinematics)的骨骼描述,簡稱IK[11]。FK是一種通過“目標(biāo)驅(qū)動”實現(xiàn)的運(yùn)動方式,通過設(shè)定人體各關(guān)節(jié)的旋轉(zhuǎn)角獲得人體在特定時刻的位置與轉(zhuǎn)角,并且可以由父骨骼方位與子骨骼的相對變換得到子骨骼方位[12]。但在求解過程與確定所有運(yùn)動關(guān)節(jié)節(jié)點運(yùn)動位置時,需要一一求解關(guān)節(jié)鏈上的關(guān)節(jié)點,工作量較大。

    IK(反向運(yùn)動)與FK(正向運(yùn)動)的求解思想恰好相反,其基本原理是操作者可以根據(jù)末端骨骼位置,使用反向運(yùn)動學(xué)求解算法求解出關(guān)節(jié)鏈中每個關(guān)節(jié)節(jié)點的位置與方向,也即通過定位骨骼鏈中較低的骨骼,使較高的骨骼旋轉(zhuǎn),從而設(shè)置關(guān)節(jié)姿勢,通常應(yīng)用于將骨骼鏈末端“固定”在某個相對該骨骼鏈移動的對象上[13]。IK的出現(xiàn)一定程度上減少了FK中的求解繁瑣問題,大大減輕了用戶工作量,因此在人體動畫的交互式設(shè)計與自動生成算法中得到了廣泛應(yīng)用。

    2.2 骨骼正向推導(dǎo)計算

    由人體骨骼特性可知,諸如手臂等骨骼鏈?zhǔn)怯梢恍╆P(guān)節(jié)(Joint)構(gòu)成的,關(guān)節(jié)一般只有一個自由度(平移或旋轉(zhuǎn)),而末端效應(yīng)器骨骼有6個自由度,因此根據(jù)父骨骼求下末端的子骨骼問題則可解釋為通過每個關(guān)節(jié)自由度求出末端效應(yīng)器的角速度與線速度。

    對于旋轉(zhuǎn)關(guān)節(jié)(revolute joints)的求解一般涉及角度變化,而對于平移關(guān)節(jié)(prismatic joints)的求解一般涉及距離變化。本文將角度以及距離全部記為q,同時將目標(biāo)狀態(tài)(指末端效應(yīng)器的角速度與線速度)記為向量組,即由于x中每一項都是由q進(jìn)行求解,因此記為x=f(q),得到公式(1)。

    (1)

    對公式(1)進(jìn)行擴(kuò)展,對x中的每一項進(jìn)行全微分,同時對等式右邊的所有q求偏導(dǎo),得到公式(2)。

    (2)

    將上述等式轉(zhuǎn)換為矩陣后,可以得出矩陣的行等于X中的項數(shù)m,即為末端執(zhí)行器的自由度個數(shù),矩陣的列等于Q的項目數(shù),即為關(guān)節(jié)個數(shù),該矩陣即為Jacobian Matrix(雅克比矩陣),記為J。J主要用來求解末端效應(yīng)器的角速度與線速度,可以簡寫為公式(3)。

    ΔXm*1=Jm*n(q)·ΔQn*1

    (3)

    因此,在手機(jī)3D動畫系統(tǒng)中,需要通過正向推導(dǎo)得到骨骼數(shù)據(jù)的交互運(yùn)動規(guī)劃,并依據(jù)骨骼鏈上各關(guān)節(jié)的骨骼長度及骨骼旋轉(zhuǎn)角度,求解其線速度與角速度,進(jìn)而得到骨骼的相對位置坐標(biāo),最終經(jīng)過轉(zhuǎn)化得到目標(biāo)骨骼的世界坐標(biāo)。

    2.3 骨骼逆向推導(dǎo)計算

    采用反向動力學(xué)(IK),根據(jù)末端骨骼求解其骨骼鏈上父骨骼的計算方法很多,但大多只適用于脫機(jī)計算,在交互式環(huán)境下應(yīng)用較多的方法為循環(huán)坐標(biāo)下降法(CCD)與雅克比轉(zhuǎn)置法。本文主要采用雅克比轉(zhuǎn)置法,這是因為在計算節(jié)點坐標(biāo)位置時關(guān)注的是整條反向運(yùn)動骨骼關(guān)節(jié)鏈,而不僅是觀察計算某一個后繼鏈接[14]。

    因此,對于正向動力學(xué)(FK)求解末端效應(yīng)器的方法而言,如果此時一個骨骼鏈上的關(guān)節(jié)節(jié)點變量組成的向量為p=(M0,M1,…,Mn-1Mn),在FK中計算末端效應(yīng)器的坐標(biāo)與旋轉(zhuǎn)向量x(x=(T,R))是一個簡單的矩陣乘法問題,其中T是指從父關(guān)節(jié)節(jié)點到當(dāng)前節(jié)點的位移矩陣,R是指圍繞關(guān)節(jié)節(jié)點i旋轉(zhuǎn)軸旋轉(zhuǎn)θi的旋轉(zhuǎn)矩陣,可以表示為公式(4)。

    x=f(p)

    (4)

    如果將末端效應(yīng)器放在固定位置并朝向x,根據(jù)其計算合適的節(jié)點變換向量p,即:

    p=f-1(x)

    (5)

    由于函數(shù)f是非線性的,因此在公式(4)中從p到x存在唯一解,而公式(5)中從一個特殊的x到p可能有多個解。解決多解問題需要將其進(jìn)行線性化,這里通過關(guān)節(jié)速率與末梢速率之間關(guān)系達(dá)到該目的,可表示為公式(6)。

    (6)

    其中的關(guān)系是由雅克比矩陣[15]所給定的,其體現(xiàn)的是一個可微方程與給出點的最優(yōu)線性逼近,即:

    (7)

    由公式(6)進(jìn)一步可得以下公式, 其中J-1即為雅克比矩陣的轉(zhuǎn)置。

    (8)

    結(jié)合手機(jī)3D動畫生成系統(tǒng)對于骨骼位置求解的需求,將骨骼逆向計算方法總結(jié)為以下幾個步驟:①根據(jù)定性文檔中的交互規(guī)劃動作內(nèi)容,確定交互人物雙方的感興趣點位置,若該規(guī)劃方法是根據(jù)處于末端骨骼的感興趣點求解父骨骼位置,則界定并記錄感興趣點與目標(biāo)父骨骼的最小距離向量值。該值用來檢測反向運(yùn)動學(xué)過程,推導(dǎo)計算是否成功;②若感興趣點與目標(biāo)父骨骼的距離在步驟①中定義的最小值允許范圍內(nèi)(最小允許值的范圍值是由交互規(guī)劃類型確定的,以一個握手動作為例,此時需要雙方手部骨骼相接觸,因此最小允許范圍值為雙方手部骨骼相對位置差值的絕對值小于4個網(wǎng)格單位),記錄此時的父骨骼數(shù)據(jù),退出循環(huán);③計算雅克比矩陣與其旋轉(zhuǎn)軸,根據(jù)結(jié)果求解雅克比矩陣的轉(zhuǎn)置矩陣;④對骨骼關(guān)節(jié)速率進(jìn)行積分,得到關(guān)節(jié)旋轉(zhuǎn)值并更新記錄;⑤重新判斷感興趣點與目標(biāo)父骨骼的距離是否在步驟①定義的最小值允許范圍內(nèi),若在此范圍內(nèi),則記錄父骨骼數(shù)據(jù),退出循環(huán)。

    3 實驗

    本文中的原始動作數(shù)據(jù)來源包括兩部分:①從原始2 455個BVH動作文件中選取合適數(shù)據(jù);②使用動作拼接技術(shù)對原始BVH動作進(jìn)行拼接修改。由于實驗方面使用動畫制作軟件Maya作為底層動畫制作與生成平臺,但Maya并不支持BVH動作格式,因此要想利用Maya完成角色動畫,BVH數(shù)據(jù)需要經(jīng)過人物關(guān)節(jié)坐標(biāo)及角度標(biāo)準(zhǔn)化后,使用動作制作軟件MotionBuilder轉(zhuǎn)換成Maya可識別導(dǎo)入的FBX動作數(shù)據(jù),并將其存儲到交互動作數(shù)據(jù)庫中。針對交互運(yùn)動實驗,采用1*1個單位的網(wǎng)格作為基本長度單位,其中人物模型高度為32個單位,軀干寬為4個單位,臂長為10個單位。添加動作后,人物最大運(yùn)動姿態(tài)MAX為24個單位,最小運(yùn)動姿態(tài)MIN為6個單位,旋轉(zhuǎn)姿態(tài)為14個單位。程序運(yùn)行在DELL酷睿雙核圖形工作站上,由Maya生成的動畫原始文件通過10臺曙光標(biāo)配刀片服務(wù)器進(jìn)行渲染合成。

    對于短信內(nèi)容“謝謝你將這本書借給我”,其交互運(yùn)動定性規(guī)劃xml信息如下:

    該定性信息表示添加的2個虛擬人物為M_boy與M_girl,交互雙方分別執(zhí)行3個動作并進(jìn)行組合。M_girl在動作準(zhǔn)備階段執(zhí)行表示等待行為的動作,M_boy綁定交互物圖書,并經(jīng)過骨骼數(shù)據(jù)計算規(guī)劃運(yùn)動路徑后走到合適位置,將書本遞給M_girl完成交互行為,交互行為完成后,M_girl執(zhí)行表示感謝行為的動作,M_boy執(zhí)行表示謙虛狀態(tài)的動作。其動畫生成效果如圖3所示。

    圖3 動畫生成效果

    4 結(jié)語

    本文研究的主要內(nèi)容是在手機(jī)3D動畫自動生成系統(tǒng)中,采用基于Kinesiology的骨骼數(shù)據(jù)計算方法規(guī)劃計算人物交互運(yùn)動。首先根據(jù)主題及場景信息添加交互動作,運(yùn)用擴(kuò)展的FK及IK動態(tài)計算人物骨骼數(shù)據(jù)以及運(yùn)動狀態(tài),進(jìn)而動態(tài)規(guī)劃虛擬人物運(yùn)動路徑與交互物路徑,從而完成虛擬人物動作之間的交互響應(yīng),最終實現(xiàn)虛擬人與虛擬人之間、虛擬人與交互物之間的交互運(yùn)動。但由于當(dāng)前FBX動作庫中含有的動作數(shù)量與種類較少,生成動畫的多樣性與豐富性受到限制,而且當(dāng)前的骨骼計算準(zhǔn)確度受限于動作數(shù)據(jù)的精細(xì)程度,因此接下來的研究重點是進(jìn)一步擴(kuò)充動作數(shù)據(jù)庫,以及提高動作數(shù)據(jù)的精細(xì)度。

    猜你喜歡
    骨骼動畫矩陣
    做家務(wù)的女性骨骼更強(qiáng)壯
    中老年保健(2021年5期)2021-12-02 15:48:21
    三減三健全民行動——健康骨骼
    中老年保健(2021年5期)2021-08-24 07:06:28
    做個動畫給你看
    動畫發(fā)展史
    我的動畫夢
    文苑(2019年22期)2019-12-07 05:28:56
    骨骼和肌肉
    小布老虎(2017年1期)2017-07-18 10:57:27
    初等行變換與初等列變換并用求逆矩陣
    我是動畫迷
    矩陣
    南都周刊(2015年4期)2015-09-10 07:22:44
    矩陣
    南都周刊(2015年3期)2015-09-10 07:22:44
    镇江市| 仪陇县| 珲春市| 荥经县| 巨野县| 金湖县| 通海县| 嘉荫县| 昆明市| 都昌县| 区。| 攀枝花市| 湟中县| 海阳市| 子洲县| 绥滨县| 长泰县| 会同县| 澄迈县| 库尔勒市| 中阳县| 高密市| 成都市| 民勤县| 衡水市| 崇明县| 江源县| 芜湖县| 绍兴市| 福州市| 信丰县| 文登市| 枣阳市| 扶沟县| 胶南市| 灌南县| 张家港市| 集安市| 古交市| 静宁县| 孟州市|