> ## Documentation Index
> Fetch the complete documentation index at: https://docs.makkii.jp/llms.txt
> Use this file to discover all available pages before exploring further.

# センサーとアクチュエータ

> 物理状態をロジック信号に変換するセンサーと、ロジック出力を動作に変換するアクチュエータ

センサーは物理的な状態をロジック信号（主に Number）に変換し、アクチュエータはロジック出力を物理的な動作に変換します。センサーの評価はロジック評価の直前、アクチュエータの目標値の更新はロジック評価の直後に行われます（[ティックと信号伝播](/stormworks/logic/tick-order) を参照）。

## 単純な出力を持つセンサー

| センサー                  | 出力              | 単位・範囲                                              |
| --------------------- | --------------- | -------------------------------------------------- |
| Altimeter             | Number          | メートル。海面基準（海面 = 0、上空が正）                             |
| GPS Sensor            | Number×2 (X, Y) | メートル。X = 東が正・西が負、Y = 北が正・南が負                       |
| Linear Speed Sensor   | Number          | m/s。4つのモードあり（下記）                                   |
| Angular Speed Sensor  | Number          | turns/s（1回転 = 1.0）。ブロックのローカル上方向まわりの角速度             |
| Tilt Sensor           | Number          | turns、-0.25〜+0.25（= ±90°）。設置時に矢印が示す方向を基準とした1軸の傾き   |
| Compass Sensor        | Number          | turns、-0.5〜+0.5。北 = 0、東 = -0.25、南 = ±0.5、西 = +0.25 |
| Clock                 | Number          | 0〜1 の日内時刻（0 = 深夜0時、1 = 翌日の深夜0時）                    |
| Fluid Pressure Sensor | Number          | 接続された配管の流体圧力                                       |

### Linear Speed Sensor のモード

| モード         | 計算内容                |
| ----------- | ------------------- |
| Absolute    | 速度ベクトルの大きさ          |
| Directional | 速度ベクトルとブロックの前方向との内積 |
| Horizontal  | 水平成分のみの速度の大きさ       |
| Vertical    | 垂直方向の速度成分           |

### Tilt Sensor

設置時にブロックが示す矢印方向を基準に、水平線からの角度を測ります。前方向が水平なら 0、真上を向けば +0.25、真下を向けば -0.25 になります。ロール軸・ピッチ軸のどちらを測るかは、センサーの設置向きで決まります（1つのセンサーは1軸のみ測定します。ヨー軸には Compass Sensor を使います）。

## Physics Sensor

1台で位置・回転・速度をまとめて取得できるセンサーです。Composite 信号の Number チャンネル1〜17に出力します（Boolean チャンネルは使用しません）。

| チャンネル | 内容             | 単位              |
| ----: | -------------- | --------------- |
|   1〜3 | ワールド位置 X, Y, Z | メートル            |
|   4〜6 | オイラー回転 X, Y, Z | ラジアン            |
|   7〜9 | 線速度 X, Y, Z    | m/s             |
| 10〜12 | 角速度 X, Y, Z    | rad/s           |
|    13 | 絶対線速度          | m/s             |
|    14 | 絶対角速度          | —               |
|    15 | ローカル Z 軸の傾斜    | turns           |
|    16 | ローカル X 軸の傾斜    | turns           |
|    17 | コンパス方位         | turns、-0.5〜+0.5 |

チャンネル15〜17（ロール・ピッチ・コンパス）は Physics Sensor 自身が算出する値で、他のセンサーへの依存関係はありません。

<Warning>
  Physics Sensor は電力を必要とします。電力が不足していると、ワールド位置（チャンネル1〜3）の3つだけが `0` になります。速度・角速度・傾斜・コンパス方位は電力不足でも出力され続けます。値が `0` の場合、実際に原点にいるのか、電力不足で `0` になっているのかを区別できないことに注意してください。
</Warning>

## Radar

Radar は Composite 信号で、最大8ターゲットまでを検出します。ターゲット `N`（0始まり）はチャンネル `N×4+1` から4つの Number チャンネルを使い、対応する Boolean チャンネル `N+1` がターゲットの検出有無を表します。

| オフセット | 内容           | 単位    |
| ----: | ------------ | ----- |
|    +0 | 距離           | メートル  |
|    +1 | 方位角（左が負、右が正） | turns |
|    +2 | 仰角（上が正、下が負）  | turns |
|    +3 | 検出からの経過時間    | ティック数 |

検出可能距離は、ターゲットの質量とレーダーの最大探知距離から決まる次の関係に近似できます。

```text theme={null}
検出距離 ≈ (ターゲット質量 / 250) × レーダーの最大探知距離
```

レーダーの種類ごとに最大探知距離と同時追尾数が異なります。

| 種類                           |    最大探知距離 | 同時追尾数 |
| ---------------------------- | --------: | ----: |
| Radar（標準）                    |   5,000 m |     1 |
| Radar Dish（標準）               |  20,000 m |     1 |
| Radar Large                  |  20,000 m |     1 |
| Radar Huge                   |  50,000 m |     8 |
| Radar Advanced (Basic)       |  60,000 m |     8 |
| Radar Advanced Missile       |  20,000 m |     8 |
| Radar Advanced Missile Laser |   5,000 m |     8 |
| Radar Advanced Phalanx       | 100,000 m |     8 |
| Radar Advanced Dish          | 200,000 m |     8 |
| Radar Advanced AWACS         | 500,000 m |     8 |

<Note>
  距離・方位角・仰角の値には毎回わずかなランダムなノイズが加わります。距離には約±1%、方位角・仰角には約±0.001 turn の誤差が乗ります。
</Note>

## 距離センサー

| センサー                  | 最大測定距離 | 検出なし時の値 |
| --------------------- | -----: | ------- |
| Distance Sensor       |  500 m | 500 m   |
| Laser Distance Sensor | 4000 m | 4000 m  |

## その他のセンサー

| センサー               | 出力              | 内容                                                       |
| ------------------ | --------------- | -------------------------------------------------------- |
| Wind Sensor        | Number×2        | 風向・風速 (m/s)                                              |
| Rain Sensor        | Number          | 0（晴天）〜1（雷雨）                                              |
| Temperature Sensor | Number          | 摂氏                                                       |
| Player Sensor      | Number + On/Off | 検出範囲内の人数と検出有無。球形・半球形、対象（全員/プレイヤー/NPC）、半径 0.25〜10 m を設定可能 |
| Torque Meter       | Number×2        | 動力軸の回転数 (RPS) とトルク                                       |

## アクチュエータ

ロジックの出力は、物理的な動作の目標値に変換されます。目標値の更新はロジック評価の直後、物理更新の直前に1回だけ行われ、そのティックの間は固定されます。

| ブロック           | ロジック入力                               | 入力範囲          | 変換される動作                        |
| -------------- | ------------------------------------ | ------------- | ------------------------------ |
| ディーゼルエンジン      | Number (throttle) + On/Off (starter) | 0.0〜1.0       | モーターの目標回転速度。回転数が一定値を下回るとストールする |
| クラッチ           | Number                               | 0.0（切）〜1.0（繋） | 伝達トルクの係数                       |
| Robotic Pivot  | Number                               | -1.0〜+1.0     | 目標角度（-90°〜+90°に対応）             |
| Velocity Pivot | Number                               | —             | 回転速度。出力側に現在角度を返す               |
| ピストン           | Number                               | —             | 目標伸縮位置                         |
| Linear Track   | Number                               | —             | トラック上の目標位置                     |
| ラダー・エルロン       | Number                               | —             | 目標角度                           |
| ウインチ           | Number                               | —             | ケーブルの繰り出し・巻き取り                 |
| マグネット          | On/Off                               | —             | 磁力の On/Off                     |
| パワードドア・ハッチ     | On/Off                               | —             | 開閉                             |
| パラシュート         | On/Off                               | —             | 展開                             |
| 流体制御バルブ        | Number または On/Off                    | 0.0〜1.0       | 流量制御                           |
| 流体ポンプ          | On/Off                               | —             | ポンプの On/Off                    |
| ライト            | On/Off                               | —             | 点灯・消灯                          |


## Related topics

- [ティックと信号伝播](/stormworks/logic/tick-order.md)
- [ロジックブロック](/stormworks/logic/logic-blocks.md)
- [マイクロコントローラー XML](/stormworks/logic/microcontroller-xml.md)
- [Lua スクリプトブロック](/stormworks/logic/lua-api.md)
- [信号モデル](/stormworks/logic/signal-model.md)
