Unity 내일배움캠프 TIL 1005 | URP | 유한상태머신 FSM | 프로빌더 ProBuilder | 캐릭터 컨트롤러 Character Controller | 시네머신 Cinemachine

cheeseonrose·2023년 10월 5일
0

Unity 내일배움캠프

목록 보기
50/89
post-thumbnail

피곤에 찌든 목요일 ~.~

36강 RPG FSM 프로젝트 세팅

URP란?

  • 스크립트 가능한 렌더 파이프라인 (Universal Render Pipeline)
  • 특징
    1. Cross-Platform Compatibility : Unity가 지원하는 모든 플랫폼에서 동작하도록 설계
      모바일, 데스크탑, 콘솔, AR, VR 어플리케이션 등
    2. Performance and Scalability : 성능 및 확장성을 목표로 설계
      저사양 장치에서도 뛰어난 성능을 제공하도록 최적화
      그래픽 설정이 쉬워 다양한 장치에 적합하게 스케일링 가능
    3. Modern Rendering Features : 현대적인 렌더링 기술을 제공
      주요 라이트 유형, 표준 쉐이딩 모델, 환경 리플렉션 포함
    4. Customizability : 사용자 정의 렌더 파이프라인을 생성할 수 있도록 해주는 유연성 제공
      특정 게임 또는 프로젝트에 필요한 고유 렌더링 기능 추가 가능
    5. Graphics Quality : 높은 품질의 그래픽 제공
      향상된 라이트 모델, 표면 쉐이딩, 포스트 프로세싱 효과 등을 사용하여 획득
    6. Simplicity : Unity의 기존 렌더링 시스템에 비해 사용하기 쉬움
      그래픽 설정을 단순화하고 초기 설정을 쉽게 하도록 도와주는 도구 포함



37강 상태 머신(FSM)이란?

유한 상태 머신(FSM)

  • 유한 상태 기계를 나타내는 디자인 패턴
  • 상태와 상태 간의 전환을 기반으로 동작하는 동작 기반 시스템

FSM 구성 요소

  • 상태(State) : 시스템이 취할 수 있는 다양한 상태
  • 전환 조건(Transition Condition) : 상태 간 전환을 결정하는 조건
  • 동작(Action) : 상태에 따라 수행되는 동작 또는 로직

동작 원리

  • 초기 상태에서 시작해 입력이나 조건에 따라 상태 전환 수행
  • 상태 전환은 전환 조건을 충족할 때 발생
    전환 조건은 입력, 시간 조건 등으로 결정
  • 상태 전환 시 이전 상태의 종료 동작과 새로운 상태의 진입 동작이 수행됨

장점

  • 상태를 명확하게 정의하고 상태 간 전환을 일관되게 관리 가능
  • 복잡한 동작을 상태와 전환 조건으로 나누어 구현하므로 코드 유지보수가 용이
  • 다양한 동작을 유기적으로 조합해 원하는 동작 구현 가능



38강 플레이어 상태머신 준비

프로빌더(ProBuilder)

  • 게임 개발자들이 빠르고 쉽게 3D 모델을 만들고 편집하는 도구
  • 주요 기능
    1. 3D 모델링
    • 내장된 도구들을 사용해 3D 모델을 쉽게 생성
    • 기본적인 기하 도형(정육면체, 원기둥 등)을 생성하거나 더 복잡한 모델을 만들 수도 있음
    1. 편집과 수정
    • 객체를 선택하고 이동, 회전, 스케일 등을 수행하는 편집 도구 포함
    • 정점, 엣지, 면 수준에서 세부적인 편집 가능
    1. UV 매핑
    • 3D 모델의 텍스처 UV 매핑을 프로빌더에서 직접 할 수 있음
    • 텍스처를 정확하게 적용 가능
    1. 콜리전 설정
    • 간단한 콜리전 메쉬를 만들 수 있음
      -> 게임 캐릭터나 객체와 상호작용하는 데 사용
    1. 성능 최적화]
    • 다른 모델링 도구와 함께 사용해 메시의 폴리곤 개수를 최적화하고 게임 성능을 향상시킬 수 있음

캐릭터 컨트롤러 (Character Controller)

  • 캐릭터나 플레이어의 움직임과 충돌을 관리하기 위해 사용되는 컴포넌트
  • 캐릭터의 움직임을 프레임 기반으로 처리하므로 주로 3D 캐릭터를 제어하는 데 사용
  • 주요 기능
    1. 캐릭터 이동
    • 단순한 이동을 쉽게 구현할 수 있는 메서드 제공
    • 이동 방향과 속력을 설정하여 캐릭터를 움직이게 함
    1. 중력 적용
    • 점프나 떨어짐을 자연스럽게 처리 가능
    1. 충돌 처리
    • 물리 엔진을 사용하지 않고 캐릭터의 충돌을 감지하고 처리
      다른 콜리더와의 충돌을 통제하고 경사로와의 상호작용 지원
    1. 바닥 검출
    • 캐릭터가 바닥 위에 놓이도록 바닥 검출 처리
    • 바닥과의 거리, 표면 노멀 등을 고려해 캐릭터 높이를 조절하거나 점프를 가능하게 함
    1. 움직임 제한
    • 움직임을 제한하는 기능 제공
    • 지정된 영역 내에서만 움직이도록 하거나, 지형의 경사를 따라 이동할 수 있도록 설정
  • rigidbody로 움직이지 않는 것들에 사용

  • Slope Limit : 콜라이더가 명시된 값보다 작은 경사(단위: 도)의 슬로프만 오르도록 제한
  • Steop Offset : 명시된 값보다 계단이 땅에 가까울 경우에만 캐릭터가 계단을 오름
    캐릭터 컨트롤러의 높이보다 큰 값이면 안 됨
    -> 값이 더 클 경우 오류 발생
  • Skin Width : 두 콜라이더가 서로 스킨 너비 만큼 관통할 수 있음
    스킨 너비가 작을 경우 캐릭터가 움직이지 못할 수도 있음
    반지름의 10%로 설정하는 것이 좋음
  • Min Move Distance : 캐릭터가 지정한 값보다 낮게 움직이려고 할 경우 아예 움직이지 않게 됨
    대부분의 경우 이 값은 0으로 두어야 함
  • Center : 월드 공간에서 캡슐 콜라이더를 오프셋함
    캐릭터 피봇에는 영향 X
  • Radius : 캡슐 콜라이더의 반지름 길이 (콜라이더의 너비)
  • Height : 캐릭터의 캡슐 콜라이더 높이

출처 캐릭터 컨트롤러 - Unity 매뉴얼



41강 시네머신 카메라 적용

시네머신(Cinemachine)

  • Unity에서 제공하는 고급 카메라 시스템
  • 게임, 영화, 애니메이션 등에서 다양한 카메라 워크플로우를 지원하며 카메라 이동, 추적, 매핑, 블렌딩 등을 쉽게 구현할 수 있도록 도와줌
  • 주요 기능
    1. 가상 카메라(Virtual Camera) : 가상 카메라를 사용하여 실제 카메라가 없는 상태에서도 여러 가상 카메라의 시점과 속성을 조작할 수 있음
      각 가상 카메라는 독립적인 카메라 속성을 가지며, 원하는 순간에 활성화되거나 비활성화 될 수 있음
    2. 카메라 블렌딩 : 여러 가상 카메라 간에 자연스럽게 전환하기 위해 블렌딩 기능 제공
      카메라의 위치, 회전, 시야 등이 부드럽게 전환되어 자연스러운 카메라 이동 구현 가능
    3. 트랙링과 추적 : 오브젝트나 캐릭터를 추적하여 자동으로 카메라를 따라가도록 지원
      특정 타겟을 추적하거나 경로를 따라 이동하는 카메라 워크플로우 구현 가능
    4. 애니메이션 연동 : 카메라의 속성을 애니메이션과 동기화 가능
    5. 렌즈 세트 : 줌, 화각, 특수 렌즈 효과 등을 쉽게 적용 가능



끗!

0개의 댓글