プラグインを書き出して、ランドスケープ データのインポート用に独自のハイトマップおよびウェイトマップを作成することができます。プラグインによって、ファイルからデータがインポートされるだけでなく、エンジンに新規フォーマットが追加されます。
カスタム インポーターの書き出し
-
インポーターを新規作成するためには、プラグインが
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 モジュールに入っています。