분류 전체보기 31

[UE5] 게임플레이 어빌리티(GA) 주요 함수 및 용어 소개

게임플레이 어빌리티(Gameplay Ability)는 줄여서 GA로 불립니다. 게임 어빌리티 시스템을 관리하는 핵심 컴포넌트인 Ability System Component(ASC) 에 등록하고 발동시킬 수 있는 액션 명령을 '어빌리티'라고 지칭하는 것입니다.이 ASC는 액터 당 단 하나만 부착될 수 있고, 이 ASC를 부착한 액터들 사이에서는 GAS(GameAbilitySystem) 의 상호작용이 가능해집니다.예를 들면 공격, 마법, 특수 공격등의 명령을 지정할 수 있습니다. 또 상황에 따른 복잡한 액션을 수행할 수 있습니다. (누군가가 발을 거는 스킬을 썼을 때, 캐릭터가 반드시 앞구르기 착지를 한다던가.. ) 하나 이상의 GA 가 한 번에 활성화된다면 동시 액션이 가능합니다.예를 들면, 뛰면서(Spr..

게임개발/unreal 2024.07.15

[UE5] 언리얼 프로젝트 <코드 파일을 찾지 못했습니다> sln 생성하기

테스트 프로젝트로 이것 저것 시도할 때 가끔 발생하는 오류라 기록으로 남기는 글입니다. 언리얼 프로젝트 파일을 다운로드로 가져와서 언리얼 파일을 열어서 C++ 클래스를 오픈하려고 합니다.이 때 코드 파일을 찾지 못했습니다 ~ 하는 경고가 나오면서 해당 경로에 sln 파일이 없다고 경고합니다.  이럴 때 해결하는 방법은 간단합니다.언리얼 에디터에서 상단의 [툴Tool] > [Visual Studio 프로젝트 생성] 을 클릭합니다. 그러면 Visual Studio 생성을 누르면 코드 프로젝트 업데이트중 안내가 뜹니다.  해당 프로젝트 경로를 확인하면 sln 파일이 생성되어 있습니다.해결 완료!

게임개발/unreal 2024.06.23

[UE] 언리얼 엔진의 커넥션 구성

언리얼에서의 커넥션 구성을 살펴봅니다. 1. 네트워크 통신을 담당하는 언리얼 주요 클래스언리얼 엔진 통신의 구성은 하이레벨과 로우 레벨로 구성할 수 있습니다.하이 레벨 : 게임 구성하는 단위인 액터, 컴포넌트, 월드와 같이 컨텐츠를 구성하는 오브젝트의 상태와 속성과 관련된 상위 개념을 의미한다.로우 레벨 : 상태와 속성을 네트워크를 통해 전달(통신)하기 위해 만들어진 데이터 스트림을 말한다.   PlayerController 클래스 : 네트워크 통신에 접근 가능한 게임 내의 대표 액터 네트워크 커넥션을 관리합니다.UNetConnection 클래스 : 상위에서 네트워크 통신을 담당하는 클래스. 패킷 데이터의 인코딩 디코딩, 네트워크 통신량 조절(대역폭 관리), 채널 관리를 합니다.즉, 하이 레벨의 상태값이..

[UE] 네트워크 모드에서의 액터의 준비와 게임 시작

네트웍 멀티플레이어에서 원격 액터의 초기화 과정을 이해하는 시간입니다.아래의 세 함수들은 액터의 준비 및 게임의 시작을 담당하는 함수입니다.  1. 액터의 준비 - 액터의 초기화를 담당하는 함수들입니다.// 서버와 무관AGameStateBase::PostInitializeComponents()플레이어 컨트롤러가 초기화(생성)되면서, 네트워크와 무관한 (게임과 무관한) 액터 설정의 초기화는 PostInitializeComponents 에서 담당합니다.게임을 시작하기 전, 서버 변경 정보를 전달받아 네트워크로 전달합니다.// 원격 클라이언트에서 호출됨// 서버에서 값을 전달받아 원격 클라이언트의 Actor 세팅이 모두 마무리될 때 호출된다AActor::PostNetInit() 원격 클라이언트에서 호출되어 서..

[UE] 게임 모드와 플레이어 컨트롤러를 활용한 로그인 플로우의 이해

이번 포스팅에서는 언리얼 엔진의 게임 모드 내 네트워크 호출 함수의 흐름을 파악해봅니다.게임을 시작할 때 네트워크를 사용하는 게임이라면 PreLogin, Login, PostLogin, StartPlay, BeginPlay 함수를 거치게 되는데요.눈으로 보고 싶다면 로그를 찍는 매크로를 만들어 확인해볼 수 있습니다. 로그 매크로 만들기// Log Macro 사용// GetNetMode : 게임의 인스턴스가 수행하는 역할을 정의하는 열거형타입// GPlayInEditorID : Play In Editor (PIE) 는 각 에디터의 ID 반환, 그렇지 않은 경우는 -1을 반환// NM_Client : NM은 NetMode의 약자. 게임을 하는 사람을 통해 서버에 접속된 게임의 인스턴스를 묘사// NM_Sta..

[UE] 어플리케이션의 네트워크 모드 파악하기

언리얼 엔진 어플리케이션의 네트워크 모드 파악하기 1. Standalone 스탠드얼론게임이 원격 클라이언트의 연결을 허용하지 않는 서버로 실행합니다. 게임에 참여하는 모든 플레이어는 모두 로컬 플레이어입니다. 이 모드는 싱글플레이어 및 로컬 멀티플레이어 게임에 사용되며, 서버/클라이언트 로직을 모두 실행합니다. 로컬 플레이어만을 위한 로직으로 프로그램을 구성하게 되므로, 나중에 멀티플레이어 게임으로 전환하는 과정이 매우 까다롭습니다. 2. Client 클라이언트서버에 연결된 클라이언트로 실행되어, 프록시(Proxy 허상)만 보여주는 역할을 담당합니다. 3. Listen Server(리슨 서버)호스팅하는 서버로 실행됩니다. 로컬 플레이어를 서버에 직접 배치하여 자기자신도 하나의 플레이어로서 게임에 참여하게..

[UE] 언리얼 엔진의 멀티플레이어 게임 프레임워크 특징과 네트워크 프로그래밍에서 BP가 아닌 C++을 사용해야 하는 이유

UE 에서 싱글 플레이어 게임이 PvP가 가능한 멀티 플레이어 게임이 되기까지1) 접속 플로우- 로그인 / 커넥션 / 오너십 / 역할 2) 액터 리플리케이션- 연관성 / 우선권 / 빈도- 서버와 클라이언트 간에 동일한 액터가 나타나도록 만드는 기능입니다.- 액터 업데이트 방식은 크게 두 가지 방식( RPC 방식, 프로퍼티 리플리케이션 방식 )으로 나뉩니다.더보기https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/Networking/Actors/ 액터 리플리케이션액터 오브젝트 리플리케이션을 여러모로 살펴봅니다.docs.unrealengine.com2-1) RPC (원격 함수 호출, Remote Procedure Call)- 이전에는 Function ..

[UE5] 언리얼 멀티플레이어 네트워킹

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/networking-overview-for-unreal-engine?application_version=5.1 언리얼 엔진의 네트워킹 개요멀티플레이어용 네트워크 게임 구성하기dev.epicgames.com 언리얼 공식 홈페이지를 참고하여 작성한 문서입니다. (영문 버전) 언리얼 엔진을 이용해 만들어진 유명 게임들이 많습니다. 우리나라에서는 최근 언리얼 엔진 5를 사용해 가장 먼저 시장에 선보인 위메이드사의 를 비롯해, 넥슨(니트로 스튜디오)사의 등 그래픽이 잘 뽑혔다 라고 말하는 게임류의 절반은 언리얼 엔진으로 개발되었습니다.이렇게 많은 게임들이 언리얼 엔진을 이용하는데엔 그래픽적 이점이 있기도 ..

언리얼 소스 편집툴 Rider 키맵, 화면 테마 변경법

언리얼 코드를 Visual Studio 로 편집하는 것이 보통이지만, Rider 이용자들도 많이 생겨났다.Rider 가 Visual Studio 보다 빠르고 직관적이며, 리팩토링 기능이 좋기 때문이다.이직을 하면서 실무에서 Rider 를 쓰게 되었기에 낯선 Rider 에 적응하고자 노력 중이다. https://www.jetbrains.com/ko-kr/rider/ Rider: JetBrains의 크로스 플랫폼 .NET IDE www.jetbrains.com 체코의 소프트웨어 회사에서 만든 JetBrains 은 Visual Studio 에서도 Reshaper 라는 플러그인으로 사용할 수 있다.처음에는 VS에서 Visual Assist에 익숙해진 탓에 Rider에 대한 불신도 있었지만, 직접 써보니 다르긴 ..

게임개발/unreal 2024.04.21

[프로그래머스 Lv.3] 정수 삼각형

Solution ) 밑으로 내려갈 수록 쌓여 내려간다. DFS 로 풀 수도 있겠지만, 경우의 수가 너무 많아지므로 효율이 떨어진다. DP 방식, 즉 기억해서 써먹기 알고리즘으로 가야한다. 쉽게 접근하고자 삼각형을 배열(표) 형식으로 바꿔본다. 7 0 0 0 0 3 8 0 0 0 8 1 0 0 0 2 7 4 4 0 4 5 2 6 5 (Triangle 이중 배열) * 빈칸으로 보일 수 있는 부분은 계산식 수립이 용이하도록 0을 채워넣었다. 삼각형을 배열(표)로 만든 것과 동일하게, SumList 라는 이중 배열을 하나 더 만들어주었다. 이 이중 배열의 용도는 해당 칸까지 내려간 수의 Sum, 총 합 값을 기억하기 위해서다. 7 0 0 0 0 10 15 0 0 0 18 16 15 0 0 20 25 20 19 ..