3번째 개인 프로젝트 구상 및 플레이어 작업
스파르타 내배캠 30일차 TIL
C1조_ 1조라도 안 보이면
이번 주는 게임개발 숙련 주차이다. 유니티 3D 게임을 개발하는 강의와 함께 과제는 스파르타 던전 탐험 만들기라는 주제가 주어졌다. 하지만 예시로 보여준 게임은 최근 3D 게임에서 제일 인기가 많았던 시뮬레이션 장르이다.(정확히는 항아리 장르...)
기획
하지만 내가 만들고 싶은 게임이면 전부 괜찮다라는 말씀에 내가 좋아하는 진짜 시뮬레이션 게임을 만들고자 한다. 장르 레퍼런스는 다음 게임과 같다.
청소 달성률 100%를 넘기는 것이 목적인 간단한 청소 게임이다. 이 게임과 같이 나는 폐실험실에서 실험자료를 안전하게 가지고 나오는 간단한 룰의 게임을 만들고자 한다.
분위기 레퍼런스는 다음과 같다.
아무래도 폐 건물이 배경이다 보니 어두운 분위기와 푸른색, 초록색 같은 한색의 라이팅을 잘 사용해야 할 것 같다.
기능 개발
개발할 기능은 다음과 같이 정리했다.
목요일 9시까지 진행해야 해서 최대한으로 잡아놨다. 현재는 플레이어를 전부 구현한 상태이다.
플레이어는 inputsystem으로 구현하였고 InputAction의 CallbackContext를 받아와 작동하게 했다.
...
// 기본 움직임
private void Move() // 움직임 로직
{
Vector3 dir = transform.forward * curMovementInput.y + transform.right * curMovementInput.x;
dir *= speed;
dir.y = rigidbody.velocity.y;
rigidbody.velocity = dir;
}
// 화면 회전
private void CameraLook() // 카메라 움직임 로직
{
camCurXRot += mouseDelta.y * lookSensitivity;
camCurXRot = Mathf.Clamp(camCurXRot, minXLook, maxXLook); // camcurxrot를 min에서 max까지 부드럽게
cameraContainer.localEulerAngles = new Vector3(-camCurXRot, 0, 0);
transform.eulerAngles += new Vector3(0, mouseDelta.x * lookSensitivity, 0);
}
// 앉아서 이동
IEnumerator CrouchCoroutine()
{
float _posY = cameraContainer.transform.localPosition.y;
int cnt = 0;
while(_posY != applyCrouchPosY)
{
cnt++;
_posY = Mathf.Lerp(_posY, applyCrouchPosY, 0.2f);
cameraContainer.transform.localPosition = new Vector3(0, _posY, 0);
if (cnt > 15) break;
yield return null;
}
cameraContainer.transform.localPosition = new Vector3(0, applyCrouchPosY, 0);
}
...요약
걷기, 뛰기, 앉기 모두 잘 구현된 것을 확인할 수 있으나 영상에서 보면 읭? 싶은게 있다. 바로 화면 전환인데... 잘 보면 카메라가 캐릭터 뒷통수로 넘어간다. 그 말은 캐릭터 머리가 뒤로 꺾인다는 건데 ㅋ 안되겠지... 내일 딱 한 시간만 고민 해보고 애니메이션 넣는 로직과 함께 여쭤보러 가야지.
해결했다? 너무 쉽게 해결해서 이게 맞는지 모르겠지만...
원인은 cameracontainer에 있었다. 1인칭 시점을 위해 플레이어 안에서 메인 카메라를 담는 Camera Container 오브젝트를 회전 시키니 발생한 문제였다. 그래서 직접 메인 카메라의 x값이 변화되도록 수정하였고 위와 같은 결과를 만들 수 있었다. 이때 작은 문제가 있었는데 바로 캐릭터가 자신의 발끝을 내려보면 캐릭터의 메쉬 안이 보인다는 것이었다. 그래서 카메라의 z값을 올려 카메라가 플레이어의 앞쪽에서 움직일 수 있게 하였다.
참고 문헌 - 앉기
https://ansohxxn.github.io/unity%20lesson%203/ch1-2/
Chapter 1-2. 캐릭터, 지형 : 달리기, 부드럽게 앉기, 점프
인프런에 있는 케이디님의 [유니티 3D] 실전! 생존게임 만들기 - Advanced 강의를 듣고 정리한 필기입니다. 😀 🌜 강의 들으러 가기 Click
ansohxxn.github.io