오늘은 저희 게임의 로프에 대해 글을 써보려 합니다.
로프는 플레이어가 붙잡고 매달리는 오브젝트인인데요
위 움짤처럼 절벽지형에 배치해 레벨을 다채롭게 하는 용도로 쓰고 있습니다.
로프에 대한 아이디어는 단순 장식물에서 시작했습니다.
개발 초기에 맵이 좀 허전해서 장식 용도로 쇠사슬을 만들었었는데요
처음엔 그냥 배경이었지만 만들어놓고 보니 물리적으로 움직이면 좋겠다는 생각을 했습니다.
그래서 유니티의 물리 엔진 기능을 활용해서 물리적인 움직임을 구현했습니다.
이런식으로 HingeJoint를 여러개 쓰고, 물체가 받는 힘을 맨 아래의 RigidBody에 적용시켜서 물리적인 효과를 냈습니다.
이후 한참이 지나고 어느 날, 산악 지형 레벨에서 서브루트에 뭘 채워넣을지 고민하고 있었습니다.
그 때 친구가 예전에 만든 쇠사슬 기능을 이용해서 로프를 만들어보면 어떻겠냐고 제안했습니다.
사실 이런 물리적인 느낌이 보기에는 괜찮지만 플레이적으로는 답답한 느낌을 줄 수가 있습니다.
그리고 구현하는데 시간도 많이 들기 때문에 왠만하면 꺼려지는 편입니다.
하지만 이 경우에는 이미 구현된 걸 사용하는거라 한번 붙잡고 매달리는 기능을 만들어봤습니다.
흔드는 느낌을 좀 다듬어야겠지만 게임에 넣을만 하다는 생각이 들었습니다.
하지만 기존 쇠사슬처럼 표현을 하니 외형이 밧줄처럼 느껴지지 않았습니다.
그래서 일단 각 파트가 분해되지 않게 했습니다.
파트가 분해되지는 않지만 그래도 휘어지는 각도가 분절된 느낌이 있었습니다.
그래서 아예 3D 메쉬를 쓰면 어떨까 싶어서 만들어봤습니다.
그런데 만들고보니 더 이상했습니다.
각도 계산에도 좀 오차가 있는 것 같았지만 메쉬랑 픽셀아트의 궁합이 외형상 영 좋지 않았습니다.
그래서 다시 2D로 돌아오는 게 낫다고 생각하고 가장 눈에 안띄는 방식을 생각해봤습니다.
그리고 라인렌더러를 쓰면 어떨까 싶어서 바로 구현해봤습니다.
방식은 가장 단순하지만 적용한 버전들 중 가장 괜찮았습니다.
그래서 이 버전으로 결정하고 각종 레벨들에 로프를 적용해봤습니다.
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.