1. 程式人生 > >在unity中使用spine動畫

在unity中使用spine動畫

原文地址:

https://my.oschina.net/yizhangxyz/blog/717611

可以使用spine製作骨骼動畫來給unity使用。spine提供了unity執行包。執行包的版本一定要和spine版本一致,不然會報錯。

匯入spine動畫:

由spine匯出的動畫檔案有3個:xx.atlas,xx.json,xx.png。將這三個檔案直接匯入unity會報錯,將xx.atlas改為xx.atlas.txt,這時會自動生成xx_Atlas.asset,xx_Material.mat。然後在unity裡面create spine SkeletonData,指定xx_Atlas.asset和xx.json。就可以用SkeletonData生成動畫了。

控制動畫播放:

SkeletonAnimation skeletonAnimation;   //gameobject的component。
Spine.AnimationState spineAnimationState = skeletonAnimation.state;
Spine.Skeleton skeleton;

spineAnimationState.SetAnimation(0, animationName, true);

切換動畫的bug:

由於spine在切換動畫的時候自動補償,用於動畫的平穩過度。但是會導致殘影等bug,這時候需要在SetAnimation前呼叫
skeletonAnimation.skeleton.SetToSetupPose ();
spineAnimationState.ClearTracks ();
來消除前一個動畫的影響。

新增事件:

skeletonAnimation.state.Start:開始播放
skeletonAnimation.state.End:動畫被清除或者中斷
skeletonAnimation.state.Interrupt:動畫被打斷
skeletonAnimation.state.Complete:播放結束
skeletonAnimation.state.Event:使用者自定義事件

事件設定採用lambda表示式:

skeletonAnimation.state.Complete += (state, trackIndex,loopCount) => {
            Debug.log("");
        };

動態獲取slot的座標:
Vector3 pos = skeletonAnimation.skeleton.FindSlot("hat_1").Bone.GetWorldPosition(transform);

相關推薦

關於Unity新版動畫系統的使用

鼠標右鍵 情況 結構 del 查看 ons 控制器 控制 body Mecanim動畫 1:舊版動畫系統只能通過代碼來控制動畫播放,隨著動畫種類變多,代碼復雜度也會增加,同時動畫過渡也需要非常繁瑣的代碼控制,為了讓有經驗的動畫師開發動畫,unity推出了針對人物角色的Mec

Unity動畫系統和Timeline(1) 普通動畫建立

學習使用版本:Unity2017.1.1 目標:給一個Cube建立動畫 一:第一種建立方法 1 Windows —— Animation,開啟Aniamtion動畫介面,此時顯示 因為此時沒有任何動畫,需要我們建立 2 此時,在這個介面,選中Cube,點

Unity動畫系統和Timeline(4) AvatarMask和IK動畫

AvatarMask(骨骼遮罩) 在前面角色動畫的基礎上,角色在奔跑過程中撿起一塊木頭,雙手要抱著這塊木頭。如果使用前面的方法,直接切換動畫,那麼就只剩下抱木頭的動畫,其它動畫就沒了。這時我們要使用下面的方法。 在這裡建立新的一層,在這個新的層上控制抱木頭的動畫。

unity使用spine動畫

原文地址: https://my.oschina.net/yizhangxyz/blog/717611 可以使用spine製作骨骼動畫來給unity使用。spine提供了unity執行包。執行包的版本一定要和spine版本一致,不然會報錯。 匯入spine動畫: 由spin

Spine動畫Unity的改變顏色

今天發現一個Bug: 在修改 Spine 在Unity 中的例項 Skeleton 的顏色時,   通過 MeshRenderer.material.color = _TwinkleColor;            來實現, 發現它,會自己改變回復顏色,這不是我想要的

關於在unity使用序列幀動畫

atime highlight ++ switch ati 是你 一秒 tor 報錯 //動畫數組 public object[] anim; //限制一秒多少幀 public float fps = 30; //幀序列 priv

談談Spine動畫在產品的應用

spa 動畫播放 quic soft -m ima microsoft roo body 筆者介紹:姜雪偉,IT公司技術合夥人。IT高級講師,CSDN社區專家,特邀編輯,暢銷書作者,國家專利發明人;已出版書籍:《手把手教你架

unity多個門的開關動畫保持獨立性

eno date cast ray nsf color input plan wak List<Animation> storeAnimation; public void Awake() { storeAnimation = new Li

Unity獲取Animator動畫片段的時長

sta bre 分享圖片 個數 watermark str size .get 開發 開發環境:Unity5.6.2 private Animator animator; public void GetLengthByName(string name) { floa

骨骼動畫的原理及在Unity的使用

製作骨骼動畫 我們看看這幾步操作後,我們得到了那些資料: 1.每個面板頂點的初始世界座標。 2.每個骨骼關節頂點的初始世界座標。 3.每個頂點被骨骼頂點的影響資訊。 4.骨骼如何移動。 骨骼動畫原理 核心: 通過骨骼帶動面板運動,也就是通過骨骼的移動動態計算mesh上的點的位置 過程: 1.將mesh上的點

unity判斷當前播放的動畫是不是指定的動畫

 判斷當前播放的動畫是不是指定的動畫:animator.GetCurrentAnimatorStateInfo(0).IsName("Base Layer.Attack1")注意Name的寫法,Sta

unity狀態機動畫不能播放的問題

可能原因: (1)動畫沒有設定為 loop 。 (2)Animator 中 沒有指定 Animator Controller。 (3)狀態機中的 Animation 的 Motion 為 None,如下: 有時在狀態機建立好了,並且 animation都已經匯入了

Unity spine動畫的遮罩

我的前面部落格的角色鑑賞介面,人物的切換,也就是spine動畫的解決 spine動畫大家不會的話可以去官網看,怎麼弄 關於spine動畫遮罩我目前能解決的辦法就是用UGUI解決,或者你用UGUI和NGUI混合使用 主要遮罩功能是UGUI實現的 遮罩

unity基礎開發----unity的UV動畫實現程式碼

在unity有時候需要使用UV動畫,程式碼如下using UnityEngine; using System.Collections; public class UVAnimation : MonoBehaviour { public int ScrollSpe

unity 帶貼圖以及動畫的模型檔案轉為 lowpoly 風格的方法

本篇講述的是使用程式碼來修改的方法,其實unity已經給我們提供了設定的方法:Normals選擇Calculate,Smoothing Angle調整為0即可。原文章中主要是沒有提到UV以及骨骼與定點的繫結方法。由於實現lowpoly的風格其實就是將原來的1個點複製為多個點,

unity 使用三種簡單的方式實現實時時鐘動畫

目標 這非常容易實現。你需要寫幾行程式碼就可以實現了。在這篇文章中,我們將實現兩種動畫方式。 效果圖 數字時鐘型別 模擬時鐘型別 在開始編碼之前,我想要告訴你一些下面會用到的關於 unity 的知識。 什麼是材質 在 unit

關於Unity的新手編碼技巧

編輯器 展開 解決 編譯 出錯 怎麽辦 查看 代碼 寫代碼 寫代碼遇到報錯,問題怎麽辦?怎麽查看unity代碼的接口?函數參數不記得了怎麽辦? 解決方法: 1.選擇不懂的函數或類,按F12,跳轉到代碼的定義,自己去看就可知道了。 2.有的時候,選擇一個函數,按F12想跳轉去

Unity SLua 如何調用UnityC#方法

都差不多 public title 接口 如何 1.原理就是通常在Lua框架中所說的,開放一個C#的web接口,或者叫做在Slua框架中註冊函數。2.作用在Lua中調用C#中的方法,這個是在做熱更新中很常用的一種方法,無論是slua,還是lua,都差不多、這

關於Unity的幾何體

模式 mob 繪制 反射 mod 選擇 and tex 足球場 一、創建幾何體的類型 1: 創建平面 Plane;2: 創建立方體 Cube;3: 創建球體 Sphere;4: 創建膠囊體 Capsule;5: 創建圓柱體 Cylinder;6: 3D文字 3D text;

Unity3D Generic 動畫導入設置和 Root Motion 之間的關系

出現 efi 主題 之前 理解 就會 runt 設置 clip Unity3D 的 Mecanim 動畫系統可以直接復用 3DS MAX 中制作的動畫文件中的位移,這個就是通過 applyRootMotion 來達成的,我們只需要在使用 Animator 控制動畫播放的同時