UDN
Search public documentation:

ConfigurationFilesJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

Unreal Engine を設定する

ドキュメントの概要 : 設定ファイル (.INI) を使った Unreal Engine の種々の面からの設定方法

ドキュメントの変更ログ : Josh Adams が作成; Richard Nalezynski? が移行および維持

概要

Unreal Engine では、機能や初期化の方法の指示については、主に設定ファイルに依存します。

設定は、セクション内に配置されたキーと値の組で決められます。与えられたキーに対しては、 1 つ以上の値が関連付けられます。

いくつかの変数は直接 native(ネイティブ) コードによってアクセスされますが、その他のものは UnrealScript コードで簡単にトレースできます。 SaveConfig() または StaticSaveConfig() 関数がオブジェクト上で呼ばれたときはいつでも、 (クラスでその設定を異なる設定ファイルに保存するように定義していない限り) エンジンは指定された設定ファイルに変数を保存します。

設定ファイル内の native(ネイティブ) コードで使用される変数は、通常は、簡単なセクションタイトルが付きます。例えば、DefaultEngnine.ini 設定ファイルに現れる最初のセクションは [URL] という簡単な名前です。しかしながら、 UnrealScript コードによって利用される任意の変数は、通常、 [(package).(classname)] の形式に従った完全に修飾されたクラス名となります。例えば、 DefaultEngine.ini 内の [Engine.Engine] セクションは、Engine パッケージ内に格納された Engine クラスがキー - 値のペアをロードします。このルールに、 [WinDrv.WindowsClient] のセクションではキーの値が native(ネイティブ) C++ コードによってロードされるなどのような、いくつかの例外があります。

UnrealScript コードコンパイラ (UCC) が、この設定ファイルを使用し、どのパッケージが存在するかを確かめることも心に留めておいてください。ゲームエンジンとは異なり、 UCC は、パッケージをロードするために、設定の内でもわずかなサブセット (主に DefaultEngine.ini 設定ファイルの [Editor.EditorEngine] セクション) を使うだけです。

最初にエンジンを実行したときには、所定の設定ファイルは見つからない場合も多くあります。この場合は、デフォルトの設定ファイルがロードされ、現在のプロジェクト名を使用する設定ファイルに変換されます。例えば、 DefaultEditor.ini は、 ExampleGame プロジェクト用に変換されて ExampleEditor.ini となります。実際の設定ファイルが生成された後は、デフォルトファイルは使用されません。しかしながら、デフォルトファイルは、参照用にとても訳に立つことが分かるでしょう。

これらのデフォルトファイルでは Engine プロジェクト内の Base(ベース) ファイルで定義された核となる設定を取り出しています。これは、デフォルト設定ファイルの [Configuration] セクション内で見ることができます。

設定ファイルでの作業

ファイル形式

セクションおよびキー - 値の組

典型的な設定ファイルは、キー - 値の組のセクションで構成され、以下のように配置されます :

  [Section]
  Key=Value
  

特殊文字

+ プロパティがまだ存在しない場合の一行追加(直前の .ini ファイルまたは、同名の .ini ファイルの以前のものから)。
- 一行削除 ; 完全に一致する必要があります。
. 新規プロパティの追加。
! プロパティの削除 ; プロパティの名前だけ一致すれば、完全に一致する必要はありません。

注記 : .+ と似ていますが、重複した行を追加する可能性があるところが異なっています。これは、 (DefaultInput.ini に見られるような) バインディングに便利です、例えば、最も下のバインディングが有効になりますので、似たような行を追加できます :

  [Engine.PlayerInput]
  Bindings=(Name="Q",Command="Foo")
  .Bindings=(Name="Q",Command="Bar")
  .Bindings=(Name="Q",Command="Foo")
  

これは、適切に動作するでしょう。*+* を使用すると、最後の行の追加に失敗し、バインディングが正しくなくなります。 .ini ファイルの結合により、上のような用途のパターンが発生する可能性があります。

コメント

多くの人により、セミコロンは設定ファイルにおいてコメントとして取られがちですが、 FConfigFile::ProcessInputFileContents は、その他の文字列をコメントのデリミタとしてその様に実行しません。このビヘイビアは意図的に行われています。理論上では、あらゆる文字が異なるkey-value ペアを示すことが可能です。セミコロンは新しい行の最初に配置されます。それはコメントのようナ働きをしますが、実はそうではないのです。

  ; This is a Comment
  ; So is this!
  

コンフィギュレーションファイルの作成

たのコンフィギュレーションを基にした新しいファイルの作成時、 [Configuration] セクションをインクルードしてください。また、同様に BasedOn キー値ペアもインクルードしてください。

例えば、コンフィギュレーションファイルが基本 Engine.iniコンフィギュファイルを基にする場合は、次のものを独自のファイルの最初につけてください。:

  [Configuration]
  BasedOn=..\Engine\Config\BaseEngine.ini
  

基本コンフィグファイルから継承されたセクションの既存するキー値ペアに追加するには、特殊文字 + を次の様に使用します。:

  [Core.System]
  +Extensions=mymap
  

基本コンフィグファイルから継承されたセクションの既存するキー値ペアに追加するには、特殊文字 - を次の様に使用します。:

  [Core.System]
  -Extensions=umap
  

コンフィグファイルが何も基にしていない場合は、 + または - のように指定する必要はありません。

オブジェクト設定の保存

Unreal Engine では、オブジェクトの構成を任意の希望する設定ファイルに保存する機能があります。UnrealScript/ エンジン設定ファイルの文法はとても直截的ですので、エントリを生成したオブジェクトを簡単に見つけることができます。

設定ファイル名の宣言

クラス宣言は、新規の設定ファイルのファイル名を含んでいます。例えば、以下のクラス例では、その変数は User.ini 設定ファイルに保存されることを宣言指定しています :

  class MyController extends Controller
     config(user);
  

設定ファイルに対してファイル名を宣言しない場合は、エンジンは、単にデフォルト設定ファイルに内容を保存します。以下に例示するコードはそれを表しています :

  class TestConfig extends Actor
     config;
  
  var config int X;
  
  function postbeginplay()
  {
     X=5;
     SaveConfig();
  }
  

TestConfig アクタが生成された時、ここでは、 X の値をセットして、その設定を保存します。 MYGAME.ini ファイルは以下のように更新されます :

  [UDN.TestConfig]
  X=5
  

TestConfig アクタが次に生成された時、 X のデフォルト値は、 5 と等しくなります。たとえ、アクタから PostBeginPlay() 関数を削除したとしても、 X は、 5 と等しい値に設定されます。

新規に設定ファイル名を宣言した場合は、そのファイルが生成されます。下の例は、新規の設定ファイルを宣言するオブジェクトを示します :

  class TestConfig extends Actor
     config(UDN);
  

変数設定および継承

設定変数は、サブクラスによって継承されます。しかしながら、 SaveConfig()TestConfig の子クラスで呼び出された場合は、 X の値は子クラスに保存されます。以下の例は、上述の TestConfig クラスを拡張します :

  class TestConfigChild extends TestConfig;
  
  function postbeginplay()
  {
     X=15;
     SaveConfig();
  }
  

TestConfigChild アクタが Spawn(スポーン) されたとき、このプロジェクトに対する設定が保存されます :

  [UDN.TestConfigChild]
  X=15
  

動的 vs. 静的設定

設定ファイルにオブジェクトの設定を保存するためにプログラマが利用できる 2 つの異なる方式があります : 動的および静的な方式です。基本的に、これは、もし、オブジェクトのインスタンスにおいて SaveConfig() を呼び出した場合は、単にランタイム変数が保存されることを示します。クラス変数で StaticSaveConfig() を呼び出すと、オブジェクトの デフォルト値 を設定ファイルに書き出します。例は、とりわけ、ランタイムオブジェクトの設定の保存についてカバーしています。

以下の抜粋は、 X のデフォルト値を保存します :

  class'TestConfigChild'.default.X = 30;
  class'TestConfigChild'.static.StaticSaveConfig();
  

X のデフォルト値が設定ファイルに出力されます。

  [UDN.TestConfigChild]
  X=30
  

利用可能な設定ファイル

設定ファイルは、指定されたプロジェクトの Config ディレクトリ中にあります。

Unreal Engine を利用する任意のプロジェクトで利用可能な設定ファイルの一覧です。 :

  • DefaultEditor
  • DefaultEditorKeybindings
  • DefaultEditorUserSettings
  • DefaultEngine
  • DefaultGame
  • DefaultInput
  • DefaultUI