ちょっとした小ネタですが、アンリアルエンジンのレベルであるマップファイルのフォルダを整頓しようと、マップファイルを移動しようとしたらエラーが出ました。さらにプレイインエディタしたところワールドパーティーションで作ったレベルがカクカク動作するようになり壊れたのではないか?と不安になりました。
そこで次回以降作るときの戒めとしてマップファイルに関してはルールを作っておき忘れないようにするためにこの記事を書くことにしました。
結論
アンリアルエンジンでマップファイルの保存先は予めルールを決めておこう。
中々最初からピッタリの名前を付けることは難しいですが現時点では、
- プレイヤーが遊ぶステージは「 Stage 」
- タイトルやエンドロール、などゲームの流れを作るレベルは「 System 」と名前を付けるルールにしました。
今後プロジェクトを進めていく中でもっとよい分類方法があるかもしれませんが、今はこの分類で運用して行こうと思います。
後からマップファイル(レベル)を移動しようとすると面倒いことに
エラーメッセージが出る
今までの参照がなくなりまた1からそれぞれの参照を確認する手間が出てきます。それなら最初からマップファイルは移動しなくてもよいように設計しておくのが賢い方法でしょう。
ワールドパーティーションがカクカクし始めた。
ワールドパーティーションではレベルであるマップファイル以外にも、HLODデータやシェーダーアセットなど複数のファイルを生成します。それらの参照やリンク、生成したデータにアクセスできなくなるのか?ワールドパーティーションのファイル一式を別のフォルダに移動すると、プレイインエディタでゲームがカクカクしました。
壊れてはないとおもいますが、製品にするプロジェクトでこの様な不安要素が起きるとたまったものではありません。ましてやパッケージ化したときにもストレスがかかるレベルでカクカクし始めたらもう手におえません。
Windows自動バックアップから復元の仕様
可能な限り不安要素を取り除くため今回はWindowsの自動バックアップから復元しました。
これまた小ネタですが、Windowsの自動バックアップからそのまま復元するとすでに追加した物がそのまま残る場合があります。Macのタイムマシンでは完全に過去のものと置き換えるような処理が走るのですが、Windowsでは、すでに存在するものに上書きする形で復元を行います。
よくわからないと思うので例を挙げると、7/22日の復元プロジェクトにはStageというフォルダはありませんでした。7/29にStageというフォルダを作成しました。そして7/22のバックアップから7/29に復元を実行しました。7/22のデータにはStageというフォルダは存在しないはずですが、復元した後にはStageというフォルダが存在していました。
つまりWindowsでは完全に過去のプロジェクトと全く同じものに復元するには、一度現在のプロジェクトを完全に消去してから、過去のバックアップから復元する必要があるようです。
地味に分からない仕様なので自分もやってみて少し戸惑いました。
リファレンスを調べ、再クックする必要があるかも?
また移動に成功したとしても、レベルの遷移を指定したブループリントのノードやコンフィグINIなどのリファレンスを更新して、再クックする必要があるかもしれません。
これまた面倒で手間になるのでやりたくないですよね。
まとめ
ちょっとした小ネタ記事でしたが、どうでしょうか?皆さんうまくプロジェクトデータを整頓できていますか?ゲームエンジンのデータは複雑に関連しあい、お互いに参照しているので、移動や整頓が難しくなるときがあります。
予めプロジェクトの参照の仕様を知っておくことで効率よく、気持ちのよい作業構造が実現できるので、ふとした時にこの記事のことを思い出してくれたらな、と思います。
コメント