# Veiled robot (working name) A humanoid robot after five reference renders from the user (2026-10-19, `reference/1-5.jpg`): *"can you 3d model a robot in these picture, without the compound bow using blender mcp"*, then *"also without that fiber mesh on its head"*. So: no bow, no arrows or back quiver (they go with the bow), no camouflage net. The head the net hid is my own design after its shape under the net: a rounded dome, deep front to back, two orange eye lights low on it, a face vent, sitting in a collar. The maker name and logos on the renders are not copied; the markings are generic stencils (`UNIT 07`, `R7-341J`, a boxed 7, a ring emblem, chevrons, a gauge). Not imported into Unreal. Not placed anywhere. The user has not said what it is for in the game. ## Version 2 (2026-10-19, the user: *"Try to do it more precise pixel by pixel according to the pictures take your time"*) Version 1 is kept in `versions/v01_first_build/`. Version 2 is measured, not eyeballed: - **Measured** on pixel grids over the two full front renders (`5.jpg` at 1.37 mm/px, `4.jpg` at 1.48 mm/px, scale from the full height 1.925 m): shoulder caps 1.68-1.70, chest top 1.555 / crease 1.455 / lip 1.355, abdomen 1.18-1.31, hip blocks top 1.08 and 0.16-0.30 m off centre (**wide hips**: hip joints at +-0.22), knee 0.61, ankle 0.165, upper arm 0.33, forearm 0.30 and 0.125 thick, chest badges +-0.087. - **Overlaid**: `build/vr_overlay.py` poses the model like `5.jpg` and renders it from a matching camera (85 mm, 6.47 m, level at 0.99 m); `build/vr_overlay_compose.py` draws the outline over the picture. `previews/VR2_vs_ref5.png` is the final side by side. - Close-up comparisons with `3.jpg` (chest, arms) and `2.jpg` (hips, legs) added: tall blocks at the chest's upper corners, a collar the head sits in, the shin plate rising over the knee, a big disc inside each knee, a forward-facing disc at the ankle, a wedge foot, slot cut-outs in pairs, triangular cut-outs on the forearms, bolts, stickers on the shoulder caps. Armour is flat-shaded facets (crisp like the renders). - Still my design, because the pictures do not show it: the head (the net hid it), the pelvis (the bow hid it). ## Files - `VeiledRobot.blend` - the model, rig, decals and a grey studio (collection `VR | Studio`, cameras for the overlays). - `fbx/SK_VeiledRobot.fbx` - skeletal mesh: rig + 90 parts + 86 decal quads, rest pose, modifiers applied (~49k triangles). - `textures/T_VR_Decals.png` (+ `.json` regions) - the stencil atlas, white on alpha. - `previews/VR2_01..06`, `VR2_sheet.png`, `VR2_vs_ref5.png` - version 2 Cycles renders; `VR_*` are version 1. - `build/` - everything is generated: - `vr_build.py` `build()` - skeleton + parts (left side built, right side mirrored). - `vr_decals.py` `place_all(ns)` - decals cast onto the plates by ray. - `vr_look.py` `apply_all()` - materials and the studio. - `vr_check.py` `check()` - parts on different bones must not intersect; topology count. - `vr_range.py` `run(ck)` - joint travel sweep. `vr_pose.py` `pose_ref()` / `rest()`. - `vr_overlay.py` `pose_ref5(ps)`, `camera_ref5()`, `render_mask(path)`; `vr_overlay_compose.py` (system Python). - `vr_decal_atlas.py` - makes the atlas (system Python + PIL). Order in Blender: build, decals, look (each `exec` into a namespace; see the scripts' heads). ## Scale, skeleton, pivots - 1.925 m to the top of the head, metres, faces -Y, character's left = +X, feet on z = 0. - 53 bones with **UE5 mannequin names** (root, pelvis, spine_01-03, neck_01, head, clavicle, upperarm, lowerarm, hand, 5 fingers x 3, thigh, calf, foot, ball), so retargeted mannequin animations can drive it. Rest pose is an A-pose, arms 60 degrees down. - Every part is its own object, skinned 100 % to one bone (rigid robot segments); object origins at the world origin, the bones are the pivots. ## Checks (scripted, all passing in version 2) - Rest pose: 0 intersections between parts on different bones; 5,144 quads, no triangles, no n-gons. - Joint sweep (35 positions), clean at: hip flex 90 forward / 20 back, hip out 30 / in 8, knee 110, ankle -25/+30, shoulder forward 90 / back 30 / up 40 / down 20 (arm to 80 deg below horizontal; the wide hip blocks stop more), elbow 110, wrist +-50 / +-30, neck +-25 both ways, head turn +-60, nod +-20, waist lean 25, chest lean 15, full fist. Relaxed stance clean. - Limits kept: knee and elbow stop at 110 (120 hits); arms cannot hang straight down past the hip blocks. ## Surfaces - honest limits - Armour: Poly Haven `blue_metal_plate` (CC0, `models/pressure-door/source_polyhaven`) turned grey and tinted dark olive, box-projected; edge wear (Bevel node) and crevice dirt (AO node) are **Cycles-only and not baked**. Black satin mechanics, glossy red fingertips, emissive eyes. - UVs: one smart-projected `UVMap` per part; decals use the atlas. No shared atlas and no baked texture set yet. - Armour paint is dielectric (matte), only worn edges are metal. - The look in Unreal will need that bake (or a material using the scan + vertex masks).