Kurs Blendera (lato 2012)

Warsztaty z Blendera we Wrocławiu w 2016

Hej! Michalis, autor tej strony który prowadził wykład z Blendera na uniwerku, prowadzi teraz warsztaty z Blendera we Wrocławiu.

4 spotkania w niedziele, po 4 godziny, gdzie można nauczyć się od podstaw jak używać Blendera, w szczególności do tworzenia gier. Opowiadamy dużo o modelowaniu, texturowaniu, animacji i masie istotnych technik przy tworzeniu modeli do gier. Warsztaty prowadzimy a ramach naszego małego studia gier indie Cat-astrophe Games:)

2012
Rendering by Dominik Milke
Rendering by Paweł Meller
Rendering by Mateusz Nadolski
Rendering by Łukasz Iwaszczenko
Rendering by Mateusz Lewandowski
Rendering by Robert Ignasiak
Rendering by Mateusz Fedkowicz
Rendering by Paweł Charatonik
Rendering by Katarzyna Dowejko
Rendering by Mariusz Winnik
Rendering by Piotr Gródek
Rendering by Filip Gromuł
Rendering by Marcin Kurek
Rendering by Dawid Kostyszak
Rendering by Łukasz Domański
Rendering by Marek Milczanowski
Rendering by Anna Rudolf
Rendering by Bartłomiej Surma - "Tore my heart for you"
Rendering by Andrzej Kudas
Rendering by Maciej Jaromin
Rendering by Łukasz Gniazdowski
Rendering by Paweł Krzywodajć
Rendering by Sylwester Łuczak
Rendering by Paweł Jańsky
Rendering by Tomasz Wiśniewski
Rendering by Maciej Krzykwa
Rendering by Dominik Ignasiak
2011
Rendering by Maciej Pacut
Rendering by Łukasz Milewski
Rendering by Radosław Bukowski
Rendering by Marcin Kaczmarek
Rendering by Jakub Stępniewicz
Rendering by Tomasz Jonczyk
Rendering by Rafał Maćkowski
Rendering by Mirosława Szewczyk
Rendering by Kamila Tatarynowicz
Rendering by Paweł Bruchmüller
Rendering by Piotr Bzówka
Rendering by Małgorzata Staszewska
Rendering by Anastazja Gojdź
Rendering by Marcin Wierzbicki
Rendering by Błażej Krystek
Animation by Dawid Jurczak (mpg, 2.8 MB)
Animation by Błażej Krystek (mpg, 2.3 MB)
Gra w game engine Blendera, by Marcin Kaczmarek.
Gra w game engine Blendera, by Marcin Kaczmarek. (Więcej)
Animation by Radosław Bukowski
Rendering by Anastazja Gojdź
Animation by Paweł Bruchmüller (avi, 3.1 MB)
Animation by Łukasz Milewski (avi, 6.0 MB)
Animation by Mirosława Szewczyk (avi, 2.5 MB)
Animation by Rafał Maćkowski (avi, 9.2 MB)
2010
Rendering by Konrad Kuźma
Rendering by Sebastian Sporek
Rendering by Konrad Marcińczyk
Rendering by Łukasz Dąbek
Rendering by Michał Tomala
Rendering by Sebastian Szaburo
Rendering by Marek Polewski
Rendering by Łukasz Tomaszewski
Rendering by Jadwiga Andryszak
Rendering by Adam Augustyn
Rendering by Michał Karpiński
Rendering by Marcin Ziętek
Rendering by Rafał Łukaszewski
Rendering by Piotr Diduszko
Rendering by Sebastian Siemko
Rendering by Łukasz Zieliński
Rendering by Maciej Matyasik
Rendering by Grzegorz Gąsior
Rendering by Krzysztof Kusiak
Rendering by Celina Pawlińska
Rendering by Anna Tsima
Rendering by Paweł Bogdan
Rendering by Aleksander Galisz
Rendering by Mikołaj Głowala
Rendering by Agnieszka Marcinkowska
Animation by Konrad Marcińczyk (avi, 19.5 MB)
Animation by Jadwiga Andryszak (avi, 16.1 MB)
Animation by Maciej Matyasik (avi, 3.4 MB)
2008
Rendering by Łukasz Zieliński
Rendering by Wojciech "Spook" Sura
Rendering by Marcin Kulus
Rendering by Łukasz Zieliński
Rendering by Daniel Borzęcki
Rendering by Michał Michalik
Rendering by Patrycja Białowąs
Rendering by Bartosz Pasiński
Rendering by Radosław Janus
Rendering by Katarzyna Obrycka
Rendering by Kamil Rosiński
Rendering by Sebastian Jabłoński
Rendering by Łukasz Zieliński
Animation by Łukasz Zieliński (avi, 993 KB)
Animation by Radosław Janus (avi, 34.3 MB)
Animation by Sebastian Jabłoński (wmv, 2.4 MB)
Animation by Łukasz Krawiec (mpg, 2.6 MB)
Animation by Bartosz Pasiński (avi, 4.0 MB)
Animation by Michał Michalik (avi, 2.5 MB)
Animation by Tomasz Leszczynski (avi, 2.7 MB)
Animation by Kamil Rosiński (mpg, 55.6 MB)
Animation by Bartłomiej Mamzer (avi, 3.9 MB)

Kurs Blendera na II UWr w semestrze letnim. Kurs obejmuje wszystko związane z Blenderem: modelowanie, renderowanie, tworzenie animacji 3D. Spróbujemy opanować część tej listy możliwości Blendera.

  1. Zaliczenie
    1. Wysyłanie zadań
    2. Projekt 1 - modelowanie, rendering
    3. Projekt 2 wersja A - animacja
    4. Projekt 2 wersja B - freestyle
  2. Wykłady i pracownie
    1. Podstawy operowania Blenderem, interfejs Blendera (2 godziny)
      1. Pracownia
    2. Modelowanie (3 godziny)
      1. Pracownia
    3. Podstawy materiałów (1 godzina)
      1. Pracownia
    4. Modelowanie za pomocą krzywych i powierzchni parametrycznych (1 godzina)
      1. Pracownia
    5. Tekstury (4 godziny)
      1. Pracownia
    6. Węzły (nodes) materiałów (1 godzina)
    7. Oświetlenie (2 godziny)
    8. Zaawansowane renderowanie, post-processing przez węzły compositora (~1 godzina)
    9. Podstawy animacji (Ipo Curve Editor, Shapes, Hooks) (2 godziny)
      1. Pracownia
    10. Animacja na kościach, pozowanie (2 godziny)
      1. Pracownia
    11. Fizyka: system cząsteczek (i włosów), soft body (i cloth) (2 godziny)
      1. Pracownia
    12. Fizyka: woda (fluid simulation), rigid body, inne (2 godziny)
    13. Python (~pół godziny)
    14. Python w Blenderze (~4 godziny)
  3. Wykłady z zeszłych lat których nie powtarzamy w tym roku
    1. (2008,2010) Python w Blenderze 2.4x
    2. (2010) Game engine (był tylko skrót w 2011) (~1 godzina)
    3. (2010) Nowości w Blenderze 2.5 (1 godzina)
    4. (2008) Jak to robią phofesjonaliści? (2 godziny)
    5. (2008) Więcej o wykładach na które nie mamy już czasu...
  4. Dokumentacja, tutoriale (i inne linki)

1. Zaliczenie

Nie ma egzaminu.

  1. Pojawi się około ~10 łatwych zadań na pracowniach. Zazwyczaj będą to zadania do zrobienia "na miejscu" w 2 godziny, zazwyczaj łatwe, zazwyczaj będę bezczelnie wykorzystywać istniejące tutoriale do Blendera w sieci. Jeżeli ktoś nie zdąży zrobić zadania na pracowni (albo nie będzie obecny na pracowni) — będzie musiał zrobić zadanie sam i przysłać mi plik .blend.

    Terminy: dla osób obecnych na pracowni, termin wynosi tydzień od daty Waszej pracowni, przy czym spóźnienia ~kilku dni będę traktował liberalnie. Więc mam nadzieję że fakt że grupa czwartkowa zazwyczaj pozna treść zadań nieco wcześniej od poniedziałkowej nie będzie dla nich zbytnią przewagą :) Zobaczymy jak to wyjdzie w praniu.

    Jeżeli ktoś nie będzie obecny na pracowni: macie wtedy tydzień czasu od momentu publikacji zadania na tej stronie. Przy czym haczyk jest taki że do spóźnień będę podchodził bardziej rygorystycznie. Dla osób które nigdy nie będą obecne na żadnej pracowni, dozwolone są tylko 3 spóźnienia. Dla osób chodzących w kratkę, będziemy ustalać coś pomiędzy.

    Spóźnienie = oddanie zadania o max tydzień później. Jeżeli nie oddacie zadania w ciągu 2 tygodni, traktuję to jako 2 spóźnienia i już nie musicie oddawać zadania w ogóle.

    Wybaczcie że nieobecność traktuję tak surowo. Sam jestem notorycznym spóźnialskim, zasypialskim, zawalaczem wszelkich deadline'ów etc., więc osoby którym nie chce się pojawić na pracowni mają moją pełną sympatię. Tym niemniej — praktyka pokazuje że niektóre takie osoby robią bardzo mało w czasie 15 tygodni pracowni, do czego mam sympatię dużo mniejszą. Jeżeli jesteście dobrzy, i zobaczycie że kurs jest dla Was łatwy, i będziecie się wyrabiać w tydzień — cool, możecie pojawiać się na pracowni tylko na oddawanie projektów (patrz niżej), a "normalne" zadania mi przysyłać. Wszystkim innym, polecam chodzić na pracownię.

  2. Ponadto będą dwa większe projekty.

    Projekty będą oceniane nieco bardziej pod kątem jakości "artisticznej" (podczas gdy normalne co-tygodniowe zadania będą raczej oceniane zero-jedynkowo: zrobił OK, albo nie zrobił wcale).

    1. (W miarę) realistyczny rendering statycznej sceny. (Sprawdzamy modelowanie, podstawy materiałów. Prawdopodobnie tekstury i zaawansowane oświetlenie nie będą tu wymagane.)

    2. Animacja (kości z actions, curves). Lub swobodny projekt, z wykorzystaniem czegoś advanced.

Na zaliczenie (na 3) trzeba zrobić 2 projekty byle jak, i wyrobić się z oddawaniem (większości) co-tygodniowych zadań. Na zaliczenie na 5, trzeba zrobić 2 projekty, i to dobrze, i oddać wszystkie zadania.

1.1. Wysyłanie zadań

Normalne, ~co-tygodniowe zadania: trzeba przysłać mailem do prowadzącego pracownię (Michalis: michalis.kambi@proton.me). Zwyczajnie załączcie do maila plik Blendera, xxx.blend. Możecie też wystawić plik gdzieś w sieci i przysłać mi tylko URL, jeśi tak Wam wygodniej.

Kiedy rendering trwa długo a jest ważny dla zadania, prosiłbym też przysłać mi gotowy obrazek / film.

W przypadku niektórych zadań część danych pochodzi z zewnętrznych plików, np. tekstury UV będziemy często ładować ze "zwyczajnych" plików obrazków (png, jpg, etc.). Na szczęście Blender pozwala "spakować" takie zewnętrzne pliki do pliku .blend, co ułatwi Wam wysyłanie a mi odbieranie: wystarczy użyć menu File -> External Data -> Pack into .blend file (pojawi się ikonka "paczki" na menu i obok spakowanych tekstur).

Na oddawaniu projektów będę chciał zobaczyć Was osobiście.

1.2. Projekt 1 - modelowanie, rendering

1.3. Projekt 2 wersja A - animacja

Temat projektu: animacja.

  1. Nie narzucam wymagań na długość animacji. W zależności od pomysłu, kilka sekund może być równie trudne do wykonania co kilka minut. Za standard uznajmy kilkadziesiąt sekund. Naturalnie chodzi tylko o zrobienie jednej sceny, nie robimy całych filmów.

  2. Kluczowe wymaganie to że animacja musi zawierać co najmniej cztery nie-trywialne animowane elementy.

    Nie-trywialne oznacza że sam ruch kamery, albo przesuwanie obiektu za pomocą dwóch kluczy w dwóch różnych ramkach są zbyt proste żeby je liczyć do tej trójki. Nie-trywialny może być elegancki krok postaci, albo soft body które przedstawia coś realnego (nie "ręcznik spada na stół" :), albo cząsteczki które wyglądają jak eleganckie ognisko / komary / iskry / cokolwiek realnego, albo woda rozpryskująca się ładnie... etc. Ogólnie, trzeba użyć poznanych technik aby stworzyć animację w której "o coś chodzi", która przedstawia jakieś wiarygodne, ciekawe zdarzenie.

    Znamy różne rodzaje animacji: curve follow, armatura, shape keys, cząsteczki, włosy, soft body, cloth pod wpływem siły, rigid body... Można wykorzystać dowolne spośród nich.

  3. Naturalnie trzeba też ładnie wymodelować, użyć materiałów, oteksturować, oświetlić swoją scenę. Filmik ma być ładny — można pobawić się np. compositorem.

Samurai Jack - Bridge scene Przykładowa animacja jaką sobie wyobraziłem: człowiek idzie ścieżką przez las (kamera obserwuje go z góry i zza pleców) (krok przez armature = 1. nietrywialna animacja). Dochodzi do mostu, takiego klasycznego baśniowego starego skrzypiącego mostu z drewnianymi deskami i linami po obu stronach. Człowiek wchodzi na most, most chwieje się (odpowiednie chwianie, tak żeby różne kawałki mostu nieco różnie się chwiały, może być np. zrobione przez odpowiednie dobranie prostego animowania rotacji z nieznacznym ruchem softbody pod wpływem wiatru — 2. nietrywialna animacja). Człowiek idzie dalej po moście, po czym deska w moście łamie się i człowiek spada (razem 3. nietrywialna animacja, różnie można to wykonać) do rzeki po mostem (rozprysk wody w rzece przez fluid simulation - to już 4. nietrywialna animacja).

Proszę przysyłać mi wynik jako plik .blend oraz wyrenderowany filmik. Tak jak przy poprzednim projekcie, będę też chciał zobaczyć Was osobiście przy zaliczaniu projektu.

1.4. Projekt 2 wersja B - freestyle

Projekt polega na zrobieniu w zasadzie czegokolwiek efektownego w Blenderze. Własne pomysły (po konsultacji ze mną) mile widziane, propozycje:

2. Wykłady i pracownie

2.1. Podstawy operowania Blenderem, interfejs Blendera (2 godziny)

Dokumentacja:

Na potrzeby pierwszego wykładu, interesują Was głównie rozdziały "Introduction" i "Interaction in 3D" ("Wprowadzenie" i "Interakcja w 3D") w powyższej dokumentacji.

Poniżej znajduje się skrót wykładu. Notka: różne wykłady na poniższej stronie mają różnej jakości omówienia. Niniejszy wykład, pierwszy, ma najgorsze omówienie, kompletny skrót głównie dla prowadzącego. Umówmy się że tak jest celowo: dla własnego dobra, nauczcie się najpierw korzystać z oficjalnych manuali Blendera do których linki są powyżej. Podstawy obsługi Blendera są omówione wyczerpująco we wszystkich manualach, wszystkich początkowych tutorialach etc.

2.1.1. Pracownia

Och, początek będzie naprawdę łatwy. Zrobimy to od czego zaczynają wszyscy: 1. Static Gingerbread Man. Opcjonalnie (kto chce, żeby się nie nudzić na pracowni): zrób także 2. Animating the Gingerbread Man. Wersja tych tutoriali dla starszego Blendera 2.4x jest tu. i tu.

Tutorial pokazuje podstawy kilku technik które będziemy w pełni omawiać na wykładzie dopiero za kilka tygodni. Fear not: te podstawy są naprawdę łatwe i nie wymagają żadnego "przygotowania teoretycznego".

Alternatywnie, jeżeli już ktoś to robił w domu: wymodeluj dowolny prosty przedmiot + pokryj podstawowymi materiałami + dodaj podstawowe oświetlenie + wyrenderuj + opcjonalnie dodaj dowolną animację.

Różne uwagi które pokażę na początku pracowni:

2.2. Modelowanie (3 godziny)

[docs - większość rozdziału "Modeling", szczególnie część o "Meshes"]

(Podstawowe narzędzia — przesunięcie, rotacja, skalowanie, extrude, remove doubles były na 1 wykładzie).

2.2.1. Pracownia

Zabawimy się w modelowanie low-poly głowy człowieka. Będzie tu trochę zabaw z meshem, orientowaniem się w nisko-poziomowej edycji siatki (będziemy "ręcznie" dodawać ściany etc. podążając za tutorialem), tak żeby uchwycić proporcje w/g rysunku.

Chciałbym żebyśmy zrobili pierwszą część tego tutoriala, razem z wypełnieniem "And the back of the head:" (bez "The back of the neck" i późniejszych). Ponadto pomijamy zabawę ze sferami w oczach ("You can also extrude in the eyelids by", "let's go ahead and add a sphere for the eyeball") — wystarczą nam otwory na oczy. I pomijamy zabawę z ustami ("Modeling the lips") — wystarczy nam otwór w kształcie warg.

Różne uwagi (ułożone ~w miarę w takiej kolejności w jakiej będą przydatne do tutoriala) :

  1. Pamiętajcie o "Axis" w ustawieniu Background. W lewym-górnym rogu widoku 3D macie napisane jaki widok pokazuje, po 1/3/7 na numpad. Ustawcie okna jak należy, i nieustannie kontrolujcie w jednym widoku czy to co robicie w drugim na sens.

    Zamiast Background można też spróbować obrazki powiązane z obiektem Empty — jest to nieco inne, z kilku względów lepsze (nie znika po skasowaniu 3d view, swobodne obracanie/skalowanie), podejście.

    Osobiście lubię ułożyć sobie 2-3 okna z widokiem 3D, i co chwila maksymalizować / przywracać jedno z nich przez Ctrl+Up (albo Ctrl+Down, to to samo).

  2. Pamiętajcie ustawić background offsets idealnie, inaczej jeden widok będzie przekłamywał drugi: front: 1.85, 0 left: -2.8, -0.1 (uh, albo na odwrót, tzn. zamienić left / front; rozpoznacie na pracowni).

  3. Po Ctrl+R (edge loop) escape sprawi że utniecie sześcian dokładnie na środku.

  4. Większość operacji na siatce robimy w edit mode, chcemy żeby center pozostał w centrum głowy. Więc już przy początkowym ustawieniu chin najlepiej przesuwajcie / obracajcie go tylko w edit mode.

  5. Pamiętajcie o "Do Clipping" — żeby vertexy na środku ładnie się łączyły. Na chwilę można to wyłączać (kiedy przypadkiem nasz vertex "zlapał" się w płaszczyznę mirrora, i chcemy go oddalić od niej, trzeba na chwilę wyłączyć "Do Clipping"), ale tylko na chwilę! Normalnie pracujemy z "Do Clipping" włączonym cały czas.

  6. Starajcie się robić ~taką samą ilość kroków extrude co autor — to jest ważne później, zbyt duża / zbyt mała może sprawić ze później będziecie mieli trochę więcej pracy. Np. 3 kroki extrude od chin do początku ucha, etc. Patrzcie na screenshoty gdzie autor zaczyna / kończy swoje extrude — przy zagięciu kości etc.

  7. W jednym widoku zazwyczaj chcecie przesuwać wierzchołki tak żeby nie zepsuć drugiego widoku — MMB w trakcie przesuwania robi lock żeby przesuwać wzdłuż jednej osi.

  8. Na początku pracujemy z jednym meshem w którym są rozłączne elementy. Pamiętajcie o zaznaczaniu prez L (linked).

    Przydatne zaznaczenie to także "Zaznacz edge + Ctrl+E + edge loop select".

  9. Pamiętajcie przestawiać się pomiędzy vertex/edge/face select (jest na headerze, Ctrl+Tab klawiszami). Osobiście przełączam się pomiędzy nimi co chwila.

  10. W okolicach wypełniania (pomiędzy nosem a ustami) można już zacząć nieznacznie odpobiegać topologią od oryginału, bo i screenshoty nie pokazują już wszystkich szczegółów. To jest Ok — tylko ostrożnie!

    Pamiętajcie że można zawsze rozbić krawędź na dwie (np. Ctrl+R i tnij na środku, albo K i midpoints), i zmienić krawędź w punkt (np. Alt+M, merge, na jej vertexach).

  11. Przy wypełnianiu: jeżeli topologia nam nie pasuje, to 1. patrz wyżej — można zawsze zrobić sobie +1 wierzchołek po drodze, 2. można wypełniać trójkątami, które zawsze jakoś wepchniemy żeby załatać topologię. Klawisz F umie robić i trójkąty i czworokąty.

    Uwaga: nie używamy dzisiaj więcej-kątów, nie używamy beautify fill etc. Dzisiaj dodajemy każdy trojkąt/czworokąt osobno, to nam daje większą kontrolę.

    Ważne jest przy wypełnianiu "jechać" zazwyczaj ~stosunkowo podobnymi 4-kątami.

  12. Nienegocjowalny warunek: pamiętajcie że koniecznie musicie zrobić model ładnie "zamknięty" (każda krawędź ma 1 lub 2 sąsiadów). Żadnych ukrytych trójkątów o 0 powierzchni w modelu, żadnej dodatkowej geometrii w środku!

  13. Pod koniec pracy warto zobaczyć jak to "naprawdę" wygląda: set smooth, + modifier subsurf.

2.3. Podstawy materiałów (1 godzina)

[docs - rozdział Materials, od Introduction do Multiple Materials]

2.3.1. Pracownia

Coś free style i łatwego, w sumie odpoczynek. Nie ma dokładnego tutorialu, ale mamy cel: dążymy do czegoś jak na screenshocie Clear Glass ale niekoniecznie idealnie takiego — można fantazjować. Chcę zobaczyć kilka kopii czegoś przypominającego kieliszek lub kubek, zrobionego przez przekrój + Spin + subsurt + dostrajanie subsurfa przez "create subsurf". Zamiast "spin" można też próbować z modyfikatorem "Screw", chociaż niekiedy ma on problemy z wygładzaniem, tzn. z prawidłowymi wektorami normalnymi. Kieliszki mają stać na powierzchni i na tle (tzn. najprościej postawić je na sześcianie z 3 ścianami usuniętymi).

Chcę żebyście pobawili się materiałami, w szczególności lustrami i przezroczystością poprzez ray-tracing. Kieliszki mają wyglądać na szklane, i muszą mieć co najmniej przezroczystość (w wersji "Raytrace"), tzn. musimy wyraźnie widzieć (nieznacznie zniekształconą) scenę za nimi. Ponadto chcę żeby coś było wyraźnym lustrem, tzn. niech jakiś obiekt ewidentnie pokazuje odbity w lustrze kawałek sceny (najłatwiej wstawić sześcian(y) pomiędzy kieliszki i poobracać je tak żeby w lustrze widzieć coś sensownego).

Nie mówiliśmy jeszcze zbyt wiele o oświetleniu, ale pierwszy hint: nie ograniczajcie się do 1 światła, wrzućcie z ~3-4 światła żeby na scenie było jasno i mieć nieco mniej nudne cienie.

2.4. Modelowanie za pomocą krzywych i powierzchni parametrycznych (1 godzina)

[docs - Curves], [docs - Editing Curves]

2.4.1. Pracownia

Chciałbym żebyście zrobili oba tutoriale poniżej:

  1. Obrysowywanie kształtu krzywymi Beziera (przy czym nie chodzi o uzyskanie takiego renderingu jak na końcu tutoriala, nam wystarczy samo modelowanie symbolu krzywymi + bevel, bez materiałów / tekstur etc.).

  2. A Ride Through the Mines (updated link do blendernation.com) (przy czym zależy nam tylko na zrobieniu kształtu konstrukcji, bez animacji, czyli przy "For lighting, create a spotlight..." możecie przestać czytać :) ).

Uwagi do nowego Blendera:
  1. Po dodaniu krzywej, kliknijcie na 2D (domyślnie nowy Blender dodaje je w wersji 3D). Jeżeli zapomnieliście tego zrobić, to przestawcie krzywą na 2D później (inaczej Bevel nie będzie działać), ale pamiętajcie najpierw obrócić krzywą tak żeby była Ok w widoku XY. Przejście 3D->2D rzutuje krzywą na 2D.
  2. Do 2-go tutoriala: pamiętajcie odkliknąć "Speed" żeby duplicate działało.

2.5. Tekstury (4 godziny)

Tekstury można też animować na różne sposoby. Pobawimy się tym przy okazji animacji.

Poza manualem, jeden z przydatnych artykułów o materiałach i teksturach (chociaż teraz już trochę stary, pisany pod starszego Blendera) jest tutaj.

Przy okazji: Blender Open Material Repository. Można podglądać materiały i ściągać pliki blend z ich ustawieniami. "All materials are completely free and the creators agree to set them under public domain".

2.5.1. Pracownia

e1m1_camera1 e1m1_camera2
e1m1_screen_0 e1m1_screen_1
e1m1_screen_2 e1m1_screen_3

Oto model w Blenderze dwóch pomieszczeń z levelu DOOMa E1M1.

Jest tam geometria (całość jako jeden mesh Blendera), wstawiłem Wam też kilka byle-jakich świateł (zwykłe światła punktowe Lamp z cieniami RayShadow) i dwie kamery.

Ściągnijcie go, i zróbcie rendering z obu kamer. (Pamiętaj że możesz zmieniać aktywną kamerę (z której jest robiony rendering) przez View->Set Active Object As Active Camera w menu widoku 3D.)

Zadanie: oteksturuj jeden z pokoi. Który chcesz, i jak chcesz.

Pamiętajcie przejść na widok "Texture" (Alt+Z) żeby w ogóle widzieć tekstury UV w widoku interaktywnym.

Pamiętajcie że w widoku "Texture" działa backface culling, czyli ściany które są z tyłu (z innej strony niż wskazują wektory normalne) są ukryte. "Recalculate Normals" outside/inside przestawia która strona jest widoczna (checkbox "inside" zobaczysz zaraz po wykonaniu "recalculate normals" w "tool shelf" po lewej; Ctrl+N, Ctrl+Shift+N). Można też wyłączyć backface culling: w nowym Blenderze 2.6 mamy do tego prosty checkbox, w trybie "Blender Game" (na headerze zmień "Blender Render" na "Blender Game") na materiale zobaczymy panel "Game Settings" w którym znajdziemy "Backface culling" (i kilka innyc związanych opcji).

Dobre rady: mamy do czynienia z nieco niewygodną geometrią, bo pokoje są zamknięte, a nas interesuje wygląd tekstur w środku pokoju. Część zabawy to nauczyć się sobie z tym radzić:

Uwaga do przysyłania: jeśli używacie tekstur z obrazków, pamiętajcie zrobić File -> External Data -> Pack into .blend file. Jeżeli celujecie w ładny wygląd na renderingu, please załączcie wyrenderowany obrazek dla mojej wygody :)

2.6. Węzły (nodes) materiałów (1 godzina)

Nodes (węzły) materiałów czyli jak wygodnie składać materiały i tekstury. (Przy okazji, to jest też odpowiedź na pytanie "co zrobić kiedy 10 kanałów tekstur to za mało").

2.7. Oświetlenie (2 godziny)

[docs].
Także [Introduction to Lighting (z Blender Summer of Documentation)]

2.8. Zaawansowane renderowanie, post-processing przez węzły compositora (~1 godzina)

2.9. Podstawy animacji (Ipo Curve Editor, Shapes, Hooks) (2 godziny)

[docs - cały rozdział "Animation Basics"]

2.9.1. Pracownia

Pracownia z podstaw animacji Zadanie składa się z czterech punktów, ale don't panic. Nie zależy nam na żadnym specjalnym modelowaniu, byle tylko była sugestia tego o czym piszę. Nie zależy nam też na żadnych materiałach ani oświetleniu ani kamerze, w ogóle nie zależy nam na renderowaniu. Animacje które stworzycie powinny być w 100% obserwowalne w interaktywnym widoku Blendera (pod Alt+A etc.). Obok screen z moim wynikiem podpunktów 1-2: o coś takiego mi chodzi.

  1. Zabawa z ruchem wzdłuż krzywej:

    • Stwórz prosty teren z dwoma wzgórzami (zwykły grid z dwoma wzgórzami wyciągnietymi przez proportional editing jest Ok).

    • Stwórz tory które leżą mniej-więcej na powierzchni tego terenu i przechodzą przez szczyty obu wzgórz. Tory mają być stworzone przez proste wygięcie przekroju torów wzdłuż krzywej, zupełnie tak samo jak robiliśmy w zadaniu Ride through the mines.

    • Stwórz prosty model wagonika. Może być naprawdę trywialny, wystarczy sześcian z usuniętą górną ścianą i nieco zwężonym dołem.

    • Podczep pod wagonik 4 kółka, tak żeby wagonik był parentem kółek (przesunięcia/obroty etc. wagonika mają przesuwać też kółka). Kółka mają się obracać w nieskończoność — zrób to poprzez krzywą z Extrapolation = Linear (być może przyda się też Copy Keyframes / Paste Keyframes, jeżeli najpierw zduplikowaliście kółka a dopiero potem dodajecie animację; wystarczy dodać dowolną krzywą na Rotation przez "I", i na nią wkleić poprzednią krzywą przez Paste Keyframes). Żeby obrót kółek był widoczny, niech będą albo mocno kanciaste (np. "kółko" de facto jest 8-kątem) albo dodaj byle-jaką sugestię "szprych" w kółkach. Podkreślam żeby nie przejmować się zbytnio modelowaniem, to ma być sugestia szprych — prostopadłościany odpowiednio włożone w spłaszczony cylinder wystarczą.

    • Animacja jazdy wagonika: wagonik na początku jest po lewej stronie lewego wzgórza. Chcemy żeby wagonik wjechał na szczyt lewego wzgórza, potem zjechał w dół pomiędzy dwa wzgórza, potem spróbował z rozpędu wjechać na prawe wzgórze... i nie dał rady. Tuż przed szczytem prawego wzgórza, wagonik zwalnia, i zsuwa się z powrotem w dolinę pomiędzy wzgórzami. Po czym z rozpędu podjeżdza kawałek pod lewe wzgórze, zawraca i z rozpędu podjeżdża mniejszy kawałek pod prawe wzgórze, i tak kilka razy aż w końcu zatrzymuje się nieruchomo na środku pomiędzy wzgórzami.

      Chcemy to zrobić przez zupełnie trywialną animację wagonika wzdłuż krzywej. Zamiast robić to przez Ctrl+P, zrobimy to lepiej: dodaj constraint Follow Path do wagonika, skonfiguruj go dobrze, po czym dodaj klatki kluczowe na Evaluation Time krzywej. Pierwszą klatkę dodajemy przez "I" kiedy mysz jest ponad kontrolką Evaluation Time, potem patrzymy na krzywą ruchu (funkcja czas->pozycja wzdłuż krzywej) w okienku Graph Editor, i ustawiamy tą krzywą tak żeby realizowała powyższą animację.

  2. Do sceny z poprzedniego podpunktu dodaj prostą kałużę z falującą wodą:

    • Zrób wgłębienie w terenie (zwykłe wyciągnięcie wzgłębienia przez pociągnięcie w dół vertexa z proportional editing wystarczy).

    • Dodaj mały grid nieznacznie wsunięty poniżej poziomu płaskiego terenu, i ustawiony tak żeby udawał powierchnię wody w zagłębieniu.

    • Za pomocą modyfikatora Displace i tekstury proceduralnej (Clouds jest tutaj dobrym, ale nie jedynym, wyborem) dodaj falki na wodzie.

    • Animuj teksturę przesuwając jej współrzędne: Ustaw Texture Coordinates modyfikatora Displace aby współrzędne tekstury były brane z położenia nowego obiektu Empty, animuj ten Empty.

    Zupełnie nie przejmujemy się materiałem wody.

  3. Weź model głowy zrobiony na poprzedniej pracowni. Za pomocą Shape Keys dodaj animację zamykania / otwierania ust.

  4. Do modelu głowy z poprzedniego zadania: Za pomocą Hooks dodaj animację uśmiechania się (poprzez ciagnięcie w gorę kącików ust), ale bez otwierania ust.

    Pobaw się kombinacjami dwóch animacji z 3 i 4: np. uśmiech z jednoczesnym rozdziawieniem ust. Zamiast uśmiechu można wybrać inny grymas ust. Albo inny kawałek twarzy i inna animacja. Ważne jest aby pobawić się Shapes i Hooks na pobliskich miejscach twarzy.

2.10. Animacja na kościach, pozowanie (2 godziny)

[docs - cały rozdział "Character Animation & Armatures"]

[Introduction to Character Animation]świetny tutorial, przeprowadzający od absolutnych podstaw (łącznie z modelowaniem) poprzez używanie armatury, weight painting, shape keys, action editor, NLA editor. Zawiera większość informacji które będą dzisiaj na wykładzie. Polecam.

[Introduction to Rigging] — dużo wartościowych, niekiedy zaawansowanych, uwag o tworzeniu armatury. Także przykłady armatury dla konkretnych zastosowań. Polecam przejrzeć kiedy będziecie już obznajomieni z armaturą.

Sample models do dzisiejszego wykładu: "Introduction to Character Animation" zawiera gotowy model i filmik dla leniwych, można też zobaczyć na moją wersję ((i filmik z niej). Będziemy też bawić się [sample - octopus] (i wyrenderowany filmik). Pokażę zapewne też kilka stworków z mojej gry, ale nie podam linku, bo są zbyt kiepskie :)

2.10.1. Pracownia

Wersja aktualna dla 2012 poniżej.

Proponuję przerobienie niewielkiego kawałka tutoriala Character Animation z Blender Summer of Documentation. Cały tutorial jest dość długi, i stanowi eleganckie ćwiczenie właściwie z wszystkich istotnych narzędzi animacji: kości, shapes, actions,... Ale jest na tyle długi że nie będziemy go robić całego.

Wasze zadanie to jedynie podpięcie kości pod nogi człowieczka i stworzenie eleganckiej animacji kroku. Czyli robimy:

  1. "Lower body: building the armature and weight painting"
  2. "Final rig adjustment" (tylko tą jego część która dotyczy kolan: "knee-lock targets so we can control where the knees point". Treść tego zaczyna się od "Here's something that needs fixing", aż do początku "Eye tracking")
  3. "Animating a walkcycle"
  4. Po czym nazywamy naszą akcję kroku, i przy pomocy NLA sprawiamy że ludzik wykona 10 kroków zamiast jednego.
  5. Kiedy już mamy elegancką animację 10 kroków w miejscu, przesuwamy armaturę (która powinna przesuwać też mesha, albo jako parent mesha, albo przez constraint "copy location" — do wyboru) tak żeby ludzik rzeczywiście szedł do przodu. Czas ruchu należy mniej-więcej dopasować tak żeby był zsynchronizowany do tego jak szybko nogi przesuwają się w trakcie kroku — zbyt szybkie/wolne przesuwanie sprawi że ludzik będzie wyglądał jakby ślizgał się po lodzie lub grzązł w ziemi. Być może, trzeba będzie zrobić ruch z nie-jednostajną szybkością.

Jako punkt początkowy można wziąć gotowy .blend z modelem (tylko meshem) humanoida z poprzednich części tutoriala (na końcu większości sekcji są do pobrania pliki ze skończonymi kawałkami). Albo można zrobić własny model, zupełnie "na oko" i byle jak (ważne jest tylko żeby był eleganko pozamykany, perfekcyjnie symetryczny (zapewne robiony pod modyfikatorem "Mirror", pamiętajcie aby był symetryczny w lokalnej osi X żeby później "X-axis mirror" działało), miał mniej-więcej kształt dwunożnego humanoida, nakładamy na niego też "subdivision surface").

Dla osób obecnych na wykładzie, w ramach przeprosin za moje spóźnienie, bonus: robicie z tutoriala tyle ile zdążycie zrobić w czasie 2 godzin pracowni, po czym zadanie macie zaliczone :)

2.11. Fizyka: system cząsteczek (i włosów), soft body (i cloth) (2 godziny)

[docs - cały rozdział "Effects and Physical Simulation" z podręcznika]

"Physical Simulation" z Blender Summer Of Documentation

2.11.1. Pracownia

Zadanie polega na zabawie z poznanymi na dzisiejszym wykładzie technikami animacji. Chcę żebyście użyli:

  1. Animacji przy użyciu cząsteczek — proponuję dodanie śniegu do sceny.

  2. Włosów — proponuję dodanie owłosienia (warkocza na głowie, albo pomysłowego owłosienia na całym ciele) dla tego ogra.

    (Notka: model ogra nie jest "rigged" (nie ma armatury), i niech tak sobie po prostu stoi nieruchomi z rozpostartymi ramionami; w tym tygodniu nie interesuje nas armatura, więc nie musicie go w żaden sposób animować.)

    (Notka 2: w zasadzie, ogr ma wymodelowaną sugestię włosów / warkocza na głowie. Nie przejmujemy się tym drobiazgiem — dodajemy nasze włosy / dodatkowe warkocze na wierzchu :) Interesuje nas użycie particles typu "hair" do zrobienia prawdziwych, ładnych włosów.

  3. Sił i soft body z goal — proponuję dodanie łopoczącej flagi, model flagi możecie wyciągnąć stąd.

Czyli proponuję zrobienie kilunastosekundowego filmiku na którym owłosiony ogr stoi z rozpostartymi ramionami pod łopoczącą flągą, i naokoło pada śnieg.

Zamiast ogra i flagi możecie też użyć innych modeli z opengameart lub blendswap. W ten sposób chciałbym skorzystać z okazji i polecić Wam dwie strony skąd można czerpać przykładowe modele Blendera, na jasnych licencjach open-source:

Przy okazji, to dobry moment żebyście pobawili się używaniem "File->Append" w Blenderze, na wypadek gdybyście jeszcze nie poznali tego polecenia. Tak można dodać zasoby z innego pliku .blend do Waszego.

I jeszcze przy okazji, pamiętajcie że kiedy otwieracie modele ze starego Blendera (2.4x), zazwyczaj wygodnie jest odznaczyć checkbox "Load UI" przed załadowaniem (inaczej zostanie załadowany stary układ okien (np. properties na dole w poziomie), który jest mocno niewygodny w nowym Blenderze). Jeżeli już popełnicie ten błąd (zapomnicie oznaczyć "Load UI"), zazwyczaj najwygodniej jest Ctrl+N (załaduj z powrotem scenę i układ okien domyślny) i otworzyć model jeszcze raz (tym razem pamiętając odznaczyć "Load UI").

2.12. Fizyka: woda (fluid simulation), rigid body, inne (2 godziny)

[sample - rigid_and_soft_body], jeżeli będzie czas na wykładzie.

2.13. Python (~pół godziny)

Bardzo krótkie wprowadzenie do Pythona (na chwilę zapominając o Blenderze):

2.14. Python w Blenderze (~4 godziny)

Wracamy do Blendera. Integracja, uruchamianie skryptów w Pythonie z Blendera:

Dokumentacja:

Wprowadzenie do skryptów Pythona w Blenderze:

Linki do gotowych skryptów Blendera: Scripts/Catalog

3. Wykłady z zeszłych lat których nie powtarzamy w tym roku

3.1. (2008,2010) Python w Blenderze 2.4x

Kilka starych uwag dotyczących skryptów w Pythonie w Blenderze 2.4x.

3.2. (2010) Game engine (był tylko skrót w 2011) (~1 godzina)

Introduction to the Game Engine (z Blender Summer of Documentation) — elementarne wprowadzenie do game engine.

gameBlender Documentation — dokumentacja game engine z czasów Blendera 2.12. Czyli dość stara, ale w 90% jest ciągle aktualna i zawiera naprawdę solidne omówienie wielu przycisków / opcji game engine. Wersja w HTML jest tutaj (chociaż w/g wersji jest jeszcze starsza — ale nie zauważyłem znaczących różnić).

Dokumentacja Python API specjalnie dla Blendera

Dokumentacja wiki do game engine. Trochę, ehm, miejscami surowa, w zasadzie luźny zbiór linków.

samples: poza moimi [sample - octopus_controlled] i [sample - gametests], popatrzymy też na ładne demo (z ruchem akcjami na klawiaturę, kamerą zza pleców) z 3rd Person Camera Collision Detection.

3.3. (2010) Nowości w Blenderze 2.5 (1 godzina)

To tylko skrót wybranych rzeczy z 2.5 release notes. Od 2011, różne elementy tego wykładu są de facto omawiane po drodze, jako normalne feature'y w nowym Blenderze.

3.4. (2008) Jak to robią phofesjonaliści? (2 godziny)

Projekcja + przeglądanie danych użytych do zrobienia "Elephants Dream" i "Big Buck Bunny". Przy okazji tego drugiego filmiku zerkniemy też na niektóre nowości w Blenderze 2.46 (see release notes dla 2.46).

Krótki plan:

3.5. (2008) Więcej o wykładach na które nie mamy już czasu...

  1. Jeszcze więcej o materiałach i renderowaniu

    ...czyli różne ciekawe rzeczy, specjalne efekty etc. na które nie było wcześniej czasu albo "nie byliśmy na nie jeszcze gotowi" (nie znając podstaw materiałów i tekstur). Część tych efektów może przeniesiemy do wykładu o renderowaniu.

    Materiał - Halo [docs]

    Materiał - Subsurface Scattering [docs]

    Vertex painting [docs]

    Radiosity [docs - Introduction to Radiosity, Radiosity Rendering, Radiosity Baking]

    Worlds & Backgrounds [docs - rozdział z manuala] (trochę bawiliśmy się różnymi przyciskami World przy okazji różnych wykładów i tutoriali).

    Zewnętrzne renderery — Yafray, inne? [docs]

  2. Verse: otwarty protokół do komunikacji pomiędzy programami 3D.

    (To zapewne zbyt krótkie na wykład, ale warto pokazać przy jakiejś okazji. Być może na pracowni urządzić zabawę tym?)

    Nie jest specyficzny dla Blendera, może być (i jest) używany przez inne programy (patrz np. gra Love, Uni-Verse, Crystal Space 3D).

    Do czego służy? Przede wszystkim do wspólnego tworzenia światów 3D. Zmiany sceny 3D są natychmiast widoczne przez wszystkie inne osoby połączone z tym samym serwerem Verse (o ile "zasubskrybowały" odpowiedni obiekt). Może też służyć do udostępnienia siły obliczeniowej jednego komputera innym (np. rendering uruchamiany na jednym kliencie jest wykonywany (częściowo?) przez innego klienta), chociaż nie wiem czy jest to możliwe w Blenderze aktualnie (Blender pozwala na rozproszone renderowanie na inne sposoby, chociażby przez użycie zewnętrznego renderera).

    Ze strony Verse-Blender można pobrać gotową skompilowaną wersję Blendera z włączonym supportem dla Verse. (Chociaż jest to dość stara wersja Blendera — do "prawdziwej" pracy polecałbym skompilowanie najnowszego Blendera samemu.) Jest też króciutki tutorial, w ciągu 5 minut można nauczyć się co oferuje Verse.

Dokumentacja:

Tutoriale:

Blueprints, czyli rysunki / obrazki referencyjne (jeżeli znacie inne dobre linki, zgłaszajcie mi!):