Jeg kan ikke finde indstillingen af benspejl.
Da jeg brugte Blender for omkring to år siden, blev spejlindstillingen gemt væk i rig- / objektpanelerne, men nu ser jeg ingen indlysende muligheder.
Hvordan kan jeg spejle knogler i 2.7+?
Svar
Gå ind i redigeringstilstand, og tryk derefter på T for at åbne værktøjspanelet. under valgmuligheder finder du et afkrydsningsfelt, der siger X-Axis Mirror . det.
Denne mulighed afspejler handlinger, der udføres på knogler på tværs af X-aksen. For at konfigurere en rig, blot give knoglerne et suffiks til venstre eller højre side (f.eks. R / .L, _R / _L eller _right / _left …) og sørg for, at resten af navnene stemmer overens. Knogler, der er centreret, behøver ikke et suffiks, da de ikke spejles.
Kommentarer
- Det er fantastisk. Jeg har aldrig engang lagt mærke til den lille fane. Han ' s jus t slags skjule sig stille er ikke ' t han! TY
- Fanerne forårsager mig ikke nogen ende på sorg … De skal løse problemer med brugervenlighed … 🙁 det skete aldrig.
Svar
Blender 2.79b
Jeg har lige opdaget, at hvis du spejler med indstillingen x-Axis i værktøjskassen, skal du navngive hver knogle manuelt til begge sider. Hvis du rigger et menneske, en humanoid karakter eller et dyr, den bedste måde er IKKE at kontrollere indstillingen x-Axis, men følg nedenstående trin:
- Edit Mode, vælg alle de knogler, der skal spejles på den ene side (arm, ben, håndfingre )
- Sørg for, at hvert benben, der skal spejles, slutter med .L, hvilket betyder VENSTRE (f.eks. hånd.L). Dette er vigtigt!
- Sørg for, at markøren er centreret (Skift + C).
- Dit net skal også være centreret, så markøren placeres i bunden af den
- Tryk på W og vælg Symmetrize (duplikering er automatisk)
- Dine knogler spejles nu, og navnene automatisk matisk opdateret med udvidelse .R (som står for højre).
Du er færdig!
Kommentarer
- Eller (i v2.79) kan du bruge W > Symmetrize, det gør alt sammen på én gang.
- Når jeg prøver indstillingen Symmetrize, ser det ud til at duplikere sammen med Y-aksen og ikke X-aksen. Først tænkte jeg, at dette kunne være, fordi min rig ikke var ' t orienteret korrekt med den forreste del af tegnet vendt langs Y-aksen (som det tidligere vendte ned ad X-aksen), men selv efter at have roteret alt, symmetrierer det sig stadig den modsatte dimension til den, jeg ønsker. Er der nogen ideer?
Svar
. ..du skal navngive hver knogle manuelt til begge sider …
Ja, det kan være en stor plage,
hvis det viser sig, at du importerede et G2f-tegn fra DAZ,
via .fbx eller Collada, og i Blender,
opdager du, at DAZ-armaturet ikke kom fejlfri over.
I mit tilfælde finder jeg at jeg har brug for at justere fingerbenene, som,
efter tilstrækkelig flid, jeg kan opnå på f.eks. venstre hånd;
men så vil jeg have computeren til at gentage alt det finjustering
på højre hånd automatisk.
Hvis jeg prøver standardblenderindstillingerne, sker der intet, for
DAZ-armaturet til G2f (dito V4) følger konventionen om, at
navnene på venstre og højre knogle bruger en præfiks for l eller r.
Rettelse: V4 fulgte den konvention; Genesis 1,2,3 figurerne
bruger et præfiks af “Venstre” og “Højre” som vist af DAZ Studio;
dog overførselsprocessen, via Collada eller via .fbx ,
gør det således, at hvad du ser fra Blender-siden er præfikset l eller r,
og ditto for de tilknyttede toppunktgrupper.
Selvfølgelig vil du af hensyn til symmetrisering virkelig ikke omdøbe antallet af knogler,
og derefter være forpligtet til at omdøbe dem igen,
så deres navne match toppunktgrupperne!
Lejlighedsvis støv af noget 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
tak så meget for scriptet, det hjalp mig meget 🙂 Jeg foretog få justeringer af det: at kunne bruge en foruddefineret del af navnet til at spacificere venstre og højre del: i mit eksempel: Jeg bruger “LT” og “RT” (dog ikke mit valg)
her er det ændrede script:
# # 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åber det ville være til hjælp 🙂