@energy8platform/golem 0.2.1 → 0.5.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/README.md +28 -2
- package/dist/editor.css +50 -0
- package/dist/editor.js +1772 -1037
- package/dist/lib/cli.js +1575 -366
- package/dist/lib/cli.js.map +4 -4
- package/dist/lib/editor/controls-panel.d.ts +2 -0
- package/dist/lib/editor/stage.d.ts +1 -0
- package/dist/lib/editor/store.d.ts +212 -33
- package/dist/lib/editor-entry.js +1575 -366
- package/dist/lib/editor-entry.js.map +4 -4
- package/dist/lib/harness.js +328 -31
- package/dist/lib/interactive-bones.d.ts +37 -0
- package/dist/lib/interactive-editor.d.ts +80 -0
- package/dist/lib/interactive-editor.js +744 -0
- package/dist/lib/interactive-editor.js.map +7 -0
- package/dist/lib/preview/export-video.d.ts +12 -0
- package/dist/lib/preview/harness.d.ts +2 -0
- package/dist/lib/preview/render-preview.d.ts +6 -0
- package/dist/lib/rig-anim.d.ts +6 -3
- package/dist/lib/rig-check.d.ts +2 -1
- package/dist/lib/rig-constraints.d.ts +63 -0
- package/dist/lib/rig-control-qa.d.ts +319 -0
- package/dist/lib/rig-controls.d.ts +13 -0
- package/dist/lib/rig-format.d.ts +1469 -331
- package/dist/lib/rig-gates.d.ts +209 -0
- package/dist/lib/rig-mesh.d.ts +1 -0
- package/dist/lib/rig-motion.d.ts +22 -0
- package/dist/lib/rig-qa.d.ts +35 -0
- package/dist/lib/rig-quality.d.ts +12 -0
- package/dist/lib/rig-runtime.d.ts +43 -3
- package/dist/lib/rig-state.d.ts +3 -0
- package/dist/lib/rig-tools.d.ts +5 -1
- package/dist/lib/runtime.d.ts +3 -1
- package/dist/lib/runtime.js +306 -28
- package/dist/lib/runtime.js.map +4 -4
- package/dist/lib/tools.js +1557 -348
- package/dist/lib/tools.js.map +4 -4
- package/package.json +8 -2
package/README.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
Документ (`rig.json`, формат v2) — источник истины. Агент работает через MCP, человек — через вьюер и редактор в браузере (`npm run editor`). Рантайм — PixiJS v8.
|
|
4
4
|
|
|
5
|
+
Поддержан рабочий процесс для персонажей в полный рост: утверждённый арт + скрытые дорисовки,
|
|
6
|
+
плавное прохождение ключей, длинные IK-цепи, передача реквизита, запекание вторички, clipping,
|
|
7
|
+
редактирование весов и проверяемые прозрачные кадры/MP4 60 fps.
|
|
8
|
+
[Что изменилось, как использовать и результаты проверок](docs/verification-2026-09-27.md).
|
|
9
|
+
|
|
10
|
+
В 0.4 добавлен пилот параметрической мимики: независимые глаза, совместные формы
|
|
11
|
+
«улыбка × открытие рта», ползунки и ключевые формы в редакторе, дорожки параметров
|
|
12
|
+
и проверка сочетаний через реальный рендер. [Устройство и API](docs/expression-controls.md),
|
|
13
|
+
[воспроизводимый персонаж Milo](examples/expressions/README.md).
|
|
14
|
+
|
|
15
|
+
В 0.5 добавлен [редактор деталей и костей для встраиваемых превью](docs/interactive-editor.md):
|
|
16
|
+
правки мышью, группы, отмена и отдельные JSON-поправки. Поправки костей применяются
|
|
17
|
+
поверх параметрической мимики и сохраняются при смене анимации.
|
|
18
|
+
[Результаты объединения и проверок](docs/verification-2026-09-28.md).
|
|
19
|
+
|
|
5
20
|
```
|
|
6
21
|
src/rig-format.ts схема документа (zod) + семантическая валидация; v1: deform-треки, asset.frame (атлас)
|
|
7
22
|
src/rig-anim.ts чистая математика: easing, семплирование, Pose, аффинные матрицы костей, контуры слотов
|
|
@@ -13,6 +28,10 @@ src/rig-symbol.ts RigSymbol — адаптер под SymbolView из @ene
|
|
|
13
28
|
src/rig-presets.ts пресеты: idle_breathing, weight_shift, win_bounce, anticipation_shake, blink, mouth_talk, dim, symbol_idle, symbol_win
|
|
14
29
|
src/rig-tools.ts операции над документом, импорт слоёв (swap/bone), createSymbol, replaceAsset, layerPrompt
|
|
15
30
|
src/rig-check.ts автокритика без рендера: out_of_canvas, static_track, loop_seam, deform_flip, patch_offset, motion_pop, …
|
|
31
|
+
src/rig-motion.ts градиент/сглаживание/фиксация весов, attach-to-bone, запекание вторички
|
|
32
|
+
src/rig-quality.ts проходные ключи, скорость петли, вторичка, порядок слоёв, ориентиры сменных рисунков
|
|
33
|
+
src/rig-gates.ts пороги движения, контакты/пропорции, условия FX, реальные переходы AnimationState
|
|
34
|
+
src/rig-qa.ts манифесты кадров с хешами исходных данных и проверкой полноты
|
|
16
35
|
src/rig-history.ts снимки .rig-history/, undo, структурный diff
|
|
17
36
|
src/rig-atlas.ts упаковка PNG-слоёв в atlas.png с экструзией краёв
|
|
18
37
|
src/rig-templates.ts rig_save_as_preset: шаблон из готовой анимации (треки относительно rest, кости по role, множители)
|
|
@@ -157,6 +176,13 @@ golem editor --root public/assets/rigs # редактор над ригами
|
|
|
157
176
|
`public/`, vite dev перезагружает игру на каждую запись редактора. Спека:
|
|
158
177
|
`docs/superpowers/specs/2026-09-15-engine-integration-design.md`.
|
|
159
178
|
|
|
179
|
+
### Правки мышью прямо в превью
|
|
180
|
+
|
|
181
|
+
Отдельный браузерный модуль `@energy8platform/golem/interactive-editor` подключается к
|
|
182
|
+
`RigPlayer`: выбор по видимым пикселям, перемещение, масштаб по осям и углам, вращение,
|
|
183
|
+
группы связанных деталей, отмена и JSON с правками. [Подключение и ограничения](docs/interactive-editor.md).
|
|
184
|
+
Полный редактор по-прежнему отвечает за кости, веса, IK и ключи анимации.
|
|
185
|
+
|
|
160
186
|
### Настоящие данные
|
|
161
187
|
|
|
162
188
|
```bash
|
|
@@ -323,7 +349,7 @@ IK, тащить напрямую нельзя: жест перенаправл
|
|
|
323
349
|
## Шаг 4 — риг класса Spine: формат v2 и импорт настоящего Spine-проекта (ross)
|
|
324
350
|
|
|
325
351
|
Инструмент больше не «двигает картинки»: документ v2 — это меши с весами костей, регионы, пути, shear и режимы наследования,
|
|
326
|
-
ограничения IK (1–2
|
|
352
|
+
ограничения IK (1–2 кости с softness/stretch/compress; длинные цепи через CCD), transform (мировой и локальный, relative) и path (4 режима шага,
|
|
327
353
|
3 режима поворота, замкнутые и открытые пути), треки деформации вершин, порядка отрисовки, цвета слота и миксов ограничений.
|
|
328
354
|
Это своя реализация по документированной семантике Spine, не порт рантайма; spine-core используется только как оракул в тестах.
|
|
329
355
|
|
|
@@ -352,7 +378,7 @@ npm run ktx2 -- ross/ross.ktx2 ross/ross.png # транскодер из three
|
|
|
352
378
|
transform- и path-ограничения правят мировую матрицу и раскладываются обратно в локальные значения (иначе при неравномерном
|
|
353
379
|
масштабе родителя поворот «уезжает»); двухкостный IK при отрицательном масштабе добавляет 180° и зеркалит сгиб.
|
|
354
380
|
|
|
355
|
-
Не поддержано или
|
|
381
|
+
Не поддержано или отличается при импорте Spine: linked mesh, clipping/bounding box/point attachments (пропускаются с предупреждением; собственные clipping-маски Golem задаются через `slot.clip`), скины
|
|
356
382
|
сливаются в один с префиксом (переключения нет), physics 4.2 и sequence 4.1 нет, смешивание анимаций — наш `AnimationState`
|
|
357
383
|
(кроссфейд поз), а не MixBlend-треки; в локальном режиме transform-ограничения масштаб смешивается линейно (spine-core делит
|
|
358
384
|
на масштаб кости); IK у костей с нестандартным `inherit` приближённый.
|
package/dist/editor.css
CHANGED
|
@@ -698,4 +698,54 @@ h4 {
|
|
|
698
698
|
color: var(--fg2);
|
|
699
699
|
font-size: 11px;
|
|
700
700
|
}
|
|
701
|
+
.control-panel {
|
|
702
|
+
padding: 14px;
|
|
703
|
+
font-size: 12px;
|
|
704
|
+
}
|
|
705
|
+
.control-panel p {
|
|
706
|
+
color: #a9b2bf;
|
|
707
|
+
line-height: 1.5;
|
|
708
|
+
}
|
|
709
|
+
.control-panel label {
|
|
710
|
+
display: block;
|
|
711
|
+
margin: 12px 0;
|
|
712
|
+
}
|
|
713
|
+
.control-panel select {
|
|
714
|
+
width: 100%;
|
|
715
|
+
margin-top: 6px;
|
|
716
|
+
}
|
|
717
|
+
.control-slider span {
|
|
718
|
+
display: flex;
|
|
719
|
+
justify-content: space-between;
|
|
720
|
+
}
|
|
721
|
+
.control-slider input {
|
|
722
|
+
width: 100%;
|
|
723
|
+
margin-top: 6px;
|
|
724
|
+
}
|
|
725
|
+
.control-panel button {
|
|
726
|
+
margin: 5px 5px 5px 0;
|
|
727
|
+
}
|
|
728
|
+
.control-panel fieldset {
|
|
729
|
+
border: 0;
|
|
730
|
+
padding: 0;
|
|
731
|
+
min-width: 0;
|
|
732
|
+
}
|
|
733
|
+
.keyform-channel {
|
|
734
|
+
margin: 16px 0;
|
|
735
|
+
}
|
|
736
|
+
.keyform-channel b {
|
|
737
|
+
display: block;
|
|
738
|
+
margin-bottom: 6px;
|
|
739
|
+
}
|
|
740
|
+
.keyform-channel input {
|
|
741
|
+
width: 82px;
|
|
742
|
+
}
|
|
743
|
+
.keyform-points {
|
|
744
|
+
display: grid;
|
|
745
|
+
grid-template-columns: 1fr 1fr;
|
|
746
|
+
gap: 4px;
|
|
747
|
+
}
|
|
748
|
+
.keyform-points label {
|
|
749
|
+
margin: 3px 0;
|
|
750
|
+
}
|
|
701
751
|
/*# sourceMappingURL=editor.css.map */
|