이전에 만들어뒀던 캐릭터에 애니메이션을 적용해보았음.
우선 카메라 시점은 쿼터뷰(?)라는 시점으로 정했음.
카메라 시점
메인 카메라에서 직접 카메라 시점을 설정해봤음.
근데 캐릭터를 따라가게 하고싶고 뭔가 카메라 이동도 부드러웠으면 좋겠음.
찾아보니 스크립트로 할 수 있다고 함.
귀찮아서 그냥 시네머신 카메라 라는 것으로 해결하기로함.
스크립트 없이 앵간한건 카메라에서 기본 제공 해준다고 함
한참 찾아도 없길래 다운받아야 하는건가 싶어서 검색하니까 다운 받아야 하는게 맞았음.
다운받으면 메뉴 창에 없던 항목이 생김
여기서 시네머신 버츄얼 카메라 누르면 메인 카메라에 컴포넌트 형태로 들어감.
근데 나는 Hierachy에서 오브젝트 만들어서 하는 방식으로함.
두개가 뭐가 다른건지는 잘 모르겠음..
예전에 유튜브 강의 보고 할 때는 이렇게 했던게 기억나서 그렇게 했음.
그럼 오브젝트가 하나 생기는데 이름을 PlayerFollowCam이라고 해줬음
해당 오브젝트 보면 컴포넌트로 ChinemachineVirtualCamera가 들어가있음.
메인 카메라 가보면 ChinemachineBrain이라는게 생겨있음.
이름만 보면 메인 카메라가 가상 카메라들을 모니터링 하고 관리하는 것 같음.
카메라 각도랑 위치 대충 조정하면 아래와같이 쿼터뷰(?) 처럼 바뀌었음.
FOV 숫자를 작게해서 잘 안보이는데 다음 사진 보면 내가 원하던 대로 되었음.
딱 원하던 시점임.
이제 캐릭터 이동이랑 애니메이션을 적용해야함.
애니메이션 적용
우선 애니메이션 적용을 위해 AcPlayer라는 파일을 만들어줬음.
Player의 모든 애니메이션을 관리하는 파일임
Parameters탭에서 isWalking이라는 Bool타입 변수를 하나 만들어줬음.
이 변수가 true가 되면 Walking애니메이션이 작동하고 false라면 idle애니메이션이 작동하도록 할 것임.
Walking애니메이션은 이전에 다운 받았던 그파일임.
드래그 엔 드롭 해서 Animator창에다가 올려줬음.
아까 isWalking이 true가 되면 작동하도록 해야한다고 했는데 애니메이션들 사이에 화살표 눌러서 설정 해줬음.
Conditions에서 해당하는 변수 가져오고 값도 정해줬음.
여긴 반대로 해줬음.
딱히 애니메이션이 끝까지 재생될 필요가 없어서 Has Exit Time은 체크해제 했음.
이제 애니메이션은 다 만들었음
캐릭터 이동
애니메이션 적용 했으니 잘 동작하는지 움직여봐야함.
처음엔 그냥 아무생각 없이 WASD로 정직하게 움직이도록 만들었음.
근데 카메라가 돌아가있잖슴?
나는 W를 눌렀는데 캐릭터는 오른쪽위 대각선으로 이동하는 것 처럼 보이는거임.
찾아보니 카메라 시점을 고려해서 만들어야 한다고함.
이렇게하면 카메라가 쳐다보는 방향이 Forward가 되는 것 같음.
그리고 캐릭터 회전을 생각안해서 캐릭터가 뒤로 걸어가고 옆으로 걸어가는 문제가있었음.
캐릭터 회전 이라고 주석친 그 부분을 추가해줘야 해서 추가해줬음.
아 그리고 아까 애니메이터에서 만든 "isWalking" 변수의 값은 벡터의 크기가 0보다 커지면 이동중인 것으로 조건 걸어줬음.
스크립트 다 만들고 캐릭터 움직여보니 캐릭터가 땅으로 추락해버림ㅋㅋㅋㅋ
콜라이더? 인지 그거 설정 해줘야 하는건가봄.
근데 귀찮아서 아래 한줄 더 써넣었음.
그러니까 원하던대로 잘 작동함.
다음에 해볼 것
- 점프
- 달리기
- 살금살금 걷기
- 시점 확대/축소 (?)
- 바닥에 희미한 격자 경계선(?) 만들기
내일 시간 많은데 저거 말고 더 해볼만한거 추천좀
점프 할려면 결국엔 리지드바디 + 콜라이더 컴포넌트 달아야할듯?