커스텀 랜드스케이프 임포터 제작

플러그인을 통한 새로운 랜드스케이프 임포트 포맷을 만드는 방법 안내입니다.

Windows
MacOS
Linux

랜드스케이프 데이터 임포트를 위한 별도의 하이트맵 및 웨이트맵 제작은 플러그인을 만드는 것으로 가능합니다. 플러그인은 엔진에 새로운 포맷을 추가해 줄 뿐만 아니라, 파일에서도 데이터를 임포트할 수 있습니다.

커스텀 임포터 작성

  • 새로운 임포터를 만들기 위해서는, 플러그인에서 ILandscapeHeightmapFileFormatILandscapeWeightmapFileFormat 을 구현하여 오브젝트 인스턴스를 만들고, 그 오브젝트를 ILandscapeEditorModulemodule::RegisterHeightmapFileFormatILandscapeEditorModulemodule::RegisterWeightmapFileFormat 로 각각 등록시켜야 합니다.

  • 플러그인에서 ILandscapeHeightmapFileFormat 인터페이스를 구현하기 위해서는 다음 함수를 오버라이드해야 합니다: 1. const FLandscapeFileTypeInfo& GetInfo() const: 이 클래스가 어떤 파일 유형을 처리하는지 나타내는 유형 정보 및 익스포트 지원 여부를 반환합니다. 1. FLandscapeHeightmapInfo Validate(const TCHAR* HeightmapFilename) const - 네임드 파일을 인증하거나, 거부하고 오류 코드와 메시지를 반환합니다. 1. FLandscapeHeightmapImportData Import(const TCHAR* HeightmapFilename, FLandscapeFileResolution ExpectedResolution) const - 파일을 실제 임포트합니다. 1. void Export(const TCHAR* HeightmapFilename, TArrayView Data, FLandscapeFileResolution DataResolution, FVector Scale) const - 이 포맷이 익스포트를 지원하는 경우, 파일을 익스포트합니다 (GetInfo 의 반환값 참고). 컴파일을 위해 오버라이드하지 않아도 되는 유일한 함수입니다. 하지만 오버라이드 없이 호출하면 check 를 호출합니다. 1. (Destructor) - 이 인터페이스를 구현하는 클래스는 가상 소멸사를 사용해야 하는데, 인터페이스 클래스로의 포인터를 통해 삭제될 것이기 때문입니다.

  • ILandscapeHeightmapFileFormat 인터페이스 구현은 거의 동일하며, 일부 반환 유형에 약간의 차이가 있을 뿐입니다: 1. const FLandscapeFileTypeInfo& GetInfo() const - 이 클래스가 어떤 파일 유형을 처리하는지 나타내는 형 정보 및 익스포트 지원 여부를 반환합니다. 1. FLandscapeWeightmapInfo Validate(const TCHAR* WeightmapFilename) const - 네임드 파일을 인증하거나, 거부하고 오류 코드와 메시지를 반환합니다. 1. FLandscapeWeightmapImportData Import(const TCHAR* WeightmapFilename, FLandscapeFileResolution ExpectedResolution) const - 파일을 실제 임포트합니다. 1. void Export(const TCHAR* WeightmapFilename, TArrayView Data, FLandscapeFileResolution DataResolution, FVector Scale) const - 이 포맷이 익스포트를 지원하는 경우, 파일을 익스포트합니다 (GetInfo 의 반환값 참고). 컴파일을 위해 오버라이드하지 않아도 되는 유일한 함수입니다. 하지만 오버라이드 없이 호출하면 check 를 호출합니다. 1. (Destructor) - 이 인터페이스를 구현하는 클래스는 가상 소멸사를 사용해야 하는데, 인터페이스 클래스로의 포인터를 통해 삭제될 것이기 때문입니다.

  • 자세한 정보 및 예제는, LandscapeFileFormatInterfaces.h 의 인터페이스, LandscapeFileFormatPng.cppLandscapeFileFormatPng.h 의 .PNG 구현, LandscapeFileFormatRaw.cppLandscapeFileFormatRaw.h 의 .RAW 구현을 참고해 보면 됩니다. 이 코드 전부 엔진 내 LandscapeEditor 모듈에 있습니다.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback