P4VV37 Napisano 25 Czerwiec 2016 Napisano 25 Czerwiec 2016 Cześć Nie jestem pewien, czy w dobrym miejscu wstawiłem tą wiadomość. Właściwie nie mam pytania, więc pewnie nie... Proszę o feedback w tej sprawie :) W związku ze swoją pracą dyplomową wykonałem Pythonowe skrypty wykonujące (prawie) te same zadania w trzech różnych aplikacjach: Maya, Max i Blender. Link do GitHub ----- W zamierzeniu chciałem się po prostu nauczyć skryptowania w Pyhonie dla tych aplikacji przez stworzenie skryptu wykonującego podstawowe, najczęściej wykorzystywane akcje (Operowanie obiektami, tworzenie instancji, materiałów, animacji, zmiana ustawień i parametrów wszelkiej maści). Dodatkowo stworzyć coś w rodzaju blenderowego coockbook, na fragmentach kodu z którego mógłbym w przyszłości budować inne skrypty. Być może dla kogoś jeszcze te skrypty będą użyteczne. Poza tym, z pewnością są operacje, które można wykonać bardziej efektywnie, niektóre rzeczy na pewno można zrobić lepiej i pewnie istnieją w skryptach jakieś błędy. Szczególnie niepewny jestem skryptu do Blendera, którego dość słabo znam. Więc liczę na to, że ktoś zwróci na takie rzeczy uwagę i pomoże mi go poprawić. Starałem się zamieścić komentarze wszędzie gdzie tylko byłem w stanie jakiś komentarz wymyślić :) Tak więc kod powinien być dość czytelny i łatwy w zrozumieniu. Na marginesie, myślę też, że nie byłoby mi trudno na bazie tego wszystkiego zbudować prosty tutorial, taki wstęp do pisania kodu w Pythonie do każdego z tych programów, jak uruchamiać skrypty, podstawowe informacje o API itp. Jeśli by się okazało, że to dobry pomysł i skorzystałby z niego ktokolwiek.
michax56 Napisano 25 Czerwiec 2016 Napisano 25 Czerwiec 2016 Fajne cwiczenie. Pare uwag/pomyslow na rozwoj 1. https://github.com/p4vv37/3D_Software_and_Python/blob/master/script_Blender/Script_Blender.py#L338 Nie rozumiem dlaczego trzymasz modele inline. Czy chodzi o prezentacje struktury ktore sa pozniej konsumowane przez api? Jezeli tak to wybral bym jakies mniejsze modele. 2. Fajnie by bylo gdybys wyexportowal wyzszego poziomu api/interfejs ktore operowalo by na roznych silnikach (blender/maya/max). Czyli logika przykladow byla by napisana raz. Rozumiem ze wybiega to poza wstepne zalozenia. Ale mysle ze fajne zadanie na przyszlosc. Plus jakbys napisal taki 1:1 wrapper mysle ze mialby spora popularnosc. Gdybys potrzebowal pomocy, chetnie dolacze.
P4VV37 Napisano 25 Czerwiec 2016 Autor Napisano 25 Czerwiec 2016 Rzeczywiście, widzę, że model na 130 linii może nie był dobrym pomysłem... :) Taki powstał kiedy tworzyłem scenę którą odtwarzałem potem skryptem, nie chciałem zaciemniać kodu wczytywaniem jej z jakiegoś pliku, no i tak już zostało, ale to rzeczywiście przerost formy nad treścią. To, ze są dwie siatki: prostsza i trudniejsza to też efekt takiego nie mającego wiele sensu pomysłu, który miałem na początku, żeby prostą z siatek tworzyć linia po linii wywołując polecenia z odpowiednimi argumentami, co widać w maxie, bardziej skomplikowaną, w wypadku której byłoby to juz niezłą mordęgą, za pomocą jakiejś pętli. W pozostałych programach już to porzuciłem. Stworzenie takiego API to byłby fajny projekt do zabawy, w sumie spoko projekt. Jest trochę problemów: sporo operacji, sposób działania modyfikatorów, osie itp działa mocno inaczej w różnych programach, więc na pewno nie wszystko dałoby się prosto przełożyć... Ale tymi problemami można by się martwić kiedy się do nich dojdzie, jednakie, zgodne z Pythonowym podejściem API w sumie byłoby całkiem użyteczne... Można też zamiast tego stworzyć port pymel na pozostałe programy, on zdaje się być "pythonowo" napisany, nie znam go dość dobrze, ale wydaje się bardzo wygodny i nie trzeba by było wymyślać koła na nowo.. pymel4Max, pymel4Blender :] Najpierw poznam go lepiej, ale to by mogła być lepsza opcja i sporo osób nie musiałoby się uczyć wszystkiego od nowa.
P4VV37 Napisano 27 Czerwiec 2016 Autor Napisano 27 Czerwiec 2016 Taki wrapper napisany tylko w Pythonie i tak musiałby chyba spowolnić przynajmniej trochę wszystkie operacje, więc chyba szybkość nie jest kluczowa
P4VV37 Napisano 1 Lipiec 2016 Autor Napisano 1 Lipiec 2016 Przyglądam się temu pomysłowi. Trop pymela był tropem dobrym, bo wychodzi na to, że właściwie to on jest wrapperem tłymaczącym na maya.cmds swoje komendy: http://help.autodesk.com/cloudhelp/2016/ENU/Maya-Tech-Docs/PyMel/dev.html Jeszcze nie przyglądałem się temu jak kod dokładnie wygląda, ale jest dostępny na GitHub i robię to. Jeśli dobrze rozumiem licencję, to modyfikowanie i udostępnianie kodu jest ok, czy się mylę? Tak więc prawdopodobnie znacząco ułatwia to sprawę, bo ten kod to byłaby bardzo porządna podstawa do stworzenia czegoś takiego. Więc właściwie można by zacząć "rozbierać" ten kod i budować coś na jego podstawie. Przyjrzę mu się bliżej niedługo,
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się