系列目錄
【Unity3D基礎】讓物體動起來①--基於UGUI的鼠標點擊移動
【Unity3D基礎】讓物體動起來②--UGUI鼠標點擊逐幀移動
時光煮雨 Unity3D讓物體動起來③—UGUI DoTween&Unity Native2D實現
時光煮雨 Unity3D實現2D人物動畫① UGUI&Native2D序列幀動畫
時光煮雨 Unity3D實現2D人物動畫② Unity2D 動畫系統&資源效率
時光煮雨 Unity3D實現2D人物動畫② Unity2D 動畫系統&資源效率
前言
上篇提到的引用的“圖片切換法”,以及這篇要講的“圖片截取法”(這兩個說法都是引用的大牛深藍色右手的原話),實際上序列幀動畫的本質就是定時器,已經反復強調過了。這里“圖片切換法”和“圖片截取法”主要是針對紋理資源的獲取途徑方式來划分的,主要原因還是渲染效率的問題,如果會寫網頁的同學也一定都知道有CSS有一種Sprite雪碧技術,就是把松散的小圖合並成一張大圖來減少網絡請求數,這里原理是可以類比的。實際上在Unity3D中這個問題已經很好的解決了,這也是本文的一個主題。
本文的兩個主題分別是
一、使用Animation編輯器實現2D人物序列幀動畫
二、Unity3D中2D資源的優化工具簡介
效果圖
實現
一、使用Animation編輯器實現2D人物序列幀動畫
這里由於方面的教程很多,所以這里也就是點到為止,記錄關鍵點和關鍵部分,需要學習的朋友自己按照其它教程實現一遍自然明白,這里就不用浪費口舌了。
A、制作素材,這里直接引用深藍的原話了
准備工作:這里我以創建主角向右方向施法動畫為例。首先需要將10幀150*150的圖片通過Photoshop或其他方式合成為一張1500*150的大圖,如下圖:
從圖上可以很清晰的看出主角的整個流暢的施法流程。接着,我將該文件取名叫PlayerMagic.png保存。還記得上篇引用的文字嗎,個人覺得挺贊的 (因為是提取的素材,初始寬和高是不均衡值,所以必須擴大成自己的需求,這樣人物會在圖片中居中,並且為后期加入武器或坐騎留好余地。稍微的偏離也可以在后期進行微調)
紅字部分覺得比較贊的。將該圖導入到Unity3d中(很多種方法拖拽即可)
B、使用Sprite Editor工具(點擊Project下的圖片)進行分割,這里有了A的上下文思想,所以個人覺得使用靜態分割是比較合理的,圖片素材由美工或者自己按照規格調好,符合單一原則,以下是截圖
C、使用Animation工具窗口,制作序列幀動畫即可(其實我覺得有點像關鍵幀動畫不知道為什么叫序列幀),這里需要注意的就是制作動畫必須選中GameObject(也是Animation工具必須的)這樣動畫控制組件和動畫就自動掛接綁定到了選中的GameObject上,
兩個關鍵點:
1、移動關鍵幀的時候,可以使用滾輪放大時間線,然后逐個拖拽(感覺不是很方便,不知道有沒有更方便的方法)
2、注意調節采樣率已達到最好的顯示效果
二、Unity3D中2D資源的優化工具簡介
實際我們通過一,已經介紹了一個紋理分割的工具Sprite Editor了,下面還有一個工具,就是針對上篇中的非組合打包的圖片,Unity3d也提供了一個工具,叫做sprite Packer,使用很簡單了(注意下圖紅圈即可),主要的疑問是性能的提高的效果,這里就需要介紹Unity3d 性能查看工具了,但是發現Unity3d 5.x以后和很多教程上顯示的不一樣(可能是更新了,這里先不深究以后慢慢研究了)
總結
萬里長征第二步終於完成了,沒有什么好說的,簡單還是簡單。