创建自定义地形导入器

通过插件新建地形导入格式的指南。

Choose your operating system:

Windows

macOS

Linux

本页面的内容

可通过编写插件创建自定义导入地形数据的高度图和权重图格式。插件将把新格式添加到引擎,并从文件导入数据。

编写自定义导入器

  • 为新建导入器,插件应创建对象实例实现 ILandscapeHeightmapFileFormat ILandscapeWeightmapFileFormat ,并相应以 ILandscapeEditorModulemodule::RegisterHeightmapFileFormat ILandscapeEditorModulemodule::RegisterWeightmapFileFormat 注册这些对象。

  • 在函数中实现 ILandscapeHeightmapFileFormat 接口需要覆盖以下函数:

    1. const FLandscapeFileTypeInfo& GetInfo() const :返回类型信息说明该类处理的文件类型,以及是否支持导出。

    2. FLandscapeHeightmapInfo Validate(const TCHAR* HeightmapFilename) const - 验证命名文件,或将其驳回并返回一个错误代码和消息。

    3. FLandscapeHeightmapImportData Import(const TCHAR* HeightmapFilename, FLandscapeFileResolution ExpectedResolution) const - 实际导入文件。

    4. void Export(const TCHAR* HeightmapFilename, TArrayView<const uint16> Data, FLandscapeFileResolution DataResolution, FVector Scale) const - 如该格式支持导出,则导出文件(查看来自 GetInfo 的返回值)。为进行编译,这是唯一一个不需要被覆盖的函数。然而,如它在未被覆盖的情况下覆盖,它将调用 check

    5. (Destructor) - 实现此接口的类应该使用虚拟析构函数,因为他们将通过指向接口类的指针进行删除。

  • 实现 ILandscapeWeightmapFileFormat 接口几乎相同,只在部分返回类型上有细微差别:

    1. const FLandscapeFileTypeInfo& GetInfo() const - 返回类型信息说明该类处理的文件类型,以及是否支持导出。

    2. FLandscapeWeightmapInfo Validate(const TCHAR* WeightmapFilename) const - 验证命名文件,或将其驳回并返回一个错误代码和消息。

    3. FLandscapeWeightmapImportData Import(const TCHAR* WeightmapFilename, FLandscapeFileResolution ExpectedResolution) const - 实际导入文件。

    4. void Export(const TCHAR* WeightmapFilename, TArrayView<const uint16> Data, FLandscapeFileResolution DataResolution, FVector Scale) const - 如该格式支持导出,则导出文件(查看来自 GetInfo 的返回值)。为进行编译,这是唯一一个不需要被覆盖的函数。然而,如它在未被覆盖的情况下覆盖,它将调用 check

    5. (Destructor) - 实现此接口的类应该使用虚拟析构函数,因为他们将通过指向接口类的指针进行删除。

  • 可查看 LandscapeFileFormatInterfaces.h 中的接口、 LandscapeFileFormatPng.cpp LandscapeFileFormatPng.h 中的 .PNG 实现,以及 LandscapeFileFormatRaw.cpp LandscapeFileFormatRaw.h 中的 .RAW 实现,了解更多信息和范例。所有代码均在引擎的 LandscapeEditor 模块中。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消