TGViewer
Prefire iOS Prefire iOS @prefire_ios · 979 subscribers
Post #177 738
Сделал систему скинов для котиков 🐈

В ScreenCat уже много скинов, и я прям сильно устал рисовать и подгонять каждый вручную в Figma. Особенно когда меняется поза, а вместе с ней нужно поправить голову, хвост, лапы, глаза и ещё десяток мелочей.

Посидел вместе с Claude и подумал: а что, если создание скина будет больше похоже на написание кода, чем на ручную сборку иллюстрации?

В итоге собрал data-driven систему на JSON. Теперь визуальная часть кота состоит из трёх уровней:

1. skin.json - описание конкретного кота: его части, текстуры, позиции, порядок слоёв, точки крепления аксессуаров и настройки взгляда.

2. JSON-клипы анимаций - описывают движение частей: подпрыгивание тела, поворот хвоста, наклон головы, моргание.

3. animations.json — граф состояний: когда кот сидит, бежит, спит, реагирует на действие или переключается между анимациями.

{
"id": "ginger_fold_cat",
"rig": {
"parts": [
{ "id": "body", "texture": "body.png", "position": [-5, -22] },
{ "id": "tail", "texture": "tail.png", "parent": "body", "position": [32, -12] },
{ "id": "head", "texture": "head.png", "parent": "body", "position": [-10, 41] }
]
}
}


Риг это иерархия частей внутри скина. Например, хвост прикреплён к телу, а глаза к голове. Поэтому при движении головы всё нужное едет вместе с ней.

Анимации задаются не абсолютными координатами, а дельтами от базовой позы. Один и тот же клип бега можно применить к разным котам, даже если у них разная форма тела или хвоста:

{
"part": "tail",
"property": "rotation",
"keys": [[0, 0], [0.14, 18], [0.42, -18], [0.56, 0]]
}



То есть здесь хвост просто отклоняется от своего обычного положения на 18 градусов туда и обратно. Клипу не нужно знать, где хвост находится у конкретного скина.

В итоге новый скин - это набор PNG и JSON, а не пачка исключений в коде. Можно менять пропорции, добавлять образы и анимации, а валидатор сразу проверит, что все части, текстуры и связи на месте.

PS: После написания json - скрипт прогоняет рендеринг PNG через ffmpeg

А дальше я навайбкодил UI на Tauri, чтобы работать со скинами было ещё удобнее.
Про редактор, генерацию арта и весь этот пайплайн расскажу в следующих постах.
  • 🔥 14
  • ❤ 4
More from @prefire_ios
  1. Sep 16, 2026☺️ Prefire в требованиях к вакансиям Где-то месяц назад поставил ежедневную задачу на Chat…
  2. Sep 5, 2026🧭 Podlodka iOS Crew: разработка с AI С 14 по 18 сентября пройдет новый сезон Podlodka iOS…
  3. Aug 26, 2026Кажется, мой кот начал жить своей жизнью. Сначала друзья просто закинули Mewmori в несколь…
  4. Aug 18, 2026Нахождение текста котом Mewmori в уникальных приложениях Что бы кот видел, я снимаю скринш…
  5. Aug 17, 2026Начал готовить к релизу ScreenCat - 🐈 Mewmori - Переименовал проект в Mewmori (типо memor…
  6. Jul 31, 2026Кажется, Prefire полюбили в Японии 🇯🇵 Только вернулся из отпуска в Японии и, пока был та…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →