이 글은 평범한 취준생이 평범하게 자신이 당일 배운것들과 느낀점들을 쓰기 때문에 정보가 정확하지 않을 수 있습니다.
이제 실전 팀플이 얼마 남지 않았다. 하지만 나는 내 성격 때문인지는 몰라도 내 실력에 대해 자신이 없었다. 다른 사람들이 하는 것들을 보니 내가 점점 위축이 되는 느낌이었다. 다른 사람들에 비해 JSON도 한번도 다루어보지 않았고, 프레임워크도 개인적으로 만든게 없고, 그렇다고 특출나게 어느 한 부분을 잘한다 이런것도 아니었다. 그래서 어짜피 심화단계에서는 개인 과제가 그렇게 많은것 같지 않아서, 내가 이건 확실히 알고 가야겠다 라는 부분들을 실습하고, TIL에 종종 적어둘 예정이다. 일단 처음은 내가 Timeline을 배우고 싶다 한 계기가 시네머신과 관련이 있어서, 유튜브에 시네머신 기초 강의를 찾아서 직접 실습하고 복습해보기로 했다.
일단 직접 본 유튜브 영상은 다음과 같다. 아마 시네머신 공부를 해봤다 하는 사람들이면 바로 어떤 영상인지 알것이다.
https://www.youtube.com/watch?v=DXFrfh1oy3M&t=381s
사실 부트캠프에서 준 시네머신 관련 강의가 있긴하지만, 입문 강의를 듣고 만든 결과물에 시네머신을 연습하는 형태라서 입문 강의를 다 듣지 않은 나에게는 오히려 입문 강의를 처음부터 끝까지 들어야 하기 때문에, 그럴 시간은 없다고 판단하여 해당 영상을 선택했다. (Q. 입문 때 안 보고 뭐했니 >> A. C# 개인과제에 몰두함)
0. 캐릭터 컨트롤...?
일단 영상의 맨 처음처럼 에셋설치와 설정까지 완료하고 한번 다 본 다음 영상처럼 따라만들기 시작했다. 그런데 해당 샘플에 있는 캐릭터를 움직이니, 마치 저번 3D 숙련 개인과제때의 내가 원하던 움직임처럼 움직였다. 말이 어렵게 쓰이긴 했는데, 내가 원하던 컨트롤러가 여기 있었다는 뜻이었다. 나도 다음에 저렇게 만들어봐야겠다.
1. Blend List Camera
첫번째로 Blend List Camera이다. 이겋 create 하면, 카메라 2개가 묶음으로 생성된다.
일단 위에 카메라들을 플레이어를 바라보게 LookAt에 넣어준다. 그리고 Blend List Camera의 컴포넌트인 CinemachineBlendListCamera를 보면, 해당 카메라들을 전체적으로 관리해줄수 있다.
- Blend in - 카메라 전환 방법, s 뒤의 숫자는 전환 시간
- Virtual Camera Children - 해당 Blend List 의 카메라들(자식들)
- Loop - 해당 카메라 순회를 반복한다.
이렇게 설정하고 실행시켜보면...
영상에서 나온것과 똑같이는 아니지만 내가 배치한 카메라를 순회한다.
2. State-Driven Camera
해당 카메라는 애니메이션의 상태를 판단하여 내가 설정해둔 애니메이션에 맞는 카메라가 비출수 있게 해준다. 일단 유튜브 영상처럼 카메라를 세팅하여 주었다.
그리고 영상처럼 2번째 카메라는 플레이어를 보도록 하였고, 3번째 카메라는 FreeLookCamera로 플레이어를 따라다니고 바라보게끔 하였다. 이제 CinemachineStateDrivenCamera 컴포넌트를 보자.
일단 먼저 Animated Target에 플레이어를 넣어준다. 그레고 Custom Blends 밑에 있는 표를 보면 저기에 원래 아무것도 없지만, + 버튼을 눌러주고 본인이 원하는 카메라를 어느 애니메이션에서 비추게 할건지를 정할 수 있다.
- State - 상태, 애니메이션을 넣어주면 된다.
- Camera - State에 맞게 작동시킬 카메라
- Wait - 기다릴 시간
그렇게 잘 설정해주면 유튜브 영상처럼 잘 동작하는걸 볼 수 있다.
3. Clear Shot Camera
말 그대로 원하는 목표물을 장애물 없이 깔끔하게 찍는 카메라이다.
일단 ClearShot Camera와 카메라들을 생성해주고, 카메라들을 원하는 곳에 배치시킨다.
그리고 해당 카메라들이 비추기를 원하는 목표물만 설정해두면 끝난다. 그럼 자동적으로 목표물이 어느 장애물에 가려져서 보이지 않아도 다른 카메라가 해당 목표물을 비출 것이다.
다만 여기서 개인적으로 궁금했던 부분이, 과연 목표물을 clear하게 찍을 수 있는 카메라가 없으면 어떻게 될까? 였다. 그래서 따로 세팅하고 실험해보았다.
건물 뒤편에 있는 카메라를 제거하고 실험해보았다. 실험 결과, 건물 내부의 카메라가 목표물을 계속 찍다가 벽에 의해 목표물이 안보이게 되어도 계속 찍는것을 확인할 수 있다. 아무래도 Clear하게 찍을 수 있는 카메라가 없는 판정이 나는 경우에는 최근에 찍던 카메라로 유지가 되는것 같다.
4. Dolly Camera With Track
사실 이 부분은 어제 TIL로 적었지만, 맘에 들지 않아서 일단 한번 더 적으려고 한다.(사실 영상을 보고 더 잘 이해했기 때문, 그리고 어제 또 잘못되게 이해했기 때문)
일단 먼저 생성부터 시켜준다.
그렇다면 이러게 2개가 나오는데, 버츄얼 카메라는 프레이어를 따라다니고 보게끔 설정해준다(Follow / Look At)
그리고 Dolly Track에 가면 Way Points가 있는데, 이걸 이용해서 어제 TiL에 말했던 철길을 만들고 세팅할 수 있다.
그런 후, 버츄얼 카메라에 있는 Auto Dolly에 가서 enabled를 체크해주자.
이렇게 하면 영상처럼 목표물을 내가 설정한 철길 내에서만 찍도록 할 수 있다.
5. Dolly Track with Cart
아마 이게 어제 내가 적은 TIL 내용과 부합하는 내용이 아닌가 싶다.
일단 위에 생성해두었던 Track과 카메라는 남겨두고, Cart를 생성한다. 같이 생성된 카메라는 삭제했다. 그리고 카트의 속도를 설정해주고, Path에 아까 만들어두었던 Track을 넣어준다. 그리고 카메라는 Cart를 따라가게 만들어준다.
물론 유튜브 영상에서는 Track에 Loop를 체크해주었는데, 그건 본인 연출을 설정하기 나름이니 참고하면 될 것 같다.
6. Target Group Camera
이 카메라 기능은 간단하면서도 가장 신기했던 기능중 하나이다. 일단 큐브 두개와 해당 카메라를 생성한다.
그리고 플레이어와 큐브 2개를 Target Group안에 넣어준다.
이러면 자동적으로 카메라가 Target이 된 목표물들을 한 장면에 찍으려고 할 것이다.
7. Mixing Camera
이건 영상을 봤음에도 불구하고 쓰임새가 어디에 쓰일지 잘 감이 안잡히는 것들중 하나였다. 쉽게 말하자면, 카메라들의 가중치를 계산해 이들의 평균치를 낸다고 생각하면 될 것 같다. 자세한 건 영상을 참고하면 될것 같다.
- Child Camera weights - 각 자식 카메라 가중치 설정 / 카메라 추가 가능
8. 2D Camera
사실상 Virtual Camera랑 다를건 없지만, 해당 카메라 값들이 2D 에 조금 더 적합하게 되어있다고 생각하면 된다. 위치를 조금 바꿔서 설정하면, 영상처럼 2D처럼 보이게 된다. (물론 Follow / LookAt 설정은 해주었다.)