カスタム ランドスケープ インポータの作成

ランドスケープ インポート フォーマットをプラグインで新規作成する方法

Windows
MacOS
Linux

プラグインを書き出して、ランドスケープ データのインポート用に独自のハイトマップおよびウェイトマップを作成することができます。プラグインによって、ファイルからデータがインポートされるだけでなく、エンジンに新規フォーマットが追加されます。

カスタム インポーターの書き出し

  • インポーターを新規作成するためには、プラグインが ILandscapeHeightmapFileFormat および ILandscapeWeightmapFileFormat を実装するオブジェクトのインスタンスを作成し、これらのオブジェクトをそれぞれ ILandscapeEditorModulemodule::RegisterHeightmapFileFormatILandscapeEditorModulemodule::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 Data, FLandscapeFileResolution DataResolution, FVector Scale) const - エクスポートできる形式であれば、エクスポートします (`GetInfo` からの戻り値を参照)。コンパイルにオーバーライドを必要としない唯一の関数です。ただし、オーバーライドせずに呼び出すと、`check` を呼び出します。

    5. (Destructor) - このインターフェースを実装するクラスは、インターフェース クラスへのポインタによって削除されるので、仮想ディストラクタを使用します。

  • 戻り値の型が若干違いますが、ILandscapeHeightmapFileFormat インターフェースを実装している状態とほぼ同じです。

    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 Data, FLandscapeFileResolution DataResolution, FVector Scale) const - エクスポートできる形式であれば、エクスポートします (`GetInfo` からの戻り値を参照)。コンパイルにオーバーライドを必要としない唯一の関数です。ただし、オーバーライドせずに呼び出すと、`check` を呼び出します。

    5. (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