En löydä luupeilin vaihtoehtoa.
Kun käytin Blenderiä noin kaksi vuotta sitten, peilivaihtoehto oli piilossa rig / objekti-paneelit, mutta nyt en näe mitään ilmeisiä vaihtoehtoja.
Kuinka voin peilata luut versiossa 2.7+?
Vastaa
Siirry muokkaustilaan ja paina sitten T avataksesi työkalupaneelin. Asetusten alla on valintaruutu, jossa lukee X-Axis Mirror . se.
Tämä vaihtoehto peilaa X-akselin poikki oleville luille tehdyt toiminnot. lautanen, anna luille yksinkertaisesti vasen tai oikea sivuliite (esim. R / .L, _R / _L tai _right / _left …) ja varmista, että loput nimet sopivat yhteen. Keskitetyt luut eivät tarvitse loppuliitettä, koska niitä ei peilata.
kommentit
- Se on hienoa. En ole edes huomannut sitä pientä välilehteä. Hän ' s Eräänlainen piiloutuminen ei ole ' t he! TY
- Välilehdet eivät saa surua loppumaan … Niiden on tarkoitus korjata käytettävyysongelmat … 🙁 Sitä ei koskaan tapahtunut.
vastaus
Blender 2.79b
Olen juuri havainnut, että jos peilataan työkaluruudun x-akselivaihtoehdolla, sinun on nimettävä kukin luu molemmille puolille manuaalisesti. Jos kiinnität ihmistä, humanoidista hahmoa tai eläin, paras tapa EI ole tarkistaa x-akseli-vaihtoehtoa, mutta noudata seuraavia ohjeita:
- Muokkaa tilaa, valitse kaikki luut, jotka heijastuvat toiselta puolelta (käsivarsi, jalka, sormet) )
- Varmista, että kukin peilattava luun nimi päättyy .L, mikä tarkoittaa VASEN (esim. käsi.L). Tämä on elintärkeää!
- Varmista, että kohdistin on keskitetty (Shift + C).
- Verkkosi on myös keskitettävä siten, että kohdistin sijoitetaan sen pohjaan
- Paina W ja valitse Symmetrize (kopiointi on automaattista)
- Luut ovat nyt peilattuja ja nimet ovat automaattisia päivitetty matemaattisesti laajennuksella .R (joka tarkoittaa oikeaa).
Olet valmis!
Kommentit
- Tai (versiossa 2.79) voit käyttää W > Symmetrize -ohjelmaa, mikä tekee kaikki yllä kerralla.
- Kun yritän Symmetrize-vaihtoehtoa, se näyttää kopioivan Y-akselin eikä X-akselin kanssa. Aluksi ajattelin, että tämä voi johtua siitä, että laitokseni ei ollut ' t suunnattu oikein hahmon etuosaan päin Y-akselia (kuten aiemmin X-akselia alaspäin), mutta jopa kiertäen kaiken, se tyyli symmetroituu vastakkaiseen ulottuvuuteen haluamaani. Onko sinulla ideoita?
Vastaa
. ..jokainen luu on nimettävä molemmille puolille manuaalisesti …
Kyllä, se voi olla iso vaivaa,
jos käy ilmi, että olet tuonut G2f-merkin DAZ: sta .fbx: n tai Colladan kautta, ja Blenderissä
huomaat, että DAZ-ankkuri ei tullut virheettömäksi.
Minun tapauksessani minun täytyy säätää sormen luita, jotka voin saavuttaa riittävän huolellisuuden jälkeen esimerkiksi vasemmalla kädellä;
mutta haluan sitten, että tietokone toistaa kaiken tämän hienosäätö
oikealla, automaattisesti.
Jos kokeilen Blenderin vakiovaihtoehtoja, mitään ei tapahdu, koska
G2f: n DAZ-ankkuri (sama V4) noudattaa käytäntöä, jonka mukaan vasemman ja oikean luun nimet käyttävät l: n tai r: n etuliite .
Korjaus: V4 noudatti kyseistä käytäntöä; Genesis 1,2,3-luvuissa
käytetään etuliitettä Vasen ja Oikea, kuten DAZ Studio osoittaa;
siirtoprosessi , Colladan tai .fbx: n kautta ,
tekee siitä niin, että Blenderin puolelta, mitä näet on etuliite l tai r,
ja sama liitettyihin kärkiryhmiin.
Symmetrisoinnin vuoksi et tietenkään halua nimetä uudelleen useita luita,
ja sinun on sitten pakko nimetä ne uudelleen,
jotta heidän nimensä vastaamaan huippupisteitä!
Tilaisuus pölyä Pythonista:
# # 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")
Vastaa
kiitos paljon käsikirjoituksesta, se auttoi minua paljon 🙂 Tein siihen vähän muutoksia: voidakseni käyttää mitä tahansa ennalta määrättyä nimen osaa vasemman ja oikean osan jakamiseksi: esimerkissäni: Käytän ”LT” ja ”RT” (ei kuitenkaan minun valintani).
Tässä on muokattu komentosarja:
# # 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")
Toivon siitä olisi apua 🙂