WL #948-5 마법검 PD 재지적 5건 — ① 끝 빛: 구슬 입자 깜빡임(1 s 주기 · 수명·크기 무작위) 원인 → 구슬 렌더러 끔 · 빛무리 ×2.07 을 머리 중심(tipPull 0.08)에서 카메라 쪽 0.10 m(cameraPull 신설) · 점광원 0.6 = 머리 자체가 빛남 ② 투사체 긴 붉은 줄 = 덧씌움 bullet 불화살 쿼드(2.3 m · 같은 프레임 끔 캡처로 확정) → 사본 렌더러 끔 ③ 3타 = R2 f0~13 · speed 0.7 · 발사 0.72(끝 웅크림 구간 제거 · 재굽기) ④ 주력 바위: 사본 simulationSpeed ×2 · life 2.4 · fade 0.3 · 판정 1.4 s(내리꽂힘) · endAfter 0.6(이전 = 내리꽂히기 전 2.6 s 소멸) ⑤ 연기 옅게(투사체 SubEmitter0 · 3타 먼지) · WLProjectileVisual 도메인 리로드 끔 대비 JSON 재읽기
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
6aa71414cf
commit
fc46dd3368
|
|
@ -2303,7 +2303,7 @@ AnimatorState:
|
|||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: attack3
|
||||
m_Speed: 1.2
|
||||
m_Speed: 0.7
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 7396964718502629461}
|
||||
|
|
|
|||
|
|
@ -989,9 +989,9 @@ MonoBehaviour:
|
|||
sourceClipName:
|
||||
incomingExitTime: 0.85
|
||||
createIfMissing: 1
|
||||
firstFrame: 3
|
||||
lastFrame: 21
|
||||
speed: 1.2
|
||||
firstFrame: 0
|
||||
lastFrame: 13
|
||||
speed: 0.7
|
||||
maskPath:
|
||||
bakeRootY: -1
|
||||
events:
|
||||
|
|
@ -1005,7 +1005,7 @@ MonoBehaviour:
|
|||
- functionName: Projectile
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.4
|
||||
normalizedTime: 0.72
|
||||
stringParameter: Projectile_{CID}
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
|
|
|
|||
|
|
@ -223,7 +223,7 @@ ParticleSystem:
|
|||
serializedVersion: 2
|
||||
minMaxState: 0
|
||||
minColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
maxColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
maxColor: {r: 1, g: 1, b: 1, a: 0.8}
|
||||
maxGradient:
|
||||
serializedVersion: 2
|
||||
key0: {r: 1, g: 1, b: 1, a: 1}
|
||||
|
|
@ -1607,8 +1607,8 @@ ParticleSystem:
|
|||
maxColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
maxGradient:
|
||||
serializedVersion: 2
|
||||
key0: {r: 0.41509432, g: 0.3537439, b: 0.32306868, a: 1}
|
||||
key1: {r: 0.20754719, g: 0.20405078, b: 0.2026522, a: 1}
|
||||
key0: {r: 0.6198113, g: 0.5799335, b: 0.55999464, a: 0.8}
|
||||
key1: {r: 0.48490566, g: 0.482633, b: 0.48172393, a: 0.8}
|
||||
key2: {r: 0, g: 0, b: 0, a: 0}
|
||||
key3: {r: 0, g: 0, b: 0, a: 0}
|
||||
key4: {r: 0, g: 0, b: 0, a: 0}
|
||||
|
|
@ -1617,7 +1617,7 @@ ParticleSystem:
|
|||
key7: {r: 0, g: 0, b: 0, a: 0}
|
||||
ctime0: 0
|
||||
ctime1: 55705
|
||||
ctime2: 65375
|
||||
ctime2: 0
|
||||
ctime3: 0
|
||||
ctime4: 0
|
||||
ctime5: 0
|
||||
|
|
@ -5396,7 +5396,7 @@ ParticleSystem:
|
|||
serializedVersion: 2
|
||||
minMaxState: 0
|
||||
minColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
maxColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
maxColor: {r: 1, g: 1, b: 1, a: 0.8}
|
||||
maxGradient:
|
||||
serializedVersion: 2
|
||||
key0: {r: 1, g: 1, b: 1, a: 1}
|
||||
|
|
@ -6963,8 +6963,8 @@ ParticleSystem:
|
|||
maxColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
maxGradient:
|
||||
serializedVersion: 2
|
||||
key0: {r: 0.41509432, g: 0.3537439, b: 0.32306868, a: 1}
|
||||
key1: {r: 0.20754719, g: 0.20405078, b: 0.2026522, a: 1}
|
||||
key0: {r: 0.6198113, g: 0.5799335, b: 0.55999464, a: 0.8}
|
||||
key1: {r: 0.48490566, g: 0.482633, b: 0.48172393, a: 0.8}
|
||||
key2: {r: 0, g: 0, b: 0, a: 0}
|
||||
key3: {r: 0, g: 0, b: 0, a: 0}
|
||||
key4: {r: 0, g: 0, b: 0, a: 0}
|
||||
|
|
@ -6973,7 +6973,7 @@ ParticleSystem:
|
|||
key7: {r: 0, g: 0, b: 0, a: 0}
|
||||
ctime0: 0
|
||||
ctime1: 55705
|
||||
ctime2: 65375
|
||||
ctime2: 0
|
||||
ctime3: 0
|
||||
ctime4: 0
|
||||
ctime5: 0
|
||||
|
|
@ -10725,8 +10725,8 @@ ParticleSystem:
|
|||
startColor:
|
||||
serializedVersion: 2
|
||||
minMaxState: 2
|
||||
minColor: {r: 0.3647059, g: 0.34117648, b: 0.33333334, a: 1}
|
||||
maxColor: {r: 0.2784314, g: 0.2784314, b: 0.2784314, a: 1}
|
||||
minColor: {r: 0.58705884, g: 0.5717647, b: 0.56666666, a: 0.8}
|
||||
maxColor: {r: 0.5309804, g: 0.5309804, b: 0.5309804, a: 0.8}
|
||||
maxGradient:
|
||||
serializedVersion: 2
|
||||
key0: {r: 1, g: 1, b: 1, a: 1}
|
||||
|
|
@ -12003,8 +12003,8 @@ ParticleSystem:
|
|||
maxColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
maxGradient:
|
||||
serializedVersion: 2
|
||||
key0: {r: 1, g: 1, b: 1, a: 1}
|
||||
key1: {r: 0, g: 0, b: 0, a: 1}
|
||||
key0: {r: 1, g: 1, b: 1, a: 0.8}
|
||||
key1: {r: 0.35, g: 0.35, b: 0.35, a: 0.8}
|
||||
key2: {r: 0, g: 0, b: 0, a: 0}
|
||||
key3: {r: 0, g: 0, b: 0, a: 0}
|
||||
key4: {r: 0, g: 0, b: 0, a: 0}
|
||||
|
|
@ -12013,7 +12013,7 @@ ParticleSystem:
|
|||
key7: {r: 0, g: 0, b: 0, a: 0}
|
||||
ctime0: 32768
|
||||
ctime1: 65535
|
||||
ctime2: 65375
|
||||
ctime2: 0
|
||||
ctime3: 0
|
||||
ctime4: 0
|
||||
ctime5: 0
|
||||
|
|
@ -15766,7 +15766,7 @@ ParticleSystem:
|
|||
serializedVersion: 2
|
||||
minMaxState: 0
|
||||
minColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
maxColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
maxColor: {r: 1, g: 1, b: 1, a: 0.8}
|
||||
maxGradient:
|
||||
serializedVersion: 2
|
||||
key0: {r: 1, g: 1, b: 1, a: 1}
|
||||
|
|
@ -17043,8 +17043,8 @@ ParticleSystem:
|
|||
maxColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
maxGradient:
|
||||
serializedVersion: 2
|
||||
key0: {r: 0.41509432, g: 0.3537439, b: 0.32306868, a: 1}
|
||||
key1: {r: 0.20754719, g: 0.20405078, b: 0.2026522, a: 1}
|
||||
key0: {r: 0.6198113, g: 0.5799335, b: 0.55999464, a: 0.8}
|
||||
key1: {r: 0.48490566, g: 0.482633, b: 0.48172393, a: 0.8}
|
||||
key2: {r: 0, g: 0, b: 0, a: 0}
|
||||
key3: {r: 0, g: 0, b: 0, a: 0}
|
||||
key4: {r: 0, g: 0, b: 0, a: 0}
|
||||
|
|
@ -17053,7 +17053,7 @@ ParticleSystem:
|
|||
key7: {r: 0, g: 0, b: 0, a: 0}
|
||||
ctime0: 0
|
||||
ctime1: 32768
|
||||
ctime2: 65375
|
||||
ctime2: 0
|
||||
ctime3: 0
|
||||
ctime4: 0
|
||||
ctime5: 0
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -8,6 +8,11 @@ PrefabInstance:
|
|||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 459848745414500884, guid: 7d5e53535bf77c340bca21a018e742a1,
|
||||
type: 3}
|
||||
propertyPath: m_Enabled
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 459848745414500885, guid: 7d5e53535bf77c340bca21a018e742a1,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
|
|
@ -106,12 +111,12 @@ PrefabInstance:
|
|||
- target: {fileID: 725324774407360864, guid: 7d5e53535bf77c340bca21a018e742a1,
|
||||
type: 3}
|
||||
propertyPath: InitialModule.startSize.scalar
|
||||
value: 0.92
|
||||
value: 1.9044
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 725324774407360864, guid: 7d5e53535bf77c340bca21a018e742a1,
|
||||
type: 3}
|
||||
propertyPath: InitialModule.startSize.minScalar
|
||||
value: 0.68
|
||||
value: 1.4075999
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 725324774407360864, guid: 7d5e53535bf77c340bca21a018e742a1,
|
||||
type: 3}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
"~WL_Visual/Pos/trail",
|
||||
"~WL_Visual/Pos/bullet/SubEmitter2"
|
||||
],
|
||||
"_note_948d": "#948-5 PD 「투사체에 알 수 없는 이펙트 … 왜 아직까지」 — Play 정지 캡처(948c_bulletA2/B2 · bullet 이 살아 있는 프레임에서 끄면 사라짐)로 범인 = 덧씌움 bullet(불화살 쿼드 fire_bolt_W01_O · 4.0×1.5 × lossy 0.58 = 2.3 m 긴 붉은 줄 · 입자가 간헐적이라 이전 캡처엔 안 잡혔다) → 프리팹 사본 WL_FireBoltVisual 에서 bullet 렌더러만 끔(hideNames 에 넣으면 자식 연기 SubEmitter0 까지 꺼진다 · 실측). 남는 투사체 겉모습 = 원본 FX_Shoot_06 둥근 불덩이(root+circle) + 연기(SubEmitter0 · 옅게 = 사본 시작색 알파 0.6 · 흰색 쪽 0.55)",
|
||||
"_note_948b": "#948 PD 「명중 직전 길쭉한 타격 이펙트」 — 후보 2개 모두 줄임: 탄 끝에서 나오는 길쭉한 줄기 입자(bullet/SubEmitter2 · 경계 1.66×0.31 m) 숨김 + 명중 별 섬광(WL_Hit_Staff · 세로 스파이크) 0.37 → 0.28. 명중 자체는 판정 반경(공격표 aoe 1.2 m) 때문에 접촉 전에 뜬다(판정 값은 PD 결정)",
|
||||
"_note_948c": "#948-4 PD 「투사체에 여전히 피격 직전 길게 늘어진 이펙트」 — Play A/B 캡처(flares 끄면 사라짐)로 범인 = 명중 사본 WL_Hit_Staff 의 늘림(Stretch) 층 2개(sparks · flares) → 프리팹 사본에서 렌더러 끔(scripts/wl/probes/948b_hitfix.cs · 값은 프리팹). 투사체 자체(bullet 불화살 · circle)는 그대로",
|
||||
"stageScales": [
|
||||
|
|
|
|||
|
|
@ -60,18 +60,19 @@
|
|||
0,
|
||||
0
|
||||
],
|
||||
"life": 2.6,
|
||||
"fade": 0.8,
|
||||
"life": 2.4,
|
||||
"fade": 0.3,
|
||||
"follow": 0,
|
||||
"socket": ""
|
||||
},
|
||||
"hitDelay": 0.45,
|
||||
"_note_948_5": "#948-5 PD 「주력 스킬 이펙트가 재생되다 갑자기 소멸 → 원래 이펙트대로 바위가 내려꽂히며 공격 · 생성→낙하 2배 빠르게」 — 사본 WL_Fx_StaffSummon 원래 흐름 = 바위 7개 솟음(0~1 s) → 공중 정지 → 2.8 s 에 내리꽂힘(impact·dust_hit 층 startDelay 2.8) → 먼지(~4.3 s). 이전 값 life 2.6·fade 0.8 은 내리꽂히기 전(1.8 s 부터 흐려져 2.6 s 소멸)에 지웠다(Play 기록 948c_q.txt). 수정 = 프리팹 사본 simulationSpeed ×2(전 층 · 내리꽂힘 1.4 s · 끝 2.15 s) + life 2.4 · fade 0.3 · 판정 hitDelay 0.45 → 1.4(바위가 꽂히는 순간) · endAfter 0.6",
|
||||
"hitDelay": 1.4,
|
||||
"spreadSpeed": 0,
|
||||
"radius": 2.5,
|
||||
"launchHeight": 0,
|
||||
"launchSeconds": 0,
|
||||
"stunSeconds": 1.5,
|
||||
"endAfter": 1.0
|
||||
"endAfter": 0.6
|
||||
},
|
||||
{
|
||||
"skill": "Skill_MeteoStorm",
|
||||
|
|
|
|||
|
|
@ -12,8 +12,10 @@
|
|||
"light": 1,
|
||||
"lightColor": [ 1.0, 0.78, 0.42, 1.0 ],
|
||||
"lightRange": 0.8,
|
||||
"lightIntensity": 0.3,
|
||||
"tipPull": 0.0
|
||||
"lightIntensity": 0.6,
|
||||
"tipPull": 0.08,
|
||||
"cameraPull": 0.10,
|
||||
"_note_948_5": "#948-5 PD 「둥근 부분이 특정 공격 중에만 잠시 빛나고 평소엔 꺼짐」 = 사본 구슬 입자가 1 s 주기 · 수명 0~1.01 s · 크기 0~1.0 무작위(원본 팩 = 1회성 획득 연출)라 깜빡였다(실측) · 「둥근 이펙트 오브젝트가 튀어나와 있는데 둥근 부분에 항상 가려지면」 → 구슬 렌더러 끔(사본 WL_Fx_TipMarble 루트) · 남는 것 = 부드러운 빛무리(aura · 시작 크기 ×2.07 = 머리보다 조금 큰 0.2~0.27 m) + 반짝이 + 점광원(0.6) · 홀더 = 머리 중심(tipPull 0.08 = 머리 반지름 실측 0.099 × 손 배율) 에서 카메라 쪽 0.10 m(cameraPull · 빛무리가 머리 앞에 그려져 머리 자체가 빛나 보임 · 단단한 물체 없음)"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -223,7 +223,7 @@ ParticleSystem:
|
|||
serializedVersion: 2
|
||||
minMaxState: 0
|
||||
minColor: {r: 0.9716981, g: 0.48126557, b: 0.48126557, a: 1}
|
||||
maxColor: {r: 1, g: 0.75, b: 0.6, a: 1}
|
||||
maxColor: {r: 1, g: 0.8875, b: 0.82, a: 0.6}
|
||||
maxGradient:
|
||||
serializedVersion: 2
|
||||
key0: {r: 1, g: 1, b: 1, a: 1}
|
||||
|
|
@ -14504,7 +14504,7 @@ ParticleSystemRenderer:
|
|||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3270636523721546760}
|
||||
m_Enabled: 1
|
||||
m_Enabled: 0
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
|
|
|
|||
|
|
@ -63,6 +63,9 @@ namespace WL.Combat.Weapon
|
|||
static readonly HashSet<int> s_done = new HashSet<int>();
|
||||
static readonly Dictionary<string, GameObject> s_prefabs = new Dictionary<string, GameObject>();
|
||||
|
||||
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
|
||||
static void ResetStatics() { s_loaded = false; s_rules.Clear(); s_byName.Clear(); s_done.Clear(); s_prefabs.Clear(); s_baseScales.Clear(); } // #948-5 도메인 리로드 끔 대비 — JSON(hideNames 등)을 Play 마다 다시 읽는다(실측: 이전 값이 도메인에 남아 연기 층까지 숨겨짐)
|
||||
|
||||
static void Load()
|
||||
{
|
||||
s_loaded = true; s_rules.Clear(); s_byName.Clear();
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ namespace WL.Combat.Weapon
|
|||
public float lightRange = 0.8f;
|
||||
public float lightIntensity = 0.3f;
|
||||
public float tipPull = 0f; // 끝에서 손 쪽으로 당길 거리(m · 둥근 면 안쪽에 두고 싶을 때)
|
||||
public float cameraPull = 0f; // #948-5 끝점에서 카메라 쪽으로 당길 거리(m) — 둥근 머리가 카메라와 구슬 사이에 올 때(휘두르는 동작) 구슬이 가려져 주변 빛만 보이는 것을 막는다
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
|
|
@ -130,7 +131,13 @@ namespace WL.Combat.Weapon
|
|||
{
|
||||
if (_holder == null || _weapon == null) return;
|
||||
float k = 1f + (_r.pulse > 0f && _r.pulseSeconds > 0f ? _r.pulse * Mathf.Sin((Time.time - _t0) / _r.pulseSeconds * Mathf.PI * 2f) : 0f);
|
||||
_holder.position = _weapon.TransformPoint(_localTip);
|
||||
var tipW = _weapon.TransformPoint(_localTip);
|
||||
if (_r.cameraPull > 0f)
|
||||
{
|
||||
var cam = Camera.main;
|
||||
if (cam != null) { var toCam = cam.transform.position - tipW; if (toCam.sqrMagnitude > 1e-4f) tipW += toCam.normalized * _r.cameraPull; } // 머리 메시 앞으로 (가림 방지)
|
||||
}
|
||||
_holder.position = tipW;
|
||||
_holder.localScale = Vector3.one * k;
|
||||
if (_light != null) _light.intensity = _r.lightIntensity * k;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue