亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于實(shí)時(shí)權(quán)重的虛擬人運(yùn)動(dòng)合成方法

        2021-06-03 06:41:10馬建曉
        關(guān)鍵詞:動(dòng)作方法

        馬建曉,劉 偉

        (南陽師范學(xué)院 機(jī)電工程學(xué)院,河南 南陽 473061)

        0 引 言

        虛擬人作為參與者在虛擬現(xiàn)實(shí)中的表示,其逼真程度直接影響了參與者的沉浸感。運(yùn)動(dòng)捕獲方法就是通過捕獲真實(shí)人的運(yùn)動(dòng)數(shù)據(jù)記錄人體運(yùn)動(dòng)中豐富的細(xì)節(jié),生成具有很強(qiáng)真實(shí)感和較強(qiáng)實(shí)時(shí)性的人體動(dòng)畫[1-2]。但是在虛擬人的運(yùn)動(dòng)過程中,并不是重復(fù)單個(gè)動(dòng)作,往往需要做出各種不同的動(dòng)作,因此必須解決動(dòng)作之間的切換問題。一種實(shí)現(xiàn)動(dòng)作過渡的簡(jiǎn)單方法就是利用關(guān)鍵幀插值技術(shù),將前后動(dòng)作的一些特殊位置作為關(guān)鍵幀,然后通過參數(shù)插值實(shí)現(xiàn)運(yùn)動(dòng)[3-4]。這種方法雖然簡(jiǎn)單,但是處理效果并不理想,尤其是當(dāng)動(dòng)作與動(dòng)作間的過渡時(shí)間較長(zhǎng)時(shí),在過渡時(shí)間內(nèi)可能會(huì)出現(xiàn)新的特殊位置,所以僅僅依靠運(yùn)動(dòng)變化前后兩個(gè)關(guān)鍵幀是無法通過參數(shù)插值來實(shí)現(xiàn)的。文獻(xiàn)[5]提出一種數(shù)據(jù)驅(qū)動(dòng)的虛擬人運(yùn)動(dòng)生成模式。當(dāng)直接使用運(yùn)動(dòng)捕獲的數(shù)據(jù)無法保證與虛擬環(huán)境實(shí)時(shí)交互時(shí),可將人體的物理性質(zhì)與運(yùn)動(dòng)捕獲數(shù)據(jù)聯(lián)合計(jì)算,以獲取物理正確性的控制參數(shù),通過運(yùn)動(dòng)分割器和姿態(tài)生成器得到運(yùn)動(dòng)參數(shù)。這種動(dòng)力學(xué)控制方法雖然部分解決了生成動(dòng)作機(jī)械化的問題,但由于人體物理性質(zhì)的復(fù)雜性,在復(fù)雜虛擬環(huán)境中還會(huì)出現(xiàn)動(dòng)作失真的現(xiàn)象[6-7]。另外,在虛擬現(xiàn)實(shí)中虛擬人還經(jīng)常在同一時(shí)刻做出多個(gè)動(dòng)作。比如在作戰(zhàn)仿真系統(tǒng)[8]中,步行動(dòng)作和射擊動(dòng)作作為兩種不同的基本動(dòng)作,常常是同時(shí)進(jìn)行的。甚至有時(shí)候虛擬人會(huì)同時(shí)做出兩種以上不同的動(dòng)作。比如在步行前進(jìn)射擊的過程中,做出臥倒動(dòng)作,這些都屬于虛擬人運(yùn)動(dòng)合成的問題。逼真的虛擬人運(yùn)動(dòng)合成目前主要面臨以下困難[9]:(1)在交互式虛擬現(xiàn)實(shí)中,虛擬人的運(yùn)動(dòng)要受到使用者的控制,然而這種控制通常是較高層次的控制,如運(yùn)動(dòng)的方向、速度等,而不是對(duì)某個(gè)關(guān)節(jié)角度或肢體形態(tài)等底層的控制,缺少靈活的動(dòng)作切換和合成技術(shù)將有損系統(tǒng)的交互性。(2)虛擬人運(yùn)動(dòng)具有內(nèi)在的結(jié)構(gòu)和時(shí)序性。例如,行走通常要包括右腳支撐、左腳支撐再到右腳支撐等過程,合成在結(jié)構(gòu)上不完整的運(yùn)動(dòng)是沒有意義的。

        針對(duì)以上問題,必須找到一種合適的運(yùn)動(dòng)融合方法來合成滿足控制信息和環(huán)境約束的動(dòng)作。運(yùn)動(dòng)融合的基本思想就是把運(yùn)動(dòng)看成基于時(shí)間的一組信號(hào),從而可以對(duì)兩種或兩種以上的運(yùn)動(dòng)信號(hào)進(jìn)行按權(quán)重相加,合成一種新運(yùn)動(dòng)[2,10]。該文對(duì)傳統(tǒng)的基于固定權(quán)重相加的運(yùn)動(dòng)融合技術(shù)進(jìn)行改進(jìn),提出一種基于實(shí)時(shí)權(quán)重相加的運(yùn)動(dòng)融合技術(shù),在進(jìn)行虛擬人交互式控制時(shí),通過在運(yùn)動(dòng)過程中實(shí)時(shí)計(jì)算被融合運(yùn)動(dòng)的權(quán)重進(jìn)行動(dòng)作合成,使合成的動(dòng)作既滿足控制者的需要,又滿足環(huán)境約束條件。

        1 基于運(yùn)動(dòng)融合技術(shù)的運(yùn)動(dòng)切換方法

        在虛擬現(xiàn)實(shí)中,虛擬人經(jīng)常需要在步行、跑步和跳躍等動(dòng)作之間切換,如果忽略中間的過渡階段,直接將虛擬人從一個(gè)動(dòng)作轉(zhuǎn)換到下一個(gè)動(dòng)作,則無法實(shí)現(xiàn)平滑過渡,視覺效果較差[11-12]。以步行運(yùn)動(dòng)和跑步運(yùn)動(dòng)為例,兩種動(dòng)作都是周期型運(yùn)動(dòng),具有較強(qiáng)的相似性。但是在融合的過程中運(yùn)動(dòng)信號(hào)還必須基于時(shí)間對(duì)齊,即運(yùn)動(dòng)序列在時(shí)間上對(duì)齊,否則融合的運(yùn)動(dòng)將完全沒有意義。例如,將跑步運(yùn)動(dòng)中落地階段的動(dòng)作與步行運(yùn)動(dòng)中腳在空中的動(dòng)作進(jìn)行融合,融合的結(jié)果就沒有意義。

        時(shí)間變換[13]是對(duì)運(yùn)動(dòng)中的時(shí)間進(jìn)行重新映射,通過這種變換將信號(hào)表示在一個(gè)新的時(shí)間段里,這一過程即為運(yùn)動(dòng)序列對(duì)齊。時(shí)間變換可以實(shí)現(xiàn)對(duì)信號(hào)的膨脹和壓縮,這樣處理能夠使兩個(gè)不同步信號(hào)變換為時(shí)間上同步協(xié)同的信號(hào)。

        通過運(yùn)動(dòng)融合技術(shù),實(shí)現(xiàn)動(dòng)作θ1(t)到θ2(t)的切換,基本思路是,將動(dòng)作θ1(t)結(jié)束時(shí)間段里的運(yùn)動(dòng)關(guān)節(jié)參數(shù)和動(dòng)作θ2(t)起始時(shí)間段里的運(yùn)動(dòng)關(guān)節(jié)參數(shù)按照一定的比例權(quán)重進(jìn)行疊加,就可在這個(gè)重疊時(shí)間段里實(shí)現(xiàn)運(yùn)動(dòng)θ1(t)到運(yùn)動(dòng)θ2(t)的過渡[14]。過渡動(dòng)作的計(jì)算公式如下:

        θ(t)=s(t)θ1(t)+(1-s(t))θ2(t)

        (1)

        其中,s(t)為過渡函數(shù),是關(guān)于時(shí)間t的函數(shù),在過渡階段,隨著時(shí)間的推移而發(fā)生變化,決定了在過渡過程中兩個(gè)不同動(dòng)作的權(quán)重;θ(t)表示過渡動(dòng)作關(guān)節(jié)參數(shù)關(guān)于時(shí)間t的函數(shù)。從公式(1)可知,動(dòng)作切換實(shí)質(zhì)上是將前后兩個(gè)基于時(shí)間的動(dòng)作關(guān)節(jié)參數(shù)信號(hào)按權(quán)重進(jìn)行相加,不同的過渡函數(shù)s(t)決定了不同的切換效果。因此,針對(duì)不同的運(yùn)動(dòng)切換必須設(shè)定與運(yùn)動(dòng)類型相一致的過渡函數(shù)才能保證切換效果的真實(shí)性。

        在研究?jī)煞N動(dòng)作之間的切換時(shí),由于兩個(gè)動(dòng)作的權(quán)重和等于1,所以只需設(shè)定一個(gè)動(dòng)作的權(quán)重函數(shù)即可。權(quán)重函數(shù)一般可分為線性過渡函數(shù)和非線性過渡函數(shù)兩大類。常用的線性函數(shù)表達(dá)式如公式(2)。

        (2)

        在實(shí)際的虛擬人運(yùn)動(dòng)關(guān)節(jié)參數(shù)計(jì)算時(shí),時(shí)間按照運(yùn)動(dòng)幀的間隔向前推進(jìn),因此常用的是其離散表達(dá)式,如公式(3)。

        (3)

        非線性過渡函數(shù)的表達(dá)式有多種,常用的是指數(shù)衰減函數(shù),表達(dá)式如公式(4)。

        s(t)=e-αt-e-αN,α為衰減系數(shù)

        (4)

        離散表達(dá)式如公式(5)。

        s(i)=e-αni-e-αN,0≤ni≤N,α為衰減系數(shù)

        (5)

        在以上表達(dá)式中,N指過渡時(shí)間內(nèi)需要重新編輯的幀數(shù),ni為當(dāng)前的幀為第i個(gè)編輯幀。s(i)為前一個(gè)動(dòng)作過渡時(shí)間內(nèi)的第i個(gè)運(yùn)動(dòng)幀的關(guān)節(jié)參數(shù),由s(i)表達(dá)式可知,在運(yùn)動(dòng)切換的過程中,前一個(gè)動(dòng)作的權(quán)重逐漸減小,后一個(gè)動(dòng)作的權(quán)重逐漸增大。具體過渡函數(shù)的選擇要結(jié)合兩個(gè)切換動(dòng)作本身的時(shí)空特性來決定,一般來講,相似動(dòng)作的過渡,例如步行動(dòng)作與跑步動(dòng)作的過渡一般選用線性函數(shù),而差別較大的動(dòng)作,例如在跑步前進(jìn)中,從跑步動(dòng)作突然到跳躍動(dòng)作的過渡一般選用非線性函數(shù)。

        2 步行運(yùn)動(dòng)到跑步運(yùn)動(dòng)切換的實(shí)現(xiàn)

        為了實(shí)現(xiàn)步行運(yùn)動(dòng)到跑步運(yùn)動(dòng)的切換,選擇步行和跑步的一個(gè)單步運(yùn)動(dòng)周期作為運(yùn)動(dòng)過渡的重疊區(qū)間。由于行走和跑步的速度不一樣,所以步行運(yùn)動(dòng)和跑步運(yùn)動(dòng)的單步運(yùn)動(dòng)周期不同。如果采用相同的采樣頻率,所獲得的采樣幀數(shù)就不同。針對(duì)這個(gè)問題,該文采用時(shí)間變換的方法是將單步運(yùn)動(dòng)周期統(tǒng)一縮放到[0,1]區(qū)間內(nèi),建立一種從t到t'的映射關(guān)系t'=g(t),只要給定每一幀的運(yùn)動(dòng)時(shí)間,通過映射關(guān)系就可以找到經(jīng)過時(shí)間變換的相對(duì)運(yùn)動(dòng)時(shí)間。由于步行運(yùn)動(dòng)和跑步動(dòng)作均為周期運(yùn)動(dòng),因此,該文選擇線性時(shí)間變換函數(shù),其表達(dá)式如公式(6)。

        (6)

        其中,tp為對(duì)應(yīng)跑步運(yùn)動(dòng)和步行運(yùn)動(dòng)的單步運(yùn)動(dòng)周期,n為當(dāng)前的幀為第幾個(gè)編輯幀。通過函數(shù)變換,可以將時(shí)間長(zhǎng)度映射到[0,1]區(qū)間內(nèi),使步行運(yùn)動(dòng)和跑步運(yùn)動(dòng)在一個(gè)單步周期內(nèi)同步。通過時(shí)間變換和運(yùn)動(dòng)采樣分析,保證每個(gè)運(yùn)動(dòng)的采樣幀在映射區(qū)間內(nèi)均勻分布且數(shù)量相等。

        跑步運(yùn)動(dòng)曲線如圖1所示,紅線表示腳尖的軌跡曲線,綠線表示腳后跟的軌跡曲線。在時(shí)空特性分析的過程中,采用與步行運(yùn)動(dòng)相同的采樣頻率進(jìn)行采樣,同時(shí)記錄每一個(gè)采樣點(diǎn)處的運(yùn)動(dòng)關(guān)節(jié)坐標(biāo),并保存到相應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。

        圖1 跑步運(yùn)動(dòng)關(guān)鍵節(jié)點(diǎn)曲線

        在實(shí)現(xiàn)運(yùn)動(dòng)切換時(shí),依然采用按幀運(yùn)動(dòng)編輯的方法進(jìn)行運(yùn)動(dòng)編輯。即在一個(gè)單步運(yùn)動(dòng)周期內(nèi)按照固定的采樣間隔逐幀對(duì)虛擬人的運(yùn)動(dòng)姿態(tài)進(jìn)行編輯,由于采樣間隔一般小于運(yùn)動(dòng)幀間隔,所以進(jìn)行編輯后還要運(yùn)用四元數(shù)球狀線性插值技術(shù)實(shí)現(xiàn)兩個(gè)被編輯幀之間的運(yùn)動(dòng)序列。運(yùn)動(dòng)編輯公式如公式(7)。

        (7)

        其中,s(i)為第i個(gè)被編輯幀步行運(yùn)動(dòng)的權(quán)重,k為第幾個(gè)需要計(jì)算的運(yùn)動(dòng)關(guān)節(jié),K為總的需要編輯的運(yùn)動(dòng)關(guān)節(jié)個(gè)數(shù),wk(ni)為步行運(yùn)動(dòng)中第i個(gè)采樣幀處第k個(gè)運(yùn)動(dòng)關(guān)節(jié)的坐標(biāo)位置,rk(ni)為跑步運(yùn)動(dòng)中第i個(gè)采樣幀處第k個(gè)運(yùn)動(dòng)關(guān)節(jié)的坐標(biāo)位置。

        在計(jì)算運(yùn)動(dòng)關(guān)節(jié)坐標(biāo)時(shí),根據(jù)構(gòu)建的虛擬人簡(jiǎn)化幾何模型,針對(duì)步行運(yùn)動(dòng)和跑步運(yùn)動(dòng),只需關(guān)注虛擬人下體運(yùn)動(dòng)關(guān)節(jié)坐標(biāo)位置的變化過程,所以在實(shí)際仿真時(shí),只對(duì)臀關(guān)節(jié)、左右股關(guān)節(jié)、左右膝關(guān)節(jié)以及左右踝關(guān)節(jié)的坐標(biāo)位置進(jìn)行編輯。運(yùn)動(dòng)切換過程中虛擬人上體運(yùn)動(dòng)關(guān)節(jié)坐標(biāo)位置的變化,通過計(jì)算腳后跟到身體中心線的連線與地面的夾角,來設(shè)置虛擬人上體的傾斜度。即上體關(guān)節(jié)坐標(biāo)只跟虛擬人兩個(gè)動(dòng)作切換的速度傾斜一定角度。具體的步行運(yùn)動(dòng)到跑步運(yùn)動(dòng)切換的計(jì)算流程如圖2所示。

        圖2 運(yùn)動(dòng)切換流程

        3 基于實(shí)時(shí)權(quán)重運(yùn)動(dòng)融合技術(shù)的運(yùn)動(dòng)合成

        運(yùn)動(dòng)切換可以看作是兩種動(dòng)作的合成,但是在虛擬現(xiàn)實(shí)中,虛擬人僅僅實(shí)現(xiàn)兩種動(dòng)作的合成是遠(yuǎn)遠(yuǎn)不夠的,經(jīng)常需要多種動(dòng)作的合成。常見的基于運(yùn)動(dòng)融合技術(shù)的運(yùn)動(dòng)合成方法大體可以分為兩大類[15-16],即基于固定權(quán)重的運(yùn)動(dòng)合成和基于實(shí)時(shí)權(quán)重的運(yùn)動(dòng)合成。前者通過人為設(shè)定被合成運(yùn)動(dòng)的權(quán)重來合成運(yùn)動(dòng),后者主要根據(jù)一些關(guān)鍵幀的運(yùn)動(dòng)姿態(tài)實(shí)時(shí)計(jì)算被合成動(dòng)作的權(quán)重來合成運(yùn)動(dòng)。

        3.1 基于固定權(quán)重的運(yùn)動(dòng)合成

        基于固定權(quán)重的運(yùn)動(dòng)合成是指在由一些基本運(yùn)動(dòng)構(gòu)成的樣本動(dòng)作庫中,給出一組系數(shù)θi,即每個(gè)樣本動(dòng)作的權(quán)重。由這組系數(shù)θi和原始樣本動(dòng)作ri合成出一個(gè)新的動(dòng)作x,數(shù)學(xué)表達(dá)式如公式(8)。

        (8)

        其中,m為樣本動(dòng)作個(gè)數(shù),從公式(8)可以看出,合成的運(yùn)動(dòng)實(shí)際上是對(duì)樣本運(yùn)動(dòng)的線性融合,因此,合成結(jié)果的連續(xù)性與所采用的基本動(dòng)作的連續(xù)性是相同的。此方法需要人為直接設(shè)定每個(gè)樣本動(dòng)作的權(quán)重來合成新動(dòng)作,對(duì)操作者的要求較高。在實(shí)際應(yīng)用中,通常需要經(jīng)過反復(fù)實(shí)驗(yàn)合成出一些接近真實(shí)人運(yùn)動(dòng)效果的固定動(dòng)作,在運(yùn)動(dòng)過程中不能夠根據(jù)環(huán)境約束改變動(dòng)作,靈活性較差,主要應(yīng)用在環(huán)境約束影響小且場(chǎng)景比較簡(jiǎn)單的虛擬現(xiàn)實(shí)中。

        3.2 基于實(shí)時(shí)權(quán)重的運(yùn)動(dòng)合成

        3.2.1 基于實(shí)時(shí)權(quán)重的運(yùn)動(dòng)合成方法概述

        傳統(tǒng)的運(yùn)動(dòng)合成方法主要有逆向運(yùn)動(dòng)學(xué)方法和基于控制器的方法[16]。逆向運(yùn)動(dòng)學(xué)方法是通過某些末端關(guān)節(jié)的位姿來反求中間運(yùn)動(dòng)關(guān)節(jié)坐標(biāo)信息,不考慮合成運(yùn)動(dòng)的權(quán)重,直接生成新的動(dòng)作,不足之處是需要計(jì)算的關(guān)節(jié)坐標(biāo)信息太多,且基于反復(fù)迭代思路進(jìn)行問題求解,所求結(jié)果可能不滿足人體要求?;诳刂破鞯姆椒ㄊ歉鶕?jù)末端關(guān)節(jié)的位姿計(jì)算虛擬人每個(gè)關(guān)節(jié)的所需控制力矩,實(shí)現(xiàn)特定動(dòng)作的生成與控制。此方法只考慮了人體的機(jī)械特性,仿真的動(dòng)作太過僵硬、正規(guī)。

        基于實(shí)時(shí)權(quán)重的運(yùn)動(dòng)合成方法是指根據(jù)環(huán)境約束生成某個(gè)時(shí)間序列上虛擬人應(yīng)該達(dá)到的運(yùn)動(dòng)姿態(tài),然后依據(jù)該關(guān)鍵幀的運(yùn)動(dòng)姿態(tài)反求出各個(gè)樣本動(dòng)作的權(quán)重進(jìn)而合成出整個(gè)運(yùn)動(dòng)序列。與逆向運(yùn)動(dòng)學(xué)方法相比,該方法不需要通過末端關(guān)節(jié)的位姿來反求中間所有的運(yùn)動(dòng)關(guān)節(jié)坐標(biāo)信息,只需求出某些關(guān)鍵運(yùn)動(dòng)關(guān)節(jié)坐標(biāo)信息,再求出被合成動(dòng)作的權(quán)重。該文提出一種基于時(shí)間序列的矩陣方程算法,來實(shí)時(shí)求解運(yùn)動(dòng)權(quán)重,此方法能夠根據(jù)環(huán)境約束的改變和交互控制者的需要實(shí)時(shí)計(jì)算運(yùn)動(dòng)權(quán)重,并且新動(dòng)作是虛擬人基本動(dòng)作的合成,因此確保了動(dòng)作不失真。

        例如,在合成虛擬人上臺(tái)階的動(dòng)作時(shí),首先根據(jù)虛擬環(huán)境中臺(tái)階的高度和寬度以及控制信息計(jì)算出虛擬人在某時(shí)刻的足跡位置,然后運(yùn)用逆向運(yùn)動(dòng)學(xué)算法計(jì)算足跡位置處的虛擬人運(yùn)動(dòng)姿態(tài),即某些關(guān)鍵運(yùn)動(dòng)關(guān)節(jié)坐標(biāo),主要包括臀關(guān)節(jié)、左右股關(guān)節(jié)、左右膝關(guān)節(jié)等。其次,根據(jù)關(guān)鍵運(yùn)動(dòng)關(guān)節(jié)坐標(biāo)信息計(jì)算被合成動(dòng)作的權(quán)重,最后根據(jù)各個(gè)動(dòng)作的權(quán)重合成出從當(dāng)前位置到足跡位置的整個(gè)虛擬人人體的運(yùn)動(dòng)序列。

        該方法的核心技術(shù)主要有以下兩點(diǎn):①根據(jù)虛擬人末端效應(yīng)器的運(yùn)動(dòng)目標(biāo)位置,運(yùn)用逆向運(yùn)動(dòng)學(xué)算法求解虛擬人的關(guān)鍵運(yùn)動(dòng)關(guān)節(jié)坐標(biāo);②根據(jù)虛擬人的關(guān)鍵運(yùn)動(dòng)關(guān)節(jié)坐標(biāo)求解被合成動(dòng)作的權(quán)重。關(guān)于逆向運(yùn)動(dòng)學(xué)算法求解虛擬人的關(guān)鍵運(yùn)動(dòng)關(guān)節(jié)坐標(biāo),筆者在其他文章中有專門論述,該文重點(diǎn)研究實(shí)時(shí)權(quán)重的計(jì)算方法。

        3.2.2 實(shí)時(shí)權(quán)重的計(jì)算方法

        在進(jìn)行運(yùn)動(dòng)合成時(shí),被合成的運(yùn)動(dòng)是多樣化的,運(yùn)動(dòng)類型各不相同,即有可能存在周期型運(yùn)動(dòng)與非周期型運(yùn)動(dòng)的合成,所以不能按照上述設(shè)定過渡函數(shù)的方法來實(shí)時(shí)計(jì)算運(yùn)動(dòng)權(quán)重,必須在基于關(guān)鍵幀姿態(tài)的約束下設(shè)計(jì)合適的算法來實(shí)時(shí)計(jì)算被合成運(yùn)動(dòng)的權(quán)重。

        為了能夠?qū)崟r(shí)計(jì)算運(yùn)動(dòng)權(quán)重,該文引入了運(yùn)動(dòng)組的概念,每個(gè)運(yùn)動(dòng)組包含多個(gè)周期運(yùn)動(dòng)和一個(gè)非周期運(yùn)動(dòng)。周期運(yùn)動(dòng)一般是指步行運(yùn)動(dòng)、跑步運(yùn)動(dòng)以及左右跨步運(yùn)動(dòng)等,非周期運(yùn)動(dòng)主要是指射擊、跳躍等。在進(jìn)行運(yùn)動(dòng)合成時(shí),約定周期運(yùn)動(dòng)的速度均大于零,非周期運(yùn)動(dòng)的速度均等于零。由于每個(gè)運(yùn)動(dòng)組只包含一個(gè)非周期運(yùn)動(dòng),所以如果被合成的運(yùn)動(dòng)包含多個(gè)非周期運(yùn)動(dòng),就要設(shè)定多個(gè)運(yùn)動(dòng)組來計(jì)算權(quán)重。

        下面給出一種實(shí)時(shí)權(quán)重的計(jì)算方法。

        假定被合成的運(yùn)動(dòng)中只有一個(gè)非周期運(yùn)動(dòng),則構(gòu)建一個(gè)運(yùn)動(dòng)組就可以實(shí)現(xiàn)運(yùn)動(dòng)合成。給定運(yùn)動(dòng)組M,里面包含m個(gè)周期運(yùn)動(dòng)和1個(gè)非周期運(yùn)動(dòng)。首先運(yùn)用時(shí)間變換的方法將周期運(yùn)動(dòng)的周期統(tǒng)一映射到[0,1]區(qū)間上。

        在給定時(shí)刻t,需要虛擬人達(dá)到姿態(tài)p,被合成運(yùn)動(dòng)權(quán)重的計(jì)算方法如下:

        (1)將時(shí)刻t轉(zhuǎn)換為運(yùn)動(dòng)組中周期型運(yùn)動(dòng)在一個(gè)周期內(nèi)的時(shí)刻t';

        (2)計(jì)算每個(gè)周期運(yùn)動(dòng)在時(shí)刻t'的運(yùn)動(dòng)姿態(tài)ri;

        (3)合成新運(yùn)動(dòng)的問題轉(zhuǎn)化為公式(9)的最優(yōu)化問題。

        (9)

        其中,z是指非周期運(yùn)動(dòng)的運(yùn)動(dòng)姿態(tài)。構(gòu)造矩陣A=[r1r2…rmz],則上述問題可以通過計(jì)算α=A-·p求解,其中A-為A的偽逆矩陣,α=[α1α2…αmα]為權(quán)重組成的列向量。通過求解偽逆矩陣方程可以求得單個(gè)運(yùn)動(dòng)的權(quán)重。

        如果被合成的運(yùn)動(dòng)中包含多個(gè)非周期運(yùn)動(dòng),則構(gòu)建多個(gè)運(yùn)動(dòng)組M1,M2,…,Mn,然后給每個(gè)運(yùn)動(dòng)組再設(shè)定一個(gè)組權(quán)重βn,則最優(yōu)化公式可表示公式(10)。

        (10)

        將公式(10)進(jìn)行化簡(jiǎn)后,按照相同的方法求解偽逆矩陣方程可以得到被合成運(yùn)動(dòng)的權(quán)重。其中每個(gè)周期型運(yùn)動(dòng)的權(quán)重值是所有運(yùn)動(dòng)組中運(yùn)動(dòng)權(quán)重值的和。即第i個(gè)運(yùn)動(dòng)幀參數(shù)的最終權(quán)重為:(β1+β2+…+βn)αi。以上通過構(gòu)建運(yùn)動(dòng)組和偽逆矩陣方程,基于特定的關(guān)鍵幀姿態(tài)求解被合成運(yùn)動(dòng)的權(quán)重,達(dá)到了實(shí)時(shí)計(jì)算權(quán)重的目的。

        4 仿真結(jié)果

        Unity是一個(gè)跨平臺(tái)的3D游戲開發(fā)工具,可以非常方便地導(dǎo)入3D模型。在Unity中,腳本主要用來定義用戶在系統(tǒng)中的行為,通過腳本編程可實(shí)現(xiàn)虛擬人模型的各種動(dòng)作。在本次編程實(shí)驗(yàn)中,主要用到兩個(gè)類。一個(gè)是表示對(duì)象位置的類Transform,里面包含對(duì)象的位置參數(shù)、旋轉(zhuǎn)參數(shù)以及大小參數(shù)等。另外一個(gè)是在插值求解時(shí),要用到Unity里的矩陣運(yùn)算類Quaternion(即四元數(shù)),四元數(shù)能夠簡(jiǎn)化旋轉(zhuǎn)矩陣在計(jì)算旋轉(zhuǎn)時(shí)繁瑣的運(yùn)算,同時(shí)又避免了歐拉角的萬向節(jié)鎖問題。

        4.1 步行運(yùn)動(dòng)到跑步運(yùn)動(dòng)切換仿真結(jié)果

        在進(jìn)行步行運(yùn)動(dòng)到跑步運(yùn)動(dòng)切換時(shí),選擇公式(7)的過渡函數(shù),在虛擬人運(yùn)動(dòng)過程中,權(quán)重隨時(shí)間幀線性變化。圖3和圖4給出了虛擬人步行運(yùn)動(dòng)與跑步運(yùn)動(dòng)切換的實(shí)驗(yàn)效果圖。根據(jù)實(shí)驗(yàn)結(jié)果可知,當(dāng)虛擬人在步行運(yùn)動(dòng)和跑步運(yùn)動(dòng)之間切換時(shí),除了腿部運(yùn)動(dòng)關(guān)節(jié)坐標(biāo)發(fā)生改變外,虛擬人上體的運(yùn)動(dòng)關(guān)節(jié)坐標(biāo)也發(fā)生了明顯改變,虛擬人的身體在跑步運(yùn)動(dòng)時(shí)相對(duì)于步行運(yùn)動(dòng)有更大的傾斜度。因此,這種變化僅僅依靠單純的運(yùn)動(dòng)編輯是無法實(shí)現(xiàn)的,必須結(jié)合切換前后兩個(gè)動(dòng)作的運(yùn)動(dòng)姿態(tài)依靠運(yùn)動(dòng)融合方法才能得到準(zhǔn)確的虛擬人運(yùn)動(dòng)姿態(tài)。在作戰(zhàn)仿真系統(tǒng)中,虛擬士兵經(jīng)常需要在多種動(dòng)作之間進(jìn)行切換,此方法不僅可以應(yīng)用到步行運(yùn)動(dòng)和跑步運(yùn)動(dòng)之間,還可以應(yīng)用到任意兩種動(dòng)作的切換,比如跑步中的跳躍、射擊等。

        圖3 步行運(yùn)動(dòng)到跑步運(yùn)動(dòng)切換的實(shí)驗(yàn)效果

        圖4 跑步運(yùn)動(dòng)到步行運(yùn)動(dòng)切換的實(shí)驗(yàn)效果

        4.2 運(yùn)動(dòng)合成仿真結(jié)果

        以虛擬士兵為例,在進(jìn)行運(yùn)動(dòng)合成仿真時(shí),共選擇5個(gè)基礎(chǔ)動(dòng)作,分別是:步行、跑步、射擊、瞄準(zhǔn)、休息(靜止)。其中每個(gè)動(dòng)作又可分為不同的運(yùn)行狀態(tài),比如步行動(dòng)作可分為:朝前(WalkForward)、朝后(WalkBackward)、朝左(WalkStrafeLeft)、朝右(WalkStrafeRight)、正常先進(jìn)(WalkIdle)、快步前進(jìn)(WalkRun)等。圖5給出了運(yùn)動(dòng)合成的權(quán)重圖,左半部分表明當(dāng)虛擬人開始步行運(yùn)動(dòng)時(shí),步行運(yùn)動(dòng)的權(quán)重從0逐漸增加到1,即從靜止?fàn)顟B(tài)到完全的步行狀態(tài)中間有一個(gè)過程,比較符合真實(shí)人的運(yùn)動(dòng)情況。如圖5左半圖所示的時(shí)刻,虛擬人從靜止?fàn)顟B(tài)開始前進(jìn),第一只腳剛剛抬起還未放下時(shí),此刻步行朝前(WalkForward)的權(quán)重為0.651,休息動(dòng)作(Idle1)的權(quán)重為0.349。右半部分表明虛擬人在步行運(yùn)動(dòng)和跑步運(yùn)動(dòng)之間切換時(shí),在有環(huán)境約束的情況下(即臺(tái)階引起的地面高度變化),兩個(gè)運(yùn)動(dòng)的權(quán)重是此消彼長(zhǎng)的過程。如圖5右半圖所示的時(shí)刻,在交互者控制運(yùn)動(dòng)時(shí),虛擬人左腳的目標(biāo)位置已經(jīng)確定,要快速登上臺(tái)階,此刻步行朝前(WalkForward)的權(quán)重為0.425,跑步朝前(RunForward)的權(quán)重為0.567,跑步朝左(RunStrafeLeft)的權(quán)重為0.008(說明此刻虛擬人有朝左運(yùn)動(dòng)的趨勢(shì))。

        需要說明的是,各個(gè)動(dòng)作的權(quán)重受交互者的控制而實(shí)時(shí)變化,動(dòng)作權(quán)重根據(jù)虛擬人的目標(biāo)運(yùn)行位置和關(guān)鍵關(guān)節(jié)的坐標(biāo)信息(通過逆向運(yùn)動(dòng)學(xué)求得),按照3.2.2節(jié)的矩陣方程求得,與虛擬人當(dāng)前的運(yùn)動(dòng)姿態(tài)沒有直接關(guān)系。運(yùn)動(dòng)融合技術(shù)從本質(zhì)上來講是對(duì)運(yùn)動(dòng)編輯技術(shù)的延伸,根據(jù)以上實(shí)驗(yàn)結(jié)果可知,當(dāng)虛擬人根據(jù)時(shí)空約束需要做出新動(dòng)作時(shí),如果依靠調(diào)整單個(gè)動(dòng)作(即運(yùn)動(dòng)編輯)不能完成時(shí),就必須通過實(shí)時(shí)計(jì)算運(yùn)動(dòng)權(quán)重進(jìn)行多個(gè)動(dòng)作的合成來完成這個(gè)新動(dòng)作。因此,在開發(fā)虛擬人仿真系統(tǒng)時(shí),一般將這兩種技術(shù)結(jié)合使用,根據(jù)時(shí)空約束的復(fù)雜程度選擇合適的技術(shù)實(shí)現(xiàn)虛擬人豐富多彩的運(yùn)動(dòng)。

        5 結(jié)束語

        針對(duì)虛擬人多個(gè)運(yùn)動(dòng)的合成問題,提出了一種基于實(shí)時(shí)權(quán)重相加的運(yùn)動(dòng)融合技術(shù)。首先,通過時(shí)間變換和設(shè)定運(yùn)動(dòng)過渡函數(shù),在過渡時(shí)間內(nèi)對(duì)虛擬人的運(yùn)動(dòng)姿態(tài)進(jìn)行重新編輯,實(shí)現(xiàn)了步行運(yùn)動(dòng)到跑步運(yùn)動(dòng)的切換。其次,重點(diǎn)對(duì)基于實(shí)時(shí)權(quán)重的運(yùn)動(dòng)合成方法進(jìn)行研究,提出了一種實(shí)時(shí)權(quán)重的計(jì)算方法,基于虛擬人的關(guān)鍵幀姿態(tài)實(shí)時(shí)求解被合成運(yùn)動(dòng)的權(quán)重,實(shí)現(xiàn)了多個(gè)運(yùn)動(dòng)的合成。但是在實(shí)驗(yàn)仿真時(shí),構(gòu)建的虛擬場(chǎng)景相對(duì)簡(jiǎn)單,在對(duì)提出的方法進(jìn)行驗(yàn)證時(shí),由于Unity平臺(tái)的動(dòng)畫是基于腳本進(jìn)行控制的,因此無法將運(yùn)動(dòng)過程中的相關(guān)數(shù)據(jù)保存分析,只滿足了開發(fā)者視覺上的需求,沒有一套完整的數(shù)據(jù)指標(biāo)定量分析實(shí)驗(yàn)結(jié)果。尤其在構(gòu)建復(fù)雜虛擬現(xiàn)實(shí)場(chǎng)景時(shí),僅僅依靠視覺效果是無法滿足開發(fā)者的各類需求的,必須給出一套參數(shù)用來衡量系統(tǒng)的優(yōu)劣,在標(biāo)準(zhǔn)化方面有待進(jìn)一步完善。

        猜你喜歡
        動(dòng)作方法
        下一個(gè)動(dòng)作
        學(xué)習(xí)方法
        動(dòng)作描寫要具體
        畫動(dòng)作
        讓動(dòng)作“活”起來
        動(dòng)作描寫不可少
        可能是方法不對(duì)
        用對(duì)方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        免费a级毛片在线播放不收费| 91久久综合精品国产丝袜长腿| 国产美女三级视频网站| 久久天天躁狠狠躁夜夜中文字幕| 狼色在线精品影视免费播放| 偷拍激情视频一区二区| 国产一区二区三区啊啊| 不卡一区二区黄色av| 国产色视频一区二区三区qq号| 18禁黄网站禁片免费观看女女| 久久婷婷香蕉热狠狠综合| 青草蜜桃视频在线观看| 日韩国产自拍视频在线观看| 加勒比婷婷色综合久久 | 欧美日韩色另类综合| 久久av无码精品人妻出轨| 久久久精品国产亚洲成人满18免费网站| 国产高清精品自在线看| 国产av在线观看91| 日本综合视频一区二区| 爽爽影院免费观看| 国产精品妇女一二三区| 熟妇的荡欲色综合亚洲| 亚洲另类激情综合偷自拍图| 亚洲夫妻性生活视频网站| 亚洲伊人av天堂有码在线| 97久久超碰国产精品旧版| 精品无码一区二区三区亚洲桃色| 日韩国产精品一本一区馆/在线| 久久精品蜜桃美女av| 亚洲中文字幕舔尻av网站| 真实国产精品vr专区| 色窝窝在线无码中文| 亚洲无线码一区在线观看| 国产av无毛无遮挡网站| 最美女人体内射精一区二区| 日本阿v网站在线观看中文| 久久久久久岛国免费网站| 91偷自国产一区二区三区| 9 9久热re在线精品视频| 国产精品一区二区久久乐下载|