激情六月丁香婷婷|亚洲色图AV二区|丝袜AV日韩AV|久草视频在线分类|伊人九九精品视频|国产精品一级电影|久草视频在线99|在线看的av网址|伊人99精品无码|午夜无码视频在线

高校合作1:010-59833514 ?咨詢電話:400-810-1418 服務(wù)與監(jiān)督電話:400-810-1418轉(zhuǎn)接2

角色動(dòng)畫(huà)的骨骼及IK

發(fā)布時(shí)間:2024-04-11 14:09:45 瀏覽量:115次

本文介紹有關(guān)游戲角色動(dòng)畫(huà)的骨骼及反向運(yùn)動(dòng)學(xué)的背景知識(shí)、基本概念和原理以及存在的挑戰(zhàn)。

推薦:將 NSDT場(chǎng)景編輯器 加入你的3D開(kāi)發(fā)工具鏈。

1、簡(jiǎn)介

你已經(jīng)建造了哥特式城堡——是時(shí)候讓你的英雄沖進(jìn)游戲并保衛(wèi)城垛了。 你的游戲引擎支持骨架、稱為反向運(yùn)動(dòng)學(xué) (IK) 的動(dòng)畫(huà)系統(tǒng)以及用于控制的復(fù)雜分層設(shè)置。 你渴望嘗試所有這些。 太棒了!

但是,如果你以前從未使用過(guò)骨架,甚至從未將 IK 應(yīng)用于關(guān)節(jié)模型,你就會(huì)感到有些驚訝。 有些你會(huì)喜歡,有些你可能不會(huì)……至少一開(kāi)始不會(huì)。

本文介紹了使用具有反向運(yùn)動(dòng)學(xué)和自上而下旋轉(zhuǎn)系統(tǒng)的骨骼來(lái)移動(dòng)動(dòng)畫(huà)角色(稱為正向運(yùn)動(dòng)學(xué))的一些基本和中間原則。 在此過(guò)程中,它可能會(huì)回答你的一些緊迫問(wèn)題。 當(dāng)你讀完后,希望你會(huì)感到精力充沛,可以跨越當(dāng)前的任何障礙。

2、正向運(yùn)動(dòng)學(xué)與反向運(yùn)動(dòng)學(xué)

不久前,游戲角色還很像貝類:它們基本上是一堆堅(jiān)硬的部分。 最好的動(dòng)畫(huà)師所希望的是一個(gè)可以處理基本層次結(jié)構(gòu)的平臺(tái),允許他們同時(shí)定位和設(shè)置所有這些片段的關(guān)鍵幀。 忘記現(xiàn)實(shí)地彎曲肘部或彎曲肌肉吧——這根本不會(huì)發(fā)生。 如果沒(méi)有當(dāng)今可用的處理能力來(lái)處理實(shí)時(shí)表面變形,游戲就會(huì)出現(xiàn)大量機(jī)器人和裝甲。

  • 先進(jìn)的處理器性能使計(jì)算機(jī)生成的骨骼具有反向運(yùn)動(dòng)學(xué)動(dòng)畫(huà)。

有一段時(shí)間,游戲開(kāi)發(fā)者默默忍受著。 然后 PC 變得更快、更智能,這使得游戲引擎也變得更快、更智能。 先進(jìn)的處理性能使動(dòng)畫(huà)師能夠使用計(jì)算機(jī)生成的骨架,不僅可以將分割的角色保持在一起,而且可以使這些角色的皮膚實(shí)際變形。 IK 成為首選的控制系統(tǒng)。

  • 深入層次結(jié)構(gòu)

要了解反向運(yùn)動(dòng)學(xué),了解基本層次結(jié)構(gòu)和正向運(yùn)動(dòng)學(xué)很重要。 除了直接的目標(biāo)到目標(biāo)變形之外,動(dòng)畫(huà)師幾乎總是使用一種或另一種層次結(jié)構(gòu)來(lái)為他們的角色制作動(dòng)畫(huà)。 層次結(jié)構(gòu)是父子兄弟關(guān)系。 將一個(gè)對(duì)象指定為另一個(gè)對(duì)象的父對(duì)象或子對(duì)象的過(guò)程通常稱為“父子關(guān)系”,有時(shí)也稱為“分組”。 在人腿的情況下,大腿的父項(xiàng)是臀部,小腿是大腿的子項(xiàng),腳是小腿的子項(xiàng)。 右大腿與左大腿具有同胞關(guān)系,兩者都是臀部的子代,見(jiàn)下圖:

正向運(yùn)動(dòng)學(xué)的基本下半身設(shè)置和層次結(jié)構(gòu)

另一種關(guān)于層次的思想流派使用“倒置樹(shù)”模型,其中父對(duì)象(臀部或骨盆)被稱為“根”。 雖然層次結(jié)構(gòu)的任何部分都沒(méi)有真正被稱為“主干”,但子對(duì)象和子對(duì)象的子對(duì)象成為“分支”。

  • 正向運(yùn)動(dòng)學(xué)的問(wèn)題

如果你想在基本層次結(jié)構(gòu)下移動(dòng)角色的手,你會(huì)首先旋轉(zhuǎn)上臂,然后是前臂,最后是手本身,直到整個(gè)肢體就位。 這種“自上而下”的旋轉(zhuǎn)系統(tǒng)稱為正向運(yùn)動(dòng)學(xué),非常適合基本動(dòng)畫(huà)。

使用正向運(yùn)動(dòng)學(xué)和基本層次結(jié)構(gòu)的動(dòng)畫(huà)看起來(lái)很簡(jiǎn)單——直到你的角色必須做一些事情,比如走路時(shí)腳不能滑過(guò)地板,或者在原地不動(dòng),同時(shí)轉(zhuǎn)動(dòng)她的身體向后看。 在這些情況下,你有兩種選擇,但兩者都不美觀:

  • 旋轉(zhuǎn)整個(gè)層級(jí)(讓腳無(wú)用地滑動(dòng))。
  • 僅旋轉(zhuǎn)層次結(jié)構(gòu)的頂部(臀部),將其他部分留在后面(觀看起來(lái)非常痛苦)。

這種情況下,正向運(yùn)動(dòng)學(xué)(和你的角色)就會(huì)分崩離析。 放置行走角色的腳幾乎是不可能的,因?yàn)閷?duì)于層次結(jié)構(gòu)底部的對(duì)象來(lái)說(shuō),最困難的事情就是在其上方的對(duì)象移動(dòng)時(shí)保持在一個(gè)位置。 穩(wěn)定的幻覺(jué)實(shí)際上需要不斷調(diào)整。

基本層次結(jié)構(gòu)和正向運(yùn)動(dòng)學(xué)的困難在于,當(dāng)你轉(zhuǎn)動(dòng)整個(gè)層次結(jié)構(gòu)時(shí),腳會(huì)滑動(dòng)。 腳踏實(shí)地,結(jié)果可能會(huì)很痛苦。

  • 使用逆向運(yùn)動(dòng)學(xué)的計(jì)算機(jī)生成骨架

幸運(yùn)的是,今天的游戲動(dòng)畫(huà)師能夠使用許多曾經(jīng)只用于故事片的相同動(dòng)畫(huà)技術(shù)。 在故事片世界中,不斷重新調(diào)整恐龍的腳趾以補(bǔ)償其上方腳踝、膝蓋、大腿和臀部的輕微運(yùn)動(dòng)會(huì)導(dǎo)致電影屏幕上的滑動(dòng)和滑動(dòng),其單位是英尺而不是像素。

很明顯,除了正向運(yùn)動(dòng)學(xué)之外,還需要其他東西來(lái)逼真地為角色制作動(dòng)畫(huà)。 另一個(gè)電影問(wèn)題——對(duì)角色移動(dòng)時(shí)關(guān)節(jié)起皺和凸起的可信描述——只能使用由連續(xù)網(wǎng)格制成的模型來(lái)解決。 但是你如何讓堅(jiān)固的東西彎曲并行走呢? 轉(zhuǎn)向早期的電影特效主要內(nèi)容,Stop Motion* 軟件開(kāi)發(fā)人員將骨架系統(tǒng)或骨架整合到他們的計(jì)算機(jī)生成 (CG) 模型中,并開(kāi)發(fā)了一個(gè)名為 Inverse Kinematics 的系統(tǒng)來(lái)控制骨架。

計(jì)算機(jī)生成的骨架

從概念上講,CG 骨架很容易理解。 它模仿我們自己的身體骨骼——一種剛性結(jié)構(gòu),每個(gè)關(guān)節(jié)都有肌腱將它們固定在一起。 它是倒置的樹(shù)狀層次結(jié)構(gòu),事實(shí)上,父級(jí)通常被稱為骨架的“根”。 根通常位于角色的自然重心; 這通常是兩足動(dòng)物脊柱的底部。

是什么讓這個(gè)系統(tǒng)比基本(非骨骼)層次結(jié)構(gòu)更好,是肌腱,在計(jì)算機(jī) 3D 程序中隱含但看不見(jiàn)。 正如在從非骨骼對(duì)象構(gòu)建的層次結(jié)構(gòu)中一樣,可以通過(guò)正向運(yùn)動(dòng)學(xué)自上而下地操縱骨骼。 但也許骨架的最大好處是它能夠?qū)⒖刂茝膶哟谓Y(jié)構(gòu)的頂部轉(zhuǎn)移到底部。 由于它是自下而上(正向運(yùn)動(dòng)學(xué)的逆向)工作或“求解”的,因此該過(guò)程稱為“逆向運(yùn)動(dòng)學(xué)”或 IK。 與處理自上而下的旋轉(zhuǎn)相比,這是一個(gè)更直觀、更省時(shí)的過(guò)程。

注意:一些動(dòng)畫(huà)包允許將反向運(yùn)動(dòng)學(xué)應(yīng)用于“非骨骼”對(duì)象,例如立方體、球體和空對(duì)象,盡管創(chuàng)建和操作以這種方式構(gòu)建的 IK 鏈通常要復(fù)雜得多。

帶有 IK 手柄的簡(jiǎn)單骨骼設(shè)置

上圖中,骨骼通常在根端附近描繪得更寬,而朝向效應(yīng)器描繪得更窄。 由“肘”彎曲、肩頂和手腕形成的綠色三角形表示肘部的旋轉(zhuǎn)平面。 調(diào)整該平面以允許肘部向外擺動(dòng)。

骨骼鏈最底部的鏈接通常稱為目標(biāo)或末端執(zhí)行器(請(qǐng)注意,這些名稱在不同的程序中可能有不同的含義)。在分段模型的情況下,你的角色的“肉體”,實(shí)際的四肢、軀干、頭部等,然后是父母 到骨骼的最近骨骼(或關(guān)節(jié))。 對(duì)于單網(wǎng)格多邊形或無(wú)縫 NURBS 模型,你可以在底層骨架上“蒙皮”或“包裹”模型。

注意:一個(gè)角色的四肢、頭部、皮膚或衣服通常被稱為它的“幾何體”。 可以渲染幾何體,而骨架通常對(duì)渲染器不可見(jiàn)。

使用骨架,不是為幾何體設(shè)置動(dòng)畫(huà),而是為骨架本身設(shè)置動(dòng)畫(huà),然后幾何體也隨之設(shè)置動(dòng)畫(huà)。 由于骨骼之間有不可見(jiàn)的肌腱,因此僅旋轉(zhuǎn)部分層次結(jié)構(gòu)時(shí)關(guān)節(jié)不會(huì)分離。 此外,可以將 IK 應(yīng)用于骨骼鏈。

  • 反向運(yùn)動(dòng)學(xué)的優(yōu)點(diǎn)

那么這一切對(duì)動(dòng)畫(huà)師來(lái)說(shuō)意味著什么呢? 這意味著你可以猛拉鏈條的底部(例如手),然后手上方的所有骨骼都會(huì)自動(dòng)旋轉(zhuǎn)到位。 當(dāng)角色必須伸手去拿某物時(shí),例如從樹(shù)上摘蘋(píng)果時(shí),這是一個(gè)真正的優(yōu)勢(shì)。 動(dòng)畫(huà)師不是在心里計(jì)算肩膀、上臂、肘部和手腕要旋轉(zhuǎn)多遠(yuǎn)才能使那只手就位,而是簡(jiǎn)單地將手放在蘋(píng)果上,然后手臂的其余部分隨之移動(dòng)。

使用底層骨架的另一個(gè)好處是骨骼和關(guān)節(jié)提供了一個(gè)自然的控制結(jié)構(gòu)來(lái)使表面變形。 通過(guò)變形,幾何體上的各個(gè)控制點(diǎn)相對(duì)于骨骼和關(guān)節(jié)移動(dòng)。 與一次移動(dòng)整個(gè)幾何體相比,這是一個(gè)顯著的改進(jìn)。

3、骨骼基礎(chǔ)

首先讓我們看看軟件包,然后看看我們自己的骨骼和關(guān)節(jié),然后我們?cè)倏纯此鼈兪侨绾伪豢刂频摹?/span>

  • 軟件包

在每個(gè)應(yīng)用程序中,骨架的表示和控制方式都不相同。 一些軟件包,例如 IZWare Mirai*、Alias Wavefront Maya* 和 PowerAnimator*,允許你創(chuàng)建完整的、完全連接的帶有分支肢體的骨骼。 在本文發(fā)表時(shí),Softimage 3D* 和 XSI* 還沒(méi)有,但它們?yōu)槟闾峁┝送ㄟ^(guò)父子關(guān)系和稱為“約束”的獨(dú)立控制系統(tǒng)將手臂鏈、腿鏈和頸鏈粘合在一起的方法。

當(dāng)幾何體被“蒙皮”或“包裹”時(shí),表面控制點(diǎn)由離它們最近的骨骼控制

上圖中, 當(dāng)骨骼共享對(duì)表面的控制時(shí),非常平滑的褶皺和彎曲是可能的。 但即使表面變形不是你想要的結(jié)果,骨架也非常適合將分段模型固定在一起,它們的關(guān)節(jié)為所有這些部分提供了自然的樞軸點(diǎn)。

有些軟件包雖然提供反向運(yùn)動(dòng)學(xué)系統(tǒng),但根本不提供骨骼。 相反,你可以使用原始對(duì)象構(gòu)建自己的骨架,或?qū)⒐羌軐傩苑峙浣o每個(gè)角色的各個(gè)部分。 其他軟件,如 Softimage 3D、Hash Animation: Master* 和 Discreet 3d Studio Max*,提供同時(shí)執(zhí)行這兩種操作的選項(xiàng),允許你合并其他對(duì)象,例如空值(通常是沒(méi)有可渲染幾何體的中心或樞軸)或虛擬對(duì)象 , 進(jìn)入他們正常的骨骼層次結(jié)構(gòu)。

為了簡(jiǎn)潔起見(jiàn),我們?cè)谶@里將所有這些對(duì)象稱為“空值”。 這些空值可以縮放、旋轉(zhuǎn)或平移,同時(shí)移動(dòng)角色網(wǎng)格的控制點(diǎn)。 這種技術(shù)通常用于 Softimage 3D 中,用于肌肉隆起和胸部擴(kuò)張等。

簡(jiǎn)單的 Softimage 3D* 肌肉凸起設(shè)置

上圖中,肌肉凸起設(shè)置使用直接作為骨骼層次結(jié)構(gòu)父級(jí)的“空”對(duì)象(紫色對(duì)象和框)。 零值的平移、旋轉(zhuǎn)和縮放會(huì)影響肌肉的位置和凸起,并且很容易通過(guò)表達(dá)式與肘部旋轉(zhuǎn)聯(lián)系起來(lái)。 左側(cè)示意圖中的黑框?qū)⑹直蹘缀误w顯示為該系列的父級(jí)。 藍(lán)色框是根關(guān)節(jié)、肘關(guān)節(jié)和腕關(guān)節(jié),它們?cè)谒鼈冎g旋轉(zhuǎn)“骨骼”。 請(qǐng)注意,在 Softimage 3D 中,關(guān)節(jié)是可選對(duì)象,而骨骼不是。 在 Softimage XSI* 中,兩者都是可選的。

各個(gè)骨骼是用它們自己的一組局部軸構(gòu)建的,通常(但不總是)X、Y 和 Z。與幾何體一樣,這些軸的位置和方向決定了骨骼的樞軸點(diǎn)及其旋轉(zhuǎn)方向。 一般來(lái)說(shuō),骨骼可以被認(rèn)為是焊接在一起的兩塊——骨骼本身和允許骨骼旋轉(zhuǎn)的關(guān)節(jié)。 然而,重要的是要注意,并不是所有的包都會(huì)做出這種區(qū)分。 例如,Softimage XSI 和 3D 將整個(gè)骨段稱為關(guān)節(jié)。 在 Maya 和 IZWare Mirai 中,關(guān)節(jié)是一個(gè)附加的但可單獨(dú)選擇的對(duì)象。 這允許將變形對(duì)象(例如“屈肌”)放置在關(guān)節(jié)本身或沿著骨骼的長(zhǎng)度放置。 屈肌可以促進(jìn)逼真的折痕,例如肘部?jī)?nèi)側(cè)(關(guān)節(jié)定位的良好候選者)和肌肉凸出(屈肌沿骨骼定位)。

在某些情況下,軸是固定的——不允許用戶更改骨骼中心的方向。 在 Softimage 3D 中,X 軸始終朝向骨骼的長(zhǎng)度。 其他軟件包,如 Maya,允許您選擇中心的方向。 這些包甚至可以讓您自由旋轉(zhuǎn)該中心,而不管骨骼的方向如何,盡管隨意這樣做可能會(huì)導(dǎo)致不可預(yù)知的結(jié)果。

為什么樞軸的朝向很重要? 專業(yè)動(dòng)畫(huà)不僅要正確地做事,還要快速地做事。 如果你所有的骨頭都以相同的方式定向(我們將使用正 X 沿每根骨頭的長(zhǎng)度延伸),這意味著你所有的手指、膝蓋、肘部和椎骨都圍繞同一軸向前或向后彎曲。 對(duì)于大多數(shù)設(shè)置,該軸是 Z。這使得創(chuàng)建表達(dá)式變得輕而易舉。你不必猜測(cè)或反復(fù)試驗(yàn)就可以知道您的角色將朝哪個(gè)方向移動(dòng)。

4、使用骨骼的表面變形示例

將你的手伸出到面前,手掌朝上。 注意你的前臂。 現(xiàn)在,不要移動(dòng)你的肩膀,旋轉(zhuǎn)你的手直到你的拇指指向天花板。 如果你的前臂作為一個(gè)整體旋轉(zhuǎn),你在手腕和肘部之間看到的那種不太微妙的扭曲是不可能的(或者至少非常痛苦)。 請(qǐng)注意,靠近手的肌肉會(huì)隨著你的腕關(guān)節(jié)一起旋轉(zhuǎn),但這種效果會(huì)向你的肘部減弱。 通過(guò)表面變形,疊加幾何體上的每個(gè)控制點(diǎn)都由最近的關(guān)節(jié)或骨骼控制。

這意味著角色不再需要是松散的一堆堅(jiān)硬的片段。 手肘可以自然彎曲; 二頭肌甚至可以膨脹和變平。

  • 骨骼控制

好吧,我們又回到了起點(diǎn):你已經(jīng)購(gòu)買(mǎi)了具有完整骨骼和 IK 系統(tǒng)的應(yīng)用程序。 你的問(wèn)題結(jié)束了,對(duì)吧? 好吧,不完全是。 壞消息是 IK 系統(tǒng)并不總是比 Forward Kinematics 更直觀。 對(duì)于諸如在步行周期中摘蘋(píng)果或?qū)⒛_踩在地板上之類的事情,IK 是直觀且易于使用的,前提是你已正確設(shè)置它。 該“設(shè)置”是可以嘗試使用骨骼和 IK 的地方。 設(shè)置需要一些時(shí)間來(lái)理解。

  • 從哪里開(kāi)始

看看你自己的關(guān)節(jié)。 在你深入了解之前,請(qǐng)考慮你的身體是如何工作的,然后記住計(jì)算機(jī)生成 (CG) 的骨骼并不完全是人體骨骼——它是人體骨骼的代表。 盡管動(dòng)畫(huà)工具越來(lái)越接近于反映現(xiàn)實(shí)的能力,但作為動(dòng)畫(huà)師,讓你的動(dòng)畫(huà)可信仍然取決于你。

想一想你的關(guān)節(jié)工作的各種方式。 你的肘部和膝蓋與你的肩膀和臀部的關(guān)節(jié)運(yùn)動(dòng)方式不同,它們的工作方式彼此略有不同,而且都與你的背部和頸部的椎骨不同。 通常,動(dòng)畫(huà)包會(huì)為你提供一種或兩種類型的骨骼供你使用。 它們還提供了一些用于控制骨骼的不同選項(xiàng)。 雖然我們?nèi)祟愑袛?shù)百塊骨頭支撐我們的腳、腿、手和器官,但在構(gòu)建 CG 骨骼時(shí)很少需要匹配我們的內(nèi)部骨骼骨骼。 從動(dòng)畫(huà)的角度來(lái)看,這種方法通常會(huì)適得其反:讓太多的骨頭爭(zhēng)奪表面的控制權(quán)就像廚房里有太多的廚師一樣。 妥協(xié)。 使用盡可能少的骨骼。 同樣,這意味著可信,而不是真實(shí)的。

  • 關(guān)節(jié)類型和控制

為了讓人信服,你需要兩種關(guān)節(jié):一種是可以在關(guān)節(jié)窩中一直擺動(dòng)的關(guān)節(jié)(這真的比你的任何一個(gè)都多,而且不會(huì)感到劇痛),另一種是只能在一個(gè)方向彎曲的關(guān)節(jié),比如你的肘部。 Softimage 3D 通過(guò)賦予每個(gè)骨骼鏈的第一個(gè)(根)關(guān)節(jié)在所有軸上自由旋轉(zhuǎn)的能力來(lái)解決這個(gè)問(wèn)題,或多或少模仿球窩關(guān)節(jié)。 之后,你可以選擇構(gòu)建一個(gè)“3D”骨架,它像對(duì)待第一個(gè)關(guān)節(jié)一樣對(duì)待每個(gè)關(guān)節(jié),或者構(gòu)建一個(gè)“2D”骨架,在球狀根之后,只沿著一個(gè)平面向一個(gè)方向彎曲,更多 就像你的手肘。 “3D”骨架對(duì)于長(zhǎng)頸生物或海藻和鏈條之類的東西很有用。 “2D”骨架以球窩關(guān)節(jié)開(kāi)始,以肘關(guān)節(jié)結(jié)束,非常適合手臂和腿部。 當(dāng)你一次使用不超過(guò)兩個(gè)鏈接時(shí)也是最好的。

5、應(yīng)對(duì)挑戰(zhàn)

如果你必須同時(shí)使用兩個(gè)以上的鏈接怎么辦? 讓我們談?wù)勔恍┏R?jiàn)的挑戰(zhàn),例如為腳等事物添加第三個(gè)鏈接,或使用 IK 為角色制作采摘蘋(píng)果的動(dòng)畫(huà)。

5.1 第三個(gè)鏈接困境:加上腳怎么辦?

在由 IK 控制的鏈中,兩個(gè)鏈接相當(dāng)簡(jiǎn)單,但腳代表第三個(gè)鏈接。 你如何處理增加的腳? 在 Softimage 3D 中,腳踝實(shí)際上是兩個(gè)東西:腿鏈的末端和腳鏈的起點(diǎn)。 要將這兩者放在一起,你需要將腳鏈設(shè)置為腿鏈末端執(zhí)行器下方的父級(jí)或使用“約束”。 我們稍后會(huì)討論約束。 下面說(shuō)說(shuō)為什么一個(gè)chain在兩個(gè)link之后很難用IK控制。

嚴(yán)格來(lái)說(shuō),IK 控制的鏈?zhǔn)怯涉湹淖畹撞康逆溄踊蜿P(guān)節(jié)控制的。 底部關(guān)節(jié)或末端執(zhí)行器的任何移動(dòng)都會(huì)將每根骨骼旋轉(zhuǎn)一定程度,一直到層次結(jié)構(gòu)的頂部。

考慮一條有兩條腿骨(大腿和小腿)的鏈條,其中腳踝是底部關(guān)節(jié)和末端執(zhí)行器。 將腳踝直接向上推會(huì)導(dǎo)致膝蓋彎曲和大腿在臀部處旋轉(zhuǎn),這是一個(gè)相當(dāng)簡(jiǎn)單的動(dòng)作。 讓我們添加另一個(gè)鏈接:腳的骨骼。 同樣的推動(dòng),這次是用腳掌上的末端執(zhí)行器,現(xiàn)在導(dǎo)致腳踝彎曲、膝蓋彎曲和大腿在臀部的旋轉(zhuǎn)。 但是每個(gè)關(guān)節(jié)彎曲的順序和每個(gè)旋轉(zhuǎn)的量都會(huì)有很大的不同,只需稍作調(diào)整,使得這種設(shè)置難以控制。

上圖中,盡管存在更多骨骼時(shí)變形會(huì)更平滑,但最好將這些骨骼的實(shí)際 IK 控制分解為不超過(guò)兩個(gè)鏈接的鏈。 在 Softimage 3D* 中,最左邊的設(shè)置(紫色箭頭)有一個(gè)單鏈節(jié)腳鏈,它是雙鏈節(jié)腿鏈的父級(jí)。 此設(shè)置為你提供了腳踝上的末端執(zhí)行器和腳趾上的另一個(gè)末端執(zhí)行器。 這比在三節(jié)鏈上只使用一個(gè)末端執(zhí)行器更可取。 通常在 IK 中,使用更多的骨骼意味著更少的控制。

兩塊骨頭的直觀、易于控制的運(yùn)動(dòng)在三塊或更多骨頭上完全亂七八糟。 這就是你會(huì)在典型的 Softimage 3D 骨骼設(shè)置中看到許多鏈作為父級(jí)或約束在一起的原因之一。 您可以在此處查看軟件中的 IK 解決方案。 盡管需要?jiǎng)?chuàng)造性地使用約束和父子關(guān)系,Softimage 3D 還是為 3D 人物動(dòng)畫(huà)提供了可靠的 IK 解決方案。

其他包提供不同的解決方案。 Maya 和 Mirai 提供了創(chuàng)建從骨盆到腳趾的完整骨骼的能力。 Maya 通過(guò)使用放置在鏈本身上的單獨(dú)“求解器”來(lái)處理長(zhǎng)鏈的不可預(yù)測(cè)性。 動(dòng)畫(huà)師通過(guò)將它們放置在需要的地方來(lái)聲明解算器影響的開(kāi)始和結(jié)束。 為了輕松控制手臂,求解器可以從肩膀伸展到手腕。 另一個(gè)解算器可能被放置在從手腕到中指根部的位置。 手和手臂的動(dòng)畫(huà)涉及分別操縱每個(gè)解算器。

Maya 還提供了一個(gè)特殊的“樣條”解算器,用于制作長(zhǎng)頸生物的動(dòng)畫(huà)。 使用此解算器,可以繪制一條穿過(guò)頸部椎骨的曲線(樣條曲線)。 當(dāng)曲線被操縱時(shí),椎骨會(huì)旋轉(zhuǎn)以呈現(xiàn)曲線的形狀——這對(duì)海洋生物來(lái)說(shuō)是一個(gè)了不起的解決方案!

IZWare(前身為 Nichimen)動(dòng)畫(huà)軟件自 Walt Disney 的 Tron* 以來(lái)一直在幕后工作,并以其多邊形建模包而聞名。 IZWare Mirai 是“現(xiàn)成”動(dòng)畫(huà)包領(lǐng)域的新成員,可幫助新手角色動(dòng)畫(huà)師立即開(kāi)始制作動(dòng)畫(huà)。 這是因?yàn)?IZWare Technologies 預(yù)先做了很多工作。 Mirai 不僅可以像在 Maya 中那樣創(chuàng)建完整的分支骨骼,它還提供了現(xiàn)成的骨骼,非常適合許多角色情況(包括人類、狗甚至蜱蟲(chóng))。

一個(gè)男孩,他的狗,還有一只巨大的蜱蟲(chóng)!

5.2 求解自動(dòng)鏡像和反向旋轉(zhuǎn)問(wèn)題

IZWare 還通過(guò)添加大量表情和角色控制來(lái)自動(dòng)鏡像(甚至反對(duì))肢體動(dòng)作,解決了技術(shù)總監(jiān)的一些頭疼問(wèn)題。 這些動(dòng)作的示例包括步行或跑步循環(huán)中相反的手臂和腿部擺動(dòng)(一只肢體向前,一只向后)以及指揮者舉起手臂。 你只需為一只手臂或一條腿設(shè)置動(dòng)畫(huà),然后選擇是否要自動(dòng)為相反的肢體設(shè)置動(dòng)畫(huà)。 這也糾正了當(dāng)骨架被分成兩半然后在其他程序中進(jìn)行鏡像復(fù)制時(shí)出現(xiàn)的負(fù)旋轉(zhuǎn)問(wèn)題。 例如,由于每個(gè)鏡像復(fù)制的關(guān)節(jié)的中心也被“鏡像”,關(guān)節(jié)自然地以相反的方向旋轉(zhuǎn)。

5.3 處理 IK 約束

好吧,你構(gòu)建了你的骨架,你正在使用 IK 來(lái)控制他的腳并讓它們保持在地板上。 你還在他的手上使用了 IK。 他向前邁出一步,注意他的手臂發(fā)生了什么變化。

上圖中,IK 中末端執(zhí)行器的位置在世界空間中設(shè)置關(guān)鍵幀,而不是參考父級(jí)的位置(如在簡(jiǎn)單的層次結(jié)構(gòu)中)。 這實(shí)際上是使用 IK 放置一只腳如此容易的原因 - 但它不適用于手腕位置,這需要與骨架相關(guān)聯(lián)。 簡(jiǎn)單的解決方法是將手腕末端執(zhí)行器約束為空對(duì)象或定位器(右圖中的十字準(zhǔn)線),然后將這些定位器作為父級(jí)返回到層次結(jié)構(gòu)中。

這就是約束的來(lái)源。事實(shí)證明,直接對(duì)末端執(zhí)行器設(shè)置關(guān)鍵幀幾乎不是一個(gè)好主意。 這樣做實(shí)際上會(huì)導(dǎo)致您在 IK 中發(fā)現(xiàn)的大部分問(wèn)題,并且會(huì)阻止您的角色完成您在故事板上精心繪制的許多漂亮動(dòng)作。

最好將約束描述為可以隨意關(guān)閉和打開(kāi)的強(qiáng)大磁力。 它們?cè)试S一個(gè)對(duì)象(甚至是空對(duì)象)影響其他對(duì)象。 不同的約束可以做不同的事情。 約束幾乎總是作用于對(duì)象的中心或樞軸,這使得對(duì)象的中心或樞軸點(diǎn)的放置極其重要。 雖然有些包比其他包有更多類型的約束,但三個(gè)基本約束是主要的:目標(biāo)或方向、方向、點(diǎn)或位置。

  • 目標(biāo)或方向

目標(biāo)或方向約束會(huì)導(dǎo)致“受影響的”對(duì)象不斷地將軸(某些包讓您選擇)瞄準(zhǔn)“目標(biāo)”對(duì)象的中心或樞軸。 想一想溫布爾登網(wǎng)球公開(kāi)賽的人群:當(dāng)網(wǎng)球在網(wǎng)上來(lái)回跳躍時(shí),面孔總是跟著網(wǎng)球。

  • 方向

方向約束有點(diǎn)像花樣游泳運(yùn)動(dòng)員。 當(dāng)一名游泳者轉(zhuǎn)身時(shí),另一名游泳者也轉(zhuǎn)身。 受影響對(duì)象的中心方向與目標(biāo)對(duì)象的中心方向相匹配。

  • 點(diǎn)或位置

點(diǎn)或位置約束是最常用于 IK 的約束。 此約束根據(jù)每個(gè)對(duì)象的中心位置將一個(gè)對(duì)象直接固定在另一個(gè)對(duì)象之上。 當(dāng)一個(gè)物體移動(dòng)時(shí),另一個(gè)物體被迫移動(dòng)。

用作約束目標(biāo)的對(duì)象可以作為其他對(duì)象的父對(duì)象,這意味著它們服從基本層次結(jié)構(gòu)的規(guī)則。 在層次結(jié)構(gòu)中,它們的位置和移動(dòng)是相對(duì)于父級(jí)的。

5.4 摘蘋(píng)果問(wèn)題

約束是我的骨架的手在前面圖中被固定的原因。這是因?yàn)楣羌軐哟谓Y(jié)構(gòu)與基本對(duì)象或幾何層次結(jié)構(gòu)之間的主要差異之一。 這也是為什么成功的 IK 動(dòng)畫(huà)通常涉及這兩種類型。 作為層次結(jié)構(gòu)中多個(gè)對(duì)象的示例,考慮飛機(jī)以主飛機(jī)作為父飛機(jī)編隊(duì)飛行的情況。 如果我們決定讓其中一架飛機(jī)漂移得高于或低于該組,我們可以為該運(yùn)動(dòng)設(shè)定關(guān)鍵幀,它會(huì)在圍繞它們機(jī)動(dòng)時(shí)繼續(xù)與該組一起飛行。 那是因?yàn)樗囊苿?dòng)是相對(duì)于它的父對(duì)象——主平面的移動(dòng)。

在基本層次結(jié)構(gòu)中,子級(jí)的位置是相對(duì)于該子級(jí)父級(jí)的位置的。 這就是為什么當(dāng)一個(gè)角色完全由層次結(jié)構(gòu)(沒(méi)有骨骼)結(jié)合在一起時(shí),腳會(huì)滑動(dòng)的原因。旋轉(zhuǎn)他或她的臀部。

在反向運(yùn)動(dòng)學(xué)鏈上并非如此。 末端效應(yīng)器(IK 層次結(jié)構(gòu)中最底層的子項(xiàng))的位置是相對(duì)于世界空間的。 這就是使用 IK 設(shè)置動(dòng)畫(huà)的腳保持不動(dòng)的原因。 不幸的是,這也是為什么使用 IK 設(shè)置動(dòng)畫(huà)的手會(huì)自然地嘗試伸出到空間中它們被設(shè)置為關(guān)鍵幀的點(diǎn)。

IK 是腳放置的自然選擇。 但是那個(gè)摘蘋(píng)果的角色呢? 使用 IK 不是更容易完成該操作嗎? 是的。 最好在基本層次結(jié)構(gòu)和約束的幫助下完成。

我們想要使用 IK,因?yàn)閷⑹址旁谔O(píng)果上比旋轉(zhuǎn)肩膀、上臂、下臂等要容易得多。但我們也希望我們的角色在沒(méi)有他的情況下走到蘋(píng)果樹(shù) 雙手在他身后的空間中向后拖。 我們?cè)撛趺醋瞿兀?/span>

5.5 蘋(píng)果采摘解決方案

我們使用 IK 點(diǎn)約束和基本層次結(jié)構(gòu):

  • 拿兩個(gè)對(duì)象——正方形和圓形很好,因?yàn)樗鼈冎皇菢訔l曲線,不會(huì)渲染,所以你以后不必記得隱藏它們。 我們將使用圓圈。
  • 將一個(gè)圓圈放在一只手腕上(手臂鏈的末端執(zhí)行器),將另一個(gè)圓圈放在另一只手腕上。 如果您真的喜歡它,請(qǐng)使用點(diǎn)約束將圓圈直接放在手腕上,然后關(guān)閉這些約束。
  • 使這些圓圈成為角色軀干的子對(duì)象(將它們分組或作為軀干的父級(jí))。 這意味著它們將隨軀干的移動(dòng)而移動(dòng),并且它們所做的任何移動(dòng)都將相對(duì)于軀干。 現(xiàn)在將手腕末端執(zhí)行器約束到它們各自的圓圈中。 這個(gè)想法是為約束對(duì)象設(shè)置關(guān)鍵幀,而不是末端執(zhí)行器。
  • 最終結(jié)果是兩全其美:當(dāng)你的角色行走時(shí),手與軀干一起移動(dòng),當(dāng)你將約束圓放置到蘋(píng)果上時(shí),手也隨之伸出,從而獲得 IK 的動(dòng)畫(huà)優(yōu)勢(shì)。

使用約束對(duì)象的層次結(jié)構(gòu)為 IK 驅(qū)動(dòng)的骨骼提供動(dòng)力可以解決大約 95% 的角色動(dòng)畫(huà)問(wèn)題。 從兩個(gè)角色接球到一個(gè)騎手從馬上掉下來(lái)或跳上馬,一切都可以通過(guò)某種形式的動(dòng)畫(huà)約束層次結(jié)構(gòu)和 IK 來(lái)完成。 通過(guò)添加一些表達(dá)式形式的數(shù)學(xué)來(lái)控制腳部旋轉(zhuǎn)等復(fù)雜行為,你將擁有處理任何事情所需的工具。

6、結(jié)束語(yǔ)

所以把機(jī)器人斷電,掛上盔甲——單網(wǎng)格人物和表面變形是現(xiàn)在的辦法。 我們已經(jīng)介紹了層次結(jié)構(gòu)、反向運(yùn)動(dòng)學(xué)與正向運(yùn)動(dòng)學(xué),以及許多提供它們的主要?jiǎng)赢?huà)軟件包。 我們還使用 IK 和約束解決了一些相當(dāng)常見(jiàn)(和討厭的)動(dòng)畫(huà)問(wèn)題。

現(xiàn)在由你自己進(jìn)行實(shí)驗(yàn)。 首先確保您的引擎支持 IK 和約束層次結(jié)構(gòu),然后再使用它。 請(qǐng)記住,即使你的 3D 軟件包未在本文中提及,大多數(shù)都具有 IK 系統(tǒng)、層次結(jié)構(gòu)以及某種約束或鏈接,并且價(jià)格并不總是一個(gè)因素。 探索你所擁有的,去玩吧!


原文鏈接:
http://www.bimant.com/blog/skeleton-and-inverse-kinematics/

熱門(mén)課程推薦

熱門(mén)資訊

請(qǐng)綁定手機(jī)號(hào)

x

同學(xué)您好!

您已成功報(bào)名0元試學(xué)活動(dòng),老師會(huì)在第一時(shí)間與您取得聯(lián)系,請(qǐng)保持電話暢通!
確定