Dutch Blender Community

Algemeen => Over Blender => Topic gestart door: amurre op 06 oktober 2015, 10:49:43 am

Titel: Geluidsgolven animeren
Bericht door: amurre op 06 oktober 2015, 10:49:43 am
Hallo allemaal,

Korte tijd geleden ben ik begonnen met het tekenen in Blender. Nu ben ik toegekomen aan het animeren van geluidsgolven in mijn laatste tekening, ik heb helaas helemaal geen idee hoe ik het geluidsgolven-effect kan creëren en in een kleine cirkel te laten beginnen, waarna deze netjes golvend zich uitspreidt door de 'ruimte'.

Heeft iemand een idee hoe ik dit kan creëren?

Het plaatje wat bij deze post staat is een screenshot vanuit YouTube, dit effect wil ik maken.
Heb zelf nog geen manier gevonden om dit vorm te geven. 

(http://s11.postimg.org/dh4r0tiun/blender_forum.jpg) (http://postimg.org/image/dh4r0tiun/)

Ben heel erg benieuwd of dit soort animatie gecreëerd kan worden in blender.
Titel: Re: Geluidsgolven animeren
Bericht door: JvL op 06 oktober 2015, 11:04:46 am
Welkom op het forum. Ik heb het zelf nog nooit hoeven te doen maar het is zeker mogelijk afhankelijk van je eigen kennis van Blender.

Misschien kun je wat met deze addon:
https://www.youtube.com/watch?v=sKSNw-q8HBY

En anders even zoeken op "visualizing sound waves blender".

Succes!
Titel: Re: Geluidsgolven animeren
Bericht door: koos2 op 06 oktober 2015, 12:31:00 pm
Je kunt ook wat video's bekijken mbt de wave modifier.
Titel: Re: Geluidsgolven animeren
Bericht door: Ruud op 06 oktober 2015, 13:52:27 pm
Je kunt ook een shapekey gebruiken om je ringen op te schalen handmatig of je moet toch wel wat complexere tutorials gebruiken als beginner.
https://www.youtube.com/watch?v=zlv2wrV68zQ
Titel: Re: Geluidsgolven animeren
Bericht door: IJp op 06 oktober 2015, 14:07:45 pm
Welkom Amurre.

Om het simpel te houden denk ik ook dat de wave modifier je wel een eindje op weg kan helpen.
Ik zou wat halve ringen maken in editmode en daarna wat spelen met de wave modifier.
Succes.

https://www.youtube.com/watch?v=c61NbPYasQc
Titel: Re: Geluidsgolven animeren
Bericht door: koos2 op 07 oktober 2015, 09:27:45 am
Ik heb even gekeken en denk dat je 3 dingen onder de knie moet krijgen.
1 De wave modifier
2 Bake sound to curve
3 Drivers

Wat je moet doen is de hoogte Height en de snelheid Speed van de Wave modifier aanpassen dit kan met keyframes die je met de hand instelt, maar beter is dit om met drivers te doen die gekoppeld zijn aan de curve van de sound.

Dus google op de drie dingen die ik genoemd heb, bekijk daar de tutorials van en ga dan aan de slag. Dan heb je aardig wat geleerd.

Je kunt het dus ook eenvoudiger doen, alleen met de wave modifier en dan met de hand die waarden aanpassen, dan kom je een eind in de richting.
Titel: Re: Geluidsgolven animeren
Bericht door: Nick Van den Broeck op 07 oktober 2015, 09:31:12 am
Persoonlijk zou ik het met een wave texture als displacement modifier proberen. Je kan dan de ruimte van de mapping loskoppelen van de schaling van het object.
Het uitdijen kan je dan door keyframes op de shaling bereiken, via shapekeys of via transparantie bestuurd door een tweede texture.
Titel: Re: Geluidsgolven animeren
Bericht door: koos2 op 07 oktober 2015, 13:20:23 pm
@Nick: Wat jij voorstelt lijkt mij aanzienlijk lastiger. Kun je op deze manier de vorm beter bepalen of zo? Wat is het voordeel?
Titel: Re: Geluidsgolven animeren
Bericht door: amurre op 08 oktober 2015, 08:02:17 am
Jongens, heel erg bedankt voor jullie tips!

Ik zie veel mooie creaties hier op het forum, wie weet krijg ik dat ook nog onder de knie!


Titel: Re: Geluidsgolven animeren
Bericht door: Nick Van den Broeck op 08 oktober 2015, 10:11:41 am
@koos2: het is moeilijk te zeggen wat de voordelen zijn zonder alle opties geprobeerd te hebben. Ik geef toe dat mijn methode omslachtiger klinkt, maar ik denk niet dat ze dat is. De voordelen die ik voor ogen heb (maar dat kan dus verkeerd zijn, want ik heb ze nog niet naast elkaar gelegd) zijn:
1) ik denk dat ik met de displacement modifier en het wave texture meer vrijheid heb om een op en neer gaande golf vloeiend te animeren.
2) ik denk dat het via de displacement ook makkelijker is om de golven los te koppelen van de grootte van het object. M.a.w. wat gebeurt er als ik het object groter maak: ga ik dan meer golfjes krijgen (en blijft de afstand tussen de golftopjes hetzelfde, wat ik graag zou hebben), of gaan de golfjes mee uitgerekt worden (wat de wave modifier naar mijn gevoel gaat doen). Dit is belangrijk als je de golfjes wilt animeren los van het uitdijen van de golf.

denk ik.

@amurre: Laat zeker ook weten welke methode(n) je uiteindelijk geprobeerd/gebruikt hebt. Feedback over wat goed en slecht ging is altijd nuttig.
Titel: Re: Geluidsgolven animeren
Bericht door: koos2 op 08 oktober 2015, 13:40:17 pm
Bedankt voor de toelichting Nick. Ik zal eens jouw optie moeten proberen, maar dat zal me wel veel tijd kosten dus dat duurt nog wel even. De finesses ervan begrijp ik niet maar dat komt omdat ik weinig met displacements heb gewerkt. Laat staan met een  of wave texture.
Leuk om een heel andere invalshoek te zien.
Titel: Re: Geluidsgolven animeren
Bericht door: amurre op 14 oktober 2015, 12:16:51 pm
Hallo Reageerders,

@Nick Van den Broeck
Ik heb de Wave modifier als test gebruikt.

Alleen dit voldoet niet helemaal.
Het is zo dat ik vanuit de basis van een luidspreker een geluidsgolf wil creëren, die geanimeerd groter wordt.
De geluidgolf uitbreiden door een "Visual LocRotScale" keyframes te gebruiken lukt prima.

Alleen de geluidgolven zou ik graag tegelijkertijd met het groter worden van de cirkel waarin het geluid zich verspreid, vanuit het centrum van de cirkel tot aan de rand willen animeren, zodat het een echte geluidsgolf is. (dit probleem is zichtbaar op de afbeelding)

Moet ik om een vloeiendere golf te creëren een "Subdivision surface" met een veel hogere waarde gebruiken?

Dit snap ik nog onvoldoende, als jullie tips voor me hebben dan hoor ik ze graag!

Ps. De link naar de afbeelding vanuit m'n OneDrive is: http://1drv.ms/1jyovCh
Titel: Re: Geluidsgolven animeren
Bericht door: Nick Van den Broeck op 14 oktober 2015, 13:28:57 pm
De wave modifier heeft voor- en nadelen. Een daarvan (je mag zelf kiezen of dit onder voor- of nadeel valt) is dat die al automatisch geanimeerd is.

Wat je moet doen om ongeveer het effect te krijgen dat je wil (denk ik) is in de wave modifier de narrowness hoog zetten, de speed laag (als in 0.01 of zo), de width ook laag (bvb 0.15) en height is afhankelijk van je systeem. (deze settings hangen natuurlijk af van de schaal van je hele scene. Ik ben gewoon bij 1 blenderunit begonnen). Zorg dat ook 'cyclic' aangevinkt staat.

Met deze settings zorgt de wave modifier ervoor dat er op tijdstip 0 een onzichtbare steen in het centrum van je schijf valt. De modifier simuleert dan de golven op een wateroppervlak. Narrowness bepaald de breedte van de golven. Width de afstand tussen twee opeenvolgende golven (wat enkel echt nut heeft als je cyclic activeert). Cyclict zorgt dat er telkens opnieuw een steen valt zodat je steeds weer een golffront krijgt. Speed geeft de snelheid van de golf aan (dus de beweging weg van het centrum).
Omdat de eerste steen pas op frame 0 valt zal je waarschijnlijk beginnen met te weinig pieken. (tenzij je de snelheid hoog zet zodat de eerste golf van de eerste steen al halverwege je object is.) Om dat tegen te gaan is er onder 'Time' een 'Offset'. Zet deze op -100 of nog lager om de eerste steen veel vroeger te laten vallen en alvast golven vanaf het begin te hebben.

Het probleem dat je gaat hebben is dat als je schaalt met keyframes, de 'golflengte' mee gaat vergroten. Met ander woorden: het aantal golftopjes op je object blijft identiek onafhankelijk van de grootte. Persoonlijk is dat niet wat ik wil zien voor jou situatie. Om dat op te lossen moet je denk ik net iets anders te werk gaan: zet geen keyframe op de schaling, maar werk vanaf het begin met de volledige grootte van je schijf. Zorg er nadien voor dat de schijf binnenin het materiaal heeft dat je wil en buiten transparant is via een mixshader gekoppeld aan ofwel een texture, ofwel de afstand tot de oorsprong (via een beetje wiskunde). Nadien animeer je die texture of afstand zodat er steeds meer van de schijf zichtbaar wordt. Zo zou ik het proberen.

Omtrent een mooier resultaat:
1) je hebt gewoonweg veel meer vertices nodig. Het beste is om met de hand al wat vertices bij te voegen. Als ik zo'n schijf moet maken dan begin ik van een cirkel (niet gevuld), extrude buitenste vertices, schaal een beetje naar binnen. extrude nogmaals schaal nog wat meer enz. Tot je in het centrum aankomt, dan schaal naar 0, alles selecteren en 'remove doubles'.
2) nadien ga je de grid nog fijner maken door een subdivision modifier te gebruiken. Ik raad aan er twee te gebruiken: eentje voor en eentje na de wave modifier (de volgorde is belangrijk).
3) gebruik ook smooth shading die ervoor zorgt dat de vlakjes worden geïnterpoleerd wat direct veel gladder oogt.

Laat maar weten of je zo al wat dichter bij wat je wilt bent gekomen.
Titel: Re: Geluidsgolven animeren
Bericht door: amurre op 21 oktober 2015, 08:35:14 am
Nick bedankt voor je tips!

Het klopt wat je zegt over de scaling, het liefst heb ik dezelfde golflengte en grootte ondanks het vergoten van het object.
Deze animatie moet laten zien hoe het geluid verspreid wordt in een ruimte.

Om op het probleem terug te komen van het smoothen van het object, lukt helaas niet met meer verticies.
De Verticies hebben waarschijnlijk een verkeerde vorm waardoor je het toch blijft zien.


Een square heeft vierkante faces, waardoor het al heel snel erg mooi en smooth is.
Is er een mogelijkheid om een cirkel met vierkante faces te maken?

Ps. De afbeelding is een oude, deze afbeelding geeft wel weer wat verticies doen als ze een andere vorm dan een vierkant hebben.
(http://s27.postimg.org/kv9qbv82n/Blenderforum.jpg) (http://postimg.org/image/kv9qbv82n/)
Titel: Re: Geluidsgolven animeren
Bericht door: Nick Van den Broeck op 21 oktober 2015, 11:13:29 am
Hey,

Zie hier vier standaard methoden om een schijf te maken van verteces:
(http://s13.postimg.org/jo0o0mbyv/Knipsel.png)

De bovenste rij geeft de originele mesh, de onderste rij de wireframe als je 3 of 4 keer de subdivision modifier toepast.

Van links naar rechts:
1) opgevuld met driehoekjes (was vroeger de standaard). Dit is geen ideale methode want die geeft typisch artifacten zoals jij die ziet. Je ziet ook op de ge-subdivide versie dat er die typische parabooltjes richting het centrum ontstaan die het probleem geven.
2) opgevuld met een n-gon (dus gewoon alles selecteren en opvullen met F). Deze is ook niet ideaal, want zoals je kan zien in de versie eronder is het eerste wat er gebeurt een vertex in het centrum. Gevolg: vanaf subdivision 2 zit je in hetzelfde schuitje als versie 1.
3) Dit is wat ik meestal doe: start vanaf een cirkel en extrude naar binnen. Dan krijg je vierkantjes. Helemaal op het einde neem je een laatste extrude, scale naar 0 en remove doubles. Probleem is dat het centrum nog steeds uit driehoekjes zoals 1 bestaat. Echter, je kan dit verbergen door het heel klein te maken zodat het amper opvalt.
4) Dit is een optie met enkel en alleen maar vierkantjes en wordt vaak gebruikt om afgeronde cilinders of bollen een nette topologie te geven (al kan je voor en echte bol ook een ico-sfeer gebruiken). Deze vereist best wel wat werk. Je begint met langs buiten een cirkel en binnen in een grid. Zet evenveel kadertjes in je grid als verteces (zodat de hele rand van de grid netjes past aan de cirkel). Of: neem een vertex op de cirkel, neem de buren en verbind die, subdivide en verschuif de nieuwe vertex zodat je meer een vierkant hebt. Hoe geleidelijker de structuur van het vierkante center naar de cirkel op de rand loopt, des te beter. Deze methode is wel heel tijdrovend als je begint met veel verteces (hier heb ik er slechts 16 op de hele rand).

Hopelijk helpt dit een beetje?

Wat je ook zeker eens moet proberen is de subdivision en de wave modifier omwisselen van plaats. Dan ga je  eerst de platte cirkel onderverdelen en nadien pas bewegen aan de hand van de golven. Dat kan helpen.

Titel: Re: Geluidsgolven animeren
Bericht door: amurre op 23 oktober 2015, 15:48:13 pm
Nick,

Je hebt me geweldig geholpen!

Ik heb de animatie nu veel smoother gekregen! Heb nu getest om de geluidsgolven beter zichtbaar te laten worden met een kleur-water, alleen lijkt een lichte transparante kleur beter.

Alleen het uitbreiden van de kleur in een mix shader heb ik nog niet voor elkaar gekregen. Zijn daar tutorials van?

Dit had je geschreven:Zorg er nadien voor dat de schijf binnenin het materiaal heeft dat je wil en buiten transparant is via een mixshader gekoppeld aan ofwel een texture, ofwel de afstand tot de oorsprong (via een beetje wiskunde). Nadien animeer je die texture of afstand zodat er steeds meer van de schijf zichtbaar wordt. Zo zou ik het proberen.

Deze optie is perfect voor wat het moet worden, zo kan ik de camera via een path vanaf te zijkant naar de bovenkant laten bewegen.

Nu heb ik het vanaf boven met een losse circle net boven de geluidsgolven, die schalend groter word, het effect gecreëerd dan is het niet mogelijk om vanaf de zijkant, zonder dat de witte cirkel zichtbaar is.

(http://s8.postimg.org/yr8jmtbv5/untitled.jpg) (http://postimg.org/image/yr8jmtbv5/)
Titel: Re: Geluidsgolven animeren
Bericht door: Nick Van den Broeck op 24 oktober 2015, 14:43:33 pm
Dit is hoe ik het zou doen:
(http://s21.postimg.org/rofx3ipjb/Knipsel.png)

Het idee is als volgt: we maken een mixshader die mixt tussen het gewenste materiaal voor de geluidsgolf (rozige) en een transparant materiaal (geel). De factor van de mix is dan onze controle om te bepalen welk van de twee materialen waar wordt getoond.
Deze factor maken we positieafhankelijk door die te koppelen aan een texture. Zodoende beginnen we met een texture (blauwe stuk), in dit geval een gradient. Daar we vanuit de oorsprong van het object willen vervagen kiezen we voor sferisch en nemen we 'object' als de bron van onze coördinaten. Ik heb de mapping-node toe gevoegd en daarin de schaal van z op 0 gezet om de afhankelijkheid van de z-as weg te nemen. Met ander woorden: in de z-richting wordt nu steeds de waarde voor 0 gebruikt. Het texture heeft dus enkel nog invloed op x en y. (pas op, al deze coördinaten hangen af van het assenstelsel van je object, dus als je dingen begint te draaien in edit mode, dan kan het wel eens anders uitvallen.)
Ten slotte is de sferische gradient voor ons te zacht. Die begint immers met 1 in het centrum en 0 op de rand. Wij willen veel langer 1, dan een korte overgang naar 0 en dan nog wat langer 0. Dit doen we door de 'colorramp' node. Het makkelijkste is een harde overgang, dan zet je de methode op 'constant' in plaats van linear. Door dan de sliders te manipuleren zal je meer of minder van je mesh zien. Speel hier wat mee tot je de gewenste afstanden hebt gevonden. Voor een harde rand is er 1 slider die je moet manipuleren om van niets naar alles te gaan (in mijn geval de middelste op het prentje).
Om nu nog de animatie in de tijd te krijgen gaan wie op die slider een keyframe toevoegen d.m.v. de knop i. Zet een keyframe in het begin en 1 keyframe op het einde van je animatie. Spring naar de graph editor en daarin kan je perfect voor elke frame van je animatie beslissen hoeveel van je mesh zichtbaar is.
Wil je een zachte overgang, dan zal je meerdere sliders synchroon moeten laten bewegen. Maar dat werkt in essentie exact hetzelfde als 1 slider.

Pas op, verwijder nu de animatie op de schaal van het object. Die hebben we niet meer nodig (gaat niet in conflict gaan, maar hebben we hier gewoon niet nodig).
Wat we in essentie gedaan hebben is het object met golf gemaakt. Dat is echt de mesh die we animeren. En dan hebben we de zichtbaarheid via een materiaal in orde gebracht. Op die manier hebben we de golf volledig onafhankelijk gemaakt van de zichtbaarheid en verandert de golflengte niet aangezien het object nooit groter of kleiner wordt. Voor blender staat gewoon de hele schijf de hele tijd stil, maar hij toont slechts een stukje ervan.
Dit wil ook zeggen dat je de transparantie enkel gaat zien als je rendert (of in rendered viewport). In wireframe of solid mode gaat er niets veranderen.

In dit voorbeeld heb ik cycles gebruikt, maar voor zover ik kan inzien zou dit in BI even goed moeten werken.

Nog een tip, en iets dat weinig mensen echt beseffen, maar hier wel belangrijk is: Denk aan je schaduwen. Als je mesh te evenredig belicht is, dan krijgt alles dezelfde kleur en zie je niets van de golfjes. Die golfjes zijn immers enkel zichtbaar als ze schaduwen werpen. Belicht dus niet egaal van boven, want dat gaat weinig zin hebben.

Hopelijk helpt dit.