본문 바로가기
웅진씽크빅 게임 개발 챌린지 일기

개발일지 #17 갑툭튀

by 억만장작 2022. 9. 15.

개발일지 #17 마스킹 구현

why?!

우리 게임은 망가진 우주선에서 사람들을 구하고 괴물을 무찌르는 게임이다. 우주선이 망가졌다는 컨셉 때문에 전체적으로 어두운 환경을 조성하고 주인공 주변으로만 빛이 있다.

항상 보던 모습이다.

하지만 주변이 너무 어두워 버리면 갑갑함을 조성하고

타겟연령층을 고려했을 때 너무 공포스러운 느낌이다.

그렇다고 주변을 밝게 하면 적이 어디서 어떻게 나오는지 확실하게 확인할 수 있지만 긴장감이 떨어진다.

너무 밝다.

그래서 생각한 기능이 마스킹이다.

마스킹은 이미지가 겹친 부분만 랜더링 하거나 겹치지 않은 부분만 렌더링 하는 기능이다. 그래픽에서도 자주 사용하는 기능이다.

개발

마스킹은 생각보다 간단하다. 코드로 어떤 작업이 필요한게 아니라 유니티에서 잘 제공해주기 때문에 그걸 이용하면 클릭 몇 번으로 만들 수 있다.

사용하는 방법은 공홈에서 설명을 잘 해뒀다.

 

스프라이트 마스크 - Unity 매뉴얼

스프라이트 마스크(Sprite Masks)는 스프라이트 또는 스프라이트 그룹을 숨기거나 보여주는 데 사용됩니다. 스프라이트 마스크는 Sprite Renderer 컴포넌트를 사용하는 오브젝트에만 영향을 미칩니다.

docs.unity3d.com

 

마스크를 사용해서 빛이 닿는 부분까지 보이게 만들어 보면??

적에게 마스킹을 적용한 모습

문제

이유를 알 수 없지만 주인공에게서 나오는 빛이 적에게 적용되지 않는다...

이 문제로 하루를 넘어 고통받다가 새 프로젝트에서 다시 만들어 보니 잘 되더라.

결국 내가 한 어떤 세팅 때문에 생긴 문제라는 결론이 나왔고 잘 보니 플레이어에게 붙여둔 light의 가 문제였다.

기본적으로 이렇게 설정되어 있는데
이렇게 설정되어 있었다.

이 부분을 Disabled로 바꿔주니 문제가 해결되었다. 아마 기능을 제대로 확인해보지 않고 Quality라는 말만 보고 세팅했던 거 같다.

짜잔~! 완성이다!

적만 적용하는 것보다 아이템도 적용해주는 게 좋을 거 같아서 아이템도 적용시켜줬다.

아이템, 적 모두에게 마스킹을 적용했다.

마무으리

매 블로그 포스팅마다 내 모든 걸 보여주는 느낌이라 부끄럽다. 하지만 그만큼 누군가가 피드백해준다면 발전할 수 있는 발판이 될 수 있지 않을까? 그러니까 누구라도 피드백을 해주면 좋겠다. 이제 2달 조금 더 남았다! 화이팅!!!

댓글