For å kunne fokusere helt på arbeidet med Dynamics og MoGraph, finner du alle andre elementer i scenen i arbeidsfilen "PSD_C4D_R12_Dyn_RigidB_Konnektorer_Start.c4d".
En trevinget spaker og et kuleobjekt bør være tilstrekkelig; resten tar vi oss av med MoGraph-cloning og en Partikkel-emitter.
Oppbygging av scenen med MoGraph-kloning
De tre viktigste objektene i scenen vår er kulen, spaken og den skrå flaten der kulene senere skal rulle nedover. Med unntak av spakvingene, har alle objektene allerede en Materiale. Om ønskelig kan scenen tilpasses med andre materialer etter ens eget ønske.
Vi bruker en enkel, parametrisk kulemodell for kulene som senere skal klones. Radiusen på 7 cm passer til vår spake og flaten, der nederste kant skal prøve å fange opp kulene så godt som mulig.
Spaken opprettes ved extrudering av en blomst-splinesmodell med en Extrude-NURBS-generator. Antallet blader på spaken er redusert tilsvarende. Den indre radiusen er akkurat stor nok til at den innstikkede aksen (en enkel Sylinder-modell) har tilstrekkelig plass.
Om ønskelig kan man gjerne eksperimentere med fire eller til og med fem spakeblader.
Extrude-NURBS-generatoren gir den tredimensjonale formen til den gitte blomst-splinesmodellen. Dybden til spaken defineres gjennom forflytningsparameteren.
Over spaken finner vi det nevnte Sylinder-objektet. Senere vil dette fungere som rotasjonsakse for spaken i Dynamics.
Så kommer vi til flaten, som egentlig også er et Extrude-NURBS-objekt, som forvandler en angitt splinesbane (i dette tilfellet en L-splinesmodell) til et tredimensjonalt objekt gjennom extrudering.
Dette er oppbygningen av startscenen. Vi begynner med spakene og bruker MoGraph for å få nok kopier eller Kloner for flaten vår.
Vi lager et Klon-objekt fra MoGraph-menyen.
I innstillingsdialogen til klon-objektet setter vi først modus til Grid.
I de tilhørende parameterne kan vi nå angi antall kloner og størrelsen på det resulterende gridet. Siden gridet skal bestå av et lag i x-retning, lar vi denne antallet kopier stå på 1, mens vi lager 6 eller 5 kloner i y-retning i de viste dimensjonene.
For at klon-objektet skal vite hvilke objekter det skal duplisere, legger vi hele hierarkiet til spaken i Object Manager som underobjekt inn i klon-objektet. Som ønsket produserer klon-objektet spakene i den rutenettformede disposisjonen.
Nå plasserer vi de klonede spakene på flaten. Siden rotasjonsvinkelen til flaten er 40°, tar vi denne verdien også for klon-objektet, her som bankingsvinkel på -40°.
For å plassere klonerutenettet med spakene nøyaktig på flaten, er det best å bytte til sidevisning, aktivere global akselretting og flytte spakene langs sin aksel nær flaten. Fordi aksen til spakene stikker litt ut bakover, kan den lett synke ned i flaten.
Dermed er spakene installert og kan gå tilbake som underobjekt i "rutschegroupen." Det som er irriterende for øyeblikket, er den altfor perfekte, helt like orienteringen av spakene. For å avslutte denne monotoni, integrerer vi en tilfeldighets-effektor.
Vi finner den i menyen MoGraph>Effektorer og legger den til i scenen vår. Hvis vi velger Klon-Objektet i Objekt-Manager før vi kaller opp Zufalls-Effektoren, vil dette Klon-objektet automatisk tilordne Effektoren.
I innstillingsdialogen til Zufalls-Effektoren justerer vi først på den tilfeldige Rotasjonen av snurrehjulene. Vi åpner Transformering-feltet i Parametere-området og aktiverer alternativet Vinkel for Transformasjonen. For å rotere snurrehjulene rundt sin pitching-vinkel, angir vi en verdi her. En vinkel på 60° gir tilstrekkelig spillerom for rotasjonen av snurrehjulene.
Etterpå ønsker vi å bruke Zufalls-Effektoren for fargen på snurrehjulene i deres Materiale. Vi åpner også Farge-feltet og aktiverer Fargemodusen. Vi kan eksperimentere med tilfeldige verdier med Startverdien i Zufalls-Effektoren. Mer informasjon om dette senere.
I Editor-visningen er endringene som Effektoren gjør vanligvis umiddelbart synlige. Forutsatt at Zufalls-Effektoren ble tilordnet Klon-Objektet riktig ved opprettelsen. Hvis ikke, kan vi raskt gjøre dette i innstillingsdialogen til Klon-Objektet under Effektorer-delen. Fra Objekt-Manageren drar vi inn alle Effektorer som skal virke på eller tillates på Klon-Objektet.
For å sprite opp scenen litt lar vi snurrehjulene bli fargerike. Zufalls-Effektoren vil spare oss mye arbeid. Først oppretter vi et Nytt Materiale, enten via den tilsvarende menykommandoen i Materiale-Manageren eller ved å dobbeltklikke på et tomt område i Manageren.
For at Zufalls-Effektoren skal påvirke fargen i Fargekanalen, legger vi til en Farge-Shader fra MoGraph-undermenyen i teksturmenyen.
Etter å ha klikket på knappen til Farge-Shaderen befinner vi oss i den ganske oversiktlige innstillingsdialogen for Farge-Shaderen. Her forsikrer vi oss om at alternativet Farve er valgt for Kanalen.
Nå gjenstår det bare å tilordne Materialet til snurrehjulene til Extrude-NURBS-Objektet til vingen. Vi drar det fra Materiale-Manageren til fløyelsobjektet til snurrehjulene i Objekt-Manageren. Hvis fargekombinasjonen for snurrehjulene fortsatt ikke er optimal, kan vi endre Startverdien-parameteren i Zufalls-Effektoren til vi er fornøyde med de tilfeldig valgte fargene.
Oppbygging av dynamikksystemet med kollisjonsobjekter og stive kropper
Nå er scenen forberedt slik at vi kan inkludere elementene som deltar i Simuleringen i et dynamikksystem. La oss begynne med de rene Kollisjonsobjekter, altså objekter som planet og bakken, som ikke er dynamiske, men kun er involvert i kollisjonsoppdagelsen i systemet.
Gjennom menyen Simulering>Dynamics definerer vi begge som Kollisjonsobjekter ved å bruke kommandoen Opprett kollisjonsobjekt.
Ved å bruke kommandoen fikk de valgte objektene en Dynamisk Kropp Tag tildelt, der den dynamiske funksjonaliteten allerede er deaktivert for oss, og kollisjonsoppdagelsen er aktivert. I Kollisjons-delen setter vi Elastisiteten og Friksjonen til henholdsvis 30%, slik at de kolliderte kulene ikke utilsiktet spretter oppover, men heller ruller sakte ut.
Situasjonen er litt annerledes med det andre Kollisjonsobjektet, sklieplanet. Her trenger vi Statisk Mesh som kollisjonsform i Kollisjons-delen. På grunn av L-konturen til sklieplanet er det garantert at formen på objektet brukes korrekt for kollisjonsberegningen. Verdien for Friksjonen kan være litt høyere for planet, slik at kulene ikke ruller for fort gjennom snurrehjulbanen senere.
I motsetning til de rene Kollisjonsobjektene deltar snurrehjulene aktivt i den dynamiske hendelsen. Da de samtidig er stive (rigide) kropper, definerer vi dem som Stive Kropper. Vi velger fløyelsobjektet fra hierarkiet til klonstrukturen og definerer det som Stiv Kropp via kommandoen Opprett Stiv Kropp fra menyen Simulering>Dynamics.
Også oppførselen til spinnerne ved kollisjon oppfører seg annerledes. For å unngå uønsket uro i klonnet-nettet før en faktisk kollisjon, setter vi dynamiske egenskaper til når kollisjonen oppstår i innstillingsdialogen til dynamikk-kroppstaggene.
På kollisjons-siden handler det om detaljjustering av kollisjonsegenskapene. Her sørger innstillingen automatisk som kollisjonsform for at den nødvendige optimale kollisjonsskallet brukes for den spesielle formen på spinnerne. For å forhindre at de treffende kulene spretter langt unna etter kollisjonen, reduserer vi elastisiteten til 20%. Den høye glatthetsverdien på 80% sørger også for at kulene mister energi ved hver berøring med spinnerne.
Å bruke en eget masse er alltid anbefalt når man må tilpasse kolliderende objekter med ulik masse til hverandre. Siden kulene og spinnerne ikke er veldig forskjellige i størrelse, men veldig forskjellige i masse, oppgir vi her en eget masse på 8. 80% rotasjonsmasse sørger for at spinnerne lar seg dreie litt lettere.
For å ha enda mer innvirkning på den dominerende energien og for å få simuleringen til å roe seg innen rimelig tid, demper vi kraftene som er til stede på spinnene ytterligere.
På kraft-siden av innstillingsdialogen får spinnerne tildelt en lineær demping på 60% og en demping av rotasjon på 80%. Til tross for kraftig kollisjon av kulene, vil spinneene dermed relativt raskt roe seg ned igjen.
Funksjonell utvidelse av spinner med koblepunkter
Hvis vi starter simuleringen ved å klikke på avspillingsknappen, vil spinnerne falle og skli lydløst nedover planet ved den første kollisjonen. Selv om de ser ut til å være optisk satt fast i planet med akselen, spiller ikke akslene noen rolle i simuleringen vår. For å opprette et forbindelse mellom de roterende vingene på spinnerne med aksen, bruker vi de såkalte koblepunktene. Du finner dem i menyen Simulering>Dynamics.
Prinsipielt er det likegyldig for koblepunktet hvor det er plassert i elementene eller hierarkiene i Objekt-Manager. Men for å opprettholde logikken i scenen vår, kombinerer vi den funksjonelt riktig med sylinder-objektet til aksen. For å få bedre oversikt over integrasjonen av koblepunktet, deaktiverer vi midlertidig produksjonen av kloner via Objekt-Manageren.
Hvis koblepunktet skal fungere som en dreieaksel, må det opprinnelig ha riktig posisjon og retning, i vårt tilfelle koordinatene og vinkelene til den sylindriske aksen. Prosessen forenkles av kommandoen overføre fra menyen funksjoner, som vi kaller når koblepunktet er valgt.
I innstillingsdialogen til overføre-verktøyet oppgir vi først sylinder-objektet til aksen som dataprodusent. Vi drar det fra Objekt-Manageren til det tilsvarende feltet overføring fra. Siden vi vil justere fininnstillingen direkte på koblepunktet selv, lar vi alle parametrene på dette tidspunktet overføres ved å klikke på knappen Tildele.
Vi velger koblepunktet via Objekt-Manageren og justerer retningen mot spinneren. Som vist på bildet nedenfor, må heading-vinkelen dreies med -90° og pitching-vinkelen (i henhold til skråningen av planet) dreies med 40°. På visning-siden kan vi redusere størrelsen på koblepunktet for at det passer bedre til spinneren.
Den faktiske funksjonaliteten til koblepunktet definerer vi på objekt-siden av innstillingsdialogen. Typen hengsel holder de tilkoblede objektene ved aksen og tillater bare rotasjon rundt den angitte referanseaksen. Siden eksempelet vårt med vinge og aksel har samme akse, kunne vi vært mer sparsomme, men det er nyttig for orienteringen, spesielt i mer komplekse scener, å arbeide så nøyaktig som mulig for å kunne følge alt senere også.
Som objekt A for forbindelsen drar vi aksen-objektet fra Objekt-Manageren til det angitte feltet. Siden bevegelsen skal skje rundt X-aksen, velger vi denne aksen som referanseakse. Som objekt B brukes vinge-objektet med samme referanseakse. Mer må ikke tas i betraktning på dette stadiet for koblepunktet.
Etter at vi har tatt oss av den faktiske funksjonen til konnektoren, plasserer vi den som en underenhet av akselen til dreiehjulet. Siden akselen funksjonelt er koblet til vingehjulet gjennom konnektoren, er konnektoren godt plassert her.
Generering av dynamiske kuler med partikelsystemet
Spilletøyet er fullt utstyrt og funksjonelt, nå trenger vi bare kuler med dynamiske egenskaper som vi kan slippe løs på det. Vi har allerede en kule i scenen. For at spilletøyet skal fungere skikkelig, lar vi imidlertid flere kuler bli skutt ut fra en partikkelutskyter. Men først gir vi kulen de ønskede dynamiske egenskapene, slik at den i det hele tatt kan delta i simuleringen.
For dette trenger kulen en dynamikk kropp-tag med aktiverte dynamiske egenskaper. Dermed tildeler vi kuleobjektet det passende taget via kommandoen Lag stiv kropp fra menyen Simulering>Dynamikk.
I innstillingsdialogen til dynamikk kropp-taggen finner vi de grunnleggende egenskapene samlet på dynamikk-siden. Her setter vi oppløsningen til Øyeblikkelig, slik at kulene kan begynne å handle umiddelbart etter at de vises i scenen.
Vi retter oppmerksomheten mot kollisjonsegenskapene på kollisjons-siden. En kule utgjør ingen problemer ved kollisjonsberegningen; her fungerer automatisk deteksjon. Elastisiteten og friksjonen til kulen forblir innenfor middels verdier. Hvis kulene senere kolliderer med hverandre, vil de også sprette mindre på grunn av dette. Innstillingene på masse-siden er interessante i forhold til innstillingene for dreiehjulene. Der hadde vi en egen masse på 8. For at kulene ikke skal slå for kraftig og tungt mot dreiehjulene og forstyrre systemet, settes massen til kulen til omtrent 5.
For at kulene (analogt med dreiehjulene) også skal komme relativt raskt til ro etter passasjen, gir vi dem demping på kraft-siden. For både lineær demping og rotasjonsdemping holder det med en verdi på 20 %, slik at kulene ikke ruller for langt unna.
Nå har kulen fått sine dynamiske egenskaper, men den står fortsatt alene. For å produsere flere kuler av samme type, bruker vi dem som partikler i et partikelsystem. For dette trenger vi et utskytnings-objekt som genererer og sender ut kulepartiklene. Vi finner det i paletten for partikelsystem-objekter.
I innstillingsdialogen for partikkelutskyteren kan vi nøyaktig bestemme hvor mange kuler som skal produseres, fra hvilken posisjon og innen hvilken tid. For at spilletøyet ikke skal overbelastes, har jeg valgt en fødselsrate på to partikler (per sekund). Utskytningen av kulene startes umiddelbart og avsluttes etter åtte sekunder, altså ved bilde 200. En tilstrekkelig høy levetid for partiklene er viktig, slik at kulene ikke forsvinner fra scenen for tidlig.
På utskytnings-siden av innstillingsdialogen bestemmer vi formen og størrelsen på utskyteren. Fordi de utskutte kulene skal dra nytte av nesten hele bredden på spilletøyet, bruker vi en X-lengde på 145 cm. De smale 10 cm i Y-retning garanterer at kulene blir skutt ut nesten horisontalt og ikke faller ned fra for høyt.
Vi plasserer nå den ferdige partikkelutskyteren over kanten av spilletøyet via redaktør-visningen eller via koordinatbehandleren. Ved all retting bør det legges merke til at partiklene blir skutt ut i retning av Z-aksen.
For å tildele kulen som partikkel til partikkelutskyteren, plasserer vi den enkelt under den via objektbehandleren. Den faktiske kuleobjektet er nå borte fra redaktør-visningen og vises kun som utskutte partikler.
Globale dynamikkinnstillinger
Standardinnstillingen i CINEMA 4D er en gravitasjonskraft lik jordens; disse og flere innstillinger finner vi i dokument-forhåndsinnstillingene på dynamikk-siden.
På ekspert-siden kan noen standardverdier endres for å spesifikt justere kollisjonsdeteksjonen bedre for elementene som er involvert i simuleringen. I vårt tilfelle er det fornuftig å redusere skaleringen til 10 cm og holde kollisjonstoleransen så lav som mulig.
Med dette er alle forberedelser og innstillinger gjort, slik at vi med et klikk på avspillingsknappen kan starte Dynamics-simuleringen.
Med dette ferdige eksempelet kan virkningene av Dynamics-egenskapene studeres på en veldig fin måte. Med andre masse-, friksjons- eller dempingsverdier i de enkelte Dynamics Body Tags, får elementene veldig raskt helt andre egenskaper.
Ha det gøy med eksperimenteringen!