開発者向け情報
BeamNG.driveのMOD開発・Lua開発に関する情報をまとめたページです。
ページ一覧
- システムコンソールの使い方:Luaコマンドやエラーログをゲームのコンソールでデバッグする方法
- 車両名とモデル名の対応表:Luaコマンドやコンフィグ内で使用するmodel_keyの一覧
Luaコマンド集
車両のスポーン
extensions.core_multispawn.spawnGroup(group, amount, options)
複数車両を一括でスポーンさせる関数。
- 引数
- group: `{{model = “”, config = “”, paintName = “”, paintName2 = “”, paintName3 = “”}, {…}, …}` 形式で指定。各パラメータは下記の通り:
- model: モデル名(`pickup` など。対応表はこちら)
- config: コンフィグ名(*.pcのファイルパスまたはキー。未指定時はデフォルト)
- paintName / paintName2 / paintName3: 各ペイント色(未指定時はデフォルト。`“random”` でランダム)
- amount: スポーン数(数値指定、必須)
- options: オプション(未指定時は全てデフォルト動作)
- name: グループ名(デフォルト: `'custom'`)
- mode: スポーンモード(デフォルト: `'roadAhead'`)
- gap: スポーン地点の間隔[m](デフォルト: 15)
- shuffle: groupの順番をシャッフルするか(デフォルト: false)
- 戻り値: 無し
v0.39でのMOD開発関連の変更
破壊的変更
| 対象 | 内容 |
|---|---|
| 翻訳システム | 言語ごとに1つのJSONファイル(`locales\en-US.json`)だった構成が、言語ごとのフォルダ(`locales\translations\en-US\`)に任意の数のJSONファイルを置く形式に変更されました。MOD側も自前の翻訳ファイルを同梱できます |
| ミッションシステム | ミッションが認識されるには、そのミッションが属するレベルのIDに対応するサブフォルダ(`gameplay/missions/<レベルID>`)に配置する必要があります |
| ナンバープレート | Skiaライブラリを使う新方式に全面移行。既存のナンバープレートMODのほとんどは非互換 で、変換が必要です |
| 油圧サウンド | イベント名が変更されたため、利用しているMODは更新が必要です |
| カスタムコンフィグの命名 | カスタムコンフィグを保存すると、名前は車両の `info.json` に保存されるようになり、生成される `.pc` のファイル名とは完全には一致しなくなりました |
| TextureDrawPrimitive(SDF) | `TextureDrawPrimitiveRegistry:getOrCreate` の引数が `(name, Point2i size, bool clear)` から `(name, size_x, size_y)` に変更。※このシステムはAPIが今後も変わる可能性があるため、安定するまでは使用を避けることが強く推奨されています |
新機能・追加API
- Lua Router: Vue画面などのルーティングをLua側が所有する新しいナビゲーションシステム。階層的なルート、予測可能な「戻る」挙動、ライフサイクルコールバック、ルートパラメータを提供します。ポーズ・メインメニュー・ガレージ・各種セレクター・マップモード・ラジアルメニュー・ミッション画面・キャリアコンピューター・オプションがこの上で動いています
- UI MOD: `ui/ui-vue/mods/README.md` にMODフォルダ構成、Vue SFCとインポート、UIスロット、`index.js` のロード/アンロードエントリポイント、ポーズメニュータブとレールボタンの追加、独自ルートの登録方法がまとめられています。完全な実装例として AnnasToolbox が同梱されています
- JBeamの翻訳対応: パーツ名・スロット説明・チューニング変数のタイトル、`info.json` の Configuration / Description / Name / Slogan が翻訳キーに対応(従来のリテラル文字列も引き続き使用可)
- JBeam: `props` セクションに `translationUseMeters` プロパティを追加(`“translationUseMeters”:true` でメートル単位指定)。`pressureWheels` に円錐/キャンバー付きタイヤ用の `conicityFactor` を追加
- Forest Audio Editor: 風と植生の動的なアンビエンスを作成できるエディター。各種バイオームを表すFMODイベントのプールから選択でき、カメラの移動に応じて森のアイテムサイズ・密度・方向・距離を取得して音を変調します
- Blender用の地形/背景作成ソース: SubstanceなどのDCCツールがなくても、Blenderだけで地形と背景(バックドロップ)メッシュを作れるソースファイルが追加されました。テンプレートレベル内の.zipに同梱されています
- Lua JSONモジュールの高速化: SJSONのエンコーダ/デコーダをLuaJIT向けのCモジュールとして書き直し、デコードが約45%、エンコードが約2倍高速化されました
- ワールドエディター: キューブマップエディターの分離・キューブマップキャプチャ/正規化、日付選択、露出EV、色温度、IESライトプロファイルのインポート(実験的)、TSStatic Forest Mover、グラウンドカバーエディター、Traffic Gated Roads Editor などを追加