Torus Solutions 改

Ello 2020-11-24T02:56:24.964Z

#UE4 の #Spine2D プラグインを Blueprint プロジェクトで使う方法。

C++ コードを含む UE4 プラグインはそのままでは Blueprint プロジェクトでは使用できない。エディタでは動くんだけど、パッケージをビルドして実行すると下の画像のようなエラーがでて終了してしまう。

Unreal Automation Tool の BuildPlugin コマンドを使うとプラグインをコンパイルしてパッケージングすることができるらしいんだけど、これを試しても上のようなエラーがでる。cf. [Building Binary Plugins in Unreal Engine 4 Mercuna](https://mercuna.com/building-binary-plugins-in-unreal-engine-4/)

で、いろいろ試した結果、UE4 のソースコードの Plugins のディレクトリに Spine のプラグインのソースを入れて、エンジンごとビルドすればいいことが分かった。

これでうまくいくかと思ったけど、実際にやってみると下のようなエラーが山ほど出た:

SpineBoneDriverComponent.h(43) : LogCompile: Error: An explicit Category specifier is required for any property exposed to the editor or Blueprints in an Engine module.

プロパティにはカテゴリを明示しなければいけないらしいので、エラーが出ていた箇所に対して下のように Category を追加してみた。

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Spine)

これでエラーはなくなった。コンパイルすると下のような警告がたくさん出るけど、とりあえずこれで動いた。

In file included from /home/toru/src/UnrealEngine/Engine/Plugins/2D/SpinePlugin/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/SpinePlugin/Module.SpinePlugin.cpp:2:
In file included from /home/toru/src/UnrealEngine/Engine/Plugins/2D/SpinePlugin/Source/SpinePlugin/Private/SpineAtlasAsset.cpp:30:
In file included from ../Plugins/2D/SpinePlugin/Source/SpinePlugin/Private/SpinePluginPrivatePCH.h:31:
In file included from ../Plugins/2D/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonDataAsset.h:32:
/home/toru/src/UnrealEngine/Engine/Source/Runtime/Engine/Public/Engine.h:10:1: warning: Monolithic headers should not be used by this module. Please change it to explicitly include the headers it needs. [-W#pragma-messages]
MONOLITHIC_HEADER_BOILERPLATE()
^
/home/toru/src/UnrealEngine/Engine/Source/Runtime/Core/Public/Misc/MonolithicHeaderBoilerplate.h:6:42: note: expanded from macro 'MONOLITHIC_HEADER_BOILERPLATE'
        #define MONOLITHIC_HEADER_BOILERPLATE() COMPILE_WARNING("Monolithic headers should not be used by this module. Please change it to explicitly include the headers it needs.")
                                                ^
/home/toru/src/UnrealEngine/Engine/Source/Runtime/Core/Public/HAL/Platform.h:767:29: note: expanded from macro 'COMPILE_WARNING'
        #define COMPILE_WARNING(x) GCC_DIAGNOSTIC_HELPER(GCC warning x)
                                   ^
/home/toru/src/UnrealEngine/Engine/Source/Runtime/Core/Public/HAL/Platform.h:766:35: note: expanded from macro 'GCC_DIAGNOSTIC_HELPER'
        #define GCC_DIAGNOSTIC_HELPER(x) _Pragma(#x)
                                         ^
<scratch space>:7:6: note: expanded from here
 GCC warning "Monolithic headers should not be used by this module. Please change it to explicitly include the headers it needs."
     ^

これでめでたく Blueprint プロジェクトで Spine を使ってゲームをビルドすることができた。