Community影像github.com

polywright-finish

讓網格模型為遊戲引擎、網頁或AR做好準備:檢查並修復多邊形數量、LOD、拓撲、UV、烘焙、PBR、碰撞、骨架,以及針對Roblox、Unity、Unreal、Godot、three.js、USDZ和影片區塊的匯出。

polywright-finish 是什麼?

polywright-finish 是一個專門用於將 3D 網格模型「完工」的技能,確保其符合特定目標平台(如遊戲引擎、網頁或 AR)的技術規範。它會引導使用者透過一系列結構化步驟,從檢查和測量模型開始,調整縮放、軸向與樞紐點,再根據目標需求進行幾何優化(如減面、生成 LOD、拓撲整理),接著處理 UV 與 PBR 紋理烘焙,最後依據不同平台(Roblox、Unity、Unreal、three.js、USDZ)輸出正確格式並驗證。此技能整合了 `pw.py` 指令工具,提供自動化檢查與轉換功能,同時保留手動調整的彈性,適合需要快速迭代或確保跨平台相容性的開發者與數位內容創作者。其詳細的參考文件涵蓋引擎規範、拓撲指南與實際範例,確保使用者能產出「經得起檢查、渲染正確、匯入無誤」的最終網格。

相容平台✓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 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

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.0 到 2.1 公尺,一個椅子座墊是 0.45 公尺,一張桌子是 0.75 公尺,一個人約 1.7 到 1.8 公尺。
  • 道具的樞紐點在底部中心,門的樞紐點在鉸鏈,輪子的樞紐點在軸心,武器的樞紐點在握把。
  • 軸向:Blender 是 Z 軸向上且前面朝向 -Y;glTF 是 Y 軸向上且前面朝向 +Z;Unreal 是 Z 軸向上並使用公分;Unity 是 Y 軸向上的左手座標系;Roblox 是 Y 軸向上,1 個 stud = 0.28 公尺。若有疑問,匯出一個 1 公尺的立方體和一個方向箭頭進行測試。

步驟 3:目標平台的幾何處理

需求做法
較少的三角形,靜態道具pw.py convert --max-tris N(塌陷式減面可保留輪廓);使用 pw.py lods 產生 LOD(每層約減少一半)
較少的三角形,可彎曲網格不要使用減面:合併不會彎曲的迴圈,保留關節周圍的迴圈(references/topology.md)
用於變形或雕刻的乾淨四邊面先使用體素網格重製(會封閉模型),然後使用 QuadriFlow(polywright-blender 中的配方)、Instant Meshes、Quad Remesher(付費)或託管的四邊面重製服務;角色:手動處理
生成的網格(密集、凹凸不平、邊緣柔和)靜態道具:減面並重新烘焙;英雄物件或動畫模型:重新拓撲並重新烘焙;或使用更好的參考圖重新生成
應合併為一個的許多部件--join;對於實體,使用 pw.py union
碰撞每個部件一個盒子、膠囊或凸包;Unreal 使用 UCX_ 前綴;Roblox 使用 CollisionFidelity Box 或 Hull;對於移動中的物體,永遠不要使用渲染網格

步驟 4:UV 與紋理

  • UV:道具使用 pw.py convert --uv(智慧 UV 投影);用於烘焙光照貼圖的第二組不重疊 UV(配方);整個套件的紋理密度保持一致;使用減面貼圖和圖集來減少材質和繪製呼叫。
  • 從高密度網格烘焙到低密度網格:法線、AO、顏色(配方 bake-high-to-low)。重新拓撲會破壞 UV,因此務必重新烘焙。
  • PBR 金屬粗糙度工作流程:金屬值為 0 或 1,粗糙度決定外觀,漫射色永不為純黑或純白;glTF 將遮擋、粗糙度和金屬值分別打包到 R、G、B 通道(ORM)。
  • 法線貼圖:Blender、Unity、Godot、glTF、three.js、Roblox 使用 OpenGL(Y+);Unreal 使用 DirectX(Y-)。反轉綠色通道來修正不符的情況。紋理使用 2 的冪次方;對於網頁和 AR,每個材質使用 1024 到 2048 像素。

步驟 5:骨架(當網格會動時)

輸入為 A-Pose 姿勢,網格需為乾淨的流形網格。使用 UniRig(MIT 授權,本機運算,8 GB)或託管服務 Tripo、Meshy、AccuRIG(最乾淨的人形權重)、Mixamo(人形,最佳重定位文件)。2026 年的比較發現 Meshy 的臀部樞紐點偏移 5 到 15 公分(導致腳步滑動),而 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-roblox每個 MeshPart 使用 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 false使用 gltf_validator;在頁面上檢查(threewright)
ar-usdzconvert in.glb out.usdz當 usd-core 已安裝時,執行 usdchecker --arkit
video-blockout使用真實比例的 GLB 或 .blend,加上旋轉台與深度/法線通道(配方)交給影片外掛程式(cinewright)
commerce-gltfGLB,真實比例,原點在底部中心,僅使用三角形check --target commerce-gltf

「依角度平滑」是 Blender 4.1 及更高版本中的幾何節點修改器:匯出時需套用修改器,否則硬邊緣會以平滑方式匯出(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...

相關技能