プラグインを書き出して、ランドスケープ データのインポート用に独自のハイトマップおよびウェイトマップを作成することができます。プラグインによって、ファイルからデータがインポートされるだけでなく、エンジンに新規フォーマットが追加されます。
カスタム インポーターの書き出し
-
インポーターを新規作成するためには、プラグインが
ILandscapeHeightmapFileFormat
およびILandscapeWeightmapFileFormat
を実装するオブジェクトのインスタンスを作成し、これらのオブジェクトをそれぞれILandscapeEditorModulemodule::RegisterHeightmapFileFormat
、ILandscapeEditorModulemodule::RegisterWeightmapFileFormat
で登録する必要があります。 - プラグインの
ILandscapeHeightmapFileFormat
インターフェースが次の関数をオーバーライドすることが必要です。const FLandscapeFileTypeInfo& GetInfo() const
:このクラスを処理するファイル タイプ、そしてエクスポート処理のサポート有無を示す型の情報を返します。FLandscapeHeightmapInfo Validate(const TCHAR* HeightmapFilename) const
- 名前のついたファイルを承認、またはエラーコードとメッセージをつけて却下します。FLandscapeHeightmapImportData Import(const TCHAR* HeightmapFilename, FLandscapeFileResolution ExpectedResolution) const
- 実際にファイルをインポートします。void Export(const TCHAR* HeightmapFilename, TArrayView<const uint16> Data, FLandscapeFileResolution DataResolution, FVector Scale) const
- エクスポートできる形式であれば、エクスポートします (GetInfo
からの戻り値を参照)。コンパイルにオーバーライドを必要としない唯一の関数です。ただし、オーバーライドせずに呼び出すと、check
を呼び出します。(Destructor)
- このインターフェースを実装するクラスは、インターフェース クラスへのポインタによって削除されるので、仮想ディストラクタを使用します。
- 戻り値の型が若干違いますが、
ILandscapeWeightmapFileFormat
インターフェースを実装している状態とほぼ同じです。const FLandscapeFileTypeInfo& GetInfo() const
- このクラスを処理するファイル タイプがどれか、そしてエクスポート処理をサポートしているかどうかを表示する型情報を返します。FLandscapeWeightmapInfo Validate(const TCHAR* WeightmapFilename) const
- 名前のついたファイルを承認、またはエラーコードとメッセージをつけて却下します。FLandscapeWeightmapImportData Import(const TCHAR* WeightmapFilename, FLandscapeFileResolution ExpectedResolution) const
- 実際にファイルをインポートします。void Export(const TCHAR* WeightmapFilename, TArrayView<const uint16> Data, FLandscapeFileResolution DataResolution, FVector Scale) const
- エクスポートできる形式であれば、エクスポートします (GetInfo
からの戻り値を参照)。コンパイルにオーバーライドを必要としない唯一の関数です。ただし、オーバーライドせずに呼び出すと、check
を呼び出します。(Destructor)
- このインターフェースを実装するクラスは、インターフェース クラスへのポインタによって削除されるので、仮想ディストラクタを使用します。
- 詳細とサンプルについては、
LandscapeFileFormatInterfaces.h
のインターフェース、LandscapeFileFormatPng.cpp
とLandscapeFileFormatPng.h
の.PNG 実装、LandscapeFileFormatRaw.cpp
とLandscapeFileFormatRaw.h
の .RAW 実装をご覧ください。このコードはすべて、エンジンの LandscapeEditor モジュールに入っています。