안선생의 개발 블로그
[UE5] 모듈과 플러그인 본문
1. 모듈(Module)
하나의 cpp 헤더를 포함하는 단위이며 언리얼 반드시 하나의 모듈이 존재해야함
엔진코드를 보면 폴더가 다 모듈이라고 볼 수 있음
저 모듈을 사용할라면
bulid.cs파일에 추가해줘야함
특징:
- 엔진 또는 프로젝트의 기능을 기능별로 나눠둔 코드 덩어리
- 프로젝트의 코드가 빌드될 때 함께 컴파일됨
- 특정 기능에 대해 독립적 코드 관리가 가능하며, 다른 모듈들과 상호작용 가능
하나 모듈이 필요하므로 시작할때 기본 헤더,cpp를 만들어주는데
// Copyright Epic Games, Inc. All Rights Reserved.
#include "testgame.h"
#include "Modules/ModuleManager.h"
IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, testgame, "testgame" );
위에 코드를 아래와 같이 모듈도 커스텀이 가능하면 기능 구현도 가능
// Copyright Epic Games, Inc. All Rights Reserved.
#include "testgame.h"
#include "Modules/ModuleManager.h"
class FJHModule : public FDefaultGameModuleImpl
{
public:
virtual void StartupModule() override;
virtual void ShutdownModule() override;
};
void FJHModule::StartupModule()
{
FDefaultGameModuleImpl::StartupModule();
}
void FJHModule::ShutdownModule()
{
FDefaultGameModuleImpl::ShutdownModule();
}
//모듈도 커스텀이 가능하며 IMPLEMENT_PRIMARY_GAME_MODULE는 엔진에 하나만 존재해야된다.
IMPLEMENT_PRIMARY_GAME_MODULE(FJHModule, testgame, "testgame");
디버깅 걸어면 굉장히 초반 에디터가 켜지기전에 실행되는걸 알 수 있다.
2. 플러그인(Plugin)
플러그인은 엔진의 기본 기능을 확장하거나 새로운 기능을 추가하기 위해 외부에서 손쉽게 설치하고 제거할 수 있는 코드 패키지입니다. 플러그인은 다양한 추가 기능, 게임 시스템, 툴 등을 손쉽게 추가할 수 있는 방식으로 설계되어 있어, 다른 프로젝트에서도 동일한 플러그인을 쉽게 적용할 수 있습니다. 에픽 게임즈 마켓플레이스에서 다운로드한 플러그인도 많음
언리얼에서 플로그인은 실험적으로 기능을 테스트 후 안정적이면 엔진에 들어갈 수 있다 그렇게 하기 위해 뺴놓았다고 생각해도 될꺼같다.
플러그인을 사용할라면 Uproject파일에 추가해주거나
에디터에서 플러그인 추가 활성화 눌러주면 됨
활성화 눌러주면 코드가 자동으로 추가됨
특징:
- 독립적으로 설치/제거할 수 있는 코드 패키지 (모듈도 가능)
- 프로젝트에서 필요한 기능만 선택적으로 활성화 가능
- 한 프로젝트에서 다른 프로젝트로 손쉽게 이동 가능
- 엔진 업데이트와 독립적으로 관리가 가능하며, 재사용이 쉬움
차이점 요약
- 범위와 재사용성: 모듈은 특정 프로젝트에 포함된 코드 단위이지만, 플러그인은 독립적인 코드 패키지로 프로젝트 간에 쉽게 이동 및 재사용이 가능합니다.
- 목적: 모듈은 프로젝트의 구조를 효율적으로 유지하기 위한 내부 구성 요소이고, 플러그인은 추가 기능을 제공하는 확장 요소입니다.
- 관리: 플러그인은 쉽게 활성화/비활성화 가능하고 별도로 관리할 수 있으며, 모듈은 프로젝트와 밀접하게 통합되어 관리됩니다.
결론적으로, 모듈은 프로젝트의 기본적인 구성 요소이고, 플러그인은 프로젝트 외부에서 추가적으로 제공되는 독립적인 기능 단위라고 이해하면 좋습니다.
'언리얼' 카테고리의 다른 글
[UE5] Common UI 마우스 인풋 안먹을 때 (0) | 2025.02.09 |
---|---|
[UE5] 언리얼 커스텀 로그 만들기 (1) | 2024.11.14 |
언리얼 포인터 및 참조 (0) | 2024.01.01 |
[UE5] 애니메이션 리타겟팅 (0) | 2023.12.22 |
[UE5] 언리얼 Mixamo 루트모션 적용 (1) | 2023.12.21 |