Rebuild the NPC hands and add a hand capture
This commit is contained in:
1 parent
48082c3dfa
commit
24c939d388
27 files changed
+107
-57
No files matched your search
+21
-9
@@ -813,16 +813,28 @@ def _hands_and_shoes(mats, spec):
|
||||
w = BUILDS[spec.get("build", "average")][0]
|
||||
for s in (-1.0, 1.0):
|
||||
x = 0.275 * s * w
|
||||
parts.append(sphere("Palm", 0.045, (x, -0.01, 0.735), skin, seg=10, rings=6,
|
||||
scale=(0.55, 0.95, 1.25)))
|
||||
parts.append(sphere("Thumb", 0.018, (x - 0.014 * s, -0.048, 0.752), skin,
|
||||
seg=8, rings=6, scale=(1.0, 1.0, 1.7), rot=(0.4, 0, 0)))
|
||||
# four fingers: relaxed, slightly curled forward, outer ones shorter
|
||||
# Wider and shallower than the old ball: a palm, not a wrist knob.
|
||||
parts.append(sphere("Palm", 0.046, (x, -0.012, 0.742), skin, seg=10, rings=6,
|
||||
scale=(0.80, 0.62, 0.88)))
|
||||
# Four bent, tapering fingers with rounded tips. The two segments keep
|
||||
# the hand readable at conversation distance without adding a full
|
||||
# finger skeleton; the outer fingers are slightly shorter.
|
||||
for index, offset in enumerate((-0.024, -0.008, 0.008, 0.024)):
|
||||
length = (0.046, 0.052, 0.050, 0.040)[index]
|
||||
parts.append(cyl("Finger", 0.011, 0.009, length,
|
||||
(x + offset * s, -0.030, 0.714 - length * 0.5), skin,
|
||||
seg=6, rot=(math.radians(14), 0, 0)))
|
||||
fx = x + offset * s
|
||||
tip_z = (0.692, 0.681, 0.684, 0.694)[index]
|
||||
radius = 0.0115 if index in (1, 2) else 0.0105
|
||||
parts.append(tube("Finger", [(fx, -0.018, 0.758),
|
||||
(fx, -0.030, 0.726),
|
||||
(fx, -0.042, tip_z)],
|
||||
radius, skin, seg=6, caps=False))
|
||||
parts.append(sphere("Fingertip", radius, (fx, -0.042, tip_z), skin,
|
||||
seg=6, rings=4))
|
||||
parts.append(tube("Thumb", [(x - 0.010 * s, -0.018, 0.758),
|
||||
(x - 0.028 * s, -0.040, 0.740),
|
||||
(x - 0.034 * s, -0.055, 0.718)],
|
||||
0.012, skin, seg=6, caps=False))
|
||||
parts.append(sphere("ThumbTip", 0.012, (x - 0.034 * s, -0.055, 0.718), skin,
|
||||
seg=6, rings=4))
|
||||
parts.append(box("Shoe", (0.10, 0.25, 0.075), (0.12 * s, -0.045, 0.04), shoe,
|
||||
bevel=0.028, segs=1))
|
||||
parts.append(box("Sole", (0.106, 0.262, 0.02), (0.12 * s, -0.045, 0.01),
|
||||
|
||||
Reference in new issue
Block a user