유니티/3D

유니티 3D - 머티리얼(Material) 분홍색 해결 방법 (feat : URP )

근본넘치는개발자 2024. 10. 24. 22:57

3D 프로젝트를 연습하기 위해 유니티 스토어에서 무료 에셋을 구했다. 

 


Import를 하니 예시와는 다르게 머테리얼들이 분홍색으로 떠서 

해결 방법을 찾았고 그 과정을 공유하고자 한다.

일단 찾아보니 변하는 이유도,

해결 방법도 다 가지각색이었다.

 

누구는 그냥 셰이더 들어가서

아무 속성값 숫자 하나 바꾸니까 해결되었다고 하는 사람도 있던데;;

 

일단 내가 시도했던 방법을 소개한다.

(가장 많이 나오고 대부분 이걸로 해결되는 듯하다.)

(현재 사용하는 환경은 유니티 2022 버전 기준 URP다. / 더 높은 버전도 아마 될 것 같긴 하다.)

 

Edit - Project Setting - Graphics로 가면 어떤 환경인지 알 수 있다.

None이라면 Builtin이라고. 

 

 

해결 방법

 

수동 지정 방식 

 

분홍색 머테리얼들을 수동 지정해 준 후 

Edit - Rendering - Materials - Convert Selected Built-in to URP로  바꾸어 주었다.

 

 

결과

 

 

 

자동 변환 방식

 

Window - Rendering - Render Pipeline Converter를 누르면 오른쪽과 같은 창이 뜨고,

전부 체크 해준 후 우측 하단에 Initialize And Convert를 누르면 파일이 올라가고

Convert Asset까지 눌러주면 변환을 해준다. 

 

왜 이런 일이 발생하는가?

유니티는 3가지의 렌더 파이프 환경을 가진다.

 Built-in Render Pipeline, URP, HDRP

 

더보기

URP와 HDRP를 묶어서 SRP(Scriptable Render Pipeline)이라고도 한다.

이름처럼 c# 코드를 통해 제어할 수 있어서 그렇게 부르나 보다.

 

세 환경이 서로 달라서 생기는 문제였다.

 

렌더 파이프 ?

3D 장면을 2D 이미지(우리가 화면에서 보는 것)로 변환하는 일련의 단계를 말한다.

 

렌더 파이프라인은 저마다 다른 기능 및 성능 특성을 지니고 있어

다양한 게임환경에 맞춰 대응하기 위해 3가지를 모두 사용하고 있는 듯 하다.

 

처음 생성 화면을 캡쳐해 왔다.

실행할 때 자세히 보면 어떤 렌더 파이프를 사용하는지 설명이 쓰여 있다.

 

Universal이라고 쓰여있는 게 URP이고

사진에는 나오지 않았지만 HDRP도 하단에서 찾아볼 수 있었다.

 

 

각각에 대해 간단하게 소개하자면 

 

Built-in Render Pipeline

가장 기본 렌더 파이프라인.

 

URP (Universal Render Pipeline / 또는 lightweight = 이전 이름.)

중간 단계 파이프 라인으로서

가장 범용성이 높은 파이프라인

 

HDRP (High Definition Render Pipelinee)

고해상도의 그래픽 품질을 위한 파이프라인

 

정도로 정리가 되는 듯하다.

 

결론은 에셋들이 특정 파이프라인 환경을 기준으로 제작되었고,

작업 환경과 안 맞아서 발생하는 문제라는 것이었다.

 

이 이야기를 왜 이렇게 길게 했냐면

분홍색에서 벗어나 텍스처가 잘 보인다고

다 해결된 게 아닐 수 있다는 걸 강조하고 싶어서 그랬다.

 

https://youtu.be/z2XxQvg2Uhg?si=0gOAgm6wHy4T97jY

 

 

찾은 영상 끝부분에서 설명하듯이

Lit, unLit 부분(빛)에서 차이가 나는 게 바로 보인다.

 

더 세세하게 따지면 분명 성능적인 차이부터 시작해

의도하지 않은 문제가 생길 수 있다.

 

앞으로는 이런 점까지 고려하여 작업하면 좋을 것 같다는 생각에 적었다.

마무리 

일단 나는 처음 설명한 수동 방법으로 해결했다.

 

자동 방식은 여러 번 시도해 봤으나

컴퓨터 환경 문제인 건지 아니면 에셋들이 많아서 그런 건지 

 

시도 할 때 마다 10분이 넘도록 로딩만 되고

아무런 동작을 안 하는 것 같아서 그냥 수동으로 진행했다.

 

커스텀 쉐이더의 경우 위 설명한 방식과 다르게

직접 쉐이더를 만져야 한다고 하더라.

 

다운 받았던 에셋들 중에

커스텀 된 쉐이더가 있어서 알아보다가 나는 일단 넘겼지만 

아래 블로그 내용대로 하면 아마 될 것 같긴 하다.

 

https://jacobjea.tistory.com/6

 

[Unity] 머테리얼 깨짐 오류 확실한 해결 방법들(머테리얼 분홍색으로 나올 때)

유니티 개발 하다보면 제일 열받는 상황들 . . . 깨짐 현상 발생하는 상황들 1. 프로젝트를 URP프로젝트로 전환했을 때.... 2. Git에 있는 프로젝트를 로컬에 Clone했을 때... 저는 두가지 경우에 항상

jacobjea.tistory.com

 

 

에셋 제작자들도 이를 알고

여러 렌더 파이프라인에 맞춰서 대응할 수 있도록 올리는 듯하니 

해당 프로젝트에 맞는 렌더 파이프라인 에셋을 찾아 적용하면 될 것 같다. 

 

왜 안 되나 찾다가 Readme에 URP 파일 버전은

따로 Import하라고 설명한 걸 글 쓰다가 찾았다.

...

 

참고하면 좋을 영상

https://youtu.be/5rG3yDZmSbc?si=B6tJyDhChynsbx7d

https://youtu.be/vrmmBuGn77o?si=uA5WDIe_c2ybfX-O

https://youtu.be/wNFjsi6MjAQ?si=b7JWBfLWfHkGfHH4

 

'유니티 > 3D' 카테고리의 다른 글

유니티 3D - 터레인(Terrian)에 대해 알아보자  (2) 2024.11.01