Unity에서 2D 애니메이션 만들기

Unity에서 2D 애니메이션을 생성하기 위해 개발자는 내장된 애니메이션 창과 Unity 애니메이터 구성 요소를 사용할 수 있습니다. 시작하기 위한 단계별 가이드는 다음과 같습니다.

프로젝트 설정

  • Unity 및 create를 열어 새 2D 프로젝트를 열거나 기존 프로젝트를 엽니다.
  • 새 프로젝트를 시작하는 경우 프로젝트 템플릿을 2D로 설정하세요.

스프라이트 에셋 임포트

  • 스프라이트는 스프라이트 편집기를 사용하여 Unity 내에서 생성하거나 PNG 또는 JPEG와 같은 외부 이미지 파일에서 가져올 수 있습니다.
  • Unity 내에서 스프라이트를 생성하려면 Assets 메뉴로 이동하여 생성을 선택한 다음 Sprite 또는 Sprite Renderer를 선택합니다. 그런 다음 스프라이트 아트워크를 그리거나 가져올 수 있습니다.

스프라이트 애니메이션 구성

  • 스프라이트가 준비되면 프로젝트 창에서 스프라이트 에셋을 선택하세요.
  • Inspector 창에서 Texture Type이 'Sprite (2D and UI)'로 설정되어 있는지 확인하세요. 그렇지 않다면 'Sprite (2D and UI)'로 변경하세요.
  • 프로젝트 창에서 스프라이트 에셋을 클릭하여 스프라이트 에디터에서 엽니다.
  • 스프라이트 편집기를 사용하여 애니메이션의 개별 프레임을 정의합니다. 필요한 경우 스프라이트를 여러 하위 이미지로 분할할 수 있습니다. 또한 편집기에서는 각 프레임의 피벗점을 수정하여 스프라이트의 위치를 ​​제어할 수 있습니다.
  • 스프라이트 편집기에서 변경한 내용을 저장합니다.

애니메이션 창을 사용하여 애니메이션 만들기

  • 애니메이션 창을 열려면 'Window -> Animation'로 이동하세요.
  • 애니메이션 창에서 만들기 버튼을 클릭하여 새 애니메이션 클립을 만듭니다.
  • 프로젝트 창에서 애니메이션 클립을 선택하면 해당 속성이 검사기 창에 나타납니다.
  • Inspector 창에서는 애니메이션 클립의 길이, 샘플 속도 및 기타 속성을 설정할 수 있습니다.
  • 키프레임을 생성하려면 애니메이션 창에서 재생 헤드를 특정 시간로 이동하고 장면 또는 계층 창에서 스프라이트의 속성(예: 위치, 크기 조정, 회전 등)을 수정합니다.
  • 부드러운 애니메이션을 만들려면 다양한 시간에 키프레임을 추가하세요. Unity은 키프레임 사이의 값을 자동으로 보간합니다.

애니메이터 설정

  • 장면 또는 계층 창에서 스프라이트 개체를 선택합니다.
  • Inspector 창에서 Component 추가 버튼을 클릭하고 "Animator"을 검색하여 객체에 Animator 구성 요소를 추가합니다.
  • Animator 구성요소에서 생성 버튼을 클릭하여 새 Animator Controller 자산을 생성합니다.
  • 새로 생성된 애니메이터 컨트롤러를 애니메이터 구성 요소의 컨트롤러 필드에 할당합니다.

애니메이터 컨트롤러 구성

  • 새로 생성된 Animator Controller 자산을 두 번 클릭하여 Animator 창에서 엽니다.
  • Animator 창에는 애니메이션의 흐름을 나타내는 Animator Controller 그래프가 있습니다.
  • Animator 창을 마우스 오른쪽 버튼으로 클릭하고 'Create State -> From New Clip' 또는 'From Sprite Renderer'을 선택하여 애니메이션 상태를 만듭니다.
  • 애니메이션 창에서 이전에 생성된 애니메이션 클립을 해당 애니메이션 상태로 드래그 앤 드롭합니다.
  • 상태를 클릭하고 화살표를 다른 상태로 드래그하여 애니메이션 상태 간 전환을 만듭니다. 시간, 매개변수 값, 이벤트 등 전환 조건을 조정할 수 있습니다.
  • bool, int 또는 트리거와 같은 전환을 제어하는 ​​매개변수를 추가할 수 있습니다. 예를 들어 유휴 애니메이션 상태에서 실행 중인 애니메이션 상태로의 전환을 트리거하는 "IsRunning"이라는 부울 매개변수가 있을 수 있습니다.

애니메이션 재생

  • 장면 또는 계층 창에서 스프라이트 개체를 선택합니다.
  • Inspector 창의 Animator 구성 요소에서 생성된 Animator Controller 자산을 Controller 필드로 드래그합니다.
  • 애니메이션 창에서 Play 버튼을 눌러 애니메이션을 테스트하고 미리 봅니다.

프로그래밍 방식으로 애니메이션 제어

  • 애니메이션을 프로그래밍 방식으로 제어하려면 script에서 Animator 구성 요소에 액세스해야 합니다.
  • 스크립트에서 Animator 유형의 변수를 생성하고 'GetComponent<Animator>()'를 사용하여 스프라이트 객체에 연결된 Animator 구성 요소에 대한 참조를 가져옵니다.
  • 그런 다음 애니메이터의 기능과 속성을 사용하여 전환을 트리거하고 매개변수 값을 설정하거나 애니메이션 재생을 제어할 수 있습니다. 예를 들어 애니메이터.SetBool("IsRunning", true)을 호출하면 실행 중인 애니메이션이 트리거됩니다.
using UnityEngine;

public class AnimationController : MonoBehaviour
{
    private Animator animator;

    private void Start()
    {
        // Get a reference to the Animator component
        animator = GetComponent<Animator>();
    }

    private void Update()
    {
        // Check for input or condition to trigger animations
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // Trigger a jump animation
            animator.SetTrigger("Jump");
        }

        float moveInput = Input.GetAxis("Horizontal");
        animator.SetFloat("Speed", Mathf.Abs(moveInput));

        // Check if the character is grounded
        bool isGrounded = IsGrounded();

        // Set the "IsGrounded" parameter in the Animator
        animator.SetBool("IsGrounded", isGrounded);

        if (isGrounded && Input.GetKeyDown(KeyCode.C))
        {
            // Trigger a crouch animation
            animator.SetBool("IsCrouching", true);
        }

        if (isGrounded && Input.GetKeyUp(KeyCode.C))
        {
            // Stop the crouch animation
            animator.SetBool("IsCrouching", false);
        }
    }

    private bool IsGrounded()
    {
        // Implement your own logic to check if the character is grounded
        // For example, you can use raycasting or collision detection
        // and return true if the character is touching the ground
        // and false otherwise.
        return false;
    }
}

결론

이는 내장 도구를 사용하여 Unity에서 2D 애니메이션을 생성하는 기본 개요입니다. Unity은 스프라이트 시트, 역기구학(IK) 사용, 사용자 정의 애니메이션 스크립팅 behaviors과 같은 고급 기술도 지원합니다. 문제가 되는 애니메이션의 특정 요구 사항과 복잡성을 기반으로 이러한 옵션을 살펴보세요.

추천 기사
Unity에서 Poppy Playtime에서 영감을 받은 게임 만들기
Unity의 애니메이션 시스템 소개
Unity에서 스크리머 게임 만들기
Unity를 통해 무한한 창의성을 향한 관문 발견
Unity의 파티클 시스템 소개
Unity에서 모바일 공포 게임 만들기
Unity에서 모바일 게임을 만드는 방법