För att vi ska kunna fokusera på arbetet med de nya funktionerna har jag förberett en projektfil i paketet med tillhörande material: PSD_R21_VektorVolumen_start.c4d. Den innehåller en parametrisk sfär- objekt och två partikel- emitter, riktade mot sfären uppifrån eller nerifrån. Målet med denna handledning är att de utströmmande partiklarna träffar sfären och sprider sig åt alla håll där.
Låt oss kort titta på scenens beståndsdelar. Båda partikel- emitterna har samma inställningar: De emitterar 500 partiklar fram till bild 300, med en partikels livslängd av 1000 bilder, vilket räcker till slutet av animationslängden.
En klick på play-knappen visar att partiklarna från båda emitterna för närvarande bara vandrar orörda igenom sfären. Det ska vi ändra på nu.
Uppbyggnaden av det första vektorfältet
Vi börjar med att generera ett första vektorfält från geometrin som den av sfären föreskrivit. Det ska vägleda de träffade partiklarna runt sfären med ett slumpmönster.
För detta hämtar vi först en volymgenerator från menyn Volym.
Därefter lägger vi till sfär- objektet genom att dra och släppa objektet i objekt-hanteraren som ett underobjekt i volymgeneratorn. För tillfället är volymtypen fortfarande angiven som avståndsfält, vilket gör att volymgeneratorn för närvarande bygger vår sfär av voxel.
För att istället göra sfären till ett vektorfält ändrar vi volymtypen till typen vektor via det respektive menyn enkelt.
Vi ändrar den något grova uppdelningen av vektorfältet genom voxelstorleken. En värde av 5 cm är tillräckligt för våra ändamål.
Vårt tidigare sfär- objekt har nu, tack vare volymmätaren, blivit ett radiellt fält av otaliga vektorer.
När vi zoomar in på vektorfältet ser vi de enskilda vektorerna, som alla står vinkelrätt mot positionen på sfärens yta. De resulterande krafterna pekar alltså bort från vår sfär. Inte riktigt det vi behöver för att dirigera partiklar runt sfären i olika riktningar.
Så vi måste ta hand om två saker: Vektorerna måste ligga parallellt med sfärens yta och också visa en slumpmönster, så att partiklarna på ytan omdirigeras i olika riktningar.
För slumpmönstret, ansvarar ett slumpfält, som vi hämtar från menyn Generera>Fält till vår scen.
Vi placerar slumpfältet genom att dra och släppa det i objekt-hanteraren som ett underobjekt i volymgeneratorn. I inställningsdialogen för volymgeneratorn visas slumpfältet sedan som ett lager ovanför vår sfär.
En titt i 3D-vyn visar att de två vektorfälten ännu inte fungerar som vi behöver det. Slumpfältet ska slutligen verka på vektorerna som tillhandahålls av sfären under den.
För att uppnå detta väljer vi inställningen för generationsutrymmet för slumpfältet till objekt innan.
Nu verkar slumpfältet som önskat på alla de vektorer som är tillhandahållna av sfären. Nu behöver vi bara se till att de kaotiskt snedvridna vektorerna visar längs sfärens yta.
Verkningsläget mellan slumpfältet och sfären verkar inte riktigt stämma ännu. Genom menyn Mode i objektlistan väljer vi för slumpfältet beräkningsmetoden Kors. Denna metod är exakt avsedd att med kryssproduktet bestämma vinkelrätt mot två beräknade vektorer.
Som en snabb titt på vår 3D-vy visar följer vektorerna i denna steg tangent till vår kula enligt önskemål.
Användning av kraftfält
Vi har nu förberett det första vektorfältet för partiklarnas bana runt kulan, men tyvärr märker partiklarna ännu inte av våra vektorer.
För att vektorerna från vårt egenproducerade fält ska fungera som krafter behöver vi ett så kallat kraftfälts-objekt. Det hittar vi i menyn Simulera > Krafter.
För att vårt vektorvolym ska agera som kraftfält, öppnar vi inställningsdialogen för kraftfältet och drar volymgeneratorn över objekt-hanteraren till fältet för objekt-innehavaren av kraftfältet genom dra och släpp.
Direkt när vi släpper kommer en liten meny upp där vi kan välja om volymgeneratorn ska behandlas som punk- eller volymobjekt. Vi väljer självklart alternativet volymobjekt.
Nu borde vår volymgenerator definierade vektorvolym finnas som ett alternativ i listan över kraftfält. Vi ser att även kraftfältet arbetar med lager och beräkningslägen, vilket antyder de nya möjligheterna som uppstått med kraftfälts-objektet.
När vi nu startar animationen med play-knappen ser vi att partiklarna påverkas av vårt vektorfält.
Det är ännu inte det önskade resultatet. För tillfället är alternativet att tillämpa hastighetstypen för att lägga till hastighet fortfarande aktiv i kraftfälts-objektet, vilket innebär att partiklarna bara dras åt sidan med lite extra fart. Vi vill dock att partiklarna ändrar sin riktning enligt vektorerna, vilket vi väljer i menyen hastighetstyp.
Efter denna ändring ser animationen redan bättre ut. Många partiklar söker redan sin väg längs ytan på kulan, medan några andra avleds från kulan. Dessutom märker vi att de avledda partiklarna följer mycket konstiga banor.
Det senare kan enkelt åtgärdas genom att i inställningsdialogen för kraftfällt-objektet välja volymgeneratorn i objektlistan och på fliken för lager-sidan ändra Provmodus från Närmaste till Linjär. Detta gör att det inte bara avrundas till närmaste voxel, utan att ett linjärt medelvärde används.
Efter denna ändring rör sig de partiklar som avleds från kulan redan betydligt friare. Nästa steg är att se till att även dessa partiklar förblir på ytan av kulan.
För att förhindra att banorna för de partiklar som går längs kulan blir för filigrana ökar vi storleken på det underliggande bruset i inställningsdialogen för slumpfältet. Naturligtvis kan var och en experimentera lite mer med inställningarna för slumpfältet.
När vi har valt slumpfälts-objektet kan vi interaktivt ändra parametern storlek i 3D-vyn. Jag har valt en storlek på 300 % för att göra bruset tydligare i vektorerna.
Bygga det andra vektorfältet
Som namnet på vår kula-objekt "Kula inuti" redan antyder från början ska det förutom det nyss färdigställda vektorfältet för den inre kulan också finnas ett andra vektorfält för en yttre kula. Denna andra, något större kula ska se till att eventuellt reflekterade partiklar skickas tillbaka till ytan på den inre kulan.
För att göra detta duplicerar vi kula-objektet genom att dra med Ctrl-tangenten nedtryckt i objekt-hanteraren, behåller det som underobjekt till volymgeneratorn och kallar det "utomhus" för att kunna skilja de två kulorna åt. Vi ger också denna yttre kula en radius som är 2 cm större för att ge plats åt partiklar att rör sig.
Volymgeneratorn har också genererat det motsvarande vektorfältet från den yttre kulan och lagt till det i de redan befintliga objekten.
I listan över objekt i inställningsdialogen för volymgeneratorn står nu den yttre kulan överst och skulle behandlas sist. Men vi vill att den yttre kulan först ska trängas igenom av partiklarna och sedan inte släppa ut partiklarna längre.
Låt oss därför ordna lite i objektlistan. Först flyttar vi "yttre kulan" till det sista stället i ordningen. Eftersom "slumpfältet" verkar på den underliggande "inre kulan" men ska behandlas direkt efter "yttre kulan", skapar vi enkelt en mapp där vi kan flytta slumpfältet och den inre kulan. Klicka på mappknappen under objektlistan för att skapa en mapp.
Nu flyttar vi slumpfältet och den inre kulan från objektlistan för volymgeneratorn till denna nya mapp genom dra och släpp.
Eftersom den yttre kulan, vars vektorer är vinkelräta mot kulkonturen, agerar först, reflekteras partiklar som träffar ytan helt just nu. För att vända på vektorfältet för den yttre kulan använder vi en volymfilter, av vilka vi har flera tillgängliga för arbete med vektorer. Vi hittar volymfiltermenyn under objektlistan och väljer "Invertera vektor" från den.
Eftersom vi vill att volymfiltret ska verka enbart på vektorerna för den yttre kulan, placerar vi det direkt ovanför "yttre kulan" genom dra och släpp.
Allt borde nu fungera som önskat. När du klickar på avspelningsknappen, ser du att alla vektorfält är korrekt inställda. Partiklarna träffar kulan och fördelar sig slumpmässigt över ytan.
Vi kan ge partikelflödena lite mer liv genom att animera brusmönstret för slumpfältet.
Öppna inställningsdialogen för slumpfältet och ställ in en start hastighet, i mitt exempel 50 %.
Partikelflödena blir nu kortare med det animerade brusmönstret, de bryts isär på fler ställen.
Omvandla partiklarna till splinebanor
Att skicka vilket som helst - helst små - objekt på en resa över kulan från partiklar är nu möjligt. Ett alternativ är att automatiskt rita om partikelvägarna och konvertera dem till splinebanor. För detta behöver vi "Tracer" -objektet från "MoGraph" -menyn.
För att konvertera partikelflödena från båda emitterna till splinebanor drar vi de båda emitterobjekten genom drag och släpp till fältet "Tracer Connection" i inställningsdialogen för "Tracer"-objektet.
Eftersom emitterna med tiden skickar ut en hel del partiklar, begränsar vi längden på splinebanorna genererade av "Tracer". I inställningsdialogen för "Tracer"-objektet väljer vi "slutet ..." som "gräns".
... och ställer in längden på splinebanorna via parameter "Bilder". Jag har valt en längd på 100 bilder. Lägre värden resulterar i kortare splinebanor.
Efter att ha klickat på avspelningsknappen kan vi nu se hur splinebanorna genererade av "Tracer" rör sig över kulan yta på ett animerat sätt.
För omslagsbilden till den här handledningen har jag skapat en kopia av kulaobjektet och gett den en röd färg. Med undantag för "Tracer"-objektet kan vi inaktivera synligheten för alla andra objekt i "Object" -hanteraren.
För att skapa tredimensionella objekt från spline-banorna som genereras av Tracer-objektet kan ni exempelvis underordna Tracer--objektet tillsammans med en Cirkel--objekt ett Sweep--objekt. Se dock till att vara uppmärksam på antalet partiklar och deras livslängd, annars kan datorn snabbt gå ner i knä …