UE510 [UE5 Multiplayer Shooting-End] 최종 인게임 영상 2개월이라는 시간을 걸쳐 결국 완성을 했다. 진짜 클라이언트만 개발하다 서버가 들어오니깐 급격하게 어려웠다.(지금도 어렵다..) 하지만 진짜 누구보다 열심히했다고 생각한다. 열심히 노력한 만큼 값진 결과가 있었다 생각한다. 지인들도 게임 재밌다고 테스트 끝나고 몇번을 더 플레이 한거보면 대만족!! ■기본적인 KEY 입력■ 이동 : W A S D 발사 : 좌 클릭 줌 : 우 클릭 장전 : R 총기 스왑 : E(총이 메인, 서브 둘 다 장착이 되어있을 경우 가능) 수류탄 : G (수류탄이 좀 낮게 발사되어 좀 위로 포물선으로 날리는것 추천) 앉기 : C (발소리 작게 들림) ■플레이어 관련■ HP : 100 Shield : 100 ■무기 종류 및 설명■ Main Weapon 1. 라이플 소총 : 에임에 고정.. 언리얼5 2023. 10. 3. [UE5 Multiplayer Shooting-16] 마우스 민감도 UI 구현 개발을 진행하고 테스트하면서 민감도가 너무 빠르다는 것을 느꼈다. (저감도 유저...) 그래서 인게임에서 마우스 민감도를 조절할 수 있도록 구현하였다. 구현 방법 esc버튼 or 특정버튼 키 입력 설정 UserWidget을 상속받은 설정위젯 클래스 선언 및 구현 플레이어 캐릭터에서 마우스 민감도를 조절할 float 변수 선언 마우스 민감도 조절할 위젯을 meta = (BindWidget)으로 선언 위젯의 입력값이 바뀌었을때 각 함수 바인딩 -> 플레이어에게 해당 값 전달 코드 // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Bl.. 언리얼5 2023. 9. 28. [UE5 Multiplayer Shooting-15] 팀 데스매치, 점령전 구현(영상) 그동안 너무 구현만 하느라 언리얼 관련 블로그를 너무 못 올린 거 같네요. 다시 구현한 내용 올려보도록 하겠습니다. 구현내용 TeamsGameMode 구현, CaptureThePointGameMode 구현 TeamScores Widget 추가 TeamPlayerStart 구현 BlasterGameState에 TeamScore관련 추가 WeaponSelectUI 구현(부활할때마다 무기 선택 가능) StartUpMap관련 UI 구현(맵 선택) 버그 수정 수류탄 처음에 2발로 나와있음 표시 오류 게임 종료 후 Blue Team 텍스트 잘못된거 수정 장전도중 피격되면 장전 멈추고 공격도 안됨 DeathMatch맵 클라이언트에서 팀 스코어 표기되는거 수정 스나이퍼 줌에 플레이어 가림 두 무기중에 하나만 선택하면 .. 언리얼5 2023. 9. 27. [UE5 Multiplayer Shooting-14] Reload, Match State, Scatter 알고리즘 구현 및 무기 추가 구현 내용 Reloading 구현(Effect, Sound 등) Updating Ammo Match State WarmingUpState - 게임 입장 후 대기시간 CooldownState - 게임 끝나고 대기시간 Rocket 구현 히트스캔 무기 구현 권총, SMG, 샷건 Scatter 알고리즘 구현 랜덤하게 총알을 흩뿌리는 알고리즘(랜덤하게 총알이 발사됨) 중요한 부분 게임 모드와 게임 모드 베이스의 차이 게임 모드 (Game Mode): 게임 모드는 게임의 규칙과 로직을 관리하는 클래스입니다. 말 그대로 게임의 '모드'를 설정하며, 플레이어들이 어떻게 상호작용하고 승패를 결정할지를 결정한다고 합니다. 예를 들어 만들고자 하는 게임이 팀 전투를 다룬다면, 여기서 각 팀의 승패 조건을 정할 수 있습니다... 언리얼5 2023. 8. 21. [UE5 Multiplayer Shooting-13] Health 및 PlayerState 추가Score, Defeasts 관련 구현 내용 CharacterOverlay Class 구현 (Health ProgressBar, Score, Defeats 관련) Projectile 피격 구현(Damage) BlasterGameMode Class 생성 및 관리 구현 Elim Animation 및 Dissolve Material 구현 Elim Bot 구현 Weapon Change 구현 Random Spawn 구현 중요한 부분 1. Projectile 피격 관련 대미지 적용 (ApplyDamage 호출): UGameplayStatics::ApplyDamage 함수를 호출하여 대미지를 적용하면, 해당 대상의 AActor 클래스로 대미지 정보가 전달되고 이 정보에는 대미지의 양, 대미지 유형, 어떤 컨트롤러가 대미지를 일으켰는지, 대미지의 원인.. 언리얼5 2023. 8. 14. [UE5 Multiplayer Shooting-11] Automatic Fire, CorsshiarHUD, Zoom 완성 구현 내용 런타임 도중 움직임에 따른 Crosshair 변경 Aim의 LineTrace - HitResult.GetActor가 플레이어이고 인터페이스를 갖고있다면 Crosshair 색상 변경 BlasterCharacter가 Interface를 상속받는 클래스로 수정 Automatic Fire 구현 Crosshair HUD관련 코드 TraceUnderCrosshairs함수 뷰포트의 크기를 얻어와 화면 중앙의 위치를 얻어낸 뒤 3D공간의 월드 좌표와 방향을 얻은 뒤 해당 방향으로 LineTrace를 쏴 충돌된 Actor가 있고 해당 액터가 인터페이스를 갖고있다면 Crosshair의 색상을 빨간색으로 표시 플레이어 액터만 인터페이스를 상속받고 있기때문에 아래와 같은 코드 구성이 가능한것 void UCombat.. 언리얼5 2023. 8. 11. [UE5 Multiplayer Shooting-8] 무기 HUD 표시 및 장착 | RPC 오늘은 무기 위에 TextWidget을 띄우고 Key Input시 무기를 장착하는 과정까지 진행하였습니다. 이 과정에서 RPC에 대해 공부를 하였고 공부 내용과 작업 현황을 공유하고자 이 글을 작성합니다. RPC란? RPC는 컴퓨터 프로그램이 네트워크를 통해 다른 주소 공간에서 서브루틴 또는 프로시저를 실행할 수 있게 하는 프로토콜입니다. 언리얼 엔진에서는 RPC를 이용하여 서버와 클라이언트 간에 함수를 호출하며, 게임 상태를 동기화하는데 사용합니다. RPC 방식 종류 기본적으로 RPC 는 3가지의 방식을 갖고있습니다 Client Server Multicast UE5에서의 RPC 사용법 Client RPC 아래와 같은 방식의 RPC는 서버에서 호출되지만 클라이언트에서 동작됩니다. UFUNCTION( Cl.. 언리얼5 2023. 8. 2. [UE5 Multiplayer Shooting-7] Network Role에 관해 언리얼 엔진 Network Role은 게임 오브젝트가 네트워크에서 어떤 동작을 할 수 있는지를 결정하는 방식입니다 ENetRole ROLE_None : 객체가 네트워크 통신에 참여하지 않음을 의미합니다. ROLE_SimulatedProxy : 서버에서 상태 업데이트를 받아들이는 객체에 부여됩니다. 이 객체들은 상태 업데이트를 받아들이는 것은 가능하지만, 자신의 상태를 변경하거나 네트워크 상태를 변경하지는 않습니다. ROLE_AutonomousProxy : 서버에 상태 변경을 보고하고, 자신의 상태를 직접 제어할 수 있는 객체에 부여됩니다. 일반적으로 플레이어가 직접 제어하는 캐릭터나 게임 오브젝트가 이 역할을 가집니다. ROLE_Authority : 객체가 네트워크 상태를 결정하고, 모든 클라이언트에 상.. 언리얼5 2023. 8. 1. [UE5 Multiplayer Shooting-6] UE5 IK_Rig_Retargeting | IK 릭 리타겟팅 오늘은 사용할 두 가지의 애니메이션을 사용해야 되는데 두 애니메이션의 스켈리탈 메쉬가 달라 IK Retargeting을 사용해야 해 IK_Rig_Retargeting에 대해 설명해보고자 합니다. IK_Rig 먼저 IK는 Inverse Kinematics의 약자로, 골격 구조의 끝점 (이를테면 손 또는 발)을 움직임에 따라 그 연결된 다른 부분 (팔 또는 다리)이 그 움직임을 따라갈 수 있게 하는 방법입니다. IK Rig 은 서로 다른 스켈레탈 메시(Skeletal Mesh) 간에 애니메이션 리타기팅을 생성하는 데 사용할 수 있습니다. 이는 일치하거나 일치하지 않는 스켈레톤 간에 애니메이션을 정확하게 이전하도록 지원하면서 간소화된 워크플로를 제공한다는 점에서 기존의 애니메이션 리타겟팅과 다르다고 합니다. .. 언리얼5 2023. 7. 30. [UE5 Multiplayer Shooting-1] UE 멀티플레이 서버 모델에 대해서 멀티플레이 멀티플레이 게임을 구현하는 방법에는 크게 두 가지 방법이 있습니다. P2P Client - Server P2P 모델 P2P(Peer-to-Peer) 모델은 모든 피어(또는 참가자, 노드 등)가 서로 직접 연결되어 데이터를 공유하는 네트워킹 아키텍처를 말합니다. 장점 정보를 전송하기 가장 간단하다. 단점 플레이어가 많아지면 많아질수록 데이터 전송이 급격하게 많아져 비효율적이다. ex) 플레이어간 정보를 보내며 소통 해야하기 때문에 비효율 각 플레이어가 서버의 역할을 수행하기 때문에, 핵킹이나 치트에 더 취약할 수 있다 Client-Server 모델 Client-Server모델이란 하나 또는 여러 개의 중앙 서버가 클라이언트로부터 정보를 받아 처리하고, 그 결과를 다시 클라이언트에게 전송하는 개념.. 언리얼5 2023. 7. 25. 이전 1 다음