본문으로 바로가기

나만의 연습장

현재위치 :: HOME BLOG CATEGORY SEARCH ARCHIVE TAGS MEDIA LOCATION GUESTBOOK

네비게이션

  • 홈
  • 태그
  • 방명록
관리자
  • 블로그 이미지
    엄준식사생팬

    엄준식이 좋아요.

    링크추가
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃

[Unreal Editor] 1. Plugins

모듈은 언리얼 엔진과 우리가 사용하는 모든 것을 구성하는 블록이라고 생각할 수 있습니다. 언리얼 엔진 내부는 기본적으로 모듈로 되어있습니다. 그리고 Editor를 확장하려면 자체 모듈과 Resource Dropdown을 만들어야 합니다. Custom Editor 문서에서는 간단하게 주요 사항만 작성합니다. 모듈은 코드 분리에 아주 적합합니다. 모듈은 자체적으로 '빌드 평가 파일' 이 필요합니다. 이는 [ModuleName].Build.cs 로 시작합니다.우리가 어떠한 프로젝트를 만들때도 이것이 만들어지는것을 볼 수 있습니다. 즉, 프로젝트도 하나의 모듈입니다. 모든 모듈은 빌드 액세스 파일에 추가하여, 프로젝트에 포함할 수 있습니다. 이제 첫 번째 빈 플러그인을 만들어 에디터에 관련된 모듈을 생성하겠습니..

UnrealEngine/Editor 2023. 12. 14. 06:59

NewObject와 SpawnActor

NewObject는 엔진이 초기화 된 이후, 런타임에서 오브젝트 생성을 위해 일반적으로 사용한다. 하지만 SpawnActor도 이와 동일한데, 무엇이 다를까? 결론적으로 말하자면, SpawnActor에서 Actor를 생성할 때도 NewObject를 사용한다. AActor도 결국엔 UObject에서 파생된것이기 때문이다. 하지만 몇 가지 추가 작업을 더 거치게 된다. 일단 NewObject의 Outer는 당연히 ULevel이 된다. 그리고, 현재 Level에 Actor 목록 배열과 GC를 위한 목록 배열을 가지고 있는데 이곳에 넣어둔다. 또한 해당 Actor가 가지고있는 WorldTransform을 설정한다. 그리고 액터의 컴포넌트 생성과 연결을 처리한다. 즉, 해당 작업을 개인적으로 할 수 있다면 AAc..

UnrealEngine/Impl 2023. 10. 3. 19:34

[Unreal Engine 5] Singleton

이 글을 읽기전에 https://openmynotepad.tistory.com/114 를 읽고오면 더 좋다! 언리얼 엔진에서 제공하는 싱글톤 클래스는 다음과같다. GameInstance AssetManager GameMode GameState 우리가 단 하나만 존재하는 객체를 만들면서, 해당 객체에서 값을 어디서든 가져올 수 있도록 할 수 있기 위해 Singleton을 사용하는데, 사람마다 사용하는 방법이 다양하다. 대부분 GameInstance를 사용하여 Singleton 작업을 하는데, 이는 Contents의 처리를 위해서가 아닌 Application의 데이터 처리를 관리하는 용도로 사용하는 것이 좋다. 그렇다면 Contents를 위한 Singleton은 어떻게 처리해야 하는가? 이를 위해, 언리얼엔..

UnrealEngine/기능 2023. 10. 2. 20:41

SpawnActor와 SpawnActorDeferred

기존의 SpawnActor는 생성과 동시에 BeginPlay를 호출해준다. 하지만 우리가 BeginPlay 이전에 어떠한 액터에 추가 작업을 해주려면 SpawnActorDeferred를 사용해야 하는데, 이때 SpawnActor와 SpawnAcatorDeferred의 차이에 대해서 코드로 확인해보자. 요약하자면 FinishSpawning을 호출해주냐 안해주냐의 차이이다. FinishSpawning은 작업은 상대적으로 간단하며, 액터의 Deferred Construct을 조정한다. Deferred Construct 일때는 GSpawnActorDeferredTransformCache에 해당 오브젝트의 Transform만 추가해둔다. 그리고 FinishSpawning에서 해당 Transform에 대한 처리를 ..

UnrealEngine/Impl 2023. 10. 2. 20:26

[Unreal Engine 5] Asset Manager

언리얼 엔진에는 AssetManager 이라는 Singleton 클래스가 있다. 엔진이 초기화 될 때 제공되며, 에셋 정보를 요청해서 받아낼 수 있다. 특정 태그를 가진 모든 에셋 목록을 가져올 수 있다. AssetManager를 통해서 타입들을 수집해달라고 요청해야 한다. Project Settings의 Asset Manager를 확인하자 Asset Base Class는 수집될 타입이다. Directories 는 수집될 타입들이 모여있는 Directory를 지정해주면 된다. 이제 AssetManager에 데이터가 수집되기전, 해당 Asset Id를 재정의하여 알려주어야 한다. 첫 번째 인자는 Tag (우리가 Project Settings에서 지정한 Primary Asset Type) 두 번째 인자는 A..

UnrealEngine/기능 2023. 10. 1. 00:51

UnrealEngine의 UObject 와 Components

언리얼 엔진의 모든 객체들은 UObject를 파생합니다. UObject가 제공하는 MetaData, Reflection 생성, Garbage Collection, Serialization, Editor Visibiliity, Class Default Object 등을 통해 언리얼엔진은 객체가 실행되는 세계를 구축할 수 있습니다. 그럼 왜 UObject가 필요한 것 일까요? 다른 게임 엔진을 보면 이해하기 쉽습니다. Unity 는 Mono를 통해 게임 객체들의 메모리 관리를 하고, 우리가 실제로 어떠한 객체를 사용할 때 잘 생각하지 않아도 알아서 정리를 해주니 메모리에 관한 걱정을 덜어줍니다. 그렇다면, 이러한 디자인을 도입하면 장단점은 대체 무엇이 있을까요? 장점 : 1. 모든 것이 추적 가능합니다. 통..

UnrealEngine/Impl 2023. 9. 30. 21:35

Hard References와 Soft References

Hard References는 컴파일 타임에 설정된 Resource 또는 Instance에 대한 직접적인 포인터이다. 우리의 캐릭터가 로드되면서, 함께 로딩하는 TObjectPtr로 선언한 언리얼 오브젝트들도 메모리에 함께 로딩된다. 즉, 어떤 AActor에서 StaticMesh를 TObjectPtr로 가지고 있었다고 해보자. 이때 AActor가 생성되면서, StaticMesh도 메모리에 함께 로딩된다. 이를 Hard References 라고 한다. 게임 진행에 필수적인 언리얼 오브젝트들은, 이렇게 사용해도 되지만 특정 상황일때만 보여질 오브젝트들은 메모리에 올리지 않고, 필요할 때 (보여질 때) 올리는게 메모리 효율적일 수 있다. 하지만, 로드할 때 생기는 Lag는 감수해야 한다. 즉, 필요한 데이터만..

UnrealEngine/Impl 2023. 9. 28. 23:06

Unreal Engine Customize (언리얼 엔진의 코드를 수정하기)

사실 별건 없고, 우리가 어떠한 귀찮은 일이 있거나 필요한 기능을 추가할 때 엔진의 코드를 수정하는 방법이다. 참고로 https://openmynotepad.tistory.com/119 해당 문서를 작성할 때, 수정했다. [Unreal Engine 5] Widget ( UI, 체력바 ) 우리가 어떠한 3D UI 요소를 만든다면, 그것을 게임 세계에 표현할 수 있다. 우리는 'Widget Blueprint Editor' 에서 다양한 Widget를 사용해 UI를 꾸밀 수 있고 함수 기능을 추가할 수 있다. 이번에는 이 Widg openmynotepad.tistory.com 기존의 UserWidget이 GetOwner 함수가 없다는 것은 알고 있을 것이다. 그래서 GetOwner를 가져오려면 서로 Widget..

UnrealEngine/Impl 2023. 9. 26. 22:15
  • 이전
  • 1
  • 2
  • 3
  • 4
  • 5
  • ···
  • 17
  • 다음

사이드바

NOTICE

  • 전체 보기
MORE+

CATEGORY

  • 분류 전체보기 (129)
    • 알고리즘 (13)
      • 정렬 (1)
      • 동적계획법 (9)
      • 완전탐색 (2)
    • C++ (63)
      • Modern (40)
      • Before (2)
      • STL (11)
      • 여담 (8)
      • WinApi (1)
    • Graphics (17)
      • 이론 (8)
      • DirectX (3)
      • Vulkan (6)
    • Computer Science (0)
    • UnrealEngine (32)
      • 기능 (13)
      • Impl (14)
      • Issue (1)
      • Editor (4)
    • Unity3D (4)
      • 기능 (4)

RECENTLY

  • 최근 글
  • 최근 댓글

최근 글

최근댓글

Trackback

TAG

  • 언리얼엔진5
  • unity3D
  • stl
  • UnrealEngine5
  • UnrealEngineIssue
  • Modern
  • vulkan
  • UnrealEngine
  • UnrealEditor
  • c++
  • c++20
  • Firebase
  • Before
  • 언리얼엔진4
  • 여담
MORE+

ARCHIVE

CALENDAR

«   2025/09   »
일 월 화 수 목 금 토
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

LINK

VISITOR

오늘
어제
전체
  • 홈으로
  • 방명록
  • 로그인
  • 로그아웃
  • 맨위로
SKIN BY COPYCATZ COPYRIGHT 나만의 연습장, ALL RIGHT RESERVED.
나만의 연습장
블로그 이미지 엄준식사생팬 님의 블로그
MENU
  • 홈
  • 태그
  • 방명록
CATEGORY
  • 분류 전체보기 (129)
    • 알고리즘 (13)
      • 정렬 (1)
      • 동적계획법 (9)
      • 완전탐색 (2)
    • C++ (63)
      • Modern (40)
      • Before (2)
      • STL (11)
      • 여담 (8)
      • WinApi (1)
    • Graphics (17)
      • 이론 (8)
      • DirectX (3)
      • Vulkan (6)
    • Computer Science (0)
    • UnrealEngine (32)
      • 기능 (13)
      • Impl (14)
      • Issue (1)
      • Editor (4)
    • Unity3D (4)
      • 기능 (4)
VISITOR 오늘 / 전체
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃
  • 취소

검색

티스토리툴바