- Added UI/UX specification for prop roles and set down mechanics in phase 17a. - Created `PropStageRoles` script to manage normalized behavior for props, including depth, motion, and collision settings. - Introduced `StagePhysicsPolicy` for shared physics configurations related to props and actors. - Developed comprehensive tests for prop roles, including default settings, legacy migration, serialization, and runtime behavior. - Ensured proper handling of set down actions, including clearance and orientation preservation.
1042 lines
16 KiB
Plaintext
1042 lines
16 KiB
Plaintext
{
|
|
"version": "1.0",
|
|
"prop_name": "End Table",
|
|
"material_preset": "wood",
|
|
"anchors": {
|
|
"origin": {
|
|
"x": 0.0,
|
|
"y": 0.0,
|
|
"role": "pivot",
|
|
"rotation_deg": 0.0,
|
|
"allowed_hands": "both",
|
|
"z_index_offset": 0
|
|
}
|
|
},
|
|
"metadata": {
|
|
"created_at": "2026-10-09T19:39:33",
|
|
"modified_at": "2026-10-09T19:39:33"
|
|
},
|
|
"shapes": [
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -104,
|
|
"y": -110
|
|
},
|
|
{
|
|
"x": -83,
|
|
"y": -110
|
|
},
|
|
{
|
|
"x": -83,
|
|
"y": 132
|
|
},
|
|
{
|
|
"x": -104,
|
|
"y": 132
|
|
}
|
|
],
|
|
"fill_color": "#AC957EFF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 3,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": 23,
|
|
"y": -142
|
|
},
|
|
{
|
|
"x": 44,
|
|
"y": -142
|
|
},
|
|
{
|
|
"x": 44,
|
|
"y": 105
|
|
},
|
|
{
|
|
"x": 23,
|
|
"y": 105
|
|
}
|
|
],
|
|
"fill_color": "#A88B71FF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 3,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -100,
|
|
"y": -12
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": -42
|
|
},
|
|
{
|
|
"x": 113,
|
|
"y": -9
|
|
},
|
|
{
|
|
"x": -20,
|
|
"y": 23
|
|
}
|
|
],
|
|
"fill_color": "#AF907AFF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 3,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -100,
|
|
"y": 69
|
|
},
|
|
{
|
|
"x": 32,
|
|
"y": 39
|
|
},
|
|
{
|
|
"x": 113,
|
|
"y": 72
|
|
},
|
|
{
|
|
"x": -20,
|
|
"y": 104
|
|
}
|
|
],
|
|
"fill_color": "#C0A184FF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 3,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -100,
|
|
"y": 69
|
|
},
|
|
{
|
|
"x": -20,
|
|
"y": 104
|
|
},
|
|
{
|
|
"x": -20,
|
|
"y": 119
|
|
},
|
|
{
|
|
"x": -100,
|
|
"y": 84
|
|
}
|
|
],
|
|
"fill_color": "#D9C4A6FF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 3,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -20,
|
|
"y": 104
|
|
},
|
|
{
|
|
"x": 113,
|
|
"y": 72
|
|
},
|
|
{
|
|
"x": 113,
|
|
"y": 87
|
|
},
|
|
{
|
|
"x": -20,
|
|
"y": 119
|
|
}
|
|
],
|
|
"fill_color": "#EBD8B5FF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 3,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -100,
|
|
"y": -12
|
|
},
|
|
{
|
|
"x": -20,
|
|
"y": 23
|
|
},
|
|
{
|
|
"x": -20,
|
|
"y": 38
|
|
},
|
|
{
|
|
"x": -100,
|
|
"y": 3
|
|
}
|
|
],
|
|
"fill_color": "#D9C4A6FF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 3,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -20,
|
|
"y": 23
|
|
},
|
|
{
|
|
"x": 113,
|
|
"y": -9
|
|
},
|
|
{
|
|
"x": 113,
|
|
"y": 6
|
|
},
|
|
{
|
|
"x": -20,
|
|
"y": 38
|
|
}
|
|
],
|
|
"fill_color": "#EBD8B5FF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 3,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -100,
|
|
"y": -105
|
|
},
|
|
{
|
|
"x": -20,
|
|
"y": -73
|
|
},
|
|
{
|
|
"x": -20,
|
|
"y": -13
|
|
},
|
|
{
|
|
"x": -100,
|
|
"y": -46
|
|
}
|
|
],
|
|
"fill_color": "#B49A82FF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 3,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -20,
|
|
"y": -73
|
|
},
|
|
{
|
|
"x": 113,
|
|
"y": -105
|
|
},
|
|
{
|
|
"x": 113,
|
|
"y": -47
|
|
},
|
|
{
|
|
"x": -20,
|
|
"y": -13
|
|
}
|
|
],
|
|
"fill_color": "#347E91FF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 3,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -12,
|
|
"y": -66
|
|
},
|
|
{
|
|
"x": 105,
|
|
"y": -94
|
|
},
|
|
{
|
|
"x": 105,
|
|
"y": -53
|
|
},
|
|
{
|
|
"x": -12,
|
|
"y": -24
|
|
}
|
|
],
|
|
"fill_color": "#B3D1E4FF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 2.5,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -12,
|
|
"y": -66
|
|
},
|
|
{
|
|
"x": -6,
|
|
"y": -60
|
|
},
|
|
{
|
|
"x": 99,
|
|
"y": -85
|
|
},
|
|
{
|
|
"x": 105,
|
|
"y": -94
|
|
}
|
|
],
|
|
"fill_color": "#E9F6F9FF",
|
|
"outline_color": "#E9F6F9FF",
|
|
"outline_width": 0,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -12,
|
|
"y": -24
|
|
},
|
|
{
|
|
"x": 105,
|
|
"y": -53
|
|
},
|
|
{
|
|
"x": 99,
|
|
"y": -59
|
|
},
|
|
{
|
|
"x": -6,
|
|
"y": -34
|
|
}
|
|
],
|
|
"fill_color": "#65ADBDFF",
|
|
"outline_color": "#65ADBDFF",
|
|
"outline_width": 0,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -32,
|
|
"y": -76
|
|
},
|
|
{
|
|
"x": -18,
|
|
"y": -70
|
|
},
|
|
{
|
|
"x": -18,
|
|
"y": 160
|
|
},
|
|
{
|
|
"x": -32,
|
|
"y": 166
|
|
},
|
|
{
|
|
"x": -48,
|
|
"y": 159
|
|
},
|
|
{
|
|
"x": -48,
|
|
"y": -82
|
|
}
|
|
],
|
|
"fill_color": "#E5CDA9FF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 3,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -48,
|
|
"y": -82
|
|
},
|
|
{
|
|
"x": -32,
|
|
"y": -76
|
|
},
|
|
{
|
|
"x": -32,
|
|
"y": 166
|
|
},
|
|
{
|
|
"x": -48,
|
|
"y": 159
|
|
}
|
|
],
|
|
"fill_color": "#B39B81FF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 2,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -28,
|
|
"y": -67
|
|
},
|
|
{
|
|
"x": -22,
|
|
"y": -69
|
|
},
|
|
{
|
|
"x": -22,
|
|
"y": 154
|
|
},
|
|
{
|
|
"x": -28,
|
|
"y": 156
|
|
}
|
|
],
|
|
"fill_color": "#FFF0CEFF",
|
|
"outline_color": "#FFF0CEFF",
|
|
"outline_width": 0,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": 105,
|
|
"y": -107
|
|
},
|
|
{
|
|
"x": 123,
|
|
"y": -111
|
|
},
|
|
{
|
|
"x": 123,
|
|
"y": 132
|
|
},
|
|
{
|
|
"x": 106,
|
|
"y": 138
|
|
},
|
|
{
|
|
"x": 96,
|
|
"y": 133
|
|
},
|
|
{
|
|
"x": 96,
|
|
"y": -104
|
|
}
|
|
],
|
|
"fill_color": "#DEC7A7FF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 3,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": 96,
|
|
"y": -104
|
|
},
|
|
{
|
|
"x": 106,
|
|
"y": -107
|
|
},
|
|
{
|
|
"x": 106,
|
|
"y": 138
|
|
},
|
|
{
|
|
"x": 96,
|
|
"y": 133
|
|
}
|
|
],
|
|
"fill_color": "#A98E79FF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 2,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": 112,
|
|
"y": -99
|
|
},
|
|
{
|
|
"x": 117,
|
|
"y": -100
|
|
},
|
|
{
|
|
"x": 117,
|
|
"y": 127
|
|
},
|
|
{
|
|
"x": 112,
|
|
"y": 129
|
|
}
|
|
],
|
|
"fill_color": "#FFF0CEFF",
|
|
"outline_color": "#FFF0CEFF",
|
|
"outline_width": 0,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -115,
|
|
"y": -125
|
|
},
|
|
{
|
|
"x": -28,
|
|
"y": -89
|
|
},
|
|
{
|
|
"x": -28,
|
|
"y": -72
|
|
},
|
|
{
|
|
"x": -115,
|
|
"y": -108
|
|
}
|
|
],
|
|
"fill_color": "#D83751FF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 3,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -28,
|
|
"y": -89
|
|
},
|
|
{
|
|
"x": 131,
|
|
"y": -126
|
|
},
|
|
{
|
|
"x": 131,
|
|
"y": -109
|
|
},
|
|
{
|
|
"x": -28,
|
|
"y": -72
|
|
}
|
|
],
|
|
"fill_color": "#E72F4AFF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 3,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -115,
|
|
"y": -125
|
|
},
|
|
{
|
|
"x": 42,
|
|
"y": -158
|
|
},
|
|
{
|
|
"x": 131,
|
|
"y": -126
|
|
},
|
|
{
|
|
"x": -28,
|
|
"y": -89
|
|
}
|
|
],
|
|
"fill_color": "#CDBEA7FF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 4,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": -104,
|
|
"y": -125
|
|
},
|
|
{
|
|
"x": 41,
|
|
"y": -151
|
|
},
|
|
{
|
|
"x": 118,
|
|
"y": -126
|
|
},
|
|
{
|
|
"x": -27,
|
|
"y": -96
|
|
}
|
|
],
|
|
"fill_color": "#DFD0B9FF",
|
|
"outline_color": "#DFD0B9FF",
|
|
"outline_width": 0,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": 57.0,
|
|
"y": -56.0
|
|
},
|
|
{
|
|
"x": 56.693,
|
|
"y": -53.671
|
|
},
|
|
{
|
|
"x": 55.794,
|
|
"y": -51.5
|
|
},
|
|
{
|
|
"x": 54.364,
|
|
"y": -49.636
|
|
},
|
|
{
|
|
"x": 52.5,
|
|
"y": -48.206
|
|
},
|
|
{
|
|
"x": 50.329,
|
|
"y": -47.307
|
|
},
|
|
{
|
|
"x": 48.0,
|
|
"y": -47.0
|
|
},
|
|
{
|
|
"x": 45.671,
|
|
"y": -47.307
|
|
},
|
|
{
|
|
"x": 43.5,
|
|
"y": -48.206
|
|
},
|
|
{
|
|
"x": 41.636,
|
|
"y": -49.636
|
|
},
|
|
{
|
|
"x": 40.206,
|
|
"y": -51.5
|
|
},
|
|
{
|
|
"x": 39.307,
|
|
"y": -53.671
|
|
},
|
|
{
|
|
"x": 39.0,
|
|
"y": -56.0
|
|
},
|
|
{
|
|
"x": 39.307,
|
|
"y": -58.329
|
|
},
|
|
{
|
|
"x": 40.206,
|
|
"y": -60.5
|
|
},
|
|
{
|
|
"x": 41.636,
|
|
"y": -62.364
|
|
},
|
|
{
|
|
"x": 43.5,
|
|
"y": -63.794
|
|
},
|
|
{
|
|
"x": 45.671,
|
|
"y": -64.693
|
|
},
|
|
{
|
|
"x": 48.0,
|
|
"y": -65.0
|
|
},
|
|
{
|
|
"x": 50.329,
|
|
"y": -64.693
|
|
},
|
|
{
|
|
"x": 52.5,
|
|
"y": -63.794
|
|
},
|
|
{
|
|
"x": 54.364,
|
|
"y": -62.364
|
|
},
|
|
{
|
|
"x": 55.794,
|
|
"y": -60.5
|
|
},
|
|
{
|
|
"x": 56.693,
|
|
"y": -58.329
|
|
}
|
|
],
|
|
"fill_color": "#D72E4CFF",
|
|
"outline_color": "#30213DFF",
|
|
"outline_width": 2.5,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
},
|
|
{
|
|
"shape_type": "polygon",
|
|
"points": [
|
|
{
|
|
"x": 48.0,
|
|
"y": -59.0
|
|
},
|
|
{
|
|
"x": 47.898,
|
|
"y": -58.224
|
|
},
|
|
{
|
|
"x": 47.598,
|
|
"y": -57.5
|
|
},
|
|
{
|
|
"x": 47.121,
|
|
"y": -56.879
|
|
},
|
|
{
|
|
"x": 46.5,
|
|
"y": -56.402
|
|
},
|
|
{
|
|
"x": 45.776,
|
|
"y": -56.102
|
|
},
|
|
{
|
|
"x": 45.0,
|
|
"y": -56.0
|
|
},
|
|
{
|
|
"x": 44.224,
|
|
"y": -56.102
|
|
},
|
|
{
|
|
"x": 43.5,
|
|
"y": -56.402
|
|
},
|
|
{
|
|
"x": 42.879,
|
|
"y": -56.879
|
|
},
|
|
{
|
|
"x": 42.402,
|
|
"y": -57.5
|
|
},
|
|
{
|
|
"x": 42.102,
|
|
"y": -58.224
|
|
},
|
|
{
|
|
"x": 42.0,
|
|
"y": -59.0
|
|
},
|
|
{
|
|
"x": 42.102,
|
|
"y": -59.776
|
|
},
|
|
{
|
|
"x": 42.402,
|
|
"y": -60.5
|
|
},
|
|
{
|
|
"x": 42.879,
|
|
"y": -61.121
|
|
},
|
|
{
|
|
"x": 43.5,
|
|
"y": -61.598
|
|
},
|
|
{
|
|
"x": 44.224,
|
|
"y": -61.898
|
|
},
|
|
{
|
|
"x": 45.0,
|
|
"y": -62.0
|
|
},
|
|
{
|
|
"x": 45.776,
|
|
"y": -61.898
|
|
},
|
|
{
|
|
"x": 46.5,
|
|
"y": -61.598
|
|
},
|
|
{
|
|
"x": 47.121,
|
|
"y": -61.121
|
|
},
|
|
{
|
|
"x": 47.598,
|
|
"y": -60.5
|
|
},
|
|
{
|
|
"x": 47.898,
|
|
"y": -59.776
|
|
}
|
|
],
|
|
"fill_color": "#FFE3DBFF",
|
|
"outline_color": "#FFE3DBFF",
|
|
"outline_width": 0,
|
|
"closed": true,
|
|
"vertex_flags": [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"reshaped": true
|
|
}
|
|
]
|
|
}
|