자주사용하는 URPOPERTY안에 들어가는 Attribute들... GC에 의해 관리가 되도록 UPROPERTY를 붙이고 BlueprintReadOnly, Category정도만 생각없이 쓰다가 최근에 Lyra클론 코딩하면서 다양한 속성값들을 쓰게 되었고 아무 생각없이 쓰다 답답하여 글을 한번 정리하게 되었습니다. 공식문서를 봐도 아키타입? 어쩌구 저쩌구 하던데 머선 말인지 잘 모르겠어서 여러 글을 참고하다 이해하게 되어 따로 정리 하게 되었습니다. 일단 아키타입과 인스턴스가 뭔지 결론 부터 보면은 아래 MyTestActor라는 cpp클래스를 상속받은 블루프린트 클래스가 BP_MyTestActor(아키타입)이고 Level에 배치한 BP_MyTestActor는 BP_TestActor의 인스턴스입니다. UCL..
GetOuter()란? NewObject를 사용할 일이 생겨 NewObject함수를 보다가 첫번째 인자로 GetOuter()가 무엇인지 궁금하여 찾아 보게 되었습니다. 공식문서를 보면 "Returns the UObject this object resides in"이라고 되어 있습니다. 뭔가 느낌적인 느낌으로 자신이 소유하는 UObject를 반환한다고 생각이 가기는 합니다. 이를 이해하기 위해 바로 코드부터 보겠습니다. MyTestActor.h #pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "MyTestActor.generated.h" UCLASS() class TESTSTUDY_API AMyTestActor ..
공식 문서를 읽어보면 UClass::StaticClass는 "return a object representing this class at runtime"이라고 합니다. 즉 런타임에 클래스를 나타내는 UClass 객체를 반환 한다고 되어 있습니다. 그럼 UClass객체는 뭔지부터 살펴보기 전에 언리얼을 '프로퍼티 시스템' 혹은 '리플렉션'에 대해서 먼저알아 보도록 하겠습니다. 리플렉션(Reflection)이란? 프로그램 실행시간에 자기 자신을 조사하는 기능입니다. C++에서는 해당 기능을 지원하지 않기 때문에 언리얼에서 자체적으로 만든 시스템입니다. 프로퍼티 시스템이라고도 불립니다. 해당 기능은 언리얼 에디터의 디테일 패널, 직렬화, GC, Network Reflication, 블루프린트/C++ 커뮤니케이..
LiveCoding에 대해 호불호가 갈릴 수 있지만 저는 엄청 자주 쓰지는 않습니다. 물론 안좋다는 것은 절대 아닙니다. 아주 좋은 기능인거같아용.. 다만 저는 처음에 언리얼 사용시 라이브코딩을 통해서 작업했던 부분들이 다음날에 컴퓨터를 켰을 때 Update가 안되어 있던 경험이 있어 정리하게된 글입니다. 일단 언리얼 엔진에서 하나의 프로젝트에는 여러개의 "모듈"을 만들어 낼 수 있습니다. 모듈은 Build.cs파일, .h파일, .cpp파일의 모음인데 .uproject 파일을 메모장으로 열면, 모듈이름이 명시되어 있습니다. 해당 모듈은 C++프로젝트의 .Target.cs 파일에서도 명시가 되어있습니다. Target.cs에 모듈이 ExtraModuleNames.Add로 적어주어야 빌드시 이를 참고하여 빌드..
저는 개인 프로젝트를 진행하다가 TestAnimInstance라는 C++ AnimInstacne를 상속을 받는 ABP_Anim이라는 블루프린트 클래스를 C++코드로 관리를 하고 싶어졌습니다. 그래서 처음에는 쌩포인터로 Character라는 C++클래스안에서 TestAnimInstacne* MyAnim이런식으로 관리를 했었는데 크래쉬가 나는 현상을 자주 겪게 되다가 관리하는 방법 중에 TObjectPtr로 관리하거나 TSubclassOf로 관리하는 방법이 있었는데 언제 어디서 둘을 구분해야하는 지 햇갈렸던 부분을 정말 짧게 정리를 해보았습니다. 나중에 TSubclassOf TObjecPtr 의 코드를 보고 코드를 분석하여 글을 쓰면 좋겠네여.. 먼저 UObject란? 언리얼에는 게임 오브젝트 처리용 시스템..
이번글은 언리얼 엔진의 빌드 과정과 기존의 블루프린트 프로젝트를 C++프로젝트로 변환을 어떻게 하는지에 대해 알아보는 글입니다. 언리얼 엔진을 빌드를 하면서 기초적으로 알아야 할 부분은 아래와 같습니다. Solution Configuration Solution Platforms Module Builds Rules, TargetRules Solution Configuration 간단하게 말하면 언리얼 프로젝트를 빌드하는 Configuration을 설정하는 부분입니다. 언리얼 프로젝트를 c++로 만들었을 때 여기서 위에 보이는 Development Editor라는 부분인데요. 해당 부분의 Cofiguration을 설정하여 사용자에게 배포할 목적으로 빌드할 것인지, 디버깅용 또는 개발용으로 c++프로젝트를 빌..