el4cteo/blender-skills

blender-asset-qa

Mandatory review gate for any mesh or asset created or edited in Blender.

ソースを見る

使い方

  1. インストールコマンドをコピーし、自分の環境へ導入する前にソースを確認します。
  2. 必要なツール、認証情報、対応環境を原文で確認します。
  3. 入力と成果物を指定し、出力を資料と照合します。
npx skills add https://github.com/el4cteo/blender-skills --skill blender-asset-qa

開始前の確認

  • 導入にはモデル契約、API枠、ファイルへのアクセス許可は含まれません。
  • スター数や導入数は活動の指標であり、独立した品質・安全性試験ではありません。
リポジトリの原文

見出し、例、コード、表、リンク、参照画像を含む原文を表示しています。

Asset QA (review gate)

Never assume a generated or edited mesh is correct. Check it with numbers, then look at it.

Procedure

  1. Automated check, passing one asset's objects together:

scripts/qa_check.py -- --objects Body Head Hat --profile game Profiles: game (default), render (lenient), print (watertight required), roblox (20k tris/mesh, watertight, no n-gons, ≤4 influences).

  1. Fix every `errors` entry (table below), then re-run until "pass": true. Each warning must be either fixed or explicitly accepted, with the reason reported to the user.
  2. Visual check, always:
  • Live: MCP look with mode="angles" on the targets, once in material/solid shading and once in wireframe. Use xray for internals.
  • Headless: scripts/review_shots.py -- --objects ... --mode random (one color per object, which makes detached pieces obvious), then --mode wire for topology. Open the returned PNG.
  1. Report: tris per object, issues fixed, and remaining accepted warnings.

What each finding means → fix

FindingCauseFix
zfighting A<->Btwo surfaces facing the same way within --eps (1 mm) that overlapdelete the hidden duplicate, or offset ≥ 2–5 mm along the normal, or boolean/merge them
back_to_backfaces touching with opposite normals (boxes glued face-to-face)delete the hidden faces (wasted tris, bake artifacts)
floatingisland/object not touching any other part within --tolmove it to make contact (snap), bridge it, or join and merge. If floating is intended (sparks, UI), check it separately
enclosedpart fully inside another, not touching (eyes, internal mechanics)usually fine. Confirm it's intended
inside_out_islandsclosed part with normals pointing inmesh.normals_make_consistent(inside=False) on that part
inconsistent_normals_edgesneighbouring faces wound in opposite directionsrecalc normals; if it persists, look for non-manifold seams
nonmanifold_edges / wire_edges>2 faces per edge, or stray edgesdissolve/delete the extra faces; delete_loose
boundary_edgesopen holes (bad for print/Roblox/bakes)fill (fill_holes/edge_face_add) or cap
degenerate_faces / zero_length_edgescollapsed geometrydissolve_degenerate(threshold=1e-4)
duplicate_vertsunwelded seamsremove_doubles(threshold=1e-4) (Merge by Distance); check UV seams after
ngonsfaces with >4 sidestriangulate/quadrangulate locally; n-gons are fine only on flat hard-surface faces that never deform
unapplied/negative scaleobject transformtransform_apply(rotation=True, scale=True); negative scale flips normals on export
uv_maps: 0 / zero-area UV / overlapmissing or bad unwrapblender-retopology-uv
unweighted / >4 influencesskinningblender-character-rigging (weights_check.py)
ground_z ≠ 0asset floats or sinksmove the origin to the bottom and set z = 0 (props)

Manual checks the script can't fully judge

  • Silhouette and proportions at the target camera distance. Compare with references and real-world size (ob.dimensions).
  • Shading artifacts: smoothing on hard edges (needs sharp edges/weighted normals), and pinching at poles on curved surfaces.
  • Intersections that look wrong (a leg clipping a seat), even though they're "attached".
  • Interior/hidden geometry that wastes tris (use xray).
  • Deformation: pose the rig at extremes (elbow 140°, knee 150°, shoulder raised) and look for collapsing volume.
  • Material assignment: every face has the intended material, with no default grey slots.

Tuning

  • --eps is the z-fight distance. Raise it to 0.005 for large environment scenes, and lower it to 0.0002 for tiny jewelry.
  • --tol is the contact tolerance for detached parts. Raise it for chunky kitbash.
  • --no-modifiers checks the base mesh. By default the evaluated (modifier) result is checked, which is what gets exported.
  • Above --max-tris (300k), the z-fight and floating checks are skipped. Check high-poly sources per part instead.

タスクに関連する項目

同じリポジトリから

関連する Skills

すべての Skills
el4cteo
コミュニティ

blender-game-optimization

Optimize Blender assets for real-time engines - triangle/material/texture/bone budgets per platform (mobile, Roblox, web, VR, console, PC), LOD chains, decimation modes, mesh cleanup, draw-call reduction (material merging, atlases, trim sheets), instancing, vertex-split costs, collision proxies, texture memory. Use when an asset is too heavy, before export, or when targeting a platform budget.

導入数
2
GitHub Stars
318
更新日
10月19日
el4cteo
コミュニティ

blender-pbr-materials

Physically based materials in Blender 5.2 - metal/roughness rules, Principled BSDF inputs, color spaces (sRGB vs Non-Color), measured albedo/F0 values, texture-set auto-wiring, ORM channel packing, DirectX vs OpenGL normals, alpha modes, displacement, view transforms (AgX, Khronos PBR Neutral), engine-ready material rules. Use when creating, fixing, or exporting materials and textures.

導入数
2
GitHub Stars
318
更新日
10月19日
el4cteo
コミュニティ

blender-texture-baking

Bake texture maps in Blender 5.2 Cycles - high-to-low normal maps with cage/extrusion, AO, curvature, ID, thickness, base color/roughness/metallic from procedurals, ORM packing, OpenGL vs DirectX, margins, GPU baking, fixing skewing/waviness/seams. Use when transferring sculpt or high-poly detail to game meshes or converting procedural materials to textures.

導入数
1
GitHub Stars
314
更新日
10月19日
el4cteo
コミュニティ

blender-retopology-uv

Retopology and UVs in Blender 5.2 - auto retopo (Quadriflow, Decimate, planar), deformation edge flow, seams, unwrap (Angle Based, Minimum Stretch, Smart), pixel-margin packing, texel density measure/set, lightmap UV2, UDIMs, mirrored UVs. Use to turn sculpts/scans/AI meshes into game meshes or prep UVs for texturing/baking.

導入数
1
GitHub Stars
314
更新日
10月19日