Unity 12일차 학습

규수·2026년 4월 6일

개발 공부 일지

목록 보기
23/44

오늘은 게임의 애니메이션 시스템에 있어 핵심 요소에 대해 정리해보겠습니다.

1) 애니메이터 (Animator)

애니메이터는 게임 오브젝트의 애니메이션을 제어하는 상태 머신입니다.
어떤 애니메이션 클립을 언제, 어떤 조건에서 재생할지 결정하는 역할을 담당합니다.
유니티의 애니메이터 창에서 상태(State)를 만들고 전이(Transition) 화살표를 연결하여 복잡한 행동 패턴을 설계할 수 있습니다.

애니메이터 내에서는 파라미터라는 것을 사용하여 스크립트와의 연결을 진행합니다.
코드에서 특정 조건을 만족했을 때 파라미터 값을 변경하면, 애니메이터는 이를 감지하여 애니메이션 상태를 전환합니다. 파라미터의 종류는 다음과 같습니다.

  • Float: 이동 속도와 같이 연속적인 수치에 사용합니다.

  • Int: 정수값에 따라 상태를 바꿀 때 사용합니다.

  • Bool: 참/거짓 상태(예: IsGrounded)를 나타낼 때 사용합니다.

  • Trigger: 단발성 사건(예: Attack, Jump)이 발생했을 때 한 번만 신호를 보낼 때 사용합니다.

<style>
using UnityEngine;

public class PlayerAnimation : MonoBehaviour
{
    private Animator anim;
    private Rigidbody2D rb;

    void Start()
    {
        anim = GetComponent<Animator>();
        rb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        // 1. Float 파라미터: 이동 속도 전달
        float moveSpeed = Mathf.Abs(rb.velocity.x);
        anim.SetFloat("Speed", moveSpeed);

        // 2. Trigger 파라미터: 공격 신호 전달
        if (Input.GetKeyDown(KeyCode.Z))
        {
            anim.SetTrigger("Attack");
        }

        // 3. Bool 파라미터: 점프 중인지 확인
        bool isJumping = Mathf.Abs(rb.velocity.y) > 0.1f;
        anim.SetBool("IsJumping", isJumping);
    }
}
</style>

2) Sprite Editor

스프라이트 에디터는 하나의 커다란 이미지 파일을 여러 개의 작은 이미지 조각으로 자르거나 편집하는 도구입니다.
애니메이션을 만들기 위해 한 장의 그림에 담긴 연속 동작들을 개별 프레임으로 분리할 때 필수적으로 사용됩니다.

사용하려는 이미지가 Multiple 타입으로 설정되어 있을 경우 다음과 같은 방식으로 개별 프레임으로 분리할 수 있습니다.

  • Automatic: 유니티가 이미지의 픽셀 밀집도를 분석하여 자동으로 영역을 지정해 자르는 방식입니다.

  • Grid By Cell Size: 사용자가 지정한 가로/세로 픽셀 크기에 맞춰 격자 형태로 자르는 방식입니다.

  • Grid By Cell Count: 전체 이미지를 지정한 행과 열의 개수로 등분하여 자르는 방식입니다.

3) Animation Clip

애니메이션 클립은 실제 애니메이션 데이터가 담긴 파일입니다.
특정 동작(예: 걷기, 대기, 사망)에 필요한 스프라이트들의 순서와 재생 시간 정보를 포함하고 있습니다.

오늘은 애니메이션에 대한 기본 정의와 클립을 통한 애니메이션 구성 방법에 대해 학습하였습니다.
클립을 통해 애니메이션을 직접 만들어보는 시간을 가졌던게 가장 인상깊었습니다.

0개의 댓글