Skip to main content
マイクロコントローラー(MC)の内部回路は、ビークル XML の中に <microprocessor_definition> 要素としてインラインで埋め込まれます。このページでは、その内部データ構造をまとめます。

全体構造

属性

id_counterid_counter_node は「次に配る ID」ではなく、それぞれの系列で過去に配った最大 ID を保持する値です。ブロックを削除しても値は減りません。オブジェクト系列(<object id>)とノード系列(<n id>)は別の ID 空間で、同じ数値が両方に同時に存在することがあります。

sym0〜sym15 — サムネイルアイコン

マイクロコントローラーのインベントリや選択時に表示される、16×16 ピクセルの2値ビットマップです。symN(N=0〜15)が1行を表し、各行は16ビットの整数値です。最上位ビット(1 << 15 = 32768)が一番左のピクセル、最下位ビット(1 << 0 = 1)が一番右のピクセルに対応します。

内部ブロック <components>/<c type="N">

内部のロジックブロックは、type 属性の数値でブロック種別を表します。<object> が実体で、ID・座標・入力ピン・種別ごとのプロパティを持ちます。

ブロック種別 ID(type 0〜59)

type 29〜32 は旧世代の Composite ブロックで、互換性維持のためゲーム内に残っています。現在配置できる Composite Write は type 40/41 です。
Lua Script(type 56)のピン構成は固定で、in1 = Composite 入力、in2 = Video 入力、out1 = Composite 出力、out2 = Video 出力です。

配置座標

内部エディタのグリッドは 0.25 単位です。ノードブロックの幅は 1(4マス)です。配置の Y 座標は底辺基準で、高さの異なるブロックを同じ Y 座標に並べると下端がそろいます。
マイクロコントローラー内部のブロック配置(<pos>)は見た目だけの情報で、回路の動作には影響しません。

配線モデル

マイクロコントローラー内部の配線は、エッジの明示的なリストを持ちません。代わりに、各ブロックの入力ピン(in1in2…)が「どのブロックの出力を参照するか」を保持する参照方式です。
  • 出力側が複数のポートを持つ場合、入力ピンの node_index 属性でどのポートを参照するか選択します。
  • 入力ピンは1つにつき1接続、出力は分岐自由です(複数の入力ピンが同じ出力を参照できます)。
  • component_id="0" は「未接続」を表す特別な値です。マイクロコントローラー内に ID 0 のブロックが存在することはありません。

外部ピンと境界

マイクロコントローラーを外から見たときの入出力ピンは <nodes>/<n> で定義され、それぞれが <components_bridge> 内の境界ブロックに対応します。

ピンのデータ型 (<node>/@type)

ロジック接続の型 ID と共通の体系です。

ピンの方向 (<node>/@mode)

車両レベルの配線

マイクロコントローラー、およびブロックの配線は、マイクロコントローラー定義の外側、ビークル直下の要素にボクセル座標のペアとして記述されます。マイクロコントローラー内部の配線とは別のレイヤーです。

Composite チャンネルの内部表現

マイクロコントローラー内部の XML では、Composite チャンネル番号は 0始まり(0〜31) で保持されます。ゲーム内 UI やプロパティで表示・入力するチャンネル番号は 1始まり(1〜32) です。ブロックのプロパティでチャンネル番号を動的に指定する場合、指定用のピンに渡す値は1始まりの表示番号がそのまま使われます。