묻공러
'분류 전체보기' 카테고리의 글 목록 (7 Page)

분류 전체보기

게임 엔진/[코드조선] 언리얼

언리얼 게임 플레이 프레임워크 - 이벤트 함수 Flow

GameMode의 주요 이벤트 함수는 아래와 같다// SGameMode.h...UCLASS()class STUDYPROJECT_API ASGameMode : public AGameModeBase{ ...public: ASGameMode(); virtual void InitGame(const FString& MapName, const FString& Options, FString& ErrorMessage) override; virtual void InitGameState() override; virtual void PostInitializeComponents() override; virtual void PreLogin(const FString& Options, con..

게임 엔진/[코드조선] 언리얼

언리얼 게임 플레이 프레임워크 - 플레이어 컨트롤러와 폰

플레이어 컨트롤러 가상 세계에서 플레이어를 대변하는 무형의 액터이다플레이어 컨트롤러는 플레이어와 1:1로 연결되어 폰을 조작할 수 있다플레이어가 입장할 때마다 배정되고배정된 플레이어 컨트롤러는 변경이 불가능하다폰 플레이어 컨트롤러에게 조종당하는 액터이다플레이어 컨트롤러는 정신, 폰은 육체와 같다플레이어는 플레이어 컨트롤러를 통해서 현재 조종하는 폰을 버리고 다른 폰에 빙의할 수 있다 주요 용어- 로그인(Login) 플레이어의 게임 입장으로언리얼 에디터 > Toolbar > 플레이 버튼(Play In Editor)을 통해 가능하다- 빙의(Possess) 플레이어 컨트롤러가 폰을 소유해서 조종하는 과정이다게임 모드에 플레이어 컨트롤러 지정하는 방식 플레이어 컨트롤러 액터를 생성하고 해당 액터 개체를 게임 모..

게임 엔진/[코드조선] 언리얼

언리얼 게임 플레이 프레임워크 - Game Mode

게임 모드플레이어에게 보이지 않는 무형이다대표적으로 두 가지 역할을 한다1) 게임 플레이 중 사건이 발생할 때 게임 진행의 심판 역할ex. 게임 승리 조건, 살아남은 플레이어가 혼자라면 해당 플레이어 승리,... 2) 플레이어 입장을 준비하는 역할. ex. 플레이어 컨트롤러, 플레이어가 빙의할 폰 지정, …  게임 모드와 게임 서버게임 모드는 서버와 밀접한 관계가 있으며서버의 역할과도 마찬가지라고 할 수 있다게임 모드는 하나의 PC(서버 컴퓨터)에만 존재한다 만약 방을 파서 플레이하는 게임이라면 (리슨서버) 방장의 PC에만 게임 모드 액터가 존재한다혹은 데디케이티드 서버(클라 로직이 없고, 서버 로직만 동작하는 서버)라면 데디 서버에만 게임 모드 액터가 존재한다즉, 게임 모드는 서버 컴퓨터에만 존재하고,..

게임 엔진/[코드조선] 언리얼

언리얼 게임 플레이 프레임워크 - 기본 구성

언리얼 엔진에서의 게임 제작언리언 엔진으로 게임을 제작 과정은 아래와 같다1) 레벨 구성 2) 레벨에 WorldStatic과 같은 액터와 플레이어와 상호 작용할 액터들 배치3) 게임 플레이 설계 4) 게임 로직에 따라 게임 플레이가 원활하게 진행되게 하는 작업 1~2단계를 통해 레벨 구성이 완료되고 3~4단계에서 사용하는 것이 언리얼에서 제공하는 게임 플레이 프레임워크이다게임플레이 프레임워크 언리얼 게임플레이 프레임워크는 다양한 게임 장르와 멀티 플레이까지 지원할 수 있도록 설계된 언리얼 프레임워크이다 게임플레이 프레임워크의 핵심 3가지 요소는 아래와 같다- 게임 모드(Game Mode) 게임의 규칙을 관리하는 클래스 - 플레이어 컨트롤러(Player Controller) 실질적으로 게임에 입장하는 플..

게임 엔진/[코드조선] 언리얼

언리얼 Actor - 주요 이벤트 함수

이벤트 함수 게임이 시작될 때, 액터는 준비/시작/지속/퇴장의 과정을 거친다이 과정에서 언리얼 엔진에 의해 자동으로 호출되는 함수를 이벤트 함수라고 한다주요 이벤트 함수의 호출 및 순서에 따른 구분은 아래와 같다- PostInitializeComponents() 액터를 구성하는 모든 컴포넌트가 초기화되었고 액터 자신이 초기화 될 수 있는 상태일 때 호출되는 함수로준비 과정에 속한다- BeginPlay() 해당 함수가 호출되면서 액터는 자신에게 주어진 로직을 수행하기 시작하며시작 과정에 속한다- Tick(float DeltaSeconds) BeginPlay() 함수가 한 번 호출되는 함수라면, Tick() 함수는 매 프레임마다 호출된다Tick() 함수의 매개변수인 DeltaSeconds는 이전 프레임부터 ..

게임 엔진/[코드조선] 언리얼

언리얼 Actor - 언리얼 에셋 지정

에셋 지정을 하는 방식은 두 가지이다 1) 오브젝트 패스를 이용언리얼은 애셋의 고유한 키 값으로 경로 값을 사용한다애셋을 클릭하고 Ctrl + C 하면 오브젝트 패스를 얻을 수 있고{오브젝트 타입}'{폴더명}/{파일명}.{에셋명}' 의 형식을 가진다이를 ConstructorHelpers의 기능을 이용해 오브젝트를 찾게 하고SetStaticMesh와 같은 함수로 에셋 설정이 가능하다 하지만아트팀에서 해당 에셋을 수시로 변경하고 이동시키는 경우가 많기에해당 방법은 안전하지 않은 방법이다// STorch.cpp...ASTorch::ASTorch(){ ... BodyStaticMeshComponent = CreateDefaultSubobject(TEXT("BodyStaticMeshComponent")..

게임 엔진/[코드조선] 언리얼

언리얼 Actor - UPROPERTY()의 Specifier

UPROPERTY() 매크로 안에 작성할 수 있는 Specifier(지정자)는 아래와 같다 첫 번째 지정자Visible / Edit + Anywhere / DefaultsOnly / InstanceOnly  - Visible / Edit : 에디터에서 수정 불가능 / 가능 - Anywhere / DefaultsOnly / InstanceOnly :에디터에서 편집 가능한 영역. 어디서나 / CDO에서만 / 개체에서만  두 번째 지정자BlueprintReadOnly / BlueprintReadWrite  해당 클래스를 블루프린트 클래스에서 사용하는 경우에 수정 불가능(Get 지원) / 가능(Get, Set 지원) 일반적으로 블루프린트로 작업하는 경우는 드물기에BlueprintReadOnly로 작성하는 것이 ..

게임 엔진/[코드조선] 언리얼

언리얼 Actor - 언리얼 C++ 자료형

언리얼 C++ 자료형오브젝트 타입: 스태틱 메시 컴포넌트의 포인터,...프리미티브 타입: uint8, int32, float,... 프리미티브 타입 재정의의 필요성C++의 기반인 C언어는 임베디드 전용 언어로최소한의 메모리로도 동작할 수 있게끔 개발되었다그래서 자료형의 크기가 중요하고 C언어는 자료형의 크기를 컴파일러의 자율로 맡긴다그에 따라 컴파일러를 만들 때 자료형을 원하는 비트로 지정하는 경우도 가능하다 언리얼 프리미티브 타입 재정의이처럼 C++ 표준에서도 32bit 플랫폼이냐, 64bit 플랫폼이냐에 따라 자료형 크기가 다르다이러한 플랫폼 파편화가 되는 게임 개발에서는 유지 보수에 좋지 않다그에 따라 언리얼은 프리미티브 타입을 재정의해서 크기를 지정했다 ex.int32: 32비트 정수형int64:..

게임 엔진/[코드조선] 언리얼

언리얼 Actor - Actor 클래스 생성 및 내부 구조

Actor 클래스 생성 방법Content Browser에서새 C++ 클래스 > Actor 부모 클래스 > “STorch” 로 생성하고경로는 본인이 원하는 위치에 설정하면 된다 Actor 클래스 블루프린트 에셋 생성본인이 원하는 경로 > 새 Blueprint 에셋 > STorch 부모 클래스 > “BP_Torch” Actor 클래스 파일 내부// STorch.h#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "STorch.generated.h"class UBoxComponent;class UStaticMeshComponent;class UPointLightComponent;class UParticleSystemComp..

게임 엔진/[코드조선] 언리얼

언리얼 기본 요소 - World

World게임이 진행되는 레벨과 모든 액터 그리고 시간, 물리 등의 오브젝트 집합을 의미한다Toolbar > Settings > World Settings를 통해 설정을 할 수 있다Level가상 세계를 담당하는 3차원의 공간으로 Viewport를 통해 보이는 공간이다단위는 cm이다플레이 버튼을 누르면 Outliner에 기존에 레벨을 구성하던 액터(흰색 이름)와동적으로 생성된 액터(노란색 이름)들이 구분되어 표시된다추가적으로, 레벨에 사용되는 에셋은 .umap 에셋이다 Actor월드를 구성하는 단위 개체이다 Time가상 공간에서 흐르는 시간으로 단위는 초이다또한, 시간이 흐르는 속도를 조절할 수도 있다 Physics월드 공간에 배치된 액터들 사이의 작용을 의미한다해당 액터에 Collision 정보가 있다면..