Blender 2.8 Python Scripting Superkrefter For Ikke-Programmerere

Å Lage 3d-gjengivelser, spill og animasjoner er alltid utrolig spennende! Vel, bortsett fra når det blir utfordrende eller kjedelig. Hvis Du har brukt Blender eller en ANNEN 3d-app for en stund, har du funnet deg selv slogging gjennom de samme oppgavene igjen og igjen, og på et tidspunkt tenker, «Jeg ønsker Blender bare gjorde dette for meg».

gjennom skripting kan det! Ikke Bare Det, Python kan skape morsomme nye funksjoner som ikke engang er mulige ved å klikke rundt grensesnittet.

hvis du er som meg og ikke har hatt noen opplæring i datavitenskap, kan programmering virke som et ord med fire bokstaver unntatt med elleve bokstaver (2,75 ganger så ille!). Det er som et hemmelig språk som bare smarte folk vet, som sannsynligvis også alltid leser næringsfakta, bygger rakettmotorer for moro skyld, eller har En Ph. D. i en slags matte som ikke engang bruker tall.

det er heldigvis ikke tilfelle i det hele tatt. Sannheten er at Hvis Du kan bruke Ctrl+C Og Ctrl+V til å kopiere og lime inn, kan du begynne å lage Dine Egne Blender Python-skript med en gang.

Bli Vant Til Å Se Kode

Eksponeringsterapi. Progressiv desensibilisering. Kall det hva du vil, men den beste måten å normalisere noe som virker rart i utgangspunktet er å se det ofte nok i riktig sammenheng.

Hver handling som du tar I Blender grensesnitt utføres via Python kommandoer. Du kan sjekke dette ut selv ved å bytte Tidslinjen Til Info Editor og se hva det spytter ut når du går om din vanlige arbeid.

info editor kan være litt av en firehose, men det er noe om kommandolinjer og slik som kan programmere kjetteri, men sett meg rolig når du starter – det meste av det du ser er der bare hvis du trenger det og 98% av tiden du ikke trenger det. Så når du gjør noe enkelt som å flytte kuben og det gir deg to eller tre fulle linjer med kode, kan du ignorere det meste av det. Den viktige delen er helt i begynnelsen:

bpy.ops.transform.translate(value = (0.5, 0, 0))

du vet allerede at navnet for å flytte noe kalles ‘oversett’, så verdiene som kommer etter det er hvor mye du har oversatt objektet ditt på Henholdsvis x -, Y-og Z-aksene. Alt før ‘translate’ er hvor den kommandoen er funnet i Blenderens kode. Det er som Om Blender er en gigantisk nestet meny, og du valgte Blender Python – > Operations – > Transform – > Translate.

det er ni hoveddeler Av Blender Python (bpy). Du trenger ikke å huske disse, men å gjenkjenne noen av dem kan hjelpe deg å forstå hvordan Blender fungerer under hetten.

  • bpy.app-Informasjon om Blender selv som ikke endres mens du kjører.
  • bpy.kontekst-Skrivebeskyttet lister over hva som er aktiv i Blender.
  • bpy.data – Alle Blender interne data, for eksempel objekter.
  • bpy.msgbus-Står for «message bus», og brukes til å varsle Blender av visse endringer. Ikke noe vi trenger å bekymre oss for.
  • bpy.ops – alle operasjoner du kan gjøre I Blender, fra modellering til å legge til filer til gjengivelse.
  • bpy.bane-Funksjoner som omhandler filbaner.
  • bpy.props – de forskjellige egenskapene Som Blender bruker. Du vil bruke Dette til å fortelle Blender om en inngang skal være et tall eller en farge.
  • bpy.typer-Alle typer ting som finnes I Blender, fra modifikatorer til teksturer til lamper og mye mer.
  • bpy.utils-Utils-Funksjoner som bare er For Blender, men ikke håndterer interne data.

hvis du er nysgjerrig, her ER API-dokumentasjonen For Blender 2.8 og for alle tidligere versjoner.

når du jobber, bli vant til å se hvor favorittverktøyene dine finnes i koden. Du trenger ikke å forstå alt på dette punktet – bare bli vant til hvordan det ser ut!

Python-Konsollen Av Strøm

når du er klar for neste trinn, går du over Til Fanen skriptarbeidsområde. Du finner den nå kjente info editor nederst til venstre. Rett over Det er Python-Konsollen, som er hvor du kan lime inn kommandoer og få ting til å skje. Prøv dette: velg en linje I Inforedigering, trykk Ctrl + C for å kopiere, Og bruk Deretter Ctrl+V for å lime den inn i konsollen. Trykk enter, og du vil se at nøyaktig samme handling skje igjen!

prøv nå dette: roter, skala og flytt noe, eller gjør andre tre handlinger på rad. Kopier alle tre fra info editor og lim dem inn I Konsollen. Nå har du bare gjort tre ting på en gang! Det er ingen grense for dette, så du kan gjøre hundrevis av ting på en gang på denne måten hvis du vil. Selv om du ikke går lenger inn i koding, er dette et flott triks å holde i baklommen.

Lagre Kommandoer Med Teksteditoren

Jakt gjennom en rekke kommandoer og kopier / lim inn hele tiden er i seg selv ganske kjedelig hvis du gjør det mye! La oss spare oss litt tid og gjøre vår multitasking enda mer effektiv ved Å bruke Blender Tekst Editor.

Opprett en ny tekstfil og kopier og lim inn tre eller flere forskjellige handlinger fra inforedigereren i tekstredigereren. Jeg begynner med å legge til en terning:

bpy.ops.mesh.primitive_cube_add(size=2, view_align=False, enter_editmode=False, location=(0, 0, 0))

da roterer jeg kuben langs Z-aksen:

bpy.ops.transform.rotate(value=-0.261911, orient_axis='Z', orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', constraint_axis=(False, False, True), mirror=True, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)

Yikes, det er mye kode for noe så enkelt! Hvis det ikke plager deg, så fortsett og hold det. Hvis du finner det skremmende skjønt, prøv å slette alt unntatt verdien og den orienterte aksen slik at den leser lettere. Resten vil bare anta mislighold.

bpy.ops.transform.rotate(value=-0.261911, orient_axis='Z')

Til Slutt, la oss legge til en skråmodifikator:

bpy.ops.object.modifier_add(type='BEVEL')

den ekstra tingen du må gjøre for å få skriptet til å kjøre, er type:

import.bpy

På toppen av filen, slik at Den kan lese Blender Python. Det er også nyttig å slå på de tre knappene for linjenumre, ordbryting og syntaksutheving i Teksteditorens overskrift.

Nå har du et manus! Du kan nå gjøre tre svært viktige ting på en gang ved å klikke Kjør Script i Teksteditorens header. Hvis du vil lagre den til senere eller bruke den i en annen fil, går Du Til Tekst -> Lagre Som og lagre den som en .Py Python-fil.

hvis du prøvde forskjellige kommandoer enn jeg gjorde, og skriptet ditt ikke fungerer som forventet, skyldes det sannsynligvis kontekst – hvilket objekt som er valgt eller hvilken redaktør som er aktiv. Du kan velge eller oppheve markeringen av objekter i Blender 2.8 ved Å angi valgegenskapen Til Sann eller Usann:

bpy.data.objects.select_set(state=True)

Alle Hail Autofullfør

noen kommandoer Som Blender har kan bare gjøres gjennom kode og finnes ikke i grensesnittet. I tillegg gir andre ting som endrer seg i grensesnittet (som å skrubbe tidslinjen) ikke alltid deg noe I Inforedigereren som du kan kopiere og lime inn.

Du kan alltid bruke Google ELLER Blender API Docs for å hjelpe deg med å finne riktig kommando for å gjøre det du trenger, men ofte er det lettere å bare finne det ved hjelp av autofullfør. Hvis du begynner å skrive en adresse I Python-Konsollen, kan Du trykke Ctrl + Space og Blender vil vise deg alle tilgjengelige måter å fullføre det du har skrevet. Det er en fin måte å navigere kodebasen og oppdage nye funksjoner.

Teksteditoren har også En Ctrl + Space autofullfør-funksjon, men det virker ikke det samme og er generelt ikke så nyttig. Hvis det er noe du vil bruke ofte, vil jeg anbefale å gripe Jacques Luckes Kode Autofullfør addon som lar deg jobbe mye raskere.

Kjempefint Maler

Hvis Du ønsker å slå skriptet til en skikkelig addon som kan nås via en knapp i grensesnittet eller en meny, Blender innebygde maler er et flott sted å starte. Det kan være mye å huske når det gjelder hvordan du gir informasjonen som er sett I Brukerinnstillingene, eller hvordan du registrerer tillegget slik at det vises riktig, så maler er en god ting å referere til (eller kopiere og lime inn fra) hvis du sitter fast.

Faktisk Lærer Python

hvis du har hatt glede av å lage dine egne skript, men føler deg litt underwhelmed på deres mangel på makt (jeg gjorde noen store løfter i begynnelsen!), så er det på tide å lære mer Om Python og programmering generelt. Begreper som variabler, looper og funksjoner er avgjørende for å gjøre noe helt nytt eller kraftig. Litt kunnskap kan gå langt her, så det er virkelig verdt den ekstra innsatsen. Jeg vil anbefale å grave Inn I Python på ett av følgende nettsteder. Vi er ikke tilknyttet på noen måte, de gjør bare en god jobb.

  • Team Treehouse
  • Kode Akademi
  • Dataleir
  • Lær Python

Send Hjelp!

Uunngåelig vil du bli sittende fast midt i å bygge dine egne skript og tillegg. Det skjer med det beste av oss! Her er stedene du kan gå for å stille spørsmål om koding I Blender:

  • Blender Stackexchange
  • Blender DevTalk

du kan også lære mer ved å se disse kursene PÅ Cg Cookie:

  • Intro Til Python Scripting I Blender
  • Scripting Med Python Handler Funksjoner I Blender
  • Scripting En Tilpasset Rigg UI I Blender