4. 주인공 캐릭터 애니메이션

MOON·2022년 7월 15일
0

유니티_3D_SpaceShooter

목록 보기
4/11
post-thumbnail

애니메이션


Animation 파일 임포트

먼저 캐릭터 애니메이션 파일(이미 만들어 놓음) 을 임포트 하도록 한다
Resource/Animations 폴더에 있는 PlayerAnimation.unitypackage 파일 임포트
Player Animation Clip 폴더를 07.Animations 폴더로 옮긴다.


Animation 파일 Preview

애니메이션 파일을 미리 먼저 볼 수 있다.
계층 뷰에 있는 Player를 끌어다가 인스펙터 뷰의 Preview 창으로 옮기면 미리 보기가 가능
각각의 애니메이션 클립들을 선택해서 어떤 모양을 움직이는지를 관찰한다.


Animation 파일 반복성(Loop) 체크 설정

어떤 애니메이션 클립(이동 및 정지)은 계속 반복해야 한다. (죽음은 반복하지 않음)
애니메이션 클립은 5개만 사용한다.
Idle / RunB / RunF / RunL / RunR
5개의 애니메이션 클립들을 선택한 후 인스펙트 뷰에서 Wrap Mode를 Loop로 지정 (각각 지정해야 함 한꺼번에 선택이 안됨)
Loop : 애니메이션 클립의 첫 프레임 부터 마지막 프레임까지 계속 반복하는 옵션


플레이어 Animation 배열에 Animation 클립 등록 (1)

Lock 해제
플레이어 애니메이션 속성에서 반복성을 체크한 애니메이션 클립들을 등록해 주는 과정이 필요함
먼저 사용할 애니메이션 클립들을 등록하기 위해서는 플레이어의 Lock을 해제해야 한다.

플레이어 Animation 배열에 Animation 클립 등록 (2)

Idle 를 Animation에 등록 초기 애니메이션 설정
5개를 선택한 후 드래그, 모든 설정이 끝났으면 Lock

Idle 상태의 애니메이션을 자동으로 실행 시켜 줌



플레이어 애니메이션 적용

PlayerCtrl 스크립트를 수정한다.
애니메이션 실행 -> anim.Play(“Idle”);
애니메이션 클립 지정 -> anim.Clip = anim.GetClip(“Idle);

Animation 컴포넌트를 저장할 변수 anim을 선언한다.
GetComponent를 이용하여 Animation 컴포넌트를 가져온다.


플레이어 애니메이션 블렌딩 (1)

현재 수행중인 애니메이션에서 다른 애니메이션으로 변경될때 이를 부드럽게 연결 시켜 주는 방법
CrossFade() 함수를 이용한다.
PlayerCtrl 스크립트 수정하자.

PlayerAnim이라는 함수를 호출한다.

CrossFade(A, B)
A : 변경할 애니메이션 클립 이름
B : 다른 애니메이션 클립으로 페이드 아웃 되는 시간

단순히 정해진 시간동안 애니메이션 변경되는 것이 아니라 애니메이션 키 프레임을 보간(Interpolate)해서 부드럽게 보정시킨다.

if문을 사용하여 전, 후, 좌, 우에 따라 다른 애니메이션 클립이 동작하게 한다.
PlayerAnim() 함수의 인자값으로 h와 v가 들어있는데 키보드 입력 값에 따라 달라진다.


무기 장착


무기 리소스 파일 임포트

Resource/Models 폴더에서 Weapons패키지를 임포트 한다.
05.Models안으로 옮긴다.


무기 장착

오른손 관절을 찾아 내려 가야 한다. : Rweaponholder를 찾는다.
Player - pelvis - stomach - Ribs - chest - Rshoulder - Rarm - Rforearm - Rwrist - Rweaponholder
프로젝트 뷰에서 05.Models/Weapons/w_rifle01 모델을 하이어라키 뷰의 Rweaponholder로 드래그 앤 드롭


무기 위치 보정

유니티를 실행하면 총을 받치고 있는 주인공 캐릭터의 왼손 위치가 부정확하다. (조금 어긋나 있음)
무기류 장착지점 또는 손 관절 무기를 연결하고 난후 가장 빠르게 위치값을 설정하는 방법의 하나는 장착한 무기의 Transform 컴포넌트의 속성을 초기화 하는 것이다
Transform 컴포넌트의 옵션 버튼을 클릭 한 후 Reset을 설정한다.

이것으로 주인공 캐릭터 애니메이션, 무기 장착까지 완료하였다.

profile
나만의 공간

0개의 댓글