====== 開発者向け情報 ====== BeamNG.driveのMOD開発・Lua開発に関する情報をまとめたページです。 ---- ===== ページ一覧 ===== * [[development:console|システムコンソールの使い方]]:Luaコマンドやエラーログをゲームのコンソールでデバッグする方法 * [[development:model_name_mapping|車両名とモデル名の対応表]]:Luaコマンドやコンフィグ内で使用するmodel_keyの一覧 ---- ===== Luaコマンド集 ===== ==== 車両のスポーン ==== **extensions.core_multispawn.spawnGroup(group, amount, options)** 複数車両を一括でスポーンさせる関数。 * **引数** * group: `{{model = "", config = "", paintName = "", paintName2 = "", paintName3 = ""}, {...}, ...}` 形式で指定。各パラメータは下記の通り: * model: モデル名(`pickup` など。対応表は[[development:model_name_mapping|こちら]]) * 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 などを追加 ---- ===== 外部リソース ===== * [[https://documentation.beamng.com/modding/|公式MODドキュメント(英語)]] * [[https://documentation.beamng.com/modding/programming/debugging/|デバッグ方法(英語)]] ---- [[start|トップページに戻る]] ~~LASTMOD~~