Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
애니메이션 트리
이 페이지는 기본 속성 트랙 위에 Godot의 애니메이션 플레이어 노드에 사용할 수 있는 트랙 유형에 대한 개요를 제공합니다.
더 보기
속성 트랙을 포함하여 기본 사항을 다루는 :ref:`doc_introduction_animation`를 이미 읽었다고 가정합니다.
속성 트랙
가장 기본적인 트랙 유형입니다. :ref:`doc_introduction_animation`를 참조하세요.
위치 3D / 회전 3D / 3D 트랙 크기 조정
이러한 3D 변환 트랙은 3D 개체의 위치, 회전 및 크기를 제어합니다. 일반 속성 트랙을 사용하는 것에 비해 3D 개체의 변형에 애니메이션을 적용하는 것이 더 쉽습니다.
외부 3D 모델에서 가져온 애니메이션용으로 설계되었으며 압축을 통해 리소스 용량을 줄일 수 있습니다.
블렌드 모양 트랙
블렌드 모양 트랙은 :ref:`MeshInstance3D <class_MeshInstance3D>`의 블렌드 모양 애니메이션에 최적화되어 있습니다.
외부 3D 모델에서 가져온 애니메이션용으로 설계되었으며 압축을 통해 리소스 용량을 줄일 수 있습니다.
호출 메서드 트랙
호출 메서드 트랙을 사용하면 애니메이션 내에서 정확한 시간에 함수를 호출할 수 있습니다. 예를 들어 ``queue_free()``를 호출하여 사망 애니메이션이 끝날 때 노드를 삭제할 수 있습니다.
참고
호출 메서드 트랙에 배치된 이벤트는 안전을 위해 편집기에서 애니메이션을 미리 볼 때 실행되지 않습니다.
편집기에서 이러한 트랙을 생성하려면 "트랙 추가 -> 메서드 트랙 호출"을 클릭하세요. 그런 다음 창이 열리고 트랙과 연결할 노드를 선택할 수 있습니다. 노드의 메서드 중 하나를 호출하려면 타임라인을 마우스 오른쪽 버튼으로 클릭하고 "키 삽입"을 선택하세요. 사용 가능한 방법 목록이 포함된 창이 열립니다. 하나를 두 번 클릭하여 키프레임 만들기를 마칩니다.
메서드 호출이나 해당 인수를 변경하려면 키를 클릭하고 검사기 도크로 이동하세요. 거기서 통화 방법을 변경할 수 있습니다. "Args" 섹션을 확장하면 편집할 수 있는 인수 목록이 표시됩니다.
코드를 통해 이러한 트랙을 생성하려면 대상 메서드의 이름과 매개변수가 포함된 사전을 ``Animation.track_insert_key()``의 ``key``에 대한 변형으로 전달합니다. 키와 예상 값은 다음과 같습니다.
열쇠 |
값 |
|---|---|
메서드 |
새 클래스의 이름(C#에서만 사용). |
|
함수에 ``Array``로 전달할 인수 |
# Create a call method track.
func create_method_animation_track():
# Get or create the animation the target method will be called from.
var animation = $AnimationPlayer.get_animation("idle")
# Get or create the target method's animation track.
var track_index = animation.add_track(Animation.TYPE_METHOD)
# Make the arguments for the target method jump().
var jump_velocity = -400.0
var multiplier = randf_range(.8, 1.2)
# Get or create a dictionary with the target method's name and arguments.
var method_dictionary = {
"method": "jump",
"args": [jump_velocity, multiplier],
}
# Set scene-tree path to node with target method.
animation.track_set_path(track_index, ".")
# Add the dictionary as the animation method track's key.
animation.track_insert_key(track_index, 0.6, method_dictionary, 0)
# The target method that will be called from the animation.
func jump(jump_velocity, multiplier):
velocity.y = jump_velocity * multiplier
// Create a call method track.
public void CreateAnimationTrack()
{
// Get reference to the AnimationPlayer.
var animationPlayer = GetNode<AnimationPlayer>("AnimationPlayer");
// Get or create the animation the target method will be called from.
var animation = animationPlayer.GetAnimation("idle");
// Get or create the target method's animation track.
var trackIndex = animation.AddTrack(Animation.TrackType.Method);
// Make the arguments for the target method Jump().
var jumpVelocity = -400.0;
var multiplier = GD.RandRange(.8, 1.2);
// Get or create a dictionary with the target method's name and arguments.
var methodDictionary = new Godot.Collections.Dictionary
{
{ "method", MethodName.Jump },
{ "args", new Godot.Collections.Array { jumpVelocity, multiplier } }
};
// Set scene-tree path to node with target method.
animation.TrackSetPath(trackIndex, ".");
// Add the dictionary as the animation method track's key.
animation.TrackInsertKey(trackIndex, 0.6, methodDictionary, 0);
}
// The target method that will be called from the animation.
private void Jump(float jumpVelocity, float multiplier)
{
Velocity = new Vector2(Velocity.X, jumpVelocity * multiplier);
}
베지어 곡선과 경로
베지어 곡선 트랙은 베지어 곡선을 사용하여 속성 값에 애니메이션을 적용할 수 있다는 점을 제외하면 속성 트랙과 유사합니다.
참고
베지어 곡선 트랙과 속성 트랙은 AnimationPlayer 및 :ref:`AnimationTree <class_AnimationTree>`에서 혼합할 수 없습니다.
트랙을 만들려면 "트랙 추가 -> 베지어 곡선 트랙"을 클릭하세요. 속성 트랙과 마찬가지로 노드 및 애니메이션할 속성을 선택해야 합니다. 베지어 곡선 편집기를 열려면 애니메이션 트랙 오른쪽에 있는 곡선 아이콘을 클릭합니다.
편집기에서 키는 채워진 다이아몬드와 선 제어 곡선의 모양으로 연결된 윤곽선 다이아몬드로 표시됩니다.
팁
곡선을 수동으로 작업하는 동안 정밀도를 높이기 위해 편집기의 확대/축소 수준을 변경할 수 있습니다. 편집기 오른쪽 하단에 있는 슬라이더를 사용하여 시간 축을 확대 및 축소할 수 있으며, :kbd:`Ctrl + Shift + 마우스 휠`을 사용하여 확대/축소할 수도 있습니다. :kbd:`Ctrl + Alt + 마우스 휠`을 사용하면 Y축이 확대 및 축소됩니다.
핸들이 아닌 키프레임이 선택된 동안 편집기의 오른쪽 클릭 패널에서 핸들 모드를 선택할 수 있습니다.
자유: 다른 위치에 영향을 주지 않고 임의의 방향으로 조작기의 방향을 지정할 수 있습니다.
선형: 매니퓰레이터의 회전을 허용하지 않고 선형 그래프를 그립니다.
균형: 조작기가 함께 회전하도록 하지만 키와 조작기 사이의 거리는 미러링되지 않습니다.
미러링: 키까지의 거리를 포함하여 한 조작기의 위치가 다른 조작기와 완벽하게 대칭되도록 만듭니다.
오디오 재생 트랙
오디오가 포함된 애니메이션을 생성하려면 오디오 재생 트랙을 생성해야 합니다. 이를 만들려면 씬에 AudioStreamPlayer, AudioStreamPlayer2D 또는 AudioStreamPlayer3D 노드가 있어야 합니다. 트랙을 생성할 때 해당 노드 중 하나를 선택해야 합니다.
애니메이션에서 사운드를 재생하려면 파일 시스템 도크에서 오디오 파일을 애니메이션 트랙으로 끌어다 놓습니다. 트랙에서 오디오 파일의 파형을 볼 수 있습니다.
애니메이션에서 사운드를 제거하려면 사운드를 마우스 오른쪽 버튼으로 클릭하고 "키 삭제"를 선택하거나 사운드를 클릭하고 Del 키를 누르세요.
블렌드 모드를 사용하면 :ref:`AnimationTree <class_AnimationTree>`에서 블렌딩할 때 오디오 볼륨을 조정할지 여부를 선택할 수 있습니다.
AnimationPlayer
애니메이션 재생 트랙을 사용하면 씬에서 다른 애니메이션 플레이어 노드의 애니메이션을 시퀀스할 수 있습니다. 예를 들어 컷-씬에서 여러 문자에 애니메이션을 적용하는 데 사용할 수 있습니다.
애니메이션 재생 트랙을 생성하려면 "새 트랙 -> 애니메이션 재생 트랙"을 선택하세요.
그런 다음 트랙과 연결하려는 애니메이션 플레이어를 선택합니다.
트랙에 애니메이션을 추가하려면 해당 트랙을 마우스 오른쪽 버튼으로 클릭하고 키를 삽입하세요. Inspector Dock에서 애니메이션을 선택하려면 방금 생성한 키를 선택하세요.
애니메이션이 이미 재생 중이고 일찍 중지하려면 키를 생성하고 검사기에서 `[STOP]`로 설정하면 됩니다.
참고
애니메이션 플레이어가 포함된 씬을 씬에 인스턴스화한 경우 해당 애니메이션 플레이어에 액세스하려면 씬 트리에서 "편집 가능한 자식 노드"를 활성화해야 합니다. 또한 애니메이션 플레이어는 자신을 참조할 수 없습니다.