fogón

← Monsters and enemies3D assetfogon/orco

Orco

by fogonCC022449 blocks
OrcoDrag to turn it
// «Orco» · gpt-6-sol (medium)
// A burly cartoon orc warrior facing -y: green skin, a big square head with two upward tusks, a heavy brow and red eyes, a black topknot, brown leather armor with iron studs and shoulder pads, holding a big spiked wooden club in the right hand.

const skin = "#50a83d", skinLight = "#69c34c", skinDark = "#347b34";
const leather = "#87502d", leatherLight = "#aa6b39", leatherDark = "#58351f";
const iron = "#89949b", ironLight = "#bec8c7", ironDark = "#505c62";
const ivory = "#f4dfaa";

// Legs: separate hip pivots for an alternating walk.
part("leftLeg", [18, 24, 16]);
box(14, 20, 4, 22, 30, 17, skinDark);
box(15, 19, 5, 22, 28, 16, skin);
box(14, 19, 8, 22, 29, 12, leather);
box(14, 18, 8, 22, 19, 12, leatherLight);
box(14, 18, 5, 22, 29, 7, leatherDark);
box(13, 15, 0, 23, 29, 5, leatherDark);
box(14, 14, 1, 23, 25, 4, leather);
box(14, 14, 4, 22, 16, 4, leatherLight);
box(14, 14, 0, 23, 29, 0, ironDark);
animate("leftLeg", { type: "swing", axis: "x", speed: 4, amplitude: 0.3 });

part("rightLeg", [30, 24, 16]);
box(26, 20, 4, 34, 30, 17, skinDark);
box(27, 19, 5, 34, 28, 16, skin);
box(26, 19, 8, 34, 29, 12, leather);
box(26, 18, 8, 34, 19, 12, leatherLight);
box(26, 18, 5, 34, 29, 7, leatherDark);
box(25, 15, 0, 35, 29, 5, leatherDark);
box(25, 14, 1, 34, 25, 4, leather);
box(26, 14, 4, 34, 16, 4, leatherLight);
box(25, 14, 0, 35, 29, 0, ironDark);
animate("rightLeg", { type: "swing", axis: "x", speed: -4, amplitude: 0.3 });

part("body");

// Broad torso and leather cuirass.
box(13, 18, 15, 35, 32, 27, skinDark);
box(14, 17, 17, 34, 31, 28, skin);
box(15, 17, 27, 33, 30, 29, skinLight);
box(15, 15, 16, 33, 19, 26, leatherDark);
box(16, 14, 18, 32, 18, 26, leather);
box(17, 13, 23, 31, 15, 26, leatherLight);
box(16, 14, 16, 32, 18, 18, leatherLight);
box(14, 15, 16, 34, 33, 18, leatherDark);
box(15, 14, 17, 33, 33, 18, leatherLight);

// Crossed straps, belt, buckle and studs.
line(17, 13, 26, 29, 13, 17, 1, leatherDark);
line(31, 13, 26, 20, 13, 18, 1, leatherLight);
box(14, 13, 14, 34, 19, 16, leatherDark);
box(15, 12, 15, 33, 13, 16, leatherLight);
box(22, 11, 14, 27, 13, 17, ironDark);
box(23, 10, 15, 26, 11, 16, ironLight);
box(24, 10, 15, 25, 10, 16, leatherDark);
for (let x = 17; x <= 32; x += 4) {
  set(x, 13, 20, ironLight);
  set(x, 13, 25, iron);
}
for (let x = 17; x <= 33; x += 4) set(x, 12, 15, ironLight);

// Left arm, hanging beside the body.
box(8, 19, 18, 15, 30, 27, skinDark);
box(8, 17, 17, 14, 27, 25, skin);
box(8, 16, 12, 14, 24, 18, skinDark);
box(8, 15, 13, 14, 22, 17, skinLight);
box(7, 17, 24, 16, 31, 28, leatherDark);
box(8, 16, 26, 15, 30, 29, leather);
box(9, 16, 29, 14, 27, 29, leatherLight);
box(8, 16, 25, 8, 25, 27, ironDark);
for (let y = 18; y <= 27; y += 4) set(8, y, 27, ironLight);
box(8, 16, 18, 14, 24, 19, leatherDark);
box(9, 15, 19, 13, 17, 19, leatherLight);
set(10, 15, 19, iron);

// Neck, square head and protruding ears.
box(20, 19, 26, 29, 29, 32, skinDark);
box(13, 14, 29, 35, 34, 40, skinDark);
box(14, 13, 31, 34, 32, 41, skin);
box(16, 13, 40, 32, 30, 42, skinLight);
box(14, 12, 33, 34, 14, 39, skinLight);
box(15, 12, 29, 33, 16, 32, skin);
box(10, 19, 32, 14, 28, 37, skinDark);
box(9, 20, 33, 13, 27, 36, skin);
box(10, 18, 34, 11, 21, 35, "#b17a66");
box(34, 19, 32, 38, 28, 37, skinDark);
box(35, 20, 33, 39, 27, 36, skin);
box(37, 18, 34, 38, 21, 35, "#b17a66");

// Cheeks, jaw, scowl and glowing red eyes.
box(14, 11, 30, 19, 14, 34, skinLight);
box(29, 11, 30, 34, 14, 34, skinLight);
box(18, 11, 29, 30, 14, 31, skinDark);
box(19, 10, 30, 29, 11, 31, "#273b28");
box(20, 9, 30, 28, 10, 30, "#d2c999");
box(18, 10, 34, 22, 12, 37, "#25472d");
box(27, 10, 34, 31, 12, 37, "#25472d");
box(19, 9, 35, 21, 10, 36, "#f04436");
box(28, 9, 35, 30, 10, 36, "#f04436");
set(20, 8, 36, "#ffab59");
set(29, 8, 36, "#ffab59");
box(17, 10, 37, 22, 13, 39, skinDark);
box(18, 9, 38, 22, 11, 39, skin);
box(27, 10, 37, 32, 13, 39, skinDark);
box(27, 9, 38, 31, 11, 39, skin);
box(23, 9, 32, 26, 13, 35, skinDark);
box(23, 8, 32, 26, 10, 34, skinLight);
set(23, 8, 32, "#305a30");
set(26, 8, 32, "#305a30");

// Two unmistakable upward-curving tusks.
for (const x of [17, 32]) {
  box(x - 1, 9, 29, x + 1, 11, 31, "#b7ad86");
  box(x - 1, 8, 31, x + 1, 10, 33, ivory);
  box(x, 8, 34, x + 1, 9, 35, "#fff0c7");
  set(x, 8, 36, "#fff0c7");
}
box(15, 14, 39, 18, 16, 40, skinLight);
box(31, 14, 39, 34, 16, 40, skinLight);

// Dark, tied-up topknot.
box(20, 21, 41, 29, 30, 43, "#202429");
box(22, 22, 43, 28, 29, 44, "#292c30");
box(23, 23, 45, 27, 28, 45, "#171d22");
box(26, 26, 42, 31, 32, 43, "#202429");
box(29, 29, 40, 32, 32, 42, "#171d22");
box(22, 21, 42, 23, 26, 44, "#414043");
box(24, 21, 43, 27, 22, 43, leatherLight);

// The striking arm and its club share the shoulder pivot.
part("clubArm", [35, 24, 26]);
box(34, 19, 19, 40, 29, 26, skinDark);
box(35, 17, 18, 40, 26, 24, skin);
box(37, 15, 14, 42, 22, 20, skinDark);
box(38, 15, 16, 42, 21, 20, skinLight);
box(36, 17, 15, 42, 23, 17, leatherDark);
box(37, 16, 17, 41, 17, 18, leatherLight);
box(34, 18, 24, 41, 31, 28, leatherDark);
box(35, 17, 26, 41, 30, 29, leather);
box(36, 18, 29, 40, 28, 29, leatherLight);
box(40, 19, 24, 41, 28, 27, ironDark);
for (let y = 19; y <= 28; y += 4) set(40, y, 28, ironLight);

// Thick wooden shaft, gripped in the fist.
box(41, 13, 9, 43, 16, 32, "#513421");
box(41, 12, 12, 42, 13, 31, "#966037");
box(43, 14, 11, 43, 16, 31, "#35291f");
for (let z = 12; z <= 19; z += 3) {
  box(40, 12, z, 43, 17, z, leatherDark);
}
box(40, 12, 17, 43, 16, 19, skinDark);
box(39, 11, 16, 41, 14, 19, skin);
box(39, 11, 18, 42, 13, 19, skinLight);

// Oversized knobbly striking head, banded with iron and spikes.
box(38, 10, 25, 45, 19, 36, "#513421");
box(39, 9, 27, 44, 18, 38, leather);
box(40, 9, 29, 43, 10, 37, "#bb7842");
box(44, 12, 28, 45, 18, 36, "#694126");
box(39, 9, 27, 44, 19, 28, ironDark);
box(39, 9, 35, 44, 19, 36, ironDark);
box(40, 9, 28, 43, 9, 28, iron);
box(40, 9, 36, 43, 9, 36, iron);
for (const z of [27, 32, 36]) {
  box(38, 8, z, 40, 10, z + 1, iron);
  set(39, 7, z + 1, ironLight);
  box(43, 18, z, 45, 20, z + 1, iron);
  set(44, 21, z + 1, ironLight);
}
for (const z of [30, 35]) {
  box(38, 12, z, 39, 15, z + 1, iron);
  set(37, 13, z + 1, ironLight);
  set(45, 14, z, ironLight);
}
box(40, 11, 38, 43, 17, 38, ironDark);
set(41, 12, 39, ironLight);
set(43, 16, 39, ironLight);

animate("clubArm", { type: "swing", axis: "x", speed: 3, amplitude: 0.5 });