Cum să oglindesc un os?

Nu pot găsi opțiunea oglindă osoasă.

Când am folosit Blender acum aproximativ doi ani, opțiunea oglindă a fost ascunsă în panourile de platformă / obiect, dar acum nu văd opțiuni evidente.

Cum pot oglindi oasele în versiunea 2.7+?

Răspunde

Intrați în modul de editare, apoi apăsați pe T pentru a deschide panoul de instrumente. sub opțiuni, veți găsi o casetă de selectare care spune X-Axis Mirror . Bifați it.

introduceți descrierea imaginii aici

Această opțiune va reflecta acțiunile efectuate pe oase peste axa X. Pentru a configura o platformă, pur și simplu dați oaselor un sufix lateral stânga sau dreapta (de exemplu .R / .L, _R / _L sau _dreapta / _stânga …) și asigurați-vă că restul numelor se potrivesc. Oasele centrate nu au nevoie de un sufix, întrucât nu sunt oglindite.

Gif

Comentarii

  • E grozav. Nici măcar nu am observat acea filă mică. El ' s jus Un fel de ascundere liniștită nu este ' t he! TY
  • Filele nu îmi provoacă sfârșitul durerii … Se presupune că rezolvă problemele de utilizare … 🙁 nu s-a întâmplat niciodată.

Răspuns

Blender 2.79b

Tocmai am descoperit că, dacă oglindești cu opțiunea X-Axis în caseta de instrumente, atunci trebuie să denumiți fiecare os manual pentru ambele părți. Dacă aranjați un om, un personaj umanoid sau un animal, cel mai bun mod NU este să bifați opțiunea X-Axis, dar urmați pașii de mai jos:

  1. Mod Editare, selectați toate oasele de oglindit pe o parte (braț, picior, degete de mână )
  2. Asigurați-vă că fiecare nume osos care trebuie oglindit se termină cu .L, ceea ce înseamnă STÂNGA (de exemplu: mână.L). Acest lucru este vital!
  3. Asigurați-vă că cursorul este centrat (Shift + C).
  4. Rețeaua trebuie să fie și ea centrată, astfel încât cursorul să fie plasat la baza acestuia
  5. Apăsați W și selectați Simetriză (duplicarea este automată)
  6. Oasele tale sunt acum oglindite, iar numele sunt automate actualizat matical cu extension .R (care înseamnă drept).

Ați terminat!

Comentarii

  • Sau (în v2.79) puteți utiliza W > Symmetrize, asta face toate de mai sus simultan.
  • Când încerc opțiunea Symmetrize, se pare că se duplică împreună cu axa Y și nu axa X. La început, am crezut că acest lucru s-ar putea datora faptului că platforma mea nu era ' t orientată corect cu partea din față a personajului orientată de-a lungul axei Y (așa cum anterior era orientată în jos pe axa X), chiar și după ce roti totul, stil simetrizează în jos dimensiunea opusă celei pe care o doresc. Ai vreo idee?

Răspuns

. ..trebuie să denumiți fiecare os manual pentru ambele părți …

Da, asta poate fi o mare problemă,
dacă se dovedește că ai importat un caracter G2f de la DAZ,
prin .fbx sau Collada și, în Blender,
descoperi că armătura DAZ nu a venit impecabil.
În cazul meu, găsesc că trebuie să reglez oasele degetelor, pe care, după suficientă diligență, le pot atinge, să zicem, cu mâna stângă;
dar apoi, vreau ca computerul să repete toate acestea reglarea fină
pe mâna dreaptă, automat.

Dacă încerc opțiunile standard Blender, nu se întâmplă nimic, deoarece
armătura DAZ pentru G2f (idem V4) respectă convenția că
numele oaselor stânga și dreapta folosesc un prefix al lui l sau r.

Corecție: V4 a urmat această convenție; cifrele Genesis 1,2,3
folosesc un prefix „Stânga” și „Dreapta” așa cum se arată în DAZ Studio;
totuși, procesul de transfer, prin Collada sau prin .fbx ,
face astfel încât, din partea Blender, ceea ce vedeți este prefixul l sau r,
și idem pentru grupurile de vârf asociate.

Desigur, de dragul simetrizării,
chiar nu doriți să redenumiți zeci de oase,
și apoi să fiți obligat să le redenumiți din nou,
astfel încât numele lor potriviți grupurile de vârf!

Ocazie de a îndepărta ceva 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") 

Răspuns

vă mulțumesc foarte mult pentru scenariu, m-a ajutat foarte mult 🙂 Am făcut puține ajustări la acesta: să pot folosi orice parte predefinită a numelui pentru a spațializa partea stângă și dreapta: în exemplul meu: Folosesc „LT” și „RT” (totuși nu sunt alegerea mea)

iată scriptul modificat:

# # 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") 

Sper ar fi de ajutor 🙂

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *