유틸리티 매크로
디버그 시 언리얼 에디터 Outer log 창에 로그를 표시하기 위한 매크로를 만든다.
로그는 중요도, 카테고리에 따라 필터링하여 확인 가능하다.
캐릭터와 카메라의 회전
캐릭터의 카메라가 바라보는 방향과 캐릭터의 Z축 회전 방향을 일치시키기 위한 설정
마우스의 횡이동에 따라 캐릭터를 Yaw 회전하도록 설정한다.
체력 시스템
일단 단순하게 초기 체력 100으로 시작하여 Bullet에 충돌시 10씩 체력이 감소하며 0이 되면 Character 액터를 Destroy하는 방식으로 구현해 놓았다.
Bullet 충돌 처리
충돌 처리는 Hit Event 대신에 Overlap 이벤트를 사용하여 구현하였다. Overlap 이벤트를 발생시키기 위해서는 두 오브젝트가 상대 오브젝트를 Overlap - Overlap 혹은 Overlap - Block하게 반응하도록 설정해야 하고, 양쪽 오브젝트 모두에 Generate Overlap Events가 체크되어 있어야 한다.
Bullet 액터는 맵을 이루는 Static Mesh Actor(World Static 오브젝트)와 Overlap 시에 사라져야 하므로 World Static을 상대로 Overlap으로 설정하고 Bullet 간의 충돌은 처리하지 않을 것이므로 Bullet을 상대로 Ignore로 설정한다.
총알은 벽이나 다른 플레이어에 충돌하면 사라지도록 한다. 자신(플레이어)과 충돌하는 경우에는 충돌 처리(총알의 파괴, 피격 처리)를 하지 않도록 한다.
Bullet 액터를 스폰할 때 해당 액터를 생성시킨 Owner를 정해주며 스폰하였는데, 이 정보를 Bullet의 Overlap 이벤트가 발생할 때 활용하여 스스로 체력을 깎는 현상을 방지한다.
테스트로 BP_BullettimeCharacter를 월드에 하나 배치하고 10번 맞추었더니 사라졌다.
'언리얼 5 > 게임 개발 일지' 카테고리의 다른 글
FPS 게임 개발 #7 (리플리케이션 마무리, 체력 UI 적용) (0) | 2022.11.13 |
---|---|
FPS 게임 개발 #6 (RepNotify와 RPC 함수를 사용하여 리플리케이션 적용하기) (0) | 2022.11.12 |
FPS 게임 개발 #4 (애니메이션 리타게팅, 레이어 애니메이션) (0) | 2022.10.28 |
FPS 게임 개발 #3 (애셋 이주, 적용) (0) | 2022.10.27 |
FPS 게임 개발 #2 (샘플 프로젝트 코드 리뷰) (0) | 2022.10.22 |