Communitygithub.com

z1fex/06-personajes-y-rostros

Construye personajes 3D estilo caricatura para cualquier tema (cabeza esférica, cuerpo de frijol, extremidades de palo, manos de mitón) con tonos de piel, conjuntos de colores de marca, cabello, sombreros, gafas y barbas, y actúalos con rostros pintados que se intercambian mediante un parpadeo. Útil al hacer un reparto para una película.

¿Qué es 06-personajes-y-rostros?

Esta habilidad, "Personajes y Rostros", se centra en crear y animar personajes 3D estilizados del tipo caricatura, con un diseño distintivo de cabeza esférica grande, cuerpo de frijol, extremidades delgadas de color antracita y manos de mitón. Es ideal para desarrolladores que buscan dar vida a un reparto variado de personajes para cualquier tema, permitiendo personalizar tonos de piel (con opciones predefinidas o colores hex), colores de vestimenta superior e inferior, peinados (rizado, bob, moño, cola de caballo, etc.), sombreros (gorra, chistera, casco, boina, corona), gafas, barbas, y detalles faciales como cejas y bigotes. La habilidad también proporciona un sistema de expresiones faciales planas y pintadas, que se intercambian únicamente mediante un parpadeo (media apertura y cierre completo) para lograr transiciones suaves, con la nueva cara apareciendo dos fotogramas antes de la palabra acentuada. Admite una amplia gama de emociones como neutral, contento, sorprendido, curioso, pensativo, eureka, desdeñoso, confundido, preocupado, orgulloso y más, y está diseñado para plataformas como Claude Code, Cursor o Codex, funcionando con funciones JavaScript en un entorno de motor 3D.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/z1fex/3D-Cartoon-Style-Animation-Claude-Skill/tree/HEAD/skills/06-characters-and-faces

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

6 · Personajes y rostros

El cuerpo

makeCharacter(spec) en recipe/engine/character.mjs construye un rig: radio de cabeza 0.42, cuerpo de 0.8 de alto, piernas de 0.52, brazos de 0.30 + 0.28. Las proporciones son el estilo: una gran cabeza esférica, un cuerpo de frijol dividido en un color superior e inferior, extremidades delgadas de palo en color Antracita, manos de mitón en el color de la piel, zapatos redondeados en color Cognac.

const host = makeCharacter({
  name: 'host', skin: SKIN.tan,
  top: BRAND.blueCoral, bottom: BRAND.anthracite, split: 0.32, width: 1.0,
  hair: 'curly', hairColor: '#2a1d18',
  hat: null, glasses: true, beard: false,
  face: { browColor: BRAND.anthracite, browThick: 3.4, mustache: null },
  extras: torso => { /* agregar una corbata de chorrera, botones, una insignia, un cinturón de herramientas… */ },
});
host.root.position.set(x, 0, z); place.scene.add(host.root);
OpciónValores
skinSKIN.light / fair / medium / tan / brown / deep, o cualquier color hex. Mezcla entre el reparto.
top, bottom, split, widthlos dos colores del frijol, dónde se encuentran (0–1 de la altura), y un factor de ancho (1.06 para una complexión más robusta)
hairshort (o cap), bob, bun, ponytail, curly, spiky, bald, y dos pelucas de época: newton (rizos largos) y einstein (cabello blanco salvaje con brillo propio)
hat / hatColorcap, tophat (con hatBand), helmet (casco redondo), hardhat, beret, crown
glassestrue o un color de montura: monturas redondas sobre los ojos pintados
beardtrue (color del cabello) o un color
face{ browColor, browThick, mustache }: color y grosor de las cejas, un color opcional de bigote pintado
extras(torso)agregar partes de vestuario con part(geometry, color): corbatas de chorrera, cuellos, botones, insignias, herramientas

Diseñando un personaje para un nuevo tema: primero elige una silueta (la forma del cabello o el sombrero es la señal más fuerte en tamaño de teléfono), luego un color de marca para la parte superior, y luego un tono de piel. Las personas históricas se dibujan como nuestros propios caricaturas: el cabello y la ropa de época son suficientes (la peluca rizada de Newton y su abrigo Rouge Noir; el cabello blanco salvaje de Einstein, su bigote y su suéter Blue Coral). Nunca copies un personaje con derechos de autor.

Objetos con rostros (manzanas, planetas, moléculas, máquinas): dales faceDecal(radius, { skin: <color del cuerpo> }) desde faces.mjs, establece el color de los párpados al color del cuerpo, y agrega el grupo del objeto a la lista faceCamera del lugar para que gire hacia la cámara.

Rostros

Calcomanías planas pintadas en la parte frontal de la cabeza (faceDecal): cejas, ojos con pupilas e iluminaciones, una boca, sin nariz, todo de una misma familia de formas. Sin sincronía de labios; el rostro es el que actúa.

Expresiones (EXPRESSIONS en faces.mjs): neutral, content, sleepy, surprised, shocked, curious, thinking, eureka, delighted, smug, knowing, confused, worried (con una gota de sudor), proud (sonrojo), no, wheee, dizzy (ojos en espiral), lookDown. Para agregar una, copia una entrada y cambia las cejas [inner, outer] (grados), lid (0 abierto … 1 cerrado), look (desplazamiento de la pupila), escala de eye y pupil, y mouth (flat, smile, smirk, side, wavy, o, grin, shout).

Intercambios de rostros (la regla de la referencia, medida)

  • Intercambia solo a través de un parpadeo: un fotograma medio cerrado, un fotograma cerrado, luego el nuevo rostro.
  • El nuevo rostro aparece 2 fotogramas antes de la palabra acentuada (W(i) - FACE).
  • Nunca hagas morphing entre expresiones.
  • El personaje principal recibe un nuevo rostro aproximadamente cada 1.2 s; los objetos intercambian en su tiempo narrativo (la manzana pasa de smug a shocked en "wrong").
  • Parpadeos naturales durante pausas largas: pasa una lista blinks de tiempos.
rig.faceAt(t, [[0, 'curious'], [W(17) - FACE, 'smug']], [0.75, 6.2]);   // intercambia, luego parpadeos naturales
objectFace.set('shocked');                                              // asignación instantánea para objetos

Manos y accesorios sostenidos

rig.handPos('L' | 'R' | 'both') devuelve la posición mundial de una mano después de la pose actual; coloca los accesorios sostenidos allí cada fotograma (el libro en las manos de Newton, la bola de boliche antes de que Einstein la suelte). rig.headPos() da el centro de la cabeza para el encuadre.

Verificaciones

  • ¿En tamaño de teléfono, puedes distinguir cada personaje solo por su silueta?
  • Los párpados coinciden con el color de la piel o del cuerpo (sin parpadeos transparentes).
  • Los rostros miran a la cámara en cada toma donde actúan.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Skills relacionados