ThreeKingdomsSlingshot/Assets/VFX/_BuiltinPorts/TKS_HdrApprox.cginc

34 lines
2.0 KiB
HLSL
Raw Permalink Normal View History

스킬 이펙트 1차 + IB(쿠로네코) 연출 시험 — 돌진·조준 UI·타격감 (PD 2026-11-10) - 기본 공격(돌진) = IB 이펙트 그대로 시험: 앞 빛 물결 · 속도 꼬리(진영색 4색 · 멈춘 자리에서 0.12초 흐려짐) · WL 흙먼지 · 기준점 dash(아래로 갈수록 발 쪽) · 히트 이펙트 제거(PD 지정 대기) - 슬링샷 방향 결정 UI = IB GameTouchArrow 이식(IbAimArrow · IB 유닛 반지름 0.496 기준 비율) + 진행 중 캐릭터 연출(IbUnitMarks: 발밑 원 · 몸 빛 · 조준 중 속성 방울) · 값 표 Resources/Skills/ib_ui.csv - 기병: 복귀 영역(채운 원 · PreviewCavalryReturn) · 복귀 때 돌아서기(UnitView.TurnAround) - 타격감: HitFeel + CameraController.Shake · 표 hit_feel.csv(IB 흔들림 값은 디컴파일에 없어 추정값) - 액티브 스킬 1차 연출(Fable 제안 56 스킬 · 사본 Resources/Fx/TKS_Fx_Sk_*) · SkillVfx 확장(s_camp · f_fwd · f_drift · f_fade · s_over · b_flat · 트레일 페이드) · 셀화 셰이더 포트 - 2D 돌진 시험본(Dash2D · Aura2D test_aura) · 이전 시험 행은 skill_vfx.csv 에 # 주석 - 여포 크기: dz_boss_lvbu 몸 높이 819 → 718(깃털 제외 · 말 탄 유닛 머리 끝 상한 때문에 작아졌음) - 원본 = Assets/VFX/IB(쿠로네코 · GUID 유지 · Tools/wl_vfx_import.py --skip-scripts) · 사본 도구 Tools/make_ib_fx_copies.cs · make_ib_camp_textures.py · build_dash2d.cs - 테스트 PlayMode 118/118 통과 · 자동 재직렬화(png meta · UITheme · ProjectSettings) 제외 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-10 04:19:44 +00:00
// 삼국지 슬링샷 빌트인 이식판 공용(2026-11-09 · 2026-11-10 셀화) — URP 원본의 HDR 밝기를 이 게임 아트(굵은 검정 외곽선 + 평면 셀 · 감마 · 블룸 없음)에 맞춘다.
// 2026-11-09: 원본 팩은 색 × 사용자 데이터 배수로 1 을 넘는 밝기를 만들고 URP 블룸이 흰빛으로 번지게 함 → 블룸 없는 이 게임에서는 1 에서 잘려 평평한 단색 띠(실측) → 넘친 만큼 흰색 쪽으로.
// 2026-11-10 PD 「이펙트 색감·연출이 게임 분위기와 안 맞음 → Fable 검토」 반영: 흰 섞임 상한 35 %(흰 돔 · 김 서린 유리 느낌 제거) + 색 · 불투명도 3단계(셀 띠) — 값 = Fable 권고(fable 검토 2026-11-10).
#ifndef TKS_HDR_APPROX_INCLUDED
#define TKS_HDR_APPROX_INCLUDED
#ifndef TKS_HDR_BLEED
#define TKS_HDR_BLEED 1.0
#endif
// 흰색 섞임 상한(0~1) · 셀 단계 수 · 뒷면 셸 그늘(진영색 × 밝기 배율) 과 불투명도
#define TKS_HOT_MAX 0.2 // 1차 0.35(Fable) → 모래 바탕에서 머리가 희뿌옇게 흐려져(실측) 0.2
#define TKS_CEL_STEPS 3.0
#define TKS_RIM_SHADE 0.45
#define TKS_RIM_ALPHA 0.5
#define TKS_ALPHA_GAIN 1.25 // 셀 단계 전 불투명도 보강(얇은 셸 띠가 모래 바탕에서 보이게 · 2026-11-10 실측)
// hot(반환) = 넘친 밝기 0~1 — 불투명도 보강용은 그대로 · 흰색 섞임만 TKS_HOT_MAX 로 제한(2026-11-10 1차 = 둘 다 제한 → 머리 셸이 사라짐 · 실측)
inline float3 TKS_HotToWhite(float3 rgb, out float hot)
{
float peak = max(rgb.r, max(rgb.g, rgb.b));
hot = saturate((peak - 1.0) * TKS_HDR_BLEED);
float3 c = saturate(rgb);
c = c + hot * TKS_HOT_MAX * (1.0 - c);
return floor(c * TKS_CEL_STEPS + 0.5) / TKS_CEL_STEPS; // 색 3단계(평면 셀)
}
// 불투명도 3단계(반올림) — 부드러운 그라데이션을 셀 띠로 · 1/6 아래만 0(1차 버림 = 1/3 아래가 다 사라짐 · 실측)
inline float TKS_CelAlpha(float a)
{
return floor(saturate(a * TKS_ALPHA_GAIN) * TKS_CEL_STEPS + 0.5) / TKS_CEL_STEPS;
}
#endif