-
[Unreal Engine] CounterStrike류 멀티플레이 게임 제작 14# Weapon Shoot2024년 04월 18일
- 유니얼
-
작성자
-
2024.04.18.:18
728x90개요
CounterStrike류 멀티플레이 게임에서 무기 발사 메커니즘은 액션의 중심입니다. Unreal Engine을 사용하면, 플레이어에게 발사 관련 시각적, 청각적 피드백을 제공하고, 정확한 충돌 감지를 통해 실시간으로 상호작용하는 복잡한 메커니즘을 구현할 수 있습니다. 이 포스트에서는 크로스헤어 UI, 무기 속성 구조화, 발사 입력 액션, 플레이어와의 라인 트레이스 충돌 감지, 발사 효과와 소리에 대해 설명합니다.
Crosshair UI
크로스헤어는 플레이어가 목표를 정확히 조준하는 데 도움을 줍니다.
- WB_Crosshair Blueprint Widget을 추가합니다.
- 크로스헤어 디자인을 구현합니다.
- WB_Crosshair을 플레이어가 스폰될 때 ViewPort에 추가합니다.
Weapon Properties to Structure
무기의 다양한 속성을 효율적으로 관리하기 위해 구조체를 사용합니다.
- 무기의 데미지, 탄창 크기, 발사 속도 등을 포함하는 구조체를 생성합니다.
- 구글 스프레이드 시트에서 해당 레퍼런스 경로들을 설정합니다.
- csv파일로 다운로드 받고 엔진에 Import합니다.
Weapon Input Action
플레이어가 발사를 할 수 있도록 입력 액션을 설정합니다.
- 입력 설정에서 'Fire'와 같은 새 입력 액션을 추가합니다.
- 이를 플레이어의 발사 함수에 바인딩합니다.
Line Trace Player Collision
발사할 때 목표물에 대한 정확한 충돌 감지를 위해 라인 트레이스를 사용합니다.
- 발사 함수 내에서 라인 트레이스를 시작하여 총구 위치에서 시작하고, 크로스헤어 방향으로 직선을 그립니다.
- 충돌 감지가 있을 경우, 피격된 대상에 데미지를 적용합니다.
Shooting VFX & SFX
발사 시 시각적, 청각적 피드백을 제공하는 효과와 소리를 추가합니다.
- 무기를 발사하면 WeaponInfo에 설정한 MuzzleFlash을 Spawn Emitter Attached 함수를 통해서 S_Muzzle 소켓에 생성합니다.
- ShootingSFX를 재생합니다.
Preventing Shooting During Equip Anim
무기 장착 애니메이션 재생시 무기 발사 함수가 실행되지 않도록 합니다.
- bIsEquippingWeapon bool형 변수를 추가하고 Replication을 Replicated로 변경합니다.
- SetIsEquippintWeapon,SRV_SetIsEquippintWeapon 이벤트를 추가하고 bIsEquippingWeapon 변수로 무기 장착 애니메이션을 제어합니다.
- 기존 SRV_EquipWeapon,SRV_LootWeapon 이벤트 로직을 수정합니다.
결론
Unreal Engine을 활용하여 구현한 무기 발사 기능은 CounterStrike류 게임의 흥미진진한 전투 경험을 위한 핵심입니다. 크로스헤어 UI, 정밀한 타격 판정, 몰입감을 높이는 시각적/청각적 효과 등은 게임의 질을 높이고, 플레이어에게 만족스러운 슈팅 경험을 제공합니다.
반응형다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드
받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이
감지되어도 모달 창이 표시되지 않습니다.)