docs(tooling): T-1253 — sweep the live references to retired tool paths
A script scanned every tracked doc, rule, skill, agent, hook and source file for tooling/ paths that no longer exist, skipping historical records (sprints, discussions, workshops, governance, generated wiki pages). It found 62. The ones that tell a reader what to RUN now name the reach verb: - The atlas skill still sent agents to tooling/atlas, atlas-verify, atlas-update-field and atlas-commit-and-sync — about forty lines, all retired in T-1285. They now name the `reach atlas` verbs, and the skill records that commit-and-sync STAGES by default (--commit to commit) and takes --corridor as an option. - The clerk agent named tooling/clerk-review (now `reach dev clerk`). The Si and clerk briefings sent those agents to the retired tooling/db/decision and sqlite-query CLIs and to decisions/*.md paths that moved to governance/ in the pql migration. They now name pql. - The ticket-cli rule documented `pql decisions read`, which does not exist; `show` already includes the body. - The culture authoring guide and the RON sources name `reach validate ron`, with the same arguments as before. - The 41 Blender payloads' usage lines ran the retired tooling/blender wrapper, and the docstrings still cited pre-carve-out paths. They now read `reach blender run <payload>`. - Doc comments in server/, client/, wiki TOMLs and the domain modules. What is left is deliberate: "Formerly …" provenance, dated plans and findings docs, the retired-pipeline doc, and a build-artefact path. project.yaml 0.4.14 (mirrored to the client). Comment-only, but four touched files are in the canvas-version registry (trait_catalog_reader.rs, since T-1289, canvas_sources.py itself, and two client files). The gate is path-based and has no override. The previous push was rejected on exactly this. Three of the edits are stamped ledger sources, so systems.db is regenerated and the stamp is fresh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -70,8 +70,7 @@ stays faithful; the brown/black work-street default lives in the manifest
|
||||
default_tints (sole near-black, upper work brown, laces dark).
|
||||
|
||||
Usage (boots_modern reference invocation):
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_boots.py -- \
|
||||
reach blender run blender_author_boots \
|
||||
client/assets/characters/bodies \
|
||||
client/assets/characters/clothing/boots_modern \
|
||||
[--bodies average_m,child,...] [--offset 0.013] [--shaft-frac 0.30] \
|
||||
|
||||
@@ -28,8 +28,7 @@ channel is still authored (costs nothing; enables future brand variants).
|
||||
|
||||
Run (per-body only — this garment ships the per-body route):
|
||||
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_buttondown.py -- \
|
||||
reach blender run blender_author_buttondown \
|
||||
client/assets/characters/bodies \
|
||||
client/assets/characters/clothing/buttondown_modern \
|
||||
[--bodies average_m,child,...] [--offset 0.009]
|
||||
|
||||
@@ -38,8 +38,7 @@ boundaries give the waist opening and ankle hems. Regions are painted, not
|
||||
modelled — no 3D pocket geometry (texture carries identity).
|
||||
|
||||
Usage (cargo_pants reference invocation):
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_cargo_pants.py -- \
|
||||
reach blender run blender_author_cargo_pants \
|
||||
client/assets/characters/bodies \
|
||||
client/assets/characters/clothing/cargo_pants \
|
||||
[--bodies average_m,child,...] [--offset 0.013] [--hem-frac 1.0] \
|
||||
|
||||
@@ -51,8 +51,7 @@ base.derive_thresholds, so the denim details stay consistent across all 11
|
||||
bodies. Per-body mode only (offset shells author per body, Q-060).
|
||||
|
||||
Usage (jeans_modern reference invocation):
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_denim_pants.py -- \
|
||||
reach blender run blender_author_denim_pants \
|
||||
client/assets/characters/bodies \
|
||||
client/assets/characters/clothing/jeans_modern \
|
||||
[--bodies average_m,child,...] [--offset 0.012] [--hem-frac 1.0] \
|
||||
|
||||
@@ -27,8 +27,7 @@ Hoodie deltas over the base t-shirt shell:
|
||||
|
||||
PER-BODY ONLY (Q-060: offset-shells are authored per body, never SD-fit):
|
||||
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_hoodie.py -- \
|
||||
reach blender run blender_author_hoodie \
|
||||
client/assets/characters/bodies client/assets/characters/clothing/hoodie_modern \
|
||||
[--bodies a,b,c] [--offset M]
|
||||
|
||||
|
||||
@@ -35,8 +35,7 @@ cut/paint constants — calibrated to the intended metric sizes on average_m.
|
||||
PER-BODY ONLY: offset-shell garments are authored per body (Q-060 route
|
||||
guidance) — there is no single-reference mode here.
|
||||
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_jacket_shell.py -- \
|
||||
reach blender run blender_author_jacket_shell \
|
||||
<bodies_root> <out_dir> \
|
||||
[--bodies average_m,child,...] [--offset 0.018] [--wrist-frac 0.85]
|
||||
|
||||
|
||||
@@ -47,8 +47,7 @@ boundaries give the waist opening and ankle hems for free. Per-body mode only
|
||||
(offset shells author per body, Q-060).
|
||||
|
||||
Usage (joggers_modern reference invocation):
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_joggers.py -- \
|
||||
reach blender run blender_author_joggers \
|
||||
client/assets/characters/bodies \
|
||||
client/assets/characters/clothing/joggers_modern \
|
||||
[--bodies average_m,child,...] [--offset 0.014] [--mid-offset 0.010] \
|
||||
|
||||
@@ -29,8 +29,7 @@ Per-body mode only (route guidance from Q-060 / 216-capture QA evidence:
|
||||
offset-shell garments author per body; weights inherited by construction).
|
||||
|
||||
Usage:
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_lower_shell.py -- \
|
||||
reach blender run blender_author_lower_shell \
|
||||
<bodies_root> <out_dir> \
|
||||
[--bodies a,b,c] [--offset 0.010] [--leg-frac 1.0] \
|
||||
[--waistband-frac 1.0] [--cuff-frac 0.0] \
|
||||
|
||||
@@ -37,8 +37,7 @@ Painted albedo details (flat, toon-friendly; identity lives in the texture):
|
||||
|
||||
Per-body only (this garment ships per-body per the Q-060 route guidance):
|
||||
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_offset_coverall.py -- \
|
||||
reach blender run blender_author_offset_coverall \
|
||||
<bodies_root> <out_dir> [--bodies a,b,c] [--offset 0.012]
|
||||
|
||||
Writes per body:
|
||||
|
||||
@@ -33,8 +33,7 @@ SINGLE-REFERENCE (default) — author on one body (average_m); G1
|
||||
(blender_batch_fit_skinned.py) SD-fits it to the other body types. Right for
|
||||
derived/hand-authored garments that share one UV layout + one mask.
|
||||
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_offset_shell.py -- \
|
||||
reach blender run blender_author_offset_shell \
|
||||
<bodies_dir>/average_m <out_dir> [--offset 0.020] [--sleeve-frac 0.40]
|
||||
|
||||
Writes:
|
||||
@@ -51,8 +50,7 @@ from each body's OWN bone landmarks using the same proportional ratios
|
||||
(anchored to reproduce the hand-calibrated average_m constants exactly), so
|
||||
regions stay consistent across bodies.
|
||||
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_offset_shell.py -- \
|
||||
reach blender run blender_author_offset_shell \
|
||||
<bodies_dir> <out_dir> --per-body \
|
||||
[--bodies average_m,child,...] [--offset 0.012] [--sleeve-frac 0.40]
|
||||
|
||||
|
||||
@@ -36,8 +36,7 @@ consistency with torso garments (all UVs outside [0,1] → shader draws nothing)
|
||||
Modes mirror the base script:
|
||||
|
||||
PER-BODY (preferred for offset shells, Q-060):
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_offset_shell_legs.py -- \
|
||||
reach blender run blender_author_offset_shell_legs \
|
||||
<bodies_dir> <out_dir> --per-body \
|
||||
[--bodies a,b,c] [--offset 0.012] [--hem-frac 0.78] [--waistband-frac 0.35]
|
||||
|
||||
@@ -46,8 +45,7 @@ PER-BODY (preferred for offset shells, Q-060):
|
||||
fallback for the compositor).
|
||||
|
||||
SINGLE-REFERENCE:
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_offset_shell_legs.py -- \
|
||||
reach blender run blender_author_offset_shell_legs \
|
||||
<bodies_dir>/average_m <out_dir> [--offset 0.020] [...]
|
||||
|
||||
Decisions: D-162 (clothing pre-fitted per body type), D-251 (in-house wardrobe).
|
||||
|
||||
@@ -25,8 +25,7 @@ What it adds over the base t-shirt shell:
|
||||
|
||||
Per-body only (this family is the poster child for the Q-060 per-body route):
|
||||
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_outerwear.py -- \
|
||||
reach blender run blender_author_outerwear \
|
||||
<bodies_root> <out_dir> \
|
||||
[--bodies a,b,c] [--offset 0.022] [--cuff-keep 0.88]
|
||||
|
||||
|
||||
@@ -36,8 +36,7 @@ top, combining the proven practices of the wave-1 family:
|
||||
|
||||
Per-body only (Q-060: offset shells author per body, never SD-fit):
|
||||
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_parka.py -- \
|
||||
reach blender run blender_author_parka \
|
||||
client/assets/characters/bodies client/assets/characters/clothing/parka_thrds \
|
||||
[--bodies a,b,c] [--offset 0.026] [--hem-frac 0.15]
|
||||
|
||||
|
||||
@@ -63,8 +63,7 @@ same proportional-ratio philosophy as base.derive_thresholds. Per-body mode
|
||||
only (offset shells author per body, Q-060).
|
||||
|
||||
Usage (shoes_formal reference invocation):
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_shoes_formal.py -- \
|
||||
reach blender run blender_author_shoes_formal \
|
||||
client/assets/characters/bodies \
|
||||
client/assets/characters/clothing/shoes_formal \
|
||||
[--bodies average_m,child,...] [--offset 0.006] [--sole-mm 0.008] \
|
||||
|
||||
@@ -52,8 +52,7 @@ torso/leg companion provides, as reusable parameters:
|
||||
never lands on an untinted texel.
|
||||
|
||||
Usage (per-body only — offset shells author per body, Q-060):
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_slides.py -- \
|
||||
reach blender run blender_author_slides \
|
||||
client/assets/characters/bodies \
|
||||
client/assets/characters/clothing/slides \
|
||||
[--bodies average_m,child,...] [--offset 0.005] \
|
||||
|
||||
@@ -56,8 +56,7 @@ UV space whose islands may overlap; every painted feature is |x|-mirror
|
||||
symmetric, so overlapping texels agree by construction.
|
||||
|
||||
Usage (sneakers_modern reference invocation):
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_sneakers.py -- \
|
||||
reach blender run blender_author_sneakers \
|
||||
client/assets/characters/bodies \
|
||||
client/assets/characters/clothing/sneakers_modern \
|
||||
[--bodies average_m,child,...] [--offset 0.009] [--sole-drop 0.015] \
|
||||
|
||||
@@ -50,8 +50,7 @@ as reusable parameters:
|
||||
|
||||
PER-BODY ONLY (Q-060: offset shells are authored per body, never SD-fit):
|
||||
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_sweater.py -- \
|
||||
reach blender run blender_author_sweater \
|
||||
client/assets/characters/bodies \
|
||||
client/assets/characters/clothing/sweater_modern \
|
||||
[--bodies average_m,child,...] [--offset 0.014] [--hem-drop 0.30] \
|
||||
|
||||
@@ -40,8 +40,7 @@ proportional-ratio philosophy as base.derive_thresholds. Per-body mode only
|
||||
(offset shells author per body, Q-060).
|
||||
|
||||
Usage (swim_trunks reference invocation):
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_swim_trunks.py -- \
|
||||
reach blender run blender_author_swim_trunks \
|
||||
client/assets/characters/bodies \
|
||||
client/assets/characters/clothing/swim_trunks \
|
||||
[--bodies average_m,child,...] [--offset 0.012] [--hem-frac 0.60] \
|
||||
|
||||
@@ -45,8 +45,7 @@ logo_uv TEXCOORD_1 layer ships for channel consistency (not logo-capable).
|
||||
|
||||
Per-body mode only (offset shells author per body, Q-060):
|
||||
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_swimsuit.py -- \
|
||||
reach blender run blender_author_swimsuit \
|
||||
client/assets/characters/bodies \
|
||||
client/assets/characters/clothing/swimsuit_onepiece \
|
||||
[--bodies average_m,child,...] [--offset 0.012]
|
||||
|
||||
@@ -41,8 +41,7 @@ texture carries identity, flat toon-friendly).
|
||||
|
||||
Run (per-body only — offset shells author per body, Q-060):
|
||||
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_tank_top.py -- \
|
||||
reach blender run blender_author_tank_top \
|
||||
client/assets/characters/bodies \
|
||||
client/assets/characters/clothing/tank_top \
|
||||
[--bodies average_m,child,...] [--offset 0.012] \
|
||||
|
||||
@@ -39,8 +39,7 @@ kit needs beyond that script is delivered as reusable parameters, not hacks:
|
||||
|
||||
PER-BODY ONLY (Q-060: offset shells are authored per body, never SD-fit):
|
||||
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_author_track_jacket.py -- \
|
||||
reach blender run blender_author_track_jacket \
|
||||
client/assets/characters/bodies \
|
||||
client/assets/characters/clothing/track_jacket \
|
||||
[--bodies average_m,child,...] [--offset 0.018] [--wrist-keep 0.90]
|
||||
|
||||
@@ -3,7 +3,7 @@ blender_batch_fit_skinned.py (T-1089 gap G1 — the biggest wardrobe gap)
|
||||
|
||||
Fit a reference clothing GLB (authored on average_m) to every body type and
|
||||
export ANIMATABLE skinned variants. This supersedes
|
||||
tooling/blender_surface_deform_batch.py, whose output used export_skins=False
|
||||
tooling/scripts/blender/blender_surface_deform_batch.py, whose output used export_skins=False
|
||||
(:142) — those variants cannot animate on the shared skeleton, which is how the
|
||||
runtime loads clothing (character_visual.gd:582-594).
|
||||
|
||||
@@ -15,7 +15,7 @@ It merges three proven codepaths that had never been combined:
|
||||
Surface Deform bind -> apply -> Data Transfer VGROUP_WEIGHTS
|
||||
(POLYINTERP_NEAREST) from the fitted body -> normalize -> retarget the
|
||||
armature modifier to the body's armature -> export_skins=True
|
||||
* optional Solidify — from tooling/convert_outfit.py (skipped by
|
||||
* optional Solidify — from blender_convert_outfit.py (skipped by
|
||||
default; offset-shell references are already solidified)
|
||||
|
||||
Per body type:
|
||||
@@ -25,8 +25,7 @@ Per body type:
|
||||
armature, export a skinned GLB.
|
||||
|
||||
Run:
|
||||
tooling/blender --background --python \
|
||||
tooling/scripts/blender/blender_batch_fit_skinned.py -- \
|
||||
reach blender run blender_batch_fit_skinned \
|
||||
<reference_glb> <bodies_dir> <output_dir> \
|
||||
[--only average_m,average_f,...] [--solidify 0.0] [--self-check]
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""
|
||||
blender_compare_bones.py
|
||||
Usage: tooling/blender --background --python tooling/blender_compare_bones.py -- <file_a.glb> <file_b.glb>
|
||||
Usage: reach blender run blender_compare_bones <file_a.glb> <file_b.glb>
|
||||
|
||||
Compares bone names between two GLB/GLTF files. Reports missing or extra bones.
|
||||
"""
|
||||
@@ -21,7 +21,7 @@ def get_bones(path: str) -> set:
|
||||
if __name__ == "__main__":
|
||||
argv = sys.argv
|
||||
if "--" not in argv:
|
||||
print("Usage: tooling/blender --background --python tooling/blender_compare_bones.py -- <a.glb> <b.glb>")
|
||||
print("Usage: reach blender run blender_compare_bones <a.glb> <b.glb>")
|
||||
sys.exit(1)
|
||||
|
||||
args = argv[argv.index("--") + 1:]
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
blender_create_clothing_refs.py
|
||||
|
||||
Usage:
|
||||
tooling/blender --background --python tooling/blender_create_clothing_refs.py -- \\
|
||||
reach blender run blender_create_clothing_refs \\
|
||||
<bodies_dir> <clothing_output_dir>
|
||||
|
||||
Creates v0.2 placeholder reference clothing meshes for all 5 initial clothing items.
|
||||
@@ -247,8 +247,7 @@ def create_reference_mesh(item_id, config, bodies_dir, output_dir):
|
||||
if __name__ == "__main__":
|
||||
argv = sys.argv
|
||||
if "--" not in argv:
|
||||
print("Usage: tooling/blender --background --python "
|
||||
"tooling/blender_create_clothing_refs.py -- "
|
||||
print("Usage: reach blender run blender_create_clothing_refs "
|
||||
"<bodies_dir> <clothing_output_dir>")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""
|
||||
blender_extract_armature.py
|
||||
Usage: tooling/blender --background --python tooling/blender_extract_armature.py -- <input.gltf> <output.glb>
|
||||
Usage: reach blender run blender_extract_armature <input.gltf> <output.glb>
|
||||
|
||||
Loads a Quaternius GLTF file, strips all mesh objects and animation data,
|
||||
and exports only the armature as a GLB skeleton file.
|
||||
@@ -82,7 +82,7 @@ def extract_armature(input_path: str, output_path: str) -> None:
|
||||
if __name__ == "__main__":
|
||||
argv = sys.argv
|
||||
if "--" not in argv:
|
||||
print("Usage: tooling/blender --background --python tooling/blender_extract_armature.py -- <input.gltf> <output.glb>")
|
||||
print("Usage: reach blender run blender_extract_armature <input.gltf> <output.glb>")
|
||||
sys.exit(1)
|
||||
|
||||
args = argv[argv.index("--") + 1:]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""
|
||||
blender_inspect_body.py
|
||||
Usage: tooling/blender --background --python tooling/blender_inspect_body.py -- <input.gltf>
|
||||
Usage: reach blender run blender_inspect_body <input.gltf>
|
||||
|
||||
Lists all mesh objects in a FullBody GLTF: names, vertex counts, vertex group counts.
|
||||
"""
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""
|
||||
blender_inspect_vgroups.py
|
||||
Usage: tooling/blender --background --python tooling/blender_inspect_vgroups.py -- <input.gltf>
|
||||
Usage: reach blender run blender_inspect_vgroups <input.gltf>
|
||||
|
||||
Lists vertex groups in a GLTF full-body mesh. Used to verify bone name coverage
|
||||
for the segmentation script.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""
|
||||
blender_list_animations.py
|
||||
Usage: tooling/blender --background --python tooling/blender_list_animations.py -- <input.glb>
|
||||
Usage: reach blender run blender_list_animations <input.glb>
|
||||
|
||||
Lists all animation actions in a GLB file.
|
||||
"""
|
||||
@@ -12,7 +12,7 @@ import bpy
|
||||
if __name__ == "__main__":
|
||||
argv = sys.argv
|
||||
if "--" not in argv:
|
||||
print("Usage: tooling/blender --background --python tooling/blender_list_animations.py -- <input.glb>")
|
||||
print("Usage: reach blender run blender_list_animations <input.glb>")
|
||||
sys.exit(1)
|
||||
|
||||
args = argv[argv.index("--") + 1:]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""
|
||||
blender_list_bones.py
|
||||
Usage: tooling/blender --background --python tooling/blender_list_bones.py -- <input.glb>
|
||||
Usage: reach blender run blender_list_bones <input.glb>
|
||||
|
||||
Lists all bone names in a GLB/GLTF armature, sorted alphabetically.
|
||||
Used to verify bone naming after the January 2026 Quaternius naming update.
|
||||
@@ -13,7 +13,7 @@ import bpy
|
||||
if __name__ == "__main__":
|
||||
argv = sys.argv
|
||||
if "--" not in argv:
|
||||
print("Usage: tooling/blender --background --python tooling/blender_list_bones.py -- <input.glb>")
|
||||
print("Usage: reach blender run blender_list_bones <input.glb>")
|
||||
sys.exit(1)
|
||||
|
||||
args = argv[argv.index("--") + 1:]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""
|
||||
blender_process_bodies.py
|
||||
Usage: tooling/blender --background --python tooling/blender_process_bodies.py -- <source_dir> <output_base_dir>
|
||||
Usage: reach blender run blender_process_bodies <source_dir> <output_base_dir>
|
||||
|
||||
Drives the full body segmentation pipeline for all 11 body types.
|
||||
Calls blender_segment_body.py logic inline (same Blender session, one pass per body type).
|
||||
@@ -85,7 +85,7 @@ def write_fork_readme(output_dir, body_type, source, scale):
|
||||
if __name__ == "__main__":
|
||||
argv = sys.argv
|
||||
if "--" not in argv:
|
||||
print("Usage: tooling/blender --background --python tooling/blender_process_bodies.py -- <source_dir> <output_base_dir>")
|
||||
print("Usage: reach blender run blender_process_bodies <source_dir> <output_base_dir>")
|
||||
sys.exit(1)
|
||||
|
||||
args = argv[argv.index("--") + 1:]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""
|
||||
blender_process_hair.py
|
||||
Usage: tooling/blender --background --python tooling/blender_process_hair.py -- <source_base_dir> <hair_out_dir> <facial_hair_out_dir> <eyebrows_out_dir>
|
||||
Usage: reach blender run blender_process_hair <source_base_dir> <hair_out_dir> <facial_hair_out_dir> <eyebrows_out_dir>
|
||||
|
||||
Converts Quaternius Source tier hairstyle GLTF files (rigged to Head bone) into
|
||||
production GLBs with mask PNG sidecars.
|
||||
@@ -191,7 +191,7 @@ def make_bald_placeholder(glb_path: str) -> None:
|
||||
if __name__ == "__main__":
|
||||
argv = sys.argv
|
||||
if "--" not in argv:
|
||||
print("Usage: tooling/blender --background --python tooling/blender_process_hair.py -- <source_base_dir> <hair_out_dir> <facial_hair_out_dir> <eyebrows_out_dir>")
|
||||
print("Usage: reach blender run blender_process_hair <source_base_dir> <hair_out_dir> <facial_hair_out_dir> <eyebrows_out_dir>")
|
||||
sys.exit(1)
|
||||
|
||||
args = argv[argv.index("--") + 1:]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""
|
||||
blender_process_heads.py
|
||||
Usage: tooling/blender --background --python tooling/blender_process_heads.py -- <source_dir> <output_dir>
|
||||
Usage: reach blender run blender_process_heads <source_dir> <output_dir>
|
||||
|
||||
Processes the 4 Quaternius OnlyHead .blend files into the head template library.
|
||||
|
||||
@@ -118,7 +118,7 @@ def process_head(blend_path: str, output_dir: str, head_id: str) -> None:
|
||||
if __name__ == "__main__":
|
||||
argv = sys.argv
|
||||
if "--" not in argv:
|
||||
print("Usage: tooling/blender --background --python tooling/blender_process_heads.py -- <source_dir> <output_dir>")
|
||||
print("Usage: reach blender run blender_process_heads <source_dir> <output_dir>")
|
||||
sys.exit(1)
|
||||
|
||||
args = argv[argv.index("--") + 1:]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""
|
||||
blender_rebuild_forks.py
|
||||
Usage: tooling/blender --background --python tooling/blender_rebuild_forks.py -- <source_dir> <output_base_dir> [body_type ...]
|
||||
Usage: reach blender run blender_rebuild_forks <source_dir> <output_base_dir> [body_type ...]
|
||||
|
||||
Rebuilds ONLY the fork body types (thin_m/f, heavy_m/f, child) through the same
|
||||
segmentation pipeline that produced the healthy six (blender_segment_body.py),
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
"""
|
||||
blender_segment_body.py
|
||||
Usage:
|
||||
tooling/blender --background --python tooling/blender_segment_body.py -- \
|
||||
reach blender run blender_segment_body \
|
||||
<input.gltf> <output_dir> [--scale sx sy sz]
|
||||
|
||||
Segments a Quaternius FullBody GLTF into 18 production GLBs:
|
||||
@@ -461,7 +461,7 @@ def segment_body(gltf_path, output_dir, scale=(1.0, 1.0, 1.0)):
|
||||
if __name__ == "__main__":
|
||||
argv = sys.argv
|
||||
if "--" not in argv:
|
||||
print("Usage: tooling/blender --background --python tooling/blender_segment_body.py -- <input.gltf> <output_dir> [--scale sx sy sz]")
|
||||
print("Usage: reach blender run blender_segment_body <input.gltf> <output_dir> [--scale sx sy sz]")
|
||||
sys.exit(1)
|
||||
|
||||
args = argv[argv.index("--") + 1:]
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
blender_surface_deform_batch.py
|
||||
|
||||
Usage:
|
||||
tooling/blender --background --python tooling/blender_surface_deform_batch.py -- \\
|
||||
reach blender run blender_surface_deform_batch \\
|
||||
<reference_glb> <bodies_dir> <output_dir>
|
||||
|
||||
Fits a reference clothing GLB (authored on average_m) to all 11 body types via
|
||||
@@ -352,8 +352,7 @@ def process_body_type(body_type, reference_glb, bodies_dir, output_dir):
|
||||
if __name__ == "__main__":
|
||||
argv = sys.argv
|
||||
if "--" not in argv:
|
||||
print("Usage: tooling/blender --background --python "
|
||||
"tooling/blender_surface_deform_batch.py -- "
|
||||
print("Usage: reach blender run blender_surface_deform_batch "
|
||||
"<reference_glb> <bodies_dir> <output_dir>")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user