#主旨
先日(執筆時点)、UE4.26がリリースされ、色々と魅力的な新機能や最適化が搭載されています。
既存のプロジェクトでその恩恵を受けたいとき、大きな壁の一つとなっているのが「コードプラグイン」を使用しているプロジェクトの時です。
コードプラグインとは、C++コードを含むプラグインのことで、そのまま(特にマーケットプレイスから入手したプラグインがある場合)では対応したバージョンが作者から提供されるまで待たなくてはなりません。
マーケットプレイスのガイドラインには、「1週間以内に最新版への対応を行うべし」とあるので、大抵のプラグインは1週間程度待てば使えるようになるでしょう。しかし、作者の都合で対応が長引くかもしれません。
この記事では、「そんなの待ってられない!」という人向けの最新版対応方法です。
※Windows環境での記事内容です。
#注意
この行為は自己責任で行ってください。
対応されていないバージョンのプラグインを無理やり最新版で使用しようとしているため、動作に問題ないこともあれば、ビルドエラーやクラッシュでどうしようもないこともあります。
#対応方法
手順は4つです。
- 現在のプロジェクトをバックアップする
- 利用中バージョンのコードプラグインを自分のプロジェクトにコピー
- コピーしたプラグインの対応バージョンを書き換える
- プロジェクトを再生成・リビルドする
##1. 現在のプロジェクトをバックアップする
これは非常に重要です!
以降の手順で動かなくなってしまった場合、元の状態に戻すことができなくなる可能性があるからです。
バージョン管理ツールを使って管理している場合はここが一番役に立つところです。
##2. 利用中バージョンのコードプラグインを自分のプロジェクトにコピー
マーケットプレイスから入手しているコードプラグインで必要な手順です。
このプラグインの場所は、
[インストールディレクトリ]/UE_[バージョン]/Engine/Plugins/Marketplace
にあります。
コピー先のディレクトリは、
[プロジェクトディレクトリ]/Plugins
になります。(ない場合は手動で作ります)
##3. コピーしたプラグインの対応バージョンを書き換える
コードプラグインには、ガイドラインとして .upluginファイル内に対応バージョンを記載することが求められています。
UE4.25であれば、
"EngineVersion": "4.25.0"
と記載されている行がありますので、4.26にしたい場合はここを、
"EngineVersion": "4.26.0"
に書き換えます。(右端の 0 は原則固定です)
これを行わないと、エディタ起動時に異なるバージョンのプラグインがあると警告されます。
##4. プロジェクトを再生成・リビルドする
.uprojectファイルを右クリックし、 "Switch Unreal Engine version..."
を選択。
現れたダイアログで、切り替えるバージョンを選択して "OK" すると、.uprojectファイル(と使用しているIDE用プロジェクトファイル)がそのバージョン用に再生成されます。
その後、プロジェクトをリビルドします。ビルドではありません。(クリーン→ビルドでもいいです)
※ビルド設定はエディタ起動の場合は(Visual Studio なら)「Development Editor」がエディタ用になります。
あとはエラーが出ないよう祈りつつ待ちます。
利用しているコードプラグインの規模に応じて時間がかかります。たくさんあるとコーヒーブレイクできるかもしれません。
###ビルド時警告がでた場合
大半が「機能の移行などにより非推奨になった処理を使ってますよ」という旨の警告です。プラグイン作者が対応するはずなので基本気にしなくても大丈夫です。
###ビルドエラーがでた場合
自分の力で直せそうな箇所であれば、対応することで突破できるかもしれません。
そうでない場合、泣く泣く諦めてください。
###ビルドが成功したら
エディタを起動してみましょう。シェーダーコンパイルを待ち、一通り動かしてクラッシュしないことを確かめましょう。
以上を行って問題なければ移行できたと見て喜んでいいと思います。
もちろん、**自己責任で行っていますので、問題が発生してもなんとかしてください。**なんとかできないかもしれませんが…
#その後、プラグイン作者が対応してくれたら
対応するバージョンのプラグインがマーケットプレイス上で利用可能になったら、次の手順が必要です。
- コードプラグインをエンジンにインストールする
- プロジェクトにあるプラグインを取り除く
- プロジェクトを再生成・リビルドする
##1. コードプラグインをエンジンにインストールする
いつもの方法でランチャーでインストールしましょう。
対応されたプラグインの数だけ行います。
##2. プロジェクトにあるプラグインを取り除く
このままではプロジェクト側のプラグインが優先されたり、エラーが発生することがあるので取り除きます。
プロジェクトにある、対応されたプラグイン名のディレクトリを取り除くだけです。
対応されたプラグインの数だけ行います。
##3. プロジェクトを再生成・リビルドする
.uprojectファイルを右クリックし、 "Generate Visual Studio project files"
を選択し、IDE用プロジェクトファイルを再生成します。これで、プロジェクトにあった古いプラグインの情報はなくなります。
その後、プロジェクトをリビルドします。ビルドではありません。(クリーン→ビルドでもいいです)
あとはエラーが出ないよう祈りつつ待ちます。
(プロジェクト側のコードプラグインの数が減るので時間がはやくなります)
###対応してくれたプラグインに関連したエラーが出たら
エラー内容をよく見ましょう。もしかしたらコード上で連携してたところがプラグインの更新で変更されているかもしれません。
またはプラグイン作者がミスをしているかもしてませんので、報告する場合はよく確認してから報告しましょう。
#最後に
繰り返しますが以上の行為は自己責任で行ってください。
こういった最新対応をする方法の記事があまりないために書いた次第ですので…