묻공러
'게임 엔진/[코드조선] 언리얼' 카테고리의 글 목록 (3 Page)

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

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

언리얼 Pawn - Pawn 조작

폰의 조작 구현UE5 부터는 아래의 방식이 Deprecated 방식이기에Enhanced Input System을 사용하면 된다만약 UE4를 사용하는 프로젝트라면아래의 방식으로 조작을 구현할 수 있다 1) Input 키 설정Toolbar > Settings > Project Settings > Input에서 입력 설정이 가능하다 - Axis Mappings조이스틱의 레버와 유사하고축과 관련된 정보를 담으며-1 ~ 1 사이의 값이 게임로직에 전달된다- Action Mappings조이스틱의 버튼과 유사하고 0 혹은 1 값이 게임로직에 전달된다키보드의 조작을 통해 이동을 구현하기 때문에Axis Mappings를 추가해서 UpDown과 LeftRight 입력을 생성하면 된다UpDown에는 W키 / S키, Left..

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

언리얼 Pawn - Pawn 클래스 생성 및 내부

Pawn 핵심 컴포넌트인간형 폰을 위한 컴포넌트로 사용되는 것은 아래와 같다참고로 실제 게임 구현에서는해당 APawn을 상속받아 만든 ASPlayerPawn은 사용하지 않고ACharacter를 상속받아 클래스를 만든다 - Capsule Component 충돌 처리를 위한 컴포넌트로 루트 컴포넌트의 역할을 주로 담당한다캐릭터 절반 높이와 몸둘레를 설정해주어야 하는데해당 에셋을 Viewport에 드래그 드롭하고Viewport 좌상단 Perspective를 눌러 Front로 시점을 바꾸어서원하는 시작 위치에 마우스 휠 버튼 누르고, 끝 위치에 드래그하면 cm 단위 값이 나온다 - SkeletalMesh Component 캐릭터 랜더링과 애니메이션을 담당한다 - FloatingPawnMovement Compon..

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

언리얼 게임 플레이 프레임워크 - 이벤트 함수 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:..