Napisano 18 Sierpień 200717 l Chodzi mi o coś takiego: zaznaczam jakiś model, a skrypt by wykonywał czynności po kolei: - przesuń obiekt do punktu 0,0,0 - Export Selected jako ASE, nazwa pliku taka jak nazwa obiektu - cofnij obiekt do punktu wyjściowego Prostactwo, nie? Ew. mógłby być taki: - sklonuj obiekt - Collapse to Editable Mesh - przesuń do 0,0,0 - wyeksportuj (tak samo jak wyżej) - usuń go Czy mógłby ktoś mi doradzić, jak się do czegoś takiego zabrać? W sumie nie liczę, że mi to ktoś napisze za mnie od A do Z (choć, to nie byłoby pewnie czasochłonne dla jakiegoś eksperta...), ale jakbyście mogli wskazać jakieś podstawowe tutoriale, jak się pisze w ogóle skrypty do 3dsmaxa. Z góry dzięki!
Napisano 18 Sierpień 200717 l Hm, sproboj żeby max zrobił skrypt za ciebie :) Ustawiasz sobie stadium początkowe (tworzysz jakąś bryłe testową) póxniej odpalasz maxscript Listener i włanczasz Macro Recorder. Wykonujesz to co chcesz ( te operacje co pisałeś) a w okienku pokazują się komendy skryptowe. Później wystarczy że zmienisz nazwe obiektu (powiedzmy $box) na samo $ (o ile sie nie myle to oznacza aktualną selekcje) a skrypt przeciągniesz na pasek u góry maxa (tak powinno sie stworzyć buttona ze skryptu) i masz gotowe makro do odpalania. Tak mniej wiecej udaje mi sie robic proste automatyzacje, ekspertem zdecydowanie nie jestem, wiec mogłem się gdzieś pomylić, ale jak coś to odpal sobie z helpa MaxScript Reference i tam są przykładowe skrypty, powinno pomóc. pozdrawiam Mirach
Napisano 18 Sierpień 200717 l Autor Dzięki! Po cichu liczyłem, że coś takiego będzie (jak we Photoshopie), ale nie wiedziałem, że tak się to nazywa. :) Zaraz zobaczę, co się da z tego wycisnąć.
Napisano 18 Sierpień 200717 l Autor No, skrypcik już pięknie działa. Odświeżyłem swoją dawną pasję do Borland Pascala. Do szczęścia brakuje mi tylko jednego - nie wiem, jak ponownie zaznaczyć obiekt. mam coś takiego: nazwa = $.name to jest nazwa mojego aktualnie zaznaczonego obiektu, używana później do kilku rzeczy. Następnie zaznaczam inny obiekt, po czym chcę znowu zaznaczyć ten, co był. próbuję: select nazwa select $nazwa select $.nazwa ale żadna z tych komend nie chce działać. Macie jakieś pomysły? Może muszę pobrać coś innego, np. jakiś numer obiektu, żeby go później znowu zaznaczyć, bo nazwa może się przecież powtarzać... no, nic - idę dalej szukać...
Napisano 18 Sierpień 200717 l witam trzeba bylo ten watek zalozyc w dziala programming languages :) nazwa = $.name przypisze do "nazwa" wlasciwosc "name" biezacego obiektu czyli jesli jest to "Box01" to zmienna "nazwa" bedzie miesc wartosc "Box01". Jesli chcesz przypisac do zmiennej obiekt to uzyj np. obj = $ co przypisze do zmiennej "obj" obecnie zaznaczony obiekt, wtedy zeby go ponownie zaznaczyc uzyj select obj mam nadzieje ze nic nie pokopalem i jakos ci ro pomoze, pozdrawiam.
Napisano 19 Sierpień 200717 l Autor ups, nie wiedzialem, że taki dział istnieje... dzięki t0m3k - nie wpadłbym na to, że to takie proste! :) Tak przy okajzi - udało mi się obejść to mało elegancką drogą - wywoływałem funkcję Undo, która zaznaczała spowrotem poprzedni obiekt, ale nie działało to niestety jako MacroScript. I dobrze - przynajmniej teraz wiem, jak to porządnie zrobić. :)
Napisano 19 Sierpień 200717 l Autor No, więc napisałem swój pierwszy skrypt do Maxa: obiekt = $ nazwa = $.name select $darkmod* sciezka = $.name select obiekt copy $ isSelected:on name:nazwa $.position = [0,0,0] convertToMesh $ plik = "e:/doom3/darkmod/models/" + sciezka + nazwa + ".ASE" exportFile plik #noPrompt selectedOnly:true delete $ Najciekawszym trikiem jest fragment select $darkmod* sciezka = $.name Wymaga on dodatkowego obiektu, którego nazwą jest fragment ścieżki, do której ma eksportować moje modele (zawsze zaczyna się od słowa darkmod, ale dalej idzie inaczej). Dzięki temu w każdym pliku max mogę ustawić ścieżkę eksportu bez konieczności wybierania jej w oknie dialogowym. Jedno naciśnięcie klawisza, a model ląduje tam gdzie powinien... :) Dzięki chłopaki za pomoc!
Napisano 19 Sierpień 200717 l hmm... chyba powinienes uzyc petli, bedziesz wtedy mogl zaznaczyc grupe obiektow i fukcja zostanie wykonana dla kazdego z nich osobno. select $darkmod* sciezka = $.name zaznaczy wszystko z przedrostkiem "darkmod" i jesli zaznaczone bylo wiecej niz jeden obiekt naprawdopodobniej dostaniesz blad w kolejnej linijce. zeby skrypt dzialal za kazdym razem powinienes napisac cos takiego: grupa = $box* -- albo $ zeby wykonac operacje na aktualnie zaznaczonej grupie for i in grupa do -- dla kazdego obiektu w grupa ( nazwaPliku = i.name -- uzyj nazwy oryginalnego obiektu copy i isSelected:on $.position = [0,0,0] convertToMesh $ plik = "c:\\test\\" + nazwaPliku + ".3ds" exportFile plik #noPrompt selectedOnly:true delete $ )
Napisano 20 Sierpień 200717 l Autor zaznaczy wszystko z przedrostkiem "darkmod" i jesli zaznaczone bylo wiecej niz jeden obiekt naprawdopodobniej dostaniesz blad w kolejnej linijce. ale mam tylko jeden obiekt o takiej nazwie w danym pliku maxa, więc nie ma problemu. Eksport grupowy - czemu by nie. Ale nie rozumiem tej linijki: grupa = $box* -- albo $ zeby wykonac operacje na aktualnie zaznaczonej grupie czy to box to przykładowa nazwa czy to jakaś funkcja?
Napisano 20 Sierpień 200717 l $box* "*" dziala jak w dos'ie czyli zaznacz wszystko co zaczyna sie od box (box01, box02, boxik, box_duzy...) jesli wpiszesz tylko "$" to skrypt zostanie wykonany na aktualnie zaznaczonych obiektach (jesli nic nie jest zaznaczone najprwdp dostaniesz blad)
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto