Membran einer Box nach Sound "vibrieren" lassen...

So, hab nun noch nen bissl dran gebastelt, aber irgendwie wird das nicht so, wie ich mir das gedacht hab...

hier mal mein xpresso:

xpresso_bass_membran.png


also wie man sieht ist da noch einiges drumrum um pinkys original. Dieses drumherum tut nichts anderes, als die Zeiten zwischen den Frames auszurechnen und mit hilfe des letzten Modulos sollte das ganze dazu dienen, dass die Negation des Wertes aus dem Soundfile nicht pro Frame eintritt, sondern bei jeder zweiten Bildberechnung während des Szenen-MotionBlurs. Allerdings scheint das nicht so zu funktionieren, wie ich mir das gedacht hab. Maxon benutzt wahrscheinlich nicht eine reine Unterteilung der zu berechnenden Bilder nach dem Schema der simplen Division. Wahrscheinlich wird nicht (im Falle von Frame 400) mit Zeitpunkt 16,00 Sekunden (bei 25fps) die erste Bildberechnung gestartet, sondern ein bißchen später.

Schade ist für meinen Fall, dass sich selbst über xpresso das Motionblur nicht abfragen läßt, sonst hätte man bei meiner Grundidee in einer Animation ein noch realistischeres Bild und die komplette Animation würde harmonischer wirken.

Frage diesbezüglich an Pinky: kann man evtl. irgendwie anders (z.B. mit C.O.F.F.E.E.) abfragen, welches zwischenbild beim Motionblur gerade dran ist? Das könnte man dann verwenden und dann einfach sagen: wenn gerade, dann Negation, wenn ungerade, dann nicht. Schon hätte sich das erledigt. Aber ich krieg das nicht raus. Dazu bin ich noch nicht so tief in die endlosen Weiten der Möglichkeiten vorgedrungen.

P.S.: für die Animation nahezu ideale soundfiles bekommt man, wenn man einen Bandpass zwischen 20 und 40Hz legt. Das Ergebnis sieht dann so aus wie bei mir und man hat dann in der Animation eindeutige Vibrationen und kein Dauergewaber der Membran:

goldwave_20-40hz_bandpass.png


MfG,

C]-[aoSlayeR
 
Hi CHaoSlayeR!

Ziemlich genau so schaut meine Schaltung auch aus ;)
Die Idee dahinter ist ja, dem Motion-Blur ständig "Bewegung zum Blurren" zu geben. Unabhängig davon, ob es schön ist oder nicht: durch den ständigen Vorzeichenwechsel erreicht man eine Bewegung auch bei "gleichen Samplewerten".
Dabei scheint der Motionblur in die "Vergangenheit" zu schauen. Anbei schneller Test: grün, die Positions-Keyframes, orange, das Motionblurergebnis. Entscheident sind Frame 3 und 4: die Bewegung von 2 auf 3 erzeugt bei 3 einen Blur. Da von 3 auf 4 stillstand herrscht kein Blur auf 4. Und das obwohl von 4 auf 5 ja eigentlich bereits die nächste Bewegung startet...
So gesehen verstehe ich Deine Frage nicht. Der Motionblur greift ja nicht auf Zwischenbilder zu, sondern orientiert sich an den vorhergehenden Bildern...
(Sollte es um Fields gehen, hab' ich keine Ahnung, was der Motionblur dort tut. Wahrscheinich wäre es da am einfachsten mit 50 Frames(!) zu rechnen und später zu "interlacen").
Ein ganz lustiges Ergebnis liefert übrigens auch der Ansatz: die Membran gleichmäßig schwingen zu lassen und nur die "Stärke des Motionblurs" in Abhängigkeit der Soundamplitude zu ändern...

Liebe Grüße,
Pinky.
 

Anhänge

  • motionblur.jpg
    motionblur.jpg
    10,5 KB · Aufrufe: 194
Ach, das "Bild" aus dem "Zeit"-Node gilt für alle berechneten Bilder? Also auch fürs Motionblur? Ich hab ja schon etliche Proberenderings bei einem Frame gemacht, aber zu sehen ist nicht, dass er jedes zweite zu berechnende Bild mit negation versieht! Oder in meinen Soundfiles sind genau dann immer 0-Werte...

Muss das selbst mal mit zwei einfachen Objekten Testen um mich davon mal zu überzeugen...

Zum Szenen-MotionBlur: das versteh ich jetzt nicht so recht! Bei Vektor- oder Objekt-MotionBlur ist mir das ja einleuchtend, dass er sich am vorherigen Bild orientiert, aber der Szenen-MotionBlur doch nicht! Wenn der nicht über die Zeit läuft, dann isses ja kein richtiges Szenen-MotionBlur mehr! Ich dachte mir eigentlich, dass C4D zwischen den Frames Zeitpunkte setzt, bei denen der Renderer dann nen Bild rendert. Das ganze n-mal (n = Anzahl Bilder für Szenen-MotionBlur) und nach n Bildern packt er die alle übereinander und erstellt so den eigentlichen Frame.

Davon ausgehend hab ich mir gedacht, dass dein Modulo 2 bezogen auf das "Bild" von dem Zeit-Node auf die Frames zurückgreift, was du ja eben bestätigt hast. Daher hab ich mir folgendes gedacht:

- Beispiel-Frame # 405 (das 3. Bild bei 16-fachem Szenen-MotionBlur soll gerendert werden)
- Szene läuft mit 25fps

Daraus ergibt sich der folgende Zeitpunkt für die Berechnung:

B/fps + 1/fps / M * B[M] = t

· B = aktuelles Bild in der Szene
· fps = Frames pro Sekunde der Szene
· M = x-faches Szenen-MotionBlur
· B[M] = Bild Nummer x zwischen den Frames

bei meinem Beispiel sieht das dann so aus:

405 / 25 + 1/25 / 16 * 3 = 16,2075 Sekunden ± 0,00125 Sekunden (da ich ja nicht genau weiß, ob er die Zeit wirklich so bestimmt)

Bei Umstellung dieser Formel kriegt man so raus, welches "zwischenbild" gerade gerendert werden soll:

B[M] = M * ( t * fps - B)

ist eigentlich recht einfach und wenn man mal einen Wert wie 16,2083 Sekunden für "t" einsetzt bekommt man für meinen Fall eben B[M] = 3,32 raus. Da braucht man nur noch den real-Teil wegschneiden und dann kann man mit einem Modulo2 dahinter die berechneten Einzelbilder beim Szenen-Motionblur mit der Negation versehen. Denn eine Negation bei jedem zweiten Bild eines mit Szenen-MotionBlur berechneten Frames sieht schon als Bild allein besser aus, als die Lösung bei jedem zweiten Frame selbst, das ist mir zu grob.

Außerdem bringen Objekt- und Vektor-MotionBlur bei mir gar nichts, da ich auf Punkt-Ebene animieren lasse und nicht auf Objekt-Ebene. Daher MUSS ich Szenen-MotionBlur verwenden...

Zu lasten der Rechner im meinem Netzwerk hier... ;-)
 
Zuletzt bearbeitet:
Hi CHaoSlayeR!

Sorry, klar, Du hast recht, an Szene-Motion-Blur habe ich garnicht gedacht (meine Erfahrung mit Szene-Motionblur endete damit, daß ich mir die Tränen aus den Augen wischte und diese Funktion nie wieder aktivierte ;) )

Bzgl. der "Zwischenframes" folgende "nette" Versuchsanordnung:
Zeit-Node / Zeit verbunden mit Text-Spline / Text. Text-Spline im HyperNurbs und dieses mit Szene-Motionblur gerechnet. Siehe Anhang :)
("Bild" des Zeit-Nodes liefert nur Integer, das wird das sein, was Du meintest, gelle?) ... über die "Zeit" kommst Du also auf jedenfall an die "Zwischenbilder"...
 

Anhänge

  • textblur.jpg
    textblur.jpg
    7,3 KB · Aufrufe: 216
BINGO! Genau das meinte ich. Schön, dass wir uns jetzt verstehen... ;-)

Bin grad dabei, das so einzubauen, wie ich mir das vorstelle. Jetzt bräucht ich drei Bildschirme hier, anstatt nur 2! Einen fürs Editor-Fenster, einen für XPresso und dann noch einen fürs Manual, um zu gucken, welcher Node jetzt nu wirklich was macht... :D

Nehm ich eben noch den Fernseher mit ran...

...und ich schreib doch in 4 Tagen Prüfung in Datenbanken, aber egal. C4D ist jetzt wichtiger... *grins*
 
Hi nochmal!

Hey, das macht richtig Spaß! :)
Anbei die Zeit vom Zeit-Node x 25 (Frames) x 16 (Blurfaktor), dargestellt per von Bild0=links nach Bild1=rechts (per Keyframes) animierter Text-Spline/ExtrudeNurbs... mit solch feinen Integers sollte es sich doch arbeiten lassen ;)
 

Anhänge

  • textblur2.jpg
    textblur2.jpg
    5,7 KB · Aufrufe: 207
warum mach ich mir das nur immer so kompliziert? Deine Formel ist viel einfacher...

Nu hab ich was ich wollte und die Szene kann dann irgendwann durch den NET-Renderer gehen... ;-)

Danke nochmal für Deine Hilfe, Pinky! Ich werde dich in den Animationen verewigen!
 

Anhänge

  • integer_16x_blur.jpg
    integer_16x_blur.jpg
    13,8 KB · Aufrufe: 175
Und wenn es jetzt nach eurer wirklich genialen Arbeit einer schafft daraus ein
Tutorial oder (falls das Sinn macht) sogar ein Videotutorial zu machen, dann
zieh ich meinen Hut, Jungs.

Klasse :)

Gruß
Martin
 
Ja, jetzt genügt das Teil meinen Ansprüchen. Hab noch ne Integer-Umwandlung vollzogen, weil C4D bei 5-, 9- bzw. 25-fachem MotionBlur den Wert manchmal nicht korrekt rundet, da der real-Wert zum lang ist bzw. eine Periode enthält...

Lasse gerade einen Test über 1800 Frames rendern. Wenn das fertig ist, dann gibts das hier auch zum angucken.

Nen Tutorial würd ich daraus gern machen, oder dran mitwirken, leider geht das erst ab März, denn vorher bin ich mit Prüfungen und Urlaub so ziemlich verplant!

Hier nochmal das finale XPresso im Überblick:
 

Anhänge

  • xpresso_bass_membran_final.png
    xpresso_bass_membran_final.png
    17,2 KB · Aufrufe: 160
Nach längerer Zeit der Abstinenz kann ich mich auch mal wieder Cinema 4D zuwenden und habe mich natürlich gleich um meinem Lieblingsthread gekümmert.
Das Xpresso-Gebilde habe ich soweit auch voll funktionsfähig zustande gebracht; jedoch macht mir das Bearbeiten der Sounddatei noch ein wenig Probleme:

Original geschrieben von CHaoSlayeR

P.S.: für die Animation nahezu ideale soundfiles bekommt man, wenn man einen Bandpass zwischen 20 und 40Hz legt. Das Ergebnis sieht dann so aus wie bei mir und man hat dann in der Animation eindeutige Vibrationen und kein Dauergewaber der Membran

Was macht dieser Bandpass genau ? Beschränkt er die Frequenzen auf den angegebenen Bereich oder filter er gerade diesen Bereich genau heraus ?
Habe mal versucht den Frequenzbereich auf maximal 100 Hz zu beschränken, doch dann bekomme ich leider das o.g. Dauergewaber heraus...

Wäre nett wenn mir jemand mit etwas Rat zur Seite stehen würde.

PS: Die Nullobjekte die sich auf dem Spline der Membran bewegen müssen doch die gleiche x/y/z Position haben wie die Punkte die ihnen folgen sollen , hab ich Recht ?
@ Chaoslayer: Mit welchem Programm hast du die Audiodatei bearbeitet ?

Viele Grüsse
 

Neue Beiträge

Zurück