> ## 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.

# 出力リファレンス

> 各オフセットカードで選択できる出力項目と、生成される Lua 変数の一覧

各仮想オフセット（フレーム）のカードでは、「Outputs」欄で出力したい物理量を軸ごとにチェックします。チェックした軸だけがコードに生成され、未選択の項目の計算処理は可能な限り省略されます。

## 変数名の規則

生成されるコードは、オフセットカードの名前をもとにした `local` 変数として出力されます。命名規則は次のとおりです。

```
<オフセット名>_<出力項目>_<軸>
```

例えば `rotor` という名前のカードで World Pos の Y 軸を選ぶと `rotor_world_y` という変数になります。これらの変数は `onDraw()` など、同じ Lua チャンク内の他の関数からもそのまま参照できます。開発中は可読性のためにこの命名を保ちますが、Lua minifier に通せば識別子は短縮されます。

## 出力項目一覧

| UI 表示         | 設定 JSON のキー           | 生成される変数のサフィックス         | 意味                                                                          |
| ------------- | --------------------- | ---------------------- | --------------------------------------------------------------------------- |
| World Pos     | `world`               | `world`                | オフセット点のワールド絶対位置（メートル）                                                       |
| Local Vel     | `linear`              | `linear`               | オフセット点の速度を、そのオフセット自身の回転（オフセットの Pitch/Yaw/Roll、または動的オフセットの回転）を基準にした座標系で表したもの |
| World Vel     | `worldLinear`         | `world_linear`         | オフセット点の速度をワールド座標系で表したもの                                                     |
| Local Accel   | `acceleration`        | `acceleration`         | オフセット点の加速度を、オフセット自身の回転を基準にした座標系で表したもの                                       |
| World Accel   | `worldAcceleration`   | `world_acceleration`   | オフセット点の加速度をワールド座標系で表したもの                                                    |
| Angular Vel   | `angular`             | `angular`              | オフセット自身の回転を基準にした角速度（ch10〜12 の値をそのまま座標変換したもの）                                |
| Angular Accel | `angularAcceleration` | `angular_acceleration` | オフセット自身の回転を基準にした角加速度                                                        |
| Euler         | `euler`               | `euler`                | Physics Sensor のワールド向きにオフセットの回転を合成したオイラー角（ラジアン、X=pitch/Y=yaw/Z=roll）        |
| Tilt          | `tilt`                | `tilt`（X/Y/Z/Roll）     | 傾きセンサ相当の出力。値は `atan(...)/ TAU` 相当のturn単位（おおむね -0.5〜0.5）                     |
| Compass       | `scalar.compass`      | `compass`              | コンパス方位相当の出力（turn単位。ch17 直利用でない場合は `-atan(...)/TAU` なのでおおむね -0.5〜0.5）        |
| Speed         | `scalar.speed`        | `speed`                | オフセット点の速度の大きさ（m/s）。座標系に依存しないため World/Local の区別はありません                        |
| AngSpeed      | `scalar.angularSpeed` | `angular_speed`        | Physics Sensor 自体の角速度（ch10〜12）の大きさ。オフセットには依存しません                            |

<Note>
  すべて Stormworks の Composite Input と同じ「右・上・前方向 (+X/+Y/+Z)」の座標系を基準にしています。ワールド座標系は左手系です。
</Note>

## World Pos と位置自動補完

`World Pos` を1つ以上選択すると、Physics Sensor の Composite Input ch1〜3（世界座標系の位置）を読み取ります。[設定リファレンス](/physics-codegen/reference/settings)の「1-3=0位置自動補完」を有効にしていると、ch1〜3 がすべて0の tick（Physics Sensor に電力が供給されていない場合など）では位置をそのまま信用せず、直近の速度を積分して補完します。

## Tilt / Compass と ch15〜17直利用

そのオフセットが**静的かつ回転オフセットが0**（Pitch/Yaw/Roll すべて0）の場合に限り、[設定リファレンス](/physics-codegen/reference/settings)の「ch15-17直利用」を有効にすると、`Tilt Z` は ch15、`Tilt X` は ch16、`Compass` は ch17 から直接値を読み取り、`math.atan` を使った計算式を省略できます。`Tilt Y` は直利用の対象外で、常に姿勢行列から計算されます（`Tilt Roll` は Tilt X と Tilt Y から求めるため、Tilt X 側のみ直利用されます）。動的オフセットや回転がある静的オフセットでは、すべて姿勢行列から計算されます。

## Local Vel / World Vel、Local Accel / World Accel の違い

`linear`（Local Vel）と `acceleration`（Local Accel）は、そのオフセット自身の回転（静的オフセットの Pitch/Yaw/Roll、または動的オフセットの回転引数）を基準にした座標系での値です。回転オフセットが0の静的オフセットでは、Physics Sensor 自体のローカル座標系（Composite Input ch7〜9・角速度由来の加速度）とそのまま一致します。

`worldLinear`（World Vel）と `worldAcceleration`（World Accel）は、Physics Sensor の姿勢行列（ch4〜6由来）で回転してワールド座標系に変換した値です。オフセット自身の回転オフセットには影響されません。

加速度（Local Accel / World Accel）は Composite Input から直接取得できないため、対応する速度成分を毎tickの差分から `(今回の値 - 前回の値) * 60` として算出しています（Stormworks のマイクロコントローラーは60Hzで `onTick` を実行するため）。この差分計算用の変数は関数の外（チャンクスコープ）に永続的に保持されます。


## Related topics

- [仮想オフセットを設定する](/physics-codegen/guides/frames.md)
- [Physics Frame Codegen](/physics-codegen/index.md)
- [使い始め方](/physics-codegen/quickstart.md)
- [CLI リファレンス](/stormmin/reference/cli.md)
- [設定リファレンス](/physics-codegen/reference/settings.md)
