UE5 Multiplay7 [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-10] 반자동 라이플 발사, Crosshair 일부 안녕하세요 틴구입니다 이틀간 프로젝트 구현한 부분을 작성하려고 했는데 코드 양이 방대해 하나하나 설명하기 너무 어려워 플레이 영상으로 대체하려고 합니다. 구현 내용 Projectile Weapon 클래스 구현ㄱ Projectile Weapon 클래스는 Weapon 클래스를 상속받은 클래스 Projectile 클래스 구현ㄱ Projectile는 Fire Button Pressed 했을 경우 Weapon의 Muzzle Socket에 생성되어 날아가는 Actor Cashing 클래스 구현 Cashing는 Fire Button Pressed 했을 경우 Weapon의 AmmoEject 소켓의 위치에 생성되어 탄피가 날아가는 것을 표현해 주기 위한 클래스 BlasterPlayerController 클래스 Blast.. 언리얼5 2023. 8. 8. [UE5 Multiplayer Shooting-2] UE LAN을 활용한 멀티플레이 LAN (Local Area Network) LAN 게임 서버는 로컬 네트워크 상에서만 접근 가능한 게임 서버를 의미합니다. 같은 네트워크에 연결되어 있다면 멀티플레이어 게임을 즐길 수 있도록 해준다. 구현 방법은 아주 간단합니다 구현 내용 CharacterActor에 서버를 오픈할 OpenLobby() 함수 한 개와 서버에 입장하는 CallOpenLevel, CallClientTravel함수 두 개를 구현 1번 Client가 해당 함수를 이용해(Key Input 등록) listen서버를 열어줍니다. void AMPTestingCharacter::OpenLobby() { UWorld* World = GetWorld(); if (World) { World->ServerTravel("/Game/ThirdPe.. 언리얼5 2023. 7. 25. [UE5 Multiplayer Shooting-1] UE 멀티플레이 서버 모델에 대해서 멀티플레이 멀티플레이 게임을 구현하는 방법에는 크게 두 가지 방법이 있습니다. P2P Client - Server P2P 모델 P2P(Peer-to-Peer) 모델은 모든 피어(또는 참가자, 노드 등)가 서로 직접 연결되어 데이터를 공유하는 네트워킹 아키텍처를 말합니다. 장점 정보를 전송하기 가장 간단하다. 단점 플레이어가 많아지면 많아질수록 데이터 전송이 급격하게 많아져 비효율적이다. ex) 플레이어간 정보를 보내며 소통 해야하기 때문에 비효율 각 플레이어가 서버의 역할을 수행하기 때문에, 핵킹이나 치트에 더 취약할 수 있다 Client-Server 모델 Client-Server모델이란 하나 또는 여러 개의 중앙 서버가 클라이언트로부터 정보를 받아 처리하고, 그 결과를 다시 클라이언트에게 전송하는 개념.. 언리얼5 2023. 7. 25. 이전 1 다음