Skocz do zawartości

Mel kilka pytan o edycje file node z poziomu kodu.


Sebazx6r

Rekomendowane odpowiedzi

  • Odpowiedzi 19
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Zpierwszym juz sobie poradzilem:

select $file;

 

AEfileTextureBrowser ("AEassignTextureCB " + $file[0] + ".fileTextureName") $file[0] image;

 

Pozostaje drugie.

Wydaje mi sie ze trzeba uzyc tej komendy ale nie wiem jak.

setColorSpaceAttrCB

Edytowane przez Sebazx6r
Odnośnik do komentarza
Udostępnij na innych stronach

Tak tez mam zamiar to zmienić na opendialog i setAttr. A jaka jest wada takiego postepowania? A z tym kolor RAW to już sobie tez poradziłem :). Dzieki mimo wszystko. Wrqtce mysle z przesiadka na pythona. Z drugiej strony przydalby się melowy tutek do layout u jakiegoś ladniejszego ;).

 

 

Potem zmienie komendę na opendialog.

Odnośnik do komentarza
Udostępnij na innych stronach

siema Seba.

Monsieur praetorian pisze " Tak nie rób :) "

I pytasz " A jaka jest wada takiego postepowania? " .

 

Nawet nie chodzi o wady, ale dla testu... wystartuj majkę na nowo (zrestartuj) i odpal melowską komendę "AEfileTextureBrowser" (bez argumentów)

Maja wyrzuci Ci błąd " Cannot find procedure "AEfileTextureBrowser" " a idąc Twoim tokiem myślenia powinno " Wrong number of arguments on call to AEfileTextureBrowser "

Powiesz ... przed chwilą maja wiedziała, co robi AEfileTextureBrowser i tylko pytała o argumenty a teraz po restarcie totalnie nie wie co to za procedura ?

To dlatego, że maja jeszcze nie wie (póki nie przypiszesz jakiegoś fileNode'a ręcznie) co to znaczy "AEfileTextureBrowser" . Funkcja/Procedura AEfileTextureBrowser zawarta jest w pliku ( C:/Program Files/Autodesk/Maya2016/scripts/AETemplates/AEfileTemplate.mel ) i jest to można powiedzieć "wrapper" kilku komend- po prostu kolejna procedura.

Zanim użyjesz jakiejkolwiek procedury z pliku AEfileTemplate.mel (jest tam ich dużo między innymi AEfileTextureBrowser ) musisz majce powiedzieć "wczytaj do pamieci taki plik AEfileTemplate.mel" służy do tego komenda source - "source AEfileTemplate.mel" . Przypisanie fileNoda do jakiegoś slotu wykona sobie w tle "source AEfileTemplate.mel" i dlatego później jesteś w stanie wykonywać te komendy- bo już raz zostały wywołane. W necie jest sporo info więc nie będę duplikował, ale poczytaj o globalnych i lokalnych procedurach np tu http://www.braverabbit.com/playground/?p=376 bądź gdziekolwiek ... nawet na stronce autodesku/majki.

 

W skrócie dlaczego praetorian odradza, bo póki nie przeanalizujesz sobie kodu komendy "AEfileTextureBrowser" po prostu nie wiesz co ona robi. Wiesz tylko, że w jakimś stopniu robi to co chcesz, ale czy przypadkiem nie robi za dużo bądź za mało i czy wszystko co robi jest zamierzone?

Ty po prostu chcesz z fileDialoga wziąć ścieżkę do pliku i fileNodzie USTAWIĆ tę ścieżkę plus USTAWIĆ colorSpace . Majowska komenda setAttr służy właśnie temu USTAWIANIU i tyczy się to każdego noda i jego atrybutów. Każdy fileNode ma atrybut fileTextureName, colorSpace oraz wiele innych podobnież transform ma translateX, translateY itd . Prawdopodobnie każdy z atrybutów ustawisz za pomocą setAttr o ile atrybut istnieje na nodzie a nie jako atrybut widziany tylko w atrybutEdytorze (np zasięgi keszowania w jetim)

 

I teraz przeanalizuj sobie kod z tamtego pliku i zobacz czy Ci to odpowiada czy nie i sam dojdziesz do właściwego wniosku.

 

3m się

Odnośnik do komentarza
Udostępnij na innych stronach

Long time not seen Bolek. A tak tym set attribute już wszystko pozamiatałem dawno. Skrypt już dawno ewaluował. Globalne i lokalne procedury kojarze ale zazwyczaj pisałem je sobie sam i nie umiałem korzystać z tych gotowych. Pocztyam te info na pewno się przydadzą. Na chwile obecna jest wsio zrobione tak jak piszesz ;).

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki za info postaram się przemóc. Z mel'em już całkiem sobie radze lepiej gorzej ale idzie. Kroopson jakies linki bo majkowy help sprawadza się do samych narzedzi. W sumie sam poszukam na tygodniu.

Na tym skończyłem:

 

 

Na razie popełniłem takie cuda :

 

Większość wyszla z lenistwa nie mam ochoty powtarzac te same rzeczy robic. Jeszcze kilka prostych skryptow mam ale zobaczę z tym pythonem. Wyglada to torche jak projektowanie obiektowe. Kiedys cos dłubałem w Delphi.

Edytowane przez Sebazx6r
Odnośnik do komentarza
Udostępnij na innych stronach

oo wlasnie xD po n tej poprawce odpalilem sobie helpa mayki tech doc i jazda teraz mam troche luzniej xD a zleconka splynely spoza dzialu bo ludzie mieli dosc czekania na dzial pipeline. Co prawda mel ale grunt ze dzialalo. Kazdy dzial powinien miec TD jednego na bierzace zapotrzebowania :).

Odnośnik do komentarza
Udostępnij na innych stronach

"Co prawda mel ale grunt ze ... " Mel nie jest taki zły - poczytaj i ewentualnie sam sprawdź

 

http://www.macaronikazoo.com/?p=271

http://radks.blogspot.com/2012/08/performance-comparison-mel-vs-pymel-vs.html

https://groups.google.com/forum/#!topic/python_inside_maya/n8WUdQHhw1k

http://forums.cgsociety.org/showthread.php?t=1153773

"i inni"

 

Jeśli chodzi o jakieś nazwijmy to "podstawowe" toole to nie widzę potrzeby pisania tego w qt, ale jak najbardziej warto się tego nauczyć. Pisanie UI w melu nie jest jakoś bardzo rozbudowane, ale moim zdaniem często wystarczające. Jak zawsze wszystko zależy od tego co i po co robisz i jak wszędzie nie ma jednoznacznej odpowiedzi. Moja osobista opinia - ogarnij to co oferuje maja zanim wskoczysz do qt. Podobnie z pythonem i melem. Ogarnij sobie mela, bo maya.cmds to tylko pythonowa składnia + mel

https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/Maya/files/GUID-C0F27A50-3DD6-454C-A4D1-9E3C44B3C990-htm.html

 

 

Pozdro

Odnośnik do komentarza
Udostępnij na innych stronach

Wiem, że odpowiedź trochę nie na czasie, ale wrzucę swoje trzy grosze. Jeśli już przesiadać się na pythona, to radzę pymela. Znajdą się oczywiście krytycy, którzy powiedzą, że pymel wolniejszy itp. Ale MEL to jest kara dla programisty uważam. Maya cmds (domyślny Python) to melowe komendy z pythonową składnią, natomiast dopiero pymel wykorzystuje w pełni obiektowe programowanie i jest bardzo przyjemny w pracy.

Odnośnik do komentarza
Udostępnij na innych stronach

Wg mnie nie jesteś w stanie skutecznie korzystać z PyMel'a jeśli naprawdę dobrze nie rozumiesz mel'a, cmds i OpenMaya. Przy mniejszych toolach sobie poradzisz ale przy naprawdę skomplikowanych zaczynają się poważne schody. Należy też pamiętać że PyMel potrafi być nawet do 100 razy wolniejszy przy niektórych operacjach (potwierdzone info ;) )

Odnośnik do komentarza
Udostępnij na innych stronach

Zgaduje, że overhead tego poziomu to po prostu nakładanie się wielu wywołań na sb. w takim razie nie można by tego zmniejszyć przepisując rzeczy tak, żeby korzystać jak najbardziej z lazy evaluation w pythonie?

Odnośnik do komentarza
Udostępnij na innych stronach

@praetorian - używam PyMela na codzień, ale nigdy w ten sposób. Tymniemniej potwierdzam, że Pymel w stosunku do mela to czysta przyjemność...

 

@Kroopson - Co do operacji na mesh'ach, to słyszałem, że potrafi być wolny. Póki co nie tworzyłem pluginów operujących na siatce, ale do szerokiego spektrum zastosowań pymel po prostu wystarcza. U nas 99% pipeline'u jest w Pymelu, z wyjątkowymi fragmentami w MELu. Tymniemniej MEL jako język jest bardzo przestarzały - nie ma programowania obiektowego, a składnia tego języka woła o pomstę do nieba.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie no zgadzam się że MEL'a się nie używa, jeśli już to cmds, ma wszystkie zalety MEL'a a nie ma jego wad. Aczkolwiek potrafi sprawiać problemy w sytuacji kiedy piszesz nową komendę i potrzebujesz w bardzo konkretny sposób sformatować argumenty funkcji. Przykład:

Nie wiem czy ja coś źle robię ale żeby móc przekazać macierz jako listę tak samo jak do komendy xform to musiałem zrobić osobne parsowanie argumentów dla MEL'a i osobne dla cmds'a.

 

Jeszcze jedna sprawa. PyMel to nie jest takie 100% pełne API i miałem taki przypadek że 5 albo 6 programistów dookoła mnie zaczynało pracę w Maya i zakładali że to jest implementacja na takim poziomie jak np w Blenderze, czyli że python bezpośrednio odnosi się do danych aplikacji. Wyjaśnienie im tych trzech psów na podłodze zajęło mnóstwo czasu i frustracji.

 

btw - wiem że wisi toto już w dziale praca ale może nikt tam nie zagląda :P

http://max3d.pl/forum/threads/103467-CDProjektRED-poszukuje-Junior-Specialist-pipeline-TD

Odnośnik do komentarza
Udostępnij na innych stronach

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