TW201401224A - 二維角色表現三維動作之系統及方法 - Google Patents

二維角色表現三維動作之系統及方法 Download PDF

Info

Publication number
TW201401224A
TW201401224A TW102122531A TW102122531A TW201401224A TW 201401224 A TW201401224 A TW 201401224A TW 102122531 A TW102122531 A TW 102122531A TW 102122531 A TW102122531 A TW 102122531A TW 201401224 A TW201401224 A TW 201401224A
Authority
TW
Taiwan
Prior art keywords
bone
angle
dimensional
depth
calculation
Prior art date
Application number
TW102122531A
Other languages
English (en)
Other versions
TWI521469B (zh
Inventor
Tse-Jen Lu
Wen-Chin Lin
Ming-Chu Wu
Te-Chuan Hsieh
Jen-Chih Li
Sheng-Yen Huang
Original Assignee
Reallusion Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Reallusion Inc filed Critical Reallusion Inc
Publication of TW201401224A publication Critical patent/TW201401224A/zh
Application granted granted Critical
Publication of TWI521469B publication Critical patent/TWI521469B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites

Abstract

本發明提出一讓二維角色(2D Character)能表現左右(X軸)、上下(Y軸)及前後(Z軸)之三維動作之系統及方法。本發明係分析所輸入之人體三維動作資料(3D Human Motion Data),以取得三維動作資料中人體各部位的角度、座標及深度之運動資訊,並透過圖片集合(Sprite)與三維動作的配對的方式,讓二維角色身體的每個部位圖像皆能依照三維動作的角度資訊,切換到符合該角度的合理圖片,並根據三維動作深度及角度資訊,調整二維角色各部位的圖像的大小或變形,讓二維角色能如同三維角色般達到具有深度資訊的正面表演、側身表演、轉身表演或背面表演等視覺表演效果。

Description

二維角色表現三維動作之系統及方法
本發明係為一種讓二維角色(2D Character)能表現三維動作之系統及方法。透過分析人體三維動作資料(3D Human Motion Data),以取得三維動作資料中人體各部位的角度、座標及深度之運動資訊,並透過圖片集合(Sprite)與三維動作的配對的方式,讓二維角色身體的每個部位圖像皆能依照三維動作的資訊,達到具有深度資訊的視覺表演效果。
二維動畫(2D Cut-out Animation)與三維動畫(3D Animation)最大的不同之處在於二維動畫只有左右(X軸)及上下(Y軸)的資訊,並沒有深度(Depth)即前後(Z軸)的概念。由於二維動畫缺乏深度設計,因此現實狀況中三維的動作並不適合直接給予二維的角色使用,否則會出現許多視覺上的錯誤。為了表演出二維動畫物件的能套用三維的動作資料,德國學者Alexander Hornung,Ellen Dekkers,Leif Kobbelt等人在2007年曾提出「Character Animation from 2D Pictures and 3D Motion Data」的方法,但此方法的表演受限於二維角色的面向,只能表現出單一面向的動畫,若是三維動作中包括面向的轉換,例如動作由正面轉向側面或轉向背面時,則此方法現將無法讓二維角色做出正確的三維表演動作。
本發明之主要目的係提出一種讓二維角色(2D Character)能表現左右(X軸)、上下(Y軸)及前後(Z軸)之三維動作之系統及方法。本發明係分析所輸入之人體三維動作資料(3D Human Motion Data),以取得三維動作資料中人體各部位的角度、座標及深度之運動資訊,並透過圖片集合(Sprite)與三維動作的配對的方式,讓 二維角色身體的每個部位圖像皆能依照三維動作的角度資訊,切換到符合該角度的合理圖片,並根據三維動作深度及角度資訊,調整二維角色各部位的圖像的大小或變形,讓二維角色能如同三維角色般達到具有深度資訊的正面表演、側身表演、轉身表演或背面表演等視覺表演效果。
01‧‧‧三維動作載入單元
02‧‧‧虛擬攝影機轉換單元
03‧‧‧二維動作轉換單元
04‧‧‧顯示單元
011、021、022、023‧‧‧流程步驟
031、032、033、034、041‧‧‧流程步驟
121‧‧‧左上臂
122‧‧‧左下臂
201‧‧‧虛擬攝影機視點
71‧‧‧虛擬骨架的左下臂
121‧‧‧左上臂
122‧‧‧左下臂
圖一係本發明之一實施例之系統架構示意圖
圖二係本發明之一實施例以8個具代表性的水平虛擬攝影機為範例之示意圖。
圖三係本發明之一實施例之由8號攝影機(315°)為視點之觀察範例之示意圖。
圖四係本發明之一實施例之三維運動角度計算與攝影機關係之示意圖。
圖五係本發明之一實施例以左手拳頭不同角度圖片組合為範例而成的Sprite之示意圖。
圖六係本發明之一實施例中Sprite Angle計算之示意圖。
圖七係本發明之一實施例中對左下臂以每45度做為角度劃分,建立26個Sprite為例之示意圖。
圖八係本發明之一實施例中角度刻度及Sprite圖片對應關係表之示意圖。
圖九係本發明之一實施例中以90度為刻度為區分之Sprite圖組對應之範例之示意圖。
圖十係本發明之一實施例中彈性的角度刻度與Sprite組合範例之示意圖。
圖十一係本發明之一實施例中二維旋轉計算示意圖。
圖十二係本發明之一實施例中二維骨頭透視計算示意圖。
圖十三係本發明之一實施例中二維骨頭厚度模擬計算示意圖。
圖十四係本發明之一實施例中深度資訊之應用之示意圖。
圖十五係本發明之一實施例中脊椎節點(身體)在手節點(手臂) 之前示意圖。
圖十六係本發明之一實施例中手節點(手臂)在脊椎節點(身體)之前示意圖。
圖十七係本發明之一實施例中物件的層級指派對二維動畫正確性之示意圖。
圖十八係本發明之一實施例中二維動畫混合層級與深度關係之渲染示意圖。
圖十九係本發明之一實施例中二維角色表演三維正面走路動作之示意圖。
圖二十係本發明之一實施例中二維角色表演三維側身走路動作之示意圖。
圖二十一係本發明之一實施例中二維角色表演三維轉身動作之示意圖。
為進一步對本發明有更清楚之說明,乃藉由以下圖式、原理及步驟詳細說明實施方法,冀能對貴審查委員之審查工作有所助益。
圖一係依據本發明之二維角色表現三維動作之系統之一實施例之系統架構圖,該系統包括一三維動作載入單元01、一虛擬攝影機轉換單元02、一二維動作轉換單元03及一顯示單元04,茲說明如下。
三維動作載入單元01係將人體三維動作資料對應至虛擬骨架(圖一中之步驟011)。由於人體三維動作資料具有階層結構性,因此可透過習知的Hierarchical animation運算方式,可將人體三維動作資料套用在虛擬的骨架上,將所有動作資料以矩陣方式記錄下來後,即可得到動作骨架世界矩陣(Motion Bone World Matrix;WM)。
虛擬攝影機轉換單元02首先架設虛擬攝影機用以觀察三維動作及其虛擬骨架(圖一中之步驟021)。完整的三維動作資訊應包括座標(左右、上下、前後)及旋轉角度。為計算及得到三維動作資料 的二維相對資訊,以架設虛擬攝影機(Virtual Camera)的概念,定義一個觀察三維動作的視點(View Point),觀察視點可以是三維世界(3D World)中的任何位置,如圖二中攝影機可以擺放在具水平代表性的8個位置等,用以觀察並得到人體三維動作資料中,人體各部位的X,Y座標及Z深度。在實作上我們只需要設定一個攝影機即可。如圖三即為以315°(圖二中之Cam 8)為虛擬攝影機視點201觀察三維動作及虛擬骨架之範例。
虛擬攝影機轉換單元02接著計算動作角度(圖一中之步驟022)。該步驟之目的乃在於推算出三維表演動作進行時人體各部位的旋轉及角度資訊,由於三維動作本身並不帶有人體各個部位在運動時的旋轉及角度資訊,因此藉由步驟022在三維世界(3D World)中虛擬攝影機之觀察結果,我們將虛擬攝影機對人體三維動作及其虛擬骨架的關係,用以看向三維世界中心點(Look at World Center)之相對方式,做為判斷人體三維動作角度的基準(如圖四所示),即可得到以虛擬攝影機觀察點為視角進行推算的表演動作角度矩陣(Virtual Camera Transformation Matrix;VCM),即公式1所示(以DirectX右手座標系為例之角度計算方式)。Motion Angle以(Theta,Phi)表示,在三維動作轉換過程用於定義虛擬攝影機位置,其中Theta為水平角度,Phi為垂直角度。公式1表示如下:
虛擬攝影機轉換單元02接著將三維座標轉換為二維座標及深度(圖一中之步驟023)。該步驟之主要目的為取得三維動作及其虛擬體架在表演時各身體部位(節點)的座標與深度資訊。藉由三維動作載入單元01所計算產出的動作骨架世界矩陣(Motion Bone World Matrix;WM)及步驟022所產出的虛擬攝影機轉換矩陣 (Virtual Camera Transformation Matrix;VCM),即可求得人體各部位(節點,Joint Point;JP)的三維座標及深度,如以下公式2所示。
Joint Position(x,y,z)=[0,0,0]* WM * VCM
二維動作轉換單元03首先執行步驟031(見圖一)。圖一步驟031為一Sprite Angle計算步驟。Sprite一詞為電腦圖學專業用語,指被組合放置在同一組的圖片集合,但每次只會有一張圖片被做為使用。在本系統中Sprite指的是某一組相同人體部位的圖片集合,如圖五即為以左手拳頭為例的不同角度圖片組合而成的Sprite。透過Sprite Angle的計算可用來決定一個Sprite在呈現三維動作時可以哪一個角度的圖來顯示。
Sprite Angle的計算即為根據圖一之步驟022所計算得到的節點角度資訊進一步計算後,進行Sprite圖片組中相對應角度圖片的換置。Sprite Angle計算方式是利用由虛擬攝影機視角中觀察到的親節點(Parent Joint)到子節點(Chile Joint)的最短距離所形成的向量(Vector),即親節點的骨向量(Bone Vector)。Sprite Angle的ID分為水平角度及垂直角度。將Bone Vector投射至與虛擬攝影機射線(Virtual Camera Ray)平行的兩個平面(即Y-Z平面及X-Z平面),再與虛擬攝影機射線計算後即可分別得到此一Bone Vector的水平及垂直角度,如圖六為以左下臂Sprite Angle計算角度示意圖。
得到Sprite Angle之後接下來就是決定角度刻度與Sprite圖片組的內所有圖片的對應關係,即何種角度要呈現何種指定圖片。理論上如果以要真實且完美的呈現三維動作角度為目標,每個Sprite會有接近無限多種可能的角度圖片須要被準備好,但這樣的方式並不切實際。因此我們提出以角度刻度區間做為Sprite換圖依據的換圖方法,將虛擬骨架對應的各個Sprite置於一個虛擬立體環狀球形攝影機空間內,如圖七(A)所示,即為將虛擬骨架的左下臂071置於以刻度45度為例的刻度區間內,系統會根據每45度在虛擬立體環狀範圍內,自動建立26台虛擬攝影機,如圖七(B)中每一個黑色圓點或圖七(C)中每一個平面。
若以45度刻度之立體環狀球形攝影機為例,即表示此一個左 下臂Sprite圖組會有26張圖以每45度為間隔的圖片,如圖八所示。其中標示Must的部份乃是系統計算時最起碼需要的6張圖。當左下臂動作表演到某個角度時,系統就會在左下臂Sprite對應關係表中自動找出相對應的現在表演角度的Sprite圖片並顯示出來。
角度刻度區分可自由設定,如圖九為左下臂以刻度90度為區分之Sprite圖組,若為90度則需要準備6張圖組做為對應角度時切換用。其中標示Must的部份乃是系統計算時最起碼需要的6張圖組。
使用者可根據需求自行定義角度刻度及對角色骨架進行設定。如圖十中,全身骨架及左手是以45度水平視角+上下視角,分別共10個圖片組成Sprite。而頭部則是以45度立體環形共26個圖片組成Sprite。
二維動作轉換單元03接著執行步驟032(見圖一)。圖一步驟032為一二維旋轉計算步驟。藉由圖一之步驟022及步驟023之計算結果,二維動作轉換單元03之步驟032計算三維動作表演時骨頭(Bone)的旋轉並產生二維的旋轉資訊。首先設定一個預定骨(Default Bone)的軸向,例如以Y軸為Bone的軸向,將Bone Vector投影至虛擬攝影機(Virtual Camera)的平面,再與Default Bone的軸向計算角度,此角度即為該Bone的二維旋轉量(2D Rotation),如圖十所示。
若有Bone Vector與Virtual Camera平行的狀況發生,亦即落入Top/Bottom區間時,則計算Bone的X軸投影至X-Y平面與X軸的向量夾角即為該Bone的旋轉量。若是末端的Bone例如Hand/Foot/Head,則使用長軸(Y軸)的角度差投影至X-Y平面,計算旋轉量,並要加上親節點(Parent)的旋轉量,即可得到正確的末端Bone的旋轉量。
二維動作轉換單元03接著執行步驟033(見圖一)。該步驟033係一二維尺度縮放與自由形變計算步驟。該步驟033係以平面投影方式觀察三維動作表演時的骨頭長度,當骨頭進行有深度變化的位移如:前或後的位置改變,對二維平面投影來說則猶如對骨 頭的尺度進行縮放一樣。本步驟即是根據三維動作表演時,自動將二維圖片進行尺度放大及縮小的計算(2D Scale Calculation),產生符合視覺的深度感覺。此外藉由自由形變(Free Form Deformation)的計算與運用,讓套用三維動作資料後的二維影像在表演時能更生動且具有動畫表演的誇張特性。
二維尺度計算係藉由圖一之步驟022及步驟023之計算結果,2D Scale表示為(Sx,Sy),分別為寬與高的Scale值,其中Sy可表現3D運動後骨頭(Bone)長度變化,Sx則可表現出深度的透視效果。Sx之計算乃是運用Joint Position的深度值計算(z),以世界中心點(World Center)為基準,越近越大,反之越小。計算時可加上Projection Strength的加乘,可獨立調整透視效過的強度算公式,如以下公式3所示:Sx=1+JPz * Projection Strength
Sy之計算乃是利用Bone Vector Project to X-Y Plane及Virtual Bone長度的比例計算公式如以下公式(4)所示:Sy=(Length of Bone Vector Project to X-Y Plane)/(Virtual Bone Length
若是圖片為末端的骨頭(如:手掌、腳掌)或上/下(Top/Bottom)的角度,則圖片維持寬高等比的縮放(Sy=Sx),以避免變形。此外由於Sx與Sy是分開獨立計算,因此本系統具有非等比尺度縮放(Non-uniform Scale)特性的系統。
形變計算係利用自由形變(Free Form Deformation)的概念,用以達到骨頭透視及骨頭厚度模擬之效果。
骨頭透視效果計算係於動作表演中依序處理角色各部位影像之形變,使得到具有視覺透視效果的形變。以圖十二左下臂(Left Lower Arm)向前伸展為例,圖十二(a)為左上臂121及左下臂122未動時。當左下臂往前伸展時,在二維平面上觀察時,骨頭長度會變短,因此系統會自動對左下臂二維尺度縮放(2D scale)計算,得到如圖十二(b)的效果,但由於左上臂(Left Arm)的深度透視Sx與左下臂(Left Lower Arm)的深度透視Sx不同,因此出現左上臂與 左下臂的影像在外觀上無法完全接合的狀況。在左上臂套用FFD之後,並將上部的控制點(Control Point)設定為(-0.5,-0.5)~(0.5,-0.5),左上臂FFD的下部Control Point設定為(-SRx,0.5)~(SRx,0.5),SRx計算如以公式(5)所示:SRx=0.5 * Sx_child/Sx_parent
處理完畢後即得圖十二(c)的結果,即合理的視覺透視效果。
於骨頭厚度模擬計算時,真實的3D Bone因為有厚度,因此在前後轉動時會因其厚度產生外形上的改變2D Motion系統中可運用調整FFD Control Point來達成因厚度產生的變形FFD若切分為3x3 Control Points,則可計算SRy套用至中心的2x2 Control Point,模擬因厚度產生的形變SRy=(Deform Strength)*(1-SRx),建議Deform Strength為0.1~0.5之間,如圖十三所示。
步驟034係深度關係轉換之計算。本步驟目的是為了讓二維動畫表演時,身體各部位的節點及骨頭都有正確的深度關係,即二維平面觀察中各部位皆有正確的前後遮蔽關係。二維動畫表演時若未能即時根據各關節點及骨頭的深度關係來安排它們的先後順序,則可能會導致錯誤的表演呈現。假設有一個雙臂張開動作表演一開始雙手的深度在身體之前,如圖十四(a)所示,若接下來正確的表演是雙臂將向後交叉,而在缺乏身體跟雙臂深度關係改變的機制情況下,會發生雙臂出現在身體前的錯誤,如圖十四(b)所示。
本發明利用虛擬攝影機視角(Virtual Camera View)中,虛擬攝影機的位置與各關節(Joint)的位置,對身體位部位關節點進行兩兩深度計算,並得到代表深度關係的向量(Vector),如圖十五中的V1a,V1b,V2a及V2b。其中V1a表示由虛擬攝影機看向比較基準點關節:脊椎節點的方向性,V1b為脊椎節點與同為身體骨頭的肩節點的方向性。而V2a表示比較基準點關節:脊椎節點到比較對象:手掌節點的方向性,V2b為手掌節點與同為手臂骨頭的肩節點的方向性。深度關係計算如以下之公式(6)表示,利用點矩陣向量乘 積(Dot Matrix)計算,兩兩比較節點順序。
D=(V1a x V1b).(V2a x V2b),其中x為Cross
若方向性(D)大於0(即深度向量關係V1與V2皆為順時針方向),則表示身體(V1)在手臂(V2)之前,如圖15所示。若D小於0(即深度向量關係V2為逆時針方向),則表示手臂(V2)在身體(V1)之前,如圖十六所示。若D等於0,則將由節點(Joint)的高度位置決定前後關係,較高者在前。
藉由此方式利行深度之計算,即能在動作的進行過程中,持續觀察並正確改變每個關節或骨頭的深度順序關係,得到雙手深度由身體前確轉換到身體後的正確表演。如圖十四(c)所示。
步驟41係動畫渲染之步驟。二維動畫(2D Cut-out Animation)與三維動畫(3D Animation)在決定物件繪製的前後關係方法有顯著的不同。三維動畫通常以物件或點所在的深度決定繪製物件的先後順序,即運用Z-Sort或Z-Buffer技術繪製。二維動畫由於沒有深度概念,通常以層級(Layer)的數值來決定物件之間的前後關係,二維動畫中角色物件的前後關係正確與否通常發生於關節接合處,如圖十七(a)中的圓圈處(即上手臂及下手臂的交集處),可透過人為的指定物件的層級(Layer)讓物件有正確性,如圖十七(b)。
但指定層級並不能處理所有的動畫表演情況,如圖十八(a)當使用者定義了身體的層級高於上手臂,上手臂層級高於下手臂。若此時有一個表演是下手臂往前伸的動作,系統可以透過步驟34得到下手臂深度小於身體的深度,而把下手臂置於身體之前。但此時會發生下手臂與上手臂的順序被改變,造成視覺上的錯誤,即物件層級關係與深度關係的衝突,如圖十八(b)。
為了能在二維的環境中渲染(Render)出因深度而產生遮蔽的效果,有兼具物件間層級的合理性,本系統設計以:1.深度列表(Depth List):利用步驟34公式,在動畫的每一個影格中(Frame)排列出各骨頭(Bone)之間的前後關係。2.相關連層級(Relative Layer):用以指定物件之間相對的前後關係。3.層級遮罩(Layer Mask):建立一個遮罩用以遮蔽Relative Layer指定的運作範圍。即可得到合 理的動畫結果。
更多完整二維角色表演三維動作技術之成果實例如圖十九、圖二十及圖二十一所示。圖十九乃二維角色表演三維正面走路動作之示意圖,圖二十乃二維角色表演三維側身走路動作之示意圖,圖二十一乃二維角色表演三維轉身動作之示意圖。
唯以上所述者,僅為本發明之範例實施態樣而已,當不能以之限定本發明所實施之範圍。即大凡依本發明申請專利範圍所作之均等變化與修飾,皆應仍屬於本發明專利涵蓋之範圍內,謹請貴審查委員明鑑,並祈惠准,是所至禱。
01‧‧‧三維動作載入單元
02‧‧‧虛擬攝影機轉換單元
03‧‧‧二維動作轉換單元
04‧‧‧顯示單元
011、021、022、023‧‧‧流程步驟
031、032、033、034、041‧‧‧流程步驟

Claims (16)

  1. 一種讓二維角色(2D Character)能表現三維動作之系統,該系統至少包括:一三維動作載入單元,用以將人體三維動作資料對應至一虛擬骨架,並將所有動作資料以矩陣方式記錄下來以得到一動作骨架世界矩陣(Motion Bone World Matrix;WM);一虛擬攝影機轉換單元,該單元首先架設虛擬攝影機用以觀察三維動作及其虛擬骨架以定義一個觀察三維動作的觀察視點(View Point),該觀察視點可以是三維世界(3D World)中的任何位置,該單元接著計算動作角度以推算出三維表演動作進行時人體各部位的旋轉及角度資訊,可得到以虛擬攝影機觀察點為視角進行推算的表演動作角度矩陣(Virtual Camera Transformation Matrix;VCM),該單元接著將三維座標轉換為二維座標及深度以取得三維動作及其虛擬體架在表演時各身體部位(節點)的座標與深度資訊;一二維動作轉換單元,該單元首先執行Sprite Angle計算以決定一個Sprite在呈現三維動作時可以哪一個角度的圖來顯示,得到Sprite Angle之後接下來就是決定角度刻度與Sprite圖片組的內所有圖片的對應關係,接著執行一二維旋轉計算步驟,接著執行一二維尺度縮放與自由形變計算步驟,接著執行一深度關係轉換之計算步驟;及一顯示單元用以處理及輸出呈現一結果。
  2. 如申請專利範圍第1項所述之系統,其中,該虛擬攝影機轉換單元計算動作角度乃在於推算出三維表演動作進行時人體各部位的旋轉及角度資訊,由於三維動作本身並不帶有人體各個部位在運動時的旋轉及角度資訊,因此藉由該虛擬攝影機之觀察結果,將虛擬攝影機對人體三維動作及其虛擬骨架的關係,用以看向三維世界中心點(Look at World Center)之相對方式,做為判斷人體三維動作角度的基準,即可得到以虛擬攝影機觀察點為視角進行推算的表演動作角度矩陣(Virtual Camera Transformation Matrix;VCM),其公式如下: 其中,Motion Angle以(Theta,Phi)表示,Theta為水平角度,Phi為垂直角度。
  3. 如申請專利範圍第1項所述之系統,其中,該虛擬攝影機轉換單元將三維座標轉換為二維座標及深度之主要目的為取得三維動作及其虛擬體架在表演時各身體部位(節點)的座標與深度資訊,藉由該三維動作載入單元所計算產出的動作骨架世界矩陣(Motion Bone World Matrix;WM)及所產出的虛擬攝影機轉換矩陣(Virtual Camera Transformation Matrix;VCM),即可求得人體各部位(節點,Joint Point;JP)的三維座標及深度,其公式如下:Joint Position(x,y,z)=[0,0,0]* WM* VCM。
  4. 如申請專利範圍第1項所述之系統,其中,該Sprite Angle的計算方式是利用由虛擬攝影機視角中觀察到的親節點(Parent Joint)到子節點(Chile Joint)的最短距離所形成的向量(Vector),即親節點的骨向量(Bone Vector)。Sprite Angle的ID分為水平角度及垂直角度。將Bone Vector投射至與虛擬攝影機射線(Virtual Camera Ray)平行的兩個平面(即Y-Z平面及X-Z平面),再與虛擬攝影機射線計算後即可分別得到此一Bone Vector的水平及垂直角度,得到Sprite Angle之後接下來就是決定角度刻度與Sprite圖片組的內所有圖片的對應關係,即何種角度要呈現何種指定圖片,計算時以角度刻度區間做為Sprite換圖依據的換圖方法,將虛擬骨架對應的各個Sprite置於一個虛擬立體環狀球形攝影機空間內,系統根據虛擬立體環狀範圍內,自動建立複數台虛擬攝影機,並在Sprite對應關係表中自動找出相對應的現在表演角度的Sprite圖片並顯示出來,其中,角度刻度區分可自由設定,使用者可根據需求自行定義角度刻度及對角色骨架進行設定。
  5. 如申請專利範圍第1項所述之系統,其中,該二維動作轉換單元執行二維旋轉計算步驟係計算三維動作表演時骨頭(Bone)的旋轉並產生二維的旋轉資訊,首先設定一個預定骨(Default Bone)的軸向,將Bone Vector投影至虛擬攝影機(Virtual Camera)的平面,再與Default Bone的軸向計算角度,此角度即為該Bone的二維旋轉量(2D Rotation),若有Bone Vector與Virtual Camera平行的狀況發生,亦即落入Top/Bottom區間時,則計算Bone的X軸投影至X-Y平面與X軸的向量夾角即為該Bone的旋轉量,若為末端的Bone,則使用長軸(Y軸)的角度差投影至X-Y平面,計算旋轉量,並要加上親節點(Parent)的旋轉量,即可得到正確的末端Bone的旋轉量。
  6. 如申請專利範圍第1項所述之系統,其中,該二維動作轉換單元執行二維尺度縮放與自由形變計算步驟係以平面投影方式觀察三維動作表演時的骨頭長度,當骨頭進行有深度變化的位移,對二維平面投影來說則猶如對骨頭的尺度進行縮放一樣,即是根據三維動作表演時,自動將二維圖片進行尺度放大及縮小的計算(2D Scale Calculation),產生符合視覺的深度感覺,並藉由自由形變(Free Form Deformation)的計算與運用,讓套用三維動作資料後的二維影像在表演時能更生動且具有動畫表演的誇張特性,二維尺度計算中2D Scale表示為(Sx,Sy),分別為寬與高的Scale值,其中Sy可表現3D運動後骨頭(Bone)長度變化,Sx則可表現出深度的透視效果,Sx之計算乃是運用Joint Position的深度值計算(z),以世界中心點(World Center)為基準,越近越大,反之越小,計算時可加上Projection Strength的加乘,可獨立調整透視效過的強度算公式,其公式如下:Sx=1+JPz * Projection Strength Sy之計算乃是利用Bone Vector Project to X-Y Plane及Virtual Bone長度的比例計算,公式如下所示:Sy=(Length of Bone Vector Project to X-Y Plane)/(Virtual Bone Length 若是圖片為末端的骨頭或上/下(Top/Bottom)的角度,則圖片維持寬高等比的縮放(Sy=Sx),以避免變形,形變計算係利用自由形變(Free Form Deformation)的概念,用以達到骨頭透視及骨頭厚度模擬之效果,骨頭透視效果計算係於動作表演中依序處理角色各部位影像之形變,使得到具有視覺透視效果的形變,SRx計算公式如下所示:SRx=0.5 * Sx_child/Sx_parent於骨頭厚度模擬計算時,真實的3D Bone因為有厚度,因此在前後轉動時會因其厚度產生外形上的改變2D Motion系統中可運用調整FFD Control Point來達成因厚度產生的變形FFD若切分為3x3 Control Points,則可計算SRy套用至中心的2x2 Control Point,模擬因厚度產生的形變,SRy之計算公式如下:SRy=(Deform Strength)*(1-SRx)
  7. 如申請專利範圍第1項所述之系統,其中,該二維動作轉換單元執行深度關係轉換之計算步驟,該步驟目的是為了讓二維動畫表演時,身體各部位的節點及骨頭都有正確的深度關係,即二維平面觀察中各部位皆有正確的前後遮蔽關係,該步驟利用虛擬攝影機視角(Virtual Camera View)中,虛擬攝影機的位置與各關節(Joint)的位置,對身體位部位關節點進行兩兩深度計算,並得到代表深度關係的向量(Vector),利用點矩陣向量乘積(Dot Matrix)計算,兩兩比較節點順序。
  8. 如申請專利範圍第1項所述之系統,其中,該顯示單元處理及輸出呈現結果之方法係一動畫渲染之步驟,三維動畫通常以物件或點所在的深度決定繪製物件的先後順序,即運用Z-Sort或Z-Buffer技術繪製,二維動畫由於沒有深度概念,通常以層級(Layer)的數值來決定物件之間的前後關係,二維動畫中角色物件的前後關係正確與否通常發生於關節接合處,但指定層級並不能處理所有的動畫表演情況,為使二維的環境中渲染(Render)出因深度而產生遮蔽的效果,有兼具物件間層級的合理性,本步驟以深度列表(Depth List)方式在動畫的每一個影格中(Frame)排列出各骨頭(Bone) 之間的前後關係,並使用相關連層級(Relative Layer)以指定物件之間相對的前後關係,最後使用層級遮罩(Layer Mask)建立一個遮罩用以遮蔽Relative Layer指定的運作範圍,即可得到合理的動畫結果。
  9. 一種讓二維角色(2D Character)能表現三維動作之方法,該方法至少包括以下之步驟:(a)、將人體三維動作資料對應至一虛擬骨架,並將所有動作資料以矩陣方式記錄下來以得到一動作骨架世界矩陣(Motion Bone World Matrix;WM);(b)、首先架設虛擬攝影機用以觀察三維動作及其虛擬骨架以定義一個觀察三維動作的觀察視點(View Point),該觀察視點可以是三維世界(3D World)中的任何位置,接著計算動作角度以推算出三維表演動作進行時人體各部位的旋轉及角度資訊,可得到以虛擬攝影機觀察點為視角進行推算的表演動作角度矩陣(Virtual Camera Transformation Matrix;VCM),接著將三維座標轉換為二維座標及深度以取得三維動作及其虛擬體架在表演時各身體部位(節點)的座標與深度資訊;(c)、首先執行Sprite Angle計算以決定一個Sprite在呈現三維動作時可以哪一個角度的圖來顯示,得到Sprite Angle之後接下來就是決定角度刻度與Sprite圖片組的內所有圖片的對應關係,接著執行一二維旋轉計算步驟,接著執行一二維尺度縮放與自由形變計算步驟,接著執行一深度關係轉換之計算步驟;及(d)、輸出及顯示一結果。
  10. 如申請專利範圍第9項所述之方法,其中,該計算動作角度之步驟乃在於推算出三維表演動作進行時人體各部位的旋轉及角度資訊,由於三維動作本身並不帶有人體各個部位在運動時的旋轉及角度資訊,因此藉由該虛擬攝影機之觀察結果,將虛擬攝影機對人體三維動作及其虛擬骨架的關係,用以看向三維世界中心點(Look at World Center)之相對方式,做為判斷人體三維動作角度的基準,即可得到以虛擬攝影機觀察點為視角進行推算的表 演動作角度矩陣(Virtual Camera Transformation Matrix;VCM),其公式如下: 其中,Motion Angle以(Theta,Phi)表示,Theta為水平角度,Phi為垂直角度。
  11. 如申請專利範圍第9項所述之方法,其中,將三維座標轉換為二維座標及深度之主要目的為取得三維動作及其虛擬體架在表演時各身體部位(節點)的座標與深度資訊,藉由該三維動作載入單元所計算產出的動作骨架世界矩陣(Motion Bone World Matrix;WM)及所產出的虛擬攝影機轉換矩陣(Virtual Camera Transformation Matrix;VCM),即可求得人體各部位(節點,Joint Point;JP)的三維座標及深度,其公式如下:Joint Position(x,y,z)=[0,0,0]* WM * VCM
  12. 如申請專利範圍第9項所述之方法,其中,該Sprite Angle的計算方式是利用由虛擬攝影機視角中觀察到的親節點(Parent Joint)到子節點(Chile Joint)的最短距離所形成的向量(Vector),即親節點的骨向量(Bone Vector),Sprite Angle的ID分為水平角度及垂直角度,將Bone Vector投射至與虛擬攝影機射線(Virtual Camera Ray)平行的兩個平面(即Y-Z平面及X-Z平面),再與虛擬攝影機射線計算後即可分別得到此一Bone Vector的水平及垂直角度,得到Sprite Angle之後接下來就是決定角度刻度與Sprite圖片組的內所有圖片的對應關係,即何種角度要呈現何種指定圖片,計算時以角度刻度區間做為Sprite換圖依據的換圖方法,將虛擬骨架對應的各個Sprite置於一個虛擬立體環狀球形攝影機空間內,系統根據虛擬立體環狀範圍內,自動建立複數台虛擬攝影機,並在Sprite對 應關係表中自動找出相對應的現在表演角度的Sprite圖片並顯示出來,其中,角度刻度區分可自由設定,使用者可根據需求自行定義角度刻度及對角色骨架進行設定。
  13. 如申請專利範圍第9項所述之方法,其中,該執行二維旋轉計算步驟係計算三維動作表演時骨頭(Bone)的旋轉並產生二維的旋轉資訊,首先設定一個預定骨(Default Bone)的軸向,將Bone Vector投影至虛擬攝影機(Virtual Camera)的平面,再與Default Bone的軸向計算角度,此角度即為該Bone的二維旋轉量(2D Rotation),若有Bone Vector與Virtual Camera平行的狀況發生,亦即落入Top/Bottom區間時,則計算Bone的X軸投影至X-Y平面與X軸的向量夾角即為該Bone的旋轉量,若為末端的Bone,則使用長軸(Y軸)的角度差投影至X-Y平面,計算旋轉量,並要加上親節點(Parent)的旋轉量,即可得到正確的末端Bone的旋轉量。
  14. 如申請專利範圍第9項所述之方法,其中,該執行二維尺度縮放與自由形變計算步驟係以平面投影方式觀察三維動作表演時的骨頭長度,當骨頭進行有深度變化的位移,對二維平面投影來說則猶如對骨頭的尺度進行縮放一樣,即是根據三維動作表演時,自動將二維圖片進行尺度放大及縮小的計算(2D Scale Calculation),產生符合視覺的深度感覺,並藉由自由形變(Free Form Deformation)的計算與運用,讓套用三維動作資料後的二維影像在表演時能更生動且具有動畫表演的誇張特性,二維尺度計算中2D Scale表示為(Sx,Sy),分別為寬與高的Scale值,其中Sy可表現3D運動後骨頭(Bone)長度變化,Sx則可表現出深度的透視效果,Sx之計算乃是運用Joint Position的深度值計算(z),以世界中心點(World Center)為基準,越近越大,反之越小,計算時可加上Projection Strength的加乘,可獨立調整透視效過的強度算公式,其公式如下:Sx=1+JPz * Projection Strength Sy之計算乃是利用Bone Vector Project to X-Y Plane及Virtual Bone長度的比例計算,公式如下所示: Sy=(Length of Bone Vector Project to X-Y Plane)/(Virtual Bone Length若是圖片為末端的骨頭或上/下(Top/Bottom)的角度,則圖片維持寬高等比的縮放(Sy=Sx),以避免變形,形變計算係利用自由形變(Free Form Deformation)的概念,用以達到骨頭透視及骨頭厚度模擬之效果,骨頭透視效果計算係於動作表演中依序處理角色各部位影像之形變,使得到具有視覺透視效果的形變,SRx計算公式如下所示:SRx=0.5 * Sx_child/Sx_parent於骨頭厚度模擬計算時,真實的3D Bone因為有厚度,因此在前後轉動時會因其厚度產生外形上的改變2D Motion系統中可運用調整FFD Control Point來達成因厚度產生的變形FFD若切分為3x3 Control Points,則可計算SRy套用至中心的2x2 Control Point,模擬因厚度產生的形變,SRy之計算公式如下:SRy=(Deform Strength)*(1-SRx)
  15. 如申請專利範圍第9項所述之方法,其中,該執行深度關係轉換之計算步驟,該步驟目的是為了讓二維動畫表演時,身體各部位的節點及骨頭都有正確的深度關係,即二維平面觀察中各部位皆有正確的前後遮蔽關係,該步驟利用虛擬攝影機視角(Virtual Camera View)中,虛擬攝影機的位置與各關節(Joint)的位置,對身體位部位關節點進行兩兩深度計算,並得到代表深度關係的向量(Vector),利用點矩陣向量乘積(Dot Matrix)計算,兩兩比較節點順序。
  16. 如申請專利範圍第9項所述之方法,其中,該輸出及顯示結果之方法係一動畫渲染之步驟,三維動畫通常以物件或點所在的深度決定繪製物件的先後順序,即運用Z-Sort或Z-Buffer技術繪製,二維動畫由於沒有深度概念,通常以層級(Layer)的數值來決定物件之間的前後關係,二維動畫中角色物件的前後關係正確與否通常發生於關節接合處,但指定層級並不能處理所有的動畫表演情況,為使二維的環境中渲染(Render)出因深度而產生遮 蔽的效果,有兼具物件間層級的合理性,本步驟以深度列表(Depth List)方式在動畫的每一個影格中(Frame)排列出各骨頭(Bone)之間的前後關係,並使用相關連層級(Relative Layer)以指定物件之間相對的前後關係,最後使用層級遮罩(Layer Mask)建立一個遮罩用以遮蔽Relative Layer指定的運作範圍,即可得到合理的動畫結果。
TW102122531A 2012-06-27 2013-06-25 Two - dimensional Roles Representation of Three - dimensional Action System and Method TWI521469B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201261665002P 2012-06-27 2012-06-27

Publications (2)

Publication Number Publication Date
TW201401224A true TW201401224A (zh) 2014-01-01
TWI521469B TWI521469B (zh) 2016-02-11

Family

ID=49777649

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102122531A TWI521469B (zh) 2012-06-27 2013-06-25 Two - dimensional Roles Representation of Three - dimensional Action System and Method

Country Status (3)

Country Link
US (1) US9123176B2 (zh)
CN (1) CN103514619A (zh)
TW (1) TWI521469B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107481305A (zh) * 2017-08-18 2017-12-15 苏州歌者网络科技有限公司 游戏动画制作方法
TWI823323B (zh) * 2021-04-04 2023-11-21 美商雷亞有限公司 多視像影像創造系統和創造方法

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8693731B2 (en) 2012-01-17 2014-04-08 Leap Motion, Inc. Enhanced contrast for object detection and characterization by optical imaging
US11493998B2 (en) 2012-01-17 2022-11-08 Ultrahaptics IP Two Limited Systems and methods for machine control
US10216355B2 (en) * 2012-06-17 2019-02-26 Atheer, Inc. Method for providing scale to align 3D objects in 2D environment
WO2015029620A1 (ja) * 2013-08-27 2015-03-05 オリンパス株式会社 撮像装置、撮像方法、及び撮像プログラム
US9667948B2 (en) 2013-10-28 2017-05-30 Ray Wang Method and system for providing three-dimensional (3D) display of two-dimensional (2D) information
US10127327B2 (en) * 2014-05-21 2018-11-13 Adobe Systems Incorporated Cloud-based image processing web service
CN104599305B (zh) * 2014-12-22 2017-07-14 浙江大学 一种二三维结合的动画生成方法
CN104658026B (zh) * 2015-02-15 2018-01-19 北京春天影视科技有限公司 一种基于极坐标系的三维动画融合变形方法
US9786032B2 (en) * 2015-07-28 2017-10-10 Google Inc. System for parametric generation of custom scalable animated characters on the web
EP3382648A4 (en) * 2016-02-16 2019-05-22 Rakuten, Inc. SYSTEM FOR GENERATING A THREE-DIMENSIONAL MODEL, METHOD FOR GENERATING A THREE-DIMENSIONAL MODEL AND PROGRAM
JP6062589B1 (ja) * 2016-04-28 2017-01-18 株式会社Live2D プログラム、情報処理装置、影響度導出方法、画像生成方法及び記録媒体
CN106710005B (zh) * 2016-12-20 2020-08-11 深圳中兴网信科技有限公司 模拟场景展现方法及模拟场景展现系统
CN107609946B (zh) * 2017-09-19 2020-11-06 北京优时尚科技有限责任公司 一种显示控制方法及计算设备
CN108021304A (zh) * 2017-12-05 2018-05-11 网易(杭州)网络有限公司 界面层级控制方法、装置、电子设备及存储介质
CN108921919A (zh) * 2018-06-08 2018-11-30 北京小小牛创意科技有限公司 动画展示、制作方法及装置
CN109481940A (zh) * 2018-09-21 2019-03-19 苏州蜗牛数字科技股份有限公司 一种运动对象跟随方法
US11321899B1 (en) * 2021-05-28 2022-05-03 Alexander Dutch 3D animation of 2D images
CN116309712B (zh) * 2023-03-15 2024-01-30 南通大学 一种基于深度相机的功能运动分析系统及方法
CN117475049B (zh) * 2023-12-26 2024-03-08 一站发展(北京)云计算科技有限公司 一种虚拟形象适配方法及系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2087523C (en) * 1990-07-17 1997-04-15 Mark Andrew Shackleton Method of processing an image
US6057859A (en) * 1997-03-31 2000-05-02 Katrix, Inc. Limb coordination system for interactive computer animation of articulated characters with blended motion data
IT1320002B1 (it) * 2000-03-31 2003-11-12 Cselt Centro Studi Lab Telecom Procedimento per l'animazione di un modello sintetizzato di voltoumano pilotata da un segnale audio.
JP4775989B2 (ja) * 2001-08-23 2011-09-21 株式会社バンダイナムコゲームス 画像生成システム、プログラム及び情報記憶媒体
TW200540732A (en) * 2004-06-04 2005-12-16 Bextech Inc System and method for automatically generating animation
KR100727034B1 (ko) * 2005-12-09 2007-06-12 한국전자통신연구원 3차원 공간상에서 2차원 인간형 캐릭터의 표현 및애니메이션 방법
WO2011045768A2 (en) * 2009-10-15 2011-04-21 Yeda Research And Development Co. Ltd. Animation of photo-images via fitting of combined models
US8766982B2 (en) * 2010-01-19 2014-07-01 Disney Enterprises, Inc. Vectorization of line drawings using global topology and storing in hybrid form
EP2383696A1 (en) * 2010-04-30 2011-11-02 LiberoVision AG Method for estimating a pose of an articulated object model
CN102231209B (zh) * 2011-04-19 2014-04-16 浙江大学 基于异构特征降维的二维角色卡通生成方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107481305A (zh) * 2017-08-18 2017-12-15 苏州歌者网络科技有限公司 游戏动画制作方法
CN107481305B (zh) * 2017-08-18 2021-02-09 苏州歌者网络科技有限公司 游戏动画制作方法
TWI823323B (zh) * 2021-04-04 2023-11-21 美商雷亞有限公司 多視像影像創造系統和創造方法

Also Published As

Publication number Publication date
US9123176B2 (en) 2015-09-01
TWI521469B (zh) 2016-02-11
CN103514619A (zh) 2014-01-15
US20140002449A1 (en) 2014-01-02

Similar Documents

Publication Publication Date Title
TWI521469B (zh) Two - dimensional Roles Representation of Three - dimensional Action System and Method
CN105354820B (zh) 调整虚拟现实图像的方法及装置
Hilliges et al. HoloDesk: direct 3d interactions with a situated see-through display
CN103744518B (zh) 立体交互方法及其显示装置和系统
JP4555722B2 (ja) 立体映像生成装置
US20110029903A1 (en) Interactive virtual reality image generating system
CN114766038A (zh) 共享空间中的个体视图
WO2007013833A1 (en) Method and system for visualising virtual three-dimensional objects
CN101006110A (zh) 水平透视交互式模拟器
WO2006108279A1 (en) Method and apparatus for virtual presence
CN104637080B (zh) 一种基于人机交互的三维绘图系统及方法
JP2010257081A (ja) 画像処理方法及び画像処理装置
CN108734772A (zh) 基于Kinect fusion的高精度深度图像获取方法
Caruso et al. Interactive augmented reality system for product design review
JP2004362218A (ja) 三次元物体操作方法
CN110288714A (zh) 一种虚拟仿真实验系统
Soares et al. Collaborative hybrid virtual environment
WO2020036114A1 (ja) 画像処理装置、画像処理方法、およびプログラム
JP6503098B1 (ja) 画像処理装置、画像処理プログラム及び画像処理方法
Arcao et al. Holographic projection of 3D realistic avatar that mimics human body motion
Turner et al. Head‐Tracked Stereo Viewing with Two‐Handed 3 D Interaction for Animated Character Construction
Ha et al. Automatic control of virtual mirrors for precise 3D manipulation in VR
Delacruz et al. Medical Manikin Augmented Reality Simulation (M2ARS)
JP2718771B2 (ja) 三次元物体再構成処理方式
Zhu et al. Integrated Co-Designing Using Building Information Modeling and Mixed Reality with Erased Backgrounds for Stock Renovation