Wie spiegele ich einen Knochen?

Ich kann die Knochenspiegeloption nicht finden.

Als ich vor etwa zwei Jahren Blender verwendete, war die Spiegeloption versteckt die Rig / Objekt-Panels, aber jetzt sehe ich keine offensichtlichen Optionen.

Wie kann ich Bones in 2.7+ spiegeln?

Antwort

Aktivieren Sie den Bearbeitungsmodus und drücken Sie dann T , um das Werkzeugfenster zu öffnen. Unter den Optionen finden Sie ein Kontrollkästchen mit der Aufschrift X-Axis Mirror it.

Geben Sie hier die Bildbeschreibung ein.

Diese Option spiegelt Aktionen wider, die an Bones entlang der X-Achse ausgeführt wurden Geben Sie den Bones einfach ein Suffix für die linke oder rechte Seite (z. B. .R / .L, _R / _L oder _right / _left…) und stellen Sie sicher, dass die restlichen Namen übereinstimmen. Knochen, die zentriert sind, benötigen kein Suffix. da sie nicht gespiegelt werden.

Gif

Kommentare

  • Das ist großartig. Ich habe diesen kleinen Tab noch nie bemerkt. Er ‚ ist jus Es ist nicht ‚ t er! TY
  • Die Registerkarten bereiten mir unendlich viel Kummer … Sie sollen Usability-Probleme beheben … 🙁 es ist nie passiert.

Antwort

Blender 2.79b

Ich habe gerade festgestellt, dass Sie, wenn Sie mit der Option x-Achse im Werkzeugkasten spiegeln, jeden Knochen manuell für beide Seiten benennen müssen. Wenn Sie einen Menschen, einen humanoiden Charakter oder manipulieren Bei einem Tier ist es am besten, die Option x-Achse NICHT zu aktivieren, sondern die folgenden Schritte auszuführen:

  1. Bearbeitungsmodus, wählen Sie alle Knochen aus, die auf einer Seite gespiegelt werden sollen (Arm, Bein, Handfinger) )
  2. Stellen Sie sicher, dass jeder zu spiegelnde Knochenname mit .L endet, was LINKS bedeutet (z. B. hand.L). Dies ist wichtig!
  3. Stellen Sie sicher, dass der Cursor zentriert ist (Umschalttaste) + C).
  4. Ihr Netz muss ebenfalls zentriert sein, damit sich der Cursor an der Basis befindet.
  5. Drücken Sie W und wählen Sie Symmetrisieren (Duplizieren erfolgt automatisch)
  6. Ihre Knochen werden jetzt gespiegelt und die Namen automatisch matisch aktualisiert mit der Erweiterung .R (was für richtig steht).

Sie sind fertig!

Kommentare

  • Oder (in Version 2.79) Sie können W > Symmetrize verwenden alles oben auf einmal.
  • Wenn ich die Option Symmetrisieren versuche, scheint sie zusammen mit der Y-Achse und nicht mit der X-Achse zu duplizieren. Zuerst dachte ich, dies könnte daran liegen, dass mein Rig nicht ‚ nicht richtig ausgerichtet war, wobei die Vorderseite des Zeichens entlang der Y-Achse zeigte (wie zuvor auf der X-Achse), aber Selbst nachdem alles gedreht wurde, symmetrisiert es immer noch die entgegengesetzte Dimension zu der von mir gewünschten. Irgendwelche Ideen?

Antwort

. ..sie müssen jeden Knochen manuell für beide Seiten benennen …

Ja, das kann eine große Mühe sein,
Wenn sich herausstellt, dass Sie ein G2f-Zeichen aus DAZ über .fbx oder Collada importiert haben und in Blender
feststellen, dass der DAZ-Anker nicht fehlerfrei übergelaufen ist.
In meinem Fall finde ich dass ich die Fingerknochen anpassen muss, was ich nach ausreichender Sorgfalt beispielsweise mit der linken Hand erreichen kann;
aber dann möchte ich, dass der Computer all das wiederholt Feineinstellung
auf der rechten Seite automatisch.

Wenn ich die Standard-Blender-Optionen ausprobiere, passiert nichts, da
der DAZ-Anker für G2f (ebenso V4) der Konvention folgt, dass
die Namen der linken und rechten Knochen ein verwenden Präfix von l oder r.

Korrektur: V4 folgte dieser Konvention; Die Genesis 1,2,3-Abbildungen verwenden ein Präfix von „Links“ und „Rechts“, wie von DAZ Studio gezeigt.
jedoch den Übertragungsprozess, über Collada oder über .fbx ,
macht es so, dass auf der Blender-Seite das Präfix l oder r,
und das Gleiche für die zugehörigen Scheitelpunktgruppen angezeigt wird.

Natürlich möchten Sie aus Gründen der Symmetrisierung nicht wirklich Dutzende von Knochen umbenennen,
und dann verpflichtet sein, sie erneut umzubenennen,
damit ihre Namen Passen Sie die Scheitelpunktgruppen an!

Gelegenheit, Python abzuwischen:

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

Antwort

Vielen Dank für das Skript, es hat mir sehr geholfen 🙂 Ich habe einige Anpassungen daran vorgenommen: um einen vordefinierten Teil des Namens verwenden zu können, um den linken und rechten Teil zu platzieren: in meinem Beispiel: Ich verwende „LT“ und „RT“ (allerdings nicht meine Wahl).

Hier ist das geänderte Skript:

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

Ich hoffe es wäre hilfreich 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.