Community이미지github.com

polywright-finish

메시가 게임 엔진, 웹 또는 AR 환경에 적합하도록 준비하는 기술입니다. 폴리곤 수, LOD, 리토폴로지, UV, 베이킹, PBR, 충돌, 리깅, 축/단위/포맷 내보내기 등을 처리합니다.

polywright-finish란 무엇인가요?

이 기술은 3D 메시를 최종 목표 플랫폼(게임 엔진, 웹, AR 등)에 맞게 완성하는 전 과정을 안내합니다. `pw.py` 도구를 활용하여 메시 검사(inspect), 변환(convert), LOD 생성, UV 매핑, 텍스처 베이킹(bake-high-to-low), 리깅(UniRig, AccuRIG, Mixamo 등), 최종 내보내기(export) 및 검증(check)을 단계별로 수행합니다. Roblox, Unity, Unreal, three.js, USDZ, 상업용 glTF 등 다양한 대상에 대한 구체적인 설정과 주의사항을 제공하며, 특히 축 방향, 단위(미터/센티미터/스터드), PBR 텍스처 규약(OpenGL vs DirectX 법선 맵), 콜리전 메시 규칙 등 플랫폼별 차이를 상세히 설명합니다. 웹 최적화를 위한 meshopt 압축과 KTX2 텍스처 변환 명령어도 포함되어 있습니다. 유지보수 섹션에서는 evergreen 단위 테스트 프레임워크와의 연동 방법을 제시합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/m4bwav/polywright/tree/HEAD/skills/polywright-finish

Installed? Explore more 이미지 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

polywright-finish은(는) 무엇을 하나요?

메시는 대상 플랫폼의 검사를 통과하고, 렌더링에서 올바르게 보이며, 올바른 크기와 방향으로 임포트될 때 완성됩니다. 허브로 돌아가기: ../polywright/SKILL.md. 엔진 세부 정보: references/engines.md. 한 엔진에 맞춰 제작하고 완성하는 단계별 가이드: references/roblox.md, references/unity.md, references/web-threejs.md. 휘어짐, 음영 및 텍스처가 잘 적용되는 메시: references/topology.md.

1단계: 측정 후 결정

pw.py inspect <file> 및 pw.py check <file> --target <t> --real-size-m X를 실행합니다. 실패 항목이 무엇을 해야 할지 알려줍니다: 삼각형 수 초과, UV 없음, 재질 수 초과, 크기 오류, 열린 모서리, 그리고 게임/웹/AR 대상의 경우 뒤집히거나 겹친 면, 불균일한 UV 밀도(inspect --topology; 뒤집힌 면: convert --fix-winding). 파괴적인 단계 전후로 항상 렌더링합니다(pw.py render).

2단계: 스케일, 방향, 피벗

  • 실제 크기(미터): pw.py convert in out --size-m X --ground --center (가장 긴 면을 X로 설정; 비정형 형태는 알려진 치수 사용). 문은 2.02.1m, 의자 좌석은 0.45m, 테이블은 0.75m, 사람은 1.71.8m입니다.
  • 피벗: 소품은 하단 중앙, 문은 경첩, 바퀴는 축, 무기는 손잡이.
  • 축: Blender는 +Z가 위, 앞면은 -Y; glTF는 +Y가 위, 앞면은 +Z; Unreal은 cm 단위 +Z 위; Unity는 +Y 위, 왼손 좌표계; Roblox는 +Y 위, 1 스터드 = 0.28m. 확실하지 않을 때는 1m 큐브와 방향 화살표로 내보내기 테스트.

3단계: 대상에 맞는 지오메트리

필요 사항수행 방법
삼각형 수 줄이기, 정적 소품pw.py convert --max-tris N (collapse decimation이 실루엣 유지); LOD는 pw.py lods (레벨당 약 절반)
삼각형 수 줄이기, 휘어지는 메시decimation 사용 금지: 휘지 않는 곳에서 루프 병합, 관절 주변 루프 유지 (references/topology.md)
변형 또는 조각용 깔끔한 쿼드먼저 복셀 리메시(닫힘), 그다음 QuadriFlow(polywright-blender 레시피), Instant Meshes, Quad Remesher(유료), 또는 호스팅 쿼드 리메시; 캐릭터: 수동
생성된 메시(밀도 높음, 울퉁불퉁, 부드러운 모서리)정적 소품: decimate 후 재베이킹; 히어로 또는 애니메이션: 리토폴로지 후 재베이킹; 또는 더 나은 레퍼런스로 재생성
여러 파트를 하나로 합쳐야 함--join; 솔리드의 경우 pw.py union
콜리전파트당 박스, 캡슐 또는 볼록 껍질; Unreal UCX_ 접두사; Roblox CollisionFidelity Box 또는 Hull; 움직이는 오브젝트에는 렌더 메시 사용 금지

4단계: UV 및 텍스처

  • UV: 소품은 pw.py convert --uv (Smart UV Project); 베이크된 라이트맵용 두 번째 비중첩 UV 세트(레시피); 키트 전체에 일관된 텍셀 밀도; 트림 시트와 아틀라스로 재질 및 드로우 콜 절감.
  • 고밀도 메시에서 저밀도 메시로 베이킹: 법선, AO, 컬러 (레시피 bake-high-to-low). 리토폴로지는 UV를 파괴하므로 항상 재베이킹.
  • PBR 메탈-러프: 메탈릭 0 또는 1, 러프니스가 외관 결정, 알베도는 순수 검정/흰색 사용 금지; glTF는 오클루전, 러프니스, 메탈릭을 R, G, B (ORM)에 패킹.
  • 법선 맵: OpenGL (Y+)은 Blender, Unity, Godot, glTF, three.js, Roblox용; DirectX (Y-)는 Unreal용. 불일치 시 녹색 채널 반전으로 수정. 텍스처는 2의 제곱 크기; 웹 및 AR용 재질당 1024~2048.

5단계: 리깅 (움직이는 경우)

A-포즈 입력, 깨끗하고 매니폴드한 메시. UniRig (MIT, 로컬, 8GB) 또는 호스팅 Tripo, Meshy, AccuRIG (가장 깨끗한 휴머노이드 웨이트), Mixamo (휴머노이드, 최고의 리타겟 문서). 2026년 비교 결과 Meshy의 엉덩이 피벗이 5~15cm 벗어남(발 미끄러짐) 및 AccuRIG가 0.01 스케일로 한 번 임포트됨: 리깅 후 스케일과 피벗 확인. Roblox: 버텍스 당 최대 4개 본 영향, 루트는 원점에 위치. Rigify 리그는 변형 세트보다 훨씬 많은 본을 내보냄(변형 전용 시 706개 중 278개): 게임용으로 변형 전용 스켈레톤을 만들거나 위 경로 사용.

애니메이션 클립: 각 클립은 공유 코어 포즈 중 하나에서 시작 및 종료하여 블렌드 없이 체인 연결; 루프의 첫 프레임은 마지막 프레임과 동일; 클립별로 루트 모션 또는 제자리 결정 및 기록; 베이스 포즈 위에 애드티브 클립(조준, 응시, 기울임)을 별도 액션으로 유지 (Gregory, Game Engine Architecture 2e (2014), sec. 11.6).

6단계: 내보내기 및 검증

pw.py convert는 GLB, FBX, OBJ, USD/USDZ, STL을 작성합니다. 대상별:

대상내보내기그 다음
game-robloxMeshPart당 FBX, OBJ 또는 GLB, 20k 삼각형 미만, 단일 재질check --target game-roblox; roblox-agent가 배치
game-unityGLB (glTFast) 또는 FBX --fbx-bake-axes프로젝트에서 임포트 테스트 (unity-agent)
game-unrealFBX 또는 GLB; 밀도 높은 불투명 메시용 Nanite임포트 시 스케일 확인
web-threejsGLB, 그 다음 gltf-transform optimize in.glb out.glb --compress meshopt --texture-compress ktx2 --join-named falsegltf_validator; 페이지 확인 (threewright)
ar-usdzconvert in.glb out.usdzusd-core 설치 시 usdchecker --arkit
video-blockout실제 스케일의 GLB 또는 .blend, 턴테이블 및 뎁스/법선 패스 (레시피)비디오 플러그인에 전달 (cinewright)
commerce-gltfGLB, 실제 크기, 원점 하단 중앙, 삼각형만check --target commerce-gltf

Smooth by Angle은 Blender 4.1 이상에서 Geometry Nodes 모디파이어입니다: 모디파이어가 적용된 상태로 내보내야 하며, 그렇지 않으면 하드 엣지가 부드럽게 처리되어 나옵니다(glTF, FBX, OBJ 모두 5.2.1에서 확인). 각 출력 기록: pw.py manifest <dir> --add-output out/<file> --target <t> --inspect.

유지보수

Evergreen 유닛, 등급 moderate. 동반 파일: RESEARCH.md, CHANGELOG.md, LEARNINGS.md, TESTS.md (evals/evals.json 포함), MAINTENANCE.md, 상태는 evergreen.json. 사용할 때마다 evergreen.json을 읽고, 갱신 시기가 되면 새로고침.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

m4bwav/polywright

Start here whenever a task needs a 3D model and no sibling below clearly owns it: a model of a real or imagined thing for a game (Unity, Roblox, Unreal, three.js), a 3D print, AI video or AR, or another plugin asking for a mesh. Picks the route (find, capture, generate, code), scaffolds the asset folder and manifest other plugins read, and runs pw.py (inspect, render a sheet, convert, check a budget, bpy headless, match a picture's camera, army blockouts with depth and pose passes for AI...

m4bwav/polywright-blender

Use whenever Blender is scripted, automated or debugged, before writing any bpy code: headless runs that report errors (pw.py bpy), the bpy API traps models still write in Blender 5.x (removed importers, renamed sockets, EEVEE names), tested recipes (modifiers, booleans, remesh, UVs, bakes, turntables, depth passes, batch exports), Blender MCP servers and their risks, and other 3D tools per OS. Use on 'write a Blender script', 'automate Blender', 'batch export .blend', any bpy traceback or...

m4bwav/polywright-generate

Use whenever an imagined or hypothetical 3D model must be made from a prompt, a drawing, concept art, photos or a blockout: image-to-3D through ComfyUI (TRELLIS.2, Pixal3D, Hunyuan3D-2 via pw.py gen) or hosted (Meshy, Tripo, Rodin), or code (bpy, build123d, CadQuery, OpenSCAD) when it has dimensions; then texturing and the licence record. Use on 'make me a 3D model of a dragon', 'turn this drawing or concept art into 3D', 'image to 3D', 'text to 3D', 'TRELLIS', 'Hunyuan3D', 'Meshy', 'model a...

m4bwav/polywright-references

Use whenever reference images, views or textures for a 3D model are needed, before modelling or image-to-3D: orthographic front, side and back views with a height bar, A-pose turnarounds, multi-view sets, blockout renders repainted into consistent views, seamless textures and quick normal/height/roughness maps (pw.py texture). Use on 'what references do I need', 'reference sheet', 'front side back views', 'turnaround', 'seamless texture', 'PBR maps from this photo'. Not for flat graphic...

관련 스킬