3.18


최종적인 룩을 만들 때 필요한 방향성을 정하자. 생각보다 채도가 높은 배경이 어울리지 않는다.
3.19

늘 그랬듯이, 베이킹은 완벽하지 않다. 하지만 좀 더 신경을 쏟는다면, 어느 정도는 커버가 될 것이다.

작업속도를 늦추는 요인은 대부분 망설임이다. ‘이거 맞나?’라는 생각. 하지만 결국 고생한만큼 보람이 있다. 내일은 언랩을 펴보자. UVPack Master가 작동하지 않는데,아마 버전업이 된 모양이다.
https://blendermarket.com/products/uvpackmaster
UV Pack Master의 가격은 $44. 대충 5만원 정도 하는데, 충분히 돈값을 한다.결과물을 보면 바로 알 수 있다.

이걸 언제 하고 있겠는가.

프로젝션으로 인해 생기는 애매한 부분들이 있다. 이런걸 최소화해주려면 메쉬를 사용하는 방법밖에는 없으니, 폴리곤을 더 사용해 보자.
시행착오로 인해 UV를 펴고 펴고 또 펴고…

대체로 잘 구워졌지만 요부분의 해상도가 좀 약하니 강조해주자.

하지만 이걸 하려면 전체가 흐트러진다. 나름 멋있는데..?!

가까이서 보면 조금 흐트러지지만, 이 정도면 충분하다.

메쉬 파트는 생각보다 잘 구워졌다. 이제 플래너 파트를 만들어보자.

요로케 구우면

잘 그려준다.
하나 아쉬운 것은 직교뷰로만 그려준다는 것.
3.20

삽질을 거듭해서 1차 베이킹을 끝냈다.

이제 이걸 엔진으로 넘겨보자.

아이고 크다. 먼저 배경용 셰이더가 필요하다.

하지만 그래봐야 언릿/컷아웃이다.
경계선 부분이 생각보다 더 거슬리는데, 이를 해결할 방법을 찾아야 한다.

하늘을 깔고..

그림자 셰이더를 만들자. 공부해야 할 것이 좀 있을 줄 알았는데 생각보다 구현이 쉽다. 오브젝트 포지션에서 버텍스의 위치를 클립기준으로 바로 변환하는 것을 일단 월드 기준으로 바꾸고 y를 0으로 조작한다.(2를 곱한 것은 그림자가 너무 짧게 표시되기 때문이다.)
OUT.positionWS = TransformObjectToWorld(IN.positionOS.xyz);
OUT.positionWS.z = OUT.positionWS.y * 2;
OUT.positionWS.y = 0;
OUT.positionHCS = TransformWorldToHClip(OUT.positionWS.xyz);
그림자는 원본메쉬를 쓰기엔 좀 아깝다. 때문에 프록시를 만들어서 붙이는 편이 좋다.

심플리곤이 없으니 그냥 블렌더에서 기본제공하는 Decimate : 0.1, 그리고 그림자가 너무 얇으니 볼품이 없어서 Fatten 0.005를 주어서 조금 두껍게 해주었다. 그런데도 폴리곤이 6300개 정도 된다.

하지만 메쉬 셰도우는 평면에서만 쓸 수 있다. 따라서 바닥에 그리는 오브젝트와의 큐문제가 있을 수 있기 때문에 배경보다 큐를 하나 더 높게 주어 항상 출력되도록 하자.

이제 배경보다 항상 위에 출력된다. 배경 아래로 들어가는 것보다야 이 쪽이 나을 것이다.
이제 다른 캐릭터들의 그림자를 생성해야 한다. 하지만 오늘은 타임오버.
3.20

그림자는 공통된 머티리얼을 사용하고 있으며 스테이지마다 그림자의 색을 변경할 수 있도록 설계되어 있다. 다만 빛 방향에 따라서 각도가 변하지는 않는다. 이는 역광이어도 마찬가지인데, 원리대로라면 그림자도 반전되는 것이 옳지만 이 경우 캐릭터의 위치를 빠르게 파악하는 정보역할을 하기 때문이다.
그 다음은 바닥에 오브젝트를 좀 더 추가해 보자. 지금은 너무 심심한 느낌이 든다.