드디어 노가다를 통해 원하던 캐릭터를 사용 할 수 있게 됐다.
원하는 캐릭터는 뼈도 있고 애니메이션도 있었는데 무료 3D 모델이다 보니까 애니메이션이 한곳에 다 합쳐져있었다.
이걸 하나 하나의 애니메이션으로 자르고 루프를 시켰을때 어색하지 않게 하기위해 생고생을 했다..
필요한 애니메이션들의 세팅을 마치고 저번에 하던 이동과 카메라의 회전을 작업했다.
리틀넛이라는 빈 오브젝트 안에 캐릭터 모델을 넣고, Pivot이라는 축을 만들어서 캐릭터의 어깨~머리쯤 오게 세팅한다.
pivot안에 카메라를 넣고 z축을 조정을 좀 해주면 시점이 예쁘다.
카메라 회전
IDragHandler로 패널에서 드래그한 델타값을 받아서 회전을 시켜준다.
카메라를 회전시키는게 아니라 아까 설정했던 pivot(축)을 회전시켜줘야한다.
//x값이 0 이하로 떨어지면 360이 되어 회전값이 이상해지므로 180이 넘어가면 360을 빼서 맞춰준다.
if (myCamerRot.x > 180.0f) myCamerRot.x -= 360.0f;
myCamerRot.x = Mathf.Clamp(myCamerRot.x, VerticalRotRange.x, VerticalRotRange.y);
pivot의 x축을 360도 회전시키게 냅두면 나중에 맵에서 회전시킬때 맵 아래까지 다 보이게 되어버린다.
그래서 최소값 최대값을 설정해두었다.
또 로테이션을 오일러값으로 로그를 찍어보면 X축의 값이 0이하로 떨어지면 마이너스가 아니라 360이 되어버린다.
그럼 Mathf.Clamp의 영향을 받아서 x축의 값이 바로 바뀌어버리는데 이 문제를 해결하기 위해 if문을 적어줬다.
그러면 x축을 아래로 내리다가 X축의 값이 0 -> 358이 되었다면 if문을 타고 358 - 360 해서 -2가 된다.
카메라 회전은 나중에 맵을 만들고 나서 맵의 오브젝트들에 의해 시야가 가려졌을때 처리를 또 해줘야 할 것 같다.
캐릭터 회전
쿼터니언의 룩로테이션으로 보는 방향으로 회전하게 만들어 주었다.
팀프로젝트 진행할때 골드메탈님의 블로그를 보고 참고했다.
설명이 아주 깔끔하게 되어있으니 궁금하신분은 밑의 링크에서 확인하시면 된다.
https://m.blog.naver.com/gold_metal/220495685382
이렇게 다 진행을 하고 나면 문제가 하나 생긴다.
조이스틱을 사용하기 때문에 문제인건데 ..
보통의 사용자들은 ⬆ 위쪽으로 조이스틱을 올린다면 내 카메라가 보는 방향에서 위쪽으로 캐릭터가 이동하는것을 기대하는데 , 이 캐릭터는 내가 구해놓은 월드 값으로 움직이기 때문에 카메라를 돌려도 그렇게 이동 해주진 않는다.
Quaternion MyRotation = Quaternion.Euler(0, Camera.main.transform.rotation.eulerAngles.y, 0);
Vector3 dir = MyRotation * new Vector3(myJoystic.MovePos.x, 0, myJoystic.MovePos.z);
this.transform.position += dir * Time.deltaTime;
내 카메라의 Y축 값만 가져와서 쿼터니언 값에 넣어준다.
그리고 이 쿼터니언 값에 내가 움직일 방향을 구했던 벡터를 곱해준다.
(벡터를 앞에 두면 오류가 난다.)
이제 카메라가 보는 방향을 기준으로 이동하는것을 볼 수 있다.
일단 다음엔 기본적인 UI와 게임 시스템을 만들고나서..
게임의 배경이 우주이기 때문에 특정 스텟을 소모시켜 하늘을 나는 기능을 만들어 볼 예정이다.
개인포폴 2일차 작업 끝
'개발일지 > Unity 개인 포트폴리오 개발일지' 카테고리의 다른 글
개인포폴 작업 4일차 / 레이저 총알과 로딩화면 자료 준비 (0) | 2022.06.19 |
---|---|
개인 포폴 작업 3일차 / UI 및 기능 구현 (0) | 2022.06.18 |
개인 포트폴리오 작업 시작 / 모바일 조이스틱 이동 (0) | 2022.06.16 |
개인 포트폴리오 장르에 대한 고민 / 유니티 3D 모델링 사이트 (0) | 2022.06.11 |
개인 포트폴리오 준비 시작 - Git Hub 사용해보기 (0) | 2022.06.11 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!