Ich habe es endlich geschafft, den 2. Teil von ARewO hochzuladen. Das Script ist jetzt in der Lage, die Duplikate entlang eines Pfades zu platzieren und Armatures zu verwenden.

Falls Du den 1. Teil noch nicht gesehen hast, würde ich empfehlen, dies zu tun.

Hier ist das Skript:

  1. span style="color: #483d8b;">'Placer'"linked"'SELECTED_OBJECTS''DESELECT'#verschieben
  2. "done")

Und hier die Erklärung:

  1. span style="color: #483d8b;">'Placer']
Das sind die wichtigen Variablen. Arm ist die Armature, sie muss dementsprechend das aktive Objekt sein, wenn man auf "run script" drückt. Kinder sind alle angewählten Objekte. Placer ist ein Objekt, das sich durch den Raum bewegen sollte. Es muss also ein Objekt in der Szene existieren, das "Placer" heißt.

  1. span style="color: #483d8b;">"linked"
Dieser Teil ruft so oft eine For-Schleife auf, wie wir am Anfang "loops" deklariert haben.
Wir wollen eine "linked-copy", falls wir noch etwas an dem Objekt ändern möchten und da linked Datablocks wesentlich schneller rendern.

  1. span style="color: #483d8b;">'SELECTED_OBJECTS'
Die Animation kann allerdings nicht linked sein. Sonst würden die Keyframes jedesmal für alle Objekte verschoben werden, also müssen wir die Animation einen single user machen.

  1.  
Dieser Part ist etwas trickreich. Versucht mal ein Objekt an ein Empty zu parenten. Danach merkt ihr euch seine Position und bewegt das Empty. Die Position des Objekts im Raum ist eine andere, aber die im "n-menu" ist immer noch dieselbe. Wenn ihr ein Objekt anwählt und in der Konsole C.active_object.matrix_world eingebt, seht ihr, dass die Matrix ein zweidimensionales Array ist. Deshalb benötigt sie 2 Indices.
for j in range(3) gibt also 3 mal die 4. Koordinate an, was für x, y und z der World Location steht.

  1. animData = arm.animation_data
  2. action = animData.action
  3. fcurves = action.fcurves
Das sind 3 Hilfsvariablen, die es leichter machen, den Code nachzuvollziehen. Mann könnte auch alles in eine Zeile schreiben.

  1.  
Kinder ist die Variable, die oben angegeben wurde, also alle Objekte, die angewählt waren.

  1. span style="color: #808080; font-style: italic;">#verschieben

Dieser Teil geht alle f-curves durch und darin jeweils alle Keyframes und verschiebt diese in x (Zeit) um den Wert, den wir oben angegeben haben.
  1. span style="color: #483d8b;">"done")
Diese Zeile gibt an, dass unser Skript mit chirurgischer Präzision funktioniert hat.
Viel Spass beim Animieren, schickt uns Links zu euren Verwendungen für ARewO.

Die fertige Blender-Datei gibt es hier zum Herunterladen