-
[Unreal Engine] CounterStrike류 멀티플레이 게임 제작 12# Weapon Switch2024년 04월 17일
- 유니얼
-
작성자
-
2024.04.17.:01
728x90개요
멀티플레이 게임에서 무기 전환 시스템은 플레이어가 전투 상황에 빠르게 대응하고 다양한 전략을 사용할 수 있게 해줍니다. Unreal Engine에서는 입력 액션, 논리, 애니메이션을 사용하여 매끄러운 무기 전환 기능을 구현할 수 있습니다. 이 포스트에서는 무기 전환을 위한 입력 액션 설정, 무기 전환 로직 구현, 무기 장착 및 해제 알림(RepNotify), 애니메이션 몽타주 생성, 그리고 장착 애니메이션 멀티캐스트 방송에 대해 설명합니다.
Weapon Switching Input Actions
플레이어가 무기를 전환할 수 있도록 특정 입력에 대한 액션을 설정합니다.
- 프로젝트 설정에서 'IA_PrimaryWeapon','IA_SecondaryWeapon' 입력 액션을 생성하고, 키나 버튼 바인딩을 할당합니다.
- 'BP_BasePlayer'에서 이 입력 액션을 감지하는 이벤트를 추가합니다.
Weapon Switching Logic
무기 전환 로직은 현재 선택된 무기와 플레이어가 선택하려는 무기 간의 전환을 처리합니다.
- SRV_EquipWeapon 이벤트가 트리거될 때, 플레이어 인벤토리에서 다음 무기를 찾습니다.
- 현재 무기를 비활성화하고, 선택한 무기를 활성화합니다.
Equip and Unequip Weapon RepNotify
무기의 장착과 해제를 네트워크상의 다른 플레이어와 동기화하기 위해 RepNotify를 사용합니다.
- 무기의 상태(장착된 무기, 비활성화된 무기)를 추적하는 Replicated 변수를 설정합니다.
- RepNotify 함수를 사용하여 이 변수의 변경 사항이 네트워크에 방송될 때마다 동기화된 무기 전환을 처리합니다.
Creating Animation Montages
무기 전환 시 플레이어 캐릭터가 애니메이션을 재생하도록 애니메이션 몽타주를 생성합니다.
- 각 무기에 대한 장착 애니메이션 몽타주("AnimMon_Reload_Pistol","AnimMon_Reload_Rifle")를 만듭니다.
- 몽타주 Anim Slot Manager에서 UpperBody Slot을 추가하고 "AnimMon_Reload_Pistol","AnimMon_Reload_Rifle"의 슬롯을 UpperBody Slot으로 교체합니다.
- 애니메이션 블루프린트에서 "Layered blend per bone"을 통해서 무기 전환 시 애니메이션을 블랜딩합니다.
Equip Animation Multicast
무기 장착 애니메이션을 모든 클라이언트에게 방송하기 위해 멀티캐스트 이벤트를 사용합니다.
- 애니메이션 몽타주를 네트워크상의 모든 클라이언트에 재생하는 멀티캐스트 함수를 구현합니다.
- 플레이어가 무기를 전환할 때, 해당 멀티캐스트 함수를 호출하여 모든 플레이어에게 애니메이션을 동기화합니다.
결론
Unreal Engine의 Blueprint를 사용한 무기 전환 시스템은 멀티플레이 게임에서 플레이어의 경험을 풍부하게 만드는 핵심 기능입니다. 입력 액션, 전환 로직, RepNotify, 그리고 애니메이션 몽타주를 통해 플레이어는 부드럽고 직관적으로 무기를 전환할 수 있습니다.
반응형다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드
받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이
감지되어도 모달 창이 표시되지 않습니다.)