ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2D.MetalSlug 05. Map 02 / 02
    연습 프로젝트/2D.Metal Slug

    안녕하세요!

    지난 첫 번째 글에서는 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

    댓글

김효겸 / Tel. 010-7735-0580 / E-mail. dollzzang2@hanmail.net