오늘은 셰이더에 대해 전반적으로 뜯어보고, 맵을 꾸미는 작업에 대부분의 시간을 보냈다.
맵에 블룸 효과를 주어 이와 같이 나름대로 효과가 있고 퀄리티를 높여보았다.
아직 UI나 레이저 동기화는 조금 덜 되어 있다.
플랫폼에 그라데이션 효과를 주었지만, 아직까지도 많이 밋밋한 모습인 것을 확인할 수 있다.
조금 더 이펙트적으로 화려한 효과를 줄 수 없을까? 고민하던 중에 아웃라인 혹은 효과를 주는 방법을 생각해 보았다.
처음엔 아웃라인을 만드는 작업으로 시도했었지만, 결국 적용하기 어려운 상황이어서 최종적으로 맵에는 Global Volume을 적용하여 빛나는 효과를 주기로 했다.
포스트 프로세싱은 기존에 렌더링된 씬에 렌더링 효과를 더하는 작업입니다. 포스트 프로세싱의 효과는 일반적으로 Scene 뷰에 따라 달라지거나, 최종 렌더링 결과물을 생성하기 전에 렌더링되는 씬 위에 겹쳐서 표시됩니다. 이 기능은 기존 콘텐츠를 수정할 필요 없이 시각적인 효과를 즉시 구현하고 씬의 품질을 한층 개선할 수 있다는 뚜렷한 장점이 있습니다.
유니티 공식 문서에서 정의하고 있는 포스트 프로세싱에 대한 정의이다. 이런 포스트 프로세싱에는 많은 효과가 있으며, 아래와 같은 기능이 있으며 간단하게 이렇게 요약할 수 있다.
여기에서 우리가 사용할 건 블룸 효과이다.
Global Volume을 만들어보자.
그러면 초기에는 이런 화면이 뜰 건데, 여기에서 New 를 통해서 새로운 볼륨 프로필을 만들고, 원하는 효과를 추가해주면 된다. 간단하게 새로운 볼륨을 만든다는 생각으로 New를 누르면 여기서부터 효과를 선택할 수 있다.
이와 같이 많은 효과가 있다는 것을 확인할 수 있으며, 여기서 Bloom을 선택해줄 것이다.
마지막으로 이걸 적용시키기 위해서는 카메라에도 포스트 프로세싱을 활성화해야 한다. 활성화한 후에 결과를 보자.
이와 같이 글로우 효과는 주긴 했지만 카메라가 모든 오브젝트에 블룸 효과를 주는 것이 문제가 되었다. 그러면 블룸 효과를 받는 오브젝트와 받지 않는 오브젝트를 구별할 수 없을까?
이 부분은 꽤 불편하긴 하지만, 카메라를 두 대를 두어 각각 랜더링하는 방식을 활용해야 한다.
모든 플랫폼에는 Ground 레이어가 달려 있으며, Ground 레이어는 블룸의 효과를 받도록 한다.
자식 오브젝트로 포스트 프로세싱의 효과를 받지 않는 카메라를 만든다. Audio Listener를 삭제하고, 포스트 프로세싱의 효과를 받지 않을 레이어를 설정해준다. 또한 카메라 렌더 타입을 오버레이로 설정하여, 메인카메라에 Stack로 등록한다.
이제 이와 같이 하여 제대로 적용되었는지 확인해보자.
플레이어, 총알, UI 등은 빛번짐이 없는데 플랫폼만 빛나는 것을 확인할 수 있다.
아웃라인은 결국 최종적으로 적용되지 못했지만, 어떻게 만들었는지와 왜 적용할 수 없었는지에 대해 설명하고자 한다.
셰이더는 이와 같은 형태로 만들어졌으며, 셰이더 그래프 내용은 다음과 같다.
다만 3D 프로젝트에서는 해당 내용이 잘 적용되는데, 2D 프로젝트인 Round5에서는 해당 내용이 적용되지 않는 것을 확인할 수 있었다. 왜 아웃라인이 표시되지 않는지에 대해서 여러모로 확인해보았다.
Round5의 랜더러 (2D URP 프로젝트)
셰이더 테스트를 위해 따로 판 3D URP 프로젝트의 랜더러
원인은 두 프로젝트에서 렌더러가 달랐고, 2D 랜더러에서는 아웃라인을 표시할 수 없는 상태였던 것이다.
결국 아웃라인을 넣어보기 위해서는 이 3D 랜더러를 강제로 2D 프로젝트에 넣어보는 방법밖에 없었다.
그리고 실제로 이렇게 적용하면 제대로 적용되며 아웃라인을 표시할 수 있기는 하다.
하지만 이러면 또 다른 문제가 발생한다.
갑자기 너무 리얼해져버린 오브젝트들. 원래 카툰 풍의 게임을 만드는 상황에서 이런 그래픽은 의도한 바가 아니었다.
결국엔 아웃라인을 포기하고 2D 랜더러를 사용하는 방식으로 롤백하기로 했으며, 최종적인 느낌은 다음과 같은 맵 분위기로 결정됐다.
이제는 왠만한 작업은 거의 다 끝내놨기 때문에 팀장님한테 일단 지금까지의 작업을 문서화하라는 지시를 받았다. (라기엔 이미 거의 대부분의 내용은 문서화가 되어 있긴 한데...) 조금 쉴 틈이 생겼다고 생각해도 무방할 것 같다.
맵 추가에 대한 건 여전히 고려 대상이긴 하다. 하지만 혼자 단독으로 작업을 시작하기 보다는 방향성을 잡고 맵 제작에 착수하려고 한다.
아직 플레이어가 없어서 UI 작업을 하지 않고 있지만, 인게임에서 승패 등의 UI 작업은 내가 하게 될 가능성이 크다. 이에 대한 작업 준비를 해야 할 것이다.