Refit the tourist backpack and photo prop
Hide the tourist photo-pose bag outside camera poses, flatten the backpack straps onto the chest, rebuild the gear GLB/AO and publish the before/after NPC sheet.
This commit is contained in:
1 parent
e7ee177c31
commit
7c1a4bfd69
14 files changed
+108
-45
No files matched your search
+18
-5
@@ -412,8 +412,13 @@ def lathe(name, profile, mat, seg=16, loc=(0, 0, 0), smooth=True, sharp=30.0,
|
||||
return _finish(_link(name, bm), mat, smooth=smooth, sharp_angle=sharp)
|
||||
|
||||
|
||||
def tube(name, points, radius, mat, seg=8, caps=True):
|
||||
"""Bent tube through 3D points (handrails, umbrella handles, frames)."""
|
||||
def tube(name, points, radius, mat, seg=8, caps=True, width_scale=1.0,
|
||||
thickness_scale=1.0):
|
||||
"""Bent tube through 3D points (handrails, umbrella handles, frames).
|
||||
|
||||
`width_scale`/`thickness_scale` turn the round cross-section into a flat
|
||||
strap for shoulder harnesses; the default keeps the old round tube.
|
||||
"""
|
||||
bm = bmesh.new()
|
||||
rings = []
|
||||
pts = [Vector(p) for p in points]
|
||||
@@ -430,7 +435,9 @@ def tube(name, points, radius, mat, seg=8, caps=True):
|
||||
ring = []
|
||||
for k in range(seg):
|
||||
a = math.tau * k / seg
|
||||
ring.append(bm.verts.new(p + radius * (math.cos(a) * side + math.sin(a) * up2)))
|
||||
ring.append(bm.verts.new(p + radius * (
|
||||
math.cos(a) * side * width_scale
|
||||
+ math.sin(a) * up2 * thickness_scale)))
|
||||
rings.append(ring)
|
||||
for a, b in zip(rings, rings[1:]):
|
||||
for k in range(seg):
|
||||
@@ -1008,9 +1015,15 @@ def build_gear(name):
|
||||
bevel=0.02, segs=2))
|
||||
p.append(box("Zip", (0.24, 0.005, 0.01), (0, 0.317, 0.05), M("steel")))
|
||||
for s in (-1.0, 1.0):
|
||||
# Strap path: over the shoulder, then down the chest outside the
|
||||
# torso front (Godot z≈0.21). The old chest/waist points sat at
|
||||
# z≈0.13 inside the body, so only thin tube fragments read as two
|
||||
# rigid black bars from the front.
|
||||
p.append(tube("Strap", [(0.09 * s, 0.13, 0.27), (0.10 * s, -0.02, 0.29),
|
||||
(0.11 * s, -0.13, 0.18), (0.12 * s, -0.12, -0.08)],
|
||||
0.012, M("plastic_black"), seg=6))
|
||||
(0.105 * s, -0.06, 0.25),
|
||||
(0.11 * s, -0.19, 0.18), (0.12 * s, -0.19, -0.08)],
|
||||
0.018, M("plastic_black"), seg=8, width_scale=1.35,
|
||||
thickness_scale=0.42))
|
||||
elif name == "shoulder_bag":
|
||||
# Keep the bag's inner face outside the widest skirt flare (dress = 0.26):
|
||||
# 0.292 - 0.06/2 = 0.262. The strap starts/ends on that same outboard line.
|
||||
|
||||
Reference in new issue
Block a user