Exaktes Auf Spline ausrichten bei Beziers

Mark

Cinema4D
Hallo Ihr Lieben!

Ich kämpfe gerade mit Cinema4D und benötige daher Eure Hilfe:
Ich möchte ein Objekt per "Auf Spline ausrichten"-Expression auf einer Bezier-Spline fahren lassen. Trotz linearer ASa-Positions-Keys und "gleichmäßiger Zwischenpunkte" werden die Tangenten der Bezier-Spline "interpretiert" und sorgen für ungenauer Positionen des Objekts!

Beispiel: Bezier-Spline mit zwei Punkten: x1=0 und x2=100, jeweils mit Tangenten, die links und rechts = null sind. Null-Objekt mit Auf Spline ausrichten-Expression mit Bezier-Spline als Spline-Pfad und linearen Positions-Keys auf Bild0=0% und Bild100=100%.
Bewegt man sich nun Bild für Bild durch die Timeline, ändert sich - wie gewünscht - die Auf Spline Ausrichten-Position in ein Prozent Schritten.
Die Position des Null-Objekts aber liegt nicht - wie bei gleichmäßigen Zwischenpunkten zu erwarten - auf X=1, 2, 3, 4... ! :(
Wie geschrieben, schuld sind die Tangenten der Bezier-Spline, die brauche ich aber für den "Kurven-Verlauf" und nicht für eine "lineare Fahrt" :(

Weiß also wer, wie ich Cinema4D dazu bringe, ein Objekt linear einer Bezier-Spline - unabhängig von ihren Tangenten - folgen zu lassen?!

Vielen Dank für Eure Hilfe,
Liebe Grüße,
Mark.
 
Hi Saoron!

Danke für die Antwort, aber die "Ungenauigkeit" geschieht auch dort: die sich ergebenen Positions-Keys sind falsch... :(
Hinzu würde ich gerne meine "Auf Spline ausrichten"-Expression behalten um z.B. die F-Kurven weiterhin bearbeiten zu können...

Übrigens: konnte feststellen, daß obig erwähnte Spline mit ZwischenPunkte = gleichmäßig 9 in "aktuellen Zustand" gewandelt, ebenfalls eine ungenaue Spline liefert: die elf Punkte liegen nicht auf den zu erwartenen ganzzahlingen Positionen... :(

Weiterhin für jede Hilfe dankbar,
Liebe Grüße,
Mark.
 
Hi,
weiß jetzt nicht genau, ob ich richtig liege, also für z.B. Kamerafahrten eignet sich ne Akima- Spline bedeutend besser, aber es geht ja darum, dass du DIESE Bezier-Spline behalten willst, aber -ich sitz gerade nicht an der Quelle- geht es nicht, die Bezier nach dem Konvertieren ALLE Punkte zu selektieren und ihn eine weiche Interpolation zu verleihen? Nach dem Konvertieren müssten doch auch die Zwischenpunkte interpolierbar sein, oder? Bzw. könnten nach dem Konvertieren ja evt. "störende " Punkte gelöscht werden. Aber mehr theoretisch, z.B. für den Fall, dass die Bezier- Spline mit einer eckigen verbunden war oder so...

LG
der Andi:-)
 
Zuletzt bearbeitet:
Hi Mark, hier bin ich ma wieder :-)

Also wenn ich dein Problem nu richtig kapiert hab', meinte ich ähnliches schon erlebt zu haben... is nervig. Versuch das mal per Xpresso-Spline Node. Bei diesem kannst du einen Prozentualen Offset vom Spline-Anfang an nutzen, um die zugehörige Position (auf dem Spline) auszugeben. Diese Koordinaten kannst du dann an dein Null-Obj übergeben.
Da es Prozente sind welche sich auf die Spline-länge beziehen, KANN es gar nicht Tangenten-Probleme geben.
Hoffe das isses.

Gruss
Matthias
 
Hi Ihr Lieben,

anbei Testanordnung zur Veranschaulichung des Problems ;)
Alle Splines: Gleichmäßige Zwischenpunkte = 20, bis auf "Bezier-Convert" mit gleichmäßige Zwischenpunkte = 9. Beziers bestehen aus zwei Punkten (X=0 udn x=100) und besitzen keine Tangenten.

@redybull: weiß nicht, ob ich Dich richtig verstanden habe, aber habe die "Bezier-Convert" "in aktuellen Zustand" gewandelt. Die entstehenden Zwischenpunkte liegen dann bereits auf den "falschen Positionen". Und auch die Weiche Interpolation ändert nichts an den folgenden Positionen... :(

@daltonmonaie: das Spline-Node in XPresso liefert exakt die gleichen Werte wie die Auf Spline ausrichten-Expression ... greifen ja sicherlich auf die gleichen Routinen zu und arbeiten hinzu ja beide mit "Prozenten"... :(

Vielen Dank Euch beiden aber für die Ideen und Eure Hilfe! :)

Nur zur Klärung, warum mir die Werte so wichtig sind (, also für die, die meinen, ich solle mich bei 0,074 Abweichung nicht so anstellen ;) ): wollte ein per Positions-Keys animiertes Objekt per Kamera auf Bezier-Spline verfolgen lassen, wobei die Bezier-Spline sich aber "später" von dem "linearen" Objekt entfernt... diese "kleinen Abweichungen" sorgen für ein ständiges "Annähern und Entfernen", statt einem konstanten Abstand...

Konnte das konkrete Problem nun lösen (Kamera sitzt hierarchisch im Objekt, bleibt zunächst "relativ" auf 0/0/0 - folgt somit konstant - und bewegt sich schließlich mittels "relativer Positionsangaben"), aber obiges ist sicher nicht zu viel verlangt und es würde mich freuen, wenn das noch zu "knacken" wäre ... deshalb Beitrag noch "offen" ;)

...werde mich mal an's Coffee begeben, ansonsten freue ich mich über jeden Tipp und weitere Hilfen :)

Vielen Dank nocheinmal,
Liebe Grüße,
Mark.
 

Anhänge

  • beziertest.jpg
    beziertest.jpg
    36,5 KB · Aufrufe: 69
Hallo lieber Mark :-) ,

ich hoffe, dass ich Dich richtig verstanden habe und helfen kann.
Hier die Lösung für den gleichmäßigen Ablauf:
Die zwei Objekte müssen für eine Spline
(egal, ob Bezier oder tangens usw., siehe Bild1 von links 0 nach rechts 100) hergestellt werden.
Ein Objekt ,,Kugel OFFEN“ (von links nach rechts bewegt) verwendet man für NORMAL und
ein Objekt ,,Kugel VERSTECKT“ für Key-Aufnahme
(siehe Bild1 links, von oben nach unten bewegt mit zwei roten Haken als unsichtbar).
Von Z=+5 nach Z=-95 (Siehe Koordinaten-Aufnahme) entpricht genau den zwei Punkten von X=0 nach X=100.
Somit läuft eine ,,Kugel OFFEN“ regelmäßig exakt von 0 nach 100.

Hinweis: Die Spline ist in der Struktur-Information zu lesen, damit die beiden gleich sind.
Allerdings muss in der Zeitleiste eine versteckte ,,Kugel VERSTECKT“ für normale ,,Kugel OFFEN“
in Motion und die Spline im Pfad hinzugefügt werden. Siehe Bilder2+3.

Ein Beispiel kann auch für Kurve und alles Mögliche verwendet werden.
Weiche Interpolation kann man auch einstellen, kein Problem.
Das war es und ich hoffe, daß es für Dich im Augenblick das Richtige ist.

Viele Grüsse delphinhawe
 

Anhänge

  • SPLINE1.jpg
    SPLINE1.jpg
    13,6 KB · Aufrufe: 27
  • SPLINE2.jpg
    SPLINE2.jpg
    34 KB · Aufrufe: 30
  • SPLINE3.jpg
    SPLINE3.jpg
    39,3 KB · Aufrufe: 31
Zuletzt bearbeitet:
Hi delphinhawe!

Narf, danke für die große Mühe! :)
...aber ich bekomme es nicht hin :(

Habe folgendes gemacht:
1) Kugel erzeugt Name="KugelVERSTECKT".
2) Kugel erzeugt Name="KugelOFFEN".
3) Bezier-Spline erzeugt: zwei Punkte auf X=0 und X=100, keine Tangenten.
4) KugelVERSTECKT auf Bild 0 Positions-Key= -5 / 0 / 5.
5) KugelVERSTECKT auf Bild 100 Positions-Key= -5 / 0 / -95.
6) KugelOFFEN in der Zeitleiste eine Neue Spur / Motion zugewiesen.
7) Motion-Parameter: Motion=KugelVERSTECKT und Pfad=Spline-Objekt.

KugelOFFEN fährt nun - wie gewünscht - von X=0 bis X=100, nimmt dabei aber nach wie vor "ungenaue Positionen an", z.B.:
Bild 10 - x = 9.788
Bild 20 - x = 19.628
Bild 30 - x = 29.518 ...usw. :(
...also irgendetwas scheine ich falsch gemacht zu haben... wäre fein, wenn Du mir sagen könntest, was :)

Habe übrigens auch Coffee bemüht und selbst UniformToNatural mit GetSplinePoint liefert die gleichen, ungenauen Ergebnisse.
Leider scheint dieses Problem nichts neues zu sein: auf plugincafe.com findet sich im Forum: SplineObject->UniformTonatural prob ...leider ohne Antworten und bereits von 2004 :(

Für alle weiteren Tipps und Lösungsvorschläge nach wie vor dankbar,
Liebe Grüße,
Mark.
 
Hi Mark, :p

Du hast alles richtig gemacht.
Sorry, aber jetzt habe ich richtig verstanden, was Du meinst.
Die Zahlen haben mich etwas vernebelt. Du willst also die Maße haarscharf positionieren.
Angeblich habe ich mehrfach versucht,
ein Objekt möglichst auf dem Bezier-Spline genau zu positionieren, leider ohne Erfolg. :(
Jedoch bei Spline-Linear dürfte es keine Probleme geben.
Beispiel, eine Kurve zu machen,
kann mit Spline-Linear, rechts Maus ,,Fase“ klicken und Radius wählen, erstellt werden.
Es muß nicht immer ein Bezier oder B-Spline sein.
Alternativ gibt es wahrscheinlich ein Programm nur für Spline, glaube ich.
Mit diesem Programm kann man die Spline erst anfertigen,
danach nach Cinema importieren.
Schon mal darüber nachgedacht? Weiß aber nicht, welche Software es gibt !

Ich denke,
daß Du mit der Firma Maxon fragen solltest, weshalb mit Bezier nicht auf Zustand kommt.
Vielleicht ist das Programm nicht richtig programmiert, sozusagen eine fehlerhafte Programmiersprache.

Gruß delphinhawe
 
Zurück