🕌

[UE5]バージョン非対応Pluginを移植して使えるようにする(ZXing)

に公開

前提

使用するプラグイン::ZXing
バージョン::5.4と5.6
C++必須

注意

今回はZXIngという2026/01/29時点では5.4まで
対応しているプラグインを5.6.1に移植します。
全てのプラグインで出来るとは限りません。あくまでも移植の手順としてみてください。

また今回は、Fabからもってきています。
https://www.fab.com/ja/listings/295bc4f8-96eb-44d1-9e07-1167ff835701
ZXingはGithubでも公開されているのでもちろんそちらでも問題ありません。
その場合、先駆者様がいらっしゃいますのでそちらをご参考にお願いいたします。
https://quwequwe.com/2023/06/12/zxingをue5-2で使えるようにしてみるその1/

対応バージョンにインストールからコピーの流れ

まずは5.4にZXingをインストールします。

その後、インストールしたプロジェクトからZXIngを持ってきます。
エクスプローラーで表示した場合、少し階層をさかのぼって
ZXing_5.4
をコピーしてください。
(UE_5.4\Engine\Plugins\Marketplace\ZXing_5.4から直接コピーしてきても大丈夫です。)


移植作業

移植したいプロジェクトのPluginに先ほどコピーしたものを貼り付けてください。

その中の、
Binaries
Intermediate
は削除してください

ZXingForUnreal.upluginの中の

"EngineVersion": "5.4.0",

この行を削除して保存してください。

.uproject を右クリックで、Generate Visual Studio project filesを選択。

Slnを開いたら、ビルドをしてください。

エラー修正

ZXingの場合、エラーが出ます。
5.4->5.6の間で

FText::FromString

の仕様が少し変わり、戻り値を代入する必要があります。
なので

catch (const std::exception& Err)
{
// Err.what()はconst char*なのでTCHARに変換してからFTextに入れる
OutErrorMsg = FText::FromString(ANSI_TO_TCHAR(Err.what()));
return nullptr;
}

こうしてあげてください。

Build.csを5.6規格にする

ZXing.Build.cs

using UnrealBuildTool;
using System.IO;

public class ZXing : ModuleRules
{
    public ZXing(ReadOnlyTargetRules Target) : base(Target)
    {
        // あとはそのまま

ZXingForUE4.Build.cs

using UnrealBuildTool;
using System.IO;

public class ZXingForUE4 : ModuleRules
{
    public ZXingForUE4(ReadOnlyTargetRules Target) : base(Target)
    {
        PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
        bEnableExceptions = true;
        // 追加1行
        IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_1;
        // あとはそのまま

再ビルド

これでおそらくエラーが消えたのでUE上で使えるようになったと思います。

おしまい

以上が移植の最も基本的な手順です。
もちろんモノによって異なりますし、もっと直さなければならないものもあります。
ただ、そこまでのコストではないので現実的なラインではあると思います。

Discussion