主要流程就是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中設定好動畫演出,
就可以讓角色產生攻擊判定了。
參照影片,現在角色的攻擊動作,就有對應的攻擊判定了。
沒有留言:
張貼留言