Blender 2.8 Python skriptovací supervelmoci pro neprogramátory

vytváření 3D vykreslování, her a animací je vždy neuvěřitelně vzrušující! Studna, kromě případů, kdy to bude náročné nebo únavné. Pokud jste byli s použitím Mixéru nebo jakékoliv jiné 3D aplikace, na chvíli, jste našel sám sebe slogging prostřednictvím stejné úkoly znovu a znovu, a v určitém okamžiku myšlení, „opravdu bych si přál, Mixér, jen to pro mě udělal“.

prostřednictvím skriptování to může! Nejen to, Python může vytvářet zábavné nové funkce,které nejsou ani možné kliknutím na rozhraní.

Pokud jste jako já a neměl žádné školení v oblasti počítačové vědy, programování může zdát jako čtyři-dopis slovo až s jedenácti dopisů (2.75 krát tak špatné!). Je to jako tajný jazyk, který znají jen chytří lidé, kteří pravděpodobně také vždy čtou fakta o výživě, staví raketové motory pro zábavu nebo mají Ph.D. v nějakém typu matematiky, která ani nepoužívá čísla.

to naštěstí vůbec neplatí. Pravda je, že pokud můžete použít Ctrl+C a Ctrl+V ke kopírování a vkládání, můžete začít vytvářet vlastní skripty Blender Python hned.

zvykněte si Vidět Kód

expoziční terapie. Progresivní desenzibilizace. Říkejte tomu, co chcete, ale nejlepší způsob, jak normalizovat něco, co se zpočátku zdá divné, je vidět to dost často ve správném kontextu.

každá akce, kterou provedete v rozhraní Blenderu, se provádí pomocí příkazů Pythonu. Můžete to zkontrolovat sami přepnutím časové osy do editoru informací a vidět, co vyplivne, když jdete o své normální práci.

info editor může být trochu firehose, ale tam je něco o příkazové řádky a takové, které by mohly být programování kacířství, ale mě v pohodě, když začínáte – většina z toho, co vidíte, je to tam jen v případě, že potřebujete to a 98% času, nebudete ho potřebovat. Takže když uděláte něco jednoduchého, jako je pohyb krychle a dá vám dva nebo tři plné řádky kódu, můžete většinu ignorovat. Důležitá část je hned na začátku:

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

už víte, že název pro přesun něčeho se nazývá „translate“, takže hodnoty, které přijdou poté, jsou, kolik jste přeložili svůj objekt na osy X, Y A Z. Vše před překladem je místo, kde se tento příkaz nachází v kódu Blenderu. Je to, jako by Blender je jeden obří vnořené menu a vy jste vybrali Blender Python – > operace – > Transform – > Translate.

existuje devět hlavních částí Blender Python (bpy). Nemusíte si je pamatovat, ale rozpoznání některých z nich vám může pomoci pochopit, jak Blender pracuje pod kapotou.

  • bpy.app-informace o Blender sám, který se nemění při běhu.
  • bpy.kontextové seznamy toho, co je v současné době aktivní v Blenderu.
  • bpy.data-Všechna interní data Blenderu, například objekty.
  • bpy.msgbus-je zkratka pro „message bus“, a používá se pro oznamování Blender určitých změn. Není to něco, čeho bychom se měli bát.
  • bpy.ops-všechny operace, které můžete dělat v Blenderu, od modelování po připojení souborů k Vykreslování.
  • bpy.cesta-funkce, které se zabývají cestami souborů.
  • bpy.rekvizity-různé vlastnosti, které Blender používá. To byste použili k tomu, abyste řekli Blenderu, zda by měl být vstup číslo nebo barva.
  • bpy.typy-každý typ věci, která existuje v Blenderu, od modifikátorů přes textury až po lampy a mnoho dalšího.
  • bpy.utils-Utility funkce, které jsou pouze pro Blender, ale nezabývají se interními daty.

pokud jste zvědaví, zde je dokumentace API pro Blender 2.8 a pro všechny předchozí verze.

při práci si zvykněte, kde najdete své oblíbené nástroje v kódu. V tuto chvíli to nemusíte chápat – stačí si zvyknout na to, jak to vypadá!

Python Console of Power

jakmile jste připraveni na další krok, přejděte na kartu Scripting workspace. Vlevo dole najdete nyní známý editor informací. Přímo nad tím je konzola Pythonu, kde můžete vkládat příkazy a dělat věci. Zkuste to: vyberte řádek v editoru informací, stiskněte Ctrl + C pro kopírování a poté pomocí kláves Ctrl + V vložte jej do konzoly. Stiskněte klávesu enter a uvidíte, že přesně stejná akce se stane znovu!

nyní Zkuste toto: otočit, změnit měřítko a něco přesunout nebo provést další tři akce v řadě. Zkopírujte všechny tři z editoru informací a vložte je do konzoly. Teď jsi udělal tři věci najednou! Neexistuje žádný limit na to, takže byste mohli dělat stovky věcí najednou tímto způsobem, pokud jste chtěli. Dokonce i když jdete dál do kódování, to je skvělý trik, aby v zadní kapse.

ukládání příkazů pomocí textového editoru

lov přes spoustu příkazů a kopírování / vkládání po celou dobu je samo o sobě docela únavné, pokud to děláte hodně! Ušetříme si čas a zefektivníme multitasking pomocí textového editoru Blenderu.

vytvořte nový textový soubor a zkopírujte a vložte tři nebo více různých akcí z editoru informací do textového editoru. Začnu přidáním krychle:

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

pak budu otáčet kostku podél osy Z:

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, to je hodně kódu pro něco tak jednoduchého! Pokud vás to neobtěžuje, pokračujte a nechte si to. Pokud to však považujete za zastrašující, zkuste odstranit vše kromě hodnoty a orientované osy, aby bylo snazší číst. Zbytek jednoduše převezme výchozí hodnoty.

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

a Konečně, pojďme přidat zkosení modifikátor:

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

jedna další věc, kterou musíte udělat, aby se skript spustit, je typ:

import.bpy

V horní části souboru, takže to může číst Mixér Python. Je také užitečné zapnout tři tlačítka pro čísla řádků, zalamování slov a zvýraznění syntaxe v záhlaví textového editoru.

tady to máte, nyní máte scénář! Nyní můžete udělat tři velmi důležité věci najednou kliknutím spustit skript v záhlaví textového editoru. Pokud jej chcete uložit na později nebo použít v jiném souboru, přejděte na Text – > Uložit jako a uložte jej jako soubor .py Python.

pokud jste vyzkoušeli jiné příkazy než já a váš skript nefunguje podle očekávání, je to pravděpodobně kvůli kontextu-který objekt je vybrán nebo který editor je aktivní. V Blenderu 2.8 můžete vybrat nebo zrušit výběr objektů nastavením vlastnosti selection na hodnotu True nebo False:

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

všechny Automatické dokončování krupobití

některé příkazy, které má Blender, lze provést pouze pomocí kódu a nejsou nalezeny v rozhraní. Kromě toho, jiné věci, které se mění v rozhraní (jako drhnutí časové osy), vám v editoru informací vždy nedávají něco, co můžete zkopírovat a vložit.

vždy můžete použít Dokumenty Google nebo Blender API, které vám pomohou najít správný příkaz k tomu, co potřebujete, ale často je snazší jej najít pomocí automatického doplňování. Pokud začnete psát adresu v konzole Python, můžete stisknout Ctrl + Space a Blender vám ukáže všechny dostupné způsoby, jak dokončit to, co jste napsali. Je to skvělý způsob, jak procházet codebase a objevovat nové funkce.

textový Editor má také funkci automatického doplňování Ctrl+Space, ale nefunguje to stejně a obecně není tak užitečné. Pokud je to něco, co byste často používali, doporučil bych popadnout doplněk automatického doplňování kódu Jacquese Luckeho, který vám umožní pracovat mnohem rychleji.

úžasné šablony

pokud chcete změnit skript na správný addon, ke kterému lze přistupovat pomocí tlačítka v rozhraní nebo v nabídce, vestavěné šablony Blenderu jsou skvělým místem pro začátek. Tam může být mnoho, na paměti, když přijde na to, jak poskytnout informace, které je vidět v Uživatelských Preferencí nebo jak se zaregistrovat addon tak, že se to zobrazí správně, tak šablony jsou skvělá věc, viz (nebo zkopírovat a vložit z), pokud narazíte.

Vlastně Učení Python

Pokud jste užil vytvářet vlastní skripty, ale cítím se trochu zklamaný, na jejich nedostatek energie (udělal jsem nějaké velké sliby na začátku!), pak je čas dozvědět se více o Pythonu a programování obecně. Pojmy jako proměnné, smyčky a funkce jsou nezbytné pro vytvoření něčeho skutečně nového nebo mocného. Trochu znalostí může jít dlouhou cestu, takže to opravdu stojí za to další úsilí. Doporučil bych kopat do Pythonu na jednom z následujících webů. Nejsme nijak spojeni, jen odvádějí dobrou práci.

  • Team Treehouse
  • Code Academy
  • Data Camp
  • Learn Python

Odeslat Pomoc!

nevyhnutelně uvíznete uprostřed vytváření vlastních skriptů a doplňků. Stává se to nejlepším z nás! Zde jsou místa, kam můžete jít se ptát na kódování v Mixéru:

  • Mixér StackExchange
  • Mixér DevTalk

můžete se také dozvědět více tím, že sleduje tyto kurzy na CG Cookie:

  • Úvod do Skriptování v Pythonu v Blenderu
  • Skriptování pomocí Pythonu Handler Funkcí v Blenderu
  • Skriptování Vlastní Plošinu UI v Blenderu