Den syngende vogn
Dette er intet mindre end syndsygt. Jeg har hevet to måneder ud af kalenderen for at uddanne mig selv i at producere animationsfilm. Jeg har svigtet mine venner, isoleret mig fra omgivelserne, været manisk fikseret på en opgave, som INGEN har stillet mig andre end mig selv. Jeg beder om tilgivelse.
Jeg har yderligere kommentarer, men her er resultatet:
Det går næppe over i filmhistorien som et mesterværk, men jeg er bestemt ikke utilfreds.
Jeg gjorde, hvad jeg havde sat mig for. Jeg blev optaget i et to måneders kursus i produktion af animationsfilm, hvor jeg fik lov til at mænge mig med en stak ambitiøse folk, der var mere kvalificerede end mig.
Der var et konkurrenceelement over det, hvilket jeg bruger som undskyldning til min mani. Jeg scorede fuldt forventet ikke en top-placering, men jeg faldt heller ikke igennem. Lærings-udbyttet har været enormt, og det meste er lige nu ufordøjet. Jeg har undersøgt og applikeret en række grundlæggende animations-teknikker – nothing fancy …
Et team på et professionelt animationsværksted eller hos et computerspils-firma vil blot sige:
Det er vores daglige rutine. Min respekt for deres professionalisme er uforstyrret og maksimal, men samtidigt har det lært mig, at intet er uopnåeligt.
*
Jeg kunne godt tænke mig som en sjov demo at publicere mine noter fra processen. Ikke at jeg tror, at nogen ville finde på at læse dem i detaljer (please don’t), men det giver et vist indblik i kompleksiteten og omfaget af et sådant projekt.
Ekstra
Landsby, træer, buske, græs, bjerge, en flod
Himmel er Sky Texture.
Der hænger en sky af dis omkring bjergene.
Scenen
Lokation en skovej i en lysning
En vogn står i midten lastet med ragelse, inventaret begynder at spille/synge startende med backup-koret
På et tidspunkt begynder vognen at blive trukket Et skelet begynder at spille lummer basun
Da fuldmandskoret og papegøjen sætter ind, stopper vognen i 12 sekunder Vogne ruller videre efter forbløffelsen.
Vognen slutter med at rulle videre henad vejen og forsvinde.
Relationer
Ælslet = donkey_rig følger den Empty (HELE_VOGNEN), der er parent for æslet, der er parent for vognen. Passagerne har vognen som parent. Hvis der er en rig, er denne child til vognen. Løsdele er children i sig selv. Æslet som mesh har donkey_rig som parent.
Kamera
Der zoomes ind på vognen, inden musikken starter
Fokus på fløjtere og lala-sangere og dernæst på kusken
Fokus på skelettet med basunen og dernæst percussion-ragelset
Dernæst er der fokus på den åndsvage papegøje og de fulde sangere + evt. opsamling af percussion-ragelset.
Til sidst følges vognen et stykke, og den forsvinder henover broen
Der bør være en række cams, der kan krydsklippes imellem:
et generelt dolly-cam fra siden (mest til tjek af scenen)
en zoom-in-cam for hver aktør, når de er mest i fokus
et dynamisk cam som et bedre alternativ til dolly
et cam, der bevæger sig ind på scenen – måske startpunktet for dynamisk cam
et cam, der ser vognen forsvinde – måske endepunktet for dynamisk cam
Alle ikke-dynamiske cam’s bør have et fikseret fokus på et objekt.
Camera binding
Eksempel – der er to cams, cam 1 skal være aktivt frame 1-100, hvorefter cam 2 skal overtage. Man er allerede i gang med at klippe (så hvad skal klipperen lave bagefter?). Det er måske mest til at få et hurtigt overblik i stedet for at rendere en bunke cams fra start til slutning. Et kompromis kunne være at rendere et cam et stykke tid før og efter, så der var mulighed for at vælge i et redigeringsprogram. Her skal man være meget specifik med at holde øje med tidspunktet. Er det i øvrigt ikke nu, vi skal lære Blenders eget redigeringsprogram?
Hvis et cam er dedikeret til én karakter, kan man bruge Depth of Field. Kan dette også animeres? Uden tvivl. Ellers kunne der trackes til en animeret empty.
Et tracking cam finds findes i Constraints. Det er sædvane at tracke til en empty, hvis man ønsker at gå udenfor rigid centerfokus.
Renderingstid for den første færdige skitse er over tre timer i Evee. Der er også sat Raytracing til. Cycles ville tage mindst det dobbelte – altså et nattejob.
Rigging
Humanoide skikkelser har en standard rigging Firbenede skikkelser kræver særlig rigging – æslet Andre skikkelser har brug for at åbne munden og foretage specifikke bevægelser.
Autorig Pro tutorial:
Tilføj et nyt objekt til et bone i en eksisterende rig:
En tut, hvor manuel rigging gennemgås:
Manuel rigging med Rigify
Blender har indbygget et addon kaldet Rigify. Hvis det er aktiveret, kan man i Add > Armature > Rigify Meta-Rigs > humanoid danne et komplet skelet. Det skal skaleres og alle bones skal manuelt placeres. Brug X-symmetri. Dernæst kan man alternere (Ctrl + Tab) mellem Pose Mode > marker bone og Object mode > select objekt > Shift select armature, hvor et bestemt bone er selected indeni > Cmd + P > Bone. Herefter vil man se, at der bygges op under Metarig. Hvis man ønske at fjerne et bone uden at bryde kæden > Del > Dissolve Bone i stedet for Delete Bone. Det modsatte hedder Subdivide Bone. Man tilføjer et nyt bone ved at markere bone i Pose Mode og i Objekt mode > Cmd + P > Bone.
Der er to slags Human armature, en simpel og en avanceret med fingre og ansigts-bones. Der er i begge tilfælde ekstra bones-par til hofte- og brystparti. De er ikke strengt nødvendige, mens skulle hjælpe med Automatic Weights.
Avanceret rigging med Rigify
Når metarig er på plads, og det er testet, om character mesh reagerer korrekt, kan der genereres et avanceret UI-rig med IK. I Data genkendes armature som en Rigify-type af bones, fordi Rigify var en del af Blender fra starten og blot skulle aktiveres i Indstillinger. Det er vigtigt, at både mesh og metarig har 0:0:0 i rotation og 1:1:1 i scale. Den ny control rig har stadig metarig som baggrund, så hvis man ændrer noget i den og foretager en re-create, vil controlrig nulstilles og være tilpasset.
Update Blender
Ved opdatering af Blender til en nyere version ryger alle settings og addons. Men der findes en måde at overføre dem på:
Det kan gøres meget nemmere. I popupskærmen efter en ny installation er der mulighed for at vælge de tidligere settings, og Blender overfører alle addons og indstillinger til den nye installation. Om det er nødvendig at bevare den gamle installation er uvist, men det virker som en god ide. Man kan jo slette den gamle bagefter, når man har set, at det virker … og det virker. Om det kan overføres mellem installationer på forskellige systemer (macos, Linux) er også uvist.
Weight Paint
With automatic weights i bindingen virker nogle gange, ellers er man nødt til at gennemgå hvert eneste bone for at sikre, at der ikke er weights udover det nødvendige område.
Det kan gøres ved at afgrænse til en linked selektion og pendle mellem Weight Paint og Edit Mode, hvor man vælger sammenhængende områder > Assign. Bagdelen ved det er, at det meget tæt adskilt. I eksemplet med skelettet går det fint, for der skal ikke være bløde overgange eller deformering.
Men det er ikke sikkert, at der altid er brug for en rig overhovedet men blot en velorganiseret system af parents-children.
Weight: er det omfang, som verticer reagerer på et bone. Det ses ved farverne rød, gul, grøn og blå. Size: er størrelsen af den brush, der maler. Strength: er det impact, som pågældende weight påføres. Mix: synes at være mal.Subtrack: synes at være træk fra – der burde være en ‘afmal’-funktion ved Shift+, men det virker ikke. Derudover er der nogle funktioner i selve Brush-funktionen som smear, average, …
Hvis en mesh har både armature og particle system som f.eks hår / pels, så skal armature modifyer være over.
Inverse Kinematics
Det gør levende væsener mere håndterbare. Men stor omhu for weight paint vil det virke. Visse forholdsvis ukomplicerede kroppe vil reagere fint på automatic weights.
Men også maskindele, stempler med plejlstænger, kæder og bevægelige kabler + meget andet kan bruge IK.
Her er et eksempel:
I
eksemplet vises der, hvordan man kan snappe bone heads til 3D-cursor. Bundstempel og topstempel tildeles en Empty som parent. Dette er en rig med to kæder. I Pose Mode markes alle bones et ad gangen. I object mode linkes hvert objekt svarende til det markede bone – marker objekt > Shift – marker rig > Cmd + P > Bone. I Pose Mode markeres det sidste led, og i Constraints > Add Bone Constraint > Inverse Kinematics. Empty skal være Target og Chain Length skal være 2.. Øverste Empty gøres til parent for riggen, så den styrer startpunktet bone-root for hele riggen.
Flere constraints kunne være min-max rotation, så stempelarmene ikke går igennem stemplerne. I Pose Mode i Constraints vælg et bone > Limit Rotation. Sæt den rigtige akse til min/max. Vælg Local Space
Retopology
Manuelt: Start med en cirkel og placer den ved udgangspunktet. Sæt Snapping til og vælg Center og Face Nearest. Når man foretager et grab, snapper verticerne. I Object mode tilføj en Shrinkwrap. Snap Mode: Above Surface Target: den originale mesh Offset: så lidt som muligt, f.eks 0.005 Herefter extrude, scale, Loop Tools: Circle, grab. Inden man slipper [G] træk på plads. Circle sørger for, at afstanden mellem verticer ikke skrider og de begynder at klumpe.
Automatisk: Brug Quad Remesh. Problemet er, at man ikke kan bruge de billeder, der er fulgt med en komplex trianguleret mesh f.eks fra en photoscan. I eksemplet med pumpkin var det uhensigtsmæssigt, da geometrien ville blive alt for omfattende. Til gengæld var det ikke så svært at bruge det samme billede, eksportere UV-map og flytte rundt på pixler.
Dynamisk parenting
I tilfældet skelettet viste det sig ikke at være nødevendigt, for basunens parent skal bare være hand_L fra starten, så han kan rejse sig fra stolen og tage den op med venstre hånd. Der findes to måder at holde en basun på, når man ikke trutter, men højre hånd kræver en omplacering af fingrene, og jeg har valgt at have en fast håndposition. Venstre hånd er ikke gennemskuelig i animationen.
Ellers:
I stedet for normal parent-child, skal et objekt skifte parent via Constraints > Child Of > vælg parent evt. med offset. På en given keyframe skal Influence være 1, og den næste keyframe skal den være 0. Objektet er nu uden parent, til den får en ny … eller den samme igen, og den kan gøre hvad som helst i mellemtiden, der ikke bliver påvirket. På en ny given keyframe – og det er vigtigt, at man befinder sig på den nye keyframe ! – oprettet en ny Child Of-constraint, og objektet vælger en ny parent. Der gælder det samme med to keyframes men denne gang fra influence 0-1.
I øvelsen med en bold, der hoppede mellem to vogne i bevægelse, var det simpelt nok at swappe mellem to parents. I realiten har et objekt to parents … med fælles forældremyndighed. Hvad vil det i øvrigt betyde, hvis hver parent havde f.eks 0.5 indflydelse …? Et problem er banen mellem de to vogne. Hvis en bold skal kastes fra ét sted til et andet, kræver det balistisk dynamik. Det vil sige, at bolden måske skal have 3 parents, hvor the missing link er en path.
Der er mange problemer.
Dette AddOn kan løse dem:
Show/hide i Viewport og Render
I øvelsen med Grandpa, der skyder en pil gælder nøjagtigt det samme. Næsten. Det var ikke muligt at få pilens parents quiver og bone: HandRight til at slippe grebet, selvom indflydelsen var sat til 0.
Til gengæld lykkedes den næste teknik med at keyframe visibility / Show in Render og Viewport. Det kræver 2 pile. Den ene er pilen, der skifter parents, der er synlig, indtil affyring = buestrengen er halvt udløst. Her overtages den af en pil uden parents, der animeres til målet. Hastigheden for en pil er mellem 50-90 meter i sekundet.
Det lykkedes IKKE af få ham til at løbe fremad, uden at parent-child-relationen gik i stykker ift. den første pil. Spørgsmålet er faktisk, om det var nødvendigt med dynamisk parenting, for der skulle alligevel animeres manuelt i draw-aim. Så kunne pilen have været child af quiver, indtil den forsvandt, og quiver løber ingen steder. Det var svært – og lærerigt.
Lydspor
I ekport fra Ardour vælg master + en eller flere channels, så de forskellige typer kan høres tydeligt. Hvis der er tre, der gør det samme, så kommer de i samme eksport – fløjt, lala, kor.
Hvis man eksporter som enkelte channels, kan de normaliseres i Audacity og genindlæses i Bitwig Studio. Om at placere lyd i Blender til at animere derefter:
Lokomotivmekanik
Et sidespor. Lokomotivet bliver ikke brugt, men hvordan fungerer hjulmekanikken egentlig?
Kort fortalt bliver dampen fra kedlen lukket ind i en kasse på hver side foran. I kassen er der et stempel, der trykkes udad, når hjulmekanikken giver det besked om det. Det er altså afhængigt af farten, hvor ofte der lukkes damp ind. Stemplet bliver trykke bagud til en rund stang. Denne er koblet til hovedstangen. Hvis der er 4 hjulpar, vil der være fire hjulstænker, der drives af hovedstangen. For at hjulene ikke skal komme ud af sync, er der forbunder med 3 par stænger, der altid er vandrette og ikke skrider i forhold til hinanden. Venstre og højre hjulside er forskudt, så toget ‘padler’ fra højre til venstre osv. Et stykke mekanik er koblet til det midterste hjul og laver feedback til dampkassen. Det er lidt svært at gennemskue.
Diverse teknikker
Reb:
Kabler vha Extra Objects:
Cloth Simulation som proxy til et reb:
Seperate by loose parts:
Alle modifiers i Blender:
[06:42]
Et stort kursus kaldet Blender Secrets: https://blender-secrets-school.teachable.com/courses/blender-secrets-e-book/lectures/48332832
4 teknikker til teksturering:
med blend materials, smart materials, roughness, environment
Landskabteksturering:
Der er en ny version af A.N.T Landscape kaldet TXA Landscape
Procedural clouds:
Undgå tiling-repetition:
Sappling Trees:
Brug af simple planes til fjerne træer i et stort landskab. Meget computerbesparende !
Det foregår ved at tage billeder / rendering af træerne fra flere vinkler. 512×512 er nok. Der skal være et area-light ovenover kameraboksen og en refleksionsflade under træet gerne med lidt emission. Det skal skjules for kameraet i rendering. Baggrund fravælges i rendering, så der kommer en alphakanal. Der skal bruges et ortografisk kamera, og træerne bør passe ind i den samme indstilling vinkel for vinkel. Alle billeder skal også have et normal map, der fås med en MatCap (_normal.png). Den findes som en dropdown i Viewport Solid Mode Der skal være en mattecapped cube, en såkaldt World Normal omkring hele kamerafeltet til en maske. (_mask.png) Én rendering er nok til alle træer i alle vinkler, for det handler om lyset i forhold til kameraet (_trees.png). Der skal være en særlig rendering, der fremhæver stammen. Alle billeder vinkel for vinkel skal altså have 4 billeder
Herefter en lang og komplex programmering af texture-shading-nodes. Muligvis kan man skippe det meste og nøjes med: Importer hovedbilledet til et plane – træk det ind i Blender. Sørg for, at det har en alphakanal. Brightness kan styres med en RGB-curves-node. Specular kan styres via en Color Ramp, hvor kun de lyseste områder slipper igennem, og hvor faven på være lys grå.
I Shading tilføj _normal.png. Tilføj også World Normal. Den mixes med Normal og mix sættes til Color Mode og Overlay. Sænk Roughness.
Erfaring: Det skal være træ-objekter af høj kvalitet for at skabe et rigtigt normal map og en maske. ‘Smarte’ træer, hvor der i forvejen er brugt billeder i stedet for mesh-objekter giver et dårligt resultat.
Jeg har en hel del .uasset i Unreal Engine med vegetation af høj kvalitet. Vi taler om 20 GB eller mere. Det er muligt at eksportere til .fbx. Både mesh og textures skal exporteres og samles igen i Blender:
Brug af Mixamo anims med mesh character Der er nok ingen vej udenom at optimere en mesh character og eksportere som obj uden materials. Det virker. Download T-Pose med skin og anims uden skin.
For kombinations af T-Pose, importerede anims og egne anims
se:
Kombination af anims Der findes et billigt plugin kaldet Mixanimo Pro, der arbejder sammen med NLA til at skabe en sequence og en ny action. Hent en startposition f.eks Idle ind sammen med andre animationer f.eks Open Door, Walk, Wave hands. I Mixanimo Tools vælg Load Actions. Måske der kommer mere med, end der skal men så fjernes afhakket. Arranger rækkefølgen med pil-op/ned. Confirm Order. Åbn NLA-editor, hvor sekvensen har ordnet de enkelte armatures som actions i hvert deres track. Juster overgangenne vha. ease-in af næste action – ease-out skal vistnok undgås, da der er en bug. Vælg Bake Actions.
Eksporter:
Der er flere ting i det, f.eks Stabilize Root
AutoCam Et addon, der tillader at bruge WASD til at optage en kameratur og derefter konvertere det til en curve, der kan blødgøres.
Decimering af keyframes
Det foregår i Graph Editor Brug Search – funktionstast F3
Texture blend Øvelsen er at sætte stickers på et skateboard. I øvelsen places to stickers ovenpå et generelt bund-tekstur for brættet. Denne tekstur var kompliceret, og for ikke at at overfylde skærmen med nodes, blev der brugt en gruppe – se Nodes organisering nedenfor.
For at kunne blende teksturer som isolerede flader kræves der, at hvert tekstur/billede har sit eget UV-map. Det sker ved at tilføje i Data og navngive. Hvert sticker-billede skal kobles op til sit eget Principled BSDF. Det skal bruge Clip eller Extend som. extrapolering. Det skal have en mapping-node og og en UV-node, hvor det rigtige UV-map vælges. Det en sticker-billede skal være input i en Mix Shader sammen med det generelle bund-tekstur. Alphaværdien på sticker-billedet skal kobles til Fac i Mix Shader. Denne Mix Shader skal være A-input i en ny Mix Shader, hvor det næste sticker-billeder skal være B-input. Denne mix går til Material Output. Alphaværdien for sticker2 skal kobles til den næste Mix Shader.
En Mix Shader kan kun have to inputs, så hvis et objekt skal plastres til med stickers, foregår forgreningen som følger. Det vil i realiteten ikke blive aktuelt, for man kan blot designe sit billede, så det indeholder flere billeder som ét billede. Man kan også skille en meget komplekst objekt ad i del-objekter.
Nodes organisering
Kollaps en enkelt node ved pilen
Gem ubrugte sockets af en node – Ctrl + H
Skriv labels (ikke Name) og farver i højre sidebar
Brug Frames – Shift + P Fjern en node fra frame – Alt + P. Giv label og farv
Gruppe – Ctrl + G. Alle nodes komprimes til noget, der ligner en node uden at være det. Man starter inde i gruppen og ser kun de nodes, der er i den. For at komme ud brug Tab. Herefter giv gruppen et navn.
Forlængelse i starten
Løsning burde være simpel. Markér alt i scenen og gå til Animation med Dope Sheet. Kun de animerede objekter er med her. Herefter flyt alle keyframes fra Summary. I Video Sequencer flyt lyden samme antal frames. Her står der ganske vist tidskode og ikke frames, men de vises parallelt i Dope Sheet eller Timeline.
Men det går galt. Alt går ud af sync.
Ny løsning: En kopi af det hele, hvor det er flyttet, så vidt så godt, men hvor der ikke renderes mere end de 5 sekunders indflyvning af kameraet til det originale cam1_intro og den hidtidige frame 1.
Her er det vigtigt, at alle updates er tjekket, og at renderings-setting er nøjagtigt de samme.
Kunne en tredje og bedre løsning være at lære mere om Scenes?Animation Course
Spørgsmålet er, om ikke animationerne skal foretages, indet hele settet bliver samlet? Der importeres et lydspor, og det times derefter. Når der skal samles, skal alle objekter markeres som Assets for at kunne hentes ind i totalen. Skal riggen også markeres?
Noter fra en 3-timers tut på nettet
Timeline
[I] indsætter keyframes for translation, rotation, scale.
[I] + træk åbner pie menu.
Auto Keyframing bekræfter omgående, ellers skal man trykke [I] igen eller manuelt aktivere i Object.
Shift + [D] duplikerer en frame – man skan flytte musen/playhead med det samme og bekræfte med L-click. Copy-paste funger også (måske bedre).
Shift +[S] skalerer i tid – man kan trække intuitivt eller skrive et tal.
[M] lægger en markør ind – [X] eller Delete for at fjerne .
I Playback-popup øverst er der mulighed for at vælge Sync to Audio. Her kan også vælges Scrubbing.
I Output tjek, at framerate er 24 (filmstandard), hvis der bruges motion blur, ellers er 30 bedre.
Rullemusen har forskellige funktioner: Rent rul er udvidelse-sammentrækning af tidslinjen. Ctrl/Cmd-rul er spol horisontalt Opt-rul er spol af playhead. Shift-rul er spol-vertikalt.
Dope Sheet
Forskellen mellem Timeline og Dope Sheet er, at i DS er alle parametre synlige i deres egen kanal. De fire øverste kanaler er overordnede: Summary, objektnavn (kan ændres), navn på anim (kan ændres) og navn på transforms (kan ændres).
Alt + V-klik markere alle keyframes i animationen, ellers brug V-klik, Shift + V-klik eller ramme-markering.
Hvis der ikke er bevægelse mellem to keyframes i et spor, tegnes en gul streg mellem dem.
I navnefeltet tv kan man aktivere F curves ?
Man kan unchecke, så sporet muter (som i lydediting i en DAW).
Man kan låse, så der ikke kan skabe keyframes i et spor.
I View > Show Sliders kan man vise alle tal-parametrene for objekter i alle kanaler.
Det giver direkte adgang til i samme vindue at præcisere en parameter, så der dannes en keyframe en specifik kanal, uden at det påvirker de andre. Man kan skrive eller trække.
I Channel kan man bl.a gruppere kanaler for at klappe sammen.
Den skrå pil får alle objekter, der ikke er markeret til ikke at vises som kanaler.
Ctrl + Tab for at skifte fra Dope Sheet til Graph Editor
Graph Editor
Forskellen mellem Timeline, Dope Sheet og Graph Editor er, at værdierne er tegnet som en graf med værdien 0 som en midterlinje. Der er nu en bezier-kurve ved hver keyframe.
Hvis man markerer alle frames [A] og klikker Numpad del (komma), bliver de framet. Det er den samme funktion, som hvis man i Viewport vil frame et objekt.
Ved markering af en keyframe kan man foretage [G] grab, [R] rotate og ved flere keyframes [S] scale. Skalering kan låses til både x-akse (horisontalt = tid) og y-akse (vertikalt = værdier. Og det kan gøres realtime, mens animationen looper.
For ikke at skalere frem-tilbage eller op-ned på én gang (bounding box) skift til 2D Cursor (playhead).
Handles er de vektorer, der stikker ud af en keyframe som i bezierkurver.
Som standard er der en automatisk ease-in / ease out.
[G] flytter og roterer frit
[S] låser vertikalt
[R] låser længden og roterer om keyframe’en – det er lidt anderledes end i grafik, for ved rotation er det kun den venstresiden af keyframe’en, der påvirkes.
Reset gøres ved markering af keyframe > Shift + [S] for popup > Flatten Handles.
Placering af keyframe i en specifik kanal placer playhead, vælg kanal(er) > [I] og i popup-menu vælg Only Selected Channels. Vælg dernæst keyframe i den rigtige kanal > [V], og i popup vælg type af keyframe. Alligned (default): begge handles er forbundet.
Free: handles er ikke forbundet, og der kan laves et skarpt knæk på kurven.
Automatic: det bedste bud på en blød overgang.
Hvis man kun ønsker at vælge keyframes med boks-selektion gå til View > Only Selected Curve Keyframes.
Hide-funktionerne fra Viewport gælder også for Graph Editor. Marker kanal > Shift + [H] : skjul alle andre kanaler. Alt + [H] : vis skjulte kanaler.
[T] fremkalder interpoleringsmenuen. Bezier er standard, hvilket er smooth, og der er styre-handles. Linear er uden smoothing og helt lige linjer som i et stykke mekanik.
Constant stopper alle overgange og giver statisk-frosne positioner.
[P] og træk markering for at sætte play range
Animation modifiers findes i Graph Editor og fremkaldes ved [N]
Disse er non-destruktive og kan fjernes igen.
Stepped Interpolation deler kurven op i ‘trappetrin’, hvilket er en slags lokal nedsættelse af frame rate. Har mange underparametere, start-stop, ease, strength, …. Noise giver en rystet kurve.
Cycles lopper en animation. Den er VIGTIG! og der bliver stor brug for den i dette projekt.
I interpoleringsmenuen [T] findes dynamic effects: Back: som et rekyl ved kollision
Bounce: som en bold, der rammer noget Elastic: som i en elastik … svært at beskrive
Reset af poses til den oprindelig resting position er Opt + [R] for rotation og [G] for position.
Animation
Dette handler om en rigged character. Blender har frigivet alle sine characters fra deres demo-videoer. Her bruges Rain v3. Den burde have et python script, hvor man kan vise og skjule layers, men det er der ikke. Hverken v2 eller v3.
Giv personen en afslappet pose.
F.eks bøj fingrene. For at gør det samme ved den anden hånd markér alle hånd-bones, Ctrl + copy > Ctrl + Shift + V = paste mirrored. Det kan bruges for alle bones, der har en højre-venstre.
IK er Inverse Kinematics, der primært virker ved translation (position), og hvor bones længere oppe i parent-kæden følger organisk med. FK er Forward Kinematiks, der primært virker ved rotation.
NLA-Editor
Her kan man – kunne jeg – have sparet en masse copy-paste af keyframes. Non Linear Action Editor
Man vælger keyframes til en action og vælger Push Down.
Det danne et nyt track med en Strip, der indeholder alle keyframes.
Man får nu nem mulighed for at skalere [S + X] direkte i strippen + Repeat, Blend-ind og -out, placering på tidslinjen. Man kan stadigvæk redigere keyframes vha. h-klik Start Editing … eller Shift + Tab.
Men hvordan splitter man en sekvens af keyframes op til flere actions / strips?
Er det nødvendig at kopiere hele armature-mesh-komplekset?
Det lader til, at folk gør det, og det virker
Se:
Grandpa_nla-exp – et dagsprojekt
Som studie er der følgende anims:
gp_tpose
gp_standing_idle
gp_run_forward
gp_draw_arrow
gp_aiming_idle
gp_shoot_recoil
tpose er kun for at kunne binde meshen bedre, og der er kun mesh på tpose
Alle anims skal være at samme type skelet. Her er det et simpelt Mixamo-skelet med fingre men uden tæer, ansigts-bones og ekstra bryst- og hofte-bones.
Mål i første omgang: at udstyre ham med bue, pilekogger, pile at få ham til at stå og vente, løbe, trække en pil, sigte, skyde, stå og vente.
NLA-Editor i detaljen: Dope Sheet / Action Editor
NLA læser de oprindelige navne på animationerne, så det hjælper ikke at omdøbe dem i Scene-oversigt. Det skal gøres i Action Editor.
Her er der to navnefelter: Layer og Slot, og begge bør have et unikt navn.
Push Down til Strips.
Styr længden af hvert strip vha. Action Clip > Repeat
Marker t-pose > Shift + Tab > vælg ny pose, og så vil mesh’en bruge den nye anim.
Det danner et nyt Track, der overrider t-pose, hvilket er godt ift. at tpose ikke skal bruges direkte til noget.
Ellers ønsker vi sandsynligvis en blend, en overgang. Det svarer til old-school videoredigering, hvor man altid placerede to klip i hvert sit video-track og dernæst definerede en overgang, typisk en crossfade. For at en anim et et lag ovenover kan overtage, skal Extrapolation sættes til Nothing – der er stadig ingen overgang.
Marker den nye strip og styr Blend-In og Blend-out for den foregående.
En nemmere måde er at bruge Auto Blend for hver strip.
Hvis man vil gentage en eksisterende strip er det blot duplicate og flytte til et track ved siden af det foregående. Auto Blend fungerer kun med nabo-tracks.
For at time synkrone animationer, kan man finde det sted, hvor de skal være synkrone og give dem keyframes. I tilfældet bue + streng var det et sted mellem aiming_idle og shoot_recoil. Når det er timet, bør alle keyframes bringes tilbage til frame 1, for ellers kommer det en strip fra frame 1 alligevel, men der sker ikke noget. Det gør det sværere at placere og genbruge. Det samme med pilen.
Der var 12 pile i koggeret. Koggeret er child af et spine-bone, og pilene er children af koggeret. Når pilen bliver trukket skal der være en duplikat af en pil. Herefter animeres visibility i den frame, hvor hånden tager pilen.
I foregående frame sættes det originale objekt til visible og i denne frame sættes det til unvisible. Det foregår ved at markere objektet i Scene-oversigt og holde curseren over ikone for render visibility, indsætte en keyfra med [I]. Det modsatte sker med duplikat-objektet, der skal animeres.
Der findes en mere avanceret metode med at skifte parent dynamisk.
Vi er ude i multiple constraints:
Der findes også et plugin, der gør det uden at blinke. Det hedder Dynamic Parent.
Donkey
Der er nu to donkeys, for det var. den eneste måde, de to anims kunne holdes adskilt på. Begge anims starter i frame 1 – to anims = actions. Det sker i Action Editor. I NLA-Editor pushes først idle ned til en strip. Shift + Tab
Lyd
Inden import af lyd tag stilling til framerate i Output. I dette projekt er det 24 fps.
Hvis der opstår problemer, så er: 30:24 = 5:4, hvilket vil sig scale-X med ?
Import audio Shift + [A] – det hedder nu en Strip.
Forøg strip vertikal med slider th. I dropdown th sæt Waveform til Full. I playback sæt Scrubbing til. + Sync to Audio.
I de enkelte figurer importer kun 1 lydchannel.
Start lyd ved frame 0 I hovedscenen (samling) importer mixdown.
Herefter er det at pendle mellem Dope Sheet og Sequencer. Hvis der er repetitionsmønstre, kan man bruge Duplicate eller Copy-Paste. I 2. omgang kan man indføre variationer – evt. et eller flere niveauer oppe i bones-kæden.
F.eks The Wizard har den samme arm og håndbevægelse, for det kræver Rattle.
Slagene falder på de samme hoved-beats. Men undervejs kan hans overkrop (coat) svinge, hovedet på sin måde, og en gang imellem kan han åbne munden og evt. sige en lyd.
Det fører frem til, at man i Blender kan gå den anden vej også. Når animationen er på plads ift. det importerede musikspor, hvordan optager man så ekstra lyde direkte til et nyt audio-spor? … der så hedder en strip. Blender har til tilsyneladende ikke en lydoptager, men der findes et addon, der hedder Sequencer Push To Talk. Der kræves også FFMPEG installeret. Eller giver det mest mening at lægge lydeffekter ind i postproduktion. Blender har forresten et videoredigeringsprogram, som mange er glade for.
Rendering
Vælg Cycles til rendering. Vælg GPU som arbejdsdyr. Vælg .tif som format. En billedsekvens gør det nemmere at udskifte enkeltdele. Vælg mappe til rendering.
Optimering af render-tid
Kaizen har nogle tips til at gøre Cycles-rendering hurtigere:
Render Settings > Noise Threshold kan sættes ned til 0.01 Persistent Data kan sættes til. I Light Paths sættes så lave tal, det kan lade sig gøre. Hvis jeg kan få det ned på under 30 sekunder som i introen, kan det gøres på 21-22 timer. Unreal Engine skulle efter sigende kunne gøre det på 3.5 time. Det bliver en anden gang.
Vi lander på 1:20 pr billede. Det er stadig for højt. Det kan have at gøre med, at der er alt for mange keyframes og for lidt brug af Repeat-feature via NLA-Editor.
Videoredigering i Blender
Man kan oprette et nyt dokument, hvor der som udgangspunkt kun er videoredigering. Man kan også tilføje det som et nyt workspace i samme .blend, som man bruger til 3D.
I fanerne [N] er der kun brug for Output.
Color Management følger scenen, hvilket vil sige Render. Denne er tilpasset 3D, men i video kan det være anderledes. I Render bør det sættes til Standard.
Ryan King har to videoer om emnet:
www.youtube.com/watch?v=yh7YPabqeDk
Audio-muligheder er begrænsede, men der er, hvad der er brug for: lydstyrke og pan med mulighed for keyframing.
Fint nok. Davinci Resolve er hjemmevant.
Landskab
TXA Landscape er en udvidelse af A.N.T Landscape med flere muligheder. Et bedre alternativ til ikke-kvadratiske bakke-bjerg-landskaber er skabe et height map i sort-hvid, hvor hvid er det højeste og sort er ingen højde.
Importer træer og spred dem bag husene. Alt + D duplikerer som instances, der ikke belaster computeren så meget. Scatter får computeren til at gå ned, med mindre det sker på et begrænset felt. Det fungerer OK med græs og buske via BagaPie.
Grav en kløft i Sculpt Mode til en flod og skab et objekt til vand.
Her CG Geek:
Se også hos samme om Quick Liquid:
Dis i det fjerne:
Denn avancerede model lykkedes det mig ikke at få til at virke.
Muligvis skulle jeg have valgt en simpel cube.
Et simpelt principled volume med lav Density og Emission, måske en svag blålig eller rødlig farve virker.
Det kræver åbenbart Cycles for at virke.
Endelige rettelser
Spyderfy
Brug seneste version. Start med at importere modellen fra mappen spyderfyassets > spyderfymodelse.blend > pågældende collection.
Der skal både være et collision object, hvor sværmen starter fra og et Goal, hvor sværmen skal hen. Det er et Blender Particle System, og alle kontroller findes i Particles.
Number er antallet i sværmen.
Emission > End bestemmer, hvor hurtigt en sværm skal afvikles.
Lifetime er et ca. tal for, hvornår en partikel forsvinder.
Den skal gøre sin animationscyklus færdig.
Jeg husker fra sidste version, at man kunne animere sit Goal.
Måske det skal ske, før man vælger Generate Bug System.
Det findes et addon, der gør det samme med fisk (fishify?)
Frame-sektioner
1-179: zoom-in på vogn til halvtotal
180-715: closeup på bolde, fuglerede og hr. Bumbum
717-809: halvtotal
810-939: zoom-in på skelet
940-1183: vognen starter, skelettet spiller
1184-1413: halvtotal
1414-1657: closeup på fjederfugl og frø
1658-1858: halvtotal bagfra
1859-2180: closeup papegøje
1890: vognen stopper
2120: vognen starter igen
2181-2571: halvnær zoom-in til close-up på uhuh-kor
2572-2830: close-up og zoom-out på papegøje 2
831-3300: panorama på vogn mod broen

