이전 게시물에서 Sunny Land를 이용한 배경을 만들었습니다.
이제 애니메이션을 만들겠습니다.
Scripts 폴더를 만들어서 PlayerController 라고 이름 짓고 C# Script 파일을 만듭니다.
Project 창에서 Player 안의 Idle 중 하나를 드래그하여 가져옵니다.
이 파일을 Player로 이름 변경했습니다.
사이즈는 X는 5, Y는 5, Z는 1 그대로 둡니다.
지면과 닿도록 키보드 W를 눌러 화살표 드래그하고 위치를 조정합니다.
아까 만든 PlayerController 파일을 Hierarchy 창의 Player 안에 드래그하여 넣어줍니다.
Player를 선택한 상태에서 Ctrl+6을 누르면 애니메이션 창이 뜹니다.
Create 누르고 유니티 파일의 Asset에 Animation으로 새 폴더를 추가했습니다.
파일 이름을 Idle로 변경하고 저장했습니다.
Idle은 플레이어의 기본 자세입니다.
Idle 파일의 여우 4개를 다 드래그해서 가져옵니다.
전체를 선택하고 파란색 바로 조정했습니다.
이 위치가 너무 적당해야 애니메이션이 자연스럽습니다.
자연스러운 움직임을 위해 마지막 모션 하나를 복사 붙여넣기 했습니다.
맨 마지막에 배치하고 간격을 수정했습니다.
달릴 때 모션도 Animation 파일에 추가해야 합니다.
+ 버튼을 누르고 이름은 Run 으로 변경하여 저장했습니다.
Run 파일에서 여우 6개를 드래그하여 가져오고 간격을 조정했습니다.
Player의 Animator 컨트롤러를 Player로 수정했습니다.
아래 player는 이 Sunny Land 파일에 기본적으로 있는 컨트롤러인데
배우는 과정이라 직접 만든 파일을 사용했습니다.
Window 창의 Animation 에서 Animator를 클릭했습니다.
Hierarchy 창의 Player를 누르면 나오는 화면입니다.
왼쪽의 Paramaters 에서 + 버튼을 눌러 Bool로 추가했습니다.
IsMove로 이름 변경했습니다.
Idle이나 Run을 선택한 상태에서 마우스 우클릭으로 Make Transition을 누르고 양방향 화살표를 만듭니다.
Idle → Run 으로 갈 때는 True
Run → Idle 으로 갈 때는 False
Has Exit Time, Fixed Duration 에 체크를 해제하고
Transition Duration과 Transition Offset은 0으로 설정합니다.
Has Exit Time, Fixed Duration 에 체크를 해제하면 애니메이션 상태 전환이 플레이어의 입력에 빠르게 반응하여 즉각적으로 전환됩니다.
Transition Duration을 0으로 설정하면 Idle에서 Run 상태로의 전환이 중간 애니메이션 없이 곧바로 이루어집니다.
Transition Offset을 0으로 설정하면 전환 후 새로운 애니메이션이 항상 처음부터 재생되어 일관된 흐름이 유지됩니다.
Hierarchy 창의 BackGround에서 Add Component를 눌러 3가지를 추가합니다.
- 1. Tilemap Collider 2D (충돌 감지)
- 2. Rigidbody 2D (충돌 감지, 물리연산)
- 3. Composite Collider 2D (성능 최적화와 충돌 감지의 정확성)
Rigidbody 2D에서 Body Type을 Static으로 변경합니다.
고정된 장애물을 표현할 때는 Static으로 바꾸어 물리 연산의 부담을 줄이고 게임의 성능을 향상시킵니다.
TilemapCollider 2D에서 Used By Composite에 체크하면 타일이 개별이 아니라 결합되기에 성능이 최적화됩니다.
Hierarchy 창의 Player에서 Add Component를 눌러 2가지를 추가합니다.
- 1. Rigidbody 2D (물리적 움직임)
- 2. Box Collider 2D (충돌 영역 정의)
Box Collider 2D의 Edit Collide를 누르고 캐릭터를 확대하여 박스 사이즈를 변경해줍니다.
저 박스 사이즈가 플레이어의 충돌 영역입니다.
위쪽 메뉴에서 Edit → Project Settings로 들어옵니다.
Input Manager에서 Axis를 누르고 Jump를 수정합니다.
Positive Button을 점프를 할 원하는 키로 수정하면 되는데 저는 space로 변경했습니다.
아래는 프로그램 구현을 위한 PlayerController C++ 파일입니다.
실제 유니티 화면 영상입니다.
방향키는 ←→, 점프키는 Space 입니다.
'유니티' 카테고리의 다른 글
[유니티] 초보자를 위한 기본적인 배경 만드는 과정 (1) | 2024.07.12 |
---|