国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity 動畫系統(tǒng)基本概念

這篇具有很好參考價值的文章主要介紹了Unity 動畫系統(tǒng)基本概念。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、動畫的基本概念

1、幀

在古代,一幅字畫叫一幀,而在計算機中,每次渲染完畢一幅畫面并顯示出來,這一幅畫就是一幀。

連續(xù)切換的幀就形成了動態(tài)的畫面。每秒刷新幀的次數(shù)稱為頻率,單位是FPS(Frames Per Second,幀/秒),也可以簡稱為"幀"。傳統(tǒng)電影每秒顯示24幀就可以保證良好的動態(tài)效果。由于游戲與電影顯示原理的不同,游戲至少需要30幀才能感到流暢,而要保證良好的視覺體驗則最好是60幀。在電子競技領(lǐng)域中,也會追求更高的幀率,以獲得比賽中的優(yōu)勢。

我們普遍希望幀率盡可能穩(wěn)定,但在游戲運行過程中,設(shè)備不一定能維持穩(wěn)定的幀率。當(dāng)運算負載較高時,Unity就會降低畫面和邏輯的更新次數(shù)

2、幀動畫

幀動畫是最古老、也是最容易理解的一種動畫技術(shù)。它是事先準備好動畫中的每一幀畫面,然后依次播放。

Unity 動畫系統(tǒng)基本概念? ? ?

?優(yōu)點:簡單直接、技術(shù)門檻低,美術(shù)設(shè)計師在一定范圍內(nèi)可以自由發(fā)揮

缺點:美術(shù)制作的工作量較大,占用的存儲空間也大(每一幀都需要完整保存),目前主要用于2D游戲

3、3D骨骼動畫

早期的3D動畫是由設(shè)計師編輯模型各部分的位置、旋轉(zhuǎn)等,直接制作出動作。這有點類似于橡皮泥手工動畫,要讓人物走路就要不斷調(diào)整頭、身體、手臂、和腿等各個部分的位置,這導(dǎo)致最初的3D動畫工作量大,而且很難做出真實的人類動作。

隨著技術(shù)的發(fā)展,出現(xiàn)了"骨骼動畫"這一技術(shù)。骨骼動畫思想簡單來說,是將人物模型與一個類似火柴棍組成的骨架綁定在一起,每一段火柴棍(骨骼)關(guān)聯(lián)著模型的一部分,這樣只需要移動和旋轉(zhuǎn)骨架,人物就會跟著做出各種動作了。這一技術(shù)不僅節(jié)省了工作量,而且動作效果也更加自然。

另外,同一套骨骼數(shù)據(jù)可以應(yīng)用于體型相近的不同角色模型上這樣就可以批量地制作更多的角色。實踐中甚至可以將一套骨骼和動畫適配到另一套不同的骨骼模型上,這稱為"重定向"。

Unity對3D動畫、3D骨骼動畫君哦與較好的支持,如FBX文件(一種常用的3D模型和動畫文件格式)。

在Project窗口中選定FBX文件,,可以在Inspector窗口內(nèi)看到導(dǎo)入設(shè)置,導(dǎo)入設(shè)置具有Model(模型)、Rig(骨骼綁定)、Animation(動畫)、和Materials(材質(zhì))4個選項。其中的Rig選項中,可以選擇的動畫類型為None(無骨骼)、Legacy(舊版系統(tǒng))、Generic(通用型)、和Humanoid(人形),目前主要使用后兩者。如果是人形骨骼模型,則選擇Humaniod,在其他情況下(沒有骨骼或不是人形角色)都可以選擇Generic選項。Unity對常用的人形骨骼有優(yōu)化,功能更多,使用也更方便。

4、2D骨骼動畫

隨著骨骼動畫的發(fā)展,人們發(fā)現(xiàn)2D動畫其實也可以借用骨骼動畫技術(shù)。思路是將2D角色身體的各個部分切割開,做成獨立的圖片,然后綁定一個2D的"火柴"組成的骨骼,通過調(diào)整骨骼,也可以讓2D角色活靈活現(xiàn)地動起來。這樣可以提高效率和資源利用率。

目前Unity對2D骨骼動畫也有較好的支持,可以借助官方擴展包2D Animation直接制作2D骨骼動畫,也可以使用更專業(yè)的2D骨骼動畫軟件,如Spine和Dragonbones借助相關(guān)插件導(dǎo)入Unity中使用

二、動畫融合

3D骨骼動畫和2D骨骼動畫都有一個共同的特點:動作被抽象畫、數(shù)據(jù)化了,計算機能夠表示幀與幀之間的聯(lián)系,甚至能夠計算出兩幀之間的過渡狀態(tài)。動畫設(shè)計師只需要制定一個動作中的關(guān)鍵幾個幀(關(guān)鍵幀),其他的幀(過渡幀)可以利用數(shù)學(xué)算法進行插值計算(線性插值或其他插值算法)。

以此類推,不僅同一個動作的各個關(guān)鍵幀之間可以自動計算過渡幀,而且不同動作之間也可以計算過渡幀。再進一步,如果動畫設(shè)計師提供了"慢走"和"快跑"兩個動作,甚至還可以通過插值計算出慢跑、中蘇跑等更多介于慢跑和快爬之間的動作。這種在不同動作之間自動計算過渡狀態(tài)的技術(shù)稱為"動畫融合"。

Unity對動畫融合有很好的支持,在動畫狀態(tài)機中有專用的融合樹(Blend Tree),它支持一個或兩個維度的動畫融合。"兩個維度"指的是兩種運動方式,如常用的"轉(zhuǎn)身"和"前進"就是兩個維度,利用Blend Tree可以混合出慢走并快速左轉(zhuǎn),或者快走并慢速右轉(zhuǎn)等不計其數(shù)的動作。

??:在幀動畫中,每一幀都是相對獨立的。幀動畫的數(shù)據(jù)沒有抽象畫、數(shù)據(jù)化,就不肯能進行動畫融合。因此,如果采用幀動畫,就不用考慮動畫融合。

三、動畫狀態(tài)機

目前,幾乎所有的Unity游戲在制作動畫時都要用到動畫狀態(tài)機(Animator),動畫狀態(tài)機目前已經(jīng)是游戲開發(fā)的標(biāo)準配置。

但是,理論上來說動畫狀態(tài)機并不是必須的。特別是對采用幀動畫制作的游戲來說,幀動畫本質(zhì)就是圖片的切換,那么只要及時切換圖片,自然就能正常播放動畫。因此,用腳本直接修改圖片也并無不可,比一定非要使用動畫狀態(tài)機。

只是在實際游戲開發(fā)中,利用動畫狀態(tài)機可以統(tǒng)一動畫制作思路,包括2D動畫、3D動畫、骨骼動畫和動畫融合等。因此,Unity逐漸摒棄了其他的動畫管理方法而統(tǒng)一用動畫狀態(tài)機組件管理所有動畫。

理解動畫狀態(tài)機

要理解使用"動畫狀態(tài)機"的必要性,必須思考一個問題:假設(shè)有站立、下蹲、走/跑和跳躍4種動畫,那如何變成來描述動畫狀態(tài),以便在不同的動畫之間切換?其初步思考結(jié)論如下:

  1. 在地面上速度為0時,站立。這是默認動畫
  2. 在站立狀態(tài)下速度大于0,切換為走或跑的動畫,根據(jù)移動速度幀切換速度。
  3. 在站里狀態(tài)下跳躍,切換為跳躍動畫
  4. 在走/跑狀態(tài)下跳躍,也切換為跳躍動畫
  5. 在跳躍狀態(tài)下落地,切換為站立動畫。如果速度部位0,站立動畫會立即切換到走/跑動畫
  6. 在站立狀態(tài)下下蹲,切換為下蹲動畫
  7. 在下蹲狀態(tài)下站立,切換為站立動畫

以此類推,逐個分析清楚每一個動畫狀體及轉(zhuǎn)移條件,就可以得出動畫切換的思路。"思路"有一種明顯的模式:當(dāng)前處于某個狀態(tài),如果發(fā)生某件事,就切換到另一個狀態(tài)。

這種思路在編程中極其有用,有一個專門的名稱——狀態(tài)機(State Machine)。雖然本文是在動畫系統(tǒng)中初次提到狀態(tài)機,但實際上狀態(tài)機的應(yīng)用非常廣泛,包括在游戲邏輯框架和AI系統(tǒng)中都經(jīng)常能用到。大學(xué)生第一次了解到通常是在學(xué)習(xí)計算機網(wǎng)絡(luò)時。

狀體??在任意時刻都具有一個"當(dāng)前狀態(tài)",并且默認會保持著一狀態(tài),只有在滿足某個條件時,才會切換到另一個狀態(tài)。也就是說,狀態(tài)機有兩個要素:狀態(tài)和狀態(tài)轉(zhuǎn)移。

用腳本直接實現(xiàn)狀態(tài)機,只需要用一個變量保存當(dāng)前狀態(tài),根據(jù)游戲邏輯切換狀態(tài)即可。而對于動畫系統(tǒng)來說,將狀態(tài)??思想應(yīng)用于管理動畫狀態(tài)極為合適,具有嗯好的通用型。Unity所提供的動畫狀態(tài)機組件,就是專門用來管理動畫狀態(tài),以及動畫之間的切換和過渡的。

四、根骨骼動畫

讓邏輯系統(tǒng)控制角色的運動,而動畫系統(tǒng)只是單純地做表現(xiàn),但從技術(shù)角度看,這種方式比較簡單,也不容易出bug。但隨著3D游戲的不斷發(fā)展,有一個問題一直困擾著游戲設(shè)計師——角色的動畫與移動速度很難匹配。

以跑步為例,如果動畫快一些,實際移動慢一些,會感覺角色在走"太空步";如果動畫慢一些,實際移動快一些,就會感覺角色在"飄"。雖然理論上來說總能找到一個合適的參數(shù)。讓移動速度能夠完美地與動畫配合,讓角色走的更真實,但實際上要做到這一點并不容易。

而且,現(xiàn)代游戲具有攀爬、斬擊、移動射擊和沖刺等越來越多逼真的動作,讓動畫與移動配合的問題變得更加復(fù)雜。要想徹底解決這一問題,只能讓動畫設(shè)計師直接控制角色的移動。

Animator的應(yīng)用根骨骼動畫(Apply Root Motion)選項就是為了解決這一問題而存在的,勾選它意味著開啟跟骨骼動畫功能,物體會根據(jù)動畫自帶的位移改變自身的位置。而這個位移度是由動畫設(shè)計師決定的(直接記錄在動畫中),而非程序控制的。

但是開啟根骨骼動畫功能需要以下三個條件,缺一不可:

  1. 動畫在制作時,本來就帶有位移信息
  2. 導(dǎo)入動畫文件時,正確導(dǎo)入了根骨骼動畫信息
  3. Animaotr中勾選了Apply Root Motion選項

對于使用了根骨骼動畫的游戲來說,角色控制器編寫思路也會發(fā)生變化。由于通過控制動畫狀態(tài)機就能控制角色的移動,那么直接移動角色位置的代碼就需要刪除或做出修改

?文章來源地址http://www.zghlxwxcb.cn/news/detail-462272.html

?

到了這里,關(guān)于Unity 動畫系統(tǒng)基本概念的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Unity入門計劃】基本概念(8)-瓦片地圖 TileMap 01

    【Unity入門計劃】基本概念(8)-瓦片地圖 TileMap 01

    目錄 1 TileMap概念 主要思想 優(yōu)點 創(chuàng)建的層級 2 Unity中的TileMap 2.1 自動父級Grid 網(wǎng)格 2.2?Sprite精靈 2.3?Tile 瓦片 2.4?Tile Palette 調(diào)色板 2.5?Brush 筆刷 3 Tilemap Renderer 瓦片地圖渲染器 3.1 Sort Order 瓦片排列順序 3.2 Mode 渲染模式 ?Chunk 分塊渲染 ?Individual 單獨渲染? 3.3?Detect Chunk Culling

    2023年04月08日
    瀏覽(62)
  • 【Unity入門計劃】基本概念(7)-Input Manager&Input類

    【Unity入門計劃】基本概念(7)-Input Manager&Input類

    目錄 1 Input Manager-Controls 控件 1.1 Key 鍵 1.2 Button 按鈕 1.3 Virtual Axis 虛擬軸(復(fù)數(shù):Axels) Name 名稱 Ngative Button, Positive Button 負/正值鍵(按鈕) 2 C#中的Input類 2.1 鍵盤的輸入(獲取鍵盤事件) Input.GetKey(string KeyName) Input.GetKeyDown(string KeyName) Input.GetKeyUp(string KeyName) 2.2 鼠標(biāo)的輸入(獲取

    2024年02月08日
    瀏覽(56)
  • Unity 動畫系統(tǒng)

    Unity 動畫系統(tǒng)

    動畫系統(tǒng)包含: 動畫片段 Animation Clip,記錄物體變化的信息,可以是角色的閃轉(zhuǎn)騰挪,也可以是一扇門的開閉 動畫狀態(tài)機 Animator Controller,根據(jù)設(shè)置切換動畫片段 動畫組件 Animator,Animation 替身 Avatar,對人形動畫進行復(fù)用 把一個 .anim 的動畫文件作為文本打開 里面有個path屬

    2024年02月04日
    瀏覽(20)
  • Unity動畫系統(tǒng)學(xué)習(xí)

    Unity動畫系統(tǒng)學(xué)習(xí)

    AnimationState 動畫狀態(tài) 動畫狀態(tài)是動畫狀態(tài)機的基本構(gòu)建塊。每個狀態(tài)都包含一個動畫序列(或混合樹),當(dāng)角色處于該狀態(tài)時播放該動畫序列。 Motion :分配給此狀態(tài)的動畫剪輯或者動畫融合樹。 Speed :動畫的默認速度。 Multiplier:控制速度的乘數(shù),如果要使用需要勾選Par

    2024年02月05日
    瀏覽(26)
  • Unity新動畫系統(tǒng)之動畫狀態(tài)機Animator Controller

    Unity新動畫系統(tǒng)之動畫狀態(tài)機Animator Controller

    1、創(chuàng)建動畫狀態(tài)機文件 (1)會在創(chuàng)建動畫時自動創(chuàng)建 (2)Create----Animator Controller 2、動畫狀態(tài)機窗口相關(guān) 層級:可以在右側(cè)齒輪設(shè)置參數(shù)大小? ?3、添加動畫 為對象添加動畫后會自動添加到狀態(tài)機中 4、狀態(tài)切換 動畫會在1和2之間不斷切換 ?添加條件 點擊轉(zhuǎn)換箭頭 ?在這

    2024年02月05日
    瀏覽(18)
  • Unity老動畫系統(tǒng)Animation

    Unity老動畫系統(tǒng)Animation

    1、創(chuàng)建老動畫系統(tǒng) 給要制作動畫的GameObeject添加Animation組件 2、Animation參數(shù) Animation:默認播放的動畫 Animations:該動畫組件可以控制的所有動畫 Play AutoMatically:是否一開始就自動播放默認動畫 Animate Physics:動畫是否與物理交互 Culling Type:決定什么時候不播放動畫 ?? ?Alwa

    2024年02月06日
    瀏覽(29)
  • Unity中動畫系統(tǒng)的性能優(yōu)化

    Unity中動畫系統(tǒng)的性能優(yōu)化

    降低骨骼數(shù),減少面片數(shù)。 方法: 1.勾選Optimize Game Objects,以剔除骨骼節(jié)點對應(yīng)的Transform節(jié)點 2.開啟多線程渲染選項 主要影響的函數(shù)調(diào)用開銷,可以在profiler中查看: Animators.Update MeshSkinning.Update Camera.Render 注意: 1.其中Animators.Update函數(shù)在骨骼節(jié)點優(yōu)化后,場景內(nèi)放一百個模

    2024年02月11日
    瀏覽(25)
  • Unity動畫系統(tǒng)學(xué)習(xí)筆記(二)根運動、動畫事件與狀態(tài)機行為

    Unity動畫系統(tǒng)學(xué)習(xí)筆記(二)根運動、動畫事件與狀態(tài)機行為

    在學(xué)習(xí)根運動前需要了解兩個名詞: 身體變換 :身體變換是角色的質(zhì)心。它用于 Mecanim 的重定向引擎,并提供最穩(wěn)定的移位模型。身體方向是相對于 Avatar T 形姿勢的下身和上身方向的平均值。身體變換和方向存儲在動畫剪輯中(使用 Avatar 中設(shè)置的肌肉定義)。它們是動畫

    2023年04月11日
    瀏覽(30)
  • 【Unity Shader】從入門到著魔(1)基本概念:什么是網(wǎng)格?材質(zhì)?Shader?

    【Unity Shader】從入門到著魔(1)基本概念:什么是網(wǎng)格?材質(zhì)?Shader?

    如上圖,模型的三角形面就叫做網(wǎng)格(Mesh),網(wǎng)格的本質(zhì)是一堆頂點數(shù)據(jù)的規(guī)則排序,在Unity和UE中由三角形表示,Maya等DCC軟件(Digital Content Creation)中則通常由四邊形表示(倆個三角形剛好組成一個四邊形)。 在Unity中我們新建一個Cube,

    2024年02月09日
    瀏覽(24)
  • Unity 熱更新技術(shù) | (一) 熱更新的基本概念原理及主流熱更新方案介紹

    Unity 熱更新技術(shù) | (一) 熱更新的基本概念原理及主流熱更新方案介紹

    ?? 博客主頁:https://xiaoy.blog.csdn.net ?? 本文由 呆呆敲代碼的小Y 原創(chuàng),首發(fā)于 CSDN ?? ?? 學(xué)習(xí)專欄推薦:Unity系統(tǒng)學(xué)習(xí)專欄 ?? 游戲制作專欄推薦:游戲制作 ??Unity實戰(zhàn)100例專欄推薦:Unity 實戰(zhàn)100例 教程 ?? 歡迎點贊 ?? 收藏 ?留言 ?? 如有錯誤敬請指正! ?? 未來很長

    2024年02月01日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包