Replace the narrow profiled hole with a DIY-style Ø8.7 cylinder + belly pocket (14 mm, mouth flare) so the 主体2 peg inserts past halfway and the head still rotates. Co-authored-by: Cursor <cursoragent@cursor.com>
SkinPress
SkinPress — скин Minecraft → готовый .3mf для Bambu Studio с палитрой Bambu Lab PLA (Basic + Matte).
Два CLI-модуля в одном репозитории:
| Модуль | Модель | Назначение |
|---|---|---|
skin_figurine |
ModVer full-body | Полноразмерная фигурка, 2-й слой скина на теле |
chibi_figurine |
MakerWorld #2058782 | Chibi: DIY-голова или монолитная (--head solid) |
Быстрый старт
pip install -r requirements.txt
Зависимость: Python 3.10+, Pillow ≥ 10.
В репозитории уже лежат шаблоны:
Customizable_Minecraft_Skin_ModVer.3mf— дляskin_figurinechibi/template.3mf— дляchibi_figurine(копия MakerWorld «自定义皮肤»)chibi/example_alex_8color.3mf— эталон Alex на 8 цветах
Шаблоны — сторонние модели MakerWorld. Код распространяется под MIT; права на
.3mfпринадлежат авторам моделей.
skin_figurine — полная фигурка (ModVer)
Скин → стол в Bambu Studio с переносом второго слоя (волосы, капюшон, узоры) и автоподбором цветов PLA.
# Из PNG 64×64
python -m skin_figurine --skin tests/fixtures/skins/jay.png --out jay_custom.3mf
# По нику (скачивает скин с серверов Mojang)
python -m skin_figurine --nick Notch --out notch.3mf
# Многоцвет + лимит под AMS
python -m skin_figurine --skin tests/fixtures/skins/foresta.png --max-colors 8 --name foresta
# Принудительно Alex (slim) или Steve (classic)
python -m skin_figurine --skin player.png --force-slim
python -m skin_figurine --skin player.png --force-classic
# Клонировать готовый пример из шаблона (точный 2-й слой)
python -m skin_figurine --from-example foresta --out foresta_clone.3mf
Откройте .3mf в Bambu Studio. Рядом появится .json с палитрой и статистикой.
Как работает
- Загружает скин 64×64 (или скачивает по
--nick). - Определяет slim / classic по метаданным Mojang, пустым полосам рук на PNG или sidecar
skin.model.json. - Берёт шаблон со стола «тонкие руки» или «обычные руки».
- Оставляет воксели 2-го слоя только там, где на оверлее скина непрозрачный пиксель.
- Красит части ближайшими цветами Bambu Lab PLA.
UV-карты уже обучены и лежат в skin_figurine/data/pixel_uv_maps.json. Переобучение (если меняли шаблон) — см. scripts/relearn/README.md.
chibi_figurine — chibi MakerWorld
Отдельный пакет, не трогает ModVer. Два режима головы:
--head diy (по умолчанию)
Плоская развёртка головы, вырезанные глаза, Layer2 отдельными столами по граням.
python -m chibi_figurine --nick ModemIX --out output/ModemIX.3mf
python -m chibi_figurine --nick Alex --eye-layout top # закрыть верхний ряд «глаз»
python -m chibi_figurine --nick Alex --eye-layout bottom
python -m chibi_figurine --nick Alex --overlay-on-head # L2 на развёртке (не для обычной печати)
python -m chibi_figurine --nick Alex --no-overlay # без 2-го слоя
--head solid
Монолитная 32 мм залитая голова (не полая — иначе поддержки застревают внутри) с выступающим Layer2 (пластины 2.0 мм). Круглые вырезы Bambu (negative_part):
- Снизу — как у
右脸+左脸: цилиндр Ø8.7 + сплюснутая сфера (lathe-вырез, глубина 14 мм, раструб на входе) под штырь主体2; голова крутится - Сверху / сзади — L-вырез как в оригинале (половинки
右脸/左脸): канал сверху и сзади с перемычкой под кольцо / шнур брелока
Layer2 на нижней грани головы не строится — плоскость стола всегда чистая, без поддержек под L2.
По умолчанию как Foresta_solid_A1_Mini: один стол (голова + тело + ноги + руки + штифт), один цвет (--max-colors 1). Для AMS передай --max-colors 8.
python -m chibi_figurine --nick M1rs3m --head solid --out output/M1rs3m_solid.3mf
python -m chibi_figurine --nick M1rs3m --head solid --ignore-semitransparent --out output/M1rs3m_solid.3mf
--ignore-semitransparent — не добавлять полупрозрачные пиксели Layer2 (только alpha=255). Полезно, если на скине есть «шум» / полупрозрачные пятна на втором слое головы.
Печать chibi
DIY-голова: напечатайте развёртку головы, затем столы Layer2 (по одной панели на грань), глаза/веки/структуру — соберите как в инструкции MakerWorld.
Solid-голова: один стол A1 mini со всем китом. Штырь тела → круглое гнездо снизу (голова вращается); брелок → L-вырез сверху/сзади.
DIY в .3mf (A1 / A1 mini, сопло 0.4):
- слой 0.12, 3 стенки, наполн. 20%
- наружная стенка ~80 мм/с, Seam = Back, лёгкий ironing
Solid (профиль Foresta):
- слой 0.2, 3 стенки, наполн. 15% gyroid
- наружная 100 / внутр. 150, travel 120, accel ~500
- Seam = Aligned, ironing off, Smooth PEI, tree supports, auto brim 3
print_settings_id=SkinPress Solid Foresta @A1M(чтобы Studio не затирал кастом)
В Studio выбери принтер A1 mini 0.4. После генерации закройте и снова откройте .3mf, если файл уже был открыт.
Структура репозитория
SkinPress/
├── skin_figurine/ # ModVer customizer
│ ├── data/ # UV-карты (pixel_uv_maps.json)
│ └── ...
├── chibi_figurine/ # Chibi customizer
│ ├── data/ # head_voxel_uv.json, neck_socket.json
│ └── ...
├── chibi/
│ ├── template.3mf # шаблон DIY
│ └── example_alex_8color.3mf
├── tests/ # pytest
├── scripts/relearn/ # переобучение UV (опционально)
├── Customizable_Minecraft_Skin_ModVer.3mf
├── requirements.txt
└── README.md
Тесты
pip install pytest
pytest tests/ -q
Нужны шаблоны .3mf и скины в tests/fixtures/skins/ (уже в репозитории).
Замечания
- Базовые меши получают доминирующий цвет зоны; мелкие детали можно дорисовать кистью в Bambu Studio.
- Если автодетект рук ошибся —
--force-slim/--force-classic. - Сгенерированные
.3mfи.jsonв.gitignore— не коммитьте артефакты сборки.
Лицензия
Код — MIT. Шаблоны .3mf — модели MakerWorld; соблюдайте их условия использования при публикации и печати.