2024년 11월 27일 TIL

John Jean·2024년 11월 26일

Unity

목록 보기
2/19

🎮 Unity

애니메이터 설정

인스펙터 - Root Motion

  • 루트 모션은 게임 오브젝트의 위치와 회전을 애니메이션이 제어하도록 허용한다.
  • 즉 애니메이션 상 캐릭터가 앞으로 움직이면 게임 오브젝트도 앞으로 이동하는 것.
  • 루트 모션은 추가 계산이 필요하므로, 최적화가 중요한 경우 사용을 피할 수도 있음.

유한 상태 머신 병렬 사용

  • 유한 상태 머신은 하나의 상태만 현재 상태가 될 수 있다. 하지만 여러 개의 유한 상태 머신을 병렬로 실행하는 방식으로 여러 상태가 동시에 현재 상태로 중첩되게 할 수 있다. -> 아바타 마스크 사용.
  • 아바타 마스크 생성 후 레이어에 추가해주면 됨.

블렌드 트리

  • 일반적으로 애니메이터의 상태에는 애니메이션 클립이 할당됨.
  • 평범한 애니메이션 클립이 아닌 특수한 종류의 모션(움직임을 나타내는 에셋)을 상태에 할당하는 것도 가능하다.
  • 1D는 파라미터가 하나라는 뜻이고, 임계값이 변화함에 따라 다른 애니메이션이 실행된다.

프로퍼티

프로퍼티는 클래스의 필드에 대한 읽기(Get)와 쓰기(Set)를 제어하기 위한 기능이다.
이를 통해 필드를 간접적으로 접근할 수 있어 데이터 캡슐화를 쉽게 할 수 있음.

public class Person
{
    private string name; // 필드

    // 프로퍼티
    public string Name
    {
        get { return name; } // 값을 읽을 때 실행
        set { name = value; } // 값을 쓸 때 실행
    }
}

// 사용 예시
Person person = new Person();
person.Name = "Alice"; // set 호출 -> name 필드에 "Alice" 저장
Console.WriteLine(person.Name); // get 호출 -> "Alice" 출력
  • get: person.name을 읽을 때 호출됨.
  • set: person.name = "Alice"; 로 값을 설정할 때 호출됨.

자동구현 프로퍼티

public class Person
{
    public string Name { get; set; } // 자동 구현 프로퍼티
}

// 사용 예시
Person person = new Person();
person.Name = "Bob"; // set 호출 -> Name에 "Bob" 저장
Console.WriteLine(person.Name); // get 호출 -> "Bob" 출력
  • Name은 자동으로 내부 필드를 생성하므로 별도의 private string name; 필드를 작성할 필요가 없다.
  • 또는 public string Name { get; private set; } 으로 쓰기를 제한할 수도 있음.

오브젝트 이동에 관해

MovePosition()

MovePosition() 메서드는 상대위치가 아닌 전역위치를 사용한다. 예를들어 매개변수로 (0,0,3)을 입력하면 현재위치에서 그만큼 이동한게 아니라 그 위치로 이동을 하는 것이다.

transform.position을 사용할 수도 있지만, 트랜스폼의 위치값을 직접 변경하면 물리 처리를 무시하고 위치를 덮어씀.

MovePosition()을 사용하면 이동 경로에 다른 콜라이더가 존재하는 경우 밀어내거나 밀려나는 물리 처리가 실행된다.

시네머신

시네머신의 원리

  • 브레인 카메라
    - 브레인 카메라는 게임 월드를 촬영하는 진짜 카메라이며 씬에 하나만 존재한다.
  • 가상 카메라
    - 가상 카메라는 브레인 카메라의 분신 역할을 하며 씬에 여러개 존재할 수 있다.
    - 브레인 카메라는 여러 가상 카메라 중 하나를 골라 현재 활성화된 카메라로 사용한다.
    - 실제 카메라로 동작하진 않지만, 브레인 카메라를 위한 여러 설정값을 제공한다.

데드존, 소프트존, 하드 리밋

  • 시네머신 가상 카메라 컴포넌트의 Look At 필드에 플레이어 캐릭터를 할당하는 순간 게임 창에 붉은색과 푸른색으로 그려진 영역과 안내선이 보인다.
  • 이들은 카메라의 자연스러운 추적을 구현하는데 사용하는 3가지 영역이다.
  • 각각의 존은 대상을 주시하는 동안 카메라 연출이 자연스럽게 느껴지도록 추적의 세기를 단계별로 나눈 영역임.

✏️ Algorithm


profile
크래프톤 6기 정글러

0개의 댓글