For at kunne fokusere på arbejdet med de nye funktioner, har jeg forberedt en projektfil i pakken med de tilhørende materialer: PSD_R21_VektorVolumen_start.c4d. Den indeholder et parametrisk kugle-objekt og to partikel-emittere rettet mod kuglen fra henholdsvis oven og neden. Formålet med denne vejledning er, at de udsendte partikler rammer kuglen og spreder sig i alle retninger derfra.
Lad os kort se på scenens bestanddele. Begge partikel-emittere har de samme indstillinger: De udsender 500 partikler indtil billede 300, hvor partiklernes levetid er 1000 billeder, hvilket strækker sig til slutningen af animationslængden.
Når du klikker på afspilningsknappen, kan du se, at partiklerne fra begge emittere i øjeblikket går uhindret gennem kuglen. Det vil vi gerne ændre på nu.
Opbygning af det første vektorfelt
Vi begynder med at generere et første vektorfelt ud fra geometrien, som kuglen angiver. Det skal guide de påvirkede partikler rundt om kuglen ved hjælp af et tilfældighedsmønster.
For at gøre dette henter vi først en volumgenerator fra menuen Volumen.
Derefter placerer vi kugle-objektet ved at trække det over Objekt-Manageren som et underobjekt i volumgeneratoren. I øjeblikket er volumtypen stadig angivet som afstandsfelt, så generatoren konverterer vores kugle til voxler for øjeblikket.
For at omdanne kuglen til et vektorfelt ændrer vi blot volumtypen til typen vektor via den tilhørende menu.
Vi ændrer nu den lidt grove opdeling af vektorfeltet ved hjælp af voxelstørrelsen. En værdi på 5 cm er mere end tilstrækkeligt til vores formål.
Vores tidligere kugle-objekt er nu blevet til et radikalt felt af utallige vektorer takket være volumensmesheren.
Når vi zoomer ind på vektorfeltet, kan vi se de enkelte vektorer, som alle står vinkelret på positionen på kuglens overflade. De resulterende kræfter peger altså væk fra vores kugle. Ikke lige det, vi har brug for til at omdirigere partiklerne rundt om kuglen.
Vi skal derfor tage os af to ting: Vektorerne skal være parallelle med kuglens overflade og desuden have et tilfældighedsmønster, så partiklerne på overfladen ledes i forskellige retninger.
Et tilfældighedsfelt sørger for dette, som vi henter ind i vores scene via menuen Opret>Felt.
Vi placerer tilfældighedsfeltet ved at trække det over Objekt-Manageren som et underobjekt i volumgeneratoren. I indstillingsdialogen for volumengeneratoren vises tilfældighedsfeltet derefter som et lag over vores kugle.
En kig på 3D-visningen viser, at de to vektorfelter endnu ikke fungerer helt, som vi har brug for det. Tilfældighedsfeltet skal således virke på vektorerne-kuglen, der ligger under den i listen.
For at opnå dette vælger vi indstillingen Objekter foran for tildannelsesområdet af tilfældighedsfeltet i listen over objekter i volumgeneratoren.
Nu virker tilfældighedsfeltet som ønsket på alle vektorerne, der er leveret af kuglen. Nu skal vi blot sørge for, at de kaotisk drejede vektorer peger langs kuglens overflade.
Så verifikationsmetoden for tilfældighedsfeltet og kuglen synes stadig ikke helt at passe. Vi vælger metoden Kryds i Metode-menuen i objektlisten til tilfældighedsfeltet, da denne metode er designet til at bestemme vinkelretningen på to vektorer, der krydses.
Som en kig på vores 3D-visning viser, løber vektorerne efter dette trin tangentielt om vores kugle, som ønsket.
Anvendelse af kraftfeltet
Vi har nu forberedt det første vektorfelt til partiklernes vej omkring kuglen, men desværre tager partiklerne endnu ikke notits af vores vektorer.
For at vores eget genererede felts vektorer kan fungere som kræfter, har vi brug for et såkaldt kraftfelt-objekt. Vi finder det i menuen Simulér>Kræfter.
For at vores vektorvolumen kan virke som kraftfelt, åbner vi indstillingsdialogen for kraftfeltet og trækker volumenerzeugeren over Objektmanageren ind i objekt-feltet på kraftfelt-objektet ved at trække den med musen.
Ved slipning bliver vi spurgt via en lille valgmenu, om volumenerzeugeren skal behandles som punkt- eller volumenobjekt. Vi vælger naturligvis muligheden volumenobjekt.
Nu skal vores af volumenerzeugeren definerede vektorvolumen være en post på kraftfeltdelen. Som vi kan se, arbejder kraftfeltet også med lag og beregningsmetoder, hvilket giver en idé om de muligheder, der er opstået med kraftfelt-objektet.
Når vi starter animationen ved at trykke på afspilknappen, kan vi se, at partiklerne nu bliver påvirket af vores vektorfelt.
Dette er stadig ikke det ønskede resultat. På nuværende tidspunkt er speed type Add to velocity stadig aktiveret i kraftfelt-objektet, så partiklerne styres kun med lidt mere momentum. Vi vil dog have, at partiklerne ændrer deres retning i overensstemmelse med vektorerne, hvilket vi vælger i menuen speed type.
Efter denne ændring ser animationen allerede bedre ud. Mange partikler finder allerede vej over kugleoverfladen, men nogle bliver afvist fra kuglen. Det bemærkes også, at disse afviste partikler bevæger sig på meget mærkelige baner.
Dette problem kan løses meget nemt ved at vælge sampelmodus fra næste til lineær under indstillingerne for kraftfelt-objektet i objektlisterne og indstillingerne på niveau-siden. Dette betyder, at nærmeste voxel ikke blot afrundes, men en lineær gennemsnitsværdi bruges.
Efter denne ændring bevæger de afviste partikler sig allerede meget mere frit omkring kuglen. Nu sørger vi også for, at disse partikler forbliver på kugleoverfladen.
For at forhindre banerne for partikler, der løber på kugleoverfladen, bliver alt for filigran, øger vi størrelsen af den underliggende støj i indstillingsdialogen for tilfældig felt. Selvfølgelig er det tilladt at eksperimentere lidt mere med indstillingerne for det tilfældige felt.
Når vi har valgt tilfældig-felt-objektet, kan vi interaktivt ændre parameteren størrelse i 3D-visningen. Jeg har valgt en størrelse på 300%, så støjen er tydeligt synlig i vektorerne.
Oprettelse af det andet vektorfelt
Som navnet på vores kugleobjekt "Kugel innen" allerede antyder fra begyndelsen, skal der udover det netop færdiggjorte vektorfelt til den indre kugle også være et andet vektorfelt til en ydre kugle. Denne anden, lidt større kugle skal sikre, at eventuelt reflekterede partikler igen sendes tilbage til overfladen af den indre kugle.
Vi duplicerer derfor kugleobjektet ved at trække det med trykket Ctrl-tasten i Objektmanageren, beholder det som et underobjekt af volumenerzeugeren og giver det tillægget "udenfor" for at kunne adskille begge kugler. Denne ydre kugle giver vi også en radius, der er 2 cm større, for at give plads til partiklerne.
Volumegeneratoren har også genereret det tilsvarende vektorfelt fra den ydre kugle og tilføjet det til de allerede eksisterende objekter.
I listen over objekter i konfigurationsdialogen for volumegeneratoren står den ydre kugle nu øverst og vil blive behandlet som den sidste. Men vi ønsker, at den ydre kugle først bliver gennemboret af partiklerne og derefter ikke længere frigiver partiklerne.
Lad os derfor skabe lidt orden i objekt-listen. Først flytter vi "yderkuglen" ned til den nederste position i rækkefølgen. Da tilfældigt felt virker på kuglen lige under den, men skal behandles lige efter "yderkuglen", opretter vi simpelthen en mappe, hvor vi kan flytte tilfældigt feltet og den indre kugle. For at gøre dette klikker vi på mappe-knappen under objekt-listen.
Derefter flytter vi tilfældigt feltet og den indre kugle fra objekt-listen for volumegeneratoren til denne nye mappe ved at trække og slippe.
Da den ydre kugle, hvis vektorer står vinkelret på kuglens overflade, virker først, reflekteres partikler, der rammer den, fuldstændigt i øjeblikket. For at vende vektorfeltet for den ydre kugle bruger vi en volumenfilter, hvoraf der også er nogle til rådighed til at arbejde med vektorer. Vi finder volumenfilter-menuen under objekt-listen og vælger Inverter vektor-filteret.
Da vi gerne vil have, at volumenfilteret kun virker på vektorerne for den ydre kugle, placere vi det ved at trække og slippe direkte over "yderkuglen".
Nu burde alt fungere som ønsket. Et klik på afspilningsknappen viser, at alle vektorfelter er indstillet korrekt. Partiklerne rammer kuglen og distribueres tilfældigt over overfladen.
Vi kan tilføje lidt mere liv til partikelstrømmene ved at animere støj-mønstret for det tilfældige felt.
For at gøre dette åbner vi konfigurationsdialogen for det tilfældige felt og angiver en starthastighed, i mit eksempel 50 %.
Partikelstrømmene vil nu bryde op på flere steder på grund af det animerede støj-mønster.
Omdannelse af partikler til spline-stier
Da partiklerne nu kan sende ethvert – helst lille – objekt på rejse over kuglens overflade, er en alternativ løsning at lade partiklernes ruter automatisk blive spor og omdannet til spline-stier. Til dette har vi brug for Tracer-objektet fra MoGraph-menuen.
For at omdanne partikelstrømmene fra begge udløsere til spline-stier trækker vi begge udløser-objekterne ved at trække og slippe dem over Objekt-manageren ind i feltet Tracer tilknytning i konfigurationsdialogen for Tracer-objektet.
Da udløserne over tid udsender en hel del partikler, begrænser vi længden af spline-stierne genereret af Tracer. I konfigurationsdialogen for Tracer-objektet vælger vi Ende … som Grænse ...
… og angiver over parameteren Billeder længden af spline-stierne. Jeg har valgt en Længde på 100 billeder. Lavere værdier resulterer i tilsvarende kortere spline-stier.
Efter et klik på afspilningsknappen kan vi nu se, hvordan de af Tracer genererede spline-stier animeret trækker over kuglens overflade.
For at lave startbilledet til denne vejledning har jeg oprettet en kopi af kugleobjektet og givet det en rød farve. Med undtagelse af Tracer-objektet kan vi deaktivere synligheden for alle andre objekter i Objekt-manageren.
For at generere tredimensionelle objekter fra spline-stierne genereret af Tracer-objektet, kan I for eksempel underordne Tracer-objektet sammen med en Cirkel-objekt til en Sweep-objekt. Men vær opmærksom på antallet af partikler og deres levetid, da computeren ellers meget hurtigt vil komme til kort...