본문 바로가기
vfxai 잡학지식 vfxai 잡학지식

유니티 에셋을 넣자마자 분홍색이 됐다면, 에셋이 아니라 프로젝트 설정 문제

vfx 잡학지식 읽는 시간 약 17분 조회 2

유니티 에셋스토어에서 받은 에셋을 씬에 끌어다 놓자마자 전부 분홍색으로 보인다면, 에셋 파일이 망가진 것이 아닙니다. 다시 받아도, 유니티를 재설치해도 그대로입니다. 분홍색은 머티리얼의 셰이더가 지금 프로젝트의 렌더 파이프라인에서 돌아가지 않는다는 표시입니다. 고칠 곳은 에셋이 아니라 프로젝트와 에셋의 짝입니다.

문제는 짝을 맞추는 방법이 하나가 아니라는 점입니다. 변환 도구를 돌렸더니 대부분 돌아왔는데 물이나 나뭇잎 몇 개만 끝까지 분홍으로 남는 일이 흔합니다. 그 남은 분홍은 무엇이고, 어디서 고쳐야 할까요? 아래에서 네 가지를 순서대로 봅니다. 분홍이 무슨 신호인지, 내 프로젝트와 에셋의 파이프라인을 확인하는 법, 머티리얼 변환 순서, 변환 뒤에도 남는 분홍입니다. 메뉴 이름은 Unity 6(6000.0) 공식 매뉴얼 기준이고, 6.3에서 달라진 이름은 따로 적었습니다.

  • 1. 유니티의 분홍색이 뜻하는 것
  • 2. 에셋과 프로젝트의 파이프라인이 어긋나는 이유
  • 3. 1분 진단: 내 프로젝트와 에셋 확인
  • 4. 머티리얼 변환 순서
  • 5. 변환 뒤에도 남는 분홍

1. 유니티의 분홍색은 텍스처 색이 아니라 셰이더 오류 표시입니다

먼저 화면의 분홍이 정말 오류 표시인지 가립니다. 유니티는 물체를 정상 셰이더로 그릴 수 없을 때 대신 쓰는 특수 셰이더가 있습니다. 유니티 매뉴얼은 머티리얼이 없거나, 셰이더가 컴파일되지 않거나, 셰이더가 지원되지 않을 때 기본 오류 셰이더로 그린다고 설명합니다. 이 오류 셰이더의 색이 마젠타, 곧 밝은 분홍입니다. 에디터와 빌드 모두에서 같습니다.

오류 셰이더는 조명을 계산하지 않습니다. 그래서 상자의 윗면과 옆면이 같은 분홍으로 칠해지고, 음영 없이 실루엣만 보입니다. 음영 하나 없는 납작한 분홍이면 오류 셰이더입니다. 반대로 분홍 위에 밝고 어두운 면이 보인다면, 그건 셰이더가 정상으로 돌면서 텍스처나 색 값이 분홍인 경우라 이 글의 문제가 아닙니다.

유니티 에셋 색으로 구분하는 상태 비교: 음영 없는 분홍은 셰이더를 못 쓰는 상태, 하늘색은 셰이더 컴파일 중, 정상은 음영과 재질이 보임
같은 소품을 세 상태로 계산해 그린 비교입니다. 오류 셰이더와 로딩 셰이더는 조명 없이 단색으로 칠해져 면이 구분되지 않습니다. 실제 유니티 화면 캡처가 아니라 설명용 렌더입니다.

비슷하게 생긴 색이 하나 더 있습니다. 하늘색(시안) 단색은 로딩 셰이더입니다. 매뉴얼 설명대로 비동기 셰이더 컴파일이 켜진 에디터에서, 필요한 셰이더 배리언트를 컴파일하는 동안 잠깐 보이는 색입니다. 하늘색은 기다리면 사라지지만, 분홍은 기다려도 그대로입니다.

분홍 물체를 선택해 Inspector에서 머티리얼을 보면, Shader 칸에 Hidden/InternalErrorShader가 보이거나 원래 셰이더 이름은 그대로인데 경고가 붙어 있습니다. 어느 쪽이든 셰이더가 이 프로젝트에서 돌지 못한다는 뜻입니다. 그렇다면 멀쩡한 에셋의 셰이더가 왜 내 프로젝트에서만 돌지 못할까요?

2. 유니티 에셋과 프로젝트의 렌더 파이프라인이 어긋나는 이유

같은 전구라도 소켓 규격이 다르면 불이 들어오지 않습니다. 유니티에는 이 소켓이 세 종류 있습니다. 오래된 기본값인 Built-in Render Pipeline, 그리고 Scriptable Render Pipeline 계열인 URP(Universal Render Pipeline)와 HDRP(High Definition Render Pipeline)입니다. 셰이더는 특정 파이프라인용으로 만들어지고, 다른 파이프라인의 셰이더는 그대로 꽂히지 않습니다. 유니티 매뉴얼도 Built-in에서 URP나 HDRP로 옮길 때 머티리얼을 업그레이드하지 않으면 Scene 뷰에서 밝은 분홍으로 보인다고 적고 있습니다.

이 어긋남이 에셋을 넣자마자 터지는 데는 이유가 있습니다. Unity 6의 Hub에서 3D 프로젝트를 만들 때 고르는 Universal 3D 템플릿은 URP 프로젝트입니다. 반면 에셋스토어에는 Built-in의 Standard 셰이더로 만든 에셋이 아직 많습니다. 유니티는 2026년 2월 공식 공지에서 Built-in을 Unity 6.5부터 지원 중단(deprecated) 대상으로 표시한다고 밝혔고, 에셋스토어 제출 가이드라인도 Unity 6.5 이상으로 올리는 새 에셋과 업데이트는 URP나 HDRP를 지원해야 한다고 정했습니다. 거꾸로 말하면, 그 전에 올라온 에셋은 Built-in 전용인 경우가 남아 있습니다.

반대 방향도 같습니다. URP용으로 만든 에셋을 Built-in 프로젝트에 넣어도 분홍이 됩니다. 결국 질문은 하나로 줄어듭니다. 내 프로젝트는 어느 파이프라인이고, 에셋은 어느 파이프라인용인가?

3. 1분 진단: 유니티 프로젝트와 에셋의 파이프라인 확인

변환 도구를 누르기 전에 네 곳을 봅니다. 앞의 두 곳은 짝을 확인하고, 뒤의 두 곳은 어떤 방법으로 고칠지 정합니다.

  1. 내 프로젝트의 파이프라인. Edit > Project Settings > Graphics의 Default Render Pipeline 칸을 봅니다. URP나 HDRP 에셋이 들어 있으면 그 파이프라인이고, 비어 있으면 Built-in입니다. 매뉴얼 기준으로 Edit > Project Settings > Quality의 품질 레벨마다 Render Pipeline Asset이 따로 지정돼 있으면 그쪽이 우선하니, 두 곳을 함께 봅니다.
  2. 에셋이 지원하는 파이프라인. 에셋스토어 상품 페이지 아래쪽의 Render pipeline compatibility 표를 봅니다. Unity 버전별로 Built-in, URP, HDRP 칸에 Compatible 또는 Not compatible이 적혀 있습니다. 내 Unity 버전 줄에서 내 파이프라인 칸이 Not compatible이면 분홍은 예상된 결과입니다.
  3. 에셋 폴더 안의 Readme와 따로 든 패키지. 가져온 에셋 폴더를 열어 Readme나 Documentation을 찾고, 이름에 URP나 HDRP가 붙은 .unitypackage 파일이 있는지 봅니다. 에셋스토어 가이드라인은 다른 파이프라인용 콘텐츠를 이런 별도 패키지로 넣는 것을 허용합니다. 이 파일은 뒤에서 다시 씁니다.
  4. 분홍 머티리얼의 셰이더 이름. 분홍 머티리얼을 선택하고 Inspector 맨 위 Shader 이름을 읽습니다. Standard, Legacy Shaders/…, Mobile/…, Particles/Standard …처럼 유니티 기본 셰이더면 자동 변환 대상입니다. 제작사 이름이나 에셋 이름으로 시작하는 셰이더, Shader Graph로 만든 셰이더면 자동 변환이 안 됩니다. Console 창에 셰이더 오류가 떠 있는지도 함께 봅니다.
확인 결과할 일
프로젝트 URP, 에셋 Built-in 전용, 기본 셰이더Render Pipeline Converter로 Material Upgrade
프로젝트 HDRP, 에셋 Built-in 전용, 기본 셰이더Edit > Rendering > Materials의 HDRP 변환
에셋 폴더에 URP·HDRP용 .unitypackage가 있음그 패키지를 먼저 가져오기
셰이더가 제작사 커스텀 셰이더 또는 Shader Graph5번 항목: 수동으로 맞추기
프로젝트 Built-in, 에셋 URP 전용프로젝트를 URP로 옮기거나 셰이더를 Built-in용으로 교체

프로젝트 쪽 설정을 에셋에 맞춰 바꾸는 방법도 있습니다. 예를 들어 Graphics의 Default Render Pipeline과 Quality의 품질 레벨별 Render Pipeline Asset을 모두 비워 Built-in으로 돌리면 Built-in 에셋은 살아납니다. 하지만 그 순간 프로젝트에 이미 있던 URP 머티리얼이 전부 분홍이 됩니다. 이 방법은 에셋 하나를 보려고 만든 빈 프로젝트에서만 씁니다.

4. 유니티 머티리얼 변환은 이 순서로 합니다

순서의 원칙은 하나입니다. 제작자가 맞춰 둔 것을 먼저 쓰고, 자동 변환은 그다음, 손으로 고치는 것은 마지막입니다. 시작 전에 한 가지는 꼭 합니다. 변환은 되돌릴 수 없으니 프로젝트를 먼저 백업합니다. 매뉴얼도 변환이 프로젝트를 되돌릴 수 없게 바꾼다고 경고합니다. Git 같은 버전 관리를 쓴다면 변환 직전에 커밋해 둡니다.

첫째, 에셋에 든 파이프라인별 패키지를 가져옵니다. 3번 진단에서 URP나 HDRP용 .unitypackage를 찾았다면 더블클릭하거나 Assets > Import Package > Custom Package로 가져옵니다. 제작자가 그 파이프라인 셰이더로 다시 잡아 둔 머티리얼이 들어오므로, 자동 변환보다 원래 모습에 가깝게 맞춰져 있을 가능성이 큽니다. 어떤 패키지를 어떤 순서로 넣으라는지는 에셋마다 다르니 Readme를 따릅니다.

둘째, URP 프로젝트라면 Render Pipeline Converter를 돌립니다. URP 매뉴얼의 순서는 이렇습니다. Unity 6.0과 6.3 매뉴얼의 순서이고, 6.4부터는 이 창이 Source Pipeline과 Target Pipeline을 고르고 Material Shader Converter를 체크하는 방식으로 바뀌었습니다.

  1. Window > Rendering > Render Pipeline Converter를 엽니다.
  2. 맨 위 드롭다운에서 Built-in to URP를 고릅니다.
  3. Material Upgrade에 체크합니다. Default-Diffuse처럼 Assets 폴더 밖에 있는 기본 머티리얼까지 바꾸려면 Read-only Material Converter도 체크합니다.
  4. Initialize Converters를 누르면 바꿀 목록이 나옵니다. 여기서 항목별로 체크를 빼 제외할 수 있습니다.
  5. Convert Assets를 누릅니다. 끝나면 초록 체크는 성공, 노란 아이콘은 확인 필요, 빨간 아이콘은 실패입니다.

분홍 머티리얼 몇 개만 바꾸고 싶다면 Project 창에서 그 머티리얼을 골라 메뉴로 바꿉니다. Unity 6.0 매뉴얼의 메뉴는 Edit > Rendering > Materials > Convert Selected Built-in Materials to URP입니다. Unity 6.3 매뉴얼에는 같은 자리에 Convert Selected Built-In Materials to Current SRP로 적혀 있습니다. 다만 6.3 초기 패치에서는 이 메뉴가 빠져 있었고, 유니티 이슈 트래커에는 6000.3.15f1에서 고쳐졌다고 올라 있습니다. 내 에디터에 이 메뉴가 안 보이면 에디터를 6000.3.15f1 이상으로 올리거나, 위의 Render Pipeline Converter 목록에서 해당 머티리얼만 남기고 돌리면 됩니다.

HDRP 프로젝트라면 Render Pipeline Converter 대신 Edit > Rendering > Materials > Convert All Built-in Materials to HDRP(전체) 또는 Convert Selected Built-in Materials to HDRP(선택)를 씁니다. 6.0 매뉴얼 기준 메뉴 이름이고, 6.3 매뉴얼에는 URP와 같은 Convert All Built-In Materials to Current SRP, Convert Selected Built-In Materials to Current SRP로 적혀 있습니다.

자동 변환은 셰이더를 정해진 짝으로 바꿔 끼우는 일입니다. URP 매뉴얼의 셰이더 대응표는 다음과 같습니다. 변환 뒤 머티리얼의 Shader 칸이 오른쪽 이름으로 바뀌었는지 보면 결과를 확인할 수 있습니다.

Built-in 셰이더변환 뒤 URP 셰이더
Standard, Standard (Specular setup)Universal Render Pipeline/Lit
Standard TerrainUniversal Render Pipeline/Terrain/Lit
Particles/Standard SurfaceUniversal Render Pipeline/Particles/Lit
Particles/Standard UnlitUniversal Render Pipeline/Particles/Unlit
Mobile/… , Legacy Shaders/…Universal Render Pipeline/Simple Lit
Unity 6(6000.0) URP 매뉴얼의 Shader mappings 표를 묶어 옮겼습니다. Mobile·Legacy 계열은 매뉴얼에 이름이 하나씩 나열돼 있습니다.

변환이 끝났는데 Project 창의 머티리얼 미리보기가 아직 분홍이라면, 매뉴얼 안내대로 Project 창 빈 곳을 우클릭해 Reimport All을 해 봅니다. 미리보기 썸네일만 늦게 갱신된 경우가 있습니다. 그래도 일부가 분홍으로 남는다면, 그건 이 표에 없는 셰이더입니다.

유니티 Material Upgrade 전후 비교: 변환 전에는 모든 소품이 분홍, 변환 후에는 커스텀 셰이더를 쓴 물웅덩이와 전구만 분홍으로 남음
기본 셰이더를 쓴 상자·통·바위는 변환으로 돌아오고, 커스텀 셰이더를 쓴 물웅덩이와 전구만 분홍으로 남는 상황을 그린 설명용 렌더입니다.

5. 변환 뒤에도 남는 분홍: 커스텀 셰이더와 Shader Graph

이제 처음의 질문으로 돌아갑니다. 변환 도구를 돌렸는데 물, 나뭇잎, 발광 효과 몇 개만 분홍으로 남는 이유입니다. URP 매뉴얼은 Material Upgrade가 커스텀 셰이더를 쓰는 머티리얼은 지원하지 않는다고 적고 있습니다. 위 대응표는 유니티 기본 셰이더끼리의 짝일 뿐이라, 제작사가 직접 짠 셰이더는 바꿔 끼울 짝이 없습니다.

여기서 3번 진단에서 찾아 둔 Readme와 .unitypackage가 다시 쓸모 있어집니다. 커스텀 셰이더는 자동 변환이 못 하니, 제작자가 URP용으로 따로 준 패키지가 사실상 가장 빠른 답입니다. 패키지가 없을 때는 셰이더 종류에 따라 갈립니다.

  • Shader Graph로 만든 셰이더. 셰이더 그래프를 열어 Graph Inspector의 Graph Settings에서 Active Targets 목록을 봅니다. 내 파이프라인(Universal 또는 HDRP)이 없으면 + 버튼으로 추가하고 저장합니다. Shader Graph 문서에 따르면 Universal 타깃은 프로젝트가 URP를 쓸 때만 목록에 나옵니다.
  • 코드로 짠 커스텀 셰이더. 가장 빠른 길은 머티리얼의 Shader를 Universal Render Pipeline/Lit로 바꾸고, Base Map·Normal Map 같은 칸에 원래 텍스처를 다시 넣는 것입니다. 물결이나 바람에 흔들리는 효과처럼 셰이더가 하던 특수 기능은 이때 사라집니다. 그 효과가 꼭 필요하면 Shader Graph로 다시 만들거나 URP용 셰이더 코드로 고쳐야 하는데, 이건 셰이더 작업의 영역입니다.
  • Console에 셰이더 컴파일 오류가 있는 경우. 파이프라인이 맞아도 오래된 셰이더가 새 Unity 버전에서 컴파일되지 않으면 분홍이 됩니다. 오류 메시지에 셰이더 파일 이름이 나오니, 그 에셋이 내 Unity 버전을 지원하는지 2번 진단의 호환 표에서 다시 확인합니다.

Built-in 프로젝트에 URP 에셋을 넣은 반대 경우는 거꾸로 돌리는 자동 변환 도구가 없습니다. URP/Lit를 쓰는 머티리얼은 Standard로 바꾸고, Shader Graph는 Active Targets에 Built-in을 추가합니다. 다만 Built-in이 지원 중단 수순에 들어간 만큼, 새로 시작하는 프로젝트라면 프로젝트를 URP로 옮기는 쪽이 앞으로 받을 에셋과도 잘 맞습니다.

여기까지 오면 처음의 질문에 한 문장으로 답할 수 있습니다.

남은 분홍은 자동 변환에 짝이 없는 셰이더이고, 그 짝은 제작자의 파이프라인별 패키지나 직접 고른 셰이더로만 채울 수 있습니다.

고쳤는지 확인하는 방법

확인은 세 곳에서 합니다. Scene 뷰에서 물체의 면마다 밝기가 달라 보이면 셰이더가 조명을 계산하고 있다는 뜻입니다. Inspector의 Shader 칸이 내 파이프라인 이름(예: Universal Render Pipeline/Lit)으로 바뀌었는지 봅니다. Console에 셰이더 오류가 남아 있지 않은지도 봅니다. 셋 다 맞으면 오류 셰이더 문제는 끝났습니다.

분홍은 사라졌는데 색이 에셋스토어 스크린샷보다 칙칙하거나, 텍스처 없이 회색으로만 보인다면 다른 문제입니다. 색 공간·톤매핑 설정이나 텍스처 연결을 따로 봐야 합니다. 에디터에서는 멀쩡한데 빌드한 게임에서만 분홍이 되는 경우도 원인이 다르니, 이 글의 순서로 해결되지 않습니다.

정리: 유니티에서 분홍이면 에셋보다 파이프라인부터

에셋스토어 에셋이 넣자마자 분홍이 됐다면 에셋을 다시 받기 전에 프로젝트의 Default Render Pipeline과 에셋 페이지의 호환 표를 나란히 봅니다. 짝이 다르면 에셋에 든 파이프라인별 패키지를 먼저 넣고, 그다음 Render Pipeline Converter로 기본 셰이더를 바꾸고, 그래도 남는 커스텀 셰이더만 손으로 맞춥니다. 시작 전 백업은 빼먹지 않습니다.

분홍은 고장이 아니라 짝이 안 맞는다는 신호입니다. 에셋보다 파이프라인부터 보세요.

vfx 잡학지식

함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.