[Unreal]#23_FString, FText, FName 변환 Unreal 개발 중 "FString, FText, FName"에 대해 알아보겠습니다. Overview 문자열 자료형 종류 변환 방법 요약 문자열 자료형 [Unreal]#15_FText, FString, FName [Unreal]#15_FText, FString, FName Unreal 개발 중 "FText, FString, FName"에 대해 알아보겠습니다. FName 재사용 시에도 데이터 테이블에 한 번만 저장되어 초경량 시스템을 제공합니다. 대 소문자 구분이 없고, webddevys.tistory.com 변환 방법 1. FName FString // 1. FName to FString FString String = Name..
게임개발
[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_블루프린트]#32_AI Patrolling Path using Spline Unreal 블루프린트 개발 중 "AI" 구현을 진행합니다. "블루 프린트" 활용에 대한 내용입니다. Summary Spline 컴포넌트 : 임의의 Actor에 추가하고 World에 AI가 Patrolling을 수행할 Path를 그려줍니다. Patrol Component : 해당 Actor를 멤버로 갖는 컴포넌트들 별도로 생성하고 세부 사항을 구현합니다. BTTask_Patrol : AI의 Patrolling을 BT에서 실행합니다. BP_PatrollingPath 1. BP_Patrolling Path 2. Spline Wolrd에 배치된 흰색 선이 Spline입니다. Spline 특성에 "Closed Loop"을 ..
[Unreal_블루프린트]#31-3_Environmental Querying System(EQS) Unreal 블루프린트 개발 중 "Behavior Tree" 구현을 진행합니다. "블루 프린트" 활용에 대한 내용입니다. Goal BTService_Around : AI의 상태에 따라서, Behavior Key(상태 열거형) 값을 변경합니다. BTService_StrafeAround : Behavior Key::Strafe 일 때, 실행되는 BTService입니다. BTService_StrafeAround::GetStrafeQuery는 AI : Player의 거리에 따라서 EnvQuery_Left or Right 수행 여부 결정 GetStrafeQuery 함수의 반환 EnvQuery를 최종적으로 실행시킵니다..
[Unreal_블루프린트]#31_Environmental Querying System(EQS) Unreal 블루프린트 개발 중 "Behavior Tree" 구현을 진행합니다. "블루 프린트" 활용에 대한 내용입니다. 목표 AI가 Player 기준으로 "왼쪽" 혹은 "오른쪽"으로 비켜 지나갈 위치를 구현합니다. 이때, 기준이 될 위치 혹은 Actor를 EnvQueryContext로 생성해서 재료로 삼고, 최종 목표 위치를 찾아보겠습니다. EnvQuery_Context 1. EnvQuery_Context_StrafeLeft 종합적으로, AI가 Player를 바라보는 방향을 기준으로 "왼쪽" 방향으로 특정 거리만큼 떨어진 위치를 구합니다. 2. EnvQuery_Context_StrafeRight EnvQuer..
[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_블루프린트]#31_Environmental Querying System(EQS) Unreal 블루프린트 개발 중 "Behavior Tree" 구현을 진행합니다. "블루 프린트" 활용에 대한 내용입니다. Environment Query Context 1. Environment Query Context 블루프린트 클래스 생성 EQS의 테스트에서 활용할 Context를 생성할 수 있습니다. 2. EnvQueryContext_Player::Provide Single Actor 간단하게, Player 객체 중 인덱스 0번에 존재하는 BP_Player 객체를 반환해줍니다. Environment Query 1. 화면 Generators는 위치 혹은 Actor를 생성하며, 가장 높은 Weight 값을 가..