パッケージ化した際に独自のコンフィギュレーションファイルが読めなくて困った話
みなさんコンフィギュレーションファイルは活用してますか?
今回はタイトル通り、パッケージ化した際に独自のコンフィギュレーションファイルが読めなくて困った話です。
コンフィギュレーションファイルとはなんぞやという方はこちら↓
コンフィギュレーション ファイル | Unreal Engine ドキュメント
簡単に言うと、パッケージ化した後でも変数の値がいじれる外部iniファイルです。(以下iniファイル)
私はDefaultGame.iniに直接は書かず、独自のiniファイル(仮にMyConfig.ini)をDefaultGame.iniと同じディレクトリに入れて-GAMEINIコマンドで読み込んで運用していました。
が、突如読み込まなくなる。
…心当たりはありました。
今までパッケージ化にあたって、UsePakFileのオプションを使っていなかったのですが、Pakファイルに圧縮を行ってから読み込めなくなりました。
Pakファイルに圧縮を行う前は\WindowsNoEditor\プロジェクト名\Config内にDefaultGame.iniやMyConfig.iniがあったのに、Configフォルダごと生成されていません。
おそらくPakファイルの中にまとめて圧縮されているのでしょう。
しかし、-GAMEINIコマンドでパスを指定できるのですからMyConfig.iniを後から作って読み込めばいい話です。
が、まだ読み込めない。
原因
どうも-GAMEINIコマンドで指定した名前と同名のiniファイルがPakファイル内にある場合、そちらを読み込んでしまうようです。(パス指定とは…?)
解決策
- パッケージ化する前にConfigフォルダからMyConfig.iniを削除しておく
- Pakファイル内に圧縮されていない名前のiniファイルを指定して読み込む
以上、独自のiniファイルを作るときは気をつけようの話でした。
UE4.22