[aktualizacja: 2023-11-06]
Jest to uaktualniona (do Blender 3.4) wersja mojego starego artykułu Blender jako narzędzie do tworzenia grafiki dla Ogre.
Podstawy
Podstawy obsługi programu
-
obsługa widoku 3D:
- obracanie: [środkowy przycisk myszy]
- przesuwanie: [Shift]+[środkowy przycisk myszy]
- przybliżanie: [kółko przycisk myszy]
- widok pierwszoosobowy: [Shift] + [`]
- sterowanie: [w] / [s] (do przódu / tyłu), [a] / [d] (lewo / prawo), [e] / [q] (w górę / w dół)
- wyjście z trybu: kliknięcie (kamera zostaje jak ustawiona) lub [Esc] (powrót do kamery z przed wejścia w tryb pierwszoosobowy)
- przełączanie widoków:
- perspektywa: [Numpad 5]
- od góry / dołu (wzdłóż osi Z): [Numpad 7] / [Ctrl] + [Numpad 7]
- od frontu / tyłu (wzdłóż osi Y): [Numpad 1] / [Ctrl] + [Numpad 1]
- od boków (wzdłóż osi X): [Numpad 3] / [Ctrl] + [Numpad 3]
- przełączanie "Edit Mode" i "Object Mode": [Tab]
- przełączanie "Pose Mode" i "Object Mode" (gdy zaznaczona armatura): [Ctrl]+[Tab]
- ustawianie kursora 3d na zaznaczeniu, zaznaczenia na kursorze 3d itd: [Shift]+[s]
- przełączanie widoczności (i zaznaczania) zasłoniętych obiektów / elementów (X-Ray): [Alt] + [z]
-
zaznaczanie:
- zaznaczanie kliknięciem lub ramką: [lewy przycisk myszy]
- rozpoczęcie zaznaczania powoduje odznaczenie, aby dodawać / usuwać z aktualnego zaznaczenia należy użyć:
- [Shift] gdy klikamy wierzchołki
- [Shift] / [Ctrl] gdy używamy ramki, aby odpowiednio dodawać / usuwać z zaznaczenia
- użycie [Ctrl] wraz z zaznaczaniem przez klikanie powoduje zaznaczenie ścieżki od aktywnego (ostatnio klikniętego) elementu do aktualnie klikniętego elementu
- rozpoczęcie zaznaczania powoduje odznaczenie, aby dodawać / usuwać z aktualnego zaznaczenia należy użyć:
- uwaga 1: istotny wpływ na zaznaczanie ma:
- tryb narzędzia zaznaczania: [w] (powyższe dotyczy trybu "Select box")
- aktywność trybu X-Ray: [Alt] + [z]
- uwaga 2: kolejność zaznaczania (w szczególności pierwszy/ostatni obiekt) ma znaczenie dla niektórych z operacji
- zaznaczanie/odznaczanie wszystkiego: [a]
- aby działało w trybie odznaczania konieczne jest zaznaczenie "Select All Toggles" w Preferences → Keymap
- zaznaczanie okręgiem przyczepionym do kursora: [c], następnie:
- [lewy przycisk myszy] → zaznaczanie
- [Shift] → odznaczanie
- [kółko myszy] → zmiana wielkości okręgu
- [Esc] → wyjście z trybu
- automatyczne zaznaczanie:
- połączonych: [Ctrl] + [l]
- pętli w oparciu o zaznaczoną krawędź: [Select] → [Select Loops] → [Edge Loops] oraz [Select] → [Select Loops] → [Edge Rings]
- płaszczyzn w oparciu o zaznaczony face: [Select] → [Select Linked] → [Linked Flat Faces] (później można wybrać kąt o jaki mogą odbiegać)
- podobnych (np. krawędzi oznaczonych jako ostre gdy zaznaczona jest ostra): [Shift] + [g]
- powiększanie / zmniejszanie zaznaczenia (o sąsiednie / brzegowe obiekty): [Ctrl] + [Numpad +] / [Ctrl] + [Numpad -]
- do zaznaczania możemy także:
- pozycji w oknie "Outliner" (w trybie edycji obiektów)
- grup wierzchołków ("Vertex Groups" w zakładce "Object Data") lub przypisanych materiałów (zakładka "Materials") okna "Properties" (w trybie edycji siatki)
- zaznaczanie kliknięciem lub ramką: [lewy przycisk myszy]
-
ukrywanie, pokazywanie ukrytych (pozycja [Hide/Show] w menu [mesh] lub [object]):
- ukrywanie zaznaczonych wierzchołków: [h]
- ukrywanie nie zaznaczonych wierzchołków: [Shift]+[h]
- pokazywanie ukrytych: [Alt]+[h]
-
manipulowanie zaznaczonymi obiektami/fragmentami mesh-a:
- kopiowanie (powielanie):
- pełne: [Shift]+[d]
- linkowanie (niedostępne w "Edit Mode"): [Alt]+[d]
- usuwanie: [Delete]
- przenoszenie: [g]
- skalowanie: [s]
- obracanie: [r]
- po wyborze przenoszenia/skalowania/obracania:
- można wskazać kierunek: [x], [y], [z] lub płaszczyznę: [Shift]+[x], [Shift]+[y], [Shift]+[z]
- podać wartość numeryczną z klawiatury
- ustalić wartość numeryczną myszą - dostępne są modyfikatory powolnie [Shift] lub z krokiem [ctrl]
- (po włączeniu trybu przyciągania - ikona magnesu na dolnym pasku widoku 3D) wskazać obiekt do którego zostanie dorównany przenoszony lub skalowany obiekt / fragment siatki; przełączniki obok ikony magnesu pozwalają wybrać do czego przyciągamy (krawędzie, punkty, etc) oraz który punkt jest dorównywany (aktywny, element, środek, etc); możliwe jest dociąganie tylko w wybranym kierunku poprzez jego wskazanie jak powyżej
- uwaga: istotny wpływ na skalowanie i obroty ma wybór "Transform Pivot Point" (dostępny w nagłówku okna "3D View")
- kopiowanie (powielanie):
Podstawy edycji siatki
-
wyciąganie wierzchołków wraz z krawędziami (wytłaczanie): [Alt]+[e]
podstawowe opcje (dostępność zależy od tego co jest zaznaczone - nie da się wyciągać ścian jeżeli nie zanzaczyliśmy ścian):- Faces - wyciągnięty będzie obszar (zewnętrzne ściany), może służyć do robienia wgłębień
- Faces Along Normals - wyciągnięty będzie obszar (zewnętrzne ściany) w kierunkach prostopadłych do ścian, może służyć do nadawania grubości, dla lepszych efektów na ogół warto zastosować opcję "Offset Even" (przełączanie z użyciem [s] po aktywacji narzędzia)
- Individual Faces - wyciągnięte będą ścianki (wierzchołki gdzie ścianki stykają się pod kątem zostaną powielone)
- Edges - wyciągane będą krawędzie (a między nimi utworzone zostaną ściany)
- Vertices - wyciągane będą wierzchołki (zostaną one połączone krawędzią z wierzchołkiem z którego są wyciągane)
-
wypełnianie krawędzią lub płaszczyzną: [f]
- 2 wierzchołki → krawędź
- 3-4 wierzchołki → płaszczyzna z ew. uzupełnieniem krawędzi
- więcej wierzchołków → płaszczyzny pomiędzy zaznaczonymi krawędziami
-
podział:
- zaznaczonych krawędzi (krawędzie dzielone wg równych proporcji, w panelu opcji narzędzia można podać m.in. liczbę cięć): [Ctrl]+[e] → [Subdive]
- nożem (knife): [k]
- opcja wymaga narysowania łamanej wg której będzie przeprowadzany podział (odcinki zatwierdza się klikając - punkty przecięć zmienią kolor z zielonych na czerwone) i zatwierdzenia całości Enterem
- aby przecinać nie tylko widoczne należy użyć C po aktywacji narzędzia
- pętlą: [Ctrl]+[r] (najpierw wybór pętli, potem przesunięcia w ramach niej, regulacja ilości podziałów: [kółko myszy], akceptacja (domyślnych) podziałów symetrycznych: [prawy przycisk myszy])
- pomiędzy zaznaczonymi wierzchołkami: [j]
-
wydzielanie zaznaczenia do osobnego obiektu: [p] → [Selection]
-
redukowanie wierzchołków:
- łączenie zaznaczonych wierzchołków: [m]
- usuwanie powielonych wierzchołków (w panelu opcji narzędzia można wybrać odległość determinującą to czy wierzchołki są zdublowane czy nie): [m] → [By Distance]
- redukcja złożoności mesha: w zakładce "Modifiers" w oknie "Properties" dodajemy modyfikator "Decimate" (fajne efekty daje "planar" około 7st)
-
wektory normalne (flip, merge, split, przeliczanie z płaszczyzn, ...): [Alt]+[n]
Narzędzia edycji siatki
-
ścinanie krawędzi/narożników bryły na zaznaczonych krawędziach: [Ctrl] + [b]
podstawowe opcje:- liczba podziałów: [kółko myszy] lub [s] liczba
- ścinanie krawędzi i narożników / tylko narożników: [v] (aby od razu wejść w tryb wierzchołków można użyć [Ctrl] + [Shift] + [b])
- tryb ścinania narożników: [n]
- uwaga 1: zmieniając "shape" i "profile type" (dostępne w panelu narzędzia) możemy wpływać na tryb ścinania krawędzi (np. uzyskać wcięcie do wewnątrz)
- uwaga 2: narzędzie może być użyte także do podziału krawędzi i wierzchołków wewnątrz mesha (położonych w jednej płaszczyźnie)
-
podział siatki na zaznaczonym wierzchołku lub krawędzi: [v]
-
wyciąganie zaznaczonego wierzchołka lub krawędzi z zachowaniem wszystkich krawędzi łączących go z sąsiednimi: [Alt] + [v]
-
przesuwanie wierzchołka po krawędzi, krawędzi po płaszczyźnie: [Shift] + [v] (vertex slide) lub [g] → [g] (edge slide / vertex slide w zależności od tego co jest wybrane)
- edge slide nie może odbywać się po przesuwanej krawędzi, vertex slide z dwoma połączonymi wierzchołkami może
-
umieszczanie obiektu na powierzchni innego:
- wybrać "snap to face projection" i zaznaczyć "align rotation to target" w opcjach przyciągania (magnesu)
- przenieść obiekt na powierzchnię z użyciem [g]
- obiekt zostanie umieszczony na powierzchni w taki sposób aby kierunek jego osi Z był zgodny z wektorem normalnym powierzchni (jego płaszczyzna XY była styczna do powierzchni)
- dostosować prostopadłe do powierzchni obroty obracając obiekt wokół lokalnej osi Z ([r] → [z] → [z])
Warto pamiętać:
-
tryb edycji proporcjonalnej pozwala na "płynną" modyfikację siatki – wprowadzenie proporcjonalnych zmian w niezaznaczonych / nie edytowanych wierzchołkach w pewnym promieniu od nich (wizualizowanym przy pomocy okręgu, regulowanym kółkiem myszy)
-
oprócz korzystania z domyślnych układów odniesień (global / local / normal / ...) możemy tworzyć własne, w tym calu zaznaczamy obiekt z którego orientację chcemy pobrać i na liście wyboru orientacji wybieramy plus
-
skalowanie tylko odległości między obiektami: w prawym panelu → "Tool" → "Affect Only" = "Location"
-
skalowanie tylko obiektów (bez odległości między nimi) / obracanie indywidualnych obiektów: w "Transform Pivot Point" wybrać "Indyvidual Orings"
-
wtyczka "Loop Tool" dodaje opcje umieszczania zaznaczonych vertexów na okręgu itp (dostępne dostępne pod prawym przyciskiem)
Wektory normalne
- Object → Shade Auto Smooth
- ustawia opcję w "Object Data Properties" → Normals
- respektuje "Sharp" na krawędziach (działa na łączeniu ostrych krawędzie, więc potrzebne minimum dwie)
- można wybrać kąt: 0 st → wszystkie ostre 180 st → ostre tylko zaznaczone domyślnie 30 st
- Object → Shade Smooth
- wyłącza opcję "Auto Smooth" w "Object Data Properties" → Normals
- nie zmienia ustawionego kąta, zachowuje ustwienie ostrości krawędzi
- ignoruje ustawienie ostrości krawędzi
- wyłącza opcję "Auto Smooth" w "Object Data Properties" → Normals
-
Object → Shade Flat
- nadpisuje (w sposób ukryty) opcję w "Object Data Properties" → Normals
- nie zmienia jej ustawień ani ustawień krawędzi
- przełączanie opcji w "Object Data Properties" → Normals nie zmienia cieniowania dopóki nie wybierzemy Object → Shade Smooth
-
Face → Shade Smooth / Shade Flat
- wymaga ustawienia "Shade Smooth" lub "Shade Auto Smooth" na poziomie obiektu (nie działa z "Shade Flat")
- wymusza sposób cieniowania danej ściany
- włączenie "Object → Shade Smooth" a następnie "Object → Shade Auto Smooth" (z kątem 180) czyści ustawienie flat ścian
-
Mesh → Normal → Split / Merge
- działa podobnie do ustawienia / wyczyszczenia krawędzi jako ostrej (także oznacza ją jako ostrą / kasuje to oznaczenie)
- automatycznie przechodzi z "Object → Shade Smooth" na "Object → Shade Auto Smooth"
- dodaje Custom Split Normal Data w "Object Data Properties" → "Geometry Data"
Materiały i tekstury
Kilka materiałów w jednym meshu
Jeżeli chcemy nałożyć na fragmenty obiektu inny materiał niż na całą resztę należy (po przypisaniu materiału podstawowego):
- w "Edit Mode" zaznaczyć powierzchnie (wierzchołki) na które chcemy nałożyć inny materiał
- w zakładce "Material" okna "Properties" wybrać/utworzyć materiał który chcemy dla nich zastosować i przypisać go do nich klikając "Assign"
Nie należy szaleć z ilością materiałów zastosowanych w ramach pojedynczego mesh-a, gdyż może to być problematyczne przy eksporcie do innych formatów.
Teksturowanie UV
Jeżeli chcemy nałożyć na obiekt teksturę która będzie na nim mapowana wg określonych współrzędnych:
- w "Edit Mode":
- zaznaczenie krawędzi, w których chcemy rozciąć siatkę celem zmapowania na płaską teksturę i oznaczenie ich jako szwów poprzez [Mesh] → [Edges] → [Mark Seam]
- zaznaczenie wierzchołków których mają być mapowane (nie musimy mapować na teksturę całości obiektu) oraz wykonanie ich mapowania poprzez [Mesh] → [UV Unwraping] → [Unwrap] (możemy wybrać inny tryb mapowania)
- w oknie "UV/Image Editor":
- wczytanie tekstury
- dostosowanie rozkładu wierzchołków w oknie UV (przydatne jest ukrywanie fragmentów mesha)
- w oknie "Shader Editor":
- utworzyć nowy materiał
- dodać node textury z obrazka: [Add] → [Texture] → [Image Texture]
- wczytać w nim teksturę
- połączyć jego wyjście "Color" z wejściem "Color" "Principled BSDF"
- uwaga: pojedynczy obiekt (mesh) może posiadać wiele map UV, można je dodawać usuwać i wybierać aktywną (edytowaną) w "Properties" → "Object Data", w "Shader Editor" możemy korzystać z różnych mapowań UV przy pomocy "UV Map" node ([Add] → [Input] → [UV Map])
Tworzenie tekstur i map normalnych z obiektu 3D (baking)
Za przykład pliku z przygotowanymi obiektami do takiej operacji może posłużyć: Creating seamless Textures of diffrent Surfaces
- w "Shader Editor" dla materiału płaszczyzny dodajemy (niepodłączony) node "Image Texture" ([Add] → [Texture] → [Image Texture]) i wybieramy w nim nowy obrazek
- w oknie "3D View":
- zaznaczamy trójwymiarowy obiekt
- zaznaczamy z shiftem płaszczyznę nad nim
- obiekt będzie oznaczony na pomarańczowo, a płaszczyzna na żółto
- w oknie "Properties" w zakładce "Render":
- wybieramy "Cycle"
- otwieramy sekcję "Bake"
- zaznaczamy "Selected to Active"
- ustawiamy tryb na "Normals" i przestrzeń "Tangent"
- naciskamy przycisk "Bake"
- w oknie "UV/Image Editor":
- powinniśmy zobaczyć wygenerowaną teksturę, a przy menu "Image" powinna pojawić się gwiazdka
- w menu "Image" wybieramy "Save as Image"
- ponawiamy kroki 3 i 4 wybierając tryb "Texture" (jeżeli potrzebujemy odzwierciedlić w teksturze efekt krzywizn możemy użyć "Ambient Occlusion" lub "Full Render")
Uzyskaliśmy dwa pliki tekstur - zwykłej i mapy normalnych dla wybranego obiektu. Technikę tę możemy stosować nie tylko dla płaszczyzn ale także dla bardziej skomplikowanych obiektów.
Blender umożliwia także wypalanie materiałów proceduralnych do tekstury. Realizowane jest to podobnie, przy czym nie potrzebujemy drugiego obiektu (i nie zaznaczamy "Selected to Active"), a "Image Texture" musi znajdować się w materiale wypalanego obiektu.
Animacje
Grupy wierzchołków
Blender umożliwia grupowanie wierzchołków wewnątrz pojedynczego mesha w ramach "Vertex Group". Ma to zastosowanie głównie do przypisywania kości,a le może być też uzyteczne do zaznaczania wybranych fragmentów siatki w trybie edycji, zwłaszcza gdy trzymamy się zasady jeden obiekt (asset) - jeden mesh (zamiast konstruować obiekty oparte na hierarchii obiektów).
Aby przypisać wierzchołki do grupy należy:
- zaznaczyć je w trybie edycji
- w "Properties" → "Object Data" → "Vertex Group" wybrać odpowiednią grupę i kliknąć Assign
- okno to umożliwia też dodawanie nowych grup, należy jednak pamiętać że dodanie gruypy z zaznaczonymi wierzchołkami nie powoduje dodania ich do tej grupy
- fakt dodania można sprawdzić klikając "Unselect" - wierzchołki powinny zostać odznaczone
Dodawanie kości
- w "Object Mode" dodajemy armaturę ([Add] → [Armature])
- mając zaznaczoną uzyskaną kość przechodzimy do "Edit Mode"
- dodajemy kolejne kości
- Ogre wymaga aby statyczne wierzchołki także były skojarzone z jakąś kością
- warto dla każdej z grupy wierzchołków zdefiniować osobną kość (umożliwia to m.in. zachowanie informacji o grupach wierzchołków przy eksporcie)
- w oknie "Outliner" ustawiamy odpowiednie nazwy naszym kościom - skojarzenie grupy wierzchołków z kością odbywa się na podstawie identyczności nazwy
- mając zaznaczony obiekt do którego przynależna jest armatura w oknie "Properties" w zakładce "Modifiers" dodajemy modyfikator "Armature" i ustawiamy w nim "Object" na utworzoną wcześniej armaturę
Tworzenie animacji
- w oknie "3D View" zaznaczamy armaturę animowanego obiektu i wybieramy tryb "Pose Mode"
- w oknie "Dope Sheet" w trybie "Action Editor" dodajemy nową akcję i nadajemy jej unikalną nazwę (np. na zasadzie nazwa_obiektu-nazwa_akcji)
- przygotowujemy klatki kluczowe animacji:
- w "Action Editor" przesuwając zielony wskaźnik ustawiamy numer klatki animacji
- w "Pose Mode" ustawiamy kości a następnie zapisujemy ramkę poprzez [Pose] → [Animation] → [Insert Key Frame...] (alternatywnie [i]) i wybranie co ma zostać zapisane (np. whole character)
- ponawiamy dwa poprzednie kroki dla kolejnych ramek
- manipulując markerami klatek kluczowych dla poszczególnych atrybutów poszczególnych kości w "Action Editor" możemy dokonywać korekt przygotowywanej animacji
- klikamy "Stash" w "Action Editor"
- wracamy do kroku 2 dla kolejnej animacji (w "Action Editor" możemy kopiować i np. odbijać w czasie wcześniej przygotowane animacje, co jest przydatne przy tworzeniu animacji zamknij/otwórz)
Biblioteka Assetów i Linkowanie obiektów
Blender oferuje kilka opcji pracy na linkowanych obiektach (np. z biblioteki assetów):
- poprzez używanie tego samego mesha w nowych obiektach (ale musimy jawnie kopiować ustawienia na poziomie obiektu - np. modyfikatory)
- poprzez "Collection Instance" bezproblemowy dostęp do położenia, obrotów i skali, ale trudniejszy do "wnętrzności" obiektu
- poprzez "Library Override" wymaga jawnego nadpisania aby poruszyć obiekt, ale pozwla też na (łatwe lub w miarę łatwe) nadpisywanie "wnętrzności" - np. materiałów
położenie i obroty linkowanego obiektu
- dodać (linkowany) asset z biblioteki na scenę
- wybrać linkowany obiekt w scenie i użyć "Object ▸ Library Override ▸ Make"
wypakowanie linkowanego Collection Instance
- dodać (linkowany) asset (typu Collection Instance) z biblioteki na scenę
- wybrać linkowany obiekt w scenie i użyć "Object ▸ Library Override ▸ Make"
- obiekty z kolekcji zostaną wypakowane jako linkowane obiekty z aktywnym "Library Override"
wypakowanie Collection Instance (linkowanego lub nie)
- dodać asset (typu Collection Instance) na scenę
- wybrać linkowany obiekt w scenie i użyć "Object ▸ Apply (Ctrl A) ▸ Make Instances Real"
- warto pamiętać o zaznaczeniu opcji "Parent" i "Keep Hierarchy" w panelu narzędzia po jego aktywacji
- obiekty z kolekcji zostaną wypakowane jako kopie obiektów z linkowanymi danymi (taki jak meshe i materiały)
zmiana pozy linkowanego obiektu
- dodać (linkowany) asset z biblioteki na scenę
- wybrać linkowany obiekt w scenie i użyć "Object ▸ Library Override ▸ Make"
- wybrać armaturę linkowanego obiektu w scenie i (ponownie) użyć "Object ▸ Library Override ▸ Make"
- przełączyć się w "Pose Mode"
używanie pozy z biblioteki assetów
- przełączyć się w "Pose Mode" na armaturze docelowego obiektu
- wybrać pozę w przeglądarce assetów
- kliknąć Apply w "Pose Library" w lewym panelu przeglądarki assetów
Konfiguracja
- Blender zapisuje układ okien edycyjnych w edytowanym pliku, wczytywanie UI z pliku może być wyłączone w [Preferences] → [Save & Load]
- Można zapisać aktualny plik blendera jako plik startowy (
~/.config/blender/*/config/startup.blend
,*
zastępuje tutaj numer wersji) - Ustawienia (w tym mapowia klawiszy) są przechowywane osobno (w
~/.config/blender/*/config/userpref.blend
,*
zastępuje tutaj numer wersji) - Mapa klawiszy może być eksportowana i importowana jako plik pythonowy. Zamieszczam zmodyfikowaną mapę klawiszy:
- [Shift] + [Tab] → Object Mode
- [Ctrl] + [o] → Make Library Override
- [Ctrl] + [n] → (Switch) Show Face Orientation
- [Ctrl] + [Shift] + [l] → Select Edge Loops
- [Alt] + [Shift] + [l] → Select Edge Rings
- [Ctrl] + [Shift] + [f] → Select Linked Flat Faces
- wyłączenie automatycznego przechodzenia w widok perspektywy jest w Preferences → Navigation → Auto Perspective
- kompletny plik ustawień oraz konfiguracji UI