ted0505
Computational Art & Study
ted0505
전체 방문자
오늘
어제
  • 분류 전체보기 (79)
    • Computer Science ( CS ) (0)
    • Computational Thinking (6)
    • 프로젝트 개발일지 (1)
    • Coding (52)
      • C++ (39)
      • JavaScript (2)
      • P5.JS (7)
      • Python (0)
      • HTML5 (1)
      • CSS (0)
    • Game Engine (18)
      • Unreal Engine 4 (18)
      • Unity (0)
    • Physically Based Rendering (0)
    • FilmMaking (0)
    • 잡다 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ted0505

Computational Art & Study

[ Unreal Engine 4 ] Custom Character 를 언리얼 ThirdPersonCharacter 템플릿으로 불러오기
Game Engine/Unreal Engine 4

[ Unreal Engine 4 ] Custom Character 를 언리얼 ThirdPersonCharacter 템플릿으로 불러오기

2021. 12. 1. 13:20
목차

1. ThirdPersonCharacter 템플릿 동작방식 이해하기
2. Custom Character 를 언리얼 ThirdPersonCharacter 템플릿으로 불러오기
2-1. 캐릭터에 애니메이션 넣기
2-3. Blendspace 사용하기

#ThirdPersonCharacter 템플릿 동작방식 이해하기

ThirdPersonCharacter BluePrint

1. 키보드 입력에 따른 캐릭터의 움직임과 회전

ThirdPersonCharacter 는 키보드의 입력에 의해, 움직이고 회전한다. 

그렇다면, 이 키보드 입력 값에 따른 움직임과 회전은 어떻게 줄까?

 

ThirdPersonCharacter Blueprint

움직임과 회전은 ThirdPersonCharacter Blueprint 로 만들어져 있다.

Movement Input Logic 

- 이벤트 ( Input Axis MoveForward ) 가 발생하면, Add Movement input 함수를 실행한다.여기서 Add Movement input 함수는 이벤트에서 발생 된 크기 값 (Scale Value)을 받고, 계산된 방향 값(World Direction, 즉, 캐릭터가 옆을 보고 있는지, 앞을 보는지) 을 받는다.

 

즉, Scale value 는 캐릭터의 움직임을 뜻하고, World Direction 은 캐릭터의 방향을 뜻한다.

 

그렇다면, 이벤트는 무엇이고 크기 값은 무엇인가 ?

Project Setting -> input

프로젝트 설정 -> 인풋을 들어가면 이벤트가 미리 만들어져있다. 

이벤트에 대한 값

즉, 예를 들어 W키를 입력하면 이 이벤트가 발생하고, 1.0이라는 크기 값을 보내는 것이다.


2. 키보드 입력에 따른 캐릭터의 점프

위와 마찬가지로, 이벤트가 발생하면 함수를 실행한다.

스페이스 바를 누르면 jump 함수가 실행되고, 떼면 Stop jumping 함수가 실행된다.

 

* roll pitch yaw : 기존의 X, Y, Z 축은 사용하는 툴마다, 왼손 법칙이냐 오른속 법칙이냐에 따라 기준이 달랐기 때문에, 직관적으로 회전 값만으로 따질 수 있는 기준을 만들자해서 나온 것이다. 


#Custom Character 를 언리얼 ThirdPersonCharacter 템플릿으로 불러오기

 

##Custom 캐릭터에 애니메이션 주기

 필요 재료 : 커스텀 캐릭터 ( 믹사모 등 )

 

캐릭터에 애니메이션을 주고, 움직이기 위해서는 기본적으로 2가지의 Blueprint가 필요하다.

첫번째는, 여러가지 인풋 장치 ( 키보드, 마우스, 게임패드 등등 ) 에 따라 캐릭터를 움직이기 위한 Character BP.

두번째는, 이 캐릭터가 움직일 때 모션을 주기위한 AnimBP.

캐릭터에 애니메이션을 주고 움직이기 위한 CharacterBP, AnimBP

 

Character Blueprint

 

Character BP에 해당 캐릭터에 애니메이션을 주기 위해 선택 할 수 있는 모드와 애니메이션 클래스가 있다.

AnimBP로 애니메이션을 줄 것 이기 때문에, 블루프린트 모드로 선택하고 해당 캐릭터 애니메이션 BP를 선택해준다.

 

AnimBP, State Machine

AnimBP -> AnimGraph 에서 바로 애니메이션을 줄 수 있지만, 걷다가 점프를 하는 경우처럼, 여러 조건과 상태에 맞는 애니메이션을 주어야 하기 때문에 StateMachine 를 통해서 애니메이션을 준다.

 

##StateMachine

StateMachine

StateMachine은 여러 조건에 맞는 애니메이션을 주는 것이기에 상태와 조건을 설정 해줄 수 있다.

애니메이션 상태 블럭 : 애니메이션 애셋을 넣을 수 있음.

 

###조건 만들기 위한 데이터 값 받기

캐릭터가 정지 상태에서 걷는 상태로 바뀔 때 애니메이션을 바꿔주어야하기 때문에, 캐릭터의 속력 값을 받고 그에 따른 조건을 만들어주어야 한다.

ThiedPersonCharacter의 속력 값을 가져오는 로직

###조건 만들어 주기


##BlendSpace 로 애니메이션 블렌드하기

위와 같은 방식으로 애니메이션을 줄 수 있지만, 좀 더 자연스러운 애니메이션을 주기 위해 BlendSpace를 사용하면 좋다.

 

블렌드스페이스

블렌드 스페이스에서 걷는 애니메이션, 뛰는 애니메이션을 적절히 블렌드 시켜준다.

 

State 블럭에 블렌드 스케이프를 추가해준다.

'Game Engine > Unreal Engine 4' 카테고리의 다른 글

[ Unreal Enigne 4 ] 스공_Ver2  (0) 2021.12.08
[ Unreal Engine 4 ] Custom Character 를 Custom Template에 넣기  (0) 2021.12.01
[ Unreal Engine 4 ] GameMode  (0) 2021.11.24
[ Unreal Engine 4 ] Sound  (0) 2021.11.17
[ Unreal Engine 4 ] UI_User Interface  (0) 2021.11.17
    'Game Engine/Unreal Engine 4' 카테고리의 다른 글
    • [ Unreal Enigne 4 ] 스공_Ver2
    • [ Unreal Engine 4 ] Custom Character 를 Custom Template에 넣기
    • [ Unreal Engine 4 ] GameMode
    • [ Unreal Engine 4 ] Sound
    ted0505
    ted0505

    티스토리툴바