本文へ移動
cccskills
無料GitHub で公開

contour-to-mesh

Build Blender mesh surfaces directly from extracted 2D contours/masks instead of approximate primitives. Use for 1:1 mascot/logo reconstruction, exact leaf/petal silhouettes, filled wireframe shapes, shallow bas-relief forms, or when the model outline must match a front template before adding depth.

インストール方法を見る

含まれるファイル(3)

  • SKILL.md4.6 KB
  • scripts/mask_to_mesh_recipe.py4.4 KB
  • scripts/source_locked_skin_recipe.py5.7 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Contour to Mesh

Use this when a reference silhouette is the contract. The mesh starts as a filled 2D contour in front-view X/Z, then gets shallow Y depth/crown after validation.

Workflow

  1. Extract or select a clean contour/mask for one structural part.
  2. Generate a triangulated mesh recipe with scripts/mask_to_mesh_recipe.py.
  3. Run the generated Blender Python to create a named GEO_* mesh.
  4. Assign front-projected UVs immediately.
  5. Add depth only as a modifier or vertex displacement that preserves X/Z boundary positions.
  6. Validate the front render against the source mask.

Hard rules

  • Do not use radial duplication unless the manifest says the source is symmetric.
  • Do not use a generic ellipse if a contour exists.
  • Boundary vertices must keep source X/Z coordinates.
  • Depth deformation may move Y and inner vertices, but must not alter front silhouette.
  • One structural source part should become one named structural mesh.

Blender pattern

Generated mesh coordinates should map image x to Blender X and image y to Blender Z with vertical flip. Use Y only for thickness/depth.

Front-plane rotation rule

In this Blender coordinate convention, the front camera looks along the Y axis and the reference silhouette lives in the X/Z plane. Therefore 2D rotations inside the front view are rotations around the Y axis, not around Z. Use rotation_euler = (0, angle, 0) for 2D component orientation in the front projection. Z rotation spins objects into/out of screen-space incorrectly for X/Z-plane meshes.

Sources distilled

  • Blender Mesh API: create meshes from vertices/faces using from_pydata.
  • Blender BMesh: use for cleanup, triangulation, normals, smoothing.
  • OpenCV contours: detect and simplify boundaries.
  • Delaunay triangulation: useful for filled interior meshes when filtered by mask containment.

Part-inventory handoff

When masks come from source-part-segmentation, preserve the part_inventory.json names in Blender: GEO_<part_name>, MAT_<part_name>, and UV layer names. Mesh generation must record:

  • source image size;
  • source mask path;
  • contour boundary point count;
  • boundary landmark points (tip, base-left, base-right, centroid/extrema) when detectable;
  • atlas UV rectangle or projection mode.

For exact mascot/logo work, generate boundary vertices from the contour and add interior vertices only for surface support. The boundary is a contract: bevels, solidify, subdivision, shrinkwrap, or sculpt passes must not move front-view X/Z boundary vertices unless a new source mask is produced.

Hole and stroke policy

  • Filled structural masks become meshes.
  • Wireframe strokes guide boundaries/landmarks; they are not structural meshes unless the manifest classifies them as decorative linework.
  • Holes/negative regions should be kept as separate cut masks when they affect silhouette; otherwise implement them as decals/material masks.

Source-locked front-skin fallback

When a design sheet is painterly/stylized and separate orthographic views are not CAD-consistent, use a front-skin pass before sculptural interpretation:

  1. choose the canonical front/master source;
  2. extract the visible subject mask as a filled contour;
  3. create a shallow 2.5D mesh whose X/Z boundary is that contour;
  4. assign full-image front-projected UVs so the rendered front matches the source pixels;
  5. add depth only along Y and behind the front surface;
  6. optionally add separate relief/backing parts for side plausibility, but keep the front skin as the visual acceptance gate.

This is a generic fallback for logos/mascots where a faithful front read is more important than speculative volume. Mark it as front_locked_visual_skin, not as a fully solved turntable model.

Script

  • scripts/source_locked_skin_recipe.py extracts a largest/canonical foreground component and emits a mask + contour mesh recipe using full-image front-projected UV coordinates.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Validate Blender animation attempts before accepting them by rendering contact sheets, checking silhouette stability, flicker, framing, subject dominance, layer separation, export compatibility, and motion-design coherence. Use after animation renders or when the user says motion/morph/outside elements look bad.

日本語の概要は準備中です。原文の説明を表示しています。

RobLe3/cc-blender-skill892026年5月1日 更新

Detect texture-atlas regions and map each source part to its own UV rectangle or projected UV surface. Use when a texture pack must fit a Blender model 1:1, when textures look off/stretched, when alpha decals or lightmaps are provided, or before exporting a textured GLB for a brand mascot/logo.

日本語の概要は準備中です。原文の説明を表示しています。

RobLe3/cc-blender-skill892026年5月1日 更新

Animate objects, cameras, lights, and properties in Blender — keyframes, F-curves, easing (Bezier, Linear, Sine, Bounce, Elastic), shape keys (morph targets / blendshapes / visemes), drivers (Python expressions on properties), NLA actions for reuse and layering. Use whenever the user asks to "animate this", "make it move / rotate / scale over time", "add keyframes", "loop / oscillate", "shape key / morph / blendshape", "visemes for lip sync", or any time-based property change. Make sure to use this skill even if the user does not say "animate" — also covers "spin it slowly", "make it wave", "fade in / out", "pulse", "facial expression".

日本語の概要は準備中です。原文の説明を表示しています。

RobLe3/cc-blender-skill892026年5月1日 更新

Set up Blender cameras with cinematic intent — focal length, depth of field (f-stop / focus object), composition (rule of thirds, leading lines), animated cameras (orbit, dolly, push-in), tracking constraints. Use whenever the user asks to "set up the camera", "frame the shot", "make it look cinematic / hero / portrait / wide-angle / telephoto", "add depth of field", "orbit the camera", or any composition/framing request. Make sure to use this skill even if the user does not say "camera" — also covers "hero shot", "close-up", "from above", "shallow focus", "85mm portrait look".

日本語の概要は準備中です。原文の説明を表示しています。

RobLe3/cc-blender-skill892026年5月1日 更新

Export Blender scenes to glTF/GLB (web/AR), FBX (game engines), OBJ (universal), USD (VFX pipelines), STL (3D printing). Includes per-format settings, embed/unpack textures, axis conversion, polygon optimization (Decimate), and target-platform validation. Use whenever the user asks to "export this", "save as glTF / FBX / OBJ / STL / USD", "package for Unity / Unreal / Three.js / web / AR / 3D print", or any output format conversion. Make sure to use this skill even if the user does not say "export" — also covers "package this for the web", "make it work in Unity", "send to Unreal", "save for 3D printing".

日本語の概要は準備中です。原文の説明を表示しています。

RobLe3/cc-blender-skill892026年5月1日 更新

Light Blender scenes professionally — three-point setups, HDRI environments, studio/cinematic/dramatic configurations, light groups, color temperature, soft vs hard shadows. Use whenever the user asks to "light the scene", "set up lighting", "make it look cinematic / dramatic / studio / outdoor / sunset", "add a key light", "use HDRI", or any lighting-related request. Make sure to use this skill even if the user does not say "light" — also covers "make it look professional", "studio shot", "moody atmosphere", "golden hour", "rim light". Pairs with blender-materials (lighting reveals materials) and blender-cameras (lighting + composition together = shot).

日本語の概要は準備中です。原文の説明を表示しています。

RobLe3/cc-blender-skill892026年5月1日 更新

RobLe3 のスキルをすべて見る

このスキルの問題を報告する