DCS World: Scripting の概要

(注: 個人用備忘録)
バージョン: DCS World 2.9.1

Scripting の種類

hoggitworld の情報を流し見する限りだと、大きく分けて 2種類の分類があり、 Mod にはさらに 3つに分けられる模様。

  • Mission
  • Mod
    • Export
    • Server control
    • Liveries

Scripting の種類の概要

Mission

Lua スクリプトをミッションファイル (.miz) に組み込む形で動作する。

ゲーム内オブジェクトのコントロールができるのは Mission Scripting のみである。僚機や AI 機や地上ユニットなどの動作を制御したい場合は、 Mission Scripting の形で実装する必要がある。
無線コマンドなどを追加できるのも Mission Scripting のみ。

Mod – Export

Export.lua ファイルから直接呼び出される形で動作する。ベースは Lua だが、DLL を呼び出す形で別のプログラムを実行することができる。基本的には ~\Saved Games\dcs\Scripts\Export.lua に直接処理を記述するか、そこから呼び出されるような形で処理を記述する。

Mission Scripting とは少々異なる方法でゲーム内の情報を取得できるほか、 (おそらく十分なドキュメント化されていないが) プレイヤーが操作している機体の状態を取得/変更することもできる。独自の計器やコントローラーをハードウェアとして作成した場合などに、Export を通じて DCS と連動させることができる。

LoGetWorldObjects などの Object 系 API に関しては、自機の状態ではなく全てのゲーム内オブジェクトの状態 (位置/速度など) にアクセスできる。マルチプレイヤーの場合、 (おそらく不正行為を防ぐため) サーバー側で一部の API へのアクセスを制限するように設定することができる。

Mod – GameGUI

ゲームサーバーもしくはクライアントにインストールする形で動作する。マルチプレイヤーのサーバーとしても利用できる処理群。作るのは少々手間だが、 Export の上位互換。 ~\Saved Games\dcs\Mods\tech の下に Mod 用のフォルダを作り、その中に処理群を作成する。

メニュー画面内にアイコンを出したり、設定画面に Mod 用の項目を追加したりできる。ゲーム内の情報にアクセスする方法は、 Export と同じものが使える。

Liveries

Livery は機体 Mod のことだが、特に調べてないので詳細不明。 ~\Saved Games\dcs\Mods\Aircraft の下に機体用のフォルダを作り、必要なファイルを設置する。