-
안녕하세요!
지난 첫 번째 글에서는 Edge Collider와 BoxCollider를 이용해 맵 지형을 제작했었는데요
오늘은 추가 맵 지형 애니메이션 제작 과정과 추가 부분 작업을 살펴보겠습니다.
사실 이걸 글로 올릴까 말까 고민을 하다가...
(설명을 하기도 애매해서...)연습 카트 고리니 남겨 놓으면 좋을 것 같아 남기게 됐습니다.
지난번 땅 지형에 이어
오늘은 물가 지형부터
맵 끝인 보스 지형까지, 그리고 뒷 배경을 제작 과정이 있었습니다.
또한 추가적으로 Player가 점프를 뛸 때
발판인 지형물에 막혀 점프가 막히는 현상을 수정했습니다.
(간단한 enable을 true/false 해주는 동작이지만, 함께 살펴보겠습니다.)
우선 받아온 이미지 들은 Sprite Mode를 Multiple로 바꿔주어 여러 장의 스프라이트가 나오게 해 주었습니다.
이후 Sprite Editor에서 Slice를 해 주어 각 Sprite 들을 만들어 주었습니다.
이후 각 해당 구간에 맞게 애니메이션을 만들어 주어 실행되게 해 주었는데요.
맵 지형 01 글의 제작 방식과 크게 다르지 않습니다.
다만, 단축키를 활용해서 보다 손쉽게 할 수 있었던걸 설명해 드리고자 합니다.
바로 단축키 v인데요
유니티 툴바 변환 모드를 w (Translate)로 해 주신 뒤
v키를 사용하면 신속하게 조립이 가능합니다.
바로 Vertex Snapping인데요.
이러한 신속한 점은 인건비 하고도 이어진다고 하는데요
(툴을 다루는 능력을 빨리 키워서 보다 더 빠른 효율적인 작업을 하고 싶습니다.)
(언제쯤 다른 사람이 봤을 때 능숙하게 다룬다고 말을 할 수 있을지...)100마디의 말보다 영상이 훨씬 효과적인 것 같아서 아래 영상으로 보시겠습니다.
00 : 20초
이런 제작과정을 통해 맵을 만들었으며
후면 배경 제작 과정을 보시고 영상으로 보시겠습니다.
후면 배경은 이렇게 맵 뒤에 비어있는 부분을 채워줄 배경입니다.
후면 배경을 따로 둔 이유는, 제작 방법 때문도 있겠지만
현재 있는 맵과 독단적인 후면 배경의 이동을 따로 구현하기 위함입니다.
후면 배경도 따로 slice를 해주어 Sprite를 나누어 주었는데요
여기서 첫 번째 Sprite인 후면 배경은
x축의 처음과 끝이 이어지는 즉 돌아가는 형태가 어색하지 않게 가능한 Sprite입니다.
즉 이 배경은 현재 맵과 다른 자체적인 이동 구현을 부여해줄 예정입니다.
하지만 현재 배치되어 있는 맵엔 빈 공간이 많기에
이 한 장의 sprite로 메우기는 힘이 들었습니다.
그리 하여 Draw Mode를 Tiled로 변경시켜줘
반복 타일은 연출해 주었고
크기는 툴 단축키 t로 조절을 하는 것이 아닌
배율로 늘려 주었습니다.
width의 사이즈가 318 이였기에
그의 *10 배인 3180으로 늘려 주어
x축의 처음과 끝의 Sprite 이미지가 맞게 해 주었습니다.
Start 지점부터 end 지점까지의 맵 제작 부분을 영상으로 보시겠습니다.
00 : 45초
추가 적으로 지형에 막혀 올라가지 못하는 플레이어 부분과
첫 스테이지를 구현할 스크립트 작성 부분을 보시겠습니다.
지형에 막혀 점프가 안 되는 부분은 간단합니다.
PlayerController 스크립트에서
player의 CapsuleCollider(충돌되는 부분)
을 받아와 RigidBody의 velocity를 이용해
- 를 향한다면 콜라이더를 켜 주는 조건문을 Update 함수에서 작성했습니다.
반대로 꺼 주는 기능은 점프를 할 때입니다.
추가적으로
플레이어의 Start위치와 1 Stage 지점을 Collider를 생성해 막아 두었으며
카메라의 이동에 제한 조건을 걸어주었습니다.
우선 첫 번째로 플레이어가 더 이상 이동을 못하게
각 콜라이더를 붙인 벽을 만들어 줬으며,
두 번째 콜라이더는 1 Stage가 클리어 되면 비활성화해줄 예정입니다.
1 Stage는 간단히 위에 나오는 헬기를 요격해야 지나갈 수 있습니다.
두 번째는 MainCamera에 담겨있는 스크립트입니다.
각 플레이어의 위치와 카메라의 위치를 제어하기 위해 변수를 선언해 주었으며
각 조건에 맞을 시에 제한을 걸어 주었습니다.
이 제한 값은 직접 플레이를 해서 확인한 데이터입니다.
transform(카메라)의 위치 값을 x축만 player로 이동하게 해 주며
y축과 z 축은 여전히 카메라 그대로의 값을 받고 이동을 하지 않습니다.
00 : 45초 2D 작업을 할 때마다 느끼는 점은
2D Sprite를 다뤄서 그런가, 작은 작업도
직관적으로 눈에 확 와닿는다입니다.
만들면 만들수록 재밌고 각 애니메이션을 구현하는 것도
엄청난 연출 효과로 다가와서 신기합니다.
좀 더 많은 것을 배워보고 싶은 생각이 드는 프로젝트입니다.
오늘은 여기서 마치며
다음 Metal Slug 글엔 적 구현과
부가적으로 필요한 추가 작업을 담아 찾아오겠습니다.
감사드립니다.
'연습 프로젝트 > 2D.Metal Slug' 카테고리의 다른 글
2D.MetalSlug 07. UI (0) 2022.05.14 2D.MetalSlug 06. Manager (0) 2022.05.07 2D.MetalSlug 04. Map 01 / 02 (0) 2022.04.27 2D.MetalSlug 03. Bullet Fire(Animation Event) (0) 2022.04.25 2D.MetalSlug 02. Player 이동 구현 (0) 2022.04.20