@homie-rocks/studio 0.24.5 → 0.25.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.
- package/CHANGELOG.md +32 -1
- package/README.md +47 -1
- package/assets/animate.ts +521 -0
- package/assets/render-page.ts +77 -4
- package/bin/homie-studio.mjs +13 -4
- package/lib/art-cli.mjs +105 -5
- package/lib/art-tools.mjs +168 -1
- package/lib/asset-check.mjs +72 -5
- package/lib/characters.mjs +380 -0
- package/lib/clips.mjs +417 -0
- package/lib/decisions.mjs +38 -8
- package/lib/mcp-tools.mjs +1 -1
- package/lib/mcp.mjs +2 -2
- package/lib/optimise.mjs +79 -3
- package/lib/render3d.mjs +2 -0
- package/lib/rig.mjs +431 -0
- package/lib/scaffold.mjs +7 -0
- package/lib/studio.mjs +18 -3
- package/lib/style-board.mjs +3 -1
- package/lib/template-history.json +39 -0
- package/mcp/ui/animation.js +56 -0
- package/mcp/ui/card.css +4 -0
- package/mcp/ui/cast.js +36 -2
- package/mcp/ui/lineup.js +7 -7
- package/package.json +5 -1
- package/starters/hero-rush-3d/assets/RIGHTS.md +163 -0
- package/starters/hero-rush-3d/assets/manifest.json +1471 -0
- package/starters/hero-rush-3d/credits.json +40 -0
- package/starters/hero-rush-3d/game.json +11 -0
- package/starters/hero-rush-3d/index.html +20 -0
- package/starters/hero-rush-3d/lab.json +32 -0
- package/starters/hero-rush-3d/src/main.ts +2361 -0
- package/starters/hero-rush-3d/style.json +68 -0
- package/starters/hero-rush-3d/tunables.json +32 -0
- package/worker/version.mjs +1 -1
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"v": 1,
|
|
3
|
+
"palette": {
|
|
4
|
+
"bg": "#cfe6f2",
|
|
5
|
+
"ink": "#1e2a38",
|
|
6
|
+
"accent": "#e8833a",
|
|
7
|
+
"accent2": "#4fa36a",
|
|
8
|
+
"danger": "#d9483b",
|
|
9
|
+
"good": "#5bb36a",
|
|
10
|
+
"gold": "#fdbf41",
|
|
11
|
+
"ramp": [
|
|
12
|
+
"#9fcfe6",
|
|
13
|
+
"#cfe6f2",
|
|
14
|
+
"#f6f1e4",
|
|
15
|
+
"#7cc46a",
|
|
16
|
+
"#4fa36a",
|
|
17
|
+
"#2f7a52",
|
|
18
|
+
"#007650",
|
|
19
|
+
"#fdbf41",
|
|
20
|
+
"#f68537",
|
|
21
|
+
"#e8833a",
|
|
22
|
+
"#9f5e48",
|
|
23
|
+
"#6b4a3a",
|
|
24
|
+
"#99a6ab",
|
|
25
|
+
"#a63c49",
|
|
26
|
+
"#3d395c",
|
|
27
|
+
"#ffffff"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
"fonts": {
|
|
31
|
+
"display": "Lilita One",
|
|
32
|
+
"body": "Nunito"
|
|
33
|
+
},
|
|
34
|
+
"light": {
|
|
35
|
+
"time": "morning",
|
|
36
|
+
"key": [
|
|
37
|
+
-0.5,
|
|
38
|
+
-1,
|
|
39
|
+
-0.35
|
|
40
|
+
],
|
|
41
|
+
"intensity": 2.3,
|
|
42
|
+
"hardness": 0.4,
|
|
43
|
+
"sky": "#dcedf5",
|
|
44
|
+
"ground": "#86c47c",
|
|
45
|
+
"fog": 0.3,
|
|
46
|
+
"bloom": 0.1
|
|
47
|
+
},
|
|
48
|
+
"camera": {
|
|
49
|
+
"angle": "low-3/4",
|
|
50
|
+
"projection": "perspective",
|
|
51
|
+
"pitch": 38,
|
|
52
|
+
"distance": 13,
|
|
53
|
+
"fov": 42
|
|
54
|
+
},
|
|
55
|
+
"render": "painted",
|
|
56
|
+
"materials": {
|
|
57
|
+
"model": "hand-painted",
|
|
58
|
+
"outline": false,
|
|
59
|
+
"texelDensity": 256,
|
|
60
|
+
"atlas": false
|
|
61
|
+
},
|
|
62
|
+
"rev": {
|
|
63
|
+
"style.palette": 1,
|
|
64
|
+
"style.ui": 1,
|
|
65
|
+
"style.light": 1,
|
|
66
|
+
"style.camera": 1
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"windupMs": { "value": 240, "min": 0, "max": 500, "step": 10, "unit": "ms", "group": "Swing", "note": "From the press to the moment the swing lands: the anticipation everyone sees coming" },
|
|
3
|
+
"swingSkip": { "value": 0.15, "min": 0, "max": 0.5, "step": 0.01, "group": "Swing", "note": "How much of the swing clip's own wind-up the hero skips (the windup above is what players wait for)" },
|
|
4
|
+
"swingRestMs": { "value": 260, "min": 0, "max": 900, "step": 10, "unit": "ms", "group": "Swing", "note": "How long after a swing lands before the next can start" },
|
|
5
|
+
"knockRange": { "value": 2.1, "min": 1.2, "max": 4, "step": 0.02, "unit": "m", "group": "Swing", "note": "How far a swing reaches" },
|
|
6
|
+
"swingArc": { "value": 200, "min": 60, "max": 360, "step": 5, "unit": "deg", "group": "Swing", "note": "How wide the swing sweeps in front of the hero" },
|
|
7
|
+
"hitStopMs": { "value": 70, "min": 0, "max": 200, "step": 5, "unit": "ms", "group": "Swing", "note": "The hit lands: the struck hero holds, flashes and flinches before it flies" },
|
|
8
|
+
"knockDistance": { "value": 3.4, "min": 0.8, "max": 8, "step": 0.1, "unit": "m", "group": "Swing", "note": "How far a hit sends a hero, the same at any frame rate" },
|
|
9
|
+
"knockMs": { "value": 420, "min": 120, "max": 1000, "step": 10, "unit": "ms", "group": "Swing", "note": "How long the slide takes" },
|
|
10
|
+
"knockEase": { "value": 4, "min": 1, "max": 6, "step": 0.1, "group": "Swing", "note": "1 slides at one speed; higher leaves faster and eases into the stop" },
|
|
11
|
+
"squash": { "value": 0.3, "min": 0, "max": 0.8, "step": 0.01, "group": "Swing", "note": "How much a flying hero stretches along the hit, and squashes when it stops" },
|
|
12
|
+
"settleMs": { "value": 260, "min": 0, "max": 700, "step": 10, "unit": "ms", "group": "Swing", "note": "The wobble after the stop (overlap)" },
|
|
13
|
+
"flashMs": { "value": 110, "min": 0, "max": 300, "step": 5, "unit": "ms", "group": "Swing", "note": "How long the struck hero flashes white" },
|
|
14
|
+
"shake": { "value": 0.16, "min": 0, "max": 0.6, "step": 0.01, "unit": "m", "group": "Swing", "note": "The camera's kick when you hit or are hit" },
|
|
15
|
+
"sparks": { "value": 9, "min": 0, "max": 24, "step": 1, "group": "Swing", "note": "Sparks thrown off the hit" },
|
|
16
|
+
"ringMs": { "value": 520, "min": 150, "max": 2000, "step": 10, "unit": "ms", "group": "Swing", "note": "How long a slash and a hit's ring last" },
|
|
17
|
+
"jumpHeight": { "value": 1.05, "min": 0.3, "max": 2.5, "step": 0.05, "unit": "m", "group": "Jump", "note": "How high a jump goes (above 0.3 m a swing passes under)" },
|
|
18
|
+
"jumpRise": { "value": 0.3, "min": 0.12, "max": 0.8, "step": 0.01, "unit": "s", "group": "Jump", "note": "How long it takes to reach the top" },
|
|
19
|
+
"fallFaster": { "value": 2.1, "min": 1, "max": 3.5, "step": 0.05, "group": "Jump", "note": "Down this much harder than up: higher feels heavier, snappier" },
|
|
20
|
+
"fade": { "value": 0.14, "min": 0, "max": 0.6, "step": 0.01, "unit": "s", "group": "Motion", "note": "How long one clip takes to blend into the next" },
|
|
21
|
+
"walkSpeed": { "value": 1.7, "min": 0.3, "max": 6, "step": 0.05, "unit": "m/s", "group": "Motion", "note": "The ground speed the walk clip's feet move at (feet slide when this is wrong)" },
|
|
22
|
+
"runSpeed": { "value": 4.6, "min": 1, "max": 12, "step": 0.05, "unit": "m/s", "group": "Motion", "note": "The ground speed the run clip's feet move at" },
|
|
23
|
+
"runFrom": { "value": 2.6, "min": 0.5, "max": 8, "step": 0.05, "unit": "m/s", "group": "Motion", "note": "From this speed up, the walk becomes a run" },
|
|
24
|
+
"actSpeed": { "value": 1.9, "min": 0.5, "max": 3, "step": 0.05, "group": "Motion", "note": "How fast the swing plays: higher is snappier" },
|
|
25
|
+
"jumpStretch": { "value": 0.22, "min": 0, "max": 0.5, "step": 0.01, "group": "Motion", "note": "How tall and thin a hero goes as it leaves the ground" },
|
|
26
|
+
"landSquash": { "value": 0.28, "min": 0, "max": 0.6, "step": 0.01, "group": "Motion", "note": "How flat it goes when it lands" },
|
|
27
|
+
"squashHz": { "value": 5.5, "min": 1, "max": 14, "step": 0.1, "unit": "Hz", "group": "Motion", "note": "How fast the squash springs back (lower wobbles longer)" },
|
|
28
|
+
"lean": { "value": 0.22, "min": 0, "max": 0.8, "step": 0.01, "group": "Motion", "note": "How far a hero banks into a turn and tips into a sprint" },
|
|
29
|
+
"flinch": { "value": 0.6, "min": 0, "max": 1.5, "step": 0.05, "group": "Motion", "note": "How strongly a hit jolts the upper body" },
|
|
30
|
+
"lookAt": { "value": 0.7, "min": 0, "max": 1, "step": 0.05, "group": "Motion", "note": "How much the head turns toward what it looks at" },
|
|
31
|
+
"spring": { "value": 0.5, "min": 0, "max": 1, "step": 0.05, "group": "Motion", "note": "How loose tails, ears and capes are (0 stiff, 1 floppy)" }
|
|
32
|
+
}
|
package/worker/version.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** The @homie-rocks/studio version this Worker code is (package.json's; a test keeps them equal). Cache-busts /_homie/site.js. */
|
|
2
|
-
export const STUDIO_VERSION_TAG = '0.
|
|
2
|
+
export const STUDIO_VERSION_TAG = '0.25.0';
|