Spine nodes - kuimoani/defold GitHub Wiki
GUI Spine nodes
κ²μ μ€λΈμ νΈμμ λΏλ§ μλλΌ GUI μ λλ©μ΄μ μμλ μ€νμΈ λ³Έ μ λλ©μ΄μ μ μ¬μ©ν μ μμ΅λλ€. μ΄ λ§€λ΄μΌμ GUI μ¬μμ μ€νμΈ μ λλ©μ΄μ λ°μ΄ν°λ₯Ό μν¬νΈνλ λ°©λ²μ μ€λͺ ν©λλ€.
νμ¬, μ€νμΈ λ Έλλ μ€νμΈ μ΄λ²€νΈλ₯Ό μ§μνμ§ μμ΅λλ€. SpineModel κ²μ μ€λΈμ νΈλ μ λλ©μ΄μ νμλΌμΈμ μ΄λ²€νΈλ₯Ό ν¬ν¨νκ³ κ²μμ€λΈμ νΈμ λ©μΈμ§λ₯Ό μ μ‘ν μ μμ§λ§ μ€νμΈ λ Έλμμλ μ§μλμ§ μμ΅λλ€.
μν¬νΈλ μ€νμΈ λ³Έ μ λλ©μ΄μ (Spine bone animation)μ κ²μ μ€λΈμ νΈ λΏ μλλΌ GUI μ¬μμλ μ¬μ©ν μ μμ΅λλ€(SpineModel μ»΄ν¬λνΈλ₯Ό ν΅ν΄μ). Defoldμμ μ€νμΈ λ³Έ μ λλ©μ΄μ μ λμμν€κΈ° μν΄, λ¨Όμ μ λλ©μ΄μ λ°μ΄ν°λ₯Ό μν¬νΈνκ³ μ€νμΈ μ¬(Spine Scene) 리μμ€λ₯Ό μ€μ ν΄μΌ ν©λλ€. μ΄λ₯Ό μν μ€λͺ μ [Spine animation](Spine animation) λ¬Έμλ₯Ό μ°Έκ³ νμκΈ° λ°λλλ€.
GUI μ¬μμ μ€νμΈ μ¬ λ¦¬μμ€μ 컨ν μΈ λ₯Ό μ¬μ©νλ €λ©΄, Outline μ°½μ Spine Scenes ν΄λμ λ§μ°μ€ μ€λ₯Έμͺ½ λ²νΌμ λλ € Add Spine Scene λ©λ΄λ₯Ό μ ννκ³ μ¬μ©νλ €λ μ€νμΈ μ¬μ μ νν©λλ€.


μ΄μ μ€νμΈ λ Έλλ₯Ό λ§λ€λ©΄(Outline μ°½μ Nodes ν΄λμ λ§μ°μ€ μ€λ₯Έμͺ½ λ²νΌ λλ₯΄κ³ Add Spine Node μ ν) κ·Έμ λ°λ₯Έ μ μ€νμΈ λ Έλμ νλ‘νΌν°λ€μ μ€μ ν μ μμ΅λλ€.

Spine Scene
μ΄ λ Έλμ λ°μ΄ν° μμ€λ‘ μ¬μ©ν μ€νμΈ μ¬
Spine Default Animation
μ¬μ΄ μ΄κΈ°ν λ λ μλμ μΌλ‘ μ¬μν μ λλ©μ΄μ
Skin
μ¬μ΄ μ΄κΈ°ν λ λ μ λλ©μ΄μ μ μ¬μ©ν μ€ν¨
Runtime animation control
μ€νμΈ λ Έλλ μ€ν¬λ¦½νΈλ₯Ό ν΅ν΄ λ°νμμ μ μ΄ν μ μμ΅λλ€. λ Έλμμ μ λλ©μ΄μ μ μμνλ €λ©΄ gui.play_spine() ν¨μλ₯Ό νΈμΆνκΈ°λ§ νλ©΄ λ©λλ€.
local catnode = gui.get_node("cat_note")
local blend_time = 0.3
gui.play_spine(catnode, hash("run"), gui.PLAYBACK_ONCE_FORWARD, blend_time, function(self, node)
print("Animation done!")
end)
The bone hierarchy
μ€νμΈ μ€μΌλ ν€μμ λΌ κ°κ°μ GUI λ Έλλ‘ μ‘΄μ¬νκ² λ©λλ€. μ΄ λ Έλλ€μ μ€νμΈ μ€μ μμ μ§μ λ μ΄λ¦μ λ°λΌ μ§μ΄μ§λλ€.

μλ₯Ό λ€μ΄, μ΄λ€ λ Έλλ₯Ό λ€λ₯Έ λ³Έ λ Έλμ μ°κ²°νλ €λ©΄, gui.get_spine_bone() λ₯Ό μ¬μ©νμ¬ νμμ λ³Έ λ Έλλ₯Ό μ΄λ¦μΌλ‘ μ‘°νν΄μ μμ λ Έλλ‘ μ°κ²°ν μ μμ΅λλ€.
-- text λ
Έλλ₯Ό catμ tailμ μ°κ²°ν¨
local cat = gui.get_node("cat_node")
local textnode = gui.new_text_node(vmath.vector3(400, 0, 0), "Hello tail!")
local tail = gui.get_spine_bone(cat, "tail")
gui.set_parent(textnode, tail)
λν λͺ¨λ λ³Έμ μ€νμΈ λ Έλμ μ΄λ¦κ³Ό "/"λ₯Ό μ λμ΄λ‘ μ¬μ©νμ¬ go.get_node() λ‘ μ κ·Ό κ°λ₯ν©λλ€.
-- text λ
Έλλ₯Ό catμ tailμ μ°κ²°ν¨
local textnode = gui.new_text_node(vmath.vector3(400, 0, 0), "Hello tail!")
local tail = gui.get_node("cat_node/tail")
gui.set_parent(textnode, tail)