World Object Treeとは?
Semantic UI Treeがbutton、label、input fieldなどのUI情報を表すのに対し、World Object TreeはUIの外側にあるゲーム世界を表します。たとえば「原子炉の扉は施錠中」「敵Aは活動中」「チェックポイントBは利用可能」といった状態を、安定したIDと意味情報で観測できるようにします。engine内部のscene treeをそのまま公開する仕組みではありません。
Objectが持つ情報
World Object Tree v1は安定したid、意味上のkind、任意のlabel・parent、2D/3D position、active・player visibility、tag、flatなprimitive stateを持ちます。state値はstring、有限number、boolean、nullに限定されます。
$Door.add_to_group(&"gua_world_object")
$Door.set_meta(&"gua_world_id", "door-a")
$Door.set_meta(&"gua_world_kind", "door")
$Door.set_meta(&"gua_world_label", "Reactor door")
$Door.set_meta(&"gua_world_visible_to_player", true)
$Door.set_meta(&"gua_world_state", {"locked": true})GodotとUnity
Node2DまたはNode3Dをgua_world_object groupへ追加し、gua_world_* metadataを設定します。IDは一意で、parentは同じ公開frame内に存在する必要があります。
activeなGameObjectへGuaWorldObjectを追加し、ID、kind、visibility、tag、stateを設定します。adapterは登録componentだけを公開します。
検索と待機
MCPはget_world_object_tree、find_world_objects、wait_for_world_objectを提供します。ID、kind、label、tag、state、ancestor、active、visibilityで検索でき、Inspectorは独立したWorld Object Tree panelへ表示します。
Player向けの安全な投影
bridgeの既定はDebugです。Player向けhostではGUA_OBSERVATION_PROFILE=playerを設定し、transportへ渡す前にUIとWorldを投影します。clientからDebugへ昇格できません。続いてエージェント公開ポリシー編を参照してください。