본문 바로가기

Game Engine/Unreal8

(Unreal) File import to Asset (UFactory) 언리얼 에디터에서는 외부파일을 끌어다가 컨텐츠브라우저에 임포트 시킬수가 있다. 이 과정에서 외부파일이 그대로 import되는 것이 아닌 에셋이 생성되는 형태가 될 때가 있는데 (ttf -> FontTypeFace) 이 때 관여하는 것이 UFactory이다. Factory를 상속받는 각각의 세분화된 Factory들이 있고, 각각의 Factory들은 자신이 어떤 파일들을 지원할 것인지를 Formats에 집어 넣는다. UAssetToolsImpl::ImportAssetsInternal에서 적절한 Factory를 찾아서 Import하는 작업을 수행한다. ExtensionToFactoriesMap은 어떤 Factory가 어떤 파일 확장자를 지원하는지에 대한 정보가 담겨있다. Font의 경우 UFontFileImp.. 2023. 3. 21.
(Unreal) Editor 언어별 글꼴 엔진 내장 글꼴은 Engine\Content\Slate\Fonts 에 위치 에디터 전용 글꼴은 Engine\Content\Editor\Slate\Fonts 에 위치한다. LegacySlateFontInfoCache.cpp 에 보면 엔진 기본 글꼴 등록과 언어별 글꼴을 SubTypeface로 등록하는 것을 볼 수 있다. 2023. 3. 21.
(Unreal) 블루프린트 매크로 (Blueprint Macro) https://docs.unrealengine.com/5.0/ko/macros-in-unreal-engine/ 매크로 다른 그래프에서 실행 또는 호출할 수 있는 접힌 노드 네트워크입니다. docs.unrealengine.com C++의 매크로와 비슷하게 블루프린트에도 매크로라는 것이 존재한다. 언뜻보면 블루프린트의 함수와 매크로는 굉장히 유사해보이고, 매크로를 왜 쓰는 것이지? 할 수 있지만 다른 점은 분명히 존재한다. 함수는 하나의 개별 단위로 컴파일된 노드 모음이다. 또한 하나의 입력과 하나의 출력 만이 존재한다. 반면에 매크로는 노드용 템플릿이고, 다중 입력과 출력을 지원한다. [함수] 컴파일 된 후 계속해서 호출할 수 있는 단일 단위를 나타낸다. Latent Node 들을 지원하지 않는다. 하나의.. 2022. 11. 2.
(Unreal) Source Code Navigation 언리얼에서 블루프린트의 함수를 더블클릭하거나, 오른쪽 상단의 Parent Class의 이름을 클릭하면 연결된 IDE의 Native Class, Struct 혹은 Function 코드로 넘어가게 되는데, 이는 언리얼의 FSourceCodeNavigation에서 하는 역할이다. 언리얼에서 FSourceCodeNavigation를 사용하는 부분들을 보면 위의 Can~ 함수의 호출을 통해 Navigate가 가능한지 검사하고, 이후에 Navigate~를 호출하여 실제 소스코드로 이동시키는 작업을 한다. [Node에서의 이동] Blueprint에서 사용되는 모든 Node들의 최상위 Parent인 UEdGraphNode를 보면 CanJumpToDefinition, JumpToDefinition 함수가 선언되어 있는 .. 2022. 10. 11.
(Unreal) Fasoo DRM으로 망가지는 언리얼 엔진 어느날부터인가 UE4 Editor가 심하게 느려지기 시작했는데, 그 원인을 알 수가 없어서 답답했었다. 인게임에서 거의 10프레임 수준까지 떨어졌는데, 동료들 컴퓨터에서는 전혀 문제가 없었고, 나만 이런지라 굉장히 의아했었다. 그러다 우연히 Visual Studio의 Output을 보게 되었는데, 엄청난 속도로 int at memory location exception이 찍히고 있었다. UE4를 쓰다보면 보통 Editor의 Output Log를 보기 때문에, VS의 Output에는 소홀해지기 마련이다. 그리고 memory location exception은 VS 기본 세팅에서 중단을 걸지 않는 예외라 발견을 못한 것도 있다. Exception Settings에 있는 를 체크하면 모든 예외에 중단을 걸게 .. 2022. 8. 14.
(Unreal) Events와 Multicast Delegates의 차이점에 대하여 Events Delegates that can be bound to multiple functions and execute them all at once. docs.unrealengine.com Events와 Multicast Delegates는 굉장히 흡사해보인다. 동일한 함수들을 가지고 있고, 하는 일도 같아 보인다. 공식 문서에 따르면, Events는 Multicast Delegates와 굉장히 흡사하지만, 이벤트를 선언한 클래스만이 이벤트의 Broadcast, IsBound, Clear 함수를 호출할 수 있다고 적혀 있다. 그 말인 즉슨, Event를 선언한 클래스 외에는 Event에 바인딩이 가능하지만, Event를 Clear하거나 Broadcast를 호출하는 등의 동작은 불가하게 되므로, Ev.. 2022. 8. 6.