I vårt eksempel skal antennene eller sensorene til alien-karakteren bevege seg dynamisk og elastisk med hver bevegelse av hodet. Selvfølgelig kan vårt eksempel også brukes på hårlokker, dinosaurhaler og mye mer.
I arbeidsfilen "PSD_C4D_R12_IK_Dyn_Start.c4d" finner du det modellerte og teksturerte alien-hodet du kan jobbe med.
Oppbygging av leddstrukturen
Vårt alien-hode består delvis av polygonal hod-geometri, og delvis av to kule-objekter for øynene. Videre vil vi enten hierarkisk eller ved å vekte til ledd binde alle objekter sammen, slik at hele hodet med antennene kan animeres problemfritt.
La oss begynne oppbyggingen av leddstrukturen med et første ledd-objekt for hodet. Du finner det i menyen Character.
Siden alien-hodet er nøyaktig plassert på koordinatsystemets opprinnelse, kan leddleddet forbli på nullposisjonen.
Vi holder det nystartede ledd-objektet valgt og aktiverer leddverktøyet i Characters meny. I innstillingsdialogen til leddverktøyet deaktiverer vi opprettelsen av et overordnet rot-nullet-objekt. Vi vil senere lage dette selv for å bedre forstå hvilken funksjon det har i en leddstruktur.
Slik at vi kan jobbe symmetrisk, åpner vi symmetriområdet og bruker tegningsalternativet på verdens-YZ-planet. På dette planet, eller i dette synet, vil vi tegne leddene.
Når vi nå klikker med aktivert leddverktøy og holdt nede Ctrl-tasten i visningen, vil ledd underordnet til hodet automatisk og symmetrisk skapes.
Vi velger en av de to sensorene eller antennene og setter det første underleddet rett på bunnen av sensoren mot hodet. CINEMA 4D setter automatisk inn leddet for den andre sensoren takket være aktivert symmetri.
Vi oppretter nå leddkjeder ved å trykke og holde nede Ctrl-tasten på de posisjonene vist i illustrasjonen. Der det blir mer detaljert, bør leddene også ligge litt nærmere hverandre. Vi bør ikke spare på antall ledd, for det er bare ved disse leddene deformasjonen eller bøyingen av geometrien kan skje i det hele tatt.
Når vi har opprettet alle leddene, finner vi i objektbehandleren leddhierarkiet vist i illustrasjonen. Hodeleddobjektet har totalt to leddkjeder som underobjekter - en kjede for hver sensor eller antenne.
For å justere posisjonen til leddene parvis i sidevisningen, velger vi et leddpar i objektbehandleren og flytter leddene langs sin z-akse i geometrien.
Leddstrukturen for å animere sensorene eller antennene ville dermed allerede være ferdig. Dessverre har den imidlertid ennå ikke noe forhold til vårt alien-hode som ville tillate oss å animere hodet.
Dette er bare mulig når vi har bundet leddstrukturen sammen med geometrien. For å gjøre dette velger vi først alle leddobjektene og polygonobjektet til aliengeometrien via objektbehandleren.
Koblingen mellom leddhierarkiet og polygon-nettet skapes for oss av kommandoen Binde i menyen Character>Kommandoer.
Hva har Bind-kommandoen oppnådd? Polygon-objektet til aliengeometrien har nå en vektningsetikett, der alle leddobjekter er samlet i innstillingsdialogen, som kan påvirke geometrien til alien-hodet. Denne automatiske vektingen følger posisjonen til leddene i forhold til geometrien og er en god utgangsbasis.
Vekting av leddene
Denne vektingen er imidlertid sjelden perfekt; litt etterarbeid er nødvendig. For å få en følelse av fordelingen av vekter, deaktiverer vi først funksjonen til HyperNURBS-buret via objektbehandleren. Vektingsverktøyet viser vektingen på geometrien med et uglettet polygonnett. For en generell oversikt, velger vi først alle leddobjekter med geometrien i objektbehandleren.
Vi finner Vektingsverktøyet i menyen Character. Etter at vi har aktivert det, begynner geometrien til alienhodet å fargelegges. Hver Joint har sin egen farge som viser dens påvirkning på geometrien.
For å kunne vurdere Joints og deres påvirkning på geometrien individuelt, trenger vi bare å velge den aktuelle Jointen i Objekt-Manageren. Områdene av geometrien som ikke påvirkes av denne Jointen forblir svarte.
Vi legger merke til at nesespissen ikke er 100% i Joint-fargen på hodet. Med Vektingsverktøyet kan vi forhindre eventuelle deformasjonsfeil ved å øke vektingen for den aktuelle Jointen målrettet med Vektingspenselen.
Også ved overgangene til tentakler eller antenner er det for mye påvirkning på hodets geometri. For å redusere nærliggende Vektinger, bruker vi Vektingsverktøyet mens vi holder nede Ctrl-tasten for å redusere vektingen.
Ved avslutningen av vektingsarbeidet anbefales det å velge alle Joints på nytt via Objekt-Manageren, sette Visning av vektingsfargen til Ensfarget og kontrollere om all geometrien har en vekting. Som vist på bildet, er hele alienhodet farget hvitt, noe som forteller oss at all geometri er vektet.
Ekskludert fra vektingene er Kule-Objektene av øynene. For at disse objektene også skal følge hodets bevegelser under rotasjon eller bevegelse, blir de enkelt plassert under hodet-Joint i Objekt-Manageren. Når hodets-Joint for eksempel roteres, følger øyneobjektene hodets retning på grunn av sin underordning.
Nå er det på høy tid å praktisk sjekke leddstrukturen og vektingene. Vi velger hodet-Joint og roterer det med Roteringsverktøyet langs y-aksen. Hele alienhodet skal uten problemer følge bevegelsene til hodet-Jointen.
Inkludering av Invers Kinematikk med Dynamikk
Når Jointene nå virker som ønsket på de forskjellige områdene av alienhodet, kan vi ta oss av animasjonen av tentaklene eller antennene via Invers Kinematikk (IK). For å gjøre dette må vi definere de to Joint-strengene for tentaklene eller antennene som en IK-kjede.
Vi velger derfor disse to Joint-kjedene i Objekt-Manageren - vær oppmerksom på at hodet-Jointen holdes utenfor!
Her tilbyr også CINEMA 4D en spesialkommando kalt Generer IK-kjede, som automatisk konverterer de valgte Joint-kjedene til IK-kjeder. Du finner den i menyen Character>Kommandoer.
Vi bruker kommandoen Generer IK-kjede, og sjekker hva som har skjedd med Joint-kjeden vår. De to Jointene ved hodet har hver fått et IK-tag tildelt. I denne taggen ble begynnelsen og slutten av IK-kjeden automatisk satt.
I tillegg finner vi to nye Null-Objekter som Mål-Objekter i Objekt-Manageren. Disse to målene er navngitt analogt med endene av Joint-kjeden og tillater oss å animere hele IK-kjeden over disse enkle styringmålene.
Vi vil egentlig regulere bevegelsene til tentaklene eller antennene helt automatisk gjennom dynamiske egenskaper. Det skader imidlertid ikke å beholde disse to målobjektene, for slik justerer tentaklene eller antennene seg alltid etter bevegelsen og deformasjonen og stiller seg derfor automatisk inn.
Et blikk på innstillingsdialogen til IK-tagene viser oss hvordan endene eller målene til IK-kjeden er definert. Disse parameterne i området Tag kan vi beholde; vi er nå mer interessert i Dynamikk-innstillingene.
Vi bytter til fanen Dynamikk og aktiverer først Dynamikk-alternativet. Nå kan tentaklene eller antennene allerede reagere på påvirkninger som Gravitasjon eller Bevegelse.
Men for at tentaklene ikke bare skal henge slapt, men heller virke elastiske og motstandsdyktige, reduserer vi Dynamikk-styrken til ca. 40-45 % og øker Dempingen drastisk til ca. 70 %. For at tentaklene skal streve mer for å gjenoppta starttilstanden, øker vi parameteren Vinkelholde til ca. 40-45 %.
Jeg vil oppmuntre til å eksperimentere videre med parameterne på dette tidspunktet. På den måten lærer man raskt hvordan de enkelte innstillingene påvirker hele kjeden av Invers Kinematikk - og det er selvfølgelig også morsomt.
Fordi de to utlagte målobjektene ikke oppfatter den dynamiske animasjonen av antennene eller følerne, må vi lære IK-en å følge med disse målene. Ellers ville antennene veldig raskt floke seg sammen ved rask rotasjon.
I fanen Videre i IK-tag'en tilbyr oss en svært elegant funksjon for dette. Vi aktiverer bare alternativet Følg målet med, og de to målobjektene vil automatisk følge med i enhver bevegelse.
Nå er også funksjonaliteten til invers kinematikk for antennene og følerne på plass. La oss skape litt orden i objekt-lederen, ved å navngi målobjektene og leddkjedene på en passende måte.
For å animere alienhodet fungerer foreløpig hodet-leddet som håndtak. Dessverre er dette leddet relativt upraktisk, siden det på grunn av sine underordnede leddkjeder blir rotert i rommet.
Vi trenger egentlig en "ren" startposisjon for vinklene, slik at rotasjonen og bevegelsen av alienhodet kan utføres uten uønskede forstyrrelser.
Her kommer nå rot-nullobjektet inn i bildet, som vi allerede snakket om i begynnelsen.
Det gir oss en helt ny, urørt koordinatbase til disposisjon. Og for at hele IK-kjeden skal bli tatt med, trenger vi bare å underordne den til rot-nullobjektet.
Først oppretter vi det friske nullobjektet via Objekter-menyen. Siden leddet for hodet ligger på nullposisjonen, trenger vi ikke engang å omposisjonere det nye nullobjektet.
Vi gir dette nye nullobjektet navnet rot og underordner hele leddhierarkiet til det via objekt-lederen.
Nå kan vi trykke på avspillingsknappen og vri og animere alienet i alle retninger ved å rotere rot-nullobjektet. Antennene eller følerne styres dynamisk av gravitasjonen og våre bevegelser.
Rot-nullobjektet er derfor en praktisk hjelper i animasjonen av et leddhierarki. Når et leddsystem opprettes, blir minst hovedleddet (vanligvis hoften) pålagt et slikt overordnet nullobjekt. For at dette skal skje automatisk, må vi bare aktivere alternativet rot-nullobjekt i innstillingsdialogen til leddverktøyet.