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

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

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

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

  • 詳細とサンプルについては、LandscapeFileFormatInterfaces.h のインターフェース、LandscapeFileFormatPng.cppLandscapeFileFormatPng.h の.PNG 実装、LandscapeFileFormatRaw.cppLandscapeFileFormatRaw.h の .RAW 実装をご覧ください。このコードはすべて、エンジンの LandscapeEditor モジュールに入っています。

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信