2022/5/8) 全車両をリセットするコマンド(スキン・メッシュ込み)を追加しました。
2022/6/19)トラフィックのロールを変更するコマンドを追加しました。
2023/1/4) v0.27.1版に更新しました。
2023/7/7) v0.29.1版に更新しました。強制加速コマンドを追加しました。
BeamNG.driveのシステムコンソールで使用できる便利&面白コマンドを集めてみました。
- このコマンドはBeamNG.drive v0.29.1で動作を確認しています。
- 2章以降はコピペ用のため、解説は省略気味です。分からない・動かない等ありましたら下のコメントorツイッター等でご連絡ください。
- 長くなったのでデバッグ/Mod開発系のコマンドは2ページ目に移動しました。
1.今回紹介するコマンドの使い方
システムコンソールについて
今回紹介するコマンドはBeamNGのシステムコンソールで使用するコマンドです。
システムコンソールはBeamNG.driveで使用可能なコンソールの一つで、下の画像のようなものです。
システムコンソールはデフォルトであればチルダキー(^)で開くことができます。
キーの設定を変更する場合はオプション画面のCONTOROLSから変更可能です。
また、システムコンソールには、種類がいくつかありますが、今回使用するのは“GE – Lua”と“車両毎”のコンソールです。
GE – Lua
– BeamNG全体に影響するコマンドや、スポーンしている全車両にコマンドを適用したい場合に使用します。
車両毎のコンソール
– 個別の車両に対してコマンドを実行する際に使用します。
使い方の具体例
全車両にコマンドを適用する場合
“GE – Lua”のコンソールで以下の形式でコマンドを実行してください。
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("<実行したいコマンド>") end
例えば、出現している全車両を爆破する場合は以下のコマンドを実行します。
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("fire.explodeVehicle()") end
個別の車両にコマンドを適用する場合
車両毎のコンソールで、上記の<実行したいコマンド>の部分のみを入力します。
上の例であれば、以下のようになります。
fire.explodeVehicle()
コマンドは、全車両に対して実行するケースが多いと思うので、この記事では特筆のない限り、全車両に対してのコマンド(GE – Luaコンソールのコマンド)を記載します。
車両毎に対して適用したい場合は、適宜読み替えてください。
2.面白コマンド
破壊系コマンド
全車両のヒンジを破壊する
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("beamstate.breakHinges()") end
全車両を完全に破壊する
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("beamstate.breakAllBreakgroups()") end
全車両をパンクさせる
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("beamstate.deflateTires()") end
全車両を炎上させる
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("fire.igniteVehicle()") end
全車両を爆破する
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("fire.explodeVehicle()") end
全車両を消火する
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("fire.extinguishVehicle()") end
Force Field(バリア)関連のコマンド
※Force Fieldはプレイヤー車両(選択中の車両)にのみ適用されます。GE – Luaのコンソールでしか使えないのでご注意ください。
Force Fieldを有効化/無効化する
extensions.gameplay_forceField.toggleActive()
Force Field(バリア)の威力を強化する
extensions.gameplay_forceField.setForceMultiplier(10)
※10の部分は倍率です。設定したい倍率に合わせて適宜変更してください。
※負の値を設定すると逆向きの力が働きます。(周りのオブジェクトがプレイヤー車両に引き寄せられる)
強制加速コマンド
※コマンド中の100の部分は速さです。km/hの場合、設定値の約3倍の速さになります。(100を設定した場合→約300km/h)
全車両を強制加速する
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("thrusters.applyVelocity(obj:getDirectionVector() * 100)") end
プレイヤー車両のみを強制加速する
be:getPlayerVehicle(0):queueLuaCommand('thrusters.applyVelocity(obj:getDirectionVector() * 100)')
3.便利コマンド
ライト系の操作
全車両のウィンカー(左)を点灯/消灯する
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("electrics.toggle_left_signal()") end
全車両のウィンカー(右)を点灯/消灯する
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("electrics.toggle_right_signal()") end
全車両のハザードを点灯/消灯する
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("electrics.toggle_warn_signal()") end
全車両のライトを点灯する
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("electrics.setLightsState(1)") end
全車両のライト(ハイビーム)を点灯する
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("electrics.setLightsState(2)") end
全車両のライトを消灯する
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("electrics.setLightsState(0)") end
全車両のフォグランプを点灯/消灯する
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("electrics.toggle_fog_lights()") end
全車両のパトランプを点灯する ※パトランプのない車両は何も起きません。
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("electrics.set_lightbar_signal(1)") end
全車両のパトランプを点灯させ、サイレンを鳴らす ※パトランプのない車両は何も起きません。
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("electrics.set_lightbar_signal(2)") end
全車両のパトランプを消灯する ※パトランプのない車両は何も起きません。
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("electrics.set_lightbar_signal(0)") end
アンダーネオンを点灯する ※未装備の車両は何も起きません。
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("electrics.values.underglow = 1") end
アンダーネオンを消灯する ※未装備の車両は何も起きません。
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("electrics.values.underglow = 0") end
AI系の操作
個別の車両のAIを設定する ※車両毎のコンソール用のコマンド
ai.setMode('<モード名>')
※モードには、’flee’、’chase’、’follow、’traffic’、’random’が指定可能です。
個別の車両のAIを停止する ※車両毎のコンソール用のコマンド
ai.setMode('disabled')
カスタムのトラフィックを生成する
gameplay_traffic.setupTraffic(maxAmount, policeRatio, extraAmount, parkedAmount)
maxAmount: 車両台数。0以上の整数値を指定。-1を指定した場合はオプションの設定値に従う。
policeRatio: パトカーの比率。0.0~1.0の数値を指定。(0.0=パトカー無し, 1.0=全車パトカー)
extraAmount: 追加車両の台数。maxAmountと何が違うのかよくわからない。。。0を設定しておけばとりあえず問題なさそう。。。
parkedAmount: 駐車車両の台数。0以上の整数値を指定。-1を指定した場合はオプションの設定値に従う。
例えば全車パトカーで10台のトラフィックを生成したい場合は以下gameplay_traffic.setupTraffic(10, 1.0, 0, 0)
トラフィックを消去する
gameplay_traffic.deleteVehicles()
個別のトラフィックAIの役割を変更する
gameplay_traffic.getTrafficData()[<車両のID>]:setRole('<ロール名>')
※車両のIDには役割を変更したい車両のID(車両毎のコンソールで表示される数字のことです)を入力してください。
※ロール名は、’police’(パトカー), ‘suspect’(容疑者), ‘standard’(一般車両), ‘service’(働く車?)が指定可能です。
全車両をパスに沿って走らせる
for vid, veh in activeVehiclesIterator() do veh:queueLuaCommand("ai.driveUsingPath{wpTargetList={'xx', 'yy'}, noOfLaps = 1, aggression = 1.0}")) end
※このコマンドは話が長くなるので詳細は以下の個別記事を参照してください。
その他
全車両をリセットする(スキンも修復)
for vid, veh in activeVehiclesIterator() do veh:requestReset() veh:resetBrokenFlexMesh() end
※BeamNG.driveではshift + Rで全車両リセットができるのですが、スキン(メッシュ?)が正常に修復されない場合があります。
そんな時に上記のコマンドが便利です。
全車両をスキン込みで修復可能です。
コメント / COMMENT