Skocz do zawartości

Rekomendowane odpowiedzi

Napisano

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.

 

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.

  • Odpowiedzi 5
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

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.

Napisano

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.

Napisano

Taki wrapper napisany tylko w Pythonie i tak musiałby chyba spowolnić przynajmniej trochę wszystkie operacje, więc chyba szybkość nie jest kluczowa

Napisano

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,

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ę



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności