2017年6月18日 星期日

[Spine][Unity][筆記]使用Spine製作2D遊戲攻擊判定

如題,最近剛好試到這個功能,作個簡略的筆記,操作的細節就不多提了。

主要流程就是Spine提供功能,可以圈選出一個區域,
匯入Unity後,便可透過某些方式自動產生一個會跟著bone的polygon collider。

Step 1. 在Spine中設定bounding box


如上圖,在想要綁定bounding box的bone上新增一個socket,
在socket中新增bounding box。

Step 2. 在Spine動畫模式中控制bounding box產生跟消失的時機


攻擊判定只有在攻擊瞬間才為出現,
所以需在動畫模式決定bounding box產生跟消失的時機

Step 3. 輸出Spine資料匯入Unity

略

Step 4. 在Unity 用spine骨架資料產生game object A,並建立一個子game object B附加於A

略,另外做一個game object的原因後面會提

Step 5. 在B上新增Bounding Box Follower,並且選定對應的骨架資料與socket















如圖,把上圖SpineAnimationSide1當作A,BB_Side1_FrontFoot當作B,
在B中新增Bounding Box Follower Component,
便可選擇要指定骨架跟Socket,
可以看到上圖的下拉式選單中,沒bounding box的socket都反白沒得選。

上述動作還會自動幫增加rigidbody 2D還有polygon collider 2D兩個component,

若是在A上增加Bounding Box Follower Component,會有提示訊息要使用者另外新增在B上,
就我自己理解,在我們製作攻擊判定的case中,
可能不會希望攻擊判定的碰撞效果,佔用A的rigidbody,
影響到原來角色A的各種行為(例如移動),
所以會變成另外產生一個B,讓碰撞判定有自己的設定。

Step 6. 在B上新增Bone Follower,並選擇對應的bone


只做Step5碰撞體還不會跟著動,要讓它跟著骨頭才行。
所以需要新增bone follower並選定對應的bone。

上述事情做完後,再寫腳本於OnTriggerEnter2D中設定好動畫演出,
就可以讓角色產生攻擊判定了。





參照影片,現在角色的攻擊動作,就有對應的攻擊判定了。






沒有留言:

張貼留言