스텐실 밤하늘
ScreenSky.Create(name, order, stencilRef, seed) NightMask.Create(name, shape, order, stencilRef, parent) Mats.MaskedFx(stencilRef, additive)
원리
화면에 고정된(스크린스페이스) 밤하늘 레이어를 깔고, 보이지 않는 마스크 스프라이트가 스텐실에 값을 쓴 곳에서만 하늘이 보이게 한다. 마스크가 움직여도 하늘은 화면에 붙어 있어서 '검/영역 안에 다른 공간이 들어있는' 느낌이 난다.
정렬: 마스크(order-1) → 하늘(order) → 마스크 안 반짝이(order+1)
스텐실 ref 할당
| ref | 스킬 |
|---|---|
| 1 | 밤을 담은 검 |
| 2 | 영역전개: 밤 |
| 3 | 월하일섬 |
| 4~ | 새 마스크 스킬 |
쓰는 법
NightMask.Create("Mask", PixelArt.BladeShape(w, len), SkyOrder - 1, StencilRef, bladeT);
ScreenSky sky = ScreenSky.Create("BladeSky", SkyOrder, StencilRef, seed);
// 마스크 안에서만 보이는 반짝이
Fx.Spawn(PixelArt.Sparkle(2), pos, 0.3f).Material(Mats.MaskedFx(StencilRef, true)).Order(SkyOrder + 1);
하늘 색은 ScreenSky.Create(..., top, bottom, nebula) 로 바꿀 수 있다.
주의
- 스킬끼리 ref 가 겹치면 서로의 마스크에 하늘이 비친다. 새 스킬은 4 이상.
- 하늘 정렬 위치로 '무엇 위에 덮이나' 가 결정된다: 검은 50(캐릭터 위), 영역은 -10(배경 위·캐릭터 아래).
- 하늘 오브젝트는 스킬 끝과
OnLabReset에서 지운다.