In deze tutorial zullen we een muur laten instorten door het te beschieten met kogels, waardoor het PSD-logo tevoorschijn komt.
Opbouw van de scène
Om tijd te besparen bij het opzetten van enkele lagen en lichten, bevat het pakket de werkbestanden onze gezamenlijke uitgangsbasis genaamd "PSD_C4D_R18_MoG_Voronoi_Bruch.c4d".
Laten we eens kijken naar de opbouw van de scène vanuit een zijdelingse perspectief. Helemaal rechts bevindt zich een Vlak-object met het bekende PSD-logo van de vlinder. Daarvoor staat een muur bestaande uit een eenvoudig Kubus-object. De belichting van de scène gebeurt met behulp van een spot-lichtbron als hoofdlicht en twee gedempte vullampen. Er staat ook al een Camera klaar, gericht op de muur maar ook een stuk van de Vloer-object opneemt.
Met uitzondering van de eenvoudige bal is de parametrische muur de hoofdrolspeler van onze animatie. Omdat het Voronoi Breuk-object verantwoordelijk is voor het creëren van de breuken, kan het zelfs een parametrisch basisobject blijven.
Om ervoor te zorgen dat objecten in de scène die momenteel niet nodig zijn ons niet storen, schakelen we de Bal, de Camera, en de lichtbronnen uit via de verkeerslichten of deactivering in de Object-Manager.
Plaatsen en instellen van het Voronoi Breuk-object
We schakelen het beste over naar de voorzijde (toets F4), om het Kubus-object van de muur in de Editor-weergave volledig in beeld te hebben.
Zorg ervoor dat de Muur geselecteerd is, en haal een Voronoi Breuk-object uit het MoGraph-menu naar onze scène. Houd daarbij de Alt-toets ingedrukt om het Kubus-object van de Muur gelijk te stellen aan het Voronoi Breuk-object.
De Kubus-object van de Muur wordt nu door het Voronoi Breuk-object opgesplitst in kleurgecodeerde onderdelen. De verdeling is gebaseerd op een puntenwolk, waarbij de scheidingslijnen zich exact in het midden tussen twee punten bevinden. Deze punten zullen we binnenkort nader bekijken.
Voordat we verder gaan, kijken we nog even in het instellingendialoogvenster van het Voronoi Breuk-object. Hier vinden we op de Object-pagina tal van opties om de breuk aan te passen aan het object. We kunnen bijvoorbeeld de breuk regelen met behulp van Selecties en Gewichtskaarten, de breuk beperken tot Oppervlakken, objecten als hol definiëren, of de fragmenten sorteren op basis van het indexnummer.
Om te testen hoe de huidige fragmenten op onze muur eruit zien, schakelen we tijdelijk de optie Fragmenten kleuren uit en geven een Fragment-offset van 20 cm op.
Zoals je ziet, kun je via de Fragment-offset de kloof tussen de afzonderlijke stukken regelen. Onze muur zal correct worden verdeeld in overeenstemming met de toepasselijke Voronoi-interpolatie.
We stellen de Fragment-offset weer terug op 0, om ons nu te concentreren op de verdeling van de muur in de stukken.
Alle instructies met betrekking tot de verdeling vinden we op de Bron-pagina van het instellingendialoog. Zoals eerder vermeld, worden de verdelingen gemaakt op basis van puntinformatie die het Voronoi Breuk-object vanuit verschillende bronnen kan ontvangen.
Standaard heeft het Voronoi Breuk-object een Puntengenerator als distributiebron, die we direct kunnen aanpassen via de onderstaande parameters. Zoals de tweede knop suggereert, kunnen ook Shaders worden gebruikt om de verdelingen vorm te geven. Maar dat is nog niet alles, in principe kunnen alle puntsgenererende objecten in Cinema 4D, zoals bijvoorbeeld Splines, Polygonobjecten, Generatoren of Partikelemitters, door middel van slepen en neerzetten als bron worden gedefinieerd.
Onze eerste Puntengenerator zal zorgen voor de grove fragmenten in de muur. De bestaande gelijkmatige verdeling van de stukken is daarvoor voldoende, we verhogen gewoon het Aantal ervan en testen een Startwaarde die ons bevalt voor de verdelingen.
Door het grotere aantal punten zijn er nu meer fragmenten aanwezig, die dichter bij elkaar liggen vanwege de ruimte die beschikbaar is. In het groen zie je de punten waaruit de fragmenten voortkomen door interpolatie.
Om de verschillende verdelingsbronnen uit elkaar te kunnen houden, geven we in het veld Naam een betekenisvolle naam zoals "Grof" voor de grove verdeling van de brokstukken. Aangezien het schot met de kogel of kogels eerder in het midden van de muur zal plaatsvinden, willen we deze grove puntenwolk nog wat in breedte schalen. We klappen daarvoor in het instellingendialoog het gebied Transformatie uit en geven voor de grootte in X-richting een waarde van ca. 0,85 op.
We zien dat de puntenwolk hierdoor iets smaller wordt. Het aantal brokstukken blijft natuurlijk hetzelfde, maar we hebben de verdelingen juist daar wat geconcentreerder gemaakt waar de inslagen voornamelijk zouden moeten plaatsvinden.
Om de voorgeschreven brokstukken nog wat gedetailleerder te maken, maken we via een klik op de knop Verdelingsbron toevoegen een extra puntenwolk aan, dit keer echter voor de fijnere brokstructuur.
We geven meteen een passende naam zoals "Fijn" aan deze tweede verdelingsbron. In plaats van het gelijkmatige verdelingstype willen we dit keer een verdeling gebruiken die meer geconcentreerd is op de binnenkant van het object, dit bereiken we via de instelling Normaal in het menu Verdelingstype. Een verdeling die eerder naar buiten in de objecthoeken zou dringen, zou ons de variant Omgekeerd-normaal bieden. De exponentiële verdeling richt zich naar een op te geven as.
Bepalend voor de omvang van de verdeling is overigens een kubusvormige bounding box die het respectieve object omvat.
Voor het afstellen van de puntenwolk hebben we de parameter Standaardafwijking tot onze beschikking. Met kleinere waarden komen de punten dichter bij elkaar, met grotere waarden daarentegen komen ze verder uit elkaar te liggen.
Om voldoende kleine brokstukken te krijgen, stellen we een puntenaantal van 300 in, opnieuw kunnen we de verdeling variëren met een startwaarde.
Omdat we nu meer dan één bron gebruiken voor het genereren van de breuken, activeren we ook de optie Alle gebruikte punten weergeven.
Bij het bekijken van de Editor-weergave zien we naast de lichtgroene fijne verdelingsbron ter oriëntatie nu ook de eerder gemaakte donkergroene grove verdelingsbron.
Deze tweede, fijnere puntenwolk willen we ook nog wat voorbereiden op de inslagen via de Transformatie-parameters. Om een beter gevoel te krijgen voor de impact van de veranderingen, moeten jullie experimenteren met de parameters. Ik heb de fijne verdelingsbron met de Grootte-parameters wat in hoogte uitgerekt en in de breedte samengedrukt, en met de Positie-parameters een beetje naar beneden en naar links verplaatst.
We kunnen de objecten die verborgen zijn via de Object-Manager terug zichtbaar maken, omdat we de voorbereiding van de brokstukken in het Voronoi Bruch-object hebben voltooid. Deze twee verdelingsbronnen zouden voor onze doeleinden voldoende moeten zijn. De volgorde van de bronlagen in het bijbehorende veld is overigens niet van belang.
Hier is duidelijk te zien dat de fijne puntenwolk die wordt gegenereerd vanuit het kubus-object van de muur, en die is aangepast met de transformatie-parameters, een groene bounding box heeft.
Uitrusten met dynamische eigenschappen
We zullen binnenkort de instellingen van het Voronoi Bruch-object weer nodig hebben, in de tussentijd rusten we de objecten die betrokken zijn bij de simulatie uit met dynamische eigenschappen.
De laag met het PSD-logo en de grond mogen alleen botsingen veroorzaken, dus het is voldoende om beide objecten via het menu Tags>Simulatietags in de Object-Manager een tag als botsingsobject toe te wijzen.
In het instellingendialoog van de twee Dynamische Body-Tags als botsingsobjecten verminderen we de elasticiteit tot 20% en verhogen we de wrijving tot 120%. Zo springen de brokstukken niet ver omhoog en blijven ze ook zonder ver te glijden op de grond staan.
Interessanter wordt het bij de muur die door het Voronoi Bruch-object in brokstukken wordt verdeeld. Deze hebben een Dynamische Body-Tag nodig als star lichaam, die we aan het Voronoi Bruch-object toewijzen via het menu Tags>Simulatietags in de Object-Manager of met de rechtermuisknop via het contextmenu.
In de bijbehorende instellingendialoog stellen we eerst op de Dynamics-pagina met behulp van Trigger bij botsing ervoor dat de muur onbeschadigd blijft tot de eerste botsing met een bal.
De meest belangrijke parameter voor onze brokstukken vinden we op de botsing-pagina. Hier moet de instelling voor Individuele elementen op Alle staan, zodat de uit de muur gebroken stukken de dynamische eigenschappen behouden.
Een lage waarde voor de elasticiteit en een hoge waarde voor de wrijving moeten in samenwerking met de botsobjecten de brokstukken op de vloer houden.
Voor het beschieten van de muur heb ik een eenvoudig bal-object in de juiste maat klaargezet. Natuurlijk ben je vrij in het type en aantal werpobjecten.
We wijzen ons werpobject eenvoudigweg toe via het menu Tags>Simulatietags in de Object-manager of via het contextmenu met de rechtermuisknop, eveneens een Dynamics Body-Tag als Rigide Body.
Er zijn verschillende manieren om de bal in de muur te laten slaan. Met een Emitter zou je een echte hagel van ballen kunnen creëren, wat in ons geval echter wat overdreven zou zijn, aangezien een initiële duw in de positieve Z-richting voldoende is.
Deze duw kunnen we heel eenvoudig aan de bal geven via het instellingendialoog van het Dynamics Body-Tag op de Dynamics-pagina. Daar activeren we de optie Eigen startsnelheid en zetten we de Startsnelheid in de Z-richting op 1000 cm. Aangezien deze eerste bal de simulatie mag starten, laten we de Trigger op Onmiddellijk. Op de Botsing-pagina geven we vergelijkbare waarden voor elasticiteit en wrijving als al voor de brokstukken zijn ingesteld.
Als dat nog niet eerder is gebeurd, test dan de animatie van de bal die in de muur slaat door op de Afspeelknop te klikken. De bal veroorzaakt de eerste schade met onze Voronoi-brokstukken en rolt vervolgens weg in de richting van de camera.
Finetuning van het muur-materiaal
Voordat we de muur met meer ballen aanvallen, bekijken we een rendering vanuit het finale camerastandpunt iets nader. De brokstukken hebben allemaal een donkergrijs, betonachtig materiaal, dat ook op de vlakken van de breuklijnen doorloopt. Echter, het zou realistischer zijn als we op deze plekken een ander, lichter materiaal zouden gebruiken voor de binnenkant van de muur. Een ander, lichter materiaal voor de muur is al te vinden in de Materiaal-manager, nu moeten we alleen de binnenoppervlakken expliciet aanspreken met het materiaal.
Voor deze doeleinden biedt het Voronoi Breuk-object in zijn instellingsdialoog op de Selectie-pagina een reeks vaak benodigde vlakken, randen en punten van de brokstukken aan. Aangezien we de Binnenoppervlakken met een ander materiaal willen bedekken, activeren we precies deze Selectie voor onze brokstukken.
Met het activeren van de Binnenoppervlakken-Selectie krijgt het Voronoi Breuk-object een automatisch gegenereerd Selectie-Tag, waarin alle binnenoppervlakken van de brokstukken zijn opgeslagen. Nu is het eenvoudig om aan deze selectie een eigen textuur toe te wijzen.
Wijs aan het Muur-object onder het Voronoi Breuk-object het helderdere Muur-materiaal toe door slepen en neerzetten uit de Materiaal-manager naar de Object-manager. In het instellingendialoog van het resulterende Textuur-Tag sleept u vervolgens het Selectie-Tag uit de Object-manager naar het veld Selectie van het Textuur-Tag.
Een volgende rendering toont aan dat de brokstukken van de muur nu zoals gewenst verschillende materialen hebben voor de buitenzijde en de binnenoppervlakken.
Voltooien van de animatie met meer ballen
Nadat de eerste ballen zijn ingeslagen, schijnt het PSD-logo al een beetje door, maar voor volledige blootstelling van het logo zijn meer ballen nodig. Voor mijn voorbeeld heb ik door middel van slepen en neerzetten met ingedrukte Ctrl- of Ctrl--toets in de Object-manager twee duplicaten van de eerste bal gemaakt.
We zullen ons nu bezighouden met de dynamische eigenschappen van de ballen, eerst zullen we de twee ballen op gunstige posities voor de worpen plaatsen. Nadat de eerste bal in het onderste derde deel van de muur is gekomen, gaan we een behoorlijk stuk omhoog voor de andere twee ballen en verplaatsen ze een beetje in de X-richting.
Als we nu op de afspeelknop klikken, zullen alle ballen tegelijkertijd in beweging komen. Niet voor niets hebben we in het instellingendialoog van de Dynamics Body-Tag de Triggering ingesteld op Onmiddellijk. Om de ballen in plaats daarvan iets vertraagd af te vuren, activeren we eenvoudig de parameter Geactiveerd op de Dynamics-pagina voor ballen 2 en 3.
Zorg ervoor dat de groene tijdlijn op afbeelding 0 staat, deactiveer de Dynamics-optie en plaats vervolgens door op de Keyframe-knop te klikken vóór de parameter Geactiveerd een Key voor deze instelling. Alle andere parameters, met name de Startsnelheid, heb ik onveranderd overgenomen van de eerste bal naar de tweede bal.
Als tijdstip voor de start van de tweede bal en dus de activering van de Dynamics Body-Tag heb ik in een andere testrun afbeelding 100 gekozen.
In het instellingendialoog van de Dynamics Body-Tag van de tweede bal hoeven we alleen een vinkje te zetten bij de parameter Geactiveerd en deze instelling op te slaan door op de Keyframe-knop te klikken in een tweede Key.
De derde bal volgt zodra ook de tweede bal zijn werk heeft gedaan - in mijn geval bij afbeelding 180.
Voor de derde bal betekent dit: We hebben opnieuw een Keyframe nodig bij afbeelding 0 om de Dynamics gedeactiveerd te houden, totdat we bij afbeelding 180 opnieuw het vinkje bij Geactiveerd zetten en dit opslaan in een tweede Keyframe. In mijn voorbeeld heb ik voor de derde bal de Startsnelheid verhoogd naar 1500 cm, zodat de bal zijn doel, de resterende vrijlating van de PSD-vlinder, veilig bereikt.
Wat betreft het aantal, de grootte, positie en snelheid van de ballen, is uitgebreid testen een essentiële factor. Er is een lengte van 400 beelden ingesteld in de Project-instellingen - dit zou voldoende moeten zijn totdat ook het laatste breukstuk tot rust is gekomen. De animatie is nu voltooid.
Bakken van de simulatie
Als een simulatie - net zoals de onze net voltooide - afhankelijk is van het feit dat de MoGraph-elementen reproduceerbaar werken op alle computers of zelfs bij netwerkanimatie, ontkomen we er niet aan om de simulatie te bakken.
In het instellingendialoog van de Dynamics Body-Tag van de Voronoi breukmuur gaan we naar de Cache-pagina. Door te klikken op de knop Alles bakken zorgen we ervoor dat niet alleen de breukstukken, maar ook de ballen worden meegenomen bij het bakken van de simulatie.
Na een korte wachttijd ...
... is de simulatie reproduceerbaar gebakken. Dit kunnen we zien op de Cache-pagina bij het gebruikte geheugen, maar ook op de Dynamics-pagina bij de inactieve parameters. Dit wordt verzorgd door de optie Cachegegevens gebruiken, waarmee wordt gegarandeerd dat de simulatie uitsluitend via de cache wordt uitgevoerd.
Nu kunnen we veilig heen en weer scrollen met de groene tijdlijnregelaar op de tijdlijn, alle elementen van de MoGraph-simulatie nemen deel aan de consistentie animatie zonder opnieuw te hoeven berekenen.