BlockReel skins
Trabaja en la carpeta BlockReel ($BLOCKREEL_HOME, consulta el bootstrap de la skill blockreel). Coloca cada skin en work/skins/<nombre>/ (gitignorado) o films/<nombre>/skins/. Nunca copies la skin de otra persona; toma ideas, no píxeles.
0. El usuario envió una skin
Úsala exactamente como se envió: cópiala en la carpeta de la película, python core/skin.py validate (convierte la 64x32 heredada a un archivo NUEVO) y haz referencia a ella en story.json. Nunca repintes la skin de un usuario a menos que lo pida. Solo diseña una skin nueva cuando no haya ninguna.
1. Briefing (como máximo una pregunta corta)
Define: el personaje (quién, rol, estado de ánimo), el estilo y el modelo.
| Estilo | A qué aspirar |
|---|---|
| pixel art limpio | 3-4 rampas de tono por material, sin ruido, sombras/iluminaciones de 1 px, silueta legible |
| caricatura | colores saturados, contorno más oscuro de 1 px en la cara/bordes de superposición, ojos grandes y simples, bloqueo de color fuerte |
| realista | paleta apagada, ruido sutil (noise=0.03-0.05), pliegues y costuras, variedad de materiales (tela, cuero, metal) |
| anime | ojos grandes (usa el iris de 2 px + píxel de brillo), cabello pastel/saturado en 3 tonos con un mechón brillante, ropa simple |
classic = brazos de 4 px (como Steve), slim = brazos de 3 px. Si el usuario no lo especifica, elige classic y dilo; ofrece la variante slim.
2. Investigación (web), escrita en research.md con enlaces
Busca y lee: el UV layout y reglas de capas de la skin (Minecraft Wiki: Skin; el mapa propio del repositorio está en docs/SKINS.md / references/skin-layout.png), las técnicas de sombreado y paleta de pixel art (cambio de tono, rampas, evitar sombreado de almohada), y referencias de estilo para el tipo de personaje. Registra: enlace, qué usarás. No copies skins o arte de terceros.
3. Plan de paleta
Escribe el plan antes de pintar: un color base por material y una rampa de 3-4 tonos a partir de él (skin.ramp(base, 4, hue_shift=0.04): sombras ligeramente más frías, luces ligeramente más cálidas). Materiales típicos: piel, cabello, dos colores de tela, cuero, metal, botas, acento. Mantén el total por debajo de ~24 colores; un color de acento es suficiente.
4. Pintar por capas (core/skin.py SkinCanvas)
Primero la capa base (cabeza, cuerpo, brazos, piernas), luego la capa de superposición (sombrero = volumen de capucha/cabello, chaqueta = capa/abrigo, mangas, pantalones). Ayudantes útiles: shaded_box(part, ramp) (iluminado desde arriba/frente), rect, px, line, edge_light, clear y mirror_limbs() para pintar el lado derecho y copiarlo reflejado al izquierdo. Coordenadas relativas a la cara: nunca calculas las posiciones del atlas a mano. Regla de la cara para las películas de BlockReel: mantén los ojos en la fila 4 (y las cejas en la fila 3) de la cara frontal, boca en la fila 6, porque los estados faciales del motor (blink, wide, glow, lip-sync) repintan esas filas y muestrean el color de la piel de las mejillas (fila 5). Comienza desde examples/skin-demo/paint_skin.py y cambia el plan de paleta y los bloques por partes.
5. Validar
python core/skin.py validate out.png: tamaño, model (classic/slim) y 0 píxeles base transparentes (la capa base debe ser completamente opaca en Java). python core/skin.py unwrap out.png parts/ si necesitas cada cara como una imagen separada.
6. Vista previa e iteración (OBLIGATORIO, al menos 2 rondas)
python tools/turntable.py skin.png --out tt.png [--pose idle|wave|stance] [--model slim] [--eyes wide --mouth smile]
Abre tt.png y observa las cuatro vistas. Verifica: silueta, cara legible a escala de juego, superposición de capucha/cabello que no flota, costuras y extremidades reflejadas, espalda y laterales no dejados en blanco, dirección de sombreado consistente, nada embarrado. Escribe qué está mal, corrige, renderiza de nuevo. Conserva la imagen de cada ronda (consulta examples/skin-demo/iterations/). No te detengas después de un solo render.
7. Exportar
PNG final (y el otro modelo si se solicita: repintar con slim=True/False; no existe conversión automática classic<->slim). Nombra los archivos <personaje>.png y <personaje>-slim.png. Verifica ambos con validate.
8. Instalación en el juego (informa al usuario; no lo has probado)
- Edición Java: sube el PNG (64x64, o 64x32 heredado) en la página de perfil de minecraft.net o en la pestaña Skins del Launcher y elige brazos de 3 px o 4 px. Solo las cuentas que poseen el juego pueden cambiar las skins; los jugadores en modo offline no pueden usar una skin personalizada sin mods. Fuente de lectura: Minecraft Wiki: Skin. La página de ayuda de Mojang no pudo cargarse cuando se escribió esto, así que consulta help.minecraft.net para los nombres de menú actuales.
- Edición Bedrock: un proceso diferente (y el formato admite plantillas más grandes, p. ej., 128x128, según la wiki). No des pasos de Java para Bedrock; dirige al usuario a la página de ayuda actual de Mojang para Bedrock.
- Dentro de una película de BlockReel no es necesario instalar nada: haz referencia al PNG en
story.json.
Reglas
- Nunca afirmes que una skin fue probada en el juego. Di "validada y previsualizada en el motor BlockReel".
- Nunca distribuyas ni subas skins del juego o de otra persona. La skin de demostración del repositorio es original (CC0).
- Si el usuario proporciona una captura de pantalla de un render 3D de una skin, no puede convertirse en textura (
docs/SKINS.md); crea una similar en su lugar.