Schaukeln

zorc68

Mitglied
Hallo,
ich möchte ein Schild, das an 2 Bändern hängt aus einer bestimmten Positions auspendeln lassen. Es soll dann solange schaukeln, bis die Schwerkraft es zum Stillstand zwingt. Wie mache ich das. Habe nur 3D studio Max 3.
Vielen Dank für Eure Hilfe

Zorc
 
Wie exakt soll dein Schild pendeln?
Wenn deine Bänder relativ fest sind gehts am einfachsten wenn du der Auslenkung einen Expressioncontroller im Stile ((Anfangsausschlag-Time*Reibungsverlust)*((cos(Time)-0,5))) verpasst. Dann hättest du eine Pendelbewegung die mit der Zeit ausklingt.
 
hi, daishi
frohe weihnachten erstmal
ich hab mir dein pendel mal genauer angeschaut, komm aber nicht ganz drauf wie du es gemacht hast.
ich befürchte, dass du für die bewegungsbahn ein spline konvertiert hast.
oder irre ich mich?
 
Nein, in der Szene hats nie ein Spline gegeben; das Pendel wird von einer math. Formel gesteuert.
(siehe Spuransicht des Dummies, Rotation um Y. die höchstkomplexe Geometrie darunter hat den Dummy als Parent)

PHP:
(cos(F*Frequenz))* max(((Dauer-F)/50), 0)

Wissen wir alle, wie die Funktionskurve des Cosinus aussieht?
(Ihr Maximum (1) hat sie bei 0°, Minimum (-1) bei 180°, Nulldurchgänge bei 90° und 270°)
Wir wollen die Auslenkung des Pendels von der Zeit abhängig machen, dazu bietet sich die von MAX zur Verfügung gestellte Variable F an (enthält die Nummer des aktuellen Frames). 360 Frames für einen Zyklus ist allerdings nicht so toll, also multiplizieren wir den Wert mit der selbstdefinierten Var. Frequenz(je höher desto schneller, der genaue Wert hängt hier von der Framerate ab).

Jetzt haben wir ein Pendel, dieses bleibt noch konstant, also geben wir einen 2. Term dazu.
Die eigene Var. Dauer sagt uns wie lange das Pendel schwingen soll, (Dauer-Anzahl der vergangenen Frames) wird nat. immer kleiner. Wenn wir den Ausschlag jetzt damit multiplizieren ändert sich die Amplitude analog dazu.
Problem: Wenn die Dauer kleiner als die aktuelle Framezahl ist wird dieser Teil negativ - der Ausschlag würde wieder steigen. Abhilfe schaft die Funktion max; diese übernimmt 2 Werte und gibt den Grösseren zurück. Sobald sichs par Definition ausgependelt hat bekommen wir statt eines neg. Multis einfach eine 0 - und damit ist die Amplitude auf 0 festgenagelt.
 
Zurück