position 값을 변경시켜서 위아래로 움직이는 간단한 shake 애니메이션을 만들었는데,

여러 불편한 점이 생김..


1. position은 부모에 상대적인 위치로만 설정 가능 (즉, 현재 position에 상대적인 게 아니고 부모 기준 (0, 0)으로부터의 상대적 위치..)

현재 position 기준으로 shake 하게 하고 싶으면 쓸데없이 부모 노드를 하나 추가하든가, 코드로 손봐야 함.


2. AnimationPlayer를 코드 상에서 생성한 뒤 Animation을 붙여주려고 하는데,
뭔 animation library가 필요하대? 그래서 하라는 대로 library를 만들어줌. 여기까지만 해도 괜찮았음.. 그런데..

var anime = AnimationPlayer.new()

pot.add_child(anime)

var library := load("res://animations/plant_animations.res") as AnimationLibrary

anime.add_animation_library("plant_animations", library)

print(anime.get_animation_list())

anime.play("plant_animations/shake")


위 코드에서 볼 수 있듯이, library를 load해서 쓰는 것도 뭔가 별로인데
library를 add하려면 이름도 지정해줘야 된다네? 전에 이미 library를 생성할 때 저장을 위해서 "plant_animations" 라는 이름을 붙여줬음에도 불구하고
또 이름을 붙여야 된다니(물론 당연히 일반 파일명하고 변수명은 별개긴 하지. 근데 애초에 만든 library 변수를 저장하기 위해 -> 파일로 저장 -> 근데 또 불러오기 위해 변수명을 지정.. 하는 이 일련의 단계가 비효율적인 것 같음).. 그냥 어딘가에 전역변수처럼 저장되어서 바로 불러올 수 있게 하는 방법은 없는 건가..
(Global 저장 어쩌구 하는 문구가 보이긴 하는데 대체 어떻게 저장하고 불러오는지를 모르겠음;; 저장하는 순간 global하지 않게 되는 것 같은데.. 뭐지..)


하튼 질문을 정리하자면..

1. shake animation을 만들고 싶은데, 현재 위치 기준으로 shake하려면 '빈 부모 노드 추가' 또는 '코드로 처리' 하는 것 말고는 방법이 없나?

2. animation library를 손쉽게 불러온 뒤 Animation player에 연결시키는 법은 없을까?
아니 애초에 Animation player에 animation을 추가해서 재생시키려면 위 방법 밖에 없는 건가..?

잘 아시는 분 답변 해주시면 감사.. 검색을 해도 잘 안 나오니까 어렵네..