//skeletondata
skeletonanimation skeletonanimation = getcomponent();
debug.log(skeletonanimation.name);//獲取角色名
debug.log(skeletonanimation.skeleton.bones[5].tostring()); //獲取所有骨骼陣列list
debug.log(skeletonanimation.skeleton.slots[5].tostring());//獲取所有插槽數組
debug.log(skeletonanimation.skeleton.data.animations[0].name.tostring());//獲取所有動畫陣列
skeletonanimation.skeleton.findbone("root").flipx = true;//根據骨骼名獲取骨骼
debug.log(skeletonanimation.skeleton.findboneindex("root").tostring());//根據骨骼名獲取骨骼的index
debug.log(skeletonanimation.skeleton.findslot("torso").attachment.name);//根據slot名獲取slot
debug.log(skeletonanimation.skeleton.findslotindex("torso").tostring());//根據slot名獲取slot index
debug.log(skeletonanimation.skeleton.data.findanimation("walk").name);//根據動畫名獲取動畫
//skin
debug.log(skeletonanimation.skeleton.data.skins[0].name.tostring());//獲取所有 skin
spine.attachment _attachment = skeletonanimation.skeleton.data.skins[0].getattachment(5,"left lower leg");//從skin通過slot的index attachment的名獲取attachment
//bonedata
spine.bone _bone = skeletonanimation.skeleton.findbone("left upper leg");
debug.log(_bone.parent.tostring());//獲取骨骼的父骨骼
debug.log(_bone.data.length.tostring());//獲取骨骼長度
debug.log(_bone.rotation.tostring());//獲取骨骼旋轉
debug.log(_bone.data.scalex.tostring());//獲取骨骼放縮
debug.log(_bone.data.scaley.tostring());
debug.log(_bone.data.inheritrotation.tostring());// 是否旋轉值相對父骨骼 true是相對父骨骼
debug.log(_bone.data.inheritscale.tostring());//是否放縮值相對父骨骼 true是相對父骨骼
//slotdata
spine.slot _slot = skeletonanimation.skeleton.findslot("torso");
debug.log(_slot.data.name);//獲取slot的名字
debug.log(_slot.data.bonedata.name);//獲取slot掛靠的bone
debug.log(_slot.r.tostring());//獲取slot的顏色r值
debug.log(_slot.data.attachmentname);//獲取pose下slot的attachment名
_slot.data.additiveblending = true;//獲取或設定slot時候用additive blending來渲染 注釋:用於特效?
//animation
debug.log(skeletonanimation.skeleton.data.animations[0].duration.tostring());//動畫持續時間?
list_timeline = skeletonanimation.skeleton.data.animations[0].timelines;//獲取動畫timeline
//skeleton
spine.skeletondata _data = skeletonanimation.skeleton.data;//獲取skeletondata
debug.log(_data.bones[0].tostring()); //獲取所有骨骼
debug.log(_data.slots[0].tostring());//獲取所有slots
debug.log(skeletonanimation.skeleton.draworder[0].attachment.name);//獲取所有drawoder
debug.log(skeletonanimation.skeleton.skin.name);//獲取當前skin名
skeletonanimation.skeleton.r = 0.5f;//對skin的整體偏色 有rgba四個引數
debug.log(skeletonanimation.skeleton.time.tostring());//?
skeletonanimation.skeleton.flipx = true;//skeleton翻轉軸向
skeletonanimation.skeleton.flipy = true;
skeletonanimation.skeleton.x = 0;//skeleton的座標
skeletonanimation.skeleton.y = 0;
skeletonanimation.skeleton.setbonestosetuppose();
skeletonanimation.skeleton.setslotstosetuppose();
skeletonanimation.skeleton.settosetuppose();
獲取getattachment
skeletonanimation.skeleton.update(0.5f);//??
--換裝函式,但是必須在slot裡有這個attachment名
skeletonanimation = getcomponent(); skeletonanimation.skeleton.setattachment("rear_upper_arm","muzzle"); skeletonanimation.skeleton.getattachment();
--動畫翻轉
if(x > 0) skeletonanimation.skeleton.flipx = false;
else if(x < 0) skeletonanimation.skeleton.flipx = true;
skeletonanimation.state.setanimation(0, hitanimation, false); skeletonanimation.state.addanimation(0, currentanimation, true, 0);
注:(起始幀,動畫名,是否loop)
//角色之間的繪製排序
renderer.sortingorder = -5;
在unity中使用spine動畫
可以使用spine製作骨骼動畫來給unity使用。spine提供了unity執行包。執行包的版本一定要和spine版本一致,不然會報錯。匯入spine動畫 由spine匯出的動畫檔案有3個 xx.atlas,xx.json,xx.png。將這三個檔案直接匯入unity會報錯,將xx.atlas改為x...
Unity使用spine製作換裝系統
換裝系統很簡單,無非把握好兩點 1.對資料的處理。2.熟悉api。無論是spine還是龍骨亦或者是unity自帶的骨骼動畫系統皆是如此。熟悉api最快的方式就是看官方給的demo,了解常用的api即可。下面大致介紹下我用spine實現換裝的內容。換裝一般用到的是區域性換裝和整套換裝,區域性的話切換插...
Spine變色動畫在unity中失效的問題
最近美術同事做spine變色動畫的時候開啟了tint black選項來做顏色過渡變化的效果。但是到了程式這邊在unity中顯示的是灰度,沒有顏色變化。說白了就是改變spine材質的shader。預設情況下拖入到unity中是spine skeleton。如果spine動畫中開啟了tint black...