新AI解説

Last-modified: 2022-01-27 (木) 12:49:28

編集時Ver. 3.4.2

Ver.2.4にて内容が大幅に変更されたため、新しいページを設置。旧バージョンでの構築方法についてはこちらを参照のこと。

概要

dev2.4で変更された新AIについての解説。それ以前の情報についてはこちらを参照。
Behavioursでどこ(where)へ行くかを決定し、
Manoeuvreでどのように(how)移動するかを決定する。
手動で目的地を設定する場合はBehavioursは必須ではない。

 

狙った動作をさせるためには推進機の設定が必要なので確認しよう。
例外はあるがプリセットで大抵は事足りる。

 

ここではAIによる操艦の説明をしているので武器の操作索敵は別ページへ。

パーツ説明

パーツ名説明
Frontal hovercraft AI自動でAI設定をしてくれる。BehavioursはPoint at、ManoeuvreはHover movement
Circling hovercraft AIBehavioursはCircle、ManoeuvreはHover movement
Circling airplane AIBehavioursはCircle、ManoeuvreはAirplane movement
Bombing run hovercraft AIBehavioursはBombing run、ManoeuvreはHover movement
Bombing run airplane AIBehavioursはBombing run、ManoeuvreはAirplane movement
Behaviours & Additional Routins追加でBehavioursやAdditionalを設定できるようになる

組み立て方

Behaviours

  1. Available Behavioursから一つ選んで左クリック
  2. Selected Behavioursの左から2番目のアイコンを左クリックし、ビヘイビア名の右に緑字で(active)になっていることを確認。
  3. Selected Behavioursのビヘイビアを右クリックすると設定画面が開く。
    ※AIタブ内Card Slotの右にある(CARD)Behaviours & Additional RoutinesをCard Slotに接続すると、選択できる数が増える。

Manoeuvre

Behavioursと同様

Additional

Behavioursと同様
※AIタブ内Card Slotの右にある(CARD)Behaviours & Additional RoutinesをCard Slotに接続すると、選択できる数が増える。

PIDs

  1. AIPID(AIタブ内のPID)をMainframeと繋げて設置する。
  2. AIPIDにカーソルを当ててQキーを押下し、設定画面を開く。
  3. ドロップダウンリストからPitchやRollなど任意の項目を選択する。
  4. PID設定画面を閉じるとVehicle AI Customisation画面(Mainframeの設定画面)に戻る。
  5. 先ほど選択したPitchやRollの項目が緑字になっていることを確認。
  6. Edit 〇〇 Controllerを左クリック(または右クリック)でPID値設定画面が開く。

Basic settings

Mainframeに名前を付けられる。

UI解説

Behaviours

Attack run 2.0(with U-turn)(旧称「Bombing run」)

項目効果設定範囲
Pitch to target distance: ~~mこの距離以下になったら敵にピッチを向ける。0 -> 2000
Breakoff distance: ~~m高度に関係なくこの距離まで接近したら突入を終了する。1 -> 1000
Breakoff altitude (above sea level): ~~m海抜高度がこの値を下回った場合は、突入を終了する。 海上ビークルと交戦する際に重要な安全機能。-1000 -> 1000
Reengage distance: ~~mこの距離まで離れたら再度突入する。1 -> 5000
Reengage time: ~~sこの時間が経過したら再度突入する。0 -> 120
Abort timer start distance: ~~mこの距離が開いたらAbort timeの時間突入を中断。0 -> 1000
Abort time: ~~sAbort timer start distanceで設定した距離より離れてから突入を中断する時間。0 -> 120
Combat altitude: ~~m戦闘中に飛行する高度。-500 -> 3000
項目効果
Altitude relative to sea level戦闘高度の基準を海面にする。
Altitude relative to target戦闘高度の基準を現在照準している敵の高度にする。例:海抜50mにいる敵を照準している場合、高度を50+(Combat altitube)mに保とうとする。
Ignore altitude戦闘高度の設定を無視する。

Circle

項目効果設定範囲
Combat distance: ~~m戦闘距離。敵との距離をこの値に保ちながら旋回しようとする。0 -> 5000
Combat altitude: ~~m戦闘高度。基準点は下のセレクトボックスで変更できる。-500 -> 3000
Minimum approach angle: ~~°敵との距離を変更しようとする時に許される対敵角度の最大値。0°にすると敵に向かって真っ直ぐ突っ込むような経路を取って距離を変更するようになる。0 -> 180
Max roll to target: ~~°敵へのロール角の最小と最大。0 -> 90
Roll to target within azimuth: ~~°敵がこの範囲に居る場合、敵に向けて旋回する。0の場合は無効。0 -> 180
Upwards evasion altitude offset: ~~m戦闘高度から、上に回避する高度。0 -> 200
Downwards evasion altitude offset: ~~m戦闘高度から、下に回避する高度。0 -> 200
Evasion within azimuth: ~~°この方位角内に敵が居る場合、敵に対して90°を向けるように回避する。0 -> 90
項目効果
Altitude relative to sea level戦闘高度の基準を海面にする。
Altitude relative to target戦闘高度の基準を現在照準している敵の高度にする。
Ignore altitude戦闘高度の設定を無視する。船や地上車両などでCirleを利用する場合はこちらを選択すると良い。
Use both sides両舷どちらを敵に向けるか指定しない。
Left side only左舷のみを敵に向ける。
Right side only右舷のみを敵に向ける。

Point at

項目効果設定範囲
Max pitch to target:~~°敵へのピッチ角の最小と最大。0 -> 90
Disable pitch above azimuth to target: ~~°敵への方位角がこの角度より大きい場合、高度を保ったまま旋回する。0 -> 180
Left evasion time: ~~s左側に回避し続ける時間。0 -> 20
Right evation time: ~~s右側に回避し続ける時間。0 -> 20
Disable evasion above azimuth to target: ~~°敵への方位角がこの角度よりも大きい場合、回避をやめて旋回する。0 -> 90
Combat distance: ~~敵からこの距離を保とうとする。0 -> 5000
Combat altitude: ~~m戦闘中の高度。-500 -> 3000
Don't retreat when to closeONにすると近すぎる場合は現在の距離を維持する。ON/OFF
項目効果
Altitude relative to sea level戦闘高度の基準を海面にする。
Altitude relative to target戦闘高度の基準を現在照準している敵の高度にする。
Ignore altitude戦闘高度の設定を無視する。

Hover above/below

項目効果設定範囲
Hover above ~~m target: ~~戦闘中、敵の上下に取ろうとする高度。-1000 -> 1000

Broadside

項目効果設定範囲
Angle to maintain: ~~90で右舷を、-90で左舷を敵に向ける。-180 -> 180
Minimum distance: ~~最小接敵距離。敵との距離をこの距離以上にしようとするる。0 -> 1975※下の設定値-25が最大値
Maximum distance: ~~敵との距離をこの距離以下にしようとする。25 -> 2000※上の設定値+25が最小値

Broadside2.0

項目説明設定範囲
Start broadside below XXm. Start closing on target above YYm
XXm以下で舷側を向け始める。 YYm以上で目標に接近し始める。
ブロードサイディング/サークルは、ローワーレンジに入ると始まり、レンジがアッパーレンジを超えるまで続きます。 舷側を向けていないときは、ターゲットに近づいています。50 -> 5000
XXはYY-10m以下
Broadside minimum range ~~m
ブロードサイド最小距離~~m
最小接敵距離。敵との距離をこの距離以上にしようとする。0 -> 2000
Nominal broadside angle ~~°
基準ブロードサイド角度~~°
相手をブロードにするときに相手に対して保つ角度。 90° 未満の値はそれらに少し近づく傾向があり、90° より上の値は遠ざかる傾向があります。 90°は正確なブロードサイドです。0 -> 180

Charge

項目効果設定範囲
Disengage possible below ~~mこの距離を下回ると離脱を検討する。0 -> 100
Disengage when range increases by ~~m上記の距離以下かつ、この距離以上離れていくと離脱する。0 -> 50
Engage above ~~m敵との距離がこの距離を超えると再突入する。0 -> 1000
Disable adjuster below ~~m敵との距離がこの距離以内の場合、アジャスタ設定を無効にする。0 -> 2000

Naval

Ftd_old_school_naval_Behaviours.jpg
出典:https://twitter.com/seiryu_ksp/status/1101823207735156736

Ship or tankと組み合わせることで旧Naval AIに相当する

項目効果設定範囲
Enter broadside below ~~m rangeこの距離以下になったら敵艦との角度がNominal broadside angleで設定した角度になるように動く。40->2990(m)~~※下の設定値-10が最大値
Leave broadside above ~~m rangeこの距離以上になったらターゲットから離れすぎないよう敵へ艦首を向ける。50->3000(m)~~※上の設定値+10が最小値
Broadside minimum range ~~m最小接敵距離(?)~~この距離以下になった場合、全力で敵から逃げる模様。0->2000(m)
Nominal broadside angle ~~°敵艦へ接近する時の突入角度。~~0°で艦首を向け、90°で舷側を向ける模様。0->180(度)

Tank broadside

Ver.3.2.9で削除。
Navalとほぼ共通
↓追加項目

項目効果設定範囲
Idle approach distance ~~m周辺に敵が存在しない場合、友好的な艦に接近する距離。~~数字が低すぎると接触事故を起こす。20->500(m)
Cease movement below ~m range停止して攻撃のみを行う距離。~~自車を中心とした設定距離半径内に敵が入っている時、動きを止めて射撃のみを行う。0->2000(m)

Aerial bombing

FTD_Aerial_Behaviours.jpg
出典:https://twitter.com/seiryu_ksp/status/1101823207735156736

マニューバのPlaneと組み合わせることで旧Aerial AIに相当する。

項目効果設定範囲
Crusing altitude ~~m通常時航行高度。-500->2600(m)
Flyover height ~~m接敵時に使用する目標の上(または下)の高度。-100->500(m)
Begin attack run when beyond ~~m敵との距離が設定値以上になった場合、敵へ機首を向ける。10->2000(m)~~※下の設定値+50が最小値
Abort attack run when below ~~mこれ以上近づいたら攻撃を中止し離脱する。0->1000(m)~~※上の設定値-50が最大値
Wait ~~s before starting a new attack run攻撃の間が空いたら再度攻撃。(たぶん敵から逃げきれずにずっと攻撃できない対策項目)1->120(秒)

Resource gathering

 

ADJUSTMENTS

 

最低高度や最高高度を指定したりなど細かな調整をおこなうことができる。
航空機は調整が必要なことも多いだろう。

 

Select vehicle type

項目効果
Unset (gathers fresh defaults)ビークルタイプが設定されていない状態。BehaviourとManoeuvreから自動的に設定する。
On water (pathfind oceans, avoid other ships)船用の設定。
On land (pathfind land, avoid other ships)陸上ビークル用の設定。
In air(altitude compensation only, collision avoidance)飛行ビークル用の設定。
 

Collision avoidance

項目効果
Collision avoidance off衝突の回避をしない。
Avoid all vehicles全てのビークルと衝突を回避しようとする。
Avoid friendly vehicles友軍のビークルと衝突を回避しようとする。
 

Altitude clamping

項目効果設定範囲
Min. altitude above land ~~m地上からの最低高度。0->1000
Min. altitude above water ~~m水面からの最低高度。負の値にすると水中を移動できる。-200->1000
Max. altitude ~~m水面からの最高高度。-100->2000
 

Sea surface path-finding
On waterでのみ設定可能。

項目効果設定範囲
Allow Reverse後進の許可。OFFで後進しなくなる。ON or OFF
Allow upwind pathfinding風上に向かって走ることの許可。帆船の場合はOFFにしたほうがよい。ON or OFF

~~m water depth required

行動可能な海底の深さ。~~艦は設定値より浅い海域を避けようとします。マイナスにすると海岸に乗り上げる。-50->100
Turning circle ~~m艦の旋回半径。20->500
 

Land surface path-finding
On landでのみ設定可能。
Sea surface path-findingとほぼ共通。

項目効果設定範囲

~~m land height required

行動可能な陸の標高。マイナスにすると水中を移動する。-20->50
 

Extra options

項目効果設定範囲
Terrain height prediction time ~~s地形の高さの推定に使用する時間。地形に衝突しないように高度を調整する。0.5->10
 

Manoeuvre

Airplane movement

項目効果設定範囲
Maximum roll for banking turns: ~~°バンクターン中に機体を傾ける最大角度。0 -> 90
Banking turns above angle: ~~°目標との方位角がn度を超えたときにバンクターンをする。
つまり180度だとバンクしない。
0 -> 180
Banking turn gradual roll increase over: ~~°ロール角が最大になるまでに必要な旋回角。
0度だとできる限りすばやくロールする。
0 -> 180
Idle thrust: ~~%戦闘中でも指定された位置に移動中でもない時の出力。0 -> 100
Idle circling distance: ~~m何も指示が出されていない場合、最後のウェイポイントを中心にこの距離で旋回する。0 -> 2000
Max pitch for altitude control: ~~°上昇、下降時に機体を傾ける最大角度。0 -> 75

Pitch towards target pointとpitch to reach target altitudeの違いは、前者は機首を敵の位置に向けて進む、後者は敵と高度を合わせてから進む。

Hover movement

項目効果設定範囲
Yaw lock distance: ~~m戦闘中、指定されたされたウェイポイントまでの距離内での操舵にヨーを使用するのをやめ、前進と横移動のみを使用します。0 -> 1000
Disable forward/strafe above azimuth: ~~°敵がこの範囲に居ない場合上記の設定を無効にして左右を向く。0 -> 180
Pitch for forward/backwards movement: ~~°前後に移動する時の傾きの最大値。0 -> 45
Roll for left/right movement: ~~°左右に移動するの時の傾きの最大値。0 -> 45

Empty

名前の通り、本当に何もしないmaneouvre。
Breadboardなどでビークルを完全に制御したいときなど、AI系由来の挙動が邪魔なときに使う。

Six axis

目標地点に到達するために、ローリング、ピッチング、ヨーイングをしながら、前方に機銃掃射、ホバリング、スラストします。
この制御は、あなたの車両に機銃掃射とホバリングの能力がない場合には、希望通りに動作しない場合があります。
6つの制御モジュール(PIDなど)のすべてが使用されることに注意してください。

項目効果設定範囲
Look ahead ~~m指示された方向に進む距離。10->300
項目効果設定範囲
Use velocity instead of forwardONにすると、下の説明において"機首方向"や"機体の前"にあたる部分を全て"機体の進行方向"で置き換えた様な動作をするようになる。目標を出来るだけ機体正面に捉えたいならOFF, 目標に最短経路で接近したい場合にはONがおすすめ~~(機体の機首方向と進行方向がズレる様なビークルでないと差は出ないかも)ON or OFF
Wander distance ~~m待機地点で無限にくるくるしないための設定。設定距離を超えると旋回する。航空機は長めにしておく方が無難。6軸制御の場合は0推奨。0->500(m)
Order complete distance ~~m目的地に到達してから次の地点に移動するまでの間の距離。10->500(m)

Plane

項目効果設定範囲
Use velocity instead of forwardONにすると、下の説明において"機首方向"や"機体の前"にあたる部分を全て"機体の進行方向"で置き換えた様な動作をするようになる。目標を出来るだけ機体正面に捉えたいならOFF, 目標に最短経路で接近したい場合にはONがおすすめ~~(機体の機首方向と進行方向がズレる様なビークルでないと差は出ないかも)ON or OFF
Wander distance ~~m待機地点で無限にくるくるしないための設定。設定距離を超えると旋回する。航空機は長めにしておく方が無難。6軸制御の場合は0推奨。0->500(m)
Order complete distance ~~m目的地に到達してから次の地点に移動するまでの間の距離。10->500(m)
項目効果設定範囲
Start turnig when the angle deviation is over ~~°機体の前n度以内(見下ろした際に機体の前側n度以内)にターゲットが存在しなければ(ヨーイングでの(?))ターン。0->180(度)
Roll to turn if angle deviation is over ~~°同上の時、機首方向と目標との角度がn度を超えたら機体を傾け(ロールし)てターンする。ロールの条件を満たすと通常の旋回は一切しなくなるので、機体が傾かなかったり上昇力が低かったりする場合、曲がれずに直進し続けてしまう。設定値を180度にすればヨーイングのみを利用した旋回をするようになる。0->180(度)
The most extreme roll angle is ~~°機体を傾けて(ロールして)ターンする時の傾ける最大角度 ~~(90°だと地面に対して機体を直角に倒した状態で旋回する。旋回しながら攻撃したいなら要調整)0->145(度)

Ship or tank

項目効果設定範囲
Use velocity instead of forwardONにすると、下の説明において"機首方向"や"機体の前"にあたる部分を全て"機体の進行方向"で置き換えた様な動作をするようになる。目標を出来るだけ機体正面に捉えたいならOFF, 目標に最短経路で接近したい場合にはONがおすすめ~~(機体の機首方向と進行方向がズレる様なビークルでないと差は出ないかも)ON or OFF
Wander distance ~~m待機地点で無限にくるくるしないための設定。設定距離を超えると旋回する。航空機は長めにしておく方が無難。6軸制御の場合は0推奨。0->500(m)
Order complete distance ~~m目的地に到達してから次の地点に移動するまでの間の距離。10->500(m)
項目効果設定範囲
Allow hoverONにすると'up/down(hover) axis'に設定された推進機を使って高度調整をするようになる。ON or OFF
Use Pitch ControlsOFFの場合、次の項目で設定した範囲内になるように前進の推力を調整する。
ONの場合、次の項目で設定した値になるようにpitch軸に割り当てられた推進機を操作する。
ON or OFF
Ideal Pitch angle [°]設定した角度になるように推力を調整する。-45 -> 45
Idle distanceビークルが最終ウェイポイントに対して移動を停止する距離。 ウェイポイントからの距離が増加し始めると停止する。0 -> 200

Fortress manoeuvre

設定項目は無いが、これを選択しないとフォートレスを動かすことは出来ない

 

Additional

Turuster balancing

必要な場合、1秒に1回、前進方向のスラスターの調整を行います。
車両がスラスターにダメージを受けると、バランスを保つために残りのスラスターから出る力を調整します。

 

Sailing

ほぼ機械翻訳ですが載せておきます、誰か修正してくれたら嬉しい。
コメントで原文置いときます。

 

Sailing AIは、名前付きリクエストでビークルにリクエストを送信します。

sailpositionと呼ばれるリクエストは、船の左側に帆を張って走っているときは-1、右側に帆を張って走っているときは1に設定されます。

0は、帆が船に近い(船に沿った)状態である必要があることを意味します。
これに反応するときは、リスナーは'瞬時'に設定してください。

sailrollと呼ばれるリクエストは、ビークルが水平になると1に設定され、ビークルのロールが45度を超えると0になります。

セイルウィンチはこれを聞くことができ、瞬時に設定してください。
ロールが高くなりすぎたときにセイルサイズを小さくすることで、船が転覆しないようにすることができます。

 

FTD Water Start

着水時に熱気球を展開するための設定。

項目効果設定範囲
Start process below ~~m altitudeこの高度以下なら熱気球を展開する。-15 -> 100
Stop process above ~~m altitudeこの高度以上なら熱気球を切り離す。-15 -> 100
 

Ftd sailing

セイルウィンチやセイル付きスピンブロックをコントロールします。
スピンブロックは、ビークルの前を向くように設置します。
三角帆は前後軸に沿って、四角帆は左右軸に沿って配置します。

項目効果設定範囲
Ignore rolls below ~~°設定された角度より傾きが小さいと帆をたたむ。0 -> 55
Avoid rolls above ~~°設定された角度より傾きが大きいと帆をたたむ。5 -> 60
 

Projectile avoidance

発射体が100m以内で検出されたときに「E」制御軸をトリガします。
加筆求む

 

PIDs

PIDの調整についてはこちら
各マニューバが使用できる推進軸は以下の通り。

Manoeuvre\ControllerYawPitchRollForwardBackStrafeHover
Airplane movement××
Hover movement
Six axis
Plane××
Ship or tank××

※Allow hoverやUse Pitch Controlsの設定による

 

Basic settings

Mainframe name

AIネームを変更可能。
但し、現在半角文字以外は正しく記録できず、頻繁に「?」に置換されてしまうバグが残っています。

設定例

なんかよくわからんがとりあえず動くのよこせって人向け

ShipAIExample01B.jpgShipAIExample01M.jpg
接近・退避時に敵に対して60度を取りつつ、できるだけ1000mの距離を保とうとする。

Tips

旧AIカードについて

インベントリからは削除された模様……
ブロック自体は残っているようで、対応した設定が自動でメインフレームに適応される。

AIではなくGPPIDやACBで操作をしたい場合

制御器への出力命令を0に設定することでAIからの命令を実質的に無視できる。
TypeからNoneを選び出力を0にすることでPIDブロックの追加は不要。
AIPIDのKpゲインを0にすることでも可能。

暗黙のwaypoint

当記事冒頭の概要で説明されているように、

Behavioursでどこ(where)へ行くかを決定し、

Manoeuvreでどのように(how)移動するかを決定する。

のですが、殆どのBehavioursは戦闘用のため、敵を認識しなければ次の行き先を示してくれません。
とりわけ、デザイナーモードでビークルを制作中の間は基本的に敵に遭遇しないので、行き先が全く不明という状況が生じます。
これではFtDの方が処理に困るので、"ビークルの出現位置に仮の行き先"が設定されているようです。
この仮の行き先には特に定まった呼び方がないので、ここでは仮に"暗黙のwaypoint"と呼んでいます。

敵が居ないと動作しないBehavioursに対して、AIがONの状態ならば、Manoeuvreによるビークルの制御は常時作動しています。
このため、暗黙のwaypointに対して、Manoeuvreの設定に従った振る舞いを見せます。
例えば、Hover movementが設定されたビークルは出現位置に留まるように動こうとします。

このようなBehavioursとManoeuvreの振る舞いの違いを認識しておくと、デザイナーモードでのAI設定作業がちょっとやりやすくなるかもしれません。

コメント

  • Order complete distance ~~mはパトロールコマンド時に指定地点を中心に~~mまでの距離に近づいたら条件をクリアする設定だと思います(間違ってたらごめんなさい -- 2019-04-13 (土) 16:23:31
  • Combat distance を設定してもあんまりうまく距離を保ってくれない気がするのですがどうすればよいのですか? -- 2019-10-19 (土) 16:35:54
  • 目標地点まで動かすためには何をどうしたらいいんです? -- 2019-12-09 (月) 21:57:51
  • airplane movementの解説にあるバンクターンというのは、ロール軸を使いながらの旋回という解釈でいいんでしょうか -- 2020-11-18 (水) 00:55:45
  • Broadside2.0 を追加。 -- araki? 2021-06-04 (金) 20:08:44