Jump to content
Sebazx6r

Mel kilka pytan o edycje file node z poziomu kodu.

Recommended Posts

Z pomoca komendy filedialog2 mam zapisana sciezke do zmiennej i teraz chcialbym ja wpiąć w Image Name file noda. 2 pytanie . Jak z poziomu mela zmienic atrybut color space na np.: RAW. Czytam technical notes ale mi nie wychodzi.

Share this post


Link to post
Share on other sites

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

Edited by Sebazx6r

Share this post


Link to post
Share on other sites

select $file;

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

 

Tak nie rób :)

 

 

setAttr -type "string" file3.ftn "dupa.jpg";

setAttr -type "string" file3.colorSpace "Raw";

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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ę

Share this post


Link to post
Share on other sites

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 ;).

Share this post


Link to post
Share on other sites

No long.... .

""Z drugiej strony przydalby się melowy tutek do layout u jakiegoś ladniejszego ;). "" A jaki tutek masz na myśli ? Albo podpowiem albo odeślę

Share this post


Link to post
Share on other sites

Ja bym polecał jak najszybciej przeskoczyć na pythona + PySide do robienia UI do narzędzi.

Share this post


Link to post
Share on other sites

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.

Edited by Sebazx6r

Share this post


Link to post
Share on other sites

Z lenistwa zostaje się TD. Ze specyficznego rodzaju lenistwa - takiego które sprawi że wolisz poświęcić tydzień na pisanie skryptu niż godzinę na przeklikanie się po raz setny przez te same opcje :)

Share this post


Link to post
Share on other sites

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 :).

Share this post


Link to post
Share on other sites

"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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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 ;) )

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

nie jeśli musisz np przeiterować się przez face'y mesha albo przez bardzo bardzo dużo obiektów. Wtedy same konstruktory PyMel'owe zaczynają być ciężkie. To jest jednak wrapper na owrapowany wrapper.

Share this post


Link to post
Share on other sites

@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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Yo.

A to jeszcze wgad ode mnie ... a w zasadzie to nie ode mnie ale jakby ktoś kiedyś przeglądał wątek to

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

We are using cookies. Read about our Privacy Policy