Jump to content

pchela1313

Members
  • Content Count

    127
  • Joined

  • Last visited

  • Days Won

    5

pchela1313 last won the day on June 21 2010

pchela1313 had the most liked content!

Community Reputation

124 Excellent

About pchela1313

  • Rank
    Member
  • Birthday 03/16/1987

City (optional)

  • Miasto
    Warszawa
  1. Generalnie ok, tylko trochę nie w tych miejscach. Tutaj masz poprawiony kod: try(destroydialog a)catch() rollout a "Okno" ( button btn1 "button" label la "dupa" fn zwroc obj= ( if selection.count>0 do ( la.text = obj.name ) ) on a close do callbacks.removescripts #selectionSetChanged id:#cb1 on a open do callbacks.addScript #selectionSetChanged "a.zwroc $" id:#cb1 ) createDialog a Pozdrawiam EDIT: A jeżeli funkcja ma być na zewnątrz to powinno być tak: try(destroydialog a)catch() rollout a "Okno" ( button btn1 "button" label la "dupa" on a close do callbacks.removescripts #selectionSetChanged id:#cb1 on a open do callbacks.addScript #selectionSetChanged "zwroc $" id:#cb1 ) createDialog a fn zwroc obj= ( if selection.count>0 do ( a.la.text = obj.name ) )
  2. Dzięki wielkie za pozytywne słowa. Kris_R - osobiście do sterowania mimiką używam podobnego panelu jaki pokazywał SUPER_OKO w swoim tutorialu, jakoś sterowanie kółkami na ekranie jest dla mnie bardziej intuicyjne. Ostatnio testuje to rozwiązanie tylko, że za pomocą dotNetu. Coś podobnego zrobił Paul Neale i wyszło mu tak: Oczywiście do chanel boxa też można przypiąć morphera i wtedy trochę by to ułatwiło sprawę. SUPER_OkO - tak jest wszystko jest napisane w dotNecie. Też kiedyś zrobiłem połączenie multiListboxa z sliderkami: Było to bardzo wygodne, jednak zawsze szukam innych i nowych możliwości sterowania postacią. Wiesz - głodny wiedzy ;) Oczywiście i tak wszystko zależy od animatora, my możemy zrobić coś super, a on i tak będzie animował pojedyncze kości;) Channel Box nie jest jakoś bardzo skomplikowany. Z lewej strony jest dotNetowski listbox, a z prawej są textBoxy. Teraz dla każdego suwaka odpowiada jeden atrybut - czyli dla suwaka Bend, jest atrybut bend i tak dalej. Jak wybierzemy jakieś elementy z listy to system sprawdza co wybraliśmy i jak przesywuwamy myszą, to wykrywa jej położenie i wartości jakie przyjmuje i nadaje je dla atrybutów. Na koniec jest dodany callback, który działa na zmianę czasu. Służy on do uaktualniania wielkości dla textboxów, aby mogły pokazywać czy są klucze w danej klatce itd. Przy pozach też użyłem listboxa. Efekt tego czerwonego suwaka uzyskałem malując obrazek - ten czerwony, oraz malując z prawej strony prostokąt. Dzięki temu mogę cofać się w lewo i prawo suwakiem. Mam nadzieję, że chociaż troszkę wyjaśniłem działanie channel boxa. Pozdrawiam
  3. Witam, jedną z rzeczy jakich mi brakowało w maxie, była możliwość szybkiego przesuwania dużą ilością suwaków. Idealnym rozwiązaniem dla mnie był channel box z mayi, który oferował również możliwość sterowania atrybutami dla kilku przedmiotów jednocześnie. Dlatego zrobiłem własny channel box dla 3ds maxa. Działa tak samo jak ten z mayi. Użyłem go do szkieletu dłoni, a efekt jaki uzyskałem możecie zobaczyć na filmie poniżej. ChannelBox-Film Pozdrawiam
  4. Problem rozwiązany na gg, dla chętnych gotowy kod: fn FindRootObj curSel= ( local rootObjs = #() for x in curSel do ( local parentSelected = false local next =false local curObj = x while next==false do ( if curObj.parent == undefined then ( next = true ) else if finditem curSel curObj.parent != 0 then ( parentSelected = true next = true ) else curObj = curObj.parent ) if parentSelected==false then append rootObjs x ) return rootObjs ) clones = #() a= selection[1] rot = a.rotation pos = a.position maxOps.cloneNodes a expandHierarchy:true actualNodeList:&objs newNodes:&clones --kopiuje cala hierarchie (dzieci) ***opcjonalne c = FindRootObj clones b = c[1] b.parent = undefined --opcjonalne b.rotation = (quat rot.x -rot.y -rot.z rot.w) b.position = pos*[-1,1,1] Błąd był w funkcji FindRootObj.
  5. Skasuj HI solver-> wybierz wszystkie cylindry-> zakładka animation->Bone Tools-> przewi się na sam dól, tam w grupie "object propoerties" zaznacz "bone on" Teraz możesz dać na te cylindry Hi solver. Pamiętaj jednak, że te cylindry muszą być obrócone chociaż o jeden stopień, tak aby HI slover wiedział w która stronę ma zginać kości.
  6. Tak. Dodatkowo można użyć dotNet'u jeśli chce się uzyskać bardziej zaawansowany interface skryptów. Pozdrawiam
  7. To nie jest bug skina, tylko najpewniej nie przygotowałeś odpowiednio modelu do skinowania. Po zrobieniu modelu, wierzchołki w siatce mogą mieć niepoprawne transformacje(najczęściej wynikają one z używania narzędzia mirror, oraz skali). Aby tego uniknąć wystarczy wykonać następujące czynności: 1. Wykonujemy model 2. Gdy jest skończony, zaznaczamy go i wchodzimy w zakładkę "Utilities"-> klikamy na "ResetXform"-> "Reset Selected". Właśnie ta czynność jest najważniejsza, przed rozpoczęciem skinowania. 3. Następnie przystępujemy do skinowania W twoim przypadku, aby naprawić sytuację można wyeksportować model z wagami i wczytać je ponownie do naprawionego modelu. Zatem lista czynności: 1. Zaznacz model postaci, wejdź w zakładkę "Utilities"->"more"-> wybierz "skin utilities"-> następnie mając ciągle wybrany model postaci klikasz na "extract skin data to mesh". Po kliknieciu zrobi ci się kopia twojej postaci z zapisanymi wagami vierzchołków. 2. Schowaj ten nowy mesh (jesli twoja postac nazywa sie "czlowiek" to ten mesh powinien miec nazwe "SkinData_czlowiek") 3. Skasuj modyfikator skin z twojej postaci. Najlepiej skonwertuj wszystko jeszcze raz do edit poly (chociaż ten krok nie jest konieczny) 4. Teraz można przygotować model do skinowanie wykonując to co pisałem wcześniej czyli: 5. Zaznaczasz twoją postać, wchodzisz w zakładkę "Utilities"-> klikasz na "ResetXform"-> "Reset Selected" 6. Następnie skonwertuj wszystko do edit poly, aby pozbyć się modyfikatora "resetxform" 7. Dodaj modyfikator skin i dodaj do niego te same kośći co były wcześniej 8. Teraz odchowaj (unhide) tą siatkę z zapisanymi wagami 9. Następnie musisz wybrać te 2 modele (model postaci + model z wagami) 10. Wejdź w zakładkę "Utilities"->"more"-> wybierz "skin utilities"-> następnie mając ciągle wybrane modele postaci klikasz na "import skin data to mesh" 11. Pokaże się okno -> klikasz na "Match by name" (wszystkie pozycje powinny się przypasować do siebie, jeśli dodałeś dokładnie te same kości co były w modelu przed naprawą ) 12. "Threshold" możesz ustawić na 0,01 (Iportujesz dane o skinowaniu na dokładnie taki sam model, dlatego ta wartość może być taka niska, ale jeśli rezultat będzie niezadowalający to możesz ustawić np.: 0,1) 13. Klikasz na "ok". Ten model z zapisanymi wagami można już skasować 14. Teraz nie powinno być już problemów ze skinowaniem, ale jeśli początkowy model miał bardzo skopane transformacje, to możliwe że przy importowaniu wag, coś mogło niedokładnie się wczytać. Ale najczęściej wszystko działa dobrze. Jeszcze jedna uwaga. Przed ręczną zmianą wag wierzchołków należy je "upiec". Zaznaczamy model ze skinem, wchodzimy do skina, wybieramy jakąś kość, następnie zanzaczamy wszystkie wierzchołki w modelu i wybieramy "Bake selected verts" (taka ikonka piekarnika). Teraz można ręcznie zmieniać wagi wierzchołków. Pozdrawiam
  8. To czy użyjesz Bipeda, CAT'a, czy zrobisz własny szkielet, nie ma znaczenia. Liczy się tylko to, jak ustalisz wagi w skinowaniu, a po Twoim poście, widzę, że masz je źle ustawione w nogach. U mnie envelopy nóg nie mają żadnego wpływu na tors i odwrotnie. Pobaw się trochę ze skinowaniem a na pewno wszystko będzie dobrze działać. Na mojej stronie jest dokładniej omówione jak zrobiłem ten szkielet, może Ci to pomoże. Pozdrawiam
  9. Trochę poszukałem i znalazłem takie coś: batchRenderMgr.Render() Daj znać czy działa
  10. Witam, 2 nowe video tutoriale traktujące o stretchowaniu kości ramienia w 3dsmaxie. - Pierwszy - pokazuje jak zrobić proste rozciąganie kości - Drugi - pokazuje jak zrobić rozciąganie kości zarówno dla całego systemu IK jak i dla każdej kości z osobna. Czyli można rozciągać zarówno całą rękę, jak i kość w łokciu czy nadgarstku. Pozdrawiam
  11. Witam, toturial poświęcony tworzeniu i odczytywaniu pliku XML, przy użyciu dotNet'u. Tutorial Pozdrawiam
  12. Jeszcze raz dzięki za opinie, bardzo pomagają przy chwilach zwątpienia. Zatem Po pierwsze: PLS DZIĘKUJE!! Twoja pomoc przy testowaniu skryptu była nieoceniona. Jeszcze raz wielkie dzięki. Po drugie: W tej chwili startuje pchela.pl wraz z PTH 2.5 Pod TYM adresem jest dostepny skrypt, tutoriale do niego oraz inne informacje. Poniżej zamieszczam zmiany jakie zostały wprowadzone w tej wersji: - Skrypt został przepisany całkowicie od nowa - Możliwość tworzenia grup, np.: dla twarzy, ciała, ręki, nogi itd. - Pozy są zapisywane w zewnętrznych plikach xml - dotNet został użyty do zrobienia interface'u - Nowy interface * Nowe UI jest bardziej przyjazne dla użytkownika * Przyciski mają ikony * Łatwy sposób na dodawanie grup i ich zarządzanie - Group explorer, pozwala na łatwe zarządzanie pozami - Bardzo duże przyśpieszenie działania suwaka - Możliwość zmiany nazwy zarówno dla póz jak i całych grup - menu kontekstowe dla kasowanie elementów i zmieniania ich nazwy - Przyciski kopiuj/wklej - Cofanie do pozy początkowej teraz również działa z własnym układem współrzędnych - Wszystkie opcje np.:select render elements, pos fir, rot fix itd. działają osobno dla każdej grupy - Dodane nowe menu do ładowania póz z pliku - ruchome okna zapamiętują swoją ostatnią pozycję Miłego używania. Pozdrawiam
  13. Dzięki za wszystkie komentarze. Niestety udostępnienie skryptu musi zostać opóźnione o jeden dzień*(14.07.09). Powód: bardzo głupi, zapomniałem nagrać skryptu na kompa, na którym aktualnie pracuje. Czyli skrypt jest we Wrocławiu, a ja 250 km od niego. Pozdrawiam
×
×
  • Create New...

Important Information

We are using cookies. Read about our Privacy Policy