Blender 2.8 supermoce Skryptowe Pythona dla nie-programistów

Tworzenie renderów 3d, gier i animacji jest zawsze niesamowicie ekscytujące! Z wyjątkiem sytuacji, gdy staje się to trudne lub żmudne. Jeśli używasz blendera lub innej aplikacji 3D od jakiegoś czasu, znalazłeś się w tym samym zadaniu w kółko i w pewnym momencie myśląc: „naprawdę chciałbym, aby Blender zrobił to za mnie”.

dzięki skryptom może! Co więcej, Python może tworzyć nowe, zabawne funkcje, które nie są nawet możliwe, klikając interfejs.

jeśli jesteś taki jak ja i nie miałeś żadnego szkolenia z informatyki, programowanie może wydawać się czteroliterowym słowem, z wyjątkiem jedenastu liter (2,75 Raza gorzej!). To jak sekretny język, który znają tylko mądrzy ludzie, którzy prawdopodobnie zawsze czytają fakty żywieniowe, budują silniki rakietowe dla zabawy lub mają doktorat z matematyki, która nawet nie używa liczb.

na szczęście wcale tak nie jest. Prawda jest taka, że jeśli możesz użyć Ctrl+C i Ctrl+V do kopiowania i wklejania, możesz od razu zacząć tworzyć własne skrypty Pythona blendera.

przyzwyczajaj się do kodu

terapii ekspozycji. Postępująca odczulanie. Nazywaj to jak chcesz, ale najlepszym sposobem na normalizację czegoś, co początkowo wydaje się dziwne, jest zobaczenie tego wystarczająco często w odpowiednim kontekście.

każda akcja w interfejsie Blendera jest wykonywana za pomocą poleceń Pythona. Możesz to sprawdzić samodzielnie, przełączając oś czasu na Edytor informacji i widząc, co wypluwa, gdy idziesz do normalnej pracy.

edytor informacji może być trochę firehose, ale jest coś w liniach poleceń i takich, które mogą być programowaniem herezji, ale uspokoiły mnie podczas uruchamiania-większość tego, co widzisz, jest tam na wypadek, gdybyś tego potrzebował, a 98% czasu nie będzie tego potrzebować. Więc kiedy robisz coś prostego jak przesuwanie sześcianu i daje Ci to dwa lub trzy pełne linie kodu, możesz zignorować większość z nich. Ważna część jest na samym początku:

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

wiesz już, że nazwa dla przenoszenia czegoś nazywa się 'Przetłumacz’, więc wartości, które pojawią się po tym, to ile przetłumaczyłeś swój obiekt odpowiednio na osiach X, Y i Z. Wszystko przed 'translate’ jest tam, gdzie to polecenie znajduje się w kodzie blendera. To tak, jakby Blender był jednym gigantycznym zagnieżdżonym menu i wybrałeś Blender Python – > Operations – > Transform – > Translate.

istnieje dziewięć głównych sekcji blendera Pythona (BPY). Nie musisz ich zapamiętywać, ale rozpoznanie niektórych z nich może pomóc ci zrozumieć, jak Blender działa pod maską.

  • bpy.aplikacja-Informacje o samym blenderze, które nie zmieniają się podczas pracy.
  • bpy.kontekstowe listy tylko do odczytu tego, co jest aktualnie aktywne w blenderze.
  • bpy.DANE – wszystkie wewnętrzne dane blendera, takie jak obiekty.
  • bpy.msgbus-oznacza „message bus” i służy do powiadamiania blendera o pewnych zmianach. To nie jest coś, o co musimy się martwić.
  • bpy.ops – wszystkie operacje, które możesz wykonać w blenderze, od modelowania po dołączanie plików do renderowania.
  • bpy.path-funkcje, które zajmują się ścieżkami plików.
  • bpy.rekwizyty – różne właściwości, których używa Blender. Używasz tego, aby powiedzieć blenderowi, czy dane wejściowe powinny być liczbą, czy kolorem.
  • bpy.typy-każdy rodzaj rzeczy, który istnieje w blenderze, od modyfikatorów przez tekstury po lampy i wiele więcej.
  • bpy.utils – funkcje użytkowe, które są tylko dla blendera, ale nie zajmują się danymi wewnętrznymi.

jeśli jesteś ciekawy, oto Dokumentacja API dla blendera 2.8 i dla wszystkich poprzednich wersji.

podczas pracy przyzwyczajaj się do sprawdzania, gdzie w kodzie znajdują się Twoje ulubione narzędzia. Nie musisz tego wszystkiego rozumieć w tym momencie – po prostu przyzwyczajaj się do tego, jak to wygląda!

konsola Python Power

gdy będziesz gotowy do następnego kroku, przejdź do zakładki Scripting workspace. W lewym dolnym rogu znajdziesz znany już edytor informacji. Bezpośrednio nad tym znajduje się konsola Pythona, gdzie można wklejać polecenia i robić rzeczy. Spróbuj: wybierz wiersz w edytorze informacji, naciśnij Ctrl+C, aby skopiować, a następnie użyj Ctrl+V, aby wkleić go do konsoli. Naciśnij enter, a zobaczysz, że dokładnie ta sama akcja się powtórzy!

teraz spróbuj tego: Obróć, Skaluj i przesuń coś lub wykonaj inne trzy czynności z rzędu. Skopiuj wszystkie trzy z edytora informacji i wklej je do konsoli. Teraz zrobiłeś trzy rzeczy na raz! Nie ma w tym żadnych ograniczeń, więc możesz robić setki rzeczy na raz w ten sposób, jeśli chcesz. Nawet jeśli nie zagłębisz się w kodowanie, jest to świetna sztuczka, którą możesz trzymać w tylnej kieszeni.

zapisywanie poleceń za pomocą edytora tekstu

polowanie na kilka poleceń i kopiowanie / wklejanie przez cały czas jest dość żmudne, jeśli robisz to często! Zaoszczędźmy trochę czasu i Sprawmy, aby nasza wielozadaniowość była jeszcze bardziej wydajna za pomocą edytora tekstu blendera.

Utwórz nowy plik tekstowy, a następnie skopiuj i wklej trzy lub więcej różnych akcji z edytora informacji do edytora tekstu. Zacznę od dodania kostki:

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

następnie obrócę sześcian wzdłuż osi 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)

Ojej, to dużo kodu na coś tak prostego! Jeśli ci to nie przeszkadza, zatrzymaj to. Jeśli jednak uważasz, że jest to onieśmielające, spróbuj usunąć wszystko oprócz wartości i zorientowanej osi, aby łatwiej było odczytać. Reszta będzie po prostu zakładać domyślne.

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

na koniec dodajmy modyfikator fazy:

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

jedną dodatkową rzeczą, którą musisz zrobić, aby uruchomić skrypt, jest wpisanie:

import.bpy

na górze pliku, tak aby mógł odczytać Blender Python. Pomocne jest również włączenie trzech przycisków dla numerów wierszy, zawijania słów i podświetlania składni w nagłówku edytora tekstu.

masz scenariusz! Możesz teraz zrobić trzy bardzo ważne rzeczy jednocześnie, klikając Uruchom skrypt w nagłówku edytora tekstu. Jeśli chcesz zapisać go na później lub użyć go w innym pliku, przejdź do Text -> Zapisz jako i zapisz go jako plik .PY Python.

jeśli próbowałeś innych poleceń niż ja i twój skrypt nie działa zgodnie z oczekiwaniami, prawdopodobnie jest to spowodowane kontekstem – który obiekt jest zaznaczony lub który edytor jest aktywny. W programie Blender 2.8 można zaznaczać lub odznaczać obiekty, ustawiając ich Właściwość selection na True lub False:

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

All Hail Autocomplete

niektóre polecenia, które ma Blender, mogą być wykonane tylko za pomocą kodu i nie są Znalezione w interfejsie. Ponadto inne rzeczy, które zmieniają się w interfejsie (jak szorowanie osi czasu) nie zawsze dają ci coś w edytorze informacji, które możesz skopiować i wkleić.

zawsze możesz użyć Google lub dokumentów API blendera, aby pomóc Ci znaleźć odpowiednie polecenie, aby zrobić to, czego potrzebujesz, ale często łatwiej jest je znaleźć za pomocą autouzupełniania. Jeśli zaczniesz wpisywać adres w konsoli Pythona, możesz nacisnąć Ctrl + Spacja, a Blender pokaże Ci wszystkie dostępne sposoby na ukończenie tego, co napisałeś. To świetny sposób na poruszanie się po bazie kodu i odkrywanie nowych funkcji.

edytor tekstu ma również funkcję autouzupełniania Ctrl+Spacja, ale nie działa tak samo i ogólnie nie jest pomocny. Jeśli jest to coś, czego często używasz, polecam chwycić za Kod Jacques 'a Lucke’ a autocomplete addon, który pozwoli Ci pracować znacznie szybciej.

wspaniałe szablony

jeśli chcesz zmienić swój skrypt w odpowiedni dodatek, do którego można uzyskać dostęp za pomocą przycisku w interfejsie lub menu, wbudowane szablony blendera są doskonałym miejscem na rozpoczęcie. Może być wiele do zapamiętania, jeśli chodzi o to, jak podać informacje widoczne w preferencjach użytkownika lub jak zarejestrować dodatek, aby był prawidłowo wyświetlany, więc szablony są świetną rzeczą, do której należy się odnieść (lub skopiować i wkleić), jeśli utkniesz.

właściwie Nauka Pythona

jeśli lubisz tworzyć własne skrypty, ale czujesz się trochę rozczarowany ich brakiem mocy (na początku złożyłem kilka wielkich obietnic!), a następnie nadszedł czas, aby dowiedzieć się więcej o Pythonie i programowaniu w ogóle. Pojęcia takie jak zmienne, pętle i funkcje są niezbędne do stworzenia czegoś naprawdę nowego lub potężnego. Trochę wiedzy może przejść długą drogę tutaj, więc naprawdę jest to warte dodatkowego wysiłku. Polecam grzebanie w Pythonie na jednej z poniższych stron. Nie jesteśmy w żaden sposób powiązani, po prostu robią dobrą robotę.

  • Team Treehouse
  • Code Academy
  • Obóz Danych
  • Ucz Się Pythona

Wyślij Pomoc!

nieuchronnie utkniesz w środku tworzenia własnych skryptów i dodatków. Zdarza się najlepszym z nas! Oto miejsca, w których możesz zadawać pytania dotyczące kodowania w blenderze:

  • Blender StackExchange
  • Blender DevTalk

możesz również dowiedzieć się więcej, oglądając te kursy na CG Cookie:

  • Wprowadzenie do skryptów Pythona w blenderze
  • Skrypty z funkcjami obsługi Pythona w blenderze
  • Skrypty niestandardowego interfejsu użytkownika w blenderze