오늘 한 일
- WeaponBase 리팩토링
- GetFireStart() / GetFireDirection()
- 플레이어 → 카메라 기준
- AI → Muzzle 소켓 기준
- ApplyRecoil() 로직 분리
- 카메라 흔들림(리코일) ↔ Direction 퍼짐(Spread) 스택 분리
- DoFire() 흐름: Start → Dir (Spread) → LineTrace → PlayMuzzleEffect()
- GetFireStart() / GetFireDirection()
- 발사 이펙트
- UNiagaraSystem* MuzzleFX + USoundBase* FireSound
- SpawnSystemAttached() / SpawnSoundAttached() 한꺼번에 처리
- Niagara MuzzleFlash 세팅
- Emitter 2개 (Flame 0.1 s + Smoke 1 s)
- Spawn Burst Instantaneous, Set Velocity Cone
- 머티리얼 M_MuzzleFlash : Unlit + Additive + Soft Alpha
- Flipbook·SpriteSize 팁 습득
- Sprite Size Mode = Non-Uniform → X·Y 따로 입력
- Flipbook 함수로 Sub-UV 불꽃 프레임 재생 가능
📚 오늘 배운 것
주제핵심 포인트
카메라 vs Muzzle | 실제 판정은 카메라 / 이펙트는 머즐 |
탄 퍼짐 설계 | Start 고정 + Direction Cone 편이 버그·동기화에 안전 |
리코일 스택 | 리코일(시야) ≠ 퍼짐(탄도) → 독립 파라미터 조정이 쉽다 |
Niagara Burst | Spawn Burst Instantaneous 로 한 방에 파티클 뿜기 |
머티리얼 Additive | Unlit + Emissive × Brightness 파라미터로 불꽃 밝기 제어 |
🤔 고민 & 결정
- DataAsset
- 무기 개수 적으니 우선 TObjectPtr<UWeaponDataAsset> 하드 참조로 시작,
규모 커지면 Soft / Asset Manager 로 교체하기로.
- 무기 개수 적으니 우선 TObjectPtr<UWeaponDataAsset> 하드 참조로 시작,
- AI 발사
- 카메라 없는 AI도 같은 DoFire() 재사용 가능 확인 → BT Task로 바로 연결 예정.
🚀 내일 할 일
- RecoilData DataAsset 만들고 무기별 값 뽑기
- 카메라 리코일 입력(Controller Pitch/Yaw) 실제 적용
- 간단 BTTask_FireWeapon 써서 AI 사격 테스트
- MaxRange·Spread 값 매직 넘버 → 데이터화
M_MUZZLEFLASH : UNLIT + 첨가제 + 소프트 알파
'🧭 Devlog > TIL' 카테고리의 다른 글
TIL #25.05.29 (0) | 2025.05.30 |
---|---|
TIL #25.05.27 (4) | 2025.05.27 |