遊戲動作師使用Unity3D遇到過的所有問題及解決方法

2021-02-16 GameRes遊資網

到現在我大概用了四年多u3d,期間掉過無數坑,遇到過各種問題,2015年底的時候想著應該將其整理出來,方便大家查閱,於是有了這篇東西。但是實際整理完髮現,有些問題我已經想不起了,遇到過的問題肯定不止這麼多。希望各位同行能把遇到的問題發給我,解決了的、沒解決的都可以,大家互相交流一起進步。我會把所有問題全部整理好在共享給大家,自己能提高的同時也算給行業做點小貢獻。

導出相關

圖為max導出fbx界面,各版本界面略有不同功能相近,版面所限請放大查看


在遊戲美術工作流中,模型和動畫的導出都是由動畫師負責,一份可用的動畫文件,必須同時包含模型和動畫文件各一個。

模型導出時應注意勾選蒙皮和幾何變形,不要勾選貼圖文件,導出模型後單獨將貼圖文件手動放在模型文件夾下。避免重複導出替換時出錯。動畫的導出則比較常規,需要注意的是很多人喜歡使用烘焙動畫,其實並不好用,容易出現萬向軸的問題且不說,還給一些中間幀動畫的修改帶來難度。具體內容見模型篇。

掛點相關

圖為常規掛點所需點位,實際根據項目需求增減。


所掛dummy點需作為子級連結到對應骨骼,三軸對齊,各個模型間同一個點位置要統一。

武器換手相關

換手的三種方式:1、縮放隱藏換手 ;2、link連結約束換手;3、prop骨骼換手。

1、縮放隱藏換手

即在需要有武器的位置都放置一把武器(如左手、右手、後背、空中),將當前不需要顯示的武器縮放至極小不可見,需要顯示時再放大顯示。優點為無需特別支持,引擎通用,非常簡單。缺點為略麻煩,做動畫之前就要想好武器需複製幾份分別在哪,動畫縮放容易出現中間幀過度不順暢。

2、link連結約束換手

即使用link約束動畫實現武器換手 其最大優點就是大部分動畫師非常熟悉,運用起來得心應手。缺點也很明顯,引擎不能識別link動畫,需要塌陷或導出時烘焙動畫才可被引擎識別,而一旦出現萬向軸問題,改起來會比較麻煩。

3、prop骨骼換手

即max自帶的武器道具骨骼 優點是設定即為武器道具骨骼,能解決武器所需一切需求,並且被unity3D 5.0以後的版本支持,直接導出即可。缺點是unity3D 5.0之前的版本不支持,需要烘焙動畫。

表情動畫相關

Unity支持的MAX表情動畫已經確認可行的有兩種 一種就是 面部骨骼綁定表情動畫 另一種是morpher控制器表情動畫。表情動畫常見於舞蹈類、大型MMO類及單機類等遊戲中,前兩種重視社交和展示所以對表情有需求,後一種常見於精品遊戲中,各方面品質相對都比較高所以對表情也有要求。

面部骨骼綁定動畫

最常見的面部骨骼就是張嘴動畫,只需一根下顎骨骼即可解決,在很多有坐騎或怪獸的項目中使用,是廣義上的表情動畫。較為複雜的表情動畫用骨骼綁定來做並不划算,一來架設骨骼比較麻煩,具體K動畫的時候也相對繁瑣(有人用線性IK來製作表情,其實道理與骨骼綁定並無二致,只是調動畫的時候有聯動關係相對簡單些);二是骨骼過多帶來的運算量也比較大,會比較佔用資源。

morpher控制器表情動畫

優點是佔用資源相對較小,動畫可以做到比較精細,製作流程也相對簡單。缺點是動畫師不一定會調模型表情,前期過程相對麻煩(被拾取的表情頭不能鏡像、不能在統一個被拾取臉上左右同時調表情),並且有比較多的動作師從來沒接觸過morpher學習成本也相對較高。

這裡解釋下morpher的原理 將一個角色的面部模型複製出多份,每份分別承擔表情的一個局部動作,如微笑至少需要左嘴角上翹、右嘴角上翹、左眼微閉、右眼微閉四份。然後通過morpher控制器拾取這些表情,即可通過控制morpher的數值來調節表情動畫。

(以上表情為鄙人隨手亂調作為配圖使用,略醜勿怪)


文件壓縮相關

由於Fbx導出採樣原則(即我們通常所說的滿幀導出)所致,通常一段動畫導出後的容量都會比較大,常見的壓縮方式只有一種,即使用unity自帶的動畫壓縮。這裡再額外介紹兩種非常規的壓縮方法以應不時之需。

Unity自帶的動畫壓縮

選項有三種分別是關閉壓縮 減少關鍵幀 減少關鍵幀並壓縮文件。 1.關閉即為不進行壓縮保持導出時的狀態。2.減少關鍵幀 即unity會檢查相鄰兩幀之間移動旋轉縮放的閾值,當這個值小於規定數值時就刪掉其中一幀。3.減少關鍵幀並壓縮文件 除了2中所描述的內容還會降動畫文件進行打包壓縮,使其減少佔用硬碟容量,但對內存容量並無影響。

Rotation error、Position error、Scale error三個值是上文「減少關鍵幀」內容中所提到的閾值,這個值越大被刪除的幀就越多,動畫文件相對就越小,同時動畫質量相對也就越差。

當動畫壓縮過於嚴重時,一些動作幅度較小的動畫將會嚴重失真,如待機動畫在壓縮嚴重時腿部將無法站立於地面,而是隨著質心搖擺。產生此類問題,只需將該動畫的壓縮閾值略作調整即可,如果遇特殊情況調整閾值無效可嘗試後面的方法。

Max中導出時進行壓縮

在max的導出面板也有減少關鍵幀的選項,其工作原理也與unity相同,只是max作為專業的動畫製作軟體,他的閾值允許的精度更高可以到小數點後面很多位。而且作為美術軟體相信他對動畫關鍵幀的刪減也更專業。但缺點也很明顯,他不能實時預覽。當我們設定一個閾值之後,沒有辦法實時查看壓縮後的效果,難保壓縮後的文件沒有錯誤,不適用於處理大量的文件。當unity無法處理某個動畫時可以用max嘗試。

編輯fbx動畫

這種是非常規的辦法了,我也是聽人說沒試過。方法是 在max中導出fbx之後,使用可以編輯fbx的軟體(如mortion builder),對動畫進行刪幀。這個辦法的好處顯而易見,由於是動畫師手工刪除,既能保證動畫的質量又能保證壓縮到最小。缺點也很明顯,工作量大浪費時間,如果不是非常重要的角色出現解決不了的問題,不建議使用這種方式。

新舊骨骼系統相關

Unity在4.0系統增加了新的動畫系統,目前unity動畫類型下拉菜單中共有四個選項,分別是None、Legacy、Generic以及Humanoid。其中G和H為4.0版本新增的內容,L是老版本的動畫系統,none則是不使用動畫。

Legacy

是我目前使用最多的動畫系統,在我看來他已經滿足一個項目的絕大部分需求,而且因為最基礎所以也最易擴展,需要一些額外功能時也方便修改追加。

Generic 與legacy相比,generic可以使用新系統自帶的狀態機,並且自帶可編輯的動畫融合系統,然而在我看來這都沒什麼用。如果generic不與humanoid配合使用,其功能與legacy並無二致,反而因為系統並不成熟更容易出現未知錯誤。當然,也可能是有其他功能我並未得知,如有遺漏還望指正。

Humanoid

字面上理解即為人型骨骼系統,其最顯著的特點是可以將max的骨骼轉化為unity的骨骼,並且會生成一份avatar,將avatar指定給不同的角色模型。即可無視高矮胖瘦的體型差異將同一個動畫分配給每個角色,簡單來說就是可以實現動畫的通用。

這裡並沒有講每個動畫系統的優劣,因為動畫系統優劣的評判並不是單一獨立的,理論上每個動畫系統都能解決問題。具體要選擇哪個系統,要看遊戲的類型、打包方式,舉例來說,如果是像三國無雙系列這種,同一個角色換了武器就會換一套動作,每件武器都有對應的動畫,那顯然是要用humanoid這種可以無視體型的通用骨骼;又比如角色間不需要共用動畫,並且每個角色程序都是單獨打包,那最好還是用legacy系統,簡單省事。甚至在同一款遊戲裡也可以主角單獨打包使用legacy骨骼,其他怪物使用humanoid骨骼共用動畫,以實現資源的最優化。

常見問題與小技巧

1、單幀動畫無效

在unity中至少要兩個關鍵幀才能被認定為是一段動畫,如果某根骨骼只有一個關鍵幀能不能讀取這個關鍵幀則比較看緣分,有時候讀得出有時候讀不出。

註:另外要注意的是,同一個骨骼的兩個動畫,如果A動畫中該骨骼存在兩個以上的關鍵幀,而B動畫只有一個關鍵幀,當播完A繼續播B的時候,該骨骼則會保持A動畫的最厚一幀狀態。同理如果B動畫該骨骼沒有幀,也會保持A動畫最後一幀。

2、超遠位置出現關鍵幀

一般常見於導bip動作文件時bone骨骼或dummy點上,在負幾百萬幀的位置出現一個孤立的幀,具體是什麼原因目前仍不清楚。該問題在max中比較不容易被發現,導入到unity時動畫無法讀取,曲線面板不顯示任何關鍵幀。Max導出動畫時雖有刪除孤立幀的選項,但經測試無法解決該問題,一般只能打開曲線面板找到該幀刪除之。這裡要特別強調一下,因為其位置非常遠,最好逐一選擇骨骼刪除,框選所有骨骼一起刪的話,極容易導致max崩潰。


3、層動畫問題

常見的有兩種,導出時如果動畫層沒有塌陷,則unity只能識別當前層所記錄的動畫,基本是百分之百出錯的,回到max塌陷即可。另外一個是max自身的問題,當某個骨骼使用了select IK object的時候,加層是無效的,必須點擊空白處清空掉拾取的IK object。

拾取狀態

清空狀態


4、攝像機動畫

理論上來說,max裡的攝像機動畫unity是不識別的,但實際上導出的攝像機在unity中會默認作為一個gameobject來使用。這樣只要在這個gameobject下面掛載一個unity的攝像機,並把坐標歸零即可。這裡說個小技巧,由於單位的原因,max的攝像機動畫進入到unity中可能會遇到比例的問題,我們可以在max中創建一個dummy點,坐標歸零,把攝像機作為子級連結給dummy,然後再調攝像機動畫。這樣進入unity的時候,我們只要吧dummy歸零,縮放它的尺寸就可以調整比例。


5、Unity動畫曲線

unity曲線面板提供了一些基礎功能,但是卻連複製幀這種常用的功能都沒有,我的解決辦法是將需要複製的幀拖動至動畫的末尾,然後再尾幀之外打個關鍵幀,這樣即可複製出一樣的幀,之後再把幀拖到適當的位置即可(下圖我複製了第二幀)


相關焦點

  • 【博物納新】合輯推薦—使用Unity重現經典遊戲!
    很多時候,我們並不知道自己想要什麼,直到某一天我們遇到了它。更多精彩內容請關注:lab.uwa4d.com導讀好久沒有給大家推薦合輯了,博物納新「合輯推薦」第四期給大家帶來的主題是:那些年少時玩耍的經典遊戲。
  • Unity免費的優質場景資源
    由Unity Demo團隊使用攝影製圖法製作的環境藝術資源。使用了HD高清晰渲染管線渲染得到的環境場景。擁有玩家控制器和攝像機飛行模式,可以在運行模式中用來探索場景 。區域體積:基於體積的系統驅動的大氣散射效果、陽光和風力屬性。自定義大氣散射效果。為程序化風動畫製作的自定義頂點著色器,應用在所有的植被上。
  • UNITY-Fungus學習(上)
    [2] 包括遊戲開發、美術、建築、汽車設計、影視製作在內的創作者運用Unity實現。[2] Unity提供一整套軟體解決方案,可用於創作、運營和變現實時互動的2D和3D內容 [2] ,支持平臺包括手機、平板電腦、PC、遊戲主機、增強現實和虛擬實境設備。[2]2019年使用Unity製作的遊戲和體驗已在全球範圍內覆蓋將近30億臺設備 [4] ,月均下載量超過30億次 [5] 。
  • Unity3D 2017
    https://pan.baidu.com/s/1n3zjao8Ggoy7f5Bg_DNf4A 提取碼:upi5軟體介紹Unity3D是一種遊戲引擎包括遊戲開發、美術、建築、汽車設計、影視製作等。Unity提供一整套軟體解決方案,可用於創作、運營和變現實時互動的2D和3D內容,支持平臺包括手機、平板電腦、PC、遊戲主機、增強現實和虛擬實境設備。
  • Unity中Animator做UI動畫的一些細節
    由於我之前經歷的項目,動畫使用的要麼是舊版的Legacy Animation(https://docs.unity3d.com/Manual/Animations.html),要麼是還在試用階段的Playable Graph +Animation Job(https://blogs.unity3d.com/2018/08/27/animation-c-jobs/)。
  • 《賽博朋克2077》暈3D解決方法介紹
    《賽博朋克2077》中暈3D暈第一人稱是很多玩家都會遇到的事情,但是暈3D的具體解決方法是什麼玩家們都不太清楚,今天小編就給大家帶來玩家「暴躁老哥」分享的暈3D解決方法的介紹,希望能對大家有所幫助。暈3D解決方法介紹遊戲設置方面1、關閉動態模糊2、打開垂直同步3、低解析度+窗口運行尤其是配置相對來說比較低的玩家
  • 《原神》暈3D怎麼辦 暈3D解決方法
    3D的情況哦,這要怎麼解決呢,現在就給大家帶來相關問題的解答內容吧。原神暈3D怎麼辦 方法一:... 原神是一款3D畫面的冒險探索遊戲,3D立體感能夠讓玩家們體驗置身其中的感受,但是也有部分玩家會出現暈3D的情況哦,這要怎麼解決呢,現在就給大家帶來相關問題的解答內容吧。
  • Unity VR全景漫遊
    Unity5.3.1 X64 http://unity3d.com/cn/get-unity/download/archive
  • 《LOL》遊戲黑屏怎麼辦 遊戲黑屏異常問題解決方法
    導 讀 《LOL》遊戲黑屏花屏解決方法介紹。
  • 快玩遊戲盒不能正常使用的解決方法
    玩家下載單機遊戲或是小遊戲的時候,大多使用快玩遊戲盒這類工具,有玩家使用快玩遊戲盒的時候遇到了快玩遊戲盒不能用的情形,這是什麼原因,應該怎麼解決呢?快玩遊戲盒怎麼不能用了?這個問題有好幾個原因都會引起,用戶可以參考以下情形進行排查解決。
  • 遊戲士兵人形角色3D模型Unity遊戲素材資源
    人人素材社區-最專業的CG藝術交流網站今天小生為大家帶來的是遊戲士兵人形角色3D模型Unity遊戲素材資源一說到士兵是不是很快腦海裡就浮現出了反恐精英裡面的畫面想起了裡面的人物甚至想要趕快打開這個遊戲玩上一把呢不要著急哦還是先看看小生推薦的角色模型吧你會有不一樣的收穫哦
  • 《龍珠超宇宙2》PC遊戲問題匯總及解決方法介紹
    導 讀 玩家在體驗龍珠:超宇宙2遇到了許多的問題,今天小編就為大家帶來龍珠:超宇宙2PC遊戲問題匯總及解決方法大全,遇到問題的玩家不要著急,一起來看看吧!
  • 《LOL》遊戲打不開怎麼辦 遊戲打不開異常問題解決方法
    很多小夥伴在玩遊戲中會遇到系統的各式各樣的問題,其中就有一個是無法開始遊戲的問題,這個也是比較常遇到的問題之一了,那麼該怎麼解決呢?很多小夥伴不是很清... 《LOL》很抱歉我們無法開始你的遊戲解決方法介紹。
  • 《未轉變者Unturned》MOD安裝使用流程圖文詳解
    遊戲中大量MOD也是一大特色,但是一些新手很還不知道UnturnedMOD怎麼用,如何安裝MOD,不要著急,下面小編就為大家帶來了UnturnedMOD安裝使用教程,給各位詳細講解MOD的安裝位置以及使用方法,還沒掌握MOD正確使用方法的玩家快來看看吧。
  • 【沙發管家】教你解決電視盒子使用時遇到的問題.
    ,電視盒子總會出現一些問題,今天小編整理了一些電視盒子在使用過程中會遇到的問題,以及最有效的解決方法,新手朋友們趕緊看過來~問題一:指示燈正常,無視頻輸出 解決方法:連接正常的情況下,無視頻輸出,請檢查電視機是否切換到HDMI輸出模式(大部分電視機需要選擇信號源
  • 遊戲藍屏解決方法
    但在使用的過程中也都會遇到這樣或那樣的問題,比如小編今天要說的電腦玩遊戲藍屏怎麼辦呢?下面,就和小編一起來學習一下解決電腦玩遊戲藍屏的方法吧!遊戲藍屏解決方法:1,電腦誤裝了惡意軟體,或者上網時產生的惡意程序導致電腦運行遊戲藍屏的。
  • Unity默認揚聲器模式設定方法教程
    想要做獨立遊戲開發者的小夥伴,大概都會使用unity進行遊戲建模,它的使用方法比較簡單,對於新手來說比較容易上手,但是有一些小地方可能會容易卡住,今天小編就來告訴大家軟體設置默認揚聲器模式的方法吧。
  • 簡化AR體驗創作,Unity MARS Query系統程序化生成場景的原理
    Unity MARS的出現是為了幫助創作者們製作可適應環境的AR內容,我們希望解決AR開發者們面臨的幾個主要問題
  • 《三國志14》卡頓怎麼解決?卡頓問題解決方法介紹
    三國志14卡頓怎麼解決?遊戲當日發售玩家遇到了各種問題,尤其是卡頓,有些玩家不知道怎麼處理,在官方修復前,這裡給大家帶來了一個暫時的應對方案,一起來看下這篇三國志14卡頓問題解決方法介紹吧。遊戲當日發售玩家遇到了各種問題,尤其是卡頓,有些玩家不知道怎麼處理,在官方修復前,這裡給大家帶來了一個暫時的應對方案,一起來看下這篇三國志14卡頓問題解決方法介紹吧。
  • 《超獵都市》公測已知問題怎麼解決 公測已知問題解決方法匯總
    導 讀 超獵都市公測已知問題解決方法匯總 超獵都市已經在7月13日公測,公測後很家在遊戲中遇到了各種各樣的問題