게임 개발/Unreal C++

[Unreal]#22_TTuple Unreal 개발 중 "TTuple" 자료형에 대해 알아보겠습니다. Overview 개념 코드 #0 개념 1. TTuple? 논리적으로 관련 있는 두 자료형을 하나로 묶기 위해 사용합니다. TTuple은 UObject 클래스가 아니라 TTupleBase 템플릿 구조체를 상속하므로 UPROPERTY 등 리플렉션과 함께 선언할 수 없습니다. TTuple은 한 번에 두 개의 값을 반환하고자 하는 함수 등에 활용됩니다. #1 코드 // 1. Init TTuple TestTuple = TTuple("Apple", 1); TTuple TestTuple2 = MakeTuple("Oragne", 2); // 2. Get FString String1 = TestTuple.Get(); u..
[Unreal]#21_Custom Delegate Unreal 개발 중 "Custom Delegate"에 대해 알아보겠습니다. 커스텀 대리자 함수 시그니처 생성 방법에 대해 살펴보겠습니다. Custom Delegate Signature 1. 코드 DECLARE_DELEGATE(DELEGATE_NAME); //void __(void) DECLARE_DELEGATE_RetVal_OneParam(DELEGATE_RETURN_TYPE, DELEGATE_NAME, PARAM_1_RETURN_TYPE); Delegate 1. 기본 구조 // Delegate 활용 기본 구조 L1. DECLARE_DELEGATE : Custom Delegate Signature 메크로 생성 L2. Custom Delegate 선언 -..
[Unreal]#20_Log Unreal 개발 중 "Debugging"에 대해 알아보겠습니다. 커스텀 로그 클래스를 생성하고 활용하는 방법에 대해 살펴보겠습니다. 로그 1. ELogVerbosity namespace ELogVerbosity { enum Type { NoLogging = 0, Fatal, Error, Warning, Display, Log, Verbose, VeryVerbose, All = VeryVerbose, NumVerbosity, VerbosityMask = 0xf, SetColor = 0x40, BreakOnLog = 0x80, } } 단순히, 로깅 메세지의 컬러를 변경합니다. "Fatal" 타입만 예외적으로, 메세지가 출력되면 Crash가 발생합니다! 2. Custom Log ..
[Unreal]#19_Custom Behavior Tree Service Unreal 개발 중 "Behavior Tree Service"에 대해 알아보겠습니다. "Simple Shooter Game"의 AI Player 개발 내용입니다. Behavior Tree Service BT_Service는 Background Task들을 실행하기 위한 노드로서, AI가 필요로 하는 정보들을 Update 합니다. UBTService_UpdateLastKnownPlayerLocation * UpdatePlaeyrLocation 네이밍을 UdpateLastKnownPlayerLocation이라 가정하겠습니다. 1. UBTService_UpdateLastKnownPlayerLocation Blackboard에서 생성한 ..
[Unreal]#18_Custom Behavior Tree Task Unreal 개발 중 "Behavior Tree Task"에 대해 알아보겠습니다. "Simple Shooter Game"의 AI Player 개발 내용입니다. BTTask_Shoot 1. BTTask_Shoot 2. UBTTask_Shoot.h // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "BehaviorTree/BTTaskNode.h" #include "BTTask_Shoot.generated.h" /** * */ UCLASS() class SIMPLESHO..
[Unreal]#17_Behavior Tree Unreal 개발 중 "AI Controller"에 대해 알아보겠습니다. "Simple Shooter Game"의 AI Player 개발 내용입니다. Sequence 1. 화면 2. 기능 컴포짓 노드(합성 노드)입니다. 왼쪽에서 오른쪽으로 하위 노드들을 실행하고, 어느 하나가 실패할 때까지 실행합니다! 하위 노드들 중 어느 하나가 실패하면, 이후에 다른 하위 노드들의 실행도 중지됩니다. 모든 하위 노드들의 성공이 시퀀스의 성공입니다. "가혹한" 노드라고 표현하겠습니다. Selector 1. 화면 2. 기능 Selector 또한 컴포짓 노드입니다. Sequence와 동일하게 왼쪽에서 오른쪽으로 하위 노드들을 실행합니다. 하위 노드들 중 어느 하나가 성공할 때까..
[Unreal]#16_Behavior Tree Setting Unreal 개발 중 "AI Controller"에 대해 알아보겠습니다. "Simple Shooter Game"의 AI Player 개발 내용입니다. Setting 1. Behavior Tree + Bloackboard 블루프린트 생성 2. ShooterAIController.h // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "AIController.h" #include "ShooterAIController.generated.h" /** * */ UCLASS() cla..
[Unreal]#15_Line Of Sight, Acceptance Radius of AI Unreal 개발 중 "AI Controller"에 대해 알아보겠습니다. "Simple Shooter Game"의 AI Player 개발 내용입니다. Acceptance Radius 1. ShooterAIController.h // ShooterAIController.h... #pragma once #include "CoreMinimal.h" #include "AIController.h" #include "ShooterAIController.generated.h" /** * */ UCLASS() class SIMPLESHOOTERNEW_API AShooterAIController : public AAIControl..
[Unreal]#15_FText, FString, FName Unreal 개발 중 "FText, FString, FName"에 대해 알아보겠습니다. FName 재사용 시에도 데이터 테이블에 한 번만 저장되어 초경량 시스템을 제공합니다. 대 소문자 구분이 없고, 변경 혹은 조작이 불가능한 특징을 갖고 있습니다. *정적인 속성, *빠른 접근 속도 FText 문자 현지화(Text Localization)를 위한 기초적인 컴포넌트. *Text Localization FString 앞선 두 개와 달리, 조작 및 변경이 가능한 클래스. 제공하는 메서드 또한 다양하며 알고리즘도 다양합니다. *조작 및 변경 가능, *높은 메모리 사용량 변환
[Unreal]#14_AI controller 생성 및 세팅 Unreal 개발 중 "AI Controller"에 대해 알아보겠습니다. "Simple Shooter Game"의 AI Player 개발 내용입니다. AI Controller 클래스 1. AI Controller 클래스 생성 1. 우 클릭 -> 새로운 C++ 클래스 생성 2. 모든 클래스 -> AIController를 부모 클래스로 설정 2. C++ 클래스를 상속하는 블루프린트 클래스 생성 1. 우 클릭 -> 블루 프린트 클래스 생성 2. 부모 클래스로 앞서 생성한 AI 클래스(C++)를 부모 클래스로 설정합니다. 3. Auto Possess AI 지정 1. Character 블루프린트 에디터 창 2. Pawn 탭에 있는 "Auto Posses..
Hardii2
'게임 개발/Unreal C++' 카테고리의 글 목록 (2 Page)