Skocz do zawartości

KrzyM

Members
  • Rejestracja

  • Ostatnia wizyta

Zawartość dodana przez KrzyM

  1. Hmm działa tak samo z tą różnicą że dodany jest taki callback który po zmianie selekcji odznacza wszystko w tym "pierwszym" edit poly i wraca na górę stacku. Z instancjami nic nie próbowałem bo brak czasu. Wczoraj sprawdzałem i mi jakoś to działa, ale te callbacki to dziwna sprawa i też nie wczytywałem się w temat ;)
  2. KrzyM odpowiedział Temporal → na odpowiedź w temacie → Rigging & Animation
    Całkiem dobrze sprawdza się pozowanie w zbrushu zspherami. Szybko, a masz rig na którym kilka póz to żaden problem.
  3. KrzyM odpowiedział odpowiedź w temacie → Wolne dyskusje
    Idz na UAP jak musisz. Prywatne szerokim kołem ;)
  4. Hmm widzę temat się rozwija ;) Ja nie miałem czasu kontynuować. Chwilkę poklikałem i jest update - powinien wracać na górę stosu ;) Z instancjami nic nie kombinowałem i chyba pasuje. Nie pisałem nigdy w maxscrypcie więcej niż 1 linię i jakoś nie leży mi tę język ^^ fn resetSelectionSet = ( callbacks.removeScripts #modPanelSelChanged id: #max3dPL obj = selection[1] fEp = findFirstEditPoly(obj) modPanel.setCurrentObject obj.modifiers[fEp] SetCommandPanelTaskMode #modify subObjectLevel = 1 obj.modifiers[fEp].SetSelection #Vertex #{} subobjectLevel = 0 modPanel.setCurrentObject obj.modifiers[1] ) fn findFirstEditPoly obj = ( topModSelected = (modPanel.getModifierIndex obj (modPanel.getCurrentObject())) == 1 if topModSelected then ( modToSel2 = 0 for i = 1 to obj.modifiers.count do ( if modToSel2 if classof obj.modifiers[i] == Edit_Poly do ( modToSel2 = i ) ) ) ) return modToSel2 ) fn yoyoyo obj = ( max modify mode modToSel = findFirstEditPoly(obj) topModSelected = (modPanel.getModifierIndex obj (modPanel.getCurrentObject())) == 1 if topModSelected then ( modPanel.setCurrentObject obj.modifiers[modToSel] SetCommandPanelTaskMode #modify subObjectLevel = 1 callbacks.addScript #modPanelSelChanged "resetSelectionSet()" id:#max3dPL ) else( modPanel.setCurrentObject obj.modifiers[1] ) ) obj = selection[1] if (superclassof obj == GeometryClass) do (yoyoyo obj) Pozdro!
  5. KrzyM odpowiedział marekkonieczny → na odpowiedź w temacie → Rigging & Animation
    Hi solver powinien wystarczyć, ustaw najpierw kości w miejscach które mają się zginać w dobrych kątach. Jak będziesz zadowolony to spróbuj podpiąć HI IK pod ramiona i ustaw im jakis Target. https://www.youtube.com/results?search_query=3ds+max+hi+solver+target
  6. Tak się wyrwałem a tu proszę, takie kwiatki. Mój błąd, fakt. Tutaj powinno być lepiej, choć kod nie za piękny. for obj in selection do ( --subObjectLevel = 1 check = 0 for i = 1 to obj.modifiers.count do ( if check if classof obj.modifiers[i] == Edit_Poly do ( check = i ) ) ) modPanel.setCurrentObject obj.modifiers[check] all_verts = obj.mesh.verts as bitarray SetCommandPanelTaskMode #modify subObjectLevel = 1 obj.modifiers[check].Select #Vertex all_verts )
  7. Spoko że problem rozwiązany. "U mnie działa" ten skrypt, pewnie musiał bym zobaczyć scenkę, ale teraz juz nie potrzebne ;)
  8. coś takiego na szybko for i in selection where classof i.modifiers[1] == Edit_Poly do ( -- SetCommandPanelTaskMode #modify subObjectLevel = 1 /* zaznaczy tylko te vertexy ktore byly juz w stacku i.modifiers[#Edit_Poly].Select #Vertex */ -- zaznaczy wszystkie vertexy obiektu for vert in (i.mesh.verts as bitarray) do ( i.modifiers[#Edit_Poly].Select #Vertex #{vert} i.modifiers[#Edit_Poly].Commit () ) -- )
  9. KrzyM odpowiedział Lzja → na odpowiedź w temacie → Programs Languages
    Możesz użyć random.sample https://docs.python.org/2/library/random.html import maya.cmds as cmds import random # clear the active list cmds.select( clear=True ) # select all dag objects and all dependency nodes cmds.select( all=True ) obj =cmds.ls( selection=True ) num_to_select = 5 # set the number to select here. list_of_random_items = random.sample(obj, num_to_select) # clear the active list cmds.select( clear=True ) for item in list_of_random_items: cmds.select(item, add=True )
  10. KrzyM odpowiedział KrzyM → na odpowiedź w temacie → Maya
    Może faktycznie napisałem nie jasno ;) Taki efekt, lub podobny Testowałem plugin MASH, ale wolałbym go nie angażować :)
  11. KrzyM odpowiedział KrzyM → na odpowiedź w temacie → Maya
    Nie do końca, bardziej odpalanie np. Blendshape drugim obiektem "kolizyjnym". Chyba da się to w mayi zrobić dodatkowym SOUP? Ale może są inne metody? Ciężko cokolwiek znaleźć w stylu motion graphic do Majki.
  12. KrzyM odpowiedział szary83 → na odpowiedź w temacie → V-Ray
    Nie wiem w czym renderujesz. Masz jakieś vray dirty w shaderach? Spróbuj je powyłączać
  13. KrzyM odpowiedział szary83 → na odpowiedź w temacie → V-Ray
    Jak wywalisz okna całkowicie to też to samo? Wygląda jakby było w oknach. Może tam masz jakiś bug w meshu?
  14. KrzyM dodał odpowiedź w temacie → w Maya
    Hej, Nie mogę znaleźć rozwiązania w Majce na taki efekt w 3ds maxie. mam blendshape gdzie wszystkie face'y mam ze skalowane do 0, i innym obiektem uruchamiam tego blendshape. Albo może znacie jakieś sposoby na podobne efekty? Z góry dzięki za pomoc, Pozdro krzysiek
  15. KrzyM odpowiedział Kasia Ne → na odpowiedź w temacie → Rigging & Animation
    Jest, na timeline lub w curve editorze - w obu programach http://download.autodesk.com/global/docs/maya2014/en_us/index.html?url=files/Keyframe_Animation_Scale_keys.htm,topicNumber=d30e246945
  16. KrzyM odpowiedział Juzwa → na odpowiedź w temacie → Hardware
    Nie wydaje się żeby tak to rozwiązali, choć ja na laptopie zainstalowałem wczoraj 10 i bez aktywacji nie działały mi funkcje systemu jak np. panel sterowania, ustawienia ekranu itp ;) ale podobno to jakiś BUG.
  17. KrzyM odpowiedział Juzwa → na odpowiedź w temacie → Hardware
    Hej, Powinno działać przy czystej instalacji, upgrade z 7 / 8 do 10 ma z tym jakiś problem chyba. Mówię o Windows 10 Pro, nie wiem jak bez Pro
  18. KrzyM odpowiedział KrzyM → na odpowiedź w temacie → Programs Languages
    W sumie nie myślałem żeby okna się komunikowały, ale dlaczego by nie ;) Każda nowa rzecz na + okno jedno, ale problem z reload jest chyba głównie z importu, nie wiem czy muszę przyjąć za stałe że jeśli jest import to na pewno jest okno? Chyba tak. Ale rozumiem że jak będę wiedział to okno już jest to będę je jedynie pokazywał i chował. Ale ten reload i tak muszę jakoś wykonać jak wprowadzę jakieś zmiany Będę pracował nad tym w przyszłym tygodniu.
  19. KrzyM odpowiedział KrzyM → na odpowiedź w temacie → Programs Languages
    Czytałem na temat schematu Singleton, i znalazłem na to z kilka różnych rozwiązań. np. http://python-3-patterns-idioms-test.readthedocs.org/en/latest/Singleton.html czy http://nathanhorne.com/?p=465 kilka udało mi się zaimplementować i nawet wydaje się że działają. Znalazłem jednak takie rozwiązanie i wydaje się super - może się myle ale wygląda na wzorzec Singleton. http://nathanhorne.com/?p=485 Mam nadzieje że jedno z pytań można uznać za rozwiązane? Wyprowadźcie mnie z błędu jeśli coś nie tak ;)
  20. Tak, dzięki - miałem jakieś zaćmienie z tym znowu ;) Użyłem import jak radziłeś, eval i poszło ;) Jak możesz, zajrzyj proszę do drugiego mojego tematu, tam też mam kilka pytań ;)
  21. Czytałem to i próbowałem różnych opcji jak importowałem to na samym początku, możesz mi wytłumaczyć w czym tkwi różnica i czemu lepiej importować __init__.py i jak wtedy dobrać się do tego pliku? Mam w init.py dodać funkcję która to uruchomi? konkrednie dla zmiennej plugin = "toolBox_UI" wygląda to tak i uruchamia się: import __toolBox.toolBox_UI as tb reload(tb) self.UIPlugins["toolBox_UI"] = tb.toolBox_UI() self.UIPlugins["toolBox_UI"].show() I import daje mi wynik: Dlatego ja importowałem to tak: importPlugin2 = __import__(folder+"."+plugin, {},{},[plugin]) i dawało to taki sam wynik: Dlatego też próbuję wywołać okno przez: Tylko nie wiem jak to wywołać żeby podać za XXXXXX np. plugin15_UI() self.UIPlugins[plugin] = importPlugin2.XXXXXX self.UIPlugins[plugin].show() Natomiast jak importuje w sposób który podałeś importPlugin = __import__(folder+"."+plugin) dostaje wynik:
  22. Wydaje mi się że własnie import jest w miarę ok. Teoretycznie jestem wstanie wywołać skrypt z tego importu jak ręcznie podam import.nazwa() przy UI. (komentarze w kodzie) Jak wywołać tą funkcję? Czytałem o tym już i rozumiem koncept, ale w praktyce? Sory za nie ogarniecie ;) #plugin factory def _pluginFactory(self, plugin, *args): self.UIPlugins = {} folder = "__"+plugin.strip('_UI') ##Co mysle ze musze napisac dla plugin = toolBox_UI ## i to otwiera okno poprawnie # import __toolBox.toolBox_UI as tb # reload(tb) # self.UIPlugins["toolBox_UI"] = tb.toolBox_UI() # self.UIPlugins["toolBox_UI"].show() ##tb = ##import importPlugin = __import__(folder+"."+plugin) print "import metoda 1:" + str(importPlugin) importPlugin2 = __import__(folder+"."+plugin, {},{},[plugin]) print "import metoda 2:" + str(importPlugin2) ##import metoda 1: ##import metoda 2: ##teoretycznie metoda 2 zdaje rezultat result = getattr(pFactory, plugin) ##get attr result: ##To czego mi brakuje to wstawienia zmiennej plugin zamiast toolBox_UI() # self.UIPlugins[plugin] = importPlugin2.toolBox_UI() # self.UIPlugins[plugin].show() ##^ teraz tez dziala self.UIPlugins[plugin] = importPlugin.toolBox_UI() self.UIPlugins[plugin].show() ## TypeError: 'module' object is not callable # # # if __name__ == "__main__": # # # try: # # # self.UIPlugins[plugin+"_UI"].close() # # # except: # # # pass
  23. Ja już wczytałem wszystkie moduły i zrobiłem z nich przycisk. Każdy przycisk wywołuje funkcje _pluginFactory i przekazuje jej nazwe modułu. Chciałbym żeby ta funkcja wywołała mi okno pySide z moim modułem czyli modul_UI.py http://pastebin.com/UpEupcEj Na dole zakomentowane jak ręcznie zrobie import modulu, i pozniej modul.show() to dziala, ale jak juz zrobię coś jak: __import__(folder+"."+plugin, {},{},[plugin]) To a następnie eval, exec lub getattr to średnio rusza. Nadal szukam jakiś info na ten temat, jeszcze nie do końca rozumiem różnicy między tym jak udało się wywołać te moduły (strona 1), a teraz po przejściu na pySide. Może problem leży w samym uruchomianiu pySide, ale to poruszyłem w tym temacie: http://max3d.pl/forum/threads/98755-PySide-pytania I szukam info dot. rozwiązania Kroopsona.
  24. KrzyM odpowiedział KrzyM → na odpowiedź w temacie → Programs Languages
    Hej, wracam z problemami ;) ^up niestety nie udało mi się tego rozwiązać, dużo rzeczy też jeszcze nie do końca łapię tak od razu ;) coś szukam, mam jakiś szkic - ale efektów 0 jak na razie :) class replaceUI(object): _instance = None def __new__(plugin, *args, **kwargs ): if plugin._instance == None: plugin._instance = {} return plugin._instance To odswieżanie skryptów może ma jakiś związekz tym jak ja odpalam te skrypty? http://max3d.pl/forum/threads/98630-Maya-UI-Python-Dynamiczne-%C5%82adowanie-klasy?p=1248062#post1248062 i nowe pytania jakie się urodziły: 1. Jeśli mam na obiekt nałożony już jakiś css setStyleSheet("style.css"), to czy jest jakaś opcja tylko nadpisać jeden element a nie resetować style do 0? Jak dodam linię niżej setStyleSheet("background: red") to zrestuje mi to co miałem, a chciałbym nadpisać tylko to tło i tyle. 2. Jest jakaś opcja że dodatki które dopiszę sobie do pySide mogę podpiąć pod QTDesignera i używać w plikach? Czy wtedy używając takich elementów skazany jestem na tworzenie UI z kodu? Chyba że nie wczytujecie samych plików UI, tylko konwertujecie je do .py i tam jeszcze wprowadzacie zmiany? 3. Znalazłem kilka w miarę różnych metod wczytywania UI, i z moim brakiem doświadczenia nie jestem w stanie powiedzieć która jest lepsza od innej. Np. ta metoda działa całkiem fajnie, zastanawiam się tylko czy to ok rozwiązanie z cmds.window itp. http://pastebin.com/RjaBVXLi http://pastebin.com/P6PNUn98 zabrałem to z: http://nicholas-silveira.blogspot.com/2013/10/get-maya-2014-pyside-example.html Na koniec wrzucam jakieś screeny z tego co mam, Z góry dzięki za pomoc, KrzyM
  25. Hej, odgrzebuje jeszcze ten temat - zmieniłem UI na pySide i nie mogę ogarnąć tego samego ;) W skrócie sytuacja: Mam skrypt "_shelf", który tworzy przyciski dla wszystkich skryptów które spełniają kryteria (odpowiednie nazwy itp). Kliknięcie przycisku przekazuje Nazwę pluginu do funkcji _pluginFactory i ten importuje UI. http://pastebin.com/UpEupcEj W sumie to mi obojętne jak uruchomić te skrypty, byle poprawnie. Zakładam wstępnie że tak chciałbym żeby wyglądał każdy główny plik danego plugina. http://pastebin.com/eXThzDnY I teraz jeśli uruchamiam ten skrypt z majkowego shelfa to robię to tak: http://pastebin.com/4hH5RYnX Dlatego próbuje coś wykąbinować na podstawie wpisu kroopsona, i stworzyłem plik pluginFactory do którego ręcznie będę dodawał classy dla każdego plugina? (No chyba że nie potrzebuje, bo zakładam że uruchamiać je będę tylko poprzez _shelf) http://pastebin.com/u7gjvjJA Próbowałem poprzez getattr, exec ale dostaję wtedy jedynie wynik w stylu: natomiast jeśli uruchomię skrypt tak jak przez majkowy shelf to otrzymuję bardzo podobny wynik Nie znalazłem jeszcze na to rozwiązania, niby wywołuję tą funkcję z powodzeniem ale nie udaje mi się wywołać UI. Napotykam się np na: [code]TypeError: descriptor 'show' of 'PySide.QtGui.QWidget' object needs an argument

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności