애니메이션은 게임엔진의 주요 기능중 하나입니다.
godot에선 AnimaionPlayer, AnimationTree
이 두개의 강력한 노드의 조합으로 다양한 애니메이션을 커버할 수 있습니다.
단순한 애니메이션 구현
Section titled “단순한 애니메이션 구현”단순한 어떠한 동작을 실행하고싶다면 AnimatedSprite2D노드만으로도 충분한 경우가 많습니다.
노드를 추가하고 해당 노드에 포커스하면 하단에 SpriteFrames 탭이 생기고, 스프라이트 애니메이션을 편집할 수 있습니다.
auto play, loop 등의 기능버튼이 있어서 상황에 따라 사용하기 편리합니다.
AnimationPlayer
Section titled “AnimationPlayer”AnimatedSprite2D노드만으로 부족하다면 AnimaionPlayer노드를 활용하세요
다른 노드 대부분의 프로퍼티를 조작할 수 있게 됩니다.
이 과정에서 AnimatedSprite2D노드에서 생성해둔 애니메이션을 AnimaionPlayer에서
활용하고 싶다면 Animated Sprite to Animation Player Converter 플러그인을 설치하고 사용하세요. 클릭 한번으로 AnimationPlayer노드에 애니메이션들을 추가할 수 있습니다.
AnimationTree
Section titled “AnimationTree”보통 주인공 캐릭터는 idle, move, run, attack, … 등등 여러 애니메이션을 사용해야하고,
애니메이션마다 우선순위, 애니메이션이 끝나고나서 실행되어야할 또 다른 애니메이션 등등
이렇게 복잡한 애니메이션을 구현할땐 AnimationPlayer, AnimationTree를 활용합니다.
AnimationTree에서 각 액션에 대해 BlendSpace를 생성하고, 관계를 생각하여 연결해줍니다.
각 애니메이션 관계에는 방향이 있고, 그 방향에서 Switch Mode, Condition등을 설정하여
어떤 상황에서 애니메이션이 스위칭될건지, 해당 애니메이션이 어떤 Condition을 가졌을때 동작하는지
이름(id)을 설정해줍니다. 여기에서 설정한 id는 아래스크립트처럼 어떤 상황에서 어떤 애니메이션을 실행해야하는지 결정합니다.
animation_tree["parameters/conditions/idle"] = trueanimation_tree["parameters/conditions/walk"] = falseanimation_tree["parameters/conditions/attack"] = falseAnimationTree를 사용했는데 애니메이션이 작동안할때
Section titled “AnimationTree를 사용했는데 애니메이션이 작동안할때”BlendSpace를 사용했다면 연필모양의 버튼을 클릭해서 Blend Path를 그렸는지 확인해주세요.
BlendSpace2D를 사용했다면 Blend Path가 (일반적으로는) 사각형 모양이 나와야합니다.