Manipulation der Scheitelpunkte einer Pfadbeschränkungskurve

scottatacama

Mitglied
Hallo,

ich versuche verzweifelt, ein Objekt (bzw. dessen Dummy) entlang eines Pfades zu animieren. An sich ist das z. B. per Pfadbeschränkung kein Problem. Nur wie schaffe ich es, die Scheitelpunkte des Pfades dabei mit Bezier-Kurven zu belegen? Die XYZ-Positionskurve ist bei einer Pfadbeschränkung immer gesperrt und nicht per Keys variierbar. Ich möchte doch "nur" die in der Spurleiste gestrichelt angezeigten Scheitelpunkte "entschärfen".

In der Praxis geht es mir um ein Objekt, das sich entlang eines Pfades bewegt und dabei an den Positionen der Scheitelpunkte des Ursprünglichen Pfad-Splines langsam abbremst bzw. beschleunigt. Das kann doch nicht so schwer sein. Ich glaube ich habe einfach Tomaten auf den Augen. Die Dokumentation habe ich inzwischen auch schon mehrfach überflogen. Ich weiß, dass das gewünschte Verhalten easy mit Keys manuell zu animieren ist. Das will ich jedoch auf Grund der Länge der Animation möglichst vermeiden.

Danke Euch für jeden Vorschlag!
 
Ich nehm mal an, dass du nicht die Scheitelpunkte deiner Spline (denn das wär trivial) sondern die Animationkeys deines Path Constraint meinst. Geh in die Trackview, klick mit der rechten Maustaste auf Percentage des Path Constraints, wähle Assign Controller und weise einen "Bezier Float" Controller zu.
 
Ich denke, wir haben uns mißverstanden. Was Du mir vorschlägst hat doch nur den Effekt, dass das animierte Objekt am Anfang und Ende des Pfades gem. der Bezier-Kurven beschleunigt bzw. abbremst. Ich möchte aber gerne, dass dieses Abrremsen und Beschleunigen an jedem Scheitelpunkt des Splines passiert, der als Pfad verwendet wird. Diese Scheitelpunkte kommen aussschließlich als "Ecken" vor und die Segmente dazwischen als "Linien".

Eine Lösung wäre vielleicht - wenn auch recht umständlich - den Positions-Controller auszublenden und in möglichst feine "Beispiele" aufzulösen. Die entstandenen Keys werden dann zunächst als "gerade" festgelegt, um sie anschließend mit einem niedrigen Grenzwert zu reduzieren. Dann müssen die übrig gebliebenen Keys nur noch auf die gewünschten Eigenschaften gesetzt werden.

^ Das wäre soweit alles okay, wenn die durch die Pfadbeschränkung entstandenen Ausgangskurven des Positions-Controllers, die der beschriebenen Prozedur zugrunde liegen, nicht an einigen Stellen bereits geringfügige Abrundungen enthielten, die sich mit diesem Verfahren nicht mehr so leicht ausmerzen lassen. Vielleicht kannst Du - als offensichtlich erfahrener Max-Nutzer - mir mitteilen, wie ich die Pfadbeschränkung von vornherein dazu bringe, mir nur wirklich "eckige" Fahrwege auszuspucken, die nahezu deckungsgleich mit dem Ausgangsmaterial sind. Mit Sampletiefen habe ich schon einmal vergeblich experimentiert.

Alternativ freue ich mich selbstverständlich über einen anderen, vielleicht sogar einfacheren Lösungsvorschlag für mein Problem.
 
Zuletzt bearbeitet:
Ja wir haben definitiv Kommunikationsschwierigkeiten! Hast du max8 oder tiefer? Dann zeig mir mal deine Szene.
 
Ich habe Max 7. Testdatei ist raus (an die Adresse, die am Ende Deines Demoreels steht).

Vielleicht noch einmal mit anderen Worten: Ich möchte, dass sich ein Objekt entlang eines Pfades bewegt. Jeder Scheitelpunkt dieses Pfadsplines soll dabei einem Key entsprechen.

In der Max-Doku gibt es unter "Pfadbeschränkung" folgenden Absatz: "Ein Pfadziel kann ein beliebiger Spline-Typ sein. [...] Durch Festlegen von Keys auf Unterobjektebene des Pfads, wie z. B. Scheitelpunkt oder Segment, wird der Pfad animiert, was sich auf das beschränkte Objekt auswirkt." Was bedeutet das? Wie kann ich aus den Scheitelpunkten eines Pfad-Splines automatisch Keys erstellen? Leider wird darauf m. E. nicht mehr näher eingegangen.
 
Zuletzt bearbeitet:
Sofern ich dich richtig verstanden habe, könntest du mMn, nachdem du dem Objekt den Spline als Pfad zugeteilt hast, an entsprechenden Punkten Keys setzen und somit alles weitere via Curve-Editor regeln.
 
Danke, darauf könnte es hinaus laufen. Das wäre aber wohl kaum einfacher, als den Weg gleich per Autokey zu erstellen. Da es den Spline jedoch in diesem Fall schon gibt und es sich um viele, viele Keys handelt, die ich nachträglich einfügen müsste, werde ich wohl zur oben beschriebenen Methode greifen (Controller ausblenden > Tangenten auf gerade > Keys reduzieren > Kurven-Scheitelpunkte auf langsam) und die kritischen Keys (speziell der Z-Achse, damit das Objekt nicht in den Boden taucht) manuell nachbearbeiten.

Eine dritte (bzw. vierte?), auch recht aufwändige Methode könnte vielleicht darin bestehen, den Pfad gemäß der gewünschten Keys zu "zerhacken" und die Pfadbeschränkung Frame-weise aufzuteilen? Keine Ahnung, ob das funktioniert, viellecht nur über den Umweg "Gewichtung"?


Cycovery,

falls Du Dich wunderst, weshalb ich so penibel bin, was die Pfadeinhaltung angeht (ich weiß, in meiner Beispieldatei kommt das automatisierte Ergebnis dem Manuellen schon recht nahe): am Fahrweg, bzw. am Objekt, das sich dessen entlag bewegt, hängen noch zwei andere Controller, von denen zumindest einer sehr empfindlich reagiert, sofern die 45/90° Richtungsänderungen (betr. x/y-Achsen) nicht exakt eingehalten werden.
 
kannst du nicht genau sagen, wofür du das brauchst? Ich glaub ich hab jetzt schon verstanden was du machen willst.. glaub ich zumindest.. du willst die keys, die du in deinem file von hand animiert hast automatisch erstellt haben und zwar so, dass die keys zu dem zeitpunkt platziert sind, wo das objekt sich bei geradliniger bewegung entlang des pfades jeweils genau an einem Scheitelpunkt befinden würde. oder zumindest so nah dran wie möglich (da das warscheinlich selten genau auf ein frame der animation fällt). Dann willst du dort jeweils nen ease-in-ease-out. Kommt das etwa hin? Das kann man sicher per script automatisieren - aber vielleicht gibts auch ne einfachere Lösung für das, was du eigentlich erreichen willst... Kannst du da etwas mehr Einsicht gewähren? ;)
 
Exakt, Cycovery, genau das will ich! Und Du hast mir gerade in sofern die "Erleuchtung" gegeben, als dass die manchmal nicht exakt eingehaltenen Keys innerhalb "meines" Lösungsweges dadurch begründet sind, dass der Spline-Vertex nicht explizit auf einem Frame liegt (brettformkopf), danke! Btw. in meinem File, das Dir vorliegt, ist das violette Objekt bereits "automatisiert" erstellt.

Konkret geht es mir um einen Kreisel, der einen Pfad entlang fährt und gemäß der Vektorrichtung x/y, die er gerade passiert, eine Drehung um die lokale Z-Achse vollführt. Dieser Kreisel generiert dabei auf seiner Oberfläche Farbspiele (im Wesentlichen per prozeduralem "Strudel"-Map animiert) die ebenso wie seine Drehung um sich selbst in direkter Abhängigkeit zur zurückgelegten Wegstrecke steht. Diese Wegstrecke widerum ist bereits im Vorfeld klar definiert worden und besteht quasi aus Hindernissen, mit denen er nicht kollidieren darf. Viellleicht kennt jemand noch den C-64 Klassiker "Spindizzy" von Paul Shirley (c) 1986 Electric Dreams. So kann man sich das grob vorstellen.

Weil es nun aber kein "vernünfiges" mathematisch-physikalisches System gibt, in dem ein Kreisel alle vier x/y-Sektoren alternierend zurücklegen kann und bei dem entgegengesetzte Vektoren eine entgegengesetzte Drehrichtung bedeuten ist es zwingend notwendig, dass dieser Kreisel vor jeder Richtungsänderung, die mit einer Drehrichtungsänderung verbunden wäre, einen Halt einlegt (möglichst per ease-in-ease-out, um das gut zu veranschaulichen). Klingt vielleicht kompliziert, ist aber eigentlich ganz einfach ;)

Wenn ich das also richtig sehe kommt es "nur" darauf an, die Zeit mit den Abständen der Vertexe zu synchronisieren. Mal seh'n, wie ich das am Besten anstelle. Klar, so lange die nicht ganz korrekten Stellen zwischen den Frames verschwinden, wäre das Ganze nicht so dramatisch. Ich gehe jedoch davon aus, dass ich aus Gründen der Veranschaulichung am einen oder anderen Key nachträglich eine etwas längere Pause einfügen muss. Für komfortablere Lösungen bin ich natürlich jederzeit offen :).
 
Zuletzt bearbeitet:
Ja, ich glaube auch das es eher nur kompliziert "klingt"... :) Wie auch immer du es letztendlich gestaltest - lad die Animation, wenn du fertig bist, ma bitte irgendwo hoch.
 

Neue Beiträge

Zurück