-
Notifications
You must be signed in to change notification settings - Fork 9
/
Arena-Objects.yaml
339 lines (298 loc) · 9.98 KB
/
Arena-Objects.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
### IMPORTANT! ###
# This YAML file contains every object in the arena that is spawnable.
# Each object has it's own properties such as name, position, rotation, size, and color, as well as their default values.
# You can use this file to see how to define each and every object in the arena.
# Simply copy the object you want to use and paste it into your own YAML file, either changing the default values or leaving them as they are.
!ArenaConfig
arenas:
0: !Arena
#pass_mark: 0 # This syntax is only supported for AAI builds less than or equal to v4.0.0. If you are using newer versions, please use the 'passMark' syntax.
passMark: 0 # The pass mark for the arena. The agent must achieve this score to pass the arena.
#t: 250 # This syntax is only supported for AAI builds less than or equal to v4.0.0. If you are using newer versions, please use the 'timeLimit' syntax.
timeLimit: 250 # The time limit for the arena in seconds. In other words, the time limit for the agent to complete the task (the arena resets after this time).
items: # This line indicates the start of the items list
- !Item
name: Agent # Note that the agent will always be spawned first regardless of its position in the configuration.
positions:
- !Vector3 {x: 2, y: 1, z: 2} # The position of the item. This is a Vector3 object with x, y, and z coordinates. Leave values for random spawning.
rotations: [0] # The rotations of the items. It can be in any angle but default is 0 degrees.
# IMMOVABLE OBJECTS (Note: RAMP is 'Immovable' but has a special tag of "ramp" for the agent to detect).
- !Item
name: CylinderTunnel
positions:
- !Vector3 {x: 37, y: 2, z: 37}
rotations: [0]
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
colors:
- !RGB {r: 255, g: 0, b: 255}
- !Item
name: CylinderTunnelTransparent
positions:
- !Vector3 {x: 27, y: 17, z: 36}
rotations: [0]
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
colors:
- !RGB {r: 255, g: 0, b: 255}
- !Item
name: Ramp
positions:
- !Vector3 {x: 8, y: 20, z: 39}
rotations: [0]
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
colors:
- !RGB {r: 255, g: 0, b: 255}
- !Item
name: Wall
positions:
- !Vector3 {x: 19, y: 23, z: 2}
rotations: [0]
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
colors:
- !RGB {r: 255, g: 0, b: 255}
- !Item
name: WallTransparent
positions:
- !Vector3 {x: 16, y: 12, z: 24}
rotations: [0]
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
colors:
- !RGB {r: 255, g: 0, b: 255}
# MOVABLE OBJECTS
- !Item
name: HeavyBlock
positions:
- !Vector3 {x: 18, y: 34, z: 23}
rotations: [0]
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: LightBlock
positions:
- !Vector3 {x: 34, y: 25, z: 10}
rotations: [0]
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: JBlock
positions:
- !Vector3 {x: 22, y: 31, z: 22}
rotations: [0]
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: LBlock
positions:
- !Vector3 {x: 29, y: 7, z: 32}
rotations: [0]
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: UBlock
positions:
- !Vector3 {x: 22, y: 33, z: 34}
rotations: [0]
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: HollowBox
positions:
- !Vector3 {x: 10, y: 0, z: 10}
rotations: [0]
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
# SIGNBOARD
- !Item
name: SignBoard
positions:
- !Vector3 {x: 39, y: 18, z: 27}
rotations: [0]
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
symbolNames:
- default # this is the default symbol that will be displayed if not changed in this parameter (blank signboard).
# The list of symbols that can be used are: "transparent", "right-arrow", "left-arrow", "up-arrow", "down-arrow",
# ..."u-turn-arrow", "letter-a", "letter-b", "letter-c", "square", "triangle", "circle", "star", "tick", "cross".
# VALANCED REWARDS SPAWNERS/DISPENSERS
### ATTENTION! READ BEFORE USE! ###
# A special note on the SpawnerButton: The SpawnerButton is defined uniquely in the arena with the major difference being that each SpawnerButton can be used to define a single instance of the object.
# For example, for other objects you can define multiple instances of the object by simply adding more positions, rotations, sizes, etc. However, for the SpawnerButton, you can only define one instance of the object.
# Therefore, if you want to have multiple SpawnerButtons in the arena, you will need to define each SpawnerButton separately.
- !Item
name: SpawnerButton # Interactive button that spawns rewards when pressed by the agent.
positions:
- !Vector3 {x: 32, y: 31, z: 30}
rotations: [0]
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
moveDurations: [0.1] # the time it takes for the button to move forwards. This impacts the time the button can be pressed again.
resetDurations: [1.0] # the time it takes for the button to move backwards. This impacts the time the button can be pressed again.
rewardNames: ["GoodGoal", "BadGoal", "GoodGoalMulti"] # the list of rewards that can be spawned. The names must match the names of the rewards.
rewardWeights: [100, 0, 0] # the weights of each reward in the rewards list respectively. The sum of all weights must be 100.
spawnProbability: 1.0 # the probability of spawning the reward. 1.0 means 100% chance of spawning. 0.0 means 0% chance of spawning ANY reward.
maxRewardCounts: [-1, -1, -1] # the maximum number of times each reward can be spawned. -1 means no limit respectively for each reward.
rewardSpawnPos: !Vector3 {x: 25, y: 0, z: 23} # the position where the reward will be spawned upon pressing the button.
- !Item
name: SpawnerDispenserTall
positions:
- !Vector3 {x: 10, y: 39, z: 38}
rotations: [0]
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
colors:
- !RGB {r: 255, g: 0, b: 255}
initialValues: [2.5]
finalValues: [0.5]
timesBetweenSpawns: [0.0]
doorDelays: [0.0]
spawnCounts: [10]
- !Item
name: SpawnerContainerShort
positions:
- !Vector3 {x: 16, y: 28, z: 30}
rotations: [0]
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
colors:
- !RGB {r: 255, g: 0, b: 255}
initialValues: [2.5]
finalValues: [0.5]
timesBetweenSpawns: [0.5]
doorDelays: [1.0]
spawnCounts: [1]
- !Item
name: SpawnerTree
positions:
- !Vector3 {x: 1, y: 15, z: 2}
rotations: [0]
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
initialValues: [2.5]
finalValues: [0.5]
ripenTimes: [4.0]
timesBetweenSpawns: [0.5]
spawnCounts: [10]
# REWARDS
- !Item
name: GoodGoal
positions:
- !Vector3 {x: 35, y: 15, z: 9}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: GoodGoalBounce
positions:
- !Vector3 {x: 7, y: 0, z: 5}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: BadGoal
positions:
- !Vector3 {x: 25, y: 39, z: 8}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: BadGoalBounce
positions:
- !Vector3 {x: 20, y: 37, z: 14}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: GoodGoalMulti
positions:
- !Vector3 {x: 12, y: 22, z: 33}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: GoodGoalMultiBounce
positions:
- !Vector3 {x: 4, y: 22, z: 13}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: BadGoalMulti
positions:
- !Vector3 {x: 12, y: 40, z: 5}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: BadGoalMultiBounce
positions:
- !Vector3 {x: 16, y: 5, z: 31}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: RipenGoal
positions:
- !Vector3 {x: 38, y: 25, z: 11}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: DecoyGoal
positions:
- !Vector3 {x: 4, y: 14, z: 23}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: DecoyGoalBounce
positions:
- !Vector3 {x: 4, y: 14, z: 23}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: DecayGoal
positions:
- !Vector3 {x: 5, y: 16, z: 29}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
initialValues: [1]
finalValues: [1.5]
delays: [300]
changeRates: [-0.007]
- !Item
name: DecayGoalBounce
positions:
- !Vector3 {x: 6, y: 22, z: 40}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
initialValues: [1]
finalValues: [1.5]
delays: [300]
changeRates: [-0.007]
- !Item
name: GrowGoal
positions:
- !Vector3 {x: 3, y: 20, z: 38}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
initialValues: [1] # the initial size of the object.
finalValues: [3.5] # the final size of the object.
delays: [100] # any delay in seconds before the object starts to grow.
changeRates: [0.01] # the rate at which the object grows.
- !Item
name: ShrinkGoal
positions:
- !Vector3 {x: 9, y: 26, z: 16}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
initialValues: [2.5] # the initial size of the object.
finalValues: [1.5] # the final size of the object (after shrinking).
delays: [400] # any delay in seconds before the object starts to shrink.
changeRates: [-0.2] # the rate at which the object shrinks.
# ZONES
- !Item
name: HotZone
positions:
- !Vector3 {x: 1, y: 18, z: 36}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}
- !Item
name: DeathZone
positions:
- !Vector3 {x: 14, y: 34, z: 18}
sizes:
- !Vector3 {x: 1, y: 1, z: 1}