Als je deze tutorial stap voor stap wil volgen bij hetzelfde project, vind je in het pakket met de werkbestanden het document "PSD_C4D_R14_Aerodynamik_start.c4d", dat dienst zal doen als onze gemeenschappelijke startbasis.
Het blaadje papier is een eenvoudig parametrisch vlakobject, met voldoende segmentering voor de deformatie per Dynamics. Om de zijligging goed zichtbaar te maken en de scène wat kleurrijker te maken, is het papier tweezijdig getextureerd.
De gaasafdekking bestaat uit twee atoomarrays gebaseerd op twee vlakobjecten. Om de botsingen nauwkeuriger te kunnen berekenen, werken we hier met twee verschillende objecten. De bodem is niet als bodemobject, maar als polygonobject uitgevoerd, zodat een gat in de grond voor de schacht, ook een polygonobject, gecreëerd kon worden.
Uitrusting met dynamische eigenschappen
Laten we beginnen met de gaasafdekking van de luchtuitlaat. Zoals eerder vermeld, beheren we de botsingen van het papier met het gaas hier met twee verschillende objecten en ook Dynamics Body-tags. Selecteer daarvoor de twee atom-arrays in de objectmanager en wijs ze via het contextmenu met de rechtermuisknop of via het menu Tags>Simulatietags in de objectmanager een Dynamics Body-tag als botsingobject toe.
Selecteer beide Dynamics Body-tags in de objectmanager, om de instellingen in één stap voor beide tags vast te leggen. Op de dynamics-pagina van het instellingendialoog behouden we de standaardinstellingen.
Op de botsingspagina van het instellingendialoog moeten we alleen de wrijving aanpassen aan onze behoeften. Om te voorkomen dat de papierbladeren te ver wegglijden wanneer ze op de grond vallen, verhogen we de wrijvingswaarde naar 80%.
Laten we verder gaan met de bodem. Ook het polygonobject van de bodem krijgt via het contextmenu met de rechtermuisknop of via het menu Tags>Simulatietags in de objectmanager een Dynamics Body-tag als botsingobject toegewezen.
Ook voor de Dynamics Body-tag van de bodem kunnen we de standaardinstellingen op de dynamics-pagina zonder aanpassingen overnemen.
Op de botsingspagina van het instellingendialoog moeten we alleen de wrijving aanpassen aan onze behoeften. Om te voorkomen dat de papierbladeren te ver wegglijden wanneer ze op de grond vallen, verhogen we de wrijvingswaarde naar 150%.
Eindelijk komen we bij het blaadje papier, dat we later via een deeltjessysteem van bovenaf talloze keren laten neerdwarrelen. Laten we eerst naar zijn dynamische eigenschappen kijken. Wijs hem daarom via het contextmenu met de rechtermuisknop of via het menu Tags>Simulatietags van de objectmanager een Dynamics Body-tag als Soft Body toe.
Door het selecteren van de Soft Body-tag zijn de belangrijkste parameters al ingesteld op de dynamics-pagina van het instellingendialoog. We verhogen ook de lineaire snelheidsgrens een beetje, zodat de op de grond liggende papierbladeren na verloop van tijd tot rust komen.
Op de botsingspagina van het instellingendialoog kiezen we als vorm het bewegend mesh. Hierdoor wordt een nauwkeurige berekening van de botsing gewaarborgd.
De elasticiteit verminderen we tot 5%; het blaadje moet immers na het neerkomen op de grond of het gaas niet ook nog omhoog springen. Een wrijving van 50% past goed bij de al aanwezige wrijving op het gaas of de bodem.
Met behulp van de dichtheid bepalen we op de mastpagina van het instellingendialoog de massa van het blaadje papier, dat later via een deeltjessysteem talloze keren op de grond zal vallen. Om de simulatie te laten weten dat het hier om een zeer licht vliegend object gaat, schakelen we over naar eigen dichtheid en geven we een kleine waarde van 2 in.
Aan de krachtenkant van het instellingendialoog komen we eindelijk bij een paar cruciale parameters voor deze tutorial - de aërodynamica. Aangezien onze papieren vellen weinig weerstand hebben tijdens de vlucht en onder invloed van de wind, stellen we de waarde voor de luchtweerstand in op een lage 5%.
Daarentegen willen we dat de vellen al bij weinig wind rechtop staan en opgetild kunnen worden; hiervoor is een ondersteunende waarde van ongeveer 70% geschikt voor het opheffen. De optie aan beide kanten zorgt ervoor dat niet alleen de bovenkant van het papier, maar ook de onderkant als aanvalsoppervlak wordt herkend en behandeld.
Zodat ons papier zich kan gedragen als papier, hebben we het ingesteld als soft body-object, dus als elastisch, buigzaam lichaam. Aan de soft body-kant van het instellingendialoog bepalen we de specifieke eigenschappen.
Om de rekentijd niet onnodig te verhogen, deactiveren we in het soft body-gebied eerst de nauwkeurige solver. Mocht er een foutberekening optreden, dan kunnen we hier nog steeds corrigeren.
We gaan verder met de eigenschappen van het papier. Structuurveren zorgen voor de stijfheid van het materiaal, daarom geven we hier een relatief hoge waarde van 300, met 50% demping. We stellen de mogelijkheid voor vervorming na overbelasting, de elastische limiet, in op een late 800%.
Dit zorgt ervoor dat niet elk stuk papier dat op de grond landt onmiddellijk verkreukeld blijft liggen. Om te voorkomen dat het papier eenvoudig instort, verhogen we de waarde voor de scheurveren naar 100.
Papier heeft van nature niet veel weerstand tegen buigen, daarom is deze waarde relatief laag. Ook hier gebruiken we de elastische limiet, echter iets lager, zodat kreukels toegestaan zijn.
Met de vormbehoud stellen we vast hoe sterk het vervormde soft body-object ernaar streeft om terug te keren naar de oorspronkelijke staat. Een zeer lage waarde voor de hardheid is voldoende, aangezien hier niet veel weerstand van het papier wordt verwacht.
De elastische limiet stellen we opnieuw hoger in, zodat het papier, wanneer het eenmaal deze limiet heeft overschreden, ook gewoon vervormd kan blijven liggen.
Opzet van het deeltjessysteem voor de vallende papierbladen
Na deze parametermarathon zijn alle relevante objecten voorzien van dynamische eigenschappen. We gaan nu verder met het deeltjessysteem dat de papierbladen produceert en laat neerdwarrelen op de grond.
Hiervoor halen we een emitter uit het menu Simuleren>Deeltjessysteem naar de scène.
Om het papieren vel als deeltje te laten fungeren, plaatsen we het als subobject in de emitter. Via de Y-coördinatenwaarde verplaatsen we de deeltjeselement ongeveer 300 cm omhoog; de positie direct boven het luchtrooster is al in orde.
In het instellingendialoog van het emitter-object sturen we via de deeltjeskant de emissie van de deeltjes aan. Gebruik hier geen te hoge geboortecijfers, omdat het om soft body-objecten gaat, is de berekening echt rekenintensief. Maar geen zorgen, zelfs met schijnbaar lage geboortecijfers (zoals mijn 10) kan er veel papier worden opgehoopt.
Zodat de animatie bij frame 500 kan eindigen en tegen die tijd elk blad op de grond ligt, laten we de deeltjesproductie eindigen bij frame 400.
Door de variëteit in de snelheid en een extra rotatie tot 180°, ziet de deeltjesuitstoot er natuurlijk uit. De optie om objecten weer te geven garandeert dat we in de editor en bij het renderen daadwerkelijk papierbladen zien vallen.
Aan de emitter-kant van het instellingendialoog regelen we de grootte van de emitter. De opgegeven grootte is voldoende om de scène en het luchtrooster voldoende met papier te vullen.
Test dit nu eindelijk door op de afspeelknop te klikken en in de editor ook weer in te zoomen op het luchtrooster. De papierbladen vallen van boven en botsen zoals gewenst met het rooster en de vloer.
Integratie van de luchtstroom uit het luchtrooster
Er is tot nu toe nog niet echt veel te zien van een aerodynamisch effect; dat verandert echter snel wanneer we de luchtstroom die uit het luchtrooster komt in de simulatie integreren. Haal hiervoor de deeltjesmodificator wind uit het menu Simuleren>Deeltjessysteem in onze scène.
Aangezien de luchtstroom uit het luchtrooster moet komen, is de positie op de oorsprong al correct. We moeten echter de wind nog met 90° draaien via de pitching-hoek W.P, zodat de luchtstroom in Y-richting omhoog wijst.
In het instellingenvenster van het Wind-object vinden we op de Object-pagina de parameters voor de windsnelheid en voor turbulentie. We zullen de windsnelheid binnenkort door willekeur laten beheersen, daarom stellen we hier voorlopig 50 m in voor eerste tests. Verwervelingen door turbulentie zijn zeker gewenst (immers, de wind stroomt door een rooster), maar het is vooral belangrijk dat we de aerodynamische wind als modus activeren, die kan werken op de aerodynamische eigenschappen van onze papieren bladeren.
Op de Afname-pagina kiezen we de vorm van een bol als afnamevorm. Deze vorm vult de randen niet helemaal op, maar dit is ook wel in onze zin, omdat het dichter bij de werkelijke situatie komt en wat ruimte biedt voor het papier om zich op het rooster uit te spreiden.
De ronde bolvorm zorgt er ook voor dat de sterk gewervelde bladeren niet op een rand van de modificeerder blijven "liggen" en passief zweven. De afname zetten we op 10% en kiezen bij de afnamefunctie de optie Inv. kwadratisch.
Een klik op de afspeelknop laat zien hoe de uitstromende wind nu invloed heeft op de neervallende papieren bladeren. Momenteel is de luchtstroom echter nog te gelijkmatig.
Sturing van de luchtstroom met XPresso
Met een kleine XPresso-schakeling geven we de luchtschacht plotselinge windstoten, zonder enige parameters te hoeven animeren.
Hiervoor hebben we een XPresso-uitdrukking nodig die we logischerwijs toewijzen aan het Wind-object als Drager. We vinden de Uitdrukking via het Contextmenu met de rechtermuisknop onder de CINEMA 4D-tags of ook in het menu Tags>CINEMA 4D-tags van de Objectenbeheerder.
We openen de XPresso-Editor door dubbel te klikken op het icoon van de XPresso-uitdrukking in de Objectenbeheerder, om daar onze kleine schakeling op te bouwen. Om het Wind-object aan te spreken, hebben we het nodig in de XPresso-Editor. Daarom slepen we het eenvoudigweg per Drag&Drop van de Objectenbeheerder naar de XPresso-Editor.
Aan de blauwe invoerpoortknop van de Wind-node selecteren we de parameter windsnelheid in het menu Objecteigenschappen om het als invoerpoort beschikbaar te stellen.
De gegenereerde windsnelheid moet zich enerzijds binnen een vooraf ingesteld bereik bevinden, maar mag anderzijds ook geen onbruikbare waardeoverspringingen vertonen, maar moet telkens stijgen en dalen. Voor deze eisen is de Noise-Node uitstekend geschikt, die we via het Contextmenu met de rechtermuisknop in de XPresso-Editor halen.
Als Uitvoerpoort op de Noise-Node hebben we al de Noise-poort tot onze beschikking. Door te slepen met de muis verbinden we de Noise-poort met de invoerpoort windsnelheid van de Wind-Object-Node.
De parameter windsnelheid wordt dus nu geregeld door een Noise-textuur. Deze textuur en de verwerking ervan kunnen worden geregeld via het instellingenvenster van de Noise-Node.
We kiezen de golfvormige turbulentie en laten door de deactivering van de optie Absolute waarden ook negatieve waarden toe. Met de parameter Grootte schalen we de Noise om zachte overgangen te creëren. Met de Frequentie regelen we de frequentie van de Noise-veranderingen in de tijd.
Een relatief lage waarde van 0,5 zorgt ervoor dat de windstoten niet te kort op elkaar volgen. De Amplitude vermenigvuldigt het Noise-resultaat met de Noise-waarde die wordt doorgegeven. Hier zorgen we met 150 eenheden voor duidelijke uitslagen. De Startwaarde 0 laat onze windmachine met windstilte beginnen.
In het instellingenvenster van het Wind-object wordt de sturing van de windsnelheid via XPresso zichtbaar door een veranderd parameterblok. Als we op de afspeelknop klikken, kunnen we goed waarnemen hoe de windsnelheidswaarde in de loop van de tijd verandert - en ook in de Editor zien we de noise-gebaseerde rotatie van de Wind-Modificeerder.
Beeldgestuurde activering van het Wind-Object
Om de papieren bladeren ook de kans te geven zich op het rooster af te zetten en te verzamelen, schakelen we het Wind-object pas in bij afbeelding 150. Dit doen we via een kleine parameteranimatie.
We zetten de Tijdbalk op afbeelding 0 of 1, schakelen het Wind-object via de parameter Activeren op de Basis-pagina uit en klikken met ingedrukte Ctrl- of Ctrl-toets op de parametercirkel om een Keyframe voor deze waarde op te slaan.
Vervolgens stellen we de tijdsregelaar in op afbeelding 150 en nemen we een tussentijdse sleutel op voor de activeerparameter met het ingeschakelde windobject.
Er hoeft niet meer te gebeuren bij deze kleine parameteranimatie. De rotorbladen van het windobject staan nu stil tot afbeelding 149 en komen pas in beweging vanaf afbeelding 150.
Dynamica-voorkeuren controleren
Als je mijn startscène hebt gebruikt voor het nabootsen van deze tutorial, zou hier eigenlijk geen aanpassing nodig moeten zijn. In de projectinstellingen in het bewerkingsmenu vinden we op de dynamics-pagina enkele parameters die de dynamica-solver helpen bij het vermijden van fouten.
In het algemene gedeelte van de dynamica-instellingen moeten we er alleen voor zorgen dat zwaartekracht en dichtheid globaal aanwezig zijn. Voor de aerodynamische simulatie is de parameter luchtdichtheid belangrijk.
In het expertgebied kunnen we de dynamica-solver helpen door de schaal te verlagen. We hebben voornamelijk te maken met papierbladen van 20 cm x 30 cm die vervormd worden en vrij precies met elkaar moeten botsen. Een waarde van 5 cm zorgt hier voor een beter begrip van de grootte voor de dynamica-engine.
Nu kunnen we de voltooide simulatie in zijn geheel laten afspelen en renderen. Dankzij de aerodynamica worden de op het rooster verzamelde papierbladen steeds weer omhoog geblazen door verschillende windstoten …
… en uiteindelijk kunnen ze zich alleen maar vastklampen aan de windbeschermde gebieden op het rooster.