블로그 이미지
한국IT전문학교 게임프로그래밍 2018년 졸업생 / 배우고 익히고 정리하는 곳 무명의 공룡

카테고리

분류 전체보기 (133)
Unity (5)
AR / VR (8)
홀로렌즈2 (2)
Unity 3D 액션 게임 제작 (2)
정리 (9)
소소한 배움 (6)
그외 (7)
비공개 (56)
--이전 프로젝트들-- (0)
Tree-sha (팀 3D) (9)
Icicle Game (2D) (19)
MMD RPG (3D) (9)
Total
Today
Yesterday

달력

« » 2024.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

공지사항

이 글로 이 게임의 기믹 설명은 끝입니다.


여기서 특히 부유석 관련해서는 코드까지 보여가며 작성하려 했는데 다른 기믹 다 글로 설명되있고 부유석만 자세한 것도 웃긴거 같아서 자세하게 적는건 아예 별도로 작성하겠습니다.



1. -부유석-



이 코드를 쓰는 가장 대표적인 오브젝트입니다.


플레이어가 올라가고 그걸 탄 채로 이동할 수 있습니다.


위 기능 하나만 생각하며 짠 코드입니다만 레벨디자이너가 이거 하나로 정말 많은 것을 만들어내면서 그 과정에서 여러 기능이 추가되었습니다.


이 게임에 움직이는 모든 코드의 근원이 바로 이 코드입니다. 부유석 뿐만 아니라 움직이는 바이러스, 레버나 발판을 통한 움직임 또한 전부 이 코드가 들어있거나 이 코드를 살짝 변형한 것입니다.


보통은 혼자 움직이지만 캐릭터가 올라가면 움직이기 시작하는 것도 있습니다. 이 경우엔 왕복하지 않고 끝에 도달하면 사라지며 다시 처음 위치로 돌아옵니다.


캐릭터가 CharacterController 컴포넌트를 사용하기에 일반적으로 Rigidbody 하듯 해서는 캐릭터가 타고 가지 않고 따로 움직입니다.


그렇기에 캐릭터도 타고 가듯이 움직이게 하려면 여기에도 캐릭터를 움직이게 하는 코드를 넣어줄 필요가 있습니다.



이 게임의 캐릭터의 경우 발쪽에 이런 콜라이더가 하나 들어 있습니다.


이것을 통해 캐릭터가 이 부유석에 탑승했다는 것을 알 수 있으며 탑승 중에는 부유석의 이동거리와 동일하게 캐릭터도 이동시켜 마치 타고가는 것처럼 보이게 만듭니다.


레이캐스트를 밑으로 쏘는 방법도 가능한데 그러면 가장자리에 걸쳤을 때 인식을 하지 못 하기에 위 방법을 사용했습니다.



2. -버섯-



슈퍼마리오나 비슷한 장르의 게임에서 스프링 점프대의 기능을 맡고 있는 버섯입니다.


밟으면 버섯의 갓이 향하고 있는 방향으로 튀어오릅니다.


튜토리얼에 설명이 빠진 기믹 중 하나이기도 합니다. 초창기 기믹 중 하나인데 왜 빠졌는지는 모르겠습니다.


초창기에는 이 버섯이 대각선으로 막 배치되어 있었고 수차례 튕기면서 목적지에 도달하는 구역이 있었습니다만 맵의 형태가 지금과 같은 원통이 되면서 삭제되었습니다.



3. -미끄러운 이끼-



올라타면 미끄러지는 이끼가 낀 땅(나무)입니다.


이것도 Rigidbody였다면 그냥 Physic Material을 쓰면 해결될 부분이었지만 아니기 때문에 직접 구현한 기믹입니다.


버섯과 마찬가지로 튜토리얼에서 빠져 있습니다. 이것도 초창기 기믹인데 왜 빠졌는지는 모르겠습니다.


아마 건드린 시간에 비해 가장 못나온 기믹이 아닐까 합니다.


먼저 기획쪽에서도 원래는 동굴 같은 느낌을 지날 때 얼음이 깔려 있어서 미끄러지는데 그 사이에 슬라이드로 장애물을 파괴시키면서 갔어야 했습니다...


만 나무가 되어서 이렇게 되었습니다.


그리고 코드면으로도 스스로 굉장한걸 만들어보겠다고 스키점프같은 것도 가능하게 하고 깔때기 같이 생긴 곳에서 미끄러지면 빙글빙글 돌면서 점점 밑으로 내려가는 것도 가능하게 하려 했는데... 결과적으로는 반만 성공했고 기획측에서도 어차피 모바일이라 그렇게 형태가 특이하게 생긴 콜라이더는 사용 할수도 없다고 해서 그만뒀습니다.


아무튼 올라타면 좌우 조작은 불가능해지고 점프만 가능하며 미끄러지고 있을 때는 점점 가속도가 붙습니다.


미끄러지는 도중 조작으로 가속도 조절, 거꾸로 향하면서 타면 역으로 미끄러지다 다시 정방향으로 미끄러지게 하기, 스키점프 기능 등 얘기가 오가고 임시로 구현해본게 좀 되지만 결국 다 삭제하기로 했습니다.




번외로


이런 돌이 마지막에 나옵니다만 얘는 닿으면 깔려죽는 코드만 있고 나머진 전부 Rigidbody 컴포넌트를 이용한 물리엔진을 통해 구릅니다. 이 구간은 맵이 일 자라 물리엔진으로 굴려도 옆으로 새지 않더군요.





이거로 기믹분석? 은 끝이 났습니다.


결국 다 쓰고 보니 그냥 기믹 설명 같아서 나중에 코드쪽으로 제대로 다시 쓸거 같습니다만 아무튼...


다음은 보스 AI에 대해 다루겠습니다.

Posted by 무명의 공룡
, |