오늘은 점프대를 만들어 보았다
점프력을 건들여 만드는 점프대
발판에 들어가게 된다면 z Velocity값을 1500으로 설정하고 나가게 되면 원래 값으로 복귀 ( 버프 형식 )
Add Impluse를 이용한 점프대
AddImpulse vs AddForce 차이점
적용 방식 | 순간적으로 (한 프레임에) 힘을 가함 | 매 프레임 누적적으로 힘을 가함 (지속적으로 밀어줌) |
물리 의미 | 운동량 (Impulse) = 힘 × 시간 | 힘 (Force) = 질량 × 가속도 (F = ma) |
사용 목적 | 갑작스러운 튕김, 발사, 폭발 효과 등 | 중력, 바람, 꾸준한 밀기 등 지속적인 힘을 표현할 때 |
프레임 간 누적 여부 | 한 번만 적용됨 → 반복하려면 매 프레임 호출 필요 | 계속 호출되는 동안 효과 누적 |
대표 사용 상황 | 총알, 캐릭터 날리기, 터지는 물체 | 물체 끌기, 바람 효과, 중력 커스터마이징 등 |
자동 질량 반영 | 질량에 따라 실제 적용값 자동 조정됨 | 마찬가지로 질량에 따라 자동 조정됨 |
대표 함수 시그니처 | AddImpulse(FVector Impulse, ...) | AddForce(FVector Force, ...) |
- Vell Change : Vell Change를 꺼진채로 작업한다면 무개에 따라 충격량이 상쇄된다
원하는 위치로 날려보내는 점프대
캐릭터에 물리력을 가하고 싶을 때
- 기본적으로 캐릭터 움직임(Character Movement) 컴포넌트가 물리를 직접 제어하고 있기에 단순히 물리 힘을 가해도 적용되지 않음
- 캐릭터에 물리 발사를 하고 싶다면 LaunchCharacter() 함수 사용해야 함
LaunchCharacter() 의 핵심 특징
- 다음 틱(Next Tick) 즉, 호출 직후에 바로 적용되지 않기 때문에, 그 다음 프레임에서 효과가 나타남
- 그래서 LaunchCharacter() 뒤에 위치 조정 등을 해도 반영이 안 될 수 있음
Custom Arc 파라미터
- 특정 곡선(포물선)을 따라 캐릭터를 날리고 싶다면, 아크 관련 파라미터를 조절
- Arc Parameter 값이 낮을수록 고각, 높을수록 직선 형태로 날아감
LaunchCharacter() 오버라이드 필요
- 발사 시 원하는 방향과 세기를 명확히 적용하려면 오버라이드 방식 사용
- 이전 힘이 남아있으면 불안정하게 날릴 수 있으므로, 명확히 기존 힘을 덮어씌워야 깔끔하게 발사됨
왜 안 날아가는가? (문제 상황 분석)
- LaunchCharacter() 적용 후 캐릭터가 정점까지 날아가고 내려올 때 x, y 방향 힘이 사라지는 현상 발생 이는 캐릭터 움직임 컴포넌트의 설정 때문
- 예: "Falling 상태에서 속도 감쇠" 옵션 활성화 -> 중력이 계속 적용되고 있음 -> 움직임에 영향을 줌
- 점프 관련 파라미터 중 Falling 속도 조절값이 있음 -> 0으로 설정하면 중력 영향을 줄일 수 있음
플레이어가 조작하면?
- 발사 중 플레이어가 입력을 하면, 캐릭터 움직임이 우선되면서 발사가 중단될 수 있음
- 완전한 발사를 원하면 입력을 일시적으로 차단하거나 무시해야 함
상태 백업 필수
- 캐릭터의 기존 상태를 발사 전에 백업하고 발사 중에는 물리 설정 변경
- 발사 후에는 원래 상태로 되돌리는 처리 필요
- 문제: "언제 원래 값으로 되돌릴 것인가?" → 조건 명확히 설정 필요
가장 단순한(무식한) 방법
- 발사대에 닿는 순간 캐릭터의 모든 움직임을 정지
- 이후 일정 시간 동안 강제로 발사 상태 유지
- 시간이 지나면 원래 상태로 복구
- 예: LaunchDuration을 지정해서 그 시간 동안 조작 불가 & 설정 유지
'Unreal' 카테고리의 다른 글
[Unreal] 4월 8일 수업정리 (0) | 2025.04.09 |
---|---|
[Unreal] 4월 7일 수업정리 (0) | 2025.04.07 |
[Unreal] 4월 3일 수업정리 (0) | 2025.04.03 |
[Unreal] 4월 2일 수업정리 (0) | 2025.04.02 |
[Unreal] 4월 1일 수업정리 (0) | 2025.04.01 |