본문 바로가기

분류 전체보기

(104)
[Unreal] US_Character.h 생성자 코드 분석(카메라) US_Character.h#include "CoreMinimal.h"#include "GameFramework/Character.h"#include "US_Character.generated.h"UCLASS()class UNREALSHADOWS_LOTL_API AUS_Character : public ACharacter{ GENERATED_BODY() UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Camera", meta = (AllowPrivateAccess = "true")) TObjectPtr CameraBoom; UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Ca..
[Unreal] US_GameMode Class 생성자 코드 분석 US_GameMode.h#include "CoreMinimal.h"#include "GameFramework/GameMode.h"#include "US_GameMode.generated.h"UCLASS()class UNREALSHADOWS_LOTL_API AUS_GameMode : public AGameMode{ GENERATED_BODY()public: AUS_GameMode();}; 헤더 파일 다른 문서에 작성한 내용과 중복됨으로 생략 한다.US_GameMode.cpp#include "US_GameMode.h"#include "US_GameState.h"#include "US_PlayerController.h"#include "US_Character.h"#include "UObject/Construc..
[Unreal] 프로젝트 - 맵 & 모드 설정 언리얼에서 게임을 만들기 위해서는 GameMode를 설정해야 한다. 설정하는 이유는 다양하지만, 기본적으로 해야 하는 것이라고 생각한다. 추후 조사하여 확인할 예정이다. 편집 → 프로젝트 세팅에 들어가면 GameMode를 설정할 수 있다. 여기서 C++ 코드를 컴파일하면 현재 설정된 클래스들을 볼 수 있다. GameInstrance: 레벨 변경 또는 게임 세션 전반에 걸쳐 유지돼야하는 고수준 데이터를 관리한다. 기본적으로 전역적으로 접근 가능한 UObject로, 게임에서 유지해야하는 데이터를 모두 저장할 수 있다. 여기에는 플레이어 점수, 다른 레벨이나 게임 세션 전반에 걸처 공유해야 하는 기타 정보 등이 포함된다.GameMode: 플레이어가 게임에 참가하는 방법, 레벨간 전환 방법, 기타 게임별 설정과..
[Unreal] 첫 번째 멀티플레이어 환경 설정 C++ 클래스의 이해언리얼 엔진 5가 출시되면서 에픽게임즈는 C++ 헤더 프리뷰(Header Preview)라는 놀라운 검사 도구를 도입했다. 이 도구를 사용하면 블루프린트 클래스가 마치 C++로 작성된 것처럼 검사 결과를 볼 수 있다. 언리얼 엔진에는 개발 중에 파생될 수 있는 세 가지 주요 클래스 타입이 있다.UObject: 언리얼 엔진의 기본 클래스이며, 가비지 컬렉션, 네트워킹 지줜, 프로퍼티 및 멤버 함수의 리플렉션 등 언리렁 엔진에서 사용 가능한 대부분의 주요 기능을 제공한다.AActor: 에디터 또는 런타임 중에 게임 레벨에 추가할 수 있는 UObject이다. 런타임 중에 추가될 때는 액터가 스폰됐다고 말한다. 또한 AActor는 멀티플레이어 환경에서 네트워킹 중에 복제될 수 있는 기본 타입..
[Unreal] 프로젝트 프로토타입으로 멀티플레이어 시스템 테스트 결과 화면 이번 장에서는 C++ 프로그래밍을 하지 않고 블루프린트를 통해 프로젝트를 진행하였다. 프로젝트의 핵심은 리플리케이션의 존재를 확인하는 것과 블루프린트를 통해 객체를 다루는 것이다.  따라서 이번 게임은 간단히 오브젝트를 먹으면 그에 해당하는 포인트가 오르는 것이 전부이다.   참고로 필자의 컴퓨터 사양은 AMD Ryzen 5 5600X와 RTX 3070 Ti로 쾌적한 환경은 아니다.오브젝트퀵셀 메가스캔에서 오브젝트를 구했다.Scale을 키운 후 Bake Transform을 통해 단위 벡터로 만들고 Collision을 추가했다.다른 클라이언트에게 전송하기 위해 Replication의 Replicates를 활성화했다.Sphere Collision 컴포넌트를 통해 Overlap Events를 처리하..
[Unreal] Blueprints(Switch Has Authority Node) 멀티플레이 게임에 대한 지식이 있다면, 멀티플레이어라는 것은 한 공간에 여러 사람들이 모이는 것이 아니라, 4명이 존재한다면 4개의 공간을 각자 하나씩 가지고 자신의 움직임을 다른 사람에게 알려주는 형식이라는 것을 알 것이다.그렇기에 스폰과 같이 서로 일치해야 하는 정보를 공유하지 않으면 서로 다른 멀티버스가 생길 뿐이다. 이를 방지하기 위해 Blueprints에서는 Switch Has Authority Node를 통해 클라이언트와 서버를 나눌 수 있다. 이번 프로젝트에서 스포너를 사용할 때 사용한 Event Graph로 스폰은 서버만 하도록 설정되어 있는 것을 알 수 있다.그래서 만약 서버에서는 스폰이 되는데 다른 클라이언트는 스폰된 물체가 보이지 않는 경우, Replication의 Replicates..
[Unreal] Blueprints 배열 변수 초기, 컴파일 Blueprints에서는 클래스 배열을 초기화하기 위해 다음과 같은 과정이 필요하다. 변수에 + 버튼으로 생성한 변수에 클래스와 레퍼런스를 지정하면 처음에는 단일형으로 정의된다. 그러나 우리가 원하는 것은 배열이다. 변수 디테일을 보면 단일, 배열, 세트, 맵 중 하나를 선택할 수 있다. 그 후 초기화를 위해 Blueprints를 컴파일해야 한다.이후 디테일에서 기본값을 보면 + 버튼을 통해 인덱스를 늘려 초기화할 수 있는 것을 볼 수 있다.
[Unreal] Component Sphere Collision(Generate Overlap Events) Component Sphere Collision의 Generate Overlap Events는 Collision을 통해 겹치는 일이 발생할 경우 이를 처리하기 위한 Event다.이를 위해 Blueprints에 EventGraph로 Evnet Node를 생성하여 이를 처리할 수 있다. 위의 사진은 이번 프로젝트에 사용한 노드이다. 겹침이 발생하면 메시지를 보내고 파괴되도록 되어 있다.