どうやら有名でやっかいなエラーらしい
10月2日。"The following modules are missing or built with a different engine version:"
というエラーに出会いTwitterでUEエンジニアの皆さんに教わった解決策をサクッと記録しておきます。
前提
問題が起きたプロジェクトは、VRGKというVRのC++プロジェクトをベースにしたC++プロジェクトでした。
パッケージ化しようとした際にエラーを吐いたため、いつもの癖でキャッシュである下の5つのfolderを削除したところ、上記のエラーが出てプロジェクトが開けなくなりました。
"rakurakuecchi"は過去に作成したC++のUEプロジェクトのプロジェクト名です。
このプロジェクトは、エラーが出る1か月ほど前にエクスプローラーからプロジェクトごと削除しており、エラーが出るまでは、表舞台から姿を消していたものでした。
それが一か月も経った後にこんな醜い姿で再会することになるなんて...。
オデ...悲しい。
(あと、僕はC++プロジェクトに詳しい者ではないので鵜呑みにしないようお願いします...)
【第一章】プロジェクトを開け!の段
(1/4) バックアップを取る
何かあった時のためにエクスプローラーでプロジェクトの入ったフォルダを複製しました。
(2/4) UE4プロジェクトから.sln(Visual Studioソリューション)を生成
右クリック → その他のオプションを確認 → Generate Visual Studio project files
(3/4) 生成した.slnを開いて、.uprojectを開き、エラー部分を削除
エラー内容を見るに、「"rakurakuecchi"というモジュールがない」とのことですが、そんなセンシティブな名前のモジュールはこのプロジェクトでは使っていませんでした。
生成したソリューションから.uprojectファイルを開くと、rakurakuecchiモジュールをロードしようとしていたので、該当部分をすべて削除しました。
(4/4) 開こうとすると別のエラー。「いいえ」を押すと開けた!!
"Missing target file" と怒られましたが、いいえを押すとプロジェクトが開きました!やったネ^^
ちなみに、はいを押すと...
そんな風に不貞腐れるんだったら、もうお父さんビルドなんかしてあげないんだからね!!
(補足1) エクスプローラーから複製したらMissing target fileも出なくなった。
開くたびにエラー出るの嫌なので、なんとなくエクスプローラーからfolderごとすべて複製したら、エラー無く開けるようになりました。理由はわからないけど動いたからヨシ^^
↓
再起動したところ、"MissingTarget file"のエラーが復活しました。
Indius GamesのAlweiさんより以下のアドバイスをいただき実践しました。僕は改善しなかったのですが、役に立つかもしれません。
このエラーは以前なんらかのビルド構成を変更した際にうまくビルドができない問題が発生しているようです。下記にあるファイルを削除すると直るかもしれません。既に直ってるかもしれませんが念のため。
— alwei (@aizen76) October 3, 2023
C:\Users\[Username]\AppData\Roaming\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml
(補足2)
一度C++プロジェクト化した場合、プロジェクト自体がC++モジュール化するとのことです。
過去に作ったrakurakuecchiプロジェクトがモジュールとして再びボクの前に姿を現したというわけですね。
ワンピースでいうところのサボといったところでしょうか。
Metasevenさんが仰るように、一度C++プロジェクト化してしまった場合、プロジェクト自体がC++モジュール化しているので、.uprojectからプロジェクト名のモジュール名がついている部分一式を消すと、出なくなります。
— alwei (@aizen76) October 2, 2023
ただC++コードは利用できなくなります。 pic.twitter.com/97DNbRYE9F
(補足3) 原因はいろいろあるだろうからね!
このエラー原因が色々あることでもちょっと名を馳せている?
記事の内容をそのままやっても解決するとは限らないので、よくエラー文を読んでもろて。。。です。
【第二章】パッケージ化ができん!の段
ゲームのパッケージ化(Windows(64-bit))ができませんでした。
普段なら問題ない手法でやったのですが...。
エラー名は"Unknown error"です。
気づいたこと1:ビルドターゲットがrakurakuecchiになっている。
気づいたこと2:Sourceフォルダなるものがある。rakurakuecchiの名を持つものが大量に入ってる。
ボクの技術&知識不足で解決できなかったので、必要なアセットをすべて新規別プロジェクトにmigrateしました。
上記のエラーにはいつか向き合います...きっと。
書かないより雑に書いたほうが何か役に立つんじゃないかという思想で書いた記事ですので、わかりづらい部分も多々あるかと思いますが、ご了承ください。
UEに強い方で何か解決の糸口を持っている方は教えてもらえるととっても嬉しいです...!
(完)
Special Thanks
Twitterで僕の涙をぬぐってくれた皆さんです。
本当にアドバイスいただきありがとうございました!
その他参考にした記事