Animationsablauf automatisieren

StefNw

Mitglied
hallo ihr,
ich hab folgendes Problem:
4 Zylinder, mit je einem Ausschnitt von 90° sollen sich wie ein Fahrstuhl auf der Y-Achse bewegen... (siehe Bild)!
Jedes Zylinderelement soll immer entweder 50Einheiten nach oben oder unten fahren. So jetzt kommts: :-)
ich möchte aber nicht auf der timline definieren "zb Bild 10: Zylinder_1.y_position = 450; Zylinder_2.y_position = 400"... etc.

Viel lieber wäre mir einfach jedesmal ein "Befehl" zu setzten, der dem entsprechenden Zylinder sagt: Fahr 50 nach oben, oder 50 nach unten.
Warum mir das lieber wäre liegt daran, das die 4 Elemente sich ästhetisch zu einander, in verschiedenen Ausführungen bewegen sollen. Aber jetzt jedesmal herumrechnen, auf welche y_postion das Objekt muss, nach dem Änderungen kommen, wär ein ziemlich erheblich aufwandt! Ich hab mich schon in xPresso versucht, was wahrscheinlich schon von Anfang der falsche weg war, aber COFFEE liegt mir einfachn nich wirklich gut!

hab echt lange gekrübelt, und komm auf keinen Nenner! Vielleicht hat ja von euch einer eine Idee insofern mein Problem überhaupt verstanden wurde oder überhaupt eins ist! :-)

Danke schonmal fürs durchlesen! ;)
 

Anhänge

  • fahrstuhl.jpg
    fahrstuhl.jpg
    9,6 KB · Aufrufe: 115
Hallo Du!

Also Xpresso war doch schon garnicht so schlecht, und hier sogar eine Version mit der man sich um den Xpresso-Editor herumzuschummeln kann ;)

Also, nimm ein Zylinderelement und füge im Attributemanager "Benutzerdaten" hinzu. Gib als Datentyp "Fließkommaslider" ein, füge Deine Werte für Min-Max ein und stell die Einheit auf "Meter". Jetzt hast Du einen Slider, da gehst Du mit Rechtsklick drauf, "Animation- Anführer setzen" Dann gehst Du zu den Koordinaten Deines Zylinderelements, da auf den Y-Wert- Rechtsklick "Animation- Verfolger setzen".

Jetzt kannst du über den Slider die Höhe animieren :)

Liebe Grüße
Nina
 
Da brat mir aber mal einer ein Storch! :-)
Erstemal wunderbar das ich um den schönen Editor herum gekommen bin! *puhhh*
Funktioniert echt klasse... und eigentlich erschreckend einfach! ;)
Das nächstemal wend ich mich lieber gleich an dich, anstatt hier wertvolle Stunden zu vergeuden!

Vielen Danke! Mein Chef wird dich lieben.. :p Mach weiter so! :-)
Stefan

(ps. trotz gleichen Anmeldedatums... erschreckende wieviel Beiträge die du da hast! ;) )
 
Zuletzt bearbeitet:
Hi!

Weiss nicht, ob's noch benötigt wird:
Anbei Lösung, bei der per Benutzereingabe/Boole zwischen rauf und runter geschaltet wird. Wenn Boole/rauf = an, dann wandert der Würfel mit "speed" bis zum "max", ansonsten mit "speed" bis zum "min"... :)
Schaltung nicht schön, aber sie funktioniert... :)

Liebe Grüße,
Mark.

//edit: ...und Dein Chef wird Dich hassen, wenn ihre Rechnung eintrudelt :-)
 

Anhänge

  • xpressoraufrunter.jpg
    xpressoraufrunter.jpg
    23,3 KB · Aufrufe: 119
hmm... deiner Beschreibung nach müsste das also automatisch funktionieren, das heisst ich setzt immer nur ein key für den boole, und der rest erledigt dann die Schaltung?!
werd das gleich mal ausprobieren... kann aber dauern! ;)

vielen dank
*bastel*

//edit
:-) wenn ich gewusst hätte das sie so konsequent ist, mit den Abredchnungen, hätt ich mein Chef lieber nicht erwähnt! ;)
 
Hab das jetzt mal umgesetzt... und Versucht zu modifizieren...
Vom Prinzip her gefällts mir ganz gut nur:
Ist es möglich einen boolschen Wert zu setzten, der dann veranlasst, das das Objekt über eine vorher fest defenierte Zeitspanne, einen vorher fest defenierten bestimmten Weg zurücklegt, und dann stehen bleibt, bis der boolsche Wert erneut getriggert wird?!
Nach deiner Schaltung gibt es leider keinen Ruhepunkt...

Also ich stell mir das so vor:

Bild 1: hoch = true (Objekt fährt in 10Bildern 100E nach oben, dann hoch=false)
Ab Bild 10 bis Bild 19 passiert nichts...
Bild 20: runter = true (Objekt fährt in 15Bildern 50E nach unten, dann runter=false)
...
...
...

Sodas ich mich also nur noch um die boolschen Werte "hoch" und "runter" auf der timeline konzentrieren muss...

Ich hoff ich raub euch nich die Nerven! ;) nur nach ein bisschen rumprobiererei hab ich für mich keine Lösung gefunden den Boolwert nach einer festen Zeit zurücksetzten zu lassen... und bevor ich in der Richtung weitermach, und es letztendlich sowieso nicht funktioniert, frag ich doch lieber nochmal nach... Soll auch keine Aufforderung sein mir jetzt ne komplette Schaltung zu basteln, aber so ne Anregung wär schon schööön! ;)

Wenn das nicht funktioniert, werd ich wohl auf Ninas variante zurückgreifen...

Danke schonmal im vorraus! Und auch danke an Mark, fürs aufbauen der letzten Schaltung!

grüße
Stefan
 
Hi!

Die einen Spielen Half-Life, ich spiele XPresso ;) (und ich glaube ja immernoch, ich schaffe es XPresso "durchzuspielen" :-) )
Somit folgendes wirklich als - hoffentlich dennoch brauchbare - Spielerei.

Die Ziele lassen sich per zwei (einer würde eigentlich reichen) Targets (Null-Objekte) definieren. Per Integer-Slider "A-Stop-B" -1 .. 0 .. 1 wird nun: gehe zu Ziel_A .. Stopp .. gehe zu Ziel_B gesetzt. Die dafür benötigte Zeit definiert ... "Zeit" (logisch ;) ).
"Verbleibend" fungiert als Variable, damit XPresso weiß, wie weit es bereits animiert hat...
Nach erreichen der Ziel-Position wird A-Stop-B auf Null gesetzt...

Schaltungen ist geteilt:
1. initialisiert die Bewegung und schaut, ob Animation fertig.
2. Animiert und zählt "die Zeit runter".

Hoffe ich habe keine Angaben vergessen und meine Spielerei ist nicht "für nix" ;)

Liebe Grüße,
Mark.
 

Anhänge

  • PlayingXpressoUpDown.jpg
    PlayingXpressoUpDown.jpg
    74,3 KB · Aufrufe: 84
Hi, also mir kommts so vor als hättest dus schon mehr als nur einmal durchgespielt! :-)
Außerdem muss ich sagen das ich grad unheimlich Lust bekommen hab auch mal damit zu zocken! Das ganze scheint mir nämlich einiges mächtiger als erwartet... Aber dafür auch nicht ganz unkompliziert... :confused:
Naja, jedenfalls dickes Dankeschön für die Schaltung... Bin sie mehrere male durchgegangen, und hab sie dann auch umgesetzt... nur will das nicht wiklich richtig Funktionieren! Der Würfelt rast dann irgendwo in die Pamba!

Ganz versteh ich das SpeicherNode noch nicht, habs zwar nachgelesen, jedoch werd ich nich ganz schlau draus! ;)

Dann hab ich mir so meine Gedanken über die Eigenschaft "AN" gemacht... dort wo die Konstante zugewiesen wird...
Nur mal, lieg ich damit richtig:
wenn verbleibend == 0 dann wird AN vom Würfel == true
wenn AN == true dann A-Stop-B == 0
das würde also heissen das die Aktion im Würfelnode nur dann ausgeführt wird wenn es AN ist?! klingt ja schon irgendwie logisch :-)

Und noch eine Frage:
Wär es denn nicht möglich, anstatt den zwei Referenz-Null-Objekten feste Benutzer.def.Werte zu nehmen, da sich die Bewegung ja sowieso nur auf einer Achse (y) vollziehen soll?!

Fragen über fragen... :-)
Wär schön wenn ich nochmal Hilfe bekommen könnt, und nicht gleich beim ersten Endgegner scheitern würde! ;)

Dankeschön&dicke grüße
Stefan

//edit
hab hier mal schnell eine Schaltung aufgebaut, nur zum Verständnis für mich! Theorethisch gesehn sollte sie ständig "verbleiben" hochzählen, bis "verbleibend" == "zeit" ist und dann "verbleibend" wieder auf "0" setzten... macht er aber nicht! :confused: denk ich falsch, oder hab ichs falsch aufgebaut?! also hoch zählen macht er schon ganz brav, nur setzt er nicht zurück auf 0...

//edit
:-) die verbindung zwischen "verbleibend" und dem Eingang beim Gleich müsst ihr euch denken! Ist zwar nicht zu sehn, aber in Cinema ist sie da, nur funktionierts trotzdem nicht!
 

Anhänge

  • beispiel.gif
    beispiel.gif
    6,3 KB · Aufrufe: 64
Zuletzt bearbeitet:
Ok... obwohl ichs ja kaum glauben kann, aber danke der Vorlage von Mark konnt ich mir die Geschichte so zusammenbauen wie ich mir das Vorgestellt habe! (Datei liegt mit bei)
Funktioniert jetzt also einwandtfrei...

NUR :-) hat jemand ne Idee wie ich die Bewegung nun Soft hin bekomme?! Das heisst am Anfang der Bewegung beschleunigen, und am Ende abbremsen?! Vielleicht du Mark?! ;)

Danke nochmal
Grüße
Stefan
 

Anhänge

Hi!

@Beschleunigen/Abbremsen: ist ja nicht ganz so einfach, da Du die Gesamtstrecke durch die Zeit teilst und dieses Weg/Bild zur Y-Position dazuaddierst. Dieses Weg/Bild soll sich halt in Abhängigkeit von "Verbleib" ändern...
Habe wohl noch zu wenig Kaffee intus; innerhalb Deiner Schaltung bekomme ich es auf die Schnelle nicht hin. Somit alternativ:
Du kannst Dein derzeitiges "Ergebnis: Y-Position" separat per "Bereichswandler-Node" manipulieren/korrigieren. Y-Position von wagon.1 -> Eingang vom Bereichswandler. Größter Ein- und Ausgang des BW ist jeweils die "Höhe". Nun kannst Du per Spline im BW das Abbremsen und Beschleunigen definieren. Den Ausgabewert nun einfach dem "tatsächlichen wagon.1" zuweisen (ersterer wagon.1 wäre so also nur ein "Zwischenspeicher" ;) ).

@Speicher-Node: hatte mir nur den Schalter "A-Stop-B" "gemerkt". Der Vergleich mit dem "gespeicherten" und "aktuellen Zustand" ergab, ob sich der Zustand geändert hat: nur dann soll Verbleib auf Zeit gesetzt werden...
(Speicher-Node / Speichertiefe=1: Eingang wird zum Ausgang, Speichertiefe=2: Eingang wird gespeichert und "vorheriger Eingang" ausgegeben -> Wert vom vorherigen Bild wird ausgegeben).

@AN: ermöglicht sozusagen eine "IF-Frage" ohne "else", Beispiel: einem Objekt A soll bei einer bestimmten Bedingung die Position 0/0/0 zugewiesen werden, sonst soll Objekt A auf seiner Position bleiben. Wenn die Bedingung wahr ist, übergibt man die Position 0/0/0, logisch. Ist die Bedingung falsch, dann müsste man aber nochmals die aktuelle Position zuweisen (denn keine Zuweisung heißt 0/0/0 ;) ). Dies kann man sich sparen, wenn in dem Fall das "Positions-Zuweisungs-Node" einfach "Aus" ist -> Objekt A behält Position bei...

"Außerdem muss ich sagen das ich grad unheimlich Lust bekommen hab auch mal damit zu zocken!" ... die Grafik ist ein wenig "zweidimensional", aber das macht die "Story" locker wieder wett: ist wie bei Leisure suit Larry in the land of the lounge lizards :-)

Liebe Grüße,
Mark.
 
Zurück