규로로TV

언리얼 애니메이션하기 – 숨쉬고 걷고 때리고 방어까지 본문

3D_R&D

언리얼 애니메이션하기 – 숨쉬고 걷고 때리고 방어까지

규로로TV 2018. 8. 10. 10:01

언리얼 애니메이션하기 숨쉬고 걷고 때리고 방어까지

 

 

No.1) 데이터 Import하기

#폴더를 하나 생성하고 네이밍을 지정한다.

스킨된 파일을 드래드엔 드랍을 한다.

임포트 옵션에서 Normal Import Methos에서 Import Normals를 꼭 바꿔준다.

 

#폴더를 하나 더 만들어 네이밍을 애니메이션으로 지정한다.

모션작업한 파일만 드래그 드랍을 해주고 옵션이 뜨면

# Mesh > Import mesh를 체크 해제(본만 불러오면 되기 때문에)

# Skelecton 은 스킨된 캐릭터를 선택해준다. 그리고 import All

 

 

No.2) 설정하기

RMB을 눌러 Blueprint class를 실행하고 Character를 누른다.

네이밍 CharacterBP지정, 더블클릭하여 들어간다.

 

디스플레이 셋팅부터 한다.

Viewport탭으로 가서

 

Comonenets > Mesh를 선택하여 Detail탭의 Mesh에 원하는 캐릭터를 선택

파란색 화살표에 맞춰 채릭터 축을 맞춰주고 캡슐크기등을 맞춰준다.

Comonenets에서 Spring Arm(카메라 지지대)Camera를 만들고 위치 셋팅후

CameraSpring Arm 하위로 종속시킨다.

 

# Spring Arm > cemara Settings > Use Pawn Control Rotation 체크!

# Class Dafault > Pawn > Use Controller Rotation Yaw 체크 해제!

#Character 블루프린트> Add component > Character Movement> Character Movement(Rotation Settings) > Orient Rotation to Movement 체크

 

# Spring Arm의 속성중에 Lag기능을 활성화하면 캐릭터가 움직일 때 카메라가 한템프 늦게 움직여 자연스러운 연출이 가능함

 

 

Animation탭에서 Anim Class를 만들어 놓은 애니메이션 블루프린트(AnimBP)로 설정한다.

 

 

Compile save하고 빠져나온다.

 

CharacterBP를 퍼스펙티브에 드래그 드랍을 하면 캐릭터가 나온다.

적당한 자리에 셋팅하고 끝낸다.

 

퍼스펙티브에서 캐릭터를 선택하고 Datail > Pawn

 

# Use Controller Rotation Yew 체크 해제

# Auto Possess Player > Player 0

 

플레이를 해보면 설정한 값의 카메라 뷰로 캐릭터가 나오게 됨을 확인이 된다.

 

 

 

 

No.3) 키보드 입력 설정하기

Edit > Project setting > input

 

# Action Mappings는 특정 동작에 대한 입력 설정

# Axis Mappings는 캐릭터의 움직임에 대한 입력 설정

 

 

 

No.4) 캐릭터의 움직임 상태 설정하기

캐릭터 폴더에서 마우스 우클릭> Animation > Animation BluePrint(AnimBP) 클릭

옵션값은 AnimInstance를 누르고 아래 Skelecton에서 애니메이션할 캐릭터 Skelecton을 눌러준다.

네이밍을 몬스터 이름_AnimBP로 설정(주황색 라인)

 

AnimBP를 더블 클릭하고 State를 만든다.

RMS> state 를 누르면 Add new state machine

네이밍을 LocoMotion(행동)으로 지정

 

LocoMotion안에서 모든 행동에 대한 정의를 세분화 한다.

(숨쉬고 걷고 공격하고 등등)

사람 아이콘을 눌러 오른쪽 사람아이콘에 끌어다 붙여준다.(연결 완료)

LocoMotion을 더블클릭하여 들어간다.

 

RMB를 클릭해 Add state를 눌러 아래와 같이 상태에 대한 state를 만들어준다.

 

 

 

 

이제 IdleWalk에 들어가서 걷기와 숨쉬기에 대한 정의를 만들어준다.

변수는 MyBlueprint탭의 variables탭에서 +버튼을 눌러 추가하고 네이밍을 지정해주면 된다.

완료가되면 상단의 Compile을 하고 Save를 하고 아래의 프리뷰를 통해 작동을 확인한다.

 

 

 

 

 

 

마찮가지로 공격과 방어에 대한 정의도 아래와 같이 내려준다.

 

AnimBPEvent Graph로 가서 움직임에 대한 이벤트를 생성해준다.

(속도가 0보다 이상이면 움직인다.)

 

여기까지 기본 정의 가 끝났다.

 

 

이제 IdleWalk에서 Run으로 갈때와 Run에서 IdleWalk으로 갈 때 중간값을 설정해준다.

블루프린트 창을 끄고 컨텐츠 브라우저에서..

우클릭 > BluePrint > Enumeration선택하고 네이밍을 BPE_playerState로 한다. 그리고 더블클릭!

+를 눌러 그림과 같이 셋팅해준다.

 

다시 AnimBP로 돌아가 변수를 추가해준다. “CurrentStateAnim”

“CurrentStateAnim” 을 선택하고 변수타입을 만들어 놓은 BPE_playerState로 설정한다. (Enum쪽에 있다)

 

이제 각 모션의 중간값 설정을 해보겠다.

첫번째로 IdleWalk에서 Attackd으로 갈 때부터

1을 드블클릭하여 들어간다.

Current State AnimGet으로 가져오고

Detail탭에서 Variable Type을 이미 만들어놓은 State로 변경해준다.

Enum > BPE_playerState

==를 누르면 Equal이 나오고 Attack으로 바꿔준다.

 

 

 

노드를 복사해서 반대편은 IdleWalk로 바꿔준다.

 

이런 식으로 각 state마다 중간값을 설정해준다.

 

폰의 입력값 셋팅

 

 

No.5) 캐릭터의 상태와 키보드 키 연결하기

 

 

 

CharacterBP를 열고  Event Graph로 간다.

 

 

 

 

 

 

플레이를 해보면 앞,,,, 이동이 가능하다.

속도에 관하나 제어는 Event Graph에서 Component> CharacterMovement 누르고

Character Movement > Max Acceleration값을 조정하여 캐릭터의 움직이는 속도를 변경한다.

노드를 모두 드래그하고 c를 누르면 컨테이너로 깔끔하게 정리가된다.

 

 

CharacterBP에서 컴포넌트탭> Character movement 클릭

Character Movement (Rotation Setting) > Orient Rotation to Movement 클릭

 

그러면 캐릭터의 회전이 가능하다.

 

 

[UI]

 

1 Widjet 블루프린트를 만들어서 Ui 애니메이션을 제작한다.

 

2 Designer탭에서 Graph탭으로 이동 후 만든 애니메이션을 연결하고 play Animation 노드를 달아준다.

 

 

 

3 blue print class > actor를 선택해준다.

더블클릭해서 들어간 후

 

뷰포트탭에서 > Add component에서 Widge을 만들어 준다.

만든 위젯옵션 > User Interface 옵셔 > Widget Class 옵션을 눌러

1에서 만들어 놓고 위젯블루프린트를 선택해준다.

 

 

4 actor 블루프린트를 메인 뷰포트에 올려 시각화 할수 잇게 배치한다.

 

5 play!


Comments