Skip to main content
フィールドは、パケットに詰め込む値 1 つぶんの定義です。それぞれ「送信側 MC のどのチャンネルから読むか」と「どんな値を取り得るか」を持ちます。

チャンネルスロットとフィールドの関係

中央カラムには Bool (1〜32) と Number (1〜32) それぞれ 32 個のチャンネルスロットグリッドがあります。
  • 空きスロットをクリックすると、そのスロットにフィールドを新規作成します。
  • 設定済みのスロットをクリックすると、右側のフィールド設定パネルで編集できます。
  • スロット同士はドラッグ&ドロップで入れ替えたり、別のチャンネルに移動したりできます。
ここでのスロット番号は、そのフィールドの sourceChannel (送信側 MC 上でのソースチャンネル) です。input.getNumber(sourceChannel) / input.getBool(sourceChannel) で読み出す元のチャンネルであり、パッキング後に実際にデータが流れる送信/受信チャンネル (パケット設定の 送信CH / 受信CH) とは別の値です。
名前欄を空にして確定すると、そのスロットのフィールド設定は解除されます (トースト「名前が空のためスロットの設定を解除しました」)。

フィールド設定パネル

フィールドを選択すると、以下を編集できます。
  • 変数名: 生成される Lua コードで <受信テーブル変数名>.<変数名> として使われる識別子です。Lua の識別子として不正な文字は、コード生成時に自動的にサニタイズされます。
  • ⧉ 設定パラメータをコピー / 📋 ペースト: 範囲・精度パラメータ (min/max/step/rounding/threshold/rangeMode) を他のフィールドに使い回せます。Bool 型のフィールドには数値設定をペーストできません。
  • ✕ 削除 (無設定にする): フィールドの設定を解除します。
数値フィールド (kind: "number") では、さらに以下を設定します。
  • Min / Max / Step: 値の取り得る範囲と刻み幅です。(Max - Min) が Step の整数倍になっている必要があります。
  • 端数処理 (rounding): 刻み幅の間の値をどちらの段階に丸めるかです。四捨五入 (Nearest) / 切り捨て (Floor) / 切り上げ (Ceil) / 指定閾値 (Threshold) から選べます。指定閾値を選ぶと、0〜1 の閾値を追加で指定できます (例: 0.3 なら端数が 0.3 未満で切り捨て、以上で切り上げ)。
  • 範囲外処理 (rangeMode): 実際の入力値が Min/Max の範囲外だった場合の扱いです。
Bool 型のフィールド (kind: "bool") では Min/Max/Step/端数処理/範囲外処理は使われません。
範囲外検知 (Overflow) を使うフィールドは、受信側の Lua で rx.<変数名> が -math.huge / math.huge になり得ることを前提にコードを書く必要があります。バグではなく仕様です。

パッキングへの影響

各フィールドは、範囲と刻み幅から「取り得る状態数」に変換されます。数値フィールドなら floor((Max - Min) / Step) + 1 通り (Overflow の場合はさらに 2 通り追加)、Bool フィールドなら 2 通りです。パケット全体の状態数はこの積になり、パッキング先のチャンネル数や方式を左右します。仕組みの詳細は パッキング方式 を参照してください。