Blender वेट पेंटिंग: वे 7 समस्याएँ जिनसे हर कोई जूझता है, उन्हें कैसे ठीक करें और इस चरण को कैसे छोड़ें
अंतिम अपडेट: सितंबर 2026।

Blender में वेट पेंटिंग की लगभग हर समस्या इन सात में से एक होती है: ऑटोमैटिक वेट चलने से इनकार कर देते हैं, वेट एक अंग से दूसरे में फैल जाते हैं, किसी वर्टेक्स को चार से अधिक बोन खींच रहे होते हैं, वेट का कुल योग एक नहीं होता, दोनों तरफ के वेट मेल नहीं खाते, घुमाने पर कलाई पिचक जाती है, या शरीर हिलने पर जैकेट पीछे रह जाती है। हर समस्या के लिए Weight Paint Mode के Weights मेन्यू में कोई खास टूल (Normalize All, Clean, Limit Total, Smooth, Mirror Vertex Group, Transfer Weights) या कोई मॉडिफ़ायर सेटिंग है, और यह गाइड हर एक तक पहुँचने का सटीक रास्ता बताती है। अगर आप बिल्कुल पेंट नहीं करना चाहते, तो दो ऐड-ऑन आपके लिए कैरेक्टर की स्किनिंग कर सकते हैं; दोनों के बारे में अंत में बताया गया है।
संक्षिप्त उत्तर
- ऑटोमैटिक वेट विफल होते हैं और
Bone Heat Weighting: failed to find solution for one or more bonesदिखाई देता है: मेश साफ़ करें।Mesh > Clean Up > Merge by Distance,Degenerate Dissolve,Delete Loose, फिरSelect > Select All by Trait > Non Manifoldचलाएँ। केवल एक जुड़े हुए शरीर को रिग करें और कपड़े बाद में जोड़ें। - वेट गलत अंग में फैलते हैं: प्रभावित फ़ेस चुनें, फिर केवल उन बोन के लिए
Weights > Assign Automatic from Bonesचलाएँ जिन्हें उन फ़ेस पर नियंत्रण होना चाहिए, या गलत वेट पेंट करके हटाएँ औरWeights > SmoothतथाWeights > Cleanचलाएँ। - प्रति वर्टेक्स बहुत अधिक बोन: Limit 4 के साथ
Weights > Limit Total, फिरWeights > Normalize Allचलाएँ। - वेट का कुल योग एक नहीं है: Lock Active बंद रखकर
Weights > Normalize Allचलाएँ, फिर टूल विकल्पों में Auto Normalize चालू करें। - एक तरफ सही है, दूसरी तरफ नहीं: Mirror Weights और Flip Group Names के साथ
Weights > Mirror Vertex Groupचलाएँ, या Symmetry पैनल में Mirror Vertex Groups चालू रखकर पेंट करें। - कैंडी-रैपर जैसी कलाई: रेंडर के लिए Armature मॉडिफ़ायर में Preserve Volume चालू करें; गेम इंजन के लिए ट्विस्ट बोन इस्तेमाल करें।
- कपड़े शरीर के साथ नहीं चलते: कपड़े पर Data Transfer मॉडिफ़ायर लगाएँ, Vertex Groups और Nearest Face Interpolated चुनें तथा सोर्स को शरीर पर सेट करें।
- यह चरण छोड़ें: Voxel Heat Diffuse Skinning (लगभग $30) उन मेश की स्किनिंग करता है जिन्हें Blender का सॉल्वर अस्वीकार कर देता है। Cinevva Rig ऐड-ऑन ($29 लॉन्च मूल्य, आपकी अपनी मशीन पर ऑफ़लाइन चलता है, Windows, macOS और Linux पर Blender 4.2+ के लिए) स्केलेटन और वेट दोनों को एक साथ स्थापित करता है।
त्वरित संदर्भ
| समस्या | आपको क्या दिखाई देता है | समाधान | कहाँ |
|---|---|---|---|
| ऑटोमैटिक वेट विफल होते हैं | Bone Heat Weighting: failed to find solution for one or more bones | Merge by Distance, Degenerate Dissolve और Delete Loose चलाएँ, नॉन-मैनिफ़ोल्ड किनारे ठीक करें, केवल शरीर को रिग करें | Edit Mode, Mesh > Clean Up, Select > Select All by Trait |
| वेट फैलते हैं | बाँह उठाने पर पसलियाँ उठती हैं, हाथ कूल्हे को खींचता है | चुने हुए फ़ेस पर Assign Automatic from Bones चलाएँ, फिर Smooth और Clean करें | फ़ेस मास्किंग के साथ Weight Paint Mode का Weights मेन्यू |
| 4 से अधिक इन्फ्लुएंस | इंजन या व्यूअर में डिफ़ॉर्मेशन Blender से अलग दिखता है | Limit Total 4, फिर Normalize All | Weight Paint Mode का Weights मेन्यू |
| अननॉर्मलाइज़्ड वेट | Blender में ठीक दिखता है, एक्सपोर्ट के बाद गलत | Normalize All (Lock Active बंद), Auto Normalize चालू | Weights मेन्यू, टूल का Options पैनल |
| असममित वेट | बाईं तरफ सफ़ाई से मुड़ता है, दाईं तरफ नहीं | Flip Group Names के साथ Mirror Vertex Group | Weights > Mirror Vertex Group |
| कैंडी-रैपर जैसा ट्विस्ट | कलाई घुमाने पर अग्रबाहु दबकर नुकीली हो जाती है | Preserve Volume या ट्विस्ट बोन | Armature मॉडिफ़ायर या रिग |
| कपड़ों का खोल | जैकेट या स्कर्ट पीछे रह जाती है, टाँगें कपड़े के आर-पार निकलती हैं | Data Transfer मॉडिफ़ायर, Vertex Groups, Nearest Face Interpolated | कपड़े के ऑब्जेक्ट पर मॉडिफ़ायर |
स्किन वेट क्या हैं—एक अनुच्छेद में
कैरेक्टर के हर वर्टेक्स में एक छोटी सूची होती है: कौन-सी बोन उसे चलाती हैं और कितनी मात्रा में। Blender इस सूची को बोन के नाम वाले वर्टेक्स ग्रुप के रूप में संग्रहीत करता है—हर ग्रुप में हर वर्टेक्स के लिए एक वेट—और Armature मॉडिफ़ायर उन्हें पढ़ता है: "'forearm' नाम की बोन केवल 'forearm' वर्टेक्स ग्रुप के वर्टेक्स को प्रभावित करेगी। किसी वर्टेक्स पर किसी बोन का इन्फ्लुएंस संबंधित ग्रुप में उस वर्टेक्स के वेट से नियंत्रित होता है।" Weight Paint Mode इन संख्याओं को रंगों के रूप में देखने और संपादित करने का तरीका है। मैनुअल का रंग कोड: "कम मान वाले क्षेत्र (जहाँ वेट 0.0 के करीब हैं) नीले (ठंडे) रंग में और अधिक मान वाले क्षेत्र (जहाँ वेट 1.0 के करीब हैं) लाल (गर्म) रंग में दिखाए जाते हैं", जबकि बीच के मान हरे और पीले रंग में दिखते हैं।
एक अच्छा जॉइंट छोटा-सा ग्रेडिएंट होता है। खराब जॉइंट या तो एक कठोर बदलाव होता है, जो कागज़ की तरह मुड़ता है, या ऐसा ग्रेडिएंट जो वहाँ तक पहुँच जाता है जहाँ उसे नहीं पहुँचना चाहिए।
कुछ भी ठीक करने से पहले देखें कि आपके पास क्या है
व्यू को उसी तरह सेट करें जैसा मैनुअल के वर्कफ़्लो में बताया गया है: आर्मेचर चुनें, Ctrl-Tab से Pose Mode में जाएँ, फिर मेश चुनकर Weight Paint Mode में बदलें। टॉपबार में Edit > Lock Object Modes अनचेक होना चाहिए, वरना दूसरा चरण काम नहीं करेगा। व्यूपोर्ट हेडर में Bone Selection को टिक करें, फिर मेश पर किसी बोन का वर्टेक्स ग्रुप दिखाने के लिए उस बोन पर Alt-LMB करें। बोन शरीर के अंदर छिपी रहती हैं, इसलिए आर्मेचर की Viewport Display सेटिंग में In Front चालू करें।
इसके बाद Viewport Overlays खोलें और Zero Weights को All पर सेट करें। ओवरले दस्तावेज़ के अनुसार, वर्टेक्स "किसी भी वर्टेक्स ग्रुप में कोई वेट न होने पर काले दिखाए जाते हैं"। कैरेक्टर के हिलने पर यही वर्टेक्स पीछे रह जाते हैं।
समस्या 1: ऑटोमैटिक वेट विफल होते हैं
आप Ctrl-P दबाकर Armature Deform > With Automatic Weights चुनते हैं और Blender जवाब देता है:
Bone Heat Weighting: failed to find solution for one or more bones
यह स्ट्रिंग Blender के सोर्स में source/blender/editors/armature/meshlaplacian.cc फ़ाइल में मौजूद है, और इसके आसपास का फ़ंक्शन बताता है कि क्या गलत हुआ। ऑटोमैटिक वेट हर बोन को हीट सोर्स मानते हैं और मेश की सतह पर डिफ़्यूज़न की समस्या हल करते हैं। मैनुअल इसे ऐसा इन्फ्लुएंस बताता है जो "उन वर्टेक्स से किसी खास बोन की दूरी ('bone heat' एल्गोरिदम) पर आधारित" होता है। कोड की दो बातें महत्वपूर्ण हैं: पहले मेश को ट्रायएंगुलेट किया जाता है ("bone heat needs triangulated faces"), और कोई बोन केवल उसी वर्टेक्स को गर्म करती है जिसे वह देख सकती है—इसकी जाँच मेश के विरुद्ध रे कास्ट से होती है। त्रुटि तब आती है जब किसी बोन के लिए लीनियर सॉल्व विफल हो जाता है, और ऐसा तब होता है जब मेश उसे डीजेनेरेट सिस्टम देता है। व्यवहार में इसका अर्थ इनमें से कोई एक कारण होता है:
- दोहराए गए वर्टेक्स और शून्य-क्षेत्रफल वाले फेस। FBX या OBJ इंपोर्ट अथवा Boolean के बाद यह आम है। Edit Mode में सभी को चुनें, फिर
Mesh > Clean Up > Merge by Distanceचलाएँ (मैनुअल के अनुसार: "यह उन चुने हुए वर्टेक्स को मर्ज करता है जो एक निश्चित दूरी से अधिक पास होते हैं"), फिरMesh > Clean Up > Degenerate Dissolveचलाएँ, जो "एक निश्चित लंबाई से छोटे सभी चुने हुए एज को संकुचित कर देता है। इससे छोटे फेस भी हट जाते हैं।" - ढीली ज्योमेट्री।
Mesh > Clean Up > Delete Loose। - नॉन-मैनिफोल्ड एज और अंदरूनी फेस।
Select > Select All by Trait > Non Manifoldउन "एज को चुनता है जो किसी फेस से संबंधित नहीं हैं", "सीमाओं और छेदों के एज", और "ऐसे एज जो तीन या अधिक फेस से संबंधित हैं"।Select > Select All by Trait > Interior Facesऐसे "फेस खोजता है जो गलती से मेश की सतह पर बनने के बजाय उसके अंदर बन गए हों"। जो भी हाइलाइट हो, उसे ठीक करें। ऐसा छेद जिसमें से कोई बोन बाहर निकल रही हो, समस्या है, औरMesh > Clean Up > Fill Holesउसे बंद कर देता है। - कई अलग-अलग शेल। अलग-अलग आइलैंड के रूप में बॉडी, बाल, आँखें, दाँत, बूट और बेल्ट जोड़कर बनाया गया कैरेक्टर इसका क्लासिक कारण है, और इसी वजह से Voxel Heat Diffuse Skinning ऐड-ऑन मौजूद है। पहले केवल बॉडी को रिग करें और बाकी हिस्सों को समस्या 7 में दी गई Data Transfer विधि से जोड़ें, या
Ctrl-Jसे हिस्सों को जॉइन करके Merge by Distance चलाएँ। - स्केल। Rigify का दस्तावेज़ इसकी मान्यता साफ-साफ बताता है: "Rigify मानता है कि 1 यूनिट, 1 मीटर के बराबर है। इसलिए कोई मानव लगभग 2 यूनिट लंबा होता है।" 180 यूनिट लंबा कैरेक्टर इस सीमा से बहुत बाहर है। मेश और आर्मेचर को स्केल करें,
Object > Apply > All Transformsचलाएँ, फिर दोबारा पैरेंट करें।
यदि त्रुटि बनी रहती है, तो समस्या को हिस्सों में बाँटें: फेस सिलेक्शन मास्किंग से मेश का एक हिस्सा चुनें और एक बार में कुछ बोन के लिए Weights > Assign Automatic from Bones चलाएँ। Weight Paint टूल पेज का हर टूल "Vertex Selection Masking और Face Selection Masking के साथ" काम करता है, इसलिए आप उस एक क्षेत्र को खोज सकते हैं जहाँ सॉल्व विफल होता है।
समस्या 2: वेट एक अंग से दूसरे अंग में फैल जाते हैं
बाँह ऊपर जाती है और पसलियों का ढाँचा भी उसके साथ खिंच जाता है। जाँघ मुड़ती है और पतलून का क्रॉच अंदर की ओर सिकुड़ जाता है। हैंड बोन कूल्हे के एक हिस्से को पकड़ लेती है, क्योंकि बाइंड पोज़ में हाथ कूल्हे के पास था। मैनुअल कारण को स्पष्ट शब्दों में बताता है: ऑटोमैटिक वेट "अक्सर ऐसे आर्मेचर बना सकते हैं जो चाइल्ड ऑब्जेक्ट को आपकी अपेक्षा के अनुसार डिफॉर्म नहीं करते। यह निर्धारित करते समय ओवरलैप हो सकता है कि किन वर्टेक्स पर कौन-सी बोन का प्रभाव होना चाहिए।"
सबसे साफ समाधान यह है कि सॉल्वर को केवल एक सबसेट पर फिर से चलाया जाए। Weight Paint Mode में फेस सिलेक्शन मास्किंग चालू करें, केवल वे फेस चुनें जो बाँह से संबंधित होने चाहिए, Pose Mode में आर्म बोन चुनें, फिर Weights > Assign Automatic from Bones चलाएँ। मैनुअल के अनुसार, यह "चुनी हुई बोन से संबंधित वर्टेक्स ग्रुप पर वही 'ऑटो-वेटिंग' विधियाँ लागू करता है जो Parent armature मेन्यू में उपलब्ध हैं", लेकिन अब छाती के फेस चयन में नहीं हैं, इसलिए उन पर कोई वेट नहीं फैल सकता। हर अंग के लिए इसे दोहराएँ।
छोटे फैलाव के लिए पेंट करें। ब्रश के Blend को कम Strength के साथ Subtract पर सेट करें, या Draw ब्रश से घटाने के लिए Ctrl दबाए रखें, और आर्म बोन सक्रिय रखते हुए छाती से अनचाहा वेट ब्रश करके हटाएँ। फिर Weights > Smooth चलाएँ, जो "पास के वर्टेक्स के औसत के आधार पर चुने हुए वर्टेक्स के वेट को ब्लेंड करता है"। शुरुआत के लिए 0.5 Factor और दो या तीन Iterations अच्छे हैं। इसके बाद Weights > Clean चलाकर Smooth से बचा लगभग-शून्य अवशेष हटाएँ (विवरण नीचे एक्सपोर्ट चेकलिस्ट में है)।
वेट फैलने से पहले उसे रोकने वाली दो जाँचें: कैरेक्टर को ऐसी मुद्रा में रखें जिसमें अंग अलग-अलग हों—T-पोज़ या A-पोज़, जिसमें हाथ और कूल्हे के बीच दूरी हो—और ऐसे मेश को रिग न करें जिसकी बाँहें उसके शरीर के किनारों को छूती हों। हमारी ऑटोमैटिक रिगिंग गाइड में पोज़ और सिंगल-मेश तैयारी को विस्तार से समझाया गया है।
समस्या 3: प्रति वर्टेक्स चार से अधिक बोन
Blender को इससे फर्क नहीं पड़ता कि कोई वर्टेक्स कितने ग्रुप से संबंधित है। गेम इंजन को पड़ता है। glTF 2.0 विनिर्देश स्किनिंग को JOINTS_0 और WEIGHTS_0 एट्रिब्यूट में संग्रहीत करता है और कहता है, "एक वर्टेक्स को प्रभावित करने वाले जॉइंट की संख्या प्रति सेट 4 तक सीमित है।" चार से अधिक के लिए दूसरे सेट (JOINTS_1, WEIGHTS_1) की आवश्यकता होती है, जिसे कई रनटाइम अनदेखा कर देते हैं। Unity का Skinned Mesh Renderer 1 Bone, 2 Bones, 4 Bones या Auto के Skin Weights विकल्प देता है और चेतावनी देता है कि "यदि आप स्किन वेट की कस्टम संख्या इंपोर्ट करते हैं और चार से अधिक बोन के प्रभाव की अनुमति देना चाहते हैं, तो आपको यह विकल्प चुनना होगा और Skin Weights को Unlimited पर सेट करना सुनिश्चित करना होगा।" Blender के अपने glTF एक्सपोर्टर में Bone Influences सेटिंग है, जिसके साथ यह टिप्पणी दी गई है: "4 या 8 से अलग मान रखने पर कई व्यूअर में मॉडल गलत दिखाई दे सकते हैं।"
इसलिए Blender में छह प्रभाव वाला कोई वर्टेक्स एक्सपोर्ट या इंपोर्ट के दौरान बिना सूचना के ट्रंकेट हो जाता है, और कैरेक्टर इंजन में आपके व्यूपोर्ट से अलग तरह से डिफॉर्म होता है। ऑटोमैटिक वेट अक्सर कंधों, कूल्हों और उँगलियों के आसपास छह या सात प्रभाव बना देते हैं।
समाधान केवल दो क्लिक का है। Weights > Limit Total, Limit 4। मैनुअल के अनुसार: "प्रति वर्टेक्स वेट ग्रुप की संख्या को तय की गई Limit तक घटाएँ। सीमा पूरी होने तक यह टूल सबसे कम वेट को पहले हटाता है।" फिर Weights > Normalize All चलाएँ, क्योंकि सबसे छोटे वेट हटाने के बाद बाकी वेट का योग एक से कम रह जाता है।
समस्या 4: वेट का योग एक नहीं होता
यह समस्या छिपी रहती है। मैनुअल का नॉर्मलाइज़्ड वेट वर्कफ़्लो इसका कारण समझाता है: "Blender का Armature मॉडिफायर यह अपने आप करता है, इसलिए तकनीकी रूप से पेंटिंग के चरण में वेट को नॉर्मलाइज़ करना आवश्यक नहीं है।" जिस वर्टेक्स के वेट का योग 0.6 या 1.7 हो, वह Blender में सही ढंग से डिफॉर्म होता है। glTF विनिर्देश कहता है कि किसी दिए गए वर्टेक्स के वेट का "रैखिक योग व्यावहारिक रूप से जितना संभव हो, 1.0 के करीब होना चाहिए" और जोखिम समझाता है: "वेट के योग में 1/255 की त्रुटि से भी जॉइंट की स्थिति में अस्वीकार्य रूप से बड़ा अंतर आ सकता है।" इस भरोसे न रहें कि एक्सपोर्टर इसे चुपचाप ठीक कर देगा।
Weights > Normalize All। मैनुअल के अनुसार: "हर वर्टेक्स के लिए यह टूल सुनिश्चित करता है कि सभी वर्टेक्स ग्रुप के वेट का योग 1 के बराबर हो। यह टूल लॉक किए गए ग्रुप को छोड़कर सभी वर्टेक्स ग्रुप को नॉर्मलाइज़ करता है।" यदि आप सक्रिय ग्रुप को स्थिर रखकर बाकी सभी को उसके आसपास फिर से संतुलित नहीं करना चाहते, तो Lock Active से सही का निशान हटाएँ। फिर टूल सेटिंग्स में Auto Normalize चालू करें, जो "सुनिश्चित करता है कि पेंटिंग के दौरान सभी डिफॉर्मिंग वर्टेक्स ग्रुप का योग एक हो।" इसके बाद हर स्ट्रोक ऊपर से वेट जोड़ने के बजाय अनलॉक किए गए ग्रुप के बीच वेट को दोबारा बाँटेगा।
Normalize All को Weights > Normalize न समझें, क्योंकि यह "केवल सक्रिय वर्टेक्स ग्रुप पर काम करता है" और उसे इस तरह स्केल करता है कि "सबसे बड़ा वेट मान 1.0 हो जाए।"
लॉक करना इसका पूरक कौशल है। Vertex Groups पैनल में पैडलॉक या K पाई मेन्यू से किसी ग्रुप को लॉक करें, और Auto Normalize "केवल अनलॉक किए गए ग्रुप के बीच वेट को दोबारा बाँटेगा"। इस तरह आप पहले से सही की गई छाती को प्रभावित किए बिना कंधा ठीक कर सकते हैं।
समस्या 5: दोनों तरफ के वेट मेल नहीं खाते
आपने बाईं बाँह पर एक घंटे तक पेंट किया, लेकिन दाईं बाँह पर अब भी कच्चा ऑटोमैटिक परिणाम है। Weights > Mirror Vertex Group एक तरफ के वेट को दूसरी तरफ कॉपी करता है, लेकिन मैनुअल के अनुसार इसकी दो शर्तें हैं। पहली, "मिररिंग केवल तभी काम करती है जब ऑब्जेक्ट का रेस्ट पोज़ X अक्ष के आर-पार पूरी तरह सममित हो।" यदि आपका मेश लगभग सममित है, लेकिन पूरी तरह नहीं, तो Topology Mirror पर सही का निशान लगाएँ, जो "पूरी तरह सममित न होने वाले मेश (अनुमानित मिरर) के लिए" है। दूसरी, "वेट संबंधित विपरीत बोन वेट ग्रुप में ट्रांसफर नहीं किए जाते", जब तक आप इसे ऐसा करने के लिए न कहें। Flip Group Names यही करता है: यह सममित नामों वाले ग्रुप के बीच असाइनमेंट की अदला-बदली करता है—"(जिनमें 'L', 'R', 'right', 'left' जैसे घटक हों)"। पूरे कैरेक्टर पर एक साथ यह करने के लिए Mirror Weights, Flip Group Names और All Groups पर सही का निशान लगाएँ। यह इस बात पर निर्भर करता है कि आपकी हड्डियों के नाम इसके अनुरूप रखे गए हैं या नहीं। नामकरण परंपराओं वाला पेज hand_L और hand_R, hand.l और hand.r, handLeft और handRight, और साइड को आगे लगाकर बनाए गए इन्हीं नामों को स्वीकार करता है, लेकिन बिना सेपरेटर वाले handL को नहीं। Mixamo-शैली के LeftHand और RightHand काम करते हैं। Bone_012 जैसे नामों वाले आर्मेचर की हड्डियों का नाम पहले बदलना पड़ता है, क्योंकि मिररिंग यह नहीं जान सकती कि कौन-सी हड्डी किसके साथ जोड़ी बनाती है।
इस समस्या से बचने के लिए शुरुआत से ही सममित रूप से पेंट करें। Tool settings के Symmetry पैनल में Mirror Vertex Groups को टिक करें, जिसे मैनुअल "सममित नाम वाले समूहों पर मिरर की गई पेंटिंग" बताता है। अब बाईं बाँह पर किया गया हर स्ट्रोक दाईं बाँह के समूह पर भी लागू होगा।
समस्या 6: टॉफ़ी-रैपर जैसी कलाई
कलाई को 90 डिग्री घुमाएँ और अग्रबाहु बीच में दबकर पतली कमर जैसा हो जाता है। यह पेंटिंग की गलती नहीं है। यह लीनियर ब्लेंड स्किनिंग का गणित है: अग्रबाहु और हाथ पर आधे-आधे भार वाला वर्टेक्स घुमाए गए और बिना घुमाए गए ट्रांसफ़ॉर्म का औसत प्राप्त करता है, और यह औसत अक्ष की ओर सिकुड़ जाता है। Armature मॉडिफ़ायर का Preserve Volume विकल्प क्वाटरनियन ब्लेंडिंग इस्तेमाल करता है, और मैनुअल इसके समझौते को सटीक रूप से समझाता है: "इसके बिना, जोड़ों पर रोटेशन आस-पास की ज्योमेट्री को छोटा कर देते हैं, यहाँ तक कि रेस्ट पोज़िशन से 180 डिग्री पर लगभग शून्य तक। इसके साथ, ज्योमेट्री अब छोटी नहीं होती, लेकिन रेस्ट पोज़िशन से 180 डिग्री पर पहुँचने पर एक 'गैप', यानी असातत्य दिखाई देता है।"
Blender के भीतर रेंडर करने के लिए Preserve Volume को टिक करें। गेम के लिए याद रखें कि यह मॉडिफ़ायर सेटिंग है, मेश डेटा नहीं, और glTF तथा FBX इसे साथ नहीं ले जाते। इंजन तब तक लीनियर स्किनिंग करते हैं, जब तक आप उन्हें किसी और विधि पर न बदलें, इसलिए इंपोर्ट करते ही दबाव वापस आ जाता है। एक्सपोर्ट के बाद भी काम करने वाले पुराने समाधान हैं: एक या दो अग्रबाहु ट्विस्ट बोन, जो रोटेशन को छोटे चरणों में बाँटें और प्रत्येक की अपनी ग्रेडिएंट हो, या कलाई के वेट्स को अधिक एज लूप्स पर फैलाना ताकि कोई वर्टेक्स ठीक 50/50 बिंदु पर न रहे।
Smooth Corrective मॉडिफ़ायर Blender के भीतर उपलब्ध दूसरा टूल है, जो "आमतौर पर Armature मॉडिफ़ायर के बाद उपयोगी होता है, जहाँ सावधानी से वेट पेंटिंग करने के बावजूद जोड़ों के आस-पास की विकृति से बचना कठिन हो सकता है।" यहाँ भी वही चेतावनी लागू होती है: यह Blender में विकृति सुधारता है और वेट्स के रूप में एक्सपोर्ट नहीं होता।
समस्या 7: कपड़ों की बाहरी परतें शरीर का अनुसरण नहीं करतीं
आपने शरीर को रिग किया और वह अच्छी तरह हिलता है। अलग मेश वाली जैकेट को या तो अपने खराब ऑटोमैटिक वेट्स मिल गए हैं—जांघ पैंट की टाँग से बाहर निकलती है क्योंकि शरीर और कपड़ा थोड़ा अलग तरीके से ब्लेंड हुए—या उसे कोई वेट मिला ही नहीं और वह हवा में लटकी रहती है। सही समाधान कपड़े को उसके अपने नहीं, बल्कि शरीर के वेट्स देना है।
कपड़े के ऑब्जेक्ट में Data Transfer मॉडिफ़ायर जोड़ें। Source को शरीर पर सेट करें, Vertex Data को टिक करें, Vertex Groups चुनें, मैपिंग को Nearest Face Interpolated पर सेट करें और Generate Data Layers पर क्लिक करें। मैनुअल चेतावनी देता है कि यह बटन महत्वपूर्ण है: "मॉडिफ़ायर इसे अपने-आप नहीं करता, इसलिए इस बटन पर क्लिक करना सुनिश्चित करें (या गायब लेयर्स स्वयं जोड़ें), वरना ट्रांसफ़र काम नहीं कर सकता।" Nearest Face Interpolated "सबसे निकट के सोर्स फ़ेस पर सबसे निकट बिंदु खोजता है, फिर उस बिंदु का उपयोग उस फ़ेस के वर्टेक्स मानों के बीच इंटरपोलेट करने के लिए करता है", जो त्वचा से कुछ मिलीमीटर ऊपर बैठने वाली परत के लिए ठीक वही है जिसकी आपको आवश्यकता है। Layer Mapping को By Name पर सेट करें, ताकि शरीर का LeftArm, जैकेट के LeftArm को डेटा दे। फिर उसके नीचे उसी आर्मेचर की ओर संकेत करता हुआ Armature मॉडिफ़ायर जोड़ें। एक्सपोर्ट से पहले Data Transfer मॉडिफ़ायर लागू करें, ताकि वेट्स वास्तविक वर्टेक्स ग्रुप बन जाएँ।
यही सुविधा एक ऑपरेटर के रूप में भी उपलब्ध है: Weight Paint Mode में पहले शरीर और फिर कपड़े को चुनें (कपड़ा सक्रिय हो), Weights > Transfer Weights चुनें और Adjust Last Operation पैनल में Source Layers Selection को By Name पर सेट करें। मैनुअल के अनुसार ऑब्जेक्ट "एक ही स्थान पर होने चाहिए। अगर वे अगल-बगल रखे हैं, तो वेट ट्रांसफ़र काम नहीं करेगा।"
जहाँ परत त्वचा से सटी हुई होने के बजाय मोटी हो—जैसे भारी कोट या कवच—वहाँ भी ट्रांसफ़र किए गए वेट्स ऑटोमैटिक वेट्स से बेहतर रहते हैं, क्योंकि वे नीचे के शरीर से असहमत नहीं हो सकते।
गेम एक्सपोर्ट के लिए साफ़ वेट्स, सही क्रम में
इन्हें Weight Paint Mode में करें और सुनिश्चित करें कि कोई फ़ेस या वर्टेक्स मास्किंग सक्रिय न हो, ताकि प्रत्येक टूल पूरे मेश पर काम करे।
- उन समूहों को हटाएँ जो बोन नहीं हैं। Vertex Groups पैनल में ऐसा प्रत्येक समूह हटाएँ जो किसी डिफ़ॉर्मिंग बोन से मेल नहीं खाता। Armature मॉडिफ़ायर के दस्तावेज़ बताते हैं कि "खाली वर्टेक्स ग्रुप हटाने से निर्भरताएँ कम होती हैं"।
- पहले फैलाव और असममिति ठीक करें (समस्याएँ 2 और 5)। नीचे दिए गए टूल किसी भटके हुए वेट और सही वेट के बीच अंतर नहीं जानते।
Weights > Limit Total, Limit 4। glTF, three.js, Babylon.js, डिफ़ॉल्ट सेटिंग्स वाले Unity और अधिकांश मोबाइल लक्ष्यों के लिए। अगर आपका इंजन और एक्सपोर्ट दोनों आठ के लिए सेट हैं, तो 8 इस्तेमाल करें।Weights > Normalize All, Lock Active बंद। Limit Total द्वारा अतिरिक्त वेट हटाए जाने के बाद योग फिर 1.0 हो जाता है।Weights > Clean, Limit 0.001, Keep Single चालू। Clean "उन Vertex Groups से वर्टेक्स को अनअसाइन करता है जिनके वेट Limit से कम हैं"। 0.0004 का वेट देखने योग्य कुछ नहीं करता, लेकिन फिर भी चार स्लॉट में से एक घेरता है। Keep Single सुनिश्चित करता है कि "प्रत्येक वर्टेक्स कम-से-कम एक वेट बनाए रखेगा"। glTF आमतौर पर वेट्स को नॉर्मलाइज़्ड बाइट्स के रूप में संग्रहीत करता है, जहाँ सबसे छोटा चरण 1/255 होता है, इसलिए 0.004 से कम कोई भी मान वैसे भी राउंड होकर शून्य हो जाता है।- फिर से
Weights > Normalize Allकरें। Clean किसी वर्टेक्स को 0.999 पर छोड़ सकता है। - Zero Weights जाँचें। Overlay को All पर सेट करें और काले हिस्से खोजें।
- एक्सपोर्ट करें। glTF एक्सपोर्टर में Data, Skinning के अंतर्गत Bone Influences को 4 पर और Include All Bone Influences को बंद रखें। Data, Armature में Use Rest Position Armature को टिक करें, ताकि बाइंड पोज़ वर्तमान फ़्रेम के बजाय रेस्ट पोज़ हो।
यह चरण छोड़ दें
लोग यह काम न करने के लिए पैसे देते हैं। दो उत्पाद इसे अलग-अलग तरीकों से साबित करते हैं।
Mesh Online का Voxel Heat Diffuse Skinning वह ऐड-ऑन है जिसे Blender उपयोगकर्ता तब खरीदते हैं जब ऑटोमैटिक वेट्स काम करने से इनकार कर देते हैं। इसकी Superhive लिस्टिंग $30 का Indie लाइसेंस, 12,500 से अधिक बिक्री और एक्सटेंशन के रूप में Blender 3.6 से 5.1 तक का समर्थन दिखाती है। लिस्टिंग शुरुआत में ही सटीक समस्या बताती है: "Blender एक संदेश दिखाता है: 'bone heat weighting: failed to find solution for one or more bones'।" इसकी विधि वही है जो नाम बताता है। Blender का अंतर्निहित सॉल्वर सतह पर ऊष्मा फैलाता है, इसलिए उसे साफ़ सतह चाहिए। यह ऐड-ऑन कैरेक्टर को वॉक्सेल में बदलकर ठोस बनाता है और "ठोस प्रतिमा में ऊष्मा फैलने" देता है, इसलिए बीस ओवरलैप होती परतों से बना कैरेक्टर एक ही शरीर की तरह स्किन होता है। लेखक इस समझौते के बारे में ईमानदार है: अंतर्निहित सतह विधि "उँगलियों और पैर की उँगलियों जैसे विस्तृत क्षेत्रों में बहुत बेहतर परिणाम दे सकती है", इसलिए ऐड-ऑन दोनों को मिलाता है। इसे कम-से-कम 8 GB मेमोरी चाहिए। अगर आपका मेश अस्त-व्यस्त है और आप Blender का अपना स्केलेटन चाहते हैं, तो यही खरीदने योग्य विकल्प है।
Cinevva Rig ऐड-ऑन दूसरा रास्ता अपनाता है: वेट्स ठीक न करें और बोन भी स्वयं न रखें। मेश चुनें, Rig दबाएँ, और यह एक ही चरण में Mixamo नामों वाला ह्यूमनॉइड स्केलेटन रखकर उसे स्किन कर देता है, जिसमें इंजन के लिए वेट्स पहले से लिमिटेड, नॉर्मलाइज़्ड और साफ़ होते हैं। लगभग 2.4 GB के इंजन को एक बार डाउनलोड करने के बाद यह आपकी अपनी मशीन पर ऑफ़लाइन चलता है। Blender 4.2 और नए संस्करणों पर Windows, macOS और Linux के लिए इसकी लॉन्च कीमत एक बार के $29 भुगतान की है और प्रत्येक रिग के लिए कोई शुल्क नहीं है। इसमें 260 CC0 एनिमेशन क्लिप भी हैं, जिन्हें Blender के भीतर परिणाम पर रीटार्गेट किया जा सकता है, साथ ही मुफ़्त Web, Unity, Unreal और Godot एक्सपोर्ट प्रीसेट हैं, जो आपके लिए Bone Influences, रेस्ट पोज़, अक्ष और स्केल सेट करते हैं। यह कस्टम स्केलेटन, पूँछ या फ़ेस रिग के लिए वेट पेंटिंग का स्थान नहीं लेता। यह उस ह्यूमनॉइड के लिए इसका स्थान लेता है जिसे आपको शुक्रवार तक गेम में चाहिए। विवरण Blender ऐड-ऑन पेज पर उपलब्ध है।
Blender खोले बिना एक कैरेक्टर रिग करने के लिए, वेब Auto Rigger अधिकतम 50 MB की GLB, FBX या OBJ फ़ाइल लेता है और रिग की गई GLB लौटाता है। पहला कैरेक्टर मुफ़्त है और परिणाम पहले से ही चार-प्रभाव, योग-एक वाले उस रूप में होता है, जिस तक पहुँचने में इस गाइड का बीच वाला एक-तिहाई हिस्सा लगता है।
Rigify मुफ़्त विकल्प है, जो Blender के साथ आता है, और इसका दस्तावेज़ीकरण अपेक्षाएँ निष्पक्ष रूप से तय करता है: "आमतौर पर automatic weights के साथ armature deform शुरुआत से ही बहुत अच्छा काम करता है, बशर्ते आपने अपनी बोन सही जगह रखी हों (और काम करने के लिए पर्याप्त टोपोलॉजी हो!)।" कोष्ठक में लिखी बात ही इस पूरे लेख का सार है।
सामान्य प्रश्न
Blender में वेट पेंट काम क्यों नहीं कर रहा?
आमतौर पर इसकी तीन वजहों में से कोई एक होती है। आप गलत वर्टेक्स ग्रुप पर पेंट कर रहे हैं—इसलिए Bone Selection चालू करके हड्डी पर Alt-LMB करें और हेडर में सक्रिय ग्रुप जाँचें। आर्मेचर Pose Mode में नहीं है, या Edit > Lock Object Modes पर टिक लगा है। या फिर फेस सिलेक्शन मास्किंग चालू है और आप चयन के बाहर पेंट कर रहे हैं। Zero Weights ओवरले दिखाता है कि किन वर्टेक्स पर कोई वेट मौजूद है।
मैं "Bone Heat Weighting: failed to find solution for one or more bones" को कैसे ठीक करूँ?
Edit Mode में मेश साफ़ करें: Mesh > Clean Up > Merge by Distance, Degenerate Dissolve, Delete Loose, फिर Select > Select All by Trait > Non Manifold चलाएँ और हाइलाइट होने वाली समस्याएँ ठीक करें। ट्रांसफ़ॉर्म लागू करके कैरेक्टर को लगभग 2 मीटर लंबा बनाएँ और कपड़े जोड़ने से पहले एक जुड़े हुए शरीर को रिग करें। यदि फिर भी यह विफल हो, तो Voxel Heat Diffuse Skinning ऐड-ऑन बोन हीट सॉल्वर के बिना नॉन-वॉटरटाइट मेश को स्किन कर सकता है।
मैं Blender में वेट पेंट को मिरर कैसे करूँ?
Mirror Weights, Flip Group Names और All Groups पर टिक लगाकर Weights > Mirror Vertex Group चलाएँ। यदि मेश पूरी तरह सममित नहीं है, तो Topology Mirror भी चालू करें। इसके लिए X-अक्ष के आर-पार सममित रेस्ट पोज़ और hand.L तथा hand.R जैसे जोड़ों में नामित बोन चाहिए। दोनों तरफ एक साथ पेंट करने के लिए टूल सेटिंग्स के Symmetry पैनल में Mirror Vertex Groups पर टिक लगाएँ।
मैं Blender में वेट्स को नॉर्मलाइज़ कैसे करूँ?
Weights > Normalize All प्रत्येक वर्टेक्स के सभी अनलॉक ग्रुप के वेट्स का योग 1 कर देता है। यदि आप सक्रिय ग्रुप को सुरक्षित नहीं रखना चाहते, तो Lock Active बंद करें। फिर टूल के Options में Auto Normalize चालू करें, ताकि नए स्ट्रोक वेट्स का योग 1 बनाए रखें। सामान्य Weights > Normalize अलग है: यह केवल सक्रिय ग्रुप को स्केल करता है, ताकि उसका अधिकतम मान 1.0 हो जाए।
मैं Blender में वेट पेंट को स्मूद कैसे करूँ?
वर्टेक्स सिलेक्शन मास्किंग चालू करें, जोड़ के आसपास के वर्टेक्स चुनें और Weights > Smooth चलाएँ। Factor नियंत्रित करता है कि प्रत्येक वेट अपने पड़ोसी वर्टेक्स के औसत की ओर कितना बढ़ेगा (शुरुआत के लिए 0.5 अच्छा है), Iterations प्रक्रिया को दोहराता है, और Expand/Contract प्रभावित क्षेत्र को बढ़ाता या घटाता है। इसके बाद छोटे Limit मान के साथ Weights > Clean चलाएँ, फिर Normalize All करें।
Blender में बोन हिलाने पर मेरा मेश गलत तरीके से डिफ़ॉर्म क्यों होता है?
या तो गलत वर्टेक्स उस बोन के ग्रुप में हैं—इसे वेट ब्लीडिंग कहते हैं और फेस सिलेक्शन पर Weights > Assign Automatic from Bones चलाकर या उन वर्टेक्स से वेट पेंट हटाकर ठीक किया जा सकता है—या जोड़ के आर-पार ट्रांज़िशन बहुत अचानक है (Weights > Smooth), या बोन मेश के भीतर गलत जगह पर है, इसलिए शुरुआत से ही ऑटोमैटिक वेट्स गलत बने। Zero Weights भी जाँचें: जो वर्टेक्स किसी ग्रुप में नहीं हैं, वे अपनी जगह पर रहते हैं जबकि उनके आसपास की हर चीज़ हिलती है।
हीट वेटिंग और वॉक्सेल हीट डिफ्यूज़ स्किनिंग में क्या अंतर है?
Blender की बोन हीट वेटिंग प्रत्येक बोन के प्रभाव को मेश की सतह पर फैलाती है, इसलिए इसे साफ़ और जुड़ी हुई सतह चाहिए। वॉक्सेल हीट डिफ्यूज़ स्किनिंग कैरेक्टर के आयतन को वॉक्सेल से भरकर ठोस हिस्से में प्रभाव फैलाती है, इसलिए इससे कोई फ़र्क नहीं पड़ता कि मेश वॉटरटाइट है या अलग-अलग शेल से बना है। Voxel Heat Diffuse Skinning ऐड-ऑन (Superhive पर लगभग $30) यह तरीका Blender में उपलब्ध कराता है और उँगलियों जैसी बारीक डिटेल के लिए दोनों विधियों को मिलाता है।
संबंधित सामग्री
- ऑटोमैटिक रिगिंग कैसे काम करती है और उसके लिए मॉडल कैसे तैयार करें: मेश तैयार करने की वह प्रक्रिया जो वेट से जुड़ी अधिकांश समस्याओं को शुरू होने से पहले ही रोक देती है
- Blender में कैरेक्टर को रिग कैसे करें: रिगिंग की पूरी चरण-दर-चरण मार्गदर्शिका, जिसका यह गाइड हिस्सा है
- मुफ़्त कैरेक्टर एनिमेशन और ऑटो-रिगिंग: रिग के सही तरह से डिफ़ॉर्म होने के बाद उसके लिए CC0 क्लिप कहाँ से पाएँ
- Blender के लिए Cinevva Rig: एक ही प्रक्रिया में बोन और वेट्स, स्थानीय व ऑफ़लाइन संचालन और गेम एक्सपोर्ट प्रीसेट के साथ
- ऑटो रिगर: ब्राउज़र में एक कैरेक्टर रिग करें, पहला मुफ़्त है
- GLB व्यूअर: एक्सपोर्ट की गई स्किन जाँचें और Blender के बाहर क्लिप चलाएँ