fogón

← FantasíaObjeto 3Dfogon/centauro

Centauro

de fogonCC09268 bloques
CentauroArrastrá para girarlo
// «Centauro» · gpt-6-sol (medium)
// A cartoon centaur: the lower body of a chestnut-brown horse, horizontal along y with four legs and a dark tail at the back (+y), and at the front (-y) the upright torso of a muscular man with long dark hair, a leather chest strap and a bow held in one hand.

// Storybook centaur archer: front faces -y.
const chestnut = "#8b472c", coatLight = "#ad6540", coatDark = "#653821";
const skin = "#dca477", skinLight = "#efbd8a", skinShade = "#b97857";
const hair = "#30262c", hairLight = "#514049";
const leather = "#493126", brass = "#dcad52";

part("body");

// Solid, rounded horse body.
ellipsoid(24, 25, 19, 10, 15, 7, chestnut);
ellipsoid(24, 16, 20, 9, 7, 7, coatLight);
ellipsoid(24, 34, 20, 9, 6, 6, chestnut);
ellipsoid(24, 25, 15, 8, 12, 3, coatDark);

// Subtle highlights and freckles on the visible coat.
forEach((x, y, z, color) => {
  if (color !== chestnut && color !== coatLight) return;
  if (z > 20 && !get(x, y, z + 1) && rand() < 0.28)
    set(x, y, z, rand() < 0.7 ? coatLight : "#bd7850");
  else if (y < 25 && !get(x, y - 1, z) && rand() < 0.075)
    set(x, y, z, "#bd7850");
});

// A small decorated blanket over the horse's back.
box(17, 24, 25, 31, 31, 26, "#354e50");
box(17, 25, 26, 31, 30, 26, "#517c78");
line(17, 24, 26, 31, 24, 26, 0, brass);
line(17, 31, 26, 31, 31, 26, 0, brass);
for (let x = 19; x <= 29; x += 3) set(x, 24, 26, "#9de0cb");

// The human waist rises naturally out of the horse's shoulders.
ellipsoid(24, 15, 27, 6, 5, 4, skinShade);
ellipsoid(24, 14, 31, 6, 4, 7, skin);
ellipsoid(21, 11, 34, 3, 2, 3, skinLight);
ellipsoid(27, 11, 34, 3, 2, 3, skinLight);
ellipsoid(24, 12, 29, 3, 2, 2, skinLight);
box(19, 13, 26, 29, 18, 27, leather);
line(19, 12, 27, 29, 12, 27, 0, brass);

// Diagonal leather chest strap and its chunky gold buckle.
line(19, 10, 36, 28, 10, 27, 1, leather);
line(20, 9, 36, 29, 9, 27, 0, "#986744");
box(23, 8, 31, 26, 9, 33, brass);
box(24, 7, 32, 25, 7, 32, leather);

// Neck, face, broad friendly features.
cylinder(24, 14, 36, 2.7, 4, skinShade);
ellipsoid(24, 13, 41, 5, 4, 4, skin);
ellipsoid(24, 9, 39, 2, 2, 2, skinLight);
ellipsoid(21, 9, 39, 2, 1, 1, "#ed9d82");
ellipsoid(27, 9, 39, 2, 1, 1, "#ed9d82");

// Long dark hair, swept back from the face.
ellipsoid(24, 14, 44, 5, 4, 1.5, hair);
ellipsoid(20, 17, 38, 2, 3, 7, hair);
ellipsoid(28, 17, 38, 2, 3, 7, hair);
line(19, 15, 42, 18, 18, 31, 1.5, hair);
line(29, 15, 42, 31, 18, 30, 1.5, hair);
line(21, 18, 43, 20, 19, 33, 0, hairLight);
line(28, 18, 44, 29, 19, 34, 0, hairLight);
box(19, 11, 43, 21, 13, 44, hair);
box(27, 11, 43, 29, 13, 44, hair);

// Big eyes, brows, nose and a smile, all on the -y side.
box(20, 8, 41, 22, 8, 42, "#fff2d8");
box(26, 8, 41, 28, 8, 42, "#fff2d8");
set(21, 7, 41, "#3a6b65");
set(27, 7, 41, "#3a6b65");
set(21, 6, 41, "#17262c");
set(27, 6, 41, "#17262c");
line(20, 8, 43, 22, 8, 43, 0, hair);
line(26, 8, 43, 28, 8, 43, 0, hair);
set(24, 7, 39, skinShade);
line(22, 8, 37, 26, 8, 37, 0, "#784747");
set(21, 8, 38, "#e7917f");
set(27, 8, 38, "#e7917f");

// One relaxed arm; the other reaches out to hold the bow.
sphere(18, 14, 35, 3, skin);
line(18, 13, 34, 16, 10, 30, 2.2, skin);
line(16, 10, 30, 19, 8, 27, 1.8, skinLight);
sphere(19, 8, 27, 2, skinLight);
sphere(30, 14, 35, 3, skin);
line(30, 13, 34, 35, 11, 32, 2.2, skin);
line(35, 11, 32, 40, 9, 33, 1.8, skinLight);

// Carved bow, taut string, amber fittings and a bright enchanted arrow.
line(39, 9, 24, 42, 9, 27, 1, leather);
line(42, 9, 27, 44, 9, 32, 1, "#825236");
line(44, 9, 32, 42, 9, 38, 1, "#825236");
line(42, 9, 38, 39, 9, 42, 1, leather);
line(39, 8, 24, 39, 8, 42, 0, "#b6b1a2");
box(38, 8, 23, 40, 10, 25, brass);
box(38, 8, 41, 40, 10, 43, brass);
sphere(44, 8, 32, 1.5, "#9a4ce1");
set(44, 7, 32, "#e9a3ff");
line(24, 7, 33, 44, 7, 33, 0, "#f3d39a");
sphere(43, 7, 33, 1, "#5af3e3");
set(44, 7, 33, "#d9fffa");
sphere(40, 9, 33, 2, skinLight);

// Four independent walking legs, each pivoting at its hip.
function horseLeg(name, x, y, phase) {
  part(name, [x, y, 18]);
  ellipsoid(x, y, 15, 3, 3.5, 5, chestnut);
  line(x, y, 14, x, y + (y > 25 ? 1 : -1), 8, 2.1, chestnut);
  sphere(x, y + (y > 25 ? 1 : -1), 8, 2.3, coatLight);
  line(x, y + (y > 25 ? 1 : -1), 7, x, y, 3, 1.6, coatDark);
  ellipsoid(x, y - 1, 1.5, 2.7, 3.2, 1.5, "#342b2a");
  box(x - 2, y - 3, 0, x + 2, y + 1, 1, "#423332");
  line(x - 2, y - 3, 1, x + 2, y - 3, 1, 0, "#806951");
  animate(name, { type: "swing", axis: "x", speed: phase, amplitude: 0.3 });
}
horseLeg("front-left", 17, 15, 5);
horseLeg("front-right", 31, 15, -5);
horseLeg("rear-left", 17, 35, -5);
horseLeg("rear-right", 31, 35, 5);

// Dark, full tail with separate slow sideways motion.
part("tail", [24, 39, 22]);
line(24, 39, 22, 24, 42, 21, 2, hair);
line(24, 42, 21, 24, 43, 16, 2.2, hair);
ellipsoid(24, 43, 14, 2.5, 2, 5, hair);
line(23, 44, 18, 22, 44, 11, 0, hairLight);
line(25, 44, 18, 26, 44, 12, 0, hairLight);
animate("tail", { type: "swing", axis: "y", speed: 1.3, amplitude: 0.3 });