반응형
- 애니메이션 기초
애니메이션은 게임 개발에서 물체의 움직임을 부드럽게 표현하기 위한 중요한 개념입니다. Unity에서는 Animator 컴포넌트를 통해 오브젝트의 애니메이션을 제어합니다. 아래는 Unity에서의 애니메이션 기초에 대한 간단한 설명입니다.
1. Animator 컴포넌트:- 추가 방법:
- Unity 에디터에서 오브젝트를 선택한 후, 상단 메뉴에서 "Window" > "Animator"를 선택하여 Animator 창을 열 수 있습니다.
- Animator 창에서 "Create" 버튼을 사용하여 Animator 컴포넌트를 생성합니다.
- 추가 방법:
- Animator 창에서 "Add Property" 버튼을 클릭하여 애니메이션을 만들고자 하는 속성을 선택합니다. (예: Transform의 Position, Rotation 등)
- 이후 "Add Curve"를 통해 해당 속성의 애니메이션 클립을 생성합니다.
- 상태(State):
- Animator 창에서 "Animator" 창 상단의 "Layer" 영역에서 상태를 추가하고 설정합니다.
- 각 상태는 특정 애니메이션 클립과 관련됩니다.
- 전환(Transition):
- Animator 창에서 상태 간의 전환을 설정합니다.
- 전환 조건을 설정하여 특정 조건이 충족될 때 다른 상태로 전환될 수 있습니다.
- 추가 방법:
- Animator 창에서 "Parameters" 영역에서 파라미터를 추가합니다. (Bool, Float, Int 등)
- 스크립트에서 이 파라미터 값을 변경하여 애니메이션을 제어할 수 있습니다.
- 애니메이션을 스크립트로 제어하려면 Animator 컴포넌트의 인스턴스를 스크립트에서 참조하여 파라미터 값을 변경하거나 특정 애니메이션을 트리거할 수 있습니다.
using UnityEngine; public class AnimationController : MonoBehaviour { private Animator animator; void Start() { // Animator 컴포넌트 참조 animator = GetComponent<Animator>(); } void Update() { // 예시: 스페이스바를 누르면 "Jump" 애니메이션을 재생 if (Input.GetKeyDown(KeyCode.Space)) { animator.SetTrigger("JumpTrigger"); } } }
6. 애니메이션 이벤트:- 이벤트 추가:
- 애니메이션 클립에서 "Add Event" 버튼을 사용하여 특정 시간에 이벤트를 추가할 수 있습니다.
- 이벤트는 스크립트에서 정의한 메서드를 호출하거나 다른 작업을 수행할 수 있는 기능을 제공합니다.
- 추가 방법:
- 애니메이션 콘트롤러
애니메이션 콘트롤러(Animation Controller)는 Unity에서 애니메이션을 제어하는 데 사용되는 중요한 요소 중 하나입니다. 애니메이션 콘트롤러는 Animator 컴포넌트와 함께 작동하여 다양한 애니메이션 클립 및 상태 간의 전환을 관리합니다.- Animator 컴포넌트:
- 게임 오브젝트에 Animator 컴포넌트를 추가합니다.
- Animator 창을 통해 애니메이션 콘트롤러를 만들고 구성합니다.
- 애니메이션 콘트롤러 생성:
- 프로젝트 창에서 "Assets" 폴더 내에 우클릭하고 "Create" > "Animator Controller"를 선택하여 애니메이션 콘트롤러를 생성합니다.
- 생성된 애니메이션 콘트롤러에는 Animator 창이 자동으로 열립니다.
- 애니메이션 콘트롤러 설정:
- Animator 창에서 각 상태(State) 및 전환(Transition)을 설정합니다.
- 각 상태는 특정 애니메이션 클립과 연결되어 있습니다.
- 전환 조건을 설정하여 상태 간의 전환을 제어합니다.
- 파라미터(Parameter) 추가:
- Animator 창의 "Parameters" 영역에서 필요한 파라미터를 추가합니다. (예: bool, float, int)
- 파라미터는 스크립트에서 애니메이션을 제어하는 데 사용됩니다.
- 스크립트에서 애니메이션 제어:
- C# 스크립트를 사용하여 애니메이션 콘트롤러의 파라미터 값을 변경하거나 특정 애니메이션을 트리거할 수 있습니다.
using UnityEngine; public class AnimationControllerScript : MonoBehaviour { private Animator animator; void Start() { // Animator 컴포넌트 참조 animator = GetComponent<Animator>(); } void Update() { // 예시: 스페이스바를 누르면 "Jump" 애니메이션을 재생 if (Input.GetKeyDown(KeyCode.Space)) { // "Jump" 트리거를 설정하여 애니메이션을 재생 animator.SetTrigger("Jump"); } } }
이러한 구성을 통해 애니메이션 콘트롤러를 사용하여 게임 오브젝트의 애니메이션을 제어할 수 있습니다. 애니메이션 콘트롤러는 복잡한 애니메이션 시스템을 쉽게 구축할 수 있도록 도와주는 강력한 도구입니다. - Animator 컴포넌트:
- 트랜지션과 애니메이션 이벤트
Unity에서 애니메이션 콘트롤러를 사용할 때, 트랜지션(Transition)과 애니메이션 이벤트(Animation Event)는 애니메이션을 더욱 효과적으로 제어하고 상호작용할 수 있게 해줍니다.
1. 트랜지션(Transition)
트랜지션은 애니메이션 콘트롤러에서 한 상태(State)에서 다른 상태로 전환하는 것을 의미합니다.- 트랜지션 설정:
- Animator 창에서 전환하려는 상태로 이동합니다.
- "Add Transition" 버튼을 사용하여 새로운 전환을 추가합니다.
- 전환된 상태를 설정하고 전환 조건을 정의합니다.
- 전환 조건:
- 전환을 시작하기 위해 필요한 조건을 설정합니다. 예를 들어, 특정 파라미터의 값이 특정 조건을 만족하면 전환될 수 있습니다.
- 애니메이션 이벤트 추가:
- 애니메이션 클립을 선택합니다.
- Animation 창에서 "Add Event" 버튼을 사용하여 이벤트를 추가합니다.
- 이벤트의 프레임과 함수를 지정합니다.
- 스크립트에서 처리:
- 스크립트에서는 해당 함수를 정의하여 애니메이션 이벤트에 응답합니다.
- 트랜지션 설정:
using UnityEngine;
public class AnimationEventExample : MonoBehaviour
{
private Animator animator;
void Start()
{
animator = GetComponent<Animator>();
}
// 애니메이션 이벤트에서 호출할 함수
void PlayFootstepSound()
{
// 풋스텝 사운드를 재생하는 등의 동작 수행
Debug.Log("Footstep sound played!");
}
void Update()
{
// 예시: 스페이스바를 누르면 "Attack" 애니메이션을 재생
if (Input.GetKeyDown(KeyCode.Space))
{
animator.SetTrigger("Attack");
}
}
}
위의 코드에서 PlayFootstepSound 함수는 애니메이션 이벤트에서 호출됩니다. 이를 통해 애니메이션이 특정 프레임에서 동작할 때 스크립트에서 원하는 동작을 수행할 수 있습니다.
트랜지션과 애니메이션 이벤트를 효과적으로 사용하면 애니메이션을 더욱 동적이고 상호작용적으로 만들 수 있습니다.
728x90
반응형
'기초코딩강좌 > 유니티 기초 강좌' 카테고리의 다른 글
16. 애니메이션 블렌딩 (0) | 2024.01.05 |
---|---|
15. 메카님 시스템 (1) | 2024.01.04 |
13. 충돌 감지와 반응 (0) | 2024.01.02 |
12. 리지드바디와 콜라이더 (1) | 2024.01.01 |
11. 프리팹 소개 (0) | 2023.12.31 |