이전에 만들어뒀던 캐릭터에 애니메이션을 적용해보았음.

우선 카메라 시점은 쿼터뷰(?)라는 시점으로 정했음.


카메라 시점

메인 카메라에서 직접 카메라 시점을 설정해봤음.

근데 캐릭터를 따라가게 하고싶고 뭔가 카메라 이동도 부드러웠으면 좋겠음.


찾아보니 스크립트로 할 수 있다고 함.

귀찮아서 그냥 시네머신 카메라 라는 것으로 해결하기로함.


스크립트 없이 앵간한건 카메라에서 기본 제공 해준다고 함

한참 찾아도 없길래 다운받아야 하는건가 싶어서 검색하니까 다운 받아야 하는게 맞았음.

viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ce98ffa1bd625317b1751a89bcfedf2a693cb65089b0c524b29dbeb1d20ec95f5802c5613497ff13a252c7c32b43b30d0cc0f8b2d55ba108689d7c132


다운받으면 메뉴 창에 없던 항목이 생김

여기서 시네머신 버츄얼 카메라 누르면 메인 카메라에 컴포넌트 형태로 들어감.

viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ce98ffa1bd625317b1751a89bcfedf2a693cb65089b0c524b29dbeb1d20ec95f5802c5613497ff13a252c7c32b43b30d0cc5c877902b740c75da353b0



근데 나는 Hierachy에서 오브젝트 만들어서 하는 방식으로함.

두개가 뭐가 다른건지는 잘 모르겠음..


예전에 유튜브 강의 보고 할 때는 이렇게 했던게 기억나서 그렇게 했음.


a15714ab041eb360be3335625683746f00534429d6a6e289d53567f79d1dcd6ef527e25d42b5133b75659e3985



그럼 오브젝트가 하나 생기는데 이름을 PlayerFollowCam이라고 해줬음

해당 오브젝트 보면 컴포넌트로 ChinemachineVirtualCamera가 들어가있음.


메인 카메라 가보면 ChinemachineBrain이라는게 생겨있음.

이름만 보면 메인 카메라가 가상 카메라들을 모니터링 하고 관리하는 것 같음.

a15714ab041eb360be3335625683746f00534429d6a6e289d53462f79d17cd6e37b126f8fa39c5e916565372c0


카메라 각도랑 위치 대충 조정하면 아래와같이 쿼터뷰(?) 처럼 바뀌었음.

FOV 숫자를 작게해서 잘 안보이는데 다음 사진 보면 내가 원하던 대로 되었음.

a15714ab041eb360be3335625683746f00534429d6a6e289d53462f79e13cd6ec7a6b38924afa2ea64c9a7ced6


딱 원하던 시점임.

이제 캐릭터 이동이랑 애니메이션을 적용해야함.

a15714ab041eb360be3335625683746f00534429d6a6e289d53462f69f12cd6e873d30419e9571f5d8761e654e


애니메이션 적용

우선 애니메이션 적용을 위해 AcPlayer라는 파일을 만들어줬음.

Player의 모든 애니메이션을 관리하는 파일임


Parameters탭에서 isWalking이라는 Bool타입 변수를 하나 만들어줬음.

이 변수가 true가 되면 Walking애니메이션이 작동하고 false라면 idle애니메이션이 작동하도록 할 것임.

a15714ab041eb360be3335625683746f00534429d6a6e289d53463f49c10cd6ed845885c551c6a46d018dd1f28


Walking애니메이션은 이전에 다운 받았던 그파일임.

드래그 엔 드롭 해서 Animator창에다가 올려줬음.

a15714ab041eb360be3335625683746f00534429d6a6e289d53463f49d15cd6ef7c09404707e1c6191a3e58e


아까 isWalking이 true가 되면 작동하도록 해야한다고 했는데 애니메이션들 사이에 화살표 눌러서 설정 해줬음.

Conditions에서 해당하는 변수 가져오고 값도 정해줬음.

a15714ab041eb360be3335625683746f00534429d6a6e289d53463f49e11cd6eeac792c50bab9f214079a3a41b


여긴 반대로 해줬음.

a15714ab041eb360be3335625683746f00534429d6a6e289d53463f49f15cd6e2fd2d448f016d06e9f7a0e8031


딱히 애니메이션이 끝까지 재생될 필요가 없어서 Has Exit Time은 체크해제 했음.

이제 애니메이션은 다 만들었음


캐릭터 이동

애니메이션 적용 했으니 잘 동작하는지 움직여봐야함.

처음엔 그냥 아무생각 없이 WASD로 정직하게 움직이도록 만들었음.


근데 카메라가 돌아가있잖슴?

나는 W를 눌렀는데 캐릭터는 오른쪽위 대각선으로 이동하는 것 처럼 보이는거임.


찾아보니 카메라 시점을 고려해서 만들어야 한다고함.

이렇게하면 카메라가 쳐다보는 방향이 Forward가 되는 것 같음.


그리고 캐릭터 회전을 생각안해서 캐릭터가 뒤로 걸어가고 옆으로 걸어가는 문제가있었음.

캐릭터 회전 이라고 주석친 그 부분을 추가해줘야 해서 추가해줬음.


아 그리고 아까 애니메이터에서 만든 "isWalking" 변수의 값은 벡터의 크기가 0보다 커지면 이동중인 것으로 조건 걸어줬음.

a15714ab041eb360be3335625683746f00534429d6a6e289d53460f19e1dcd6e2afd285711cef5493e267281b3


스크립트 다 만들고 캐릭터 움직여보니 캐릭터가 땅으로 추락해버림ㅋㅋㅋㅋ


a16b24ad180f76a167b9f68b12d21a1db6fec8ba8d09


콜라이더? 인지 그거 설정 해줘야 하는건가봄.

근데 귀찮아서 아래 한줄 더 써넣었음.

a15714ab041eb360be3335625683746f00534429d6a6e289d53460f69c10cd6e6706c166bbaf83a375b890b5


그러니까 원하던대로 잘 작동함.

a16b24ad180fb4538632237d58d62d3b321b98a6e24f557b5a82969b6c



다음에 해볼 것

- 점프

- 달리기

- 살금살금 걷기

- 시점 확대/축소  (?)

- 바닥에 희미한 격자 경계선(?) 만들기



내일 시간 많은데 저거 말고 더 해볼만한거 추천좀