Hvordan speile et bein?

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.

skriv inn bildebeskrivelse her

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.

Gif

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:

  1. Edit Mode, velg alle beinene som skal speiles på den ene siden (arm, ben, håndfinger )
  2. Forsikre deg om at hvert bennavn som skal speiles, ender med .L som betyr VENSTRE (f.eks. hånd.L). Dette er viktig!
  3. Forsikre deg om at markøren er sentrert (Skift + C).
  4. Nettverket ditt må også være sentrert slik at markøren plasseres i bunnen av den
  5. Trykk på W og velg Symmetrize (duplisering er automatisk)
  6. 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 🙂

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *