@homie-rocks/studio 0.24.5 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +54 -1
  2. package/README.md +56 -6
  3. package/assets/animate.ts +521 -0
  4. package/assets/render-page.ts +77 -4
  5. package/bin/homie-studio.mjs +13 -4
  6. package/lib/art-cli.mjs +105 -5
  7. package/lib/art-tools.mjs +168 -1
  8. package/lib/asset-check.mjs +72 -5
  9. package/lib/characters.mjs +380 -0
  10. package/lib/clips.mjs +417 -0
  11. package/lib/decisions.mjs +38 -8
  12. package/lib/mcp-tools.mjs +1 -1
  13. package/lib/mcp.mjs +2 -2
  14. package/lib/optimise.mjs +79 -3
  15. package/lib/perf.mjs +15 -7
  16. package/lib/render3d.mjs +2 -0
  17. package/lib/rig.mjs +431 -0
  18. package/lib/scaffold.mjs +7 -0
  19. package/lib/site.mjs +14 -3
  20. package/lib/studio.mjs +18 -3
  21. package/lib/style-board.mjs +3 -1
  22. package/lib/template-history.json +78 -0
  23. package/mcp/ui/animation.js +56 -0
  24. package/mcp/ui/card.css +4 -0
  25. package/mcp/ui/cast.js +36 -2
  26. package/mcp/ui/lineup.js +7 -7
  27. package/netplay/NETPLAY.md +38 -2
  28. package/netplay/netplay.ts +58 -3
  29. package/package.json +5 -1
  30. package/site/SITE.md +19 -1
  31. package/starters/gem-rush/game.json +2 -1
  32. package/starters/gem-rush-3d/game.json +2 -1
  33. package/starters/hero-rush-3d/assets/RIGHTS.md +163 -0
  34. package/starters/hero-rush-3d/assets/manifest.json +1471 -0
  35. package/starters/hero-rush-3d/credits.json +40 -0
  36. package/starters/hero-rush-3d/game.json +12 -0
  37. package/starters/hero-rush-3d/index.html +20 -0
  38. package/starters/hero-rush-3d/lab.json +32 -0
  39. package/starters/hero-rush-3d/src/main.ts +2588 -0
  40. package/starters/hero-rush-3d/style.json +68 -0
  41. package/starters/hero-rush-3d/tunables.json +32 -0
  42. package/worker/arrival.mjs +207 -0
  43. package/worker/pages.mjs +23 -5
  44. package/worker/site.mjs +26 -4
  45. package/worker/version.mjs +1 -1
@@ -0,0 +1,1471 @@
1
+ {
2
+ "v": 1,
3
+ "assets": [
4
+ {
5
+ "id": "barbarian",
6
+ "kind": "character",
7
+ "tier": "hero",
8
+ "card": "Players/Barbarian",
9
+ "route": "library",
10
+ "from": {
11
+ "library": "homie-starter",
12
+ "version": "v0",
13
+ "pack": "kaykit-adventurers",
14
+ "packLabel": "KayKit Adventurers",
15
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Adventures-1.0",
16
+ "item": "kaykit-adventurers/barbarian",
17
+ "author": "KayKit",
18
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Adventures-1.0",
19
+ "source": "addons/kaykit_character_pack_adventures/Characters/gltf/Barbarian.glb",
20
+ "sha256": "931c558d96d09ea526d497341b70d2472014f3a6bd97c306a0ab423f8767c0df",
21
+ "paletteSwap": true
22
+ },
23
+ "files": [
24
+ {
25
+ "role": "model",
26
+ "path": "public/models/barbarian.glb",
27
+ "bytes": 2049644,
28
+ "sha256": "931c558d96d09ea526d497341b70d2472014f3a6bd97c306a0ab423f8767c0df"
29
+ }
30
+ ],
31
+ "license": {
32
+ "remix": "include",
33
+ "kind": "cc0",
34
+ "spdx": "CC0-1.0",
35
+ "owner": "KayKit",
36
+ "attribution": null,
37
+ "notes": "From the Homie starter library (kaykit-adventurers); the pack's own licence text: licenses/kaykit-adventurers.txt. `game new` fetches the file, makes the character phone-sized and bakes its clips; the repository holds no models."
38
+ },
39
+ "measured": {
40
+ "tris": 6543,
41
+ "materials": 1,
42
+ "drawCalls": 13,
43
+ "texturePx": 1024,
44
+ "bones": 41,
45
+ "clips": 76,
46
+ "heightM": 2.398,
47
+ "box": {
48
+ "size": [
49
+ 2.975,
50
+ 2.398,
51
+ 1.85
52
+ ]
53
+ },
54
+ "glbKB": 2002
55
+ },
56
+ "made": {
57
+ "steps": [
58
+ {
59
+ "what": "library",
60
+ "item": "kaykit-adventurers/barbarian",
61
+ "sha256": "931c558d96d09ea526d497341b70d2472014f3a6bd97c306a0ab423f8767c0df"
62
+ }
63
+ ]
64
+ },
65
+ "review": {
66
+ "state": "auto"
67
+ },
68
+ "rig": {
69
+ "heightM": 1.45,
70
+ "keep": [
71
+ "1H_Axe",
72
+ "Barbarian_Round_Shield",
73
+ "Barbarian_Hat",
74
+ "Barbarian_Cape"
75
+ ],
76
+ "verbs": [
77
+ "idle",
78
+ "walk",
79
+ "run",
80
+ "jump",
81
+ "fall",
82
+ "land",
83
+ "attack",
84
+ "cast",
85
+ "hit",
86
+ "die",
87
+ "emote",
88
+ "win"
89
+ ],
90
+ "note": "`game new` runs the character pipeline (lib/characters.mjs): joints to the skeleton standard, the held things kept merged into one skinned mesh, the clips into public/anims/<skeleton>.glb"
91
+ }
92
+ },
93
+ {
94
+ "id": "barrel",
95
+ "kind": "prop",
96
+ "tier": "prop",
97
+ "card": "Places/Barrel",
98
+ "route": "library",
99
+ "from": {
100
+ "library": "homie-starter",
101
+ "version": "v0",
102
+ "pack": "kaykit-medieval-hexagon",
103
+ "packLabel": "KayKit Medieval Hexagon",
104
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Medieval-Hexagon-Pack-1.0",
105
+ "item": "kaykit-medieval-hexagon/barrel",
106
+ "author": "KayKit",
107
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Medieval-Hexagon-Pack-1.0",
108
+ "source": "addons/kaykit_medieval_hexagon_pack/Assets/gltf/decoration/props/barrel.gltf",
109
+ "sha256": "b1730c64a241c31b7ea244d5549f266099c35d86d8921cfa355f69e33b87a2d5",
110
+ "paletteSwap": false
111
+ },
112
+ "files": [
113
+ {
114
+ "role": "model",
115
+ "path": "public/models/barrel.glb",
116
+ "bytes": 11428,
117
+ "sha256": "b1730c64a241c31b7ea244d5549f266099c35d86d8921cfa355f69e33b87a2d5"
118
+ }
119
+ ],
120
+ "license": {
121
+ "remix": "include",
122
+ "kind": "cc0",
123
+ "spdx": "CC0-1.0",
124
+ "owner": "KayKit",
125
+ "attribution": null,
126
+ "notes": "From the Homie starter library (kaykit-medieval-hexagon); the pack's own licence text: licenses/kaykit-medieval-hexagon.txt. `game new` fetches the file; the repository holds no models."
127
+ },
128
+ "measured": {
129
+ "tris": 240,
130
+ "materials": 1,
131
+ "drawCalls": 1,
132
+ "texturePx": 512,
133
+ "bones": 0,
134
+ "clips": 0,
135
+ "heightM": 0.212,
136
+ "box": {
137
+ "size": [
138
+ 0.201,
139
+ 0.212,
140
+ 0.201
141
+ ]
142
+ },
143
+ "glbKB": 11
144
+ },
145
+ "made": {
146
+ "steps": [
147
+ {
148
+ "what": "library",
149
+ "item": "kaykit-medieval-hexagon/barrel",
150
+ "sha256": "b1730c64a241c31b7ea244d5549f266099c35d86d8921cfa355f69e33b87a2d5"
151
+ }
152
+ ]
153
+ },
154
+ "review": {
155
+ "state": "auto"
156
+ },
157
+ "inGame": {
158
+ "heightM": 0.8
159
+ }
160
+ },
161
+ {
162
+ "id": "chest",
163
+ "kind": "prop",
164
+ "tier": "prop",
165
+ "card": "Places/Treasure Chest",
166
+ "route": "library",
167
+ "from": {
168
+ "library": "homie-starter",
169
+ "version": "v0",
170
+ "pack": "kaykit-dungeon",
171
+ "packLabel": "KayKit Dungeon Remastered",
172
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Dungeon-Remastered-1.0",
173
+ "item": "kaykit-dungeon/chest-gold",
174
+ "author": "KayKit",
175
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Dungeon-Remastered-1.0",
176
+ "source": "addons/kaykit_dungeon_remastered/Assets/gltf/chest_gold.glb",
177
+ "sha256": "d6d138a6e61d37b8fadca428dea834eff5afd2f4bf8df8d663a6bf730e78dc1b",
178
+ "paletteSwap": false
179
+ },
180
+ "files": [
181
+ {
182
+ "role": "model",
183
+ "path": "public/models/chest.glb",
184
+ "bytes": 37388,
185
+ "sha256": "d6d138a6e61d37b8fadca428dea834eff5afd2f4bf8df8d663a6bf730e78dc1b"
186
+ }
187
+ ],
188
+ "license": {
189
+ "remix": "include",
190
+ "kind": "cc0",
191
+ "spdx": "CC0-1.0",
192
+ "owner": "KayKit",
193
+ "attribution": null,
194
+ "notes": "From the Homie starter library (kaykit-dungeon); the pack's own licence text: licenses/kaykit-dungeon.txt. `game new` fetches the file; the repository holds no models."
195
+ },
196
+ "measured": {
197
+ "tris": 1461,
198
+ "materials": 1,
199
+ "drawCalls": 1,
200
+ "texturePx": 512,
201
+ "bones": 0,
202
+ "clips": 0,
203
+ "heightM": 1.3,
204
+ "box": {
205
+ "size": [
206
+ 1.7,
207
+ 1.3,
208
+ 1.426
209
+ ]
210
+ },
211
+ "glbKB": 37
212
+ },
213
+ "made": {
214
+ "steps": [
215
+ {
216
+ "what": "library",
217
+ "item": "kaykit-dungeon/chest-gold",
218
+ "sha256": "d6d138a6e61d37b8fadca428dea834eff5afd2f4bf8df8d663a6bf730e78dc1b"
219
+ }
220
+ ]
221
+ },
222
+ "review": {
223
+ "state": "auto"
224
+ },
225
+ "inGame": {
226
+ "heightM": 0.95
227
+ }
228
+ },
229
+ {
230
+ "id": "coin",
231
+ "kind": "prop",
232
+ "tier": "prop",
233
+ "card": "Items/Coin",
234
+ "route": "library",
235
+ "from": {
236
+ "library": "homie-starter",
237
+ "version": "v0",
238
+ "pack": "kaykit-dungeon",
239
+ "packLabel": "KayKit Dungeon Remastered",
240
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Dungeon-Remastered-1.0",
241
+ "item": "kaykit-dungeon/coin",
242
+ "author": "KayKit",
243
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Dungeon-Remastered-1.0",
244
+ "source": "addons/kaykit_dungeon_remastered/Assets/gltf/coin.gltf.glb",
245
+ "sha256": "1373c25a408b055369a89c1697c468a41a7d934eae62ec4655d71aaedbb99866",
246
+ "paletteSwap": false
247
+ },
248
+ "files": [
249
+ {
250
+ "role": "model",
251
+ "path": "public/models/coin.glb",
252
+ "bytes": 8168,
253
+ "sha256": "1373c25a408b055369a89c1697c468a41a7d934eae62ec4655d71aaedbb99866"
254
+ }
255
+ ],
256
+ "license": {
257
+ "remix": "include",
258
+ "kind": "cc0",
259
+ "spdx": "CC0-1.0",
260
+ "owner": "KayKit",
261
+ "attribution": null,
262
+ "notes": "From the Homie starter library (kaykit-dungeon); the pack's own licence text: licenses/kaykit-dungeon.txt. `game new` fetches the file; the repository holds no models."
263
+ },
264
+ "measured": {
265
+ "tris": 80,
266
+ "materials": 1,
267
+ "drawCalls": 1,
268
+ "texturePx": 512,
269
+ "bones": 0,
270
+ "clips": 0,
271
+ "heightM": 0.125,
272
+ "box": {
273
+ "size": [
274
+ 0.36,
275
+ 0.125,
276
+ 0.36
277
+ ]
278
+ },
279
+ "glbKB": 8
280
+ },
281
+ "made": {
282
+ "steps": [
283
+ {
284
+ "what": "library",
285
+ "item": "kaykit-dungeon/coin",
286
+ "sha256": "1373c25a408b055369a89c1697c468a41a7d934eae62ec4655d71aaedbb99866"
287
+ }
288
+ ]
289
+ },
290
+ "review": {
291
+ "state": "auto"
292
+ },
293
+ "inGame": {
294
+ "heightM": 0.56
295
+ }
296
+ },
297
+ {
298
+ "id": "crate",
299
+ "kind": "prop",
300
+ "tier": "prop",
301
+ "card": "Places/Crate",
302
+ "route": "library",
303
+ "from": {
304
+ "library": "homie-starter",
305
+ "version": "v0",
306
+ "pack": "kaykit-medieval-hexagon",
307
+ "packLabel": "KayKit Medieval Hexagon",
308
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Medieval-Hexagon-Pack-1.0",
309
+ "item": "kaykit-medieval-hexagon/crate-a-big",
310
+ "author": "KayKit",
311
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Medieval-Hexagon-Pack-1.0",
312
+ "source": "addons/kaykit_medieval_hexagon_pack/Assets/gltf/decoration/props/crate_A_big.gltf",
313
+ "sha256": "c169ba8c947d1aad1f3b07316e9b4d41a1ae688d2979da261a87a852907841b5",
314
+ "paletteSwap": false
315
+ },
316
+ "files": [
317
+ {
318
+ "role": "model",
319
+ "path": "public/models/crate.glb",
320
+ "bytes": 8112,
321
+ "sha256": "c169ba8c947d1aad1f3b07316e9b4d41a1ae688d2979da261a87a852907841b5"
322
+ }
323
+ ],
324
+ "license": {
325
+ "remix": "include",
326
+ "kind": "cc0",
327
+ "spdx": "CC0-1.0",
328
+ "owner": "KayKit",
329
+ "attribution": null,
330
+ "notes": "From the Homie starter library (kaykit-medieval-hexagon); the pack's own licence text: licenses/kaykit-medieval-hexagon.txt. `game new` fetches the file; the repository holds no models."
331
+ },
332
+ "measured": {
333
+ "tris": 132,
334
+ "materials": 1,
335
+ "drawCalls": 1,
336
+ "texturePx": 512,
337
+ "bones": 0,
338
+ "clips": 0,
339
+ "heightM": 0.21,
340
+ "box": {
341
+ "size": [
342
+ 0.21,
343
+ 0.21,
344
+ 0.21
345
+ ]
346
+ },
347
+ "glbKB": 8
348
+ },
349
+ "made": {
350
+ "steps": [
351
+ {
352
+ "what": "library",
353
+ "item": "kaykit-medieval-hexagon/crate-a-big",
354
+ "sha256": "c169ba8c947d1aad1f3b07316e9b4d41a1ae688d2979da261a87a852907841b5"
355
+ }
356
+ ]
357
+ },
358
+ "review": {
359
+ "state": "auto"
360
+ },
361
+ "inGame": {
362
+ "heightM": 0.72
363
+ }
364
+ },
365
+ {
366
+ "id": "grove",
367
+ "kind": "prop",
368
+ "tier": "prop",
369
+ "card": "Places/Grove",
370
+ "route": "library",
371
+ "from": {
372
+ "library": "homie-starter",
373
+ "version": "v0",
374
+ "pack": "kaykit-medieval-hexagon",
375
+ "packLabel": "KayKit Medieval Hexagon",
376
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Medieval-Hexagon-Pack-1.0",
377
+ "item": "kaykit-medieval-hexagon/trees-a-medium",
378
+ "author": "KayKit",
379
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Medieval-Hexagon-Pack-1.0",
380
+ "source": "addons/kaykit_medieval_hexagon_pack/Assets/gltf/decoration/nature/trees_A_medium.gltf",
381
+ "sha256": "f31db934213d209c59fbeb307a1d057f71010121cc8846d0f2211ecfab506719",
382
+ "paletteSwap": false
383
+ },
384
+ "files": [
385
+ {
386
+ "role": "model",
387
+ "path": "public/models/grove.glb",
388
+ "bytes": 17684,
389
+ "sha256": "f31db934213d209c59fbeb307a1d057f71010121cc8846d0f2211ecfab506719"
390
+ }
391
+ ],
392
+ "license": {
393
+ "remix": "include",
394
+ "kind": "cc0",
395
+ "spdx": "CC0-1.0",
396
+ "owner": "KayKit",
397
+ "attribution": null,
398
+ "notes": "From the Homie starter library (kaykit-medieval-hexagon); the pack's own licence text: licenses/kaykit-medieval-hexagon.txt. `game new` fetches the file; the repository holds no models."
399
+ },
400
+ "measured": {
401
+ "tris": 480,
402
+ "materials": 1,
403
+ "drawCalls": 1,
404
+ "texturePx": 512,
405
+ "bones": 0,
406
+ "clips": 0,
407
+ "heightM": 1.295,
408
+ "box": {
409
+ "size": [
410
+ 1.751,
411
+ 1.295,
412
+ 1.814
413
+ ]
414
+ },
415
+ "glbKB": 17
416
+ },
417
+ "made": {
418
+ "steps": [
419
+ {
420
+ "what": "library",
421
+ "item": "kaykit-medieval-hexagon/trees-a-medium",
422
+ "sha256": "f31db934213d209c59fbeb307a1d057f71010121cc8846d0f2211ecfab506719"
423
+ }
424
+ ]
425
+ },
426
+ "review": {
427
+ "state": "auto"
428
+ },
429
+ "inGame": {
430
+ "heightM": 3.4
431
+ }
432
+ },
433
+ {
434
+ "id": "knight",
435
+ "kind": "character",
436
+ "tier": "hero",
437
+ "card": "Players/Knight",
438
+ "route": "library",
439
+ "from": {
440
+ "library": "homie-starter",
441
+ "version": "v0",
442
+ "pack": "kaykit-adventurers",
443
+ "packLabel": "KayKit Adventurers",
444
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Adventures-1.0",
445
+ "item": "kaykit-adventurers/knight",
446
+ "author": "KayKit",
447
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Adventures-1.0",
448
+ "source": "addons/kaykit_character_pack_adventures/Characters/gltf/Knight.glb",
449
+ "sha256": "b21c3e590fb97f6ec5db56dd75ddc144aaaa637ab30f064ead0f3d84351064f6",
450
+ "paletteSwap": true
451
+ },
452
+ "files": [
453
+ {
454
+ "role": "model",
455
+ "path": "public/models/knight.glb",
456
+ "bytes": 2074184,
457
+ "sha256": "b21c3e590fb97f6ec5db56dd75ddc144aaaa637ab30f064ead0f3d84351064f6"
458
+ }
459
+ ],
460
+ "license": {
461
+ "remix": "include",
462
+ "kind": "cc0",
463
+ "spdx": "CC0-1.0",
464
+ "owner": "KayKit",
465
+ "attribution": null,
466
+ "notes": "From the Homie starter library (kaykit-adventurers); the pack's own licence text: licenses/kaykit-adventurers.txt. `game new` fetches the file, makes the character phone-sized and bakes its clips; the repository holds no models."
467
+ },
468
+ "measured": {
469
+ "tris": 6952,
470
+ "materials": 1,
471
+ "drawCalls": 15,
472
+ "texturePx": 1024,
473
+ "bones": 41,
474
+ "clips": 76,
475
+ "heightM": 2.467,
476
+ "box": {
477
+ "size": [
478
+ 2.689,
479
+ 2.467,
480
+ 2.577
481
+ ]
482
+ },
483
+ "glbKB": 2026
484
+ },
485
+ "made": {
486
+ "steps": [
487
+ {
488
+ "what": "library",
489
+ "item": "kaykit-adventurers/knight",
490
+ "sha256": "b21c3e590fb97f6ec5db56dd75ddc144aaaa637ab30f064ead0f3d84351064f6"
491
+ }
492
+ ]
493
+ },
494
+ "review": {
495
+ "state": "auto"
496
+ },
497
+ "rig": {
498
+ "heightM": 1.45,
499
+ "keep": [
500
+ "1H_Sword",
501
+ "Round_Shield",
502
+ "Knight_Helmet",
503
+ "Knight_Cape"
504
+ ],
505
+ "verbs": [
506
+ "idle",
507
+ "walk",
508
+ "run",
509
+ "jump",
510
+ "fall",
511
+ "land",
512
+ "attack",
513
+ "cast",
514
+ "hit",
515
+ "die",
516
+ "emote",
517
+ "win"
518
+ ],
519
+ "note": "`game new` runs the character pipeline (lib/characters.mjs): joints to the skeleton standard, the held things kept merged into one skinned mesh, the clips into public/anims/<skeleton>.glb"
520
+ }
521
+ },
522
+ {
523
+ "id": "mage",
524
+ "kind": "character",
525
+ "tier": "hero",
526
+ "card": "Players/Mage",
527
+ "route": "library",
528
+ "from": {
529
+ "library": "homie-starter",
530
+ "version": "v0",
531
+ "pack": "kaykit-adventurers",
532
+ "packLabel": "KayKit Adventurers",
533
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Adventures-1.0",
534
+ "item": "kaykit-adventurers/mage",
535
+ "author": "KayKit",
536
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Adventures-1.0",
537
+ "source": "addons/kaykit_character_pack_adventures/Characters/gltf/Mage.glb",
538
+ "sha256": "c4e8caab760eee7f1bdd5dc7af90e8a6a012e61df8ff799cd2ad4b45d356ce78",
539
+ "paletteSwap": true
540
+ },
541
+ "files": [
542
+ {
543
+ "role": "model",
544
+ "path": "public/models/mage.glb",
545
+ "bytes": 2041292,
546
+ "sha256": "c4e8caab760eee7f1bdd5dc7af90e8a6a012e61df8ff799cd2ad4b45d356ce78"
547
+ }
548
+ ],
549
+ "license": {
550
+ "remix": "include",
551
+ "kind": "cc0",
552
+ "spdx": "CC0-1.0",
553
+ "owner": "KayKit",
554
+ "attribution": null,
555
+ "notes": "From the Homie starter library (kaykit-adventurers); the pack's own licence text: licenses/kaykit-adventurers.txt. `game new` fetches the file, makes the character phone-sized and bakes its clips; the repository holds no models."
556
+ },
557
+ "measured": {
558
+ "tris": 5683,
559
+ "materials": 1,
560
+ "drawCalls": 12,
561
+ "texturePx": 1024,
562
+ "bones": 41,
563
+ "clips": 76,
564
+ "heightM": 2.716,
565
+ "box": {
566
+ "size": [
567
+ 2.426,
568
+ 2.716,
569
+ 2.271
570
+ ]
571
+ },
572
+ "glbKB": 1993
573
+ },
574
+ "made": {
575
+ "steps": [
576
+ {
577
+ "what": "library",
578
+ "item": "kaykit-adventurers/mage",
579
+ "sha256": "c4e8caab760eee7f1bdd5dc7af90e8a6a012e61df8ff799cd2ad4b45d356ce78"
580
+ }
581
+ ]
582
+ },
583
+ "review": {
584
+ "state": "auto"
585
+ },
586
+ "rig": {
587
+ "heightM": 1.45,
588
+ "keep": [
589
+ "1H_Wand",
590
+ "Spellbook",
591
+ "Mage_Hat",
592
+ "Mage_Cape"
593
+ ],
594
+ "verbs": [
595
+ "idle",
596
+ "walk",
597
+ "run",
598
+ "jump",
599
+ "fall",
600
+ "land",
601
+ "attack",
602
+ "cast",
603
+ "hit",
604
+ "die",
605
+ "emote",
606
+ "win"
607
+ ],
608
+ "note": "`game new` runs the character pipeline (lib/characters.mjs): joints to the skeleton standard, the held things kept merged into one skinned mesh, the clips into public/anims/<skeleton>.glb"
609
+ }
610
+ },
611
+ {
612
+ "id": "pine",
613
+ "kind": "prop",
614
+ "tier": "prop",
615
+ "card": "Places/Pine",
616
+ "route": "library",
617
+ "from": {
618
+ "library": "homie-starter",
619
+ "version": "v0",
620
+ "pack": "kaykit-medieval-hexagon",
621
+ "packLabel": "KayKit Medieval Hexagon",
622
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Medieval-Hexagon-Pack-1.0",
623
+ "item": "kaykit-medieval-hexagon/tree-single-a",
624
+ "author": "KayKit",
625
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Medieval-Hexagon-Pack-1.0",
626
+ "source": "addons/kaykit_medieval_hexagon_pack/Assets/gltf/decoration/nature/tree_single_A.gltf",
627
+ "sha256": "277c160d937c625cac18450aa7e395ea53cc9dfbea53f937f075e8247cb966a3",
628
+ "paletteSwap": false
629
+ },
630
+ "files": [
631
+ {
632
+ "role": "model",
633
+ "path": "public/models/pine.glb",
634
+ "bytes": 7132,
635
+ "sha256": "277c160d937c625cac18450aa7e395ea53cc9dfbea53f937f075e8247cb966a3"
636
+ }
637
+ ],
638
+ "license": {
639
+ "remix": "include",
640
+ "kind": "cc0",
641
+ "spdx": "CC0-1.0",
642
+ "owner": "KayKit",
643
+ "attribution": null,
644
+ "notes": "From the Homie starter library (kaykit-medieval-hexagon); the pack's own licence text: licenses/kaykit-medieval-hexagon.txt. `game new` fetches the file; the repository holds no models."
645
+ },
646
+ "measured": {
647
+ "tris": 50,
648
+ "materials": 1,
649
+ "drawCalls": 1,
650
+ "texturePx": 512,
651
+ "bones": 0,
652
+ "clips": 0,
653
+ "heightM": 1.196,
654
+ "box": {
655
+ "size": [
656
+ 0.574,
657
+ 1.196,
658
+ 0.547
659
+ ]
660
+ },
661
+ "glbKB": 7
662
+ },
663
+ "made": {
664
+ "steps": [
665
+ {
666
+ "what": "library",
667
+ "item": "kaykit-medieval-hexagon/tree-single-a",
668
+ "sha256": "277c160d937c625cac18450aa7e395ea53cc9dfbea53f937f075e8247cb966a3"
669
+ }
670
+ ]
671
+ },
672
+ "review": {
673
+ "state": "auto"
674
+ },
675
+ "inGame": {
676
+ "heightM": 3.8
677
+ }
678
+ },
679
+ {
680
+ "id": "pine-round",
681
+ "kind": "prop",
682
+ "tier": "prop",
683
+ "card": "Places/Round Pine",
684
+ "route": "library",
685
+ "from": {
686
+ "library": "homie-starter",
687
+ "version": "v0",
688
+ "pack": "kaykit-medieval-hexagon",
689
+ "packLabel": "KayKit Medieval Hexagon",
690
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Medieval-Hexagon-Pack-1.0",
691
+ "item": "kaykit-medieval-hexagon/tree-single-b",
692
+ "author": "KayKit",
693
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Medieval-Hexagon-Pack-1.0",
694
+ "source": "addons/kaykit_medieval_hexagon_pack/Assets/gltf/decoration/nature/tree_single_B.gltf",
695
+ "sha256": "1d7d459243468b020c39d9a37902696d5bef489305855ded574cdfe56e826f4e",
696
+ "paletteSwap": false
697
+ },
698
+ "files": [
699
+ {
700
+ "role": "model",
701
+ "path": "public/models/pine-round.glb",
702
+ "bytes": 8604,
703
+ "sha256": "1d7d459243468b020c39d9a37902696d5bef489305855ded574cdfe56e826f4e"
704
+ }
705
+ ],
706
+ "license": {
707
+ "remix": "include",
708
+ "kind": "cc0",
709
+ "spdx": "CC0-1.0",
710
+ "owner": "KayKit",
711
+ "attribution": null,
712
+ "notes": "From the Homie starter library (kaykit-medieval-hexagon); the pack's own licence text: licenses/kaykit-medieval-hexagon.txt. `game new` fetches the file; the repository holds no models."
713
+ },
714
+ "measured": {
715
+ "tris": 220,
716
+ "materials": 1,
717
+ "drawCalls": 1,
718
+ "texturePx": 512,
719
+ "bones": 0,
720
+ "clips": 0,
721
+ "heightM": 1.213,
722
+ "box": {
723
+ "size": [
724
+ 0.685,
725
+ 1.213,
726
+ 0.72
727
+ ]
728
+ },
729
+ "glbKB": 8
730
+ },
731
+ "made": {
732
+ "steps": [
733
+ {
734
+ "what": "library",
735
+ "item": "kaykit-medieval-hexagon/tree-single-b",
736
+ "sha256": "1d7d459243468b020c39d9a37902696d5bef489305855ded574cdfe56e826f4e"
737
+ }
738
+ ]
739
+ },
740
+ "review": {
741
+ "state": "auto"
742
+ },
743
+ "inGame": {
744
+ "heightM": 3.3
745
+ }
746
+ },
747
+ {
748
+ "id": "rock",
749
+ "kind": "prop",
750
+ "tier": "prop",
751
+ "card": "Places/Rock",
752
+ "route": "library",
753
+ "from": {
754
+ "library": "homie-starter",
755
+ "version": "v0",
756
+ "pack": "kaykit-medieval-hexagon",
757
+ "packLabel": "KayKit Medieval Hexagon",
758
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Medieval-Hexagon-Pack-1.0",
759
+ "item": "kaykit-medieval-hexagon/rock-single-e",
760
+ "author": "KayKit",
761
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Medieval-Hexagon-Pack-1.0",
762
+ "source": "addons/kaykit_medieval_hexagon_pack/Assets/gltf/decoration/nature/rock_single_E.gltf",
763
+ "sha256": "b9d650d1ca2f3545e4e61b57b85d0bfb9f7adf95abe5d637c72eec24cf2c04a1",
764
+ "paletteSwap": false
765
+ },
766
+ "files": [
767
+ {
768
+ "role": "model",
769
+ "path": "public/models/rock.glb",
770
+ "bytes": 7424,
771
+ "sha256": "b9d650d1ca2f3545e4e61b57b85d0bfb9f7adf95abe5d637c72eec24cf2c04a1"
772
+ }
773
+ ],
774
+ "license": {
775
+ "remix": "include",
776
+ "kind": "cc0",
777
+ "spdx": "CC0-1.0",
778
+ "owner": "KayKit",
779
+ "attribution": null,
780
+ "notes": "From the Homie starter library (kaykit-medieval-hexagon); the pack's own licence text: licenses/kaykit-medieval-hexagon.txt. `game new` fetches the file; the repository holds no models."
781
+ },
782
+ "measured": {
783
+ "tris": 71,
784
+ "materials": 1,
785
+ "drawCalls": 1,
786
+ "texturePx": 512,
787
+ "bones": 0,
788
+ "clips": 0,
789
+ "heightM": 0.195,
790
+ "box": {
791
+ "size": [
792
+ 0.488,
793
+ 0.195,
794
+ 0.347
795
+ ]
796
+ },
797
+ "glbKB": 7
798
+ },
799
+ "made": {
800
+ "steps": [
801
+ {
802
+ "what": "library",
803
+ "item": "kaykit-medieval-hexagon/rock-single-e",
804
+ "sha256": "b9d650d1ca2f3545e4e61b57b85d0bfb9f7adf95abe5d637c72eec24cf2c04a1"
805
+ }
806
+ ]
807
+ },
808
+ "review": {
809
+ "state": "auto"
810
+ },
811
+ "inGame": {
812
+ "heightM": 0.75
813
+ }
814
+ },
815
+ {
816
+ "id": "rocks",
817
+ "kind": "prop",
818
+ "tier": "prop",
819
+ "card": "Places/Rocks",
820
+ "route": "library",
821
+ "from": {
822
+ "library": "homie-starter",
823
+ "version": "v0",
824
+ "pack": "kaykit-medieval-hexagon",
825
+ "packLabel": "KayKit Medieval Hexagon",
826
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Medieval-Hexagon-Pack-1.0",
827
+ "item": "kaykit-medieval-hexagon/rock-single-c",
828
+ "author": "KayKit",
829
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Medieval-Hexagon-Pack-1.0",
830
+ "source": "addons/kaykit_medieval_hexagon_pack/Assets/gltf/decoration/nature/rock_single_C.gltf",
831
+ "sha256": "70f2b56a7b2fe451c2d64f23940f95fb1c39838de096a590d851015551a11515",
832
+ "paletteSwap": false
833
+ },
834
+ "files": [
835
+ {
836
+ "role": "model",
837
+ "path": "public/models/rocks.glb",
838
+ "bytes": 6712,
839
+ "sha256": "70f2b56a7b2fe451c2d64f23940f95fb1c39838de096a590d851015551a11515"
840
+ }
841
+ ],
842
+ "license": {
843
+ "remix": "include",
844
+ "kind": "cc0",
845
+ "spdx": "CC0-1.0",
846
+ "owner": "KayKit",
847
+ "attribution": null,
848
+ "notes": "From the Homie starter library (kaykit-medieval-hexagon); the pack's own licence text: licenses/kaykit-medieval-hexagon.txt. `game new` fetches the file; the repository holds no models."
849
+ },
850
+ "measured": {
851
+ "tris": 40,
852
+ "materials": 1,
853
+ "drawCalls": 1,
854
+ "texturePx": 512,
855
+ "bones": 0,
856
+ "clips": 0,
857
+ "heightM": 0.195,
858
+ "box": {
859
+ "size": [
860
+ 0.344,
861
+ 0.195,
862
+ 0.344
863
+ ]
864
+ },
865
+ "glbKB": 7
866
+ },
867
+ "made": {
868
+ "steps": [
869
+ {
870
+ "what": "library",
871
+ "item": "kaykit-medieval-hexagon/rock-single-c",
872
+ "sha256": "70f2b56a7b2fe451c2d64f23940f95fb1c39838de096a590d851015551a11515"
873
+ }
874
+ ]
875
+ },
876
+ "review": {
877
+ "state": "auto"
878
+ },
879
+ "inGame": {
880
+ "heightM": 0.55
881
+ }
882
+ },
883
+ {
884
+ "id": "rogue",
885
+ "kind": "character",
886
+ "tier": "hero",
887
+ "card": "Players/Rogue",
888
+ "route": "library",
889
+ "from": {
890
+ "library": "homie-starter",
891
+ "version": "v0",
892
+ "pack": "kaykit-adventurers",
893
+ "packLabel": "KayKit Adventurers",
894
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Adventures-1.0",
895
+ "item": "kaykit-adventurers/rogue",
896
+ "author": "KayKit",
897
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Adventures-1.0",
898
+ "source": "addons/kaykit_character_pack_adventures/Characters/gltf/Rogue.glb",
899
+ "sha256": "b9c0bcc9c3e25fb746b3f8c034a8f1e46a3fb18112675fc8fd3ab4d70673a14f",
900
+ "paletteSwap": true
901
+ },
902
+ "files": [
903
+ {
904
+ "role": "model",
905
+ "path": "public/models/rogue.glb",
906
+ "bytes": 2047336,
907
+ "sha256": "b9c0bcc9c3e25fb746b3f8c034a8f1e46a3fb18112675fc8fd3ab4d70673a14f"
908
+ }
909
+ ],
910
+ "license": {
911
+ "remix": "include",
912
+ "kind": "cc0",
913
+ "spdx": "CC0-1.0",
914
+ "owner": "KayKit",
915
+ "attribution": null,
916
+ "notes": "From the Homie starter library (kaykit-adventurers); the pack's own licence text: licenses/kaykit-adventurers.txt. `game new` fetches the file, makes the character phone-sized and bakes its clips; the repository holds no models."
917
+ },
918
+ "measured": {
919
+ "tris": 6377,
920
+ "materials": 1,
921
+ "drawCalls": 12,
922
+ "texturePx": 1024,
923
+ "bones": 41,
924
+ "clips": 76,
925
+ "heightM": 2.187,
926
+ "box": {
927
+ "size": [
928
+ 2.945,
929
+ 2.187,
930
+ 1.477
931
+ ]
932
+ },
933
+ "glbKB": 1999
934
+ },
935
+ "made": {
936
+ "steps": [
937
+ {
938
+ "what": "library",
939
+ "item": "kaykit-adventurers/rogue",
940
+ "sha256": "b9c0bcc9c3e25fb746b3f8c034a8f1e46a3fb18112675fc8fd3ab4d70673a14f"
941
+ }
942
+ ]
943
+ },
944
+ "review": {
945
+ "state": "auto"
946
+ },
947
+ "rig": {
948
+ "heightM": 1.45,
949
+ "keep": [
950
+ "Knife",
951
+ "Knife_Offhand",
952
+ "Rogue_Cape"
953
+ ],
954
+ "verbs": [
955
+ "idle",
956
+ "walk",
957
+ "run",
958
+ "jump",
959
+ "fall",
960
+ "land",
961
+ "attack",
962
+ "cast",
963
+ "hit",
964
+ "die",
965
+ "emote",
966
+ "win"
967
+ ],
968
+ "note": "`game new` runs the character pipeline (lib/characters.mjs): joints to the skeleton standard, the held things kept merged into one skinned mesh, the clips into public/anims/<skeleton>.glb"
969
+ }
970
+ },
971
+ {
972
+ "id": "rogue-hooded",
973
+ "kind": "character",
974
+ "tier": "hero",
975
+ "card": "Players/Hooded Rogue",
976
+ "route": "library",
977
+ "from": {
978
+ "library": "homie-starter",
979
+ "version": "v0",
980
+ "pack": "kaykit-adventurers",
981
+ "packLabel": "KayKit Adventurers",
982
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Adventures-1.0",
983
+ "item": "kaykit-adventurers/rogue-hooded",
984
+ "author": "KayKit",
985
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Adventures-1.0",
986
+ "source": "addons/kaykit_character_pack_adventures/Characters/gltf/Rogue_Hooded.glb",
987
+ "sha256": "b9ecf057463cc606f6244413dd179ec62941d9ebc1a280a65ae21b96bcfb1c55",
988
+ "paletteSwap": true
989
+ },
990
+ "files": [
991
+ {
992
+ "role": "model",
993
+ "path": "public/models/rogue-hooded.glb",
994
+ "bytes": 2041472,
995
+ "sha256": "b9ecf057463cc606f6244413dd179ec62941d9ebc1a280a65ae21b96bcfb1c55"
996
+ }
997
+ ],
998
+ "license": {
999
+ "remix": "include",
1000
+ "kind": "cc0",
1001
+ "spdx": "CC0-1.0",
1002
+ "owner": "KayKit",
1003
+ "attribution": null,
1004
+ "notes": "From the Homie starter library (kaykit-adventurers); the pack's own licence text: licenses/kaykit-adventurers.txt. `game new` fetches the file, makes the character phone-sized and bakes its clips; the repository holds no models."
1005
+ },
1006
+ "measured": {
1007
+ "tris": 6035,
1008
+ "materials": 1,
1009
+ "drawCalls": 12,
1010
+ "texturePx": 1024,
1011
+ "bones": 41,
1012
+ "clips": 76,
1013
+ "heightM": 2.251,
1014
+ "box": {
1015
+ "size": [
1016
+ 2.945,
1017
+ 2.251,
1018
+ 1.548
1019
+ ]
1020
+ },
1021
+ "glbKB": 1994
1022
+ },
1023
+ "made": {
1024
+ "steps": [
1025
+ {
1026
+ "what": "library",
1027
+ "item": "kaykit-adventurers/rogue-hooded",
1028
+ "sha256": "b9ecf057463cc606f6244413dd179ec62941d9ebc1a280a65ae21b96bcfb1c55"
1029
+ }
1030
+ ]
1031
+ },
1032
+ "review": {
1033
+ "state": "auto"
1034
+ },
1035
+ "rig": {
1036
+ "heightM": 1.45,
1037
+ "keep": [
1038
+ "Knife",
1039
+ "Knife_Offhand",
1040
+ "Rogue_Cape"
1041
+ ],
1042
+ "verbs": [
1043
+ "idle",
1044
+ "walk",
1045
+ "run",
1046
+ "jump",
1047
+ "fall",
1048
+ "land",
1049
+ "attack",
1050
+ "cast",
1051
+ "hit",
1052
+ "die",
1053
+ "emote",
1054
+ "win"
1055
+ ],
1056
+ "note": "`game new` runs the character pipeline (lib/characters.mjs): joints to the skeleton standard, the held things kept merged into one skinned mesh, the clips into public/anims/<skeleton>.glb"
1057
+ }
1058
+ },
1059
+ {
1060
+ "id": "skeleton-mage",
1061
+ "kind": "creature",
1062
+ "tier": "npc",
1063
+ "card": "Creatures/Skeleton Mage",
1064
+ "route": "library",
1065
+ "from": {
1066
+ "library": "homie-starter",
1067
+ "version": "v0",
1068
+ "pack": "kaykit-skeletons",
1069
+ "packLabel": "KayKit Skeletons",
1070
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Skeletons-1.0",
1071
+ "item": "kaykit-skeletons/skeleton-mage",
1072
+ "author": "KayKit",
1073
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Skeletons-1.0",
1074
+ "source": "addons/kaykit_character_pack_skeletons/Characters/gltf/Skeleton_Mage.glb",
1075
+ "sha256": "25740ef86df575c0b5e375505e84af168243554ceabb426693a2790990848a0b",
1076
+ "paletteSwap": false
1077
+ },
1078
+ "files": [
1079
+ {
1080
+ "role": "model",
1081
+ "path": "public/models/skeleton-mage.glb",
1082
+ "bytes": 2623220,
1083
+ "sha256": "25740ef86df575c0b5e375505e84af168243554ceabb426693a2790990848a0b"
1084
+ }
1085
+ ],
1086
+ "license": {
1087
+ "remix": "include",
1088
+ "kind": "cc0",
1089
+ "spdx": "CC0-1.0",
1090
+ "owner": "KayKit",
1091
+ "attribution": null,
1092
+ "notes": "From the Homie starter library (kaykit-skeletons); the pack's own licence text: licenses/kaykit-skeletons.txt. `game new` fetches the file, makes the character phone-sized and bakes its clips; the repository holds no models."
1093
+ },
1094
+ "measured": {
1095
+ "tris": 4588,
1096
+ "materials": 2,
1097
+ "drawCalls": 9,
1098
+ "texturePx": 1024,
1099
+ "bones": 41,
1100
+ "clips": 95,
1101
+ "heightM": 2.63,
1102
+ "box": {
1103
+ "size": [
1104
+ 1.938,
1105
+ 2.63,
1106
+ 1.735
1107
+ ]
1108
+ },
1109
+ "glbKB": 2562
1110
+ },
1111
+ "made": {
1112
+ "steps": [
1113
+ {
1114
+ "what": "library",
1115
+ "item": "kaykit-skeletons/skeleton-mage",
1116
+ "sha256": "25740ef86df575c0b5e375505e84af168243554ceabb426693a2790990848a0b"
1117
+ }
1118
+ ]
1119
+ },
1120
+ "review": {
1121
+ "state": "auto"
1122
+ },
1123
+ "rig": {
1124
+ "heightM": 1.45,
1125
+ "keep": [
1126
+ "Skeleton_Mage_Hat"
1127
+ ],
1128
+ "verbs": [
1129
+ "idle",
1130
+ "walk",
1131
+ "run",
1132
+ "jump",
1133
+ "fall",
1134
+ "land",
1135
+ "attack",
1136
+ "cast",
1137
+ "hit",
1138
+ "die",
1139
+ "emote",
1140
+ "win"
1141
+ ],
1142
+ "note": "`game new` runs the character pipeline (lib/characters.mjs): joints to the skeleton standard, the held things kept merged into one skinned mesh, the clips into public/anims/<skeleton>.glb"
1143
+ }
1144
+ },
1145
+ {
1146
+ "id": "skeleton-minion",
1147
+ "kind": "creature",
1148
+ "tier": "npc",
1149
+ "card": "Creatures/Skeleton Minion",
1150
+ "route": "library",
1151
+ "from": {
1152
+ "library": "homie-starter",
1153
+ "version": "v0",
1154
+ "pack": "kaykit-skeletons",
1155
+ "packLabel": "KayKit Skeletons",
1156
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Skeletons-1.0",
1157
+ "item": "kaykit-skeletons/skeleton-minion",
1158
+ "author": "KayKit",
1159
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Skeletons-1.0",
1160
+ "source": "addons/kaykit_character_pack_skeletons/Characters/gltf/Skeleton_Minion.glb",
1161
+ "sha256": "a0755a259290a93b5aca26910eea2ef896efcce0e0f1fe91b7818d11ef7c6ca9",
1162
+ "paletteSwap": false
1163
+ },
1164
+ "files": [
1165
+ {
1166
+ "role": "model",
1167
+ "path": "public/models/skeleton-minion.glb",
1168
+ "bytes": 2646224,
1169
+ "sha256": "a0755a259290a93b5aca26910eea2ef896efcce0e0f1fe91b7818d11ef7c6ca9"
1170
+ }
1171
+ ],
1172
+ "license": {
1173
+ "remix": "include",
1174
+ "kind": "cc0",
1175
+ "spdx": "CC0-1.0",
1176
+ "owner": "KayKit",
1177
+ "attribution": null,
1178
+ "notes": "From the Homie starter library (kaykit-skeletons); the pack's own licence text: licenses/kaykit-skeletons.txt. `game new` fetches the file, makes the character phone-sized and bakes its clips; the repository holds no models."
1179
+ },
1180
+ "measured": {
1181
+ "tris": 5288,
1182
+ "materials": 2,
1183
+ "drawCalls": 9,
1184
+ "texturePx": 1024,
1185
+ "bones": 41,
1186
+ "clips": 95,
1187
+ "heightM": 2.166,
1188
+ "box": {
1189
+ "size": [
1190
+ 1.938,
1191
+ 2.166,
1192
+ 0.912
1193
+ ]
1194
+ },
1195
+ "glbKB": 2584
1196
+ },
1197
+ "made": {
1198
+ "steps": [
1199
+ {
1200
+ "what": "library",
1201
+ "item": "kaykit-skeletons/skeleton-minion",
1202
+ "sha256": "a0755a259290a93b5aca26910eea2ef896efcce0e0f1fe91b7818d11ef7c6ca9"
1203
+ }
1204
+ ]
1205
+ },
1206
+ "review": {
1207
+ "state": "auto"
1208
+ },
1209
+ "rig": {
1210
+ "heightM": 1.45,
1211
+ "keep": [],
1212
+ "verbs": [
1213
+ "idle",
1214
+ "walk",
1215
+ "run",
1216
+ "jump",
1217
+ "fall",
1218
+ "land",
1219
+ "attack",
1220
+ "cast",
1221
+ "hit",
1222
+ "die",
1223
+ "emote",
1224
+ "win"
1225
+ ],
1226
+ "note": "`game new` runs the character pipeline (lib/characters.mjs): joints to the skeleton standard, the held things kept merged into one skinned mesh, the clips into public/anims/<skeleton>.glb"
1227
+ }
1228
+ },
1229
+ {
1230
+ "id": "skeleton-rogue",
1231
+ "kind": "creature",
1232
+ "tier": "npc",
1233
+ "card": "Creatures/Skeleton Rogue",
1234
+ "route": "library",
1235
+ "from": {
1236
+ "library": "homie-starter",
1237
+ "version": "v0",
1238
+ "pack": "kaykit-skeletons",
1239
+ "packLabel": "KayKit Skeletons",
1240
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Skeletons-1.0",
1241
+ "item": "kaykit-skeletons/skeleton-rogue",
1242
+ "author": "KayKit",
1243
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Skeletons-1.0",
1244
+ "source": "addons/kaykit_character_pack_skeletons/Characters/gltf/Skeleton_Rogue.glb",
1245
+ "sha256": "31a74554cbc39cb802e853d951955189a23377b20e437b983d67d067c55a8001",
1246
+ "paletteSwap": false
1247
+ },
1248
+ "files": [
1249
+ {
1250
+ "role": "model",
1251
+ "path": "public/models/skeleton-rogue.glb",
1252
+ "bytes": 2656192,
1253
+ "sha256": "31a74554cbc39cb802e853d951955189a23377b20e437b983d67d067c55a8001"
1254
+ }
1255
+ ],
1256
+ "license": {
1257
+ "remix": "include",
1258
+ "kind": "cc0",
1259
+ "spdx": "CC0-1.0",
1260
+ "owner": "KayKit",
1261
+ "attribution": null,
1262
+ "notes": "From the Homie starter library (kaykit-skeletons); the pack's own licence text: licenses/kaykit-skeletons.txt. `game new` fetches the file, makes the character phone-sized and bakes its clips; the repository holds no models."
1263
+ },
1264
+ "measured": {
1265
+ "tris": 5278,
1266
+ "materials": 2,
1267
+ "drawCalls": 10,
1268
+ "texturePx": 1024,
1269
+ "bones": 41,
1270
+ "clips": 95,
1271
+ "heightM": 2.308,
1272
+ "box": {
1273
+ "size": [
1274
+ 1.943,
1275
+ 2.308,
1276
+ 1.153
1277
+ ]
1278
+ },
1279
+ "glbKB": 2594
1280
+ },
1281
+ "made": {
1282
+ "steps": [
1283
+ {
1284
+ "what": "library",
1285
+ "item": "kaykit-skeletons/skeleton-rogue",
1286
+ "sha256": "31a74554cbc39cb802e853d951955189a23377b20e437b983d67d067c55a8001"
1287
+ }
1288
+ ]
1289
+ },
1290
+ "review": {
1291
+ "state": "auto"
1292
+ },
1293
+ "rig": {
1294
+ "heightM": 1.45,
1295
+ "keep": [
1296
+ "Skeleton_Rogue_Hood",
1297
+ "Skeleton_Rogue_Cape"
1298
+ ],
1299
+ "verbs": [
1300
+ "idle",
1301
+ "walk",
1302
+ "run",
1303
+ "jump",
1304
+ "fall",
1305
+ "land",
1306
+ "attack",
1307
+ "cast",
1308
+ "hit",
1309
+ "die",
1310
+ "emote",
1311
+ "win"
1312
+ ],
1313
+ "note": "`game new` runs the character pipeline (lib/characters.mjs): joints to the skeleton standard, the held things kept merged into one skinned mesh, the clips into public/anims/<skeleton>.glb"
1314
+ }
1315
+ },
1316
+ {
1317
+ "id": "skeleton-warrior",
1318
+ "kind": "creature",
1319
+ "tier": "npc",
1320
+ "card": "Creatures/Skeleton Warrior",
1321
+ "route": "library",
1322
+ "from": {
1323
+ "library": "homie-starter",
1324
+ "version": "v0",
1325
+ "pack": "kaykit-skeletons",
1326
+ "packLabel": "KayKit Skeletons",
1327
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Skeletons-1.0",
1328
+ "item": "kaykit-skeletons/skeleton-warrior",
1329
+ "author": "KayKit",
1330
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Character-Pack-Skeletons-1.0",
1331
+ "source": "addons/kaykit_character_pack_skeletons/Characters/gltf/Skeleton_Warrior.glb",
1332
+ "sha256": "0a5413d3c2a6685c95a5083d3f0b18b5ded839852235fca7250e6e472fd0cf0f",
1333
+ "paletteSwap": false
1334
+ },
1335
+ "files": [
1336
+ {
1337
+ "role": "model",
1338
+ "path": "public/models/skeleton-warrior.glb",
1339
+ "bytes": 2670708,
1340
+ "sha256": "0a5413d3c2a6685c95a5083d3f0b18b5ded839852235fca7250e6e472fd0cf0f"
1341
+ }
1342
+ ],
1343
+ "license": {
1344
+ "remix": "include",
1345
+ "kind": "cc0",
1346
+ "spdx": "CC0-1.0",
1347
+ "owner": "KayKit",
1348
+ "attribution": null,
1349
+ "notes": "From the Homie starter library (kaykit-skeletons); the pack's own licence text: licenses/kaykit-skeletons.txt. `game new` fetches the file, makes the character phone-sized and bakes its clips; the repository holds no models."
1350
+ },
1351
+ "measured": {
1352
+ "tris": 5934,
1353
+ "materials": 2,
1354
+ "drawCalls": 10,
1355
+ "texturePx": 1024,
1356
+ "bones": 41,
1357
+ "clips": 95,
1358
+ "heightM": 2.59,
1359
+ "box": {
1360
+ "size": [
1361
+ 1.943,
1362
+ 2.59,
1363
+ 1.459
1364
+ ]
1365
+ },
1366
+ "glbKB": 2608
1367
+ },
1368
+ "made": {
1369
+ "steps": [
1370
+ {
1371
+ "what": "library",
1372
+ "item": "kaykit-skeletons/skeleton-warrior",
1373
+ "sha256": "0a5413d3c2a6685c95a5083d3f0b18b5ded839852235fca7250e6e472fd0cf0f"
1374
+ }
1375
+ ]
1376
+ },
1377
+ "review": {
1378
+ "state": "auto"
1379
+ },
1380
+ "rig": {
1381
+ "heightM": 1.45,
1382
+ "keep": [
1383
+ "Skeleton_Warrior_Helmet"
1384
+ ],
1385
+ "verbs": [
1386
+ "idle",
1387
+ "walk",
1388
+ "run",
1389
+ "jump",
1390
+ "fall",
1391
+ "land",
1392
+ "attack",
1393
+ "cast",
1394
+ "hit",
1395
+ "die",
1396
+ "emote",
1397
+ "win"
1398
+ ],
1399
+ "note": "`game new` runs the character pipeline (lib/characters.mjs): joints to the skeleton standard, the held things kept merged into one skinned mesh, the clips into public/anims/<skeleton>.glb"
1400
+ }
1401
+ },
1402
+ {
1403
+ "id": "torch",
1404
+ "kind": "prop",
1405
+ "tier": "prop",
1406
+ "card": "Places/Torch",
1407
+ "route": "library",
1408
+ "from": {
1409
+ "library": "homie-starter",
1410
+ "version": "v0",
1411
+ "pack": "kaykit-dungeon",
1412
+ "packLabel": "KayKit Dungeon Remastered",
1413
+ "packUrl": "https://github.com/KayKit-Game-Assets/KayKit-Dungeon-Remastered-1.0",
1414
+ "item": "kaykit-dungeon/torch-lit",
1415
+ "author": "KayKit",
1416
+ "origin": "https://github.com/KayKit-Game-Assets/KayKit-Dungeon-Remastered-1.0",
1417
+ "source": "addons/kaykit_dungeon_remastered/Assets/gltf/torch_lit.gltf.glb",
1418
+ "sha256": "3ec3cefa422b69365f7a203742152957fef17923a2d167227c65ed78d4fb6170",
1419
+ "paletteSwap": false
1420
+ },
1421
+ "files": [
1422
+ {
1423
+ "role": "model",
1424
+ "path": "public/models/torch.glb",
1425
+ "bytes": 11128,
1426
+ "sha256": "3ec3cefa422b69365f7a203742152957fef17923a2d167227c65ed78d4fb6170"
1427
+ }
1428
+ ],
1429
+ "license": {
1430
+ "remix": "include",
1431
+ "kind": "cc0",
1432
+ "spdx": "CC0-1.0",
1433
+ "owner": "KayKit",
1434
+ "attribution": null,
1435
+ "notes": "From the Homie starter library (kaykit-dungeon); the pack's own licence text: licenses/kaykit-dungeon.txt. `game new` fetches the file; the repository holds no models."
1436
+ },
1437
+ "measured": {
1438
+ "tris": 270,
1439
+ "materials": 1,
1440
+ "drawCalls": 1,
1441
+ "texturePx": 512,
1442
+ "bones": 0,
1443
+ "clips": 0,
1444
+ "heightM": 1.126,
1445
+ "box": {
1446
+ "size": [
1447
+ 0.55,
1448
+ 1.126,
1449
+ 0.55
1450
+ ]
1451
+ },
1452
+ "glbKB": 11
1453
+ },
1454
+ "made": {
1455
+ "steps": [
1456
+ {
1457
+ "what": "library",
1458
+ "item": "kaykit-dungeon/torch-lit",
1459
+ "sha256": "3ec3cefa422b69365f7a203742152957fef17923a2d167227c65ed78d4fb6170"
1460
+ }
1461
+ ]
1462
+ },
1463
+ "review": {
1464
+ "state": "auto"
1465
+ },
1466
+ "inGame": {
1467
+ "heightM": 1.6
1468
+ }
1469
+ }
1470
+ ]
1471
+ }