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

Unity游戲開發(fā)之游戲動(dòng)畫(Unity動(dòng)畫系統(tǒng))

這篇具有很好參考價(jià)值的文章主要介紹了Unity游戲開發(fā)之游戲動(dòng)畫(Unity動(dòng)畫系統(tǒng))。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Unity動(dòng)畫系統(tǒng)

Unity動(dòng)畫系統(tǒng)分為

  • 動(dòng)畫片段 Animation Clip: 動(dòng)畫資源,與模型無關(guān)
  • 動(dòng)畫狀態(tài)機(jī) Animator Controller:幫助我們跟蹤當(dāng)前動(dòng)畫的播放狀態(tài),并且根據(jù)設(shè)置覺得如何切換動(dòng)畫片段
  • 動(dòng)畫組件 Animator Component:玩家角色需要播放動(dòng)畫功能時(shí),需要?jiǎng)赢嫿M件,將游戲?qū)ο笮枰膭?dòng)畫狀態(tài)機(jī)(以及替身)放入該組件,之后便可以在游戲腳本中自由訪問該組件,從而自由控制游戲?qū)ο髣?dòng)畫。
  • 替身 Avatar:人形動(dòng)畫骨骼的標(biāo)準(zhǔn),所有按照同一標(biāo)準(zhǔn)配置好的人形角色都可以播放同一套動(dòng)畫。

動(dòng)畫片段 Animation Clip

在Unity中制作動(dòng)畫

  1. 點(diǎn)擊Window,打開animatioin窗口
  2. 選中需要制作動(dòng)畫的物體,點(diǎn)擊create,選擇一個(gè)位置保存。
    Unity為我們在保存位置生成了一個(gè)動(dòng)畫片段(.anim) 文件和一個(gè)pivet 動(dòng)畫狀態(tài)機(jī)(.controller),
    并且,在需要制作動(dòng)畫的物體上掛在了一個(gè) Animator組件

注:動(dòng)畫片段文件(.anim)是使用標(biāo)記語言YAML編寫的文件(Unity中絕大多數(shù)文件都是使用YAML來記錄的)

  1. 選中物體,切換到Animation視圖,選中這里的add Property,選擇要對哪些屬性進(jìn)行變換
    Unity游戲開發(fā)之游戲動(dòng)畫(Unity動(dòng)畫系統(tǒng)),Unity,unity,游戲,游戲引擎
  2. 時(shí)間標(biāo)尺的默認(rèn)長度為1s,在起始位置0s和結(jié)束位置1s處各有一個(gè)關(guān)鍵幀。
  3. 選擇對應(yīng)的關(guān)鍵幀,或在任意位置修改數(shù)據(jù),即可創(chuàng)建關(guān)鍵幀。修改關(guān)鍵幀后,中間的幀可根據(jù)兩邊關(guān)鍵幀插值計(jì)算得到。
    Unity游戲開發(fā)之游戲動(dòng)畫(Unity動(dòng)畫系統(tǒng)),Unity,unity,游戲,游戲引擎
  4. 點(diǎn)擊左下角的Curves,我們就能已曲線的形式觀察并修改當(dāng)前的動(dòng)畫片段
  5. 打開動(dòng)畫片段文件(.anim),在檢視視圖下看到Euler:1,說明包含一段歐拉角運(yùn)動(dòng)。
    Unity游戲開發(fā)之游戲動(dòng)畫(Unity動(dòng)畫系統(tǒng)),Unity,unity,游戲,游戲引擎

動(dòng)畫復(fù)用

當(dāng)動(dòng)畫文件只對應(yīng)一個(gè)物體的時(shí)候,可以復(fù)用到任何一個(gè)物體上。

當(dāng)動(dòng)畫文件要處理多個(gè)物體或多個(gè)游戲?qū)ο髸r(shí),會(huì)在文件中寫上該物體的對象名稱,unity會(huì)通過文件里的這個(gè)名稱找到正確的游戲?qū)ο蟆?br> 如果游戲?qū)ο蟮拿趾蛣?dòng)畫文件中的不一致,就無法正常播放。

動(dòng)畫復(fù)用,當(dāng)骨骼結(jié)構(gòu)一致,命名也一致,就可以對動(dòng)畫文件進(jìn)行復(fù)用。

當(dāng)骨骼結(jié)構(gòu)相似,但動(dòng)畫命名不一致時(shí),修改命名以及骨骼系統(tǒng)就可以復(fù)用動(dòng)畫,但Unity對人形骨骼有簡便的處理方式:Avator

替身系統(tǒng) Avatar

當(dāng)兩個(gè)角色的命名方式不一樣時(shí),動(dòng)畫不能復(fù)用。
如下:名稱不匹配,會(huì)在Animation窗口顯示Missing!
Unity游戲開發(fā)之游戲動(dòng)畫(Unity動(dòng)畫系統(tǒng)),Unity,unity,游戲,游戲引擎
使用替身系統(tǒng),需要為兩個(gè)模型都添加替身,使得兩模型替身命名方式相同。

  1. 模型創(chuàng)建Avatar,對所有模型創(chuàng)建,并可在Avatar配置中對模型的修改量進(jìn)行參數(shù)設(shè)置。具體可看【Unity動(dòng)畫系統(tǒng)詳解 四】八分鐘理解并掌握Avatar和人形動(dòng)畫復(fù)用【Unity開發(fā)入門教程12】 5:05
  2. 對A模型的動(dòng)作配置A模型的Avatar,對B模型的動(dòng)作配置B模型的Avator。
  3. 新建Animator Controller,在動(dòng)畫狀態(tài)機(jī)中添加動(dòng)作。
  4. 對場景中的角色模型添加Animator組件,不同的模型選擇不同的Avatar,但可以共用相同的動(dòng)畫狀態(tài)機(jī)。

Animator 組件 Animator Component

  • Controller 動(dòng)畫狀態(tài)機(jī)
  • Avatar 替身系統(tǒng):在組件這里,還擔(dān)任了一個(gè)傳令兵的職責(zé),會(huì)在當(dāng)前對象以及子對象中層層尋找符合要求的模型。
  • Apply Root Motion:有些動(dòng)畫自帶位移,如果希望動(dòng)畫位移應(yīng)用在游戲上,則勾選。
  • update mode:動(dòng)畫的刷新模式(重新計(jì)算每個(gè)骨骼結(jié)點(diǎn)的位置轉(zhuǎn)向和縮放的數(shù)值)
    • normal:和幀率同步(update())
    • Animate Physics:與物理引擎同步(fixedUpdate())
    • Unscaled Time:和幀率同步,但會(huì)忽略時(shí)間標(biāo)尺,及當(dāng)修改時(shí)間標(biāo)尺(游戲中1s對應(yīng)現(xiàn)實(shí)2s,則Unscaled Time不受影響)
  • Culling Mode 剔除模式: 當(dāng)游戲?qū)ο鬀]有被看到時(shí),如何處理
    • Always Animate : 動(dòng)畫不受影響
    • Cull Update Transforms:剔除關(guān)于IK之類的操作
    • Cull Completely:完全停止動(dòng)畫

動(dòng)畫狀態(tài)機(jī) Animator Controller

動(dòng)畫狀態(tài)

動(dòng)畫狀態(tài)的類型
  • 單獨(dú)的動(dòng)畫片段

添加單獨(dú)動(dòng)畫片段的三種方法
1. 新建空狀態(tài),再添加動(dòng)畫
2. 選中動(dòng)畫,右鍵添加
3. 直接拖動(dòng)動(dòng)畫

  • 多個(gè)動(dòng)畫片段組成的混合書 Blend Tree
  • 另一個(gè)動(dòng)畫狀態(tài)機(jī)
動(dòng)畫狀態(tài)的屬性
  1. 名稱:修改狀態(tài)機(jī)中展示的文本,以便管理
  2. 標(biāo)簽Tag:給不同的動(dòng)畫狀態(tài)打上標(biāo)簽進(jìn)行分類,可在腳本中便于統(tǒng)一管理
//獲取當(dāng)前狀態(tài)機(jī)正在播放的動(dòng)畫狀態(tài)
AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(animator.GetLayerIndex("層級名稱"));
//通過標(biāo)簽對不同的標(biāo)簽動(dòng)畫,做不同的事
if(stateInfo.isTag("標(biāo)簽名稱")){
	......
}
  1. Motion :動(dòng)畫片段或混合樹
  2. Speed:動(dòng)畫的播放速度(不能通過腳本更改)
  3. Multiplier:動(dòng)畫實(shí)際速度為Speed與Multiplier的乘積(設(shè)置Parameter后,可通過腳本修改參數(shù))
  4. Motion Time:播放動(dòng)畫的時(shí)間點(diǎn)(注意:只會(huì)播放單幀)【適合制作單幀2D動(dòng)畫】
  5. Mirror:鏡像動(dòng)畫
  6. Cycle Offset:動(dòng)畫播放的起始位置[0,1]
  7. Foot IK:使用了IK的動(dòng)畫矯正機(jī)制
  8. Write Defaults :默認(rèn)開啟,是否為其運(yùn)動(dòng)未動(dòng)畫化的屬性寫回默認(rèn)值。但是有很大的坑,一般情況下禁用。
    [Unity] AnimatorStates中的write defaults詳解:https://blog.csdn.net/rickshaozhiheng/article/details/77838379

動(dòng)畫狀態(tài)機(jī)----動(dòng)畫轉(zhuǎn)換

點(diǎn)擊狀態(tài),可看到狀態(tài)下的所有轉(zhuǎn)化。

  • 如果有勾選Solo的轉(zhuǎn)化,只對勾選Solo的狀態(tài)轉(zhuǎn)換,
    • 哪個(gè)轉(zhuǎn)換的條件先滿足,就執(zhí)行哪個(gè)轉(zhuǎn)換。
    • 如果條件同時(shí)滿足,則執(zhí)行最上面的轉(zhuǎn)換
  • 如果沒有勾選Solo的轉(zhuǎn)換
  • 對勾選了Mute的轉(zhuǎn)換永遠(yuǎn)不會(huì)執(zhí)行
轉(zhuǎn)換屬性的配置面板
  • Has Exit Time : 當(dāng)前動(dòng)畫狀態(tài)播放到某個(gè)時(shí)間點(diǎn)的時(shí)候,就執(zhí)行這個(gè)轉(zhuǎn)換。如果不勾選,就必須在Conditions下對轉(zhuǎn)換添加其他條件。
  • 展示圖
    Unity游戲開發(fā)之游戲動(dòng)畫(Unity動(dòng)畫系統(tǒng)),Unity,unity,游戲,游戲引擎
    • 最上方的白線:Root motion動(dòng)畫在水平方向上的位移
  • Exit Time:動(dòng)畫開始轉(zhuǎn)化的時(shí)間(勾選Has Exit Time下有效)
  • Fixed Duration : 轉(zhuǎn)換的持續(xù)時(shí)間
    • 勾選(按秒讀),后面有(s)
    • 不勾選(按百分比讀),后面有(%)
  • Transition Offset:進(jìn)入下一個(gè)動(dòng)畫片段時(shí)下一個(gè)動(dòng)畫開始播放的偏移量,取值[0,1]。
  • Interruption Source : 表示哪些轉(zhuǎn)化可以打斷當(dāng)前這個(gè)轉(zhuǎn)換
    • None:當(dāng)前這個(gè)狀態(tài)不可被打斷
    • Current State:可以被當(dāng)前出發(fā)狀態(tài)的其他轉(zhuǎn)換打斷
    • Next State:可被從目的狀態(tài)出發(fā)的其他轉(zhuǎn)換打斷
    • Current State Then Next State:出發(fā)狀態(tài)的其他狀態(tài)優(yōu)先
    • Next State Then Current State:目的狀態(tài)的其他狀態(tài)優(yōu)先
  • Ordered Interruption:默認(rèn)被勾選,只有優(yōu)先集比當(dāng)前轉(zhuǎn)換的優(yōu)先級高的轉(zhuǎn)換才可打斷當(dāng)前轉(zhuǎn)換(點(diǎn)擊狀態(tài),狀態(tài)轉(zhuǎn)化欄中,越靠上的優(yōu)先級越高)。不勾選的話,則不考慮優(yōu)先級。
  • Conditions
    • 使用setTrigger,setInt等激活觸發(fā)器或來改變條件的值設(shè)置值
    • 如果與Trigger相關(guān)聯(lián)的動(dòng)畫并沒有被執(zhí)行,trigger就會(huì)一直處于激活狀態(tài),直到轉(zhuǎn)換被執(zhí)行。
    • 轉(zhuǎn)換條件可以設(shè)計(jì)多條,之間的關(guān)系為邏輯與(當(dāng)所有條件都滿足時(shí)才會(huì)轉(zhuǎn)換)

動(dòng)畫狀態(tài)機(jī)—層級和參數(shù)

Layers 用于組合動(dòng)畫
  • 權(quán)重:當(dāng)前層級會(huì)在多大程度上影響整個(gè)動(dòng)畫的最終表現(xiàn)
  • Mask用于層級遮蔽,過濾不受影響的點(diǎn),既可以在Humanoid中點(diǎn)擊設(shè)置,也可以在Transfrom中精準(zhǔn)設(shè)置可以被影響的點(diǎn)
    使用Mask后,【層級會(huì)標(biāo)注M來表示】。
  • Blending【覆蓋override、添加additive】
  • sync 同步:與某個(gè)層級保持一致、狀態(tài)轉(zhuǎn)化相同
    • Timing
  • IK Pass:當(dāng)前層級使用IK則打開【層級會(huì)標(biāo)注IK來表示】

越向下,優(yōu)先級越高文章來源地址http://www.zghlxwxcb.cn/news/detail-539543.html

  • Parameters
//修改參數(shù)值
animator.SetFloat("參數(shù)名稱",);
animator.SetBool("參數(shù)名稱",);
//內(nèi)部會(huì)自動(dòng)轉(zhuǎn)為Hash值,及如下方法
animator.SetFloat(Animator.StringToHash("參數(shù)名稱"),);
//獲取參數(shù)值
animator.getInt("參數(shù)名稱");

到了這里,關(guān)于Unity游戲開發(fā)之游戲動(dòng)畫(Unity動(dòng)畫系統(tǒng))的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 微信小游戲開發(fā)之unity-精靈的創(chuàng)建動(dòng)畫和操作移動(dòng)

    微信小游戲開發(fā)之unity-精靈的創(chuàng)建動(dòng)畫和操作移動(dòng)

    我們的目標(biāo)是通過unity開發(fā)微信小游戲! 這是第一篇正式實(shí)戰(zhàn)開發(fā)文章,將會(huì)很詳細(xì)介紹每一個(gè)步驟和代碼。 廢話不多說直接操作! 由于目標(biāo)開發(fā)游戲是2D小游戲,我們選擇2D核心模板. 我們的目標(biāo)是開發(fā)微信小游戲所以我們需要修改setting,選擇運(yùn)行平臺選擇轉(zhuǎn)換 WebGL ,剛開

    2024年01月16日
    瀏覽(22)
  • 【Unity游戲開發(fā)中的常見問題第二卷】AnyState小坑導(dǎo)致動(dòng)畫卡在第一幀

    【Unity游戲開發(fā)中的常見問題第二卷】AnyState小坑導(dǎo)致動(dòng)畫卡在第一幀

    在使用 Unity 自帶的 Animator 時(shí)偶然出現(xiàn)的問題,有一個(gè)動(dòng)畫是通過 Any State 傳遞的,然后碰到了一直卡在第一幀的情況,其實(shí)是一個(gè)設(shè)置問題,需要把 Can Transition To Self ,可能也有其他原因?qū)е骂愃茊栴}的發(fā)生,不過感覺這應(yīng)該是新手常碰的問題了~ 如果你不禁用傳輸?shù)阶陨?/p>

    2024年02月16日
    瀏覽(26)
  • 23. Unity - 3D游戲開發(fā)小計(jì)02 --- 動(dòng)畫結(jié)束UI、導(dǎo)航網(wǎng)格代理、場景搭建插件(ProGrids,ProBuilder,Polybrush)

    23. Unity - 3D游戲開發(fā)小計(jì)02 --- 動(dòng)畫結(jié)束UI、導(dǎo)航網(wǎng)格代理、場景搭建插件(ProGrids,ProBuilder,Polybrush)

    1. 動(dòng)畫結(jié)束UI 一個(gè)游戲在通過后,都是需要一個(gè)界面顯示當(dāng)前游戲已經(jīng)結(jié)束,即需要給游戲添加一個(gè)結(jié)束的界面,可以做一個(gè)簡單的游戲結(jié)束界面,用一個(gè)圖片展示: 首先在 層級窗口 添加兩層UI中的Image,其中第一層的Image僅作背景,可將其填充顏色設(shè)置為純黑色,第二層的

    2024年02月05日
    瀏覽(97)
  • Unity GPU Skinning Tool: 提升3D游戲動(dòng)畫性能的新利器

    項(xiàng)目地址:https://gitcode.com/ForeverZack/Unity-Gpu-Skinning-Tool 在Unity引擎的世界里,Unity GPU Skinning Tool是一個(gè)強(qiáng)大的工具,它將骨骼動(dòng)畫計(jì)算從CPU轉(zhuǎn)移到GPU,顯著提高了游戲中的角色動(dòng)畫性能。對于那些需要大量3D角色與復(fù)雜動(dòng)畫的游戲開發(fā)者而言,這是一個(gè)非常值得嘗試的技術(shù)。 Un

    2024年04月25日
    瀏覽(20)
  • Unity DOTS《群體戰(zhàn)斗彈幕游戲》核心技術(shù)分析之3D角色動(dòng)畫

    Unity DOTS《群體戰(zhàn)斗彈幕游戲》核心技術(shù)分析之3D角色動(dòng)畫

    最近DOTS發(fā)布了正式的版本, 我們來分享現(xiàn)在流行基于群體戰(zhàn)斗的彈幕類游戲,實(shí)現(xiàn)的核心原理。今天給大家介紹大規(guī)模戰(zhàn)斗群體3D角色的動(dòng)畫如何來實(shí)現(xiàn)。 DOTS 對角色動(dòng)畫支持的局限性 截止到Unity DOTS發(fā)布的版本1.0.16,目前還是無法很好的支持3D角色動(dòng)畫。在DOTS 的baker過程種,

    2024年02月04日
    瀏覽(24)
  • 游戲引擎之高級動(dòng)畫技術(shù)

    游戲引擎之高級動(dòng)畫技術(shù)

    當(dāng)我們擁有各類動(dòng)畫素材(clips)時(shí),要將它們?nèi)诤掀饋沓蔀橐惶淄暾膭?dòng)畫。 最經(jīng)典的例子就是從走的動(dòng)畫自然的過渡到跑的動(dòng)畫。 1.1 線性插值 不同于上節(jié)課的LERP(同一個(gè)clip內(nèi)不同pose之間),動(dòng)畫融合需要的線性插值是不同clip之間的插值。 以走-跑為例,可以用速度來

    2024年04月14日
    瀏覽(24)
  • 2022版本unity-2D游戲官方案例--帶視頻案例(1)(層級渲染,物理碰撞,粒子動(dòng)畫,UI等多位基礎(chǔ)一體化)

    2022版本unity-2D游戲官方案例--帶視頻案例(1)(層級渲染,物理碰撞,粒子動(dòng)畫,UI等多位基礎(chǔ)一體化)

    ? ?????個(gè)人主頁:@元宇宙-秩沅 hallo ?歡迎 點(diǎn)贊?? 收藏? 留言?? 加關(guān)注?! 本文由? 秩沅 ?原創(chuàng) 收錄于專欄?unity實(shí)戰(zhàn)入門 ??相關(guān)文章? ——————————————————— -[本站最全-unity常用API大全(萬字詳解),不信你不收藏] -[關(guān)于游戲劇情模式中用到的

    2024年02月03日
    瀏覽(32)
  • 【還在傳統(tǒng)綁骨骼動(dòng)畫?】讓AI助力你實(shí)現(xiàn)2D游戲角色動(dòng)畫流程

    【還在傳統(tǒng)綁骨骼動(dòng)畫?】讓AI助力你實(shí)現(xiàn)2D游戲角色動(dòng)畫流程

    需要的知識 : 會(huì)調(diào)+chatGpt( 看小紅書、抖音、B站、Youtube、Telegrame等等都行,別傻忽忽跑到知識星球被收割了,就是一幫割韭菜的。 )學(xué)會(huì)怎么結(jié)合這兩款不同的AI先。 如果你對此文字生成圖片嗤之以鼻的話,那還是自己手繪線稿吧。 畫手問題的解決方案(我更喜歡

    2024年02月04日
    瀏覽(21)
  • 游戲中模型動(dòng)畫的幾種實(shí)現(xiàn)方式

    游戲中模型動(dòng)畫的幾種實(shí)現(xiàn)方式

    游戲內(nèi)動(dòng)畫的實(shí)現(xiàn)方式一般有這幾種: 骨骼動(dòng)畫 頂點(diǎn)動(dòng)畫 材質(zhì)動(dòng)畫 CPU蒙皮動(dòng)畫 骨骼動(dòng)畫是一種基于骨骼系統(tǒng)的動(dòng)畫技術(shù),它通過對骨骼進(jìn)行變換來控制模型的姿態(tài)和動(dòng)作。 在骨骼動(dòng)畫中,模型通常被分解成多個(gè)部分,每個(gè)部分都與一個(gè)或多個(gè)骨骼相連,通過對骨骼進(jìn)行旋

    2024年02月05日
    瀏覽(21)
  • 使用團(tuán)結(jié)引擎開發(fā)Unity 3D射擊游戲

    使用團(tuán)結(jié)引擎開發(fā)Unity 3D射擊游戲

    ? ? ? ?本案例是初級案例,意在引導(dǎo)想使用unity的初級開發(fā)者能較快的入門,體驗(yàn)unity開發(fā)的方便性和簡易性能。 ? ? ? 本次我們將使用團(tuán)結(jié)引擎進(jìn)行開發(fā),幫助想體驗(yàn)團(tuán)結(jié)引擎的入門開發(fā)者進(jìn)行較快的環(huán)境熟悉。 ? ? ?本游戲是一個(gè)俯視角度的射擊游戲。主角始終位于屏幕

    2024年01月19日
    瀏覽(110)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包