Jeg finner ikke benspeilalternativet.
Da jeg brukte Blender for omtrent to år siden, ble speilalternativet gjemt i riggen / objektpanelene, men nå ser jeg ingen åpenbare alternativer.
Hvordan kan jeg speile bein i 2.7+?
Svar
Gå inn i redigeringsmodus og trykk deretter på T for å åpne verktøypanelet. under alternativer finner du en avkrysningsrute som sier X-Axis Mirror . det.
Dette alternativet vil speile handlinger utført på bein over X-aksen. For å sette opp en rigg, bare gi benene et suffiks til venstre eller høyre (f.eks. R / .L, _R / _L eller _right / _left …) og sørg for at resten av navnene stemmer overens. Ben som er sentrert trenger ikke et suffiks, siden de ikke speiles.
Kommentarer
- Det er flott. Jeg la aldri merke til den lille fanen. Han ' s jus t slags gjemmer seg stille er ikke ' t han! TY
- Fanene gir meg ingen slutt på sorg … De skal løse problemer med brukervennlighet … 🙁 det skjedde aldri.
Svar
Blender 2.79b
Jeg har nettopp oppdaget at hvis du speiler med x-Axis-alternativet i verktøykassen, så må du navngi hvert bein manuelt for begge sider. Hvis du rigger et menneske, en humanoid karakter eller et dyr, den beste måten er IKKE å sjekke alternativet x-Axis, men følg trinnene nedenfor:
- Edit Mode, velg alle beinene som skal speiles på den ene siden (arm, ben, håndfinger )
- Forsikre deg om at hvert bennavn som skal speiles, ender med .L som betyr VENSTRE (f.eks. hånd.L). Dette er viktig!
- Forsikre deg om at markøren er sentrert (Skift + C).
- Nettverket ditt må også være sentrert slik at markøren plasseres i bunnen av den
- Trykk på W og velg Symmetrize (duplisering er automatisk)
- Beinene dine er nå speilet og navnene blir automatiske matisk oppdatert med utvidelse .R (som står for høyre).
Du er ferdig!
Kommentarer
- Eller (i v2.79) kan du bruke W > Symmetrize, det gjør alt ovenfor på en gang.
- Når jeg prøver Symmetrize-alternativet, ser det ut til å duplisere sammen med Y-aksen, og ikke X-aksen. Først trodde jeg at dette kunne være fordi riggen min ikke var ' ikke orientert riktig med fronten av tegnet vendt langs Y-aksen (som den tidligere var vendt nedover X-aksen), men selv etter å ha rotert alt, symmetriiserer det seg nedover motsatt dimensjon til den jeg vil ha. Noen ideer?
Svar
. ..du må navngi hvert bein manuelt for begge sider …
Ja, det kan være en stor plage,
hvis det viser seg at du importerte et G2f-tegn fra DAZ,
via .fbx eller Collada, og i Blender,
oppdager du at DAZ-armaturen ikke kom over feilfri.
I mitt tilfelle finner jeg at jeg trenger å justere fingerbeinene, som jeg, etter nok flid, kan oppnå på for eksempel venstre hånd;
men så vil jeg at datamaskinen skal gjenta alt det finjustering
på høyre hånd, automatisk.
Hvis jeg prøver standardblenderalternativene, skjer det ingenting, for
DAZ-ankeret til G2f (ditto V4) følger konvensjonen om at
navnene på venstre og høyre ben bruker en prefiks av l eller r.
Retting: V4 fulgte den konvensjonen; Genesis 1,2,3-figurene
bruker et prefiks av «Venstre» og «Høyre» som vist av DAZ Studio;
imidlertid overføringsprosessen, via Collada eller via .fbx ,
gjør det slik at det du ser fra Blender-siden er prefikset l eller r,
og ditto for de tilknyttede toppunktgruppene.
Selvfølgelig, av hensyn til symmetrisering,
vil du virkelig ikke gi nytt navn til antall bein,
og deretter være forpliktet til å gi dem nytt navn,
slik at navnene deres matche toppunktgruppene!
Anledning til å støve av litt Python:
# # Given: selected armature, with left/right bone names starting with l,r # (as is the case of DAZ Victoria 4 and Genesis2) or L,R # (Blender assumes they end in .L,.R) # # Does: symmetrizes armature, by copying coordinates of head,tail of each left EditBone # to corresponding right EditBone, but with x-axis mirrored, and copies roll with opposite sign. # # Author, Tom Telos, presents this in June 2017 to the Public Domain, as experimental code, no warranties. # import bpy #, bmesh , math , mathutils Arm = bpy.context.scene.objects.active if (Arm.type != "ARMATURE") : raise RuntimeError("Please select your armature; quit().") bpy.ops.object.mode_set(mode="EDIT") #"EDIT_ARMATURE" not available, implicit. #print( "Armature name: " , Arm.name , "\n" ) lNames = [] rNames = [] for EdBone in Arm.data.edit_bones : NamePrx = EdBone.name[0] if (NamePrx == "l" or NamePrx == "L") : lNames.append(EdBone.name) if (NamePrx == "r" or NamePrx == "R") : rNames.append(EdBone.name) #print( lNames , rNames , "\n" ) NamePairs = [] for iNamePair in range( len(lNames) ) : lName = lNames[ iNamePair ] rR = "r" if (lName[0] == "l") else "R" rName = rR + lName[1:] if rName in rNames : NamePairs.append([ lName , rName ]) #print( NamePairs , "\n" ) for NamePair in NamePairs : lName = NamePair[0] rName = NamePair[1] Arm.data.edit_bones[rName].head = Arm.data.edit_bones[lName].head Arm.data.edit_bones[rName].head[0] *= -1 Arm.data.edit_bones[rName].tail = Arm.data.edit_bones[lName].tail Arm.data.edit_bones[rName].tail[0] *= -1 Arm.data.edit_bones[rName].roll = - Arm.data.edit_bones[lName].roll # bpy.ops.object.mode_set(mode="OBJECT")
Svar
tusen takk for skriptet, det hjalp meg veldig 🙂 Jeg gjorde noen justeringer av det: å kunne bruke en forhåndsdefinert del av navnet til å spacify venstre og høyre del: i mitt eksempel: Jeg bruker «LT» og «RT» (ikke mitt valg skjønt)
her er det modifiserte skriptet:
# # Given: selected armature, with left/right bone names starting with l,r # (as is the case of DAZ Victoria 4 and Genesis2) or L,R # (Blender assumes they end in .L,.R) # # Does: symmetrizes armature, by copying coordinates of head,tail of each left EditBone # to corresponding right EditBone, but with x-axis mirrored, and copies roll with opposite sign. # # Author, Tom Telos, presents this in June 2017 to the Public Domain, as experimental code, no warranties. # # Updated by Fouad jeniani October 2018: # to: support any predefined Left Right text anywhere in the bone name # for now user has to enter manually the names in scripts # import bpy #, bmesh , math , mathutils Arm = bpy.context.scene.objects.active if (Arm.type != "ARMATURE") : raise RuntimeError("Please select your armature; quit().") bpy.ops.object.mode_set(mode="EDIT") #"EDIT_ARMATURE" not available, implicit. print( "Armature name: " , Arm.name , "\n" ) lNames = [] rNames = [] for EdBone in Arm.data.edit_bones : if EdBone.name.find("LT") != -1 : lNames.append(EdBone.name) if EdBone.name.find("RT") != -1 : rNames.append(EdBone.name) print( lNames , rNames , "\n" ) NamePairs = [] for iNamePair in range( len(lNames) ) : lName = lNames[ iNamePair ] rR = "RT" rName = lName.replace("LT","RT") if rName in rNames : NamePairs.append([ lName , rName ]) print( NamePairs , "\n" ) for NamePair in NamePairs : lName = NamePair[0] rName = NamePair[1] Arm.data.edit_bones[rName].head = Arm.data.edit_bones[lName].head Arm.data.edit_bones[rName].head[0] *= -1 Arm.data.edit_bones[rName].tail = Arm.data.edit_bones[lName].tail Arm.data.edit_bones[rName].tail[0] *= -1 Arm.data.edit_bones[rName].roll = - Arm.data.edit_bones[lName].roll # bpy.ops.object.mode_set(mode="OBJECT")
Jeg håper det vil være til hjelp 🙂