Skocz do zawartości

Kroopson

Members
  • Liczba zawartości

    1 296
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    6

Zawartość dodana przez Kroopson

  1. Kroopson

    Developer kit

    Nie tylko ten dział jest martwy 😄 Ale tak - zostałem archeologiem roku 😛
  2. Kroopson

    Developer kit

    https://www.autodesk.com/developer-network/platform-technologies/maya?_ga=2.140706674.1561330207.1580127987-809375111.1556172938 Na dole strony
  3. Musisz mieć w sobie sporo miłości do koparek 🙂 Model jest boski.
  4. Kroopson

    3dsmax 2018 i windows 10

    No dobra - w razie gdyby ktoś jeszcze miał taki problem: Przyczyną tego błędu jest Perforce, a dokładniej to P4V. Problem polegał na tym że Perforce dodaje się domyślnie do ścieżki systemowej (zmienna środowiskowa PATH) i zawiera w swoim katalogu biblioteki Qt5 np Qt5Core.dll, Qt5Gui.dll, Qt5Widgets.dll, ale nie ma Qt5Qml.dll do której QtXml.pyd z instalacji 3dsMax'a jest zlinkowany. Po usunięciu Perforce'a ze ścieżki systemowej wszystko zaczyna działać. Ot - kolejny dzień z życia w pipeline'ach :)
  5. Hej - czy używa ktoś może windowsa 10 i 3dsMax'a 2018? Mam taki problem na windowsie 10 kiedy próbuję odpalić komendę w script editorze (python): from PySide2 import QtXml dostaję błąd: Traceback (most recent call last): File "", line 1, in ImportError: DLL load failed: The specified procedure could not be found. Dzieje mi się tak dopiero przy drugim i kolejnym uruchomieniu maxa, przy pierwszym działa (to jakieś kuzorium normalnie)
  6. Bake -> Bake to scene and delete, tylko musisz sobie klip zaznaczyć.
  7. Odbiegnę trochę od tematu ale nie zgodzę się że programowanie sprowadza się do problemów logicznych. To jest punkt widzenia osoby która podchodzi do zagadnienia na zasadzie "muszę napisać funkcję a, w trakcie pisania okazało się że potrzebuję funkcji b, potem funkcji c" itd. To tak jakby powiedzieć że tworzenie concept artu sprowadza się do problemu właściwego prowadzenia pociągnięć pędzla. Jeżeli zaczynasz projektować złożone systemy to niestety jest to taka dziedzina której nie każdy ogarnie, podobnie jak nie każdy kto potrafi wiernie odwzorować ołówkiem martwą naturę będzie w stanie być kreatywnym artystą. Inżynieria oprogramowania to zagadnienie holistyczne i często wchodzi tu czynnik intuicji twórcy. Patrzysz na jakiś kod/system/narzędzie i gdzieś w sobie czujesz czy to jest "ładnie albo nieładnie". Można powiedzieć że tak jak do obrazu tak i do kodu trzeba "mieć oko". Są oczywiście pewne ściśle określone wzorce ale tak samo i w pracy artystycznej masz np złotą proporcję, zasady kompozycji itp. Taka anegdota: Jak miałem 20 lat to wybrałem kierunek studiów: wychowanie fizyczne. Kilku moich kolegów z osiedla skończyło w tym samym czasie studia informatyczne, jeden nawet dostał wyróżnienie za jakość pracy magisterskiej. Ilu z nich pracuje jako programiści? Zero. Najbliżej jest facet który uczy w technikum informatyki, reszta po zaliczeniu ostatnich egzaminów zajęła się czymś kompletnie innym pomimo tego że zdawali egzaminy np z podstaw programowania w assemblerze, C++, robili skomplikowane projekty "na zaliczenie". Tak samo jak w sztuce potrzebna tutaj jest jakaś "Boża iskra", nie wystarczy odhaczać sobie kolejne skille tak samo jak nie wystarczy wyćwiczyć szrafunek żeby już tworzyć sztukę.
  8. Napisał Marvin - Maya TD :) Jasne - mogą Cię nie interesować narzędzia do zapisywania plików, ale kiedyś np miałem taki case że pisałem tool do wspomagania symulacji ubrań w Platige. Nazywał się ShmaTex i robił mniej więcej to: Ładował cache animacji dla ujęcia dla postaci które miały być symulowane (alembic). Obliczał centrum geometrii dla wszystkich klatek animacji, tworzył locator który podążał za tym centrum. Tworzył locator który miał animację dokładnie odwrotną względem początkowej pozycji ale mnożoną przez jakąś liczbę między 0 a 1. 0 oznaczała że wogóle się nie animował, .5 animował się ale o połowę mniej, 1 w pełni się animował odwrotnie do pierwszego locatora. Wtedy tworzył się cluster na geometrii, który przypinał się do tego locatora drugiego który był przeciwieństwem ruchu pierwszego. Dawało to taki efekt że postać jeśli np w alembic'u szła do przodu to po użyciu tego narzędzia stała w miejscu i machała kończynami albo szła 30% wolniej albo szła z pełną prędkością. To bardzo pomagało w symulacji ubrań bo np jak trzeba było symulować pelerynę czarownika na latającym smoku to smok latał 100km/h i nCloth przy tym durniał kompletnie. Tool pozwalał też zapisać scenę z aktualnymi ustawieniami nCloth'a, puścić symulację na renderfarmie i dalej lokalnie sobie zmieniać ustawienia. Renderfarma wypuszczała preview i upload'owała to preview do Shotguna dzięki czemu zamiast czekać 30m na wynik symulacji lokalnej można było kilka wariantów naraz sprawdzać i wybrać najlepszy. I teraz powiedz Marvin ile tym skryptom do robienia DNA które masz w demo brakuje do tego typu rzeczy ;) Jakbyś zamiast sam animować to DNA musiał dać ludkom "skrypt do robienia DNA bo mamy 150 ujęć z DNA". Tutaj nie ma jasnej granicy. Praca "tech artystów" i pipeline'owców w wielu obszarach się pokrywa.
  9. Szeregowca ;) developmentem pipeline'u kieruję ja a nad sobą mam jeszcze dyrektora. Jeśli chodzi o to co robią pipeline'owcy. Oto przyklady: http://pyblish.com/pyblish-starter/ Tu kilka przykładów moich rzeczy z czasów kiedy implementowaliśmy Shotguna w Platige Image (lata 2013-2014): https://vimeo.com/119321423
  10. np w Maya, Maxie, Blenderze itp. Python jest super uniwersalny pod warunkiem że nie chodzi o operacje realtime'owe i króluje w VFX'ach. W gamedevie jest jeszcze wciąż nieco egzotyczny ale szturmem zdobywa sobie miejsce. Ogólnie rzecz biorąc pipeline'y assetowe w grach są mniej więcej na takim etapie jak VFX'owe około roku 2009.
  11. "Klasyczna" ścieżka jest taka że ktoś dużo animuje/modeluje i musi wykonywać dużo powtarzalnych czynności. Jedni będą klikać (i jest to ok), inni są "kreatywnie leniwi" i szukają sobie sposobu na ułatwienie sobie życia. Zaczyna się od kopiowania outputu z historii komend w Maya, później pierwsze funkcje, pierwsze klasy i narzędzia GUI. W końcu człowiek więcej programuje niż modeluje/animuje, zaczyna się zabierać za tematy typu automatyzacja zarządzania plikami, cache'owanie animacji, procesowanie plików, renderfarmy. Druga ścieżka to riggerzy. W dzisiejszym świecie rigger który nie programuje to nie rigger a granica między pipeline TD a riggerem jest baaardzo rozmyta. Trzecia ścieżka (jedna z kluczowych osób w moim zespole tak właśnie weszła w temat) to wejście prosto z poziomu programisty pythona, baz danych i webdevu. Dla takich ludzi taka praca jest dość egzotyczna bo mamy bardzo różnorodne tematy (poza VFX/Gamedevem rzadko się chyba zdarza żeby ktoś pisał jednocześnie full stack webserwisy, narzędzia w Qt, pluginy do Maya i konfigurował serwery na linuxie). Co trzeba umieć żeby zacząć? Trzeba umieć programować w pythonie na takim poziomie żeby być w stanie napisać samodzielnie jakieś narzędzia do modelowania, zapisywania plików, jakiś pose library albo narzędzia do rigowania. Warto znać podstawy linuxa nawet w gamedevie bo masę automatyzacji robi się na serwerach linuxowych. No i trzeba być przygotowanym na ciągłą naukę i warunki pracy znacznie bardziej "hardkorowe" niż np w software house'ach. Tu nie ma biur na 50 piętrze w centrum, korpo lunch'ów i swag'u. Za to jest ciekawie i dość atrakcyjnie finansowo (może nie w porównaniu do programistów w banku ale nie jest źle). Widzę że mój post wzbudził trochę fermentu ;) Dobrze - o to chodziło ;)
  12. Hej. Od dłuższego czasu poszukujemy ludzi na stanowisko Pipeline TD i zastanawia mnie czemu generalnie jest aż taka posucha. W porównaniu z tym tematem znalezienie programisty np Java do backendu webserwisów to pikuś. Regularnie dostaję propozycje pracy z całego świata - UK, Chin, Kanady, Niemiec co znaczy że tam też brakuje na tyle że chcą ściągać ludzi z drugiego końca świata (pozdrowienia dla rodzimej ekipy TD w Weta ;) ). Ja rozumiem że jak ktoś jest artystą to ciężko jest zostać artystą/programistą ale bez przesady; aż tak trudne to to nie jest, a warunki zatrudnienia o klasę lepsze niż dla "zwykłego artysty". Po co to piszę - po to że może któremuś z młodszych kolegów zapali się lampka że jest do wypełnienia całkiem ciekawa nisza na rynku z praktycznie zerową konkurencją, a po kilku latach jak się komuś znudzi pisanie narzędzi to może pracować już dalej jako "regularny programista". Mówiąc krótko... Y U NO LEARN?! :)
  13. Które ujęcia kto robił? Generalnie najlepszy cinematic od PI od dawna, w wielu miejscach mam zagadkę: CG czy shoot. Gratulacje z mojej strony :)
  14. Ten żółty komunikat to informacja o cyklu w czymś co się nazywa Dependency Graph. A mesh Ci się kolapsuje pewnie dlatego że głupieje HIK (pewnie właśnie przez cykl).
  15. Nasz dział prawny mówi że możemy to odliczać (żeby była jasność pracuję jako programista, nie grafik). W tej chwili jestem na B2B i mam pewne obawy czy jeśli przeszedłbym na umowę o dzieło to czy za pół roku nie ogłoszą że to była pomyłka, jednocześnie blokując możliwość pracy na B2B (or something). Jest to lekka paranoja ale w Polsce nigdy nic nie wiadomo :)
  16. Hej - w tym roku rząd podniósł limit kosztów uzyskania przychodu przy umowie o dzieło z przeniesieniem praw autorskich do jakichś 85000, co technicznie oznacza że do osiągnięcia przychodów rzędu 170 000 płacimy około 10% podatku. Coś mi tu jednak mocno "śmierdzi" i wydaje się to to zbyt piękne żeby było prawdziwe. Może ktoś ma jakieś przemyślenia na ten temat?
  17. Ładnie, bardzo ładnie... w gruncie rzeczy światowa czołówka, produkcja niczym nie odstająca od cinematic'ów innych firm. Naprawdę gratulacje.
  18. Jakiś czas temu szukałem widgeta od "buforowania" (ten kręcący się wiatraczek), nie znalazłem i użyłem gifa. Mam trochę czasu w domu to napisałem taki widgecik. Może komuś się przyda :) from PySide.QtGui import QWidget from PySide.QtGui import QPainter from PySide.QtGui import QColor from PySide.QtCore import QTimer, Qt, QRect from PySide.QtCore import Slot import time class SpinningWheelWidget(QWidget): def __init__(self, parent=None, spin_steps=12, bar_roundness=1.0, ticker_color=QColor(255, 255, 255), fade_to_color=QColor(32, 32, 32)): QWidget.__init__(self, parent) self.spin_steps = max(8, spin_steps) self.bar_width = .1 self.bar_height = .5 self.bar_roundness = max(0.0, min(1.0, bar_roundness)) self._fps = 24 self._current_step = 0 self._last_tick = time.time() self._step_interval = 1.0 / self.spin_steps self._update_timer = QTimer() self._update_timer.setInterval(1000 / self._fps) # noinspection PyUnresolvedReferences self._update_timer.timeout.connect(self.fade_colors) # --- Colors setup self.r_from = ticker_color.red() self.g_from = ticker_color.green() self.b_from = ticker_color.blue() self.r_to = fade_to_color.red() self.g_to = fade_to_color.green() self.b_to = fade_to_color.blue() self._lerps = list() for i in range(self.spin_steps): lerp_value = float(i) / (self.spin_steps - 1) self._lerps.append(lerp_value) self._lerps[0] = 1.0 self._spin_angle = 360 / self.spin_steps self.setMinimumSize(16, 16) def showEvent(self, event): self._update_timer.start() def hideEvent(self, event): self._update_timer.stop() def set_ticker_color(self, ticker_color): self.r_from = ticker_color.red() self.g_from = ticker_color.green() self.b_from = ticker_color.blue() def set_fade_to_color(self, fade_to_color): self.r_from = fade_to_color.red() self.g_from = fade_to_color.green() self.b_from = fade_to_color.blue() @Slot() def fade_colors(self): for i in range(len(self._lerps)): self._lerps[i] -= self._fps / 1000.0 tick = time.time() delta_t = tick - self._last_tick if delta_t >= self._step_interval: self._current_step += 1 if self._current_step >= self.spin_steps: self._current_step = 0 self._lerps[self._current_step] = 1.0 self._last_tick = tick self.update() def paintEvent(self, event): painter = QPainter(self) painter.setRenderHints(painter.Antialiasing) rect = self.geometry() short_side = min(rect.width(), rect.height()) if short_side return painter.setPen(Qt.NoPen) painter.translate(rect.width() / 2, rect.height() / 2) bar_width = short_side * self.bar_width round_radius = (bar_width / 2) * self.bar_roundness for i in range(self.spin_steps): painter.setBrush(self._get_interpolated_color(self._lerps[i])) paint_rect = QRect(-bar_width / 2, -short_side / 2, bar_width, (short_side * self.bar_height) / 2) if round_radius > 0: painter.drawRoundedRect(paint_rect, round_radius, round_radius) else: painter.drawRect(paint_rect) painter.rotate(self._spin_angle) def _get_interpolated_color(self, i): interp = min(1.0, max(0.0, i)) return QColor(int(((self.r_from - self.r_to) * interp) + self.r_to), int(((self.g_from - self.g_to) * interp) + self.g_to), int(((self.b_from - self.b_to) * interp) + self.b_to))
  19. Jak to mówią: "Seems legit" Teraz przerób sobie animator friendly rigging, wydaje mi się że masz troszku za mało kostek w ramionach i nogach (brakuje tzw. roll bone'ów)
  20. Valerian - doskonały. Ale tylko dla ludzi którzy są w stanie dobrze bawić się sci-fi z lat 70-tych. Jako dzieciak zaczytywałem się w przygodach Valeriana i Laureline więc film wszedł mi jak w masełko. Ale wiem że jestem "zbiasowany", sporo osób wyszło z seansu.
  21. Blender to był mój pierwszy program 3d. Używam go od 17 lat, przez wiele lat jako podstawowe narzędzie ;) Śmiało mogę powiedzieć że: "I've been using Blender before it was cool" :)
  22. Ja ostatnio na gamejamie robiłęm w nim modele i animacje, ale było miło :)
  23. To jest symulowane przy pomocy wewnętrznych narzędzi tych studiów, które nie są dostępne dla "szarego usera". Weta:
  24. Kroopson

    Co czytacie?

    "Pan Lodowego Ogrodu" - doskonałe niby fantasy/niby sci-fi. Fajna, mistrzowsko domknięta historia. Polecam.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności