Skip to main content
Physics Frame Codegen は、Physics Sensor 自体が計測する点(ビークル上のセンサー設置位置)とは別に、そこから相対的にずれた任意の点を「仮想オフセット」(内部的には「フレーム」と呼びます)として何個でも定義できます。ローター先端、カメラ、武装位置など、Physics Sensor を物理的に置いていない場所の位置・速度・向きを計算したい場合に使います。

オフセットカードを追加する

中央カラムの「+ 仮想オフセットを追加」をクリックすると、新しいカードが追加されます。カードのヘッダーで名前を入力できます。名前は生成される Lua コードの変数名の一部に使われるため、[A-Za-z0-9_] 以外の文字は自動的に _ に置き換えられ、先頭の数字などは取り除かれます(例: rotor-A → rotor_A)。同じ名前のカードが複数あっても動作しますが、生成コードでは2個目以降に _2 のような連番が付き、中央カラム上部のバッジに 名前重複: <名前> と表示されます。 カード右上のボタンで、カードの複製(オフセット・出力設定をまるごとコピー)や削除もできます。

オフセットを入力する

各カードの「Offsets」で、Physics Sensor の基準点からの相対位置と相対回転を入力します。
静的オフセットの角度(Pitch/Yaw/Roll)は、右上の「動的角度単位」設定に関わらず常に度数法です。度数法/ラジアンの切り替えは、後述する動的オフセットの実行時引数にのみ影響します。

静的オフセットと動的オフセット

カードヘッダーの「動的」チェックボックスで、そのオフセットが Physics Sensor に対して固定されているか、tick ごとに変化するかを切り替えます。
オフセット値はカードに入力した固定値としてコードに直接埋め込まれます。回転角度もあらかじめ数値として計算されるため、Pitch/Yaw/Roll がすべて0の場合は回転行列自体が生成されず、コード量を抑えられます。ローターの取り付け位置のように、ビークルに対して常に同じ位置・向きにある点に向いています。

関数の引数

生成される関数の引数は、動的オフセットに設定したカードだけが、定義した順番で並びます。静的オフセットのみの構成では引数のない関数になります。
Lua には名前付き引数がないため、呼び出し側は定義順を意識して6要素配列を渡す必要があります。 出力する物理量の選び方は、出力リファレンス を参照してください。