arma3でチキンクリスプ食べながらスクリプト

arma3のエディッタ向けスクリプトを自分用に投稿

Arma3 Oldmanのやっかいなダイナミックシミュレーション距離について

2020/10/05 追記あり

今回はOldmanのダイナミックシミュレーションを変更してみたいと思う

Oldmanをプレイしていると色々な集落にCSATが出現したりsyndikat(Oldmanでは"L'Ensemble")が遺跡に拠点を構えていたりする
常時出現しているわけではなく、一定の距離に近づくと出現するようにモジュールで設定されているのだ
ではどのように設定されているのか

これはタノア北のある地域の画像

「S」と書かれたモジュールに注目してもらいたい
トリガーのように黒の実線で範囲が囲ってあるのが分かると思う
これがOldmanの独自システムの一つであるセクションである
f:id:question_and_life:20201004185431j:plain

これがどのように設定されているのか次の画像を見てもらいたい
これは画像中央に置かれたセクションの設定画像だが、距離に注目してもらいたい
出現、車両出現、空中出現とあり、すべてプレイヤーと境界線までの徒歩の距離を設定している
f:id:question_and_life:20201004185914j:plain

つまり200mとなっているのは地表面上にいるプレイヤーの距離が境界線から200m内に入ったときにセクターが出現するということ
車両出現は境界線から設定の距離の範囲内に入った時に車両が出現する
空中についてはプレイヤーが航空機に乗っている時に有効となる距離になる
f:id:question_and_life:20201004190535j:plain


しかしセクターが出現したからと言ってもただユニットが出現したに過ぎない
実はOldmanには独自のDynamicSimulationが設定されているようなのである
DynamicSimulationとはプレイヤーとの距離に応じてユニット等の処理を一時停止させる機能
これによって一時停止している場合、プレイヤーが対象に射撃をしてもまったく動かなくなる
しかし、一時停止が解かれユニット等の動作が再開されると再び動き出し、その間に銃撃を受けていた場合はその時にダメージが通る仕組みになっている
プレイヤーから一定の範囲から離れたものに対して処理を停止することで負荷の軽減を図っているのだ

したがってある程度離れてしまうと狙撃しようと思ったときにユニットが動作を停止してしまっている場合がある

そこで次のコードを実行して無理矢理にダイナミックシミュレーションの距離を伸ばしてしまうことにした


"Group" setDynamicSimulationDistance 1200;
"Vehicle" setDynamicSimulationDistance 840;
"EmptyVehicle" setDynamicSimulationDistance 600;


追記ここから
このようなシステムになっているのは各エリアのセクションごとにユニットや車両が多く配置されており、さらに細かい道具が配置されて演出されており負荷が高くなるためにこうなったとOPREPに書かれていた
dev.arma3.com