Jump to content

Verkehrspolizist


JimKnopf

Empfohlene Beiträge

Hallo Axel,

vor 1 Stunde schrieb JimKnopf:

wenn ich Unterarm und Oberarm gleichzeitig bewegen will z.b. in der Gelb Position, da ist der Oberarm so um die 160° und der Unterarm 180°. Oder beim gehen, da kommt zu dem Ober- Unterschenkel ja noch der Fuß dazu. Benutze ich da den AnimationKey Position oder Rotation ? Und was schreibe ich in die .anim-Datei damit sich die Gruppen „Oberarm“ und „Unterarm“ gleichzeitig in bewegung setzen?

Grundsätzlich werden Drehbewegungungen mit dem Animationkey "Rotation" und Verschiebungen mit dem AnimationKey "Position" realisiert. Da es sich bei den genannten Einzelteilen (Oberarm, Unterarm, Oberschenkel, Unterschenkel, Fuß) um Modellteile handelt, die sich jeweils um einen festen Ankerpunkt eines "übergeordneten" Modellteils drehen,

  • Oberarm dreht sich als "Untergruppe des Rumpfes" im das Achselgelenk,
  • Unterarm dreht sich als "Untergruppe des Oberarms" um das Ellbogengelenk,
  • Oberschenkel dreht sich als "Untergruppe des Rumpfes" um das Hüftgelenk,
  • Unterschenkel dreht sich als "Untergruppe des Oberschenkels" um das Kniegelenk,
  • Fuß dreht sich als "Untergruppe des Unterschenkels" um das Knöchelgelenk,

kann man, wenn man in Sketchup bei Verwendung des Sketchup-DirectX-Exporters zu jeder Untergruppe einen "Ankerpunkt"  ("_AP"-Gruppe) hinzufügt, damit das Koordinatenkreruz der Untergruppe und somit deren Drehpunkt innerhalb der übergeordneten Gruppe festlegen. Hiermit erübrigen sich dann irgendwelche "Position"-Animationkeys, da die sich drehende Untergruppe eine mögliche Drehung der übergeordneten Gruppe automatisch mitmacht. Man muss dann nur die Drehungen der übergeordneten Gruppen jeweis zur Drehung der betrachteten Modellgruppe hinzufügen.

Generell sind in der AnimationSet-Definition sämtliche separat zu steuernden Animationen hintereinander aufgelistet (mit unterschiedlichen Animations-Positionen) und werden dann im Modellbahn-Studio anhand der Anim-Datei wieder in einzelne Animationen zerlegt (ein Eintrag pro Animation mit jeweils der Angabe "Anfangsposition" bis "Zielposition"). Sollen nun verschiedene Animationen im selben Zeitraium ablaufen, werden sie  zu "einer" Animation zusammengefasst, indem für die parallelen Animationen in der AnimationSet-Definition dieselben Animations-Positionen verwendet werden. In der Anim-Datei ist das dann "eine" Animation, die gleichzeitig mehrere Körperteile bewegt.

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo BahnLand,

danke für deine Hilfestellung.

Wenn ich das richtig verstanden habe dann schreibe eine Animation mit dem Gruppennamen: BeinRechts. Die Gruppe BeinRechts besteht den Untergruppen Oberschenkel-R, Unterschenkel-R und Fuss-R. In der Animationsgruppe BeinRechts schreibe ich dann alle Bewegungen der Untergruppen? Oder muß ich jede Untergruppe eine einzelne Animation schreiben. Die Funktion der Ankerpunkte habe ich verinnerlicht.

 

Gruß Axel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Axel,

die Daten für den Oberschenkel müssen nicht unbedingt in einer Gruppe zusammengefasst sein. Sie gehören eigentlich zur Gruppe BeinRechts. Die Gruppe BeinRechts selbst ist eine Untergruppe der "Hauptgruppe" Polizist. Die kompletten Daten des "Polizisten" (einschließlich aller Untergruppen) können selbst zu einer Gruppe zusammengefasst sein. Dies ist aber nicht notwendig. Trotzdem werden ich diese Ebene hier im Beitrag als "Hauptgruppe" bezeichnen.

Wie BeinRechts sind auch BeinLinks, ArmRechts und ArmLinks Untergruppen der Hauptgruppe Polizist. BeinRechts selbst enthält die Daten des Oberschenkels (die zu eine Gruppe Oberschenkel-R  zusammengefasst sein können, aber nicht müssen), eine _AP-Gruppe zur Spezifikation des Drehpunkts im Hüftgelenk und die Untergruppe Unterschenkel-R. Diese Untergruppe wiederum enthält neben den Daten des Unterschenkels und der _AP-Gruppe zur Spezifikation des Drehpunkts im Kniegelenk die Untergruppe Fuss-R, die schließlich die Daten für den Fuß und die _AP-Gruppe für den Drehpunkt am Knöchelgelenk enthält.

Die Gruppen Polizist, BeinRechts, Unterschenkel-R und Fuss-R sind also sukzessive geschachtelt. Für den kompletten Polizisten ergibt sich hieraus also folgende Gruppen-Hierarchie:

(Hauptgruppe) Polizist
|     Untergruppe BeinRechts
|     |     Untergruppe Unterschenkel-R
|     |     |     Untergruppe Fuss-R
|     |     |     |     _AP-Gruppe zur Spezifikation des rechten Fuß-Drehpunkts (Knöchelgelenk)
|     |     |     +--- Restliche Daten des rechten Fußes
|     |     |     _AP-Gruppe zur Spezifikation des rechten Unterschenkel-Drehpunkts (Kniegelenk)
|     |     +--- Restliche Daten des rechten Unterschenkels (ohne Fuß)
|     |     _AP-Gruppe zur Spezifikation des rechten Oberschenkel-Drehpunkts (Hüftgelenk)
|     +--- Restliche Daten des Beins (rechter Oberschenkel - können, müssen aber nicht zur Gruppe Oberschenkel-R zusammengefasst sein)
|     Untergruppe BeinLinks
|     |     Untergruppe Unterschenkel-L
|     |     |     Untergruppe Fuss-L
|     |     |     |     _AP-Gruppe zur Spezifikation des linken Fuß-Drehpunkts (Knöchelgelenk)
|     |     |     +--- Restliche Daten des linken Fußes
|     |     |     _AP-Gruppe zur Spezifikation des linken Unterschenkel-Drehpunkts (Kniegelenk)
|     |     +--- Restliche Daten des linken Unterschenkels (ohne Fuß)
|     |     _AP-Gruppe zur Spezifikation des linken Oberschenkel-Drehpunkts (Hüftgelenk)
|     +--- Restliche Daten des linken Beins (Oberschenkel - können, müssen aber nicht zur Gruppe Oberschenkel-L zusammengefasst sein)
|     Untergruppe ArmRechts
|     |     Untergruppe Unterarm-R
|     |     |     _AP-Gruppe zur Spezifikation des rechten Unterarm-Drehpunkts (Ellbogengelenk)
|     |     +--- Restliche Daten des rechten Unterarms
|     |     _AP-Gruppe zur Spezifikation des rechten Oberarm-Drehpunkts (Schultergelenk)
|     +--- Restliche Daten des rechten Arms (Oberarm)
|     Untergruppe ArmLinks
|     |     Untergruppe Unterarm-L
|     |     |     _AP-Gruppe zur Spezifikation des linken Unterarm-Drehpunkts (Ellbogengelenk)
|     |     +--- Restliche Daten des linken Unterarms
|     |     _AP-Gruppe zur Spezifikation des linken Oberarm-Drehpunkts (Schultergelenk)
|     +--- Restliche Daten des linken Arms (Oberarm)
+-- Restliche Daten des Polizisten (Rumpf + Kopf)

Die Untergruppen Unterarm-R und Unterarm-L werden nicht benötigt, wenn der Polizist immer nur die ausgestreckten Arme bewegen soll. Dann werden die Daten der Gruppen Unterarm-R und Unterarm-L jeweils den Gruppen ArmRechts und ArmLinks zugeschlagen. Die _AP-Grppen für die Ellbogengelenke entfallen dann ebenfalls. Bei der nachfolgenden Beschreibung der Animationsabläufe werde ich mich auf die "gestreckten Arme" beschränken.

Die Gesamtanimation würde ich also wie folgt in einzelne Abschnitte unterteilen:

Abschnitt 1 (Position 0 bis k)
Animation für die Fortbewegung des Polizisten. Bei dieser Animation werden nur die Beine bewegt. Von der durch die Positionen 0 bis k definierten Bewegung sind alle Teile beider Beine (Gruppen BeinRechts, Unterschenkel-R, Fuss-R, BeinLinks, Unterschenkel-L und Fuss-L) gleichermaßen betroffen. Die Rotationsbewegungen dieser Animationen laufen also alle im Animatonsbereich der Positionen 0 bis k simultan statt.

Abschnitt 2 (Position k+1 bis m, m>k+1)
Animation für das Ausstrecken des rechten Arms (Gruppe ArmRechts) von der Ruhestellung (nach unten zeigend, 0°) in die "Achtung"-Stellung (nach oben zeigend, 180°). Der linke Arm (Gruppe ArmLinks) ist von dieser Bewegung nicht betroffen.

Abschnitt 3 (Position m+1 bis n, n>m+1)
Animation für den Wechsel der Arme aus der "Achtung"-Stellung (rechter Arm nach oben zeigend, 180°, linker Arm nach unten zeigend, 0°) in die "Halt"-Stellung (beide Arme zur Seite zeigend, 90°/-90°). Beim Übergang von der "Achtung"-Stellung in die "Halt"-Stellung oder umgekehrt werden beide Arme simultan bewegt.

In der AnimationSet-Definition gibt es für jede Gruppe einen separaten Animationsabschnitt, der jeweils nur den AnimationKey vom Typ "Rotation" enthält (die AnimationKeys vom Typ "Position" und "Scale" werden meiner Ansicht nach nicht benötigt), und wo jede AnimatmationKey-Definition komplett alle Positionen 0 bis n umfassen muss.

Bei den Bein-Bewegungs-Animationen werden jeweils nur die Pisitionen 0 bis k mit veränderlichen Werten (für die Drehwinkel) versorgt, während die Positionen k+1 bis n die konstanten "Ausgangs"-Werte enthalten, und daher beim Aufruf der Animationen zu den Abschnitten 2 und 3 nicht tangiert werden.

Bei der Animation für die Gruppe ArmRechts sind sowohl die Positionen k+1 bis m (Arm von Ruhezustand in "Achtung!-Stellung bringen) als auch die Positionen m+1 bis n (Arm von "Achtung"-Stellung" in "Halt"-Stellung bringen) relevant. Bei den Positionen 0 bis k wird jeweils die Ruhestellung eingetragen, sodass sich die Bein-Bewegungs-Animation nicht auf den Arm auswirkt.

In analoger Weise werden für die Gruppe ArmLinks nur die Positionen m+1 bis n (Arm von Ruhezustand in "Halt"-Zustand bringen) als relevant versorgt. Die Positionen 0 bis m sind auch hier mit dem Ruhezustand zu belegen.

Die Anim-Datei erhält nun 3 Einträge:

  • _AnimWheel;0;k;NoAutoPlay;NoLoop
  • Achtung;k+1;m;NoAutoPlay;NoLoop
  • Halt;m+1;n;NoAutoPlay;NoLoop

Durch Benennung der ersten Animation mit "_AnimWheel" erreicht an, dass diese Animation (Gehbewegung) automatisch an die Fortbewegung des Polizisten gekoppelt ist (dieser muss im Modellbahn-Studio als Modell vom Typ "Fahrzeug" hochgeladen worden sein). Die zweite Animation dient dem Heben des rechten Arms von der Ruhestellung in die "Achtung"-Stellung. Die dritte Animation bewegt beide Arme des Polizisten von der "Achtung"-Stellung in die "Halt"-Stellung (für den linken Arm sind die Ruhe- und Achtung-Stellung identisch). Während die erste Animation (_AnimWheel") vom Modellbahn-Studio automatisch gesteuert wird, können die beiden anderen Animationen über das Eigenschaftsfenster des Polizisten oder die Ereignisverwaltung gesteuert werden. Die Betätigung der beiden letzten Animationen ist unabhängig von der "_AnimWheel"-Animation, sodass beispielsweise der rechte Arm sowohl im Stand als auch im Gehen angehoben und abgesenkt werden kann.

Mit diesen Animationen lässt sich letztendlich folgende Animationsfolge nachstellen:

  1. Gang des Polizisten zur von ihm zu regelnden Kreuzung ("_AnimWheel"), Anhalten am Rand des Gehsteigs.
  2. Anheben des rechten Arms in die Achtung-Stellung ("Achtung vorwärts")
  3. Gang des Polizisten mit erhobenem Arm zur Kreuzungsmitte ("_AnimWheel")
  4. Drehen in die zuerst zu stoppende Fahrtrichtung (entweder über "Mini-90°-Kurve" oder "Mini-Drehscheibe")
  5. Stoppen des Verkehrs in Blickrichtung und Freigabe des Verkehrs in seitlicher Richtung ("Halt vorwärts")
  6. Nach einiger Zeit Rückkehr zur Achtung-Stellung ("Halt rückwärts")
  7. Drehung der Blickrichtung um 90° ("Mini-90°-Kurve" oder "Mini-Drehscheibe")
  8. Stoppen des Verkehrs in Blickrichtung und Freigabe des Verkehrs in seitlicher Richtung ("Halt vorwärts")
  9. Nach einiger Zeit Rückkehr zur Achtung-Stellung ("Halt rückwärts")
  10. ... die Abschnitte 7-9 können beliebig oft wiederholt werden ...
  11. Verlassen der Kreuzung mit erhobenem rechten Arm ("_AnimWheel")
  12. Senken des rechten Arms bei Erreichen des Bürgersteigs ohne Anzuhalten ("Achtung rückwärts" bei aktivem "_AnimWheel")

Viele Grüße
BahnLand

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Bahnland,

da ist doch noch eine Frage, warum werden die Animationen nacheinander abgearbeitet? Sie sollten doch gleichzeitig laufen. Irgend etwas mache doch noch falsch aber was.:/

Aus der .anim Datei

 

Achtung;3;9;NoAutoPlay;NoLoop

Halt;10;16;NoAutoPlay;NoLoop

 

aus der .x Datei

AnimTicksPerSecond {

3;

}

AnimationSet Polizist {

Animation {

{Rechter-Unterarm}

AnimationKey { // Rotation 20° um y-Achse

0;

17;

00; 4; 1.00000000, 0.00000000, 0.0, 0.0;;,

01; 4; 1.00000000, 0.00000000, 0.0, 0.0;;,

02; 4; 1.00000000, 0.00000000, 0.0, 0.0;;,

03; 4; 0.00000000, 0.0, 0.0, 0.00000000;;,

04; 4; 0.984807750, 0.0, 0.0, 0.1736817;;;

}

}

Animation {

{Arm-Rechts}

AnimationKey { // Rotation 160° um y-Achse

0;

17;

05; 4; 1.00000000, 0.00000000, 0.0, 0.0;;,

06; 4; 1.00000000, 0.00000000, 0.0, 0.0;;,

07; 4; 1.00000000, 0.00000000, 0.0, 0.0;;,

08; 4; 1.00000000, 0.0, 0.0, 0.00000000;;,

09; 4; 0.25881904, 0.0, 0.0, 0.96592582;;,

10; 4; 1.00000000, 0.0, 0.0, 0.00000000;;,

11; 4; 0.70710680, 0.0, 0.0, 0.70710680;;;

}

}

Animation {

{Arm-Links}

AnimationKey { // Rotation 90° um y-Achse

0;

17;

12; 4; 1.00000000, 0.00000000, 0.0, 0.0;;,

13; 4; 1.00000000, 0.00000000, 0.0, 0.0;;,

14; 4; 1.00000000, 0.00000000, 0.0, 0.0;;,

15; 4; 0.00000000, 0.0, 0.0, 0.00000000;;,

16; 4; -0.70710680, 0.0, 0.0, 0.70710680;;;

}

}

}

Im zip-Ordner ist der Polizist 7

Gruß Axel

 

 

 

Polizist7.zip

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Axel,
habe mal ohne jede Ahnung mit nur ausgereiftem Programmierergefühl experimentiert.
Bevor BahnLand antwortet gebe ich Dir mal eine Datei, die kommt dem Problem näher.

Es hat was mit Matrixnummern zu tun. Schau Dir in der Anim-Datei mal die neuen Ranges an, und dann in der x-Datei die Framenummern - das ist jeweils die erste Zahl.
Dann verstehst Du das ruckzuck. Den rechten Unterarm habe ich mal ganz nach hinten gelegt, sodaß er nicht gebraucht wird. In Arm rechts habe ich noch ein 'Bild' eingefügt,
damit er nicht doof dreht. Sieht immer noch nicht so aus, wie's soll - aber das kriegst Du jetzt hin, da bin ich sicher. Wenigstens habe ich noch ein wenig helfen können.

Gruß
  Andy

 

polizist.zip

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Axel und Andy,

anbei die von mir korrigierte AnimationSet-Definition (am Ende der x-Datei) und die zugehörige Anpassung der Anim-Datei.

Polizist7a.zip

Die Bewegung von Zustand 0 nach Zustand 1 (Animation "Achtung") umfasst das Anwinkeln des rechten Unterarms um 20° und das Nach-oben-Strecken des gesamten rechten Arms im 150°-Winkel. Beide Teilobjekt-Animationen sollen gleichzeitig ablaufen, weshalb sie dieselben Zustands-Nummern erhalten. Der Übergang von Zustand 2 nach Zustand 3 umfasst das gleichzeitige seitliche Ausstrecken beider Arme, wobei der rechte Arm von oben um 60° (auf 90°) abgesenkt und der linke Arm von unten um 90° (auf 90°) angehoben wird. Während des Absenkens wird auch der rechte Unterarm wieder ausgestreckt (das Abwinkeln um 20° wird rückgängig gemacht). Auch diese 3 Teilobjekt-Animationen laufen gleichzeitig ab, weshalb auch hier jeweils dieselben Zustandsnummern 2 und 3 zugewiesen werden (Animation "Halt").

In der AnimationSet-Definition sind die beiden Animationen "Achtung" und "Halt" zu einer Gesamt-Animation(skette) zusammengefügt, die erst mit der Auswertung der Anim-Datei im Modellbahn-Studio wieder in die Einzel-Animationen zerlegt wird.

Es gibt allerdings ein von mir nicht erwartetes Verhalten, das ich mir nicht erklären kann: Wenn ich die x-Datei (mit der darin enthaltenen AnimationSet-Definition) zusammen mit der anim-Datei in das Modellbahn-Studio hochlade, wird der rechte Arm des Polizisten nach oben ausgestreckt, obwohl in der Ausgangsposition beide Arme eigentlich nach unten hängen sollten. Der Fehler wird korrigiert, sobald man die Animation "Achtung" zum ersten Mal startet (der Arm springt in die erwartete Ausgangsposition, um von dort aus "regulär" angehoben zu werden). Ab diesem Zeitpunkt laufen die Animationen "Achtung" und "Halt" (bitte die korrekte Reihenfolge beim Vorwärts- und Rückwärtslauf der beiden Animationen einhalten!) korrekt ab. 

Mich würde nun interessieren, ob dieses Verhalten durch die "Blender"-Bauer bei einem entsprechenden Modell reproduziert werden kann. Ich vermute "ja".

Frage an @Neo:
Könnte es sich hier um einen Initialisierungsfehler der Animationszustände beim Hochladen des Modells handeln, oder habe ich da bei Animationen, denen verschiedene Bewegungsphasen desselben Teilobjekts zugeordnet sind, grundsätzlich etwas noch nicht verstanden?

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo zusammen,

ich habe den Polizisten noch einmal "angefasst". Sowohl die Gruppe des rechten Unterarms als auch jene des gesamten rechten Arms wurden noch einmal in eine zusätzliche Gruppe gepackt, Sodass die Gruppen-Hierarche nun wie folgt aussieht:

(Hauptgruppe) Polizist
    Untergruppe Arm-aussen
|     |     Untergruppe ArmRechts
|     |     |     Untergruppe Unterarm-aussen
|     |     |     |     Untergruppe Unterarm-R
|     |     |     |     |     _AP-Gruppe zur Spezifikation des rechten Unterarm-Drehpunkts (Ellbogengelenk)
|     |     |     |     +--- Restliche Daten des rechten Unterarms
|     |     |     |     _AP-Gruppe zur Spezifikation des rechten Unterarm-Drehpunkts (Ellbogengelenk)
|     |     |     +--- Keine weiteren Daten des rechten Unterarms
|     |     |     _AP-Gruppe zur Spezifikation des rechten Oberarm-Drehpunkts (Schultergelenk)
|     |     +--- Restliche Daten des rechten Arms (Oberarm)
|     |     _AP-Gruppe zur Spezifikation des rechten Oberarm-Drehpunkts (Schultergelenk)
|     +--- Keine weiteren Daten des rechten Arms
|     Untergruppe ArmLinks
|     |     Untergruppe Unterarm-L
|     |     |     _AP-Gruppe zur Spezifikation des linken Unterarm-Drehpunkts (Ellbogengelenk)
|     |     +--- Restliche Daten des linken Unterarms
|     |     _AP-Gruppe zur Spezifikation des linken Oberarm-Drehpunkts (Schultergelenk)
|     +--- Restliche Daten des linken Arms (Oberarm)
+-- Restliche Daten des Polizisten (Rumpf + Kopf)

Damit habe ich zwei zusätzliche "Objekte" gewonnen, sodass ich die Bewegungen für den Unterarm und den gesamten rechten Arm für die Animationen "Achtung" und "Halt" auf verschiedene "Animations-Objekte" verteilen konnte. Hierdurch kann ich die falsche Anfangsstellung vermeiden. Der Rest funktioniert dann weiter wie gehabt. Anbei noch das korrigierte ZIP_Paket.

Polizist7b.zip

Allerdings betrachte ich diese Vorgehensweise nur als "Notbehelf". Meinem Verständnis nach sollte der nach oben gestreckte rechte Arm beim Hochladen des Polizisten in das Modellbahn-Studio schon beim letzten Paket nicht auftreten.

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 19 Stunden schrieb BahnLand:

Mich würde nun interessieren, ob dieses Verhalten durch die "Blender"-Bauer bei einem entsprechenden Modell reproduziert werden kann. Ich vermute "ja".
Viele Grüße
BahnLand

Hallo BahnLand,

Ich kann den Bau des Modells leider nicht richtig verfolgen, weil ich auf dem Tablet kein MBS habe. Geauso habe ich keine Ahnung von editierten x-Dateien.

Ich habe aber trotzdem eine Frage:

Was passiert bei dem Modell von Frame 0 - 2 ? Ich lese immer nur Frame 3 - 9 und 10 -16.

Nach meiner Kenntnis müssen Modelle mit *.anim-Dateien mit Frame 0 beginnen.

Viele Grüße

fmkberlin

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Frank,
ich glaube, die Antwort kann ich Dir durch meine Experimente schon geben - mal sehen, ob das noch nachkorrigiert wird.
Die Ranges für die beiden Animationen sind mit 3-9 bzw. 10-16 schon gesetzt. Jede dieser separaten Animationen beginnt mit dem ihr zuerst zugeordneten Frame. Die erste Animation läuft also nicht leer über 0, 1 und 2, sondern beginnt (auch zeitlich) mit Frame 3. Gleiches gilt für die zweite mit Start an 10. Die Frames 0-2 sind momentan also tatsächlich unbenutzt, können also auch als Platzhalter für Erweiterungen dienen. Mögllcherweise wäre sogar eine Überlappung der Ranges machbar.
  Kannst ja auch mal ein wenig mit experimentieren, mußt nur auf folgendes aufpassen: Mit dem normalen Notepad NICHT editieren, denn das haut Dir beim Abspeichern noch ein paar Bytes Unicode-Informationen an den Dateianfang - und schon akzeptiert MBS die Datei nicht mehr. Außerdem sollte CR/LF am Zeilenende rein, nicht nur eins von beiden. Ist bei Texteditoren meistens einstellbar. Notepad++ erfüllt die Voraussetzungen und ist auch gut brauchbar für Suchfunktionen in XML-Auswerter-generierten Dateien. Nur zu lang sollten die Dateien nicht sein - da gibt's noch einen blöden Bug der den Machern auch nach Jahren noch nicht aufgefallen ist.

Gruß
  Andy

Bearbeitet von Andy
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 22 Stunden schrieb BahnLand:

Es gibt allerdings ein von mir nicht erwartetes Verhalten, das ich mir nicht erklären kann: Wenn ich die x-Datei (mit der darin enthaltenen AnimationSet-Definition) zusammen mit der anim-Datei in das Modellbahn-Studio hochlade, wird der rechte Arm des Polizisten nach oben ausgestreckt, obwohl in der Ausgangsposition beide Arme eigentlich nach unten hängen sollten. Der Fehler wird korrigiert, sobald man die Animation "Achtung" zum ersten Mal startet (der Arm springt in die erwartete Ausgangsposition, um von dort aus "regulär" angehoben zu werden). Ab diesem Zeitpunkt laufen die Animationen "Achtung" und "Halt" (bitte die korrekte Reihenfolge beim Vorwärts- und Rückwärtslauf der beiden Animationen einhalten!) korrekt ab. 

Mich würde nun interessieren, ob dieses Verhalten durch die "Blender"-Bauer bei einem entsprechenden Modell reproduziert werden kann. Ich vermute "ja".

Frage an @Neo:
Könnte es sich hier um einen Initialisierungsfehler der Animationszustände beim Hochladen des Modells handeln, oder habe ich da bei Animationen, denen verschiedene Bewegungsphasen desselben Teilobjekts zugeordnet sind, grundsätzlich etwas noch nicht verstanden?

Viele Grüße
BahnLand

Hallo Andy,

Mein Beitrag bezog sich auf dieses von BahnLand beschriebene Verhalten des Modells. Nach meiner Kenntnis liest das MBS beim Hochladen eines Modells, wenn die Animation nicht gleich gestartet wird, die Situation an Frame 0 aus. Erst durch das Starten einer Animation, wenn eine *.anim-Datei vorhanden ist, erkennt es die Situation und dann laufen die Animationen korrekt.

Das bezieht sich Alles auf meine Erfahrungen mit dem Animieren mit Blender !

Andy, das soll nicht überheblich klingen, aber ich weiß, wie ich mit Blender animieren muss. Deshalb brauche ich da auch nicht zu Experimentieren. Ausserdem würde mich die Chefin aus dem WoMo werfen, wenn ich Unterwegs mit so Etwas anfangen würde. Es passt Ihr schon nicht wirklich, wenn ich Unterwegs im Forum lese und manchmal auch schreibe. (Jetzt ist sie schon im Bett :)) Sonst könnte ich ja auch unser Schlepptop mit MBS und Blender mitnehmen.

Ich verfolge die Entwicklung des Polizisten seit Anfang und bin auf die weiteren Fortschritte gespannt.

Viele Grüße aus Bayreuth

Frank

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo BahnLand,

vor 11 Stunden schrieb BahnLand:

Allerdings betrachte ich diese Vorgehensweise nur als "Notbehelf". Meinem Verständnis nach sollte der nach oben gestreckte rechte Arm beim Hochladen des Polizisten in das Modellbahn-Studio schon beim letzten Paket nicht auftreten.

... wie schon erwähnt geht "Polizist 7a" im MBS-V3... also bevor Du Dir Gedanken über einen "Notbehelf" machst, ist nach meiner Meinung erst mal @Neo an der Reihe, warum es im MBS-V4 nicht mehr geht. Sonst kann es sein, daß wenn da was im Programm schief läuft und behoben wird Dein Notbehelf nicht mehr geht.

vor 23 Stunden schrieb BahnLand:

Mich würde nun interessieren, ob dieses Verhalten durch die "Blender"-Bauer bei einem entsprechenden Modell reproduziert werden kann. Ich vermute "ja". 

... geht auch nicht mit Blender gebaut und animiert.

vor 3 Stunden schrieb fmkberlin:

Nach meiner Kenntnis müssen Modelle mit *.anim-Dateien mit Frame 0 beginnen

Das mit dem Frame 0 ist nur in dem Zusammenhang wichtig zu wissen, als daß der 1. Frame in der .anim Datei als Frame 0 angenommen wird (Anfang der Zählung). In der Standardeinstellung von Blender ist der erste Frame in der Zeitleiste Frame 1. Wenn man das nicht korrigiert (in der Zeitleiste "Start" = 0) ist z.B. eine Animation in der Blender-Zeitleiste von Frame 1 bis Frame 10. in der .anim muß aber 0;9 eingetragen werden.

Gruß
EASY

Link zu diesem Kommentar
Auf anderen Seiten teilen

@fmkberlin
ich bin selbst mal gespannt, ob die 3 Frames nun ungenutzt drin sein dürfen, und ob es mit 0 losgehen muß. Dass Du da keine Ambitionen hast die .x-Datei als Text zu editieren ist nachvollziehbar. Wenn Dir der Blender dafür reicht, umso besser. Es ist aber bestimmt auch so, dass MBS die Möglichkeiten des ,x-Formats nur so ausnutzt, wie es sie gebrauchen kann und ggf. sogar gewisse Anforderungen stellt. Und ich möchte wetten, dass es beim Blender genauso ist. Auch wenn der da natürlich noch eine ganz andere Palette bereitstellt. Ansonsten - lass Dich nicht erwischen, sonst gibt's da nachher zuhause noch zwei Wochen MBS-Verbot und weiterhin gute Fahrt :)

Gruß
  Andy

Link zu diesem Kommentar
Auf anderen Seiten teilen

@BahnLand
ich ahne, warum Polizist1a den Arm in die Höhe streckt nach dem Laden.
Vermutlich geht V4 alle in anim definierten Dinge durch und stellt alle auf die jeweiligen Anfangspositionen. Also stellt er erst alles auf, was für "Achtung" definiert ist (in Frame 0 also), dann alles was für "Halt" definiert ist (in Frame 2 also). Tja, und Frame 2 für Arm rechts ist Arm nach oben.
Habe aus Polizist1a mal Polizist1c gemacht.
Hier ist die Animationsreihenfolge nun Interpretationssache:
Während Polizist1b (!) nur richtig läuft, wenn sie lautet:  Achtung vor, Halt vor, Halt zurück, Achtung zurück (bzw. später Drehung - und damit wohl die sinnvollere!),
würde sie in meinem Polizist1c so lauten: Achtung vor, Achtung zurück, Halt vor, Halt zurück.
Aber der 1c beweist eigentlich das angesprochene Problem.

Gruß
  Andy

polizist7c.zip

Bearbeitet von Andy
anhang
Link zu diesem Kommentar
Auf anderen Seiten teilen

Und dann nochmal Polizist1b in einer funktional identischen, aber editierten Version.
Es zeigt, dass in der anim-Datei der erste Eintrag nicht unbedingt mit 0 beginnen muß, aber in den einzelnen Animkeys sollte der erste Eintrag 0 sein, wobei der zweite Wert nur größer als die letzte benutzte Framenummer sein muß. Und ungenutzte Framevektoren können auch entfallen.

Gruß
  Andy

polizist7d.zip

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Andy,

Danke! ... eigentlich wußte ich um das Problem, ich habe mich nur schon lange nicht mehr mit "Multanimation im MBS" beschäftigt...

Die Regeln sind eigentlich einfach:
Es gibt für das MBS drei Animationsarten: Position, Rotation, Skalieren.
Für eine Multimaimation (aufgeteilte Animation) im MBS glt:
Wenn die Animationsreihenfolge (Aufrufreihenfolge der Teilanimationen) frei sein soll, darf für ein Objekt die Animationsart nur einmal vorkommen. Ist also eine Teilanimation für ein Objekt eine Rotation darf in einer anderen Teilanimation keine Rotation für dieses Objekt gemacht werden.
Teilanimationen dürfen sich in Ihrer Ausgangsposition nicht widersprechen. (Was in hier der Fall ist Arm oben(2) und unten(1)).
Wenn für ein Objekt die Animationsart gleich ist (z.B. Rotation) muß die Ausgangsposition gleich sein. Geht zwar... aber damit ist die Animationsreihenfolge nicht mehr frei wählbar.

So gesehen hat BahnLand mit seiner Überlegung recht, durch die Schaffung von "Zusatzobjekte" (wenn auch in diesem Fall nur "pseudo") die Animationen zu entkoppeln...

@Neo: ... damit kann ich aufhören zu quengeln, warum es im MBS-V4 nicht geht...

Gruß
EASY

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Hallo,

ja es gibt ihn noch – den Verkehrspolizist. Die stehende Version habe ich fertig, habe den Körper noch etwas verändert und die Hände drehen sich jetzt mit. Den Kopf kann er nach links drehen, dann kann er, bevor er sich dreht schon mal in die richtige Richtung schauen.

1.thumb.JPG.8ec9fb590929a65be7fb16d268527586.JPG

2.thumb.JPG.af7ac00d25f94f79e81b1d5d24ba8789.JPG

3.thumb.JPG.91eb335bb176b97df45d8b548a686193.JPG

Bei den Animationen ist die richtige Reihenfolge einzuhalten damit er kein Knoten in die Arme bekommt.

1. Animation „Achtung“ vorwärts – rechter Arm geht nach oben

2. Animation „Halt“ vorwärts - beide Arme sind waagerecht

3. Animation „Halt“ rückwärts – rechter Arm geht nach oben der linke Arm nach unten

4. Animation „Achtung“ rückwärts – rechter Arm geht nach unten

Das drehen übernimmt eine Mini-Drehscheibe.

Jetzt muss er das laufen lernen – und ich muss lernen wie ich ihm das beibringe. Im Zip-Ordner ist die .mbe Datei vom „Verkehrspolizist stehend"  ZIP-Ordner.zip

Dank allen die mir dabei geholfen haben. Gruß Axel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Axel,
ich bin auch begeistert und erleichtert, dass Dich das Projekt nicht in den Wahnsinn getrieben hat.
Dazu muß ich mich unbedingt noch einmal entschuldigen, dass ich da so großspurig Hilfe angeboten habe, die ich dann nicht leisten konnte. Schon peinlich.
Aber mir war aufgrund eines Post von Wüstenfuchs halt dieses MakeHuman in die Finger gekommen, dass auf den ersten Blick die Möglichkeiten des Posers versprochen hat, aber dann halt keine eigene Editoren für Klamotten, Posen und Animation mitgebracht hat.
Die Tatsache, dass Du Deinen eigenen Wunsch nun selbst realisiert hast, entspricht natürlich nicht den Prinzipien eines Wunsches. Aber dafür darfst Du jetzt richtig stolz sein!

Grüße Andy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...