コマンドラインからConfig設定を上書きする時の注意点2019/06/10Tweet皆さん、こんにちは。サイバーコネクトツーでテクニカルサポートのマネージャーをしています「何でも屋プログラマー」の宇佐見です。最近は忙しいこともあって記事がなかなか更新できなかったので、今回は小ネタを1つ紹介します。知っている方も多いと思いますが...UE4は起動時にコマンドラインオプションにて様々な指定が出来ます。その中でも便利なのがコンフィグファイルの設定値を上書きする方法で、以下のような書式で行います。名前はコンフィグファイルのベース名のみです。コンフィグファイル内のセクション名です。いうようにパラメーターを書きます。1つの”-ini:”指定で、コンフィグファイル1つに対して複数のパラメーター設定が可能です。UE4はビルドの設定から動作設定まで、様々な設定をConfigファイルに集約しているので、これらを上書きできるのでチョットした設定を変えて動作確認したい場合には非常に便利な機能です。この指定方法にはちょっとした落とし穴があります。個人的にそれでハマったわけですが・・・。簡単に注意点をまとめて書きます。ファイルがあると、そちらが優先されます。ビルドでは使用できませんビルド時にこの機能がOFFにされます。!(UE_BUILD_SHIPPING))定義されていますので、Sippingでもサーバーは指定可能になります。空白(スペース)が使えません当たり前のことですが、スペースはコマンドライン解釈時のセパレーターなので使えません。コマンドラインで空白を使うために引数を””(ダブルクォーテーション)で囲う方法がありますが、それを使用しても空白は使えません。ソースを追ってみるとわかるのですが、UE4のコマンドラインオプションの解釈の最初でスペースが終端として認識されるためです。“(ダブルクォーテーション)は使えませんUE4のパラメーター解釈の最初の段階で削除されます。,(カンマ)が使えませんコンフィグファイルでは複数の値を持つクラスや構造体に対して値を設定する場合に,(カンマ)が使われるのですが、困ったことにコマンドラインの指定では使えません。以下の様な指定をする事が出来ません。SmoothedFrameRateRange=(UpperBound=(Value=80),LowerBound=(Value=40))コンフィグファイルでは、この様に複数の値を設定する指定は幾つもあるのですが、コマンドラインからは出来ません。ソースを追跡して分かったのですが、-iniを解釈する際の「一番最初」に,(カンマ)文字でパラメーターを分離します。括弧で括られているかどうかを判定していないので、どうやってもカンマは入れる事が出来ません。次の様にカンマを使わなければ、構造体の一部の値を変える事は可能です。SmoothedFrameRateRange=(UpperBound=(Value=80))では、面倒ではあるけれど別々の指定にすれば同じ構造体に2つ値が設定できるのでは?と思って試してみましたが、構造体内の複数の値の書き換えは出来ませんでした。以下の2つの方法で試してみましたが適用される値は1つのみでした。,(カンマ)で区切って複数を指定した場合、前半(UpperBound)のみ設定される。-iniで指定した場合、後半(LowerBound)のみ設定される。ファイルがあると、そちらが優先されます。この設定ファイルが残っていると、こちらが優先されます。その為、コマンドラインオプションで指定しているのに変更されない・・・、といった事が多々おきます。この設定ファイルは自動的に作られるので、ついつい忘れがちになり、最初は上手く行っていたけど2回目から上手く行かないという事が良く起きました。その為、コマンドラインオプションを指定したバッチファイルを作る際にはこのディレクトリのコンフィグファイルを最初に消すようにしていました。-ini指定の解釈のプログラム色々と調べた結果、コマンドラインオプションで行うコンフィグファイルの上書き指定は、本当にちょっとした設定値の変更のみを目的した簡素な実装となっていました。:ただし、,(カンマ)を使用できるようにするだけなら、解釈時に使うセパレーターはテーブル化されているので、この部分を書き換えるだけで可能です。実際に”,”→”&”にしたところ、2つの値を設定できるようになりました。ドキュメント終わりにさて、今回はちょっとした小ネタになってしまいましたが、個人的にハマった際に、公式情報や他の方のブログを見ていてもあまり詳しくは書かれていなかったので、結局はソースファイル内まで追っかけて調べました。同じような所で悩んでいる方がいたら、参考になると幸いです。皆さんのご意見、ご要望をお待ちしています。CC2技術ブログのメッセージフォームにて、お気軽にお問い合わせください。しばはらがお送りします。UE4のアセットを一括修正するツール系テクニカルアーティストのしばはらです。...東京スタジオスタッフとのランチトーークこんにちは、東京スタジオのヤマケイです。聴くこんにちは、東京スタジオのヤマケイです。...東京スタジオ『ピクセルハウス〜フシギな家からの脱出〜』をプレイこんにちは、東京スタジオのヤマケイです。新宿―』に行くこんにちは、東京スタジオのヤマケイです。