HonkaiStarRailToonShader
요약
이 글은 Unity URP 파이프라인을 기반으로 명왕성열차(Honkai Star Rail) 스타일의 카툰 렌더링 Shader를 구현하는 방법을 안내합니다. 사용자는 특정 패키지를 가져오고, 프로젝트 설정을 조정하며, 여러 전용 텍스처들을 올바르게 임포트하여 렌더링을 완성해야 합니다.
핵심 포인트
- Unity URP 기반의 카툰 렌더링 Shader입니다.
- 특정 Git URL에서 패키지를 추가하는 과정이 필수적입니다.
- 선형 색 공간 사용 및 Renderer Feature 추가가 필요합니다.
- Shader 작동을 위해 여러 전용 텍스처 준비와 임포트 설정이 중요합니다.
HonkaiStarRailToonShader
효과 이미지: (2024년 7월 13일 업데이트)

이것은 무엇인가요?
이것은 Unity 엔진 URP 파이프라인을 기반으로 한, 명왕성열차(星穹铁道) 스타일의 카툰 렌더링 프로젝트입니다.
감사 인사
본 Shader는 Bilibili@给你柠檬椰果养乐多你会跟我玩吗 님의 영상 제작을 기반으로 했으며, 또한 Github@stalomeow 님의 StarRailNPRShader 프로젝트에 후처리 부분(bloom, tonemapping)을 추가했습니다. 이 자리를 빌려 모든 개발자분들의 아낌없는 기술 공유에 진심으로 감사드립니다.
설치 및 사용법
- Window > Package Manager를 클릭하고, 패키지 관리자의 'Add package from git URL...' 메뉴에서 https://github.com/stalomeow/StarRailNPRShader.git 패키지를 가져옵니다 (필수).
- Project Settings > Player > Other Settings로 이동하여 선형 색 공간(linear color space)을 사용합니다.
- 프로젝트가 사용하는 Universal Render Pipeline Asset을 찾고, Renderer List에서 사용되는 Universal Renderer Data를 찾아 RenderingPath가 Forward/Forward+인지 확인하고, Depth Priming은 비활성화한 후, 'Add Renderer Feature'를 클릭하여 Honkai Star Rail의 Renderer Feature를 추가합니다.
- 마지막으로, TestModels 디렉터리의 테스트 모델을 씬에 드래그하고, ../SRUniversal-main/Scripts/Runtime 아래의 SRCharacterRenderingController 컴포넌트를 모델에 추가한 후, 렌더링이 정상적인지 확인합니다.
시작하기 전에 최소한 다음과 같은 텍스처를 준비해야 합니다. 만약 이를 얻는 방법을 모른다면 B站 @小二今天吃啥啊 의 이 튜토리얼을 참고할 수 있습니다. 링크

(1) RGBA 채널의 바디 BaseColor Map (2) RGBA 채널의 바디 ILM Mask Map (3) 바디 ShadowCoolRamp (4) 바디 ShadowWarmRamp (5) 페이스 BaseColor Map (6) 페이스 그림자 SDF 임계값 맵 + ILM Mask Map (7) 헤어 BaseColor Map (8) RGBA 채널의 헤어 ILM Mask Map (9) 헤어 ShadowCoolRamp (10) 헤어 ShadowWarmRamp
텍스처 임포트 설정
제가 이 문제를 특별히 설명하는 이유는 무엇일까요? 피드백에 따르면, 일부 사용자가 Shader를 사용할 때 부정확한 효과를 발견하는데, 이는 종종 잘못된 코드 때문이라고 생각하기 쉽습니다. 하지만 실제로는 올바른 텍스처 임포트 설정을 사용하지 않았기 때문입니다. 아래 그림처럼 Ramp의 그림자 경계 부분에 우리가 원치 않는 계단 현상이 나타나고 매우 이상해 보입니다.
- Base Texture나 Ramp Texture와 같이 색상을 표현하는 텍스처 외에, 수치 계산에 사용되는 다른 텍스처는 Texture Import Settings에서 sRGB를 체크 해제하여 텍스처가 선형 공간(linear space)에 있도록 해야 합니다.
- Ramp 텍스처의 특성상, 임포트 설정에서 'MipMap 생성'(필수)을 비활성화하고, Wrap Mode를
중요 정보
본 셰이더는 bilibili@给你柠檬椰果养乐多你会跟我玩吗 大佬의 강좌를 기반으로 제작된 《붕괴: 스타레일》용 카툰 셰이더(ToonShader)입니다. 이 대단한 분께 감사드리며, 그 기초 위에 개인적으로 키워드 추가를 통한 성능 향상, 커스텀 외곽선 색상 지원(재질 기반), 노출 제어 등 재미있는 기능을 추가했습니다. 이는 Unity의 URP 파이프라인에만 적용 가능합니다. 깊이 엣지 라이트가 정상 작동하려면 Universal Render Pipeline Asset에서 Depth Texture를 활성화해야 합니다. 다른 게임이나 MMD에 사용하려면 lightmap.a 채널에 직접 값을 할당해야 합니다. ramp 이미지는 Photoshop으로 그리거나 폴더에 포함된 도구를 사용할 수 있습니다. 반드시 ramp 텍스처의 임포트 설정에서 “Generate Mipmaps”를 비활성화하여 렌더링 오류를 방지하십시오.
다음 단계 계획으로는 셰이더 부분에 Tone Mapping과 스무딩 노멀(smoothing normal)을 추가하고, 프로그램적인 lightmap + ramp 텍스처 생성 플러그인을 추가하여 이 셰이더의 범용성을 확장할 예정입니다. 관심 있으신 분들은 팔로우해 주시면 좋겠습니다. 오픈 소스 프로토콜을 준수해 주시고, 테스트 모델의 저작권은 MiHoYo에 있습니다. 즐겁게 사용하시길 바라며, 마음에 드셨다면 별점을 남겨주세요. 아이디어나 제안이 있으시면 issue 또는 pr로 환영합니다.
Enjoy Yourself!
링크*
작가 관련 정보를 더 알고 싶으시다면 다음을 방문해 주세요:
미요우쉐@爱莉小跟班gaolx, Bilibili@galing2333
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub GameDev의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기