1. 정의

- 월드에서의 걷기, 달리기, 점프, 비행, 수영 등이 가능한 직립 플레이어를 표현하기 위해 디자인 된 것

- 플레이어나 AI가 제어할 수 있는 고유의 클래스: 이동 / 충돌 가능

2. 특징

1) CapsuleComponent 소유: 충돌표현

- CapsuleComponent를 가지고 있어 다른 오브젝트와의 충돌 처리 / 관리 가능

 

2) CharacterMovementComponent  소유: 이동 가능

- CharacterMovementComponent를 가지고 있어 캐릭터 이동: 중력 / 속도 / 점프 기능 설정 가능

 

3) SkeletalMeshComponent 소유: 뼈대 구조

- SkeletalMeshComponent를 가지고 있어 캐릭터의 뼈대 표현: 애니메이션 적용 가능

 

4) Pawn(폰)과 비교

비교 Pawn Character
공통점 플레이어 / AI가 제어할 수 있는 Actor
기본구조 Actor를 상속받음 Pawn을 상속 받음
MovementComponent 없음: 필요 시 수동으로 추가 있음: 자유로운 이동 처리 가능
CapsuleComponent 없음: 필요 시 수동으로 추가 있음: 자유로운 충돌 처리 / 관리 가능
Skeletal mesh 없음: 애니메이션 적용하려면 복잡함 있음
: Skeletal Mesh와 Animblueprint를 통해 Blend와 State Machine 사용 가능
사용 예시 이동이 필요 없는 오브젝트 ex) 카메라 드론 복잡한 이동이나 애니메이션이 필요한 플레이어 캐릭터나 AI 캐릭터

각 오브젝트의 상속 구조와 요소

3. 애니메이션 에셋 제작 흐름

1) 콘셉트 원화 → Modeling Sheet(모델링시트)로 변환

 

2) 캐릭터 모델링

(1) 3D 모델링 / Texturing : Blender, Maya, 3ds Max 등과 같은 3D 모델링 소프트웨어를 사용해 캐릭터 모델링

(2) Rigging(리깅)

     - 본 애니메이션과 바이패드 애니메이션 모두에 해당하는 뼈대(Bone) 설정

     - 사용할 뼈대의 구조 정의 / 움직임 설정

 

3) 애니메이션 제작

- 애니메이션 소프트웨어 사용: 애니메이션 제작을 위해 다양한 소프트웨어 사용

 

(1) 애니메이션 제작 유형

- Bone Animation(본 애니메이션)

  : 3D모델의 뼈대(Bone)를 사용해 애니메이션을 생성하는 기법

  : 최대한 적은 개수의 본(Bone)으로 애니메이션을 구현해 성능을 최적화 하는게 관건

- Biped Animation(바이패드 애니메이션)

  : 두 개의 다리로 걷는 캐릭터의 움직임을 표현하는 기법

  : 애니메이션 소프트웨어에서 제공하는 바이패드 도구를 사용해 설정 가능

 

4) 언리얼 엔진에 애니메이션 임포트

- 리깅한 애니메이션을 FBX(File BoX) 형태의 파일로 Export해 언리얼엔진에 Import

더보기

* FBX(Film BoX)

- 각종 3D DCC(ex. HUD)에서 사용하는 범용적 3D 데이터 포멧

  : 바이너리 데이터로 구성, 리깅된 애니메이션 정보를 추출한 파일

     * 바이너리 데이터: Vertex / Normal / UV / Bone Hierarchy / Animation(Bake FK) 관련 정보 값 등

- 게임에서 주로 3D 모델 / 애니메이션 등에 활용

  : 상용화게임(특히 모바일)에서 마네킨 에셋을 사용하기에는 매 프레임별 real time 연산(=DrawCall)을 하기에 

    이 연산을 줄이고자 Bone의 개수를 줄임

4. 언리얼엔진에서의 캐릭터 구성

- ★★★주요 5가지 에셋 ★★★

1) Skeleton(스켈레톤)

- 3D모델의 뼈대 구조를 정의 하는 에셋

-  스켈레탈 메시에서 bones(joints) 을 정의하는데 사용하는 계층구조

   : 스켈레탈 계층 구조 / 애니메이션 시퀀스 저장 / 연결하는데 사용

Skeleton 예시

- 게임 내에서 시각적으로 보이지 않음: 게임 내에서 플레이어나 카메라에 의해 직접적으로 보이지 않음

- 캐릭터와 1 : 1 관계( 캐릭터 하나에 하나의 Skeleton만 생성 가능)

- skeleton생성하기: 스킨을 입힌 캐릭터 FBX를 임포트해 언리얼엔진에서 스켈레탈 메시로 변환

더보기

- Skeleton asset의 종류

1) Skeleton(골격)

- Skeletal Mesh의 형태(위치, 동작)을 정의 / 변형하기 위해 사용되는 뼈의 집합

   * Skeletal Asset(스켈레탈 에셋)

     - 스켈레탈 메시 + 캐릭터의 모든 동작과 시각적 표현(애니메이션, 물리 설정, 머티리얼)

- Root bone을 시작으로 계층구조(hierarachy) 방식으로 구성

 

2) Bone(뼈)

- Skeleton의 hierarchy를 구성하는 요소

 

3) Joint(관절)

- Skeleton의 Bon과 Bone 사이를 연결해 형태를 변형시키는 기능을 하는 요소

- 게임에서는 대부분 Joint를 Bone과 혼합해 사용

 

2) Skeletal Mesh(스켈레탈 메시)

- 캐릭터용 기본 에셋(= 캐릭터의 껍데기): 메시 + 본 데이터(스켈레톤)

- 스켈레탈 메시 에디터에서 캐릭터의 메시, 스켈레톤, 피직스 에셋, 애니메이션 시퀀스 등의 컴포넌트 확인 / 편집 가능

  : 리깅, 애니메이션, 본 구조 등을 포함하고 있는 FBX 파일로 스켈레탈 메시 생성 가능

- 캐릭터와 1 : N 관계( 캐릭터 하나에 여러 개의 스켈레탈 메시 생성 가능)

스켈레탈 메시 예시

 

3) Animation(애니메이션)

- 리깅된 메시인 스켈레탈 메시를 기반으로 제작해 캐릭터의 동작 표현 가능

- 애니메이션 시퀀스(특정 동작(ex. 걷기, 뛰기) 정의한 시퀀스) 생성 가능 

- 캐릭터와 1 : N 관계(캐릭터 하나에 여러 개의 애니메이션 생성 가능)

- 특정 스켈레톤에는 특정 애니메이션이 적용되어있으니 해당 애니메이션을 다른 스켈레톤에 적용하려면 리타겟팅을 통해 변경해야함

* 타겟팅(Targeting): 애니메이션이 스켈레톤에 적용되어있는 것

 

4) Animation BluePrint(애니메이션 블루프린트)

- 복잡한 애니메이션 행동을 만들고 제어하는데 사용하는 비주얼 스크립트

- 캐릭터와 1 : N 관계(캐릭터 하나에 여러 개의 블루프린트 생성 가능)

- 구성요소

(1) Animation Slot(애니메이션 슬롯)

    : 애니메이션 블랜드 / 결합할 수 있는 노드

    : 애니메이션 몽타주(일회성 애니메이션)를 사용할 때 유용

    : 블렌딩 노드와 함께 사용해 캐릭터의 특정 본(ex. 상단 바디 / 팔 등)에서만 재생하도록 분리 가능

애니메이션 슬롯의 예시

(2) State Machine(스테이트 머신)

    : 게임 내 애니메이션용 유한상태기기(FSM) - 애니메이션의 상태 정의 / 상태 간 전환 관리

      * FSM(Finite State Machine) : 캐릭터나 게임 오브젝트 상태(State)와 이 상태를 변화시키는 Event / Conditions 으로 구성

     : 종류

       - 로코모션(Locomotion) : Idle / Walk / Run / Swimming

스테이트머신 - 로코모션 예시

        - 액션(Action) : Jump / Attack / 각종 스킬

      : 블랜딩 가능 - 하나의 상태만 재생하는 것이 아니라 여러 동작을 동시에 표현하는 것 ex) 달리면서 칼 휘두르기

 

5) Physics Asset(피직스 에셋)

- 물리적인 애니메이션이 들어간 애셋: 콜리전과 피직스 정의

- 캐릭터와 1 : 1 관계(캐릭터 하나에 한 개의 피직스 에셋 생성 가능)

캐릭터 피직스 에셋과 비히클 피직스 에셋 예시

 

728x90

'Unreal Engine🎮 > 블루프린트 - 이론' 카테고리의 다른 글

블루프린트와 C++ 연동  (0) 2025.05.27
사용자에게 입력 데이터 받아오기  (6) 2024.10.09
Pawn(폰)  (0) 2024.10.09
FPS와 Delta Time  (2) 2024.09.29
기하학(Geometry)  (5) 2024.09.25

+ Recent posts