Gość kuzynsyna Napisano 18 Lipiec 2013 Share Napisano 18 Lipiec 2013 Piszę skrypt w maxscripcie do relinkowania plików. Używam funkcji ATSOps.SelectFiles() do wybrania pliku i jego podmiany, tylko że tak funkcja strasznie długo działa jesli scena ma dużo plików. Jest jakiś inny sposób by relinkować? Ktoś już pisał coś podobnego i ma pomysł jak to przyspieszyć? Oto kawałek mojego kodu: tempfiles = #() ATSOps.Refresh() ATSOps.GetFiles &tempfiles ATSOps.ClearSelection() for i = 2 to tempfiles.count do ( file = tempfiles[i] ATSOps.SelectFiles &file ATSOps.RetargetSelection newfiles[i] ) Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Traitor Napisano 18 Lipiec 2013 Share Napisano 18 Lipiec 2013 http://www.scriptspot.com/3ds-max/scripts/relink-assets a nie lepiej uzyc gotowcow ze scriptspot.com? Ja go uzywam do relinkowania bitmap i dziala swietnie. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Gość kuzynsyna Napisano 18 Lipiec 2013 Share Napisano 18 Lipiec 2013 ale ja chcę relinkować wszystkie pliki, nie tylko bitmapy Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Traitor Napisano 18 Lipiec 2013 Share Napisano 18 Lipiec 2013 On nie relinkuje wylacznie bitmap, wciaga wszystko. Trzeba tylko przelaczyc guzik z Bitmaps na asset links. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
mantragora Napisano 18 Lipiec 2013 Share Napisano 18 Lipiec 2013 (edytowane) Piszę skrypt w maxscripcie do relinkowania plików. Co do powolnosci AssetTrackera, sproboj restart Maxa lub reinstalacje. Mi tez sie niemilosiernie slimaczyl jak pisalem skrypt a na innym komputerze smigal. Chyba dopiero reinstalacja pomogla (a moze to bylo wywalenie danych z "Users\mantragora\AppData\Local\Autodesk\3dsMax"?), ale nie jestem pewien bo to bylo 100 lat temu i juz nie pamietam. W kazdym badz razie po tym zabiegu zaczol smigac bez problemow. Efekty widac ponizej: PS. Sorry za jakosc dzwieku, dopiero jedno video pozniej obczailem jak dzwiek dobrac tak abym nie musial pluc do mikrofonu aby bylo cos slychac ;). https://vimeo.com/58251975 PS2. I pamietaj ze AssetTracker musi byc zamkniety jak wykonujesz operacje relinkowania, bo ci max moze olac operacje. A moze trzeba bylo otworzyc okienko po wykonaniu operacji, tez juz nie pamietam. Max ma dziwne problemy ze soba wiecczasami trzeba sztuczkki stosowac. Gdzies chyba jest nawet w helpie informacja o tym :). PS3. Z tego co widze w skrypcie, otwieram i zamykam okienko AssetTrackera (obie operacje po sobie od razu) i dopiero wtedy zaczynam glowna akcje skryptu. Bez tego max potrafil olac dzialanie skryptu. Chodzilo chyba glownie o to zeby przynajmniej raz otworzyc okienko AssetTrackera podczas sesji Maxa, pozniej juz chyba nie trzeba bylo ale zostawilem zeby miec pewnosc. PS4. Ja tego nie zaimplementowalem w swoim skrypcie ale mozesz zrobic przeszukiwanie kilku katalogow z roznych dyskow zamiast podania jednej sciezki w ktorej moga sie znajdowac twoje pliki. Nie chodzi o rekursywne przeszukanie katalogu, tylko jak masz czesc plikow na dysku "D:", czesc na dysku sieciowym a jeszcze pare na "C:" to nie musialbys podawac nowej sciezki po zlinkowaniu czesci plikow tak jak ja to robie w video. PS5. Inny sposob relinkowania to przejechac po klasach i zczytac sciezki z kazdego obiektu, wtedy mozesz bez ATSOps zabieg wykonac. Ale z tym jest wiecej zabawy no i musisz zaimplementowac dla kazdego obiektu osobno zczytanie danych, wiec jak cos niestandardowego ci sie trafi nadal musisz recznie zasuwac albo dodac do implementacji. Z ATSOps sie o to nie martwisz. Przyklad: for mat in getClassInstances BitmapTexture do ( if mat.filename != undefined then ( mat.filename = @"C:\TextureMe" ) ) -- albo for obj in lights where iskindof obj light do ( if classof obj == VRayIES do ( obj.ies_file = @"C:\IESMe" ) if classof obj == Target_Light do (obj.webFile = @"C:\TargetMe") ) i to samo dla VRayProxy i co tam jeszcze zostalo. Edytowane 19 Lipiec 2013 przez mantragora Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Gość kuzynsyna Napisano 19 Lipiec 2013 Share Napisano 19 Lipiec 2013 Usunięcie folderu Users\mantragora\AppData\Local\Autodesk\3dsMax trochę pomogło, ale nieznacznie. Wcześniej dla sceny około 600 plików dla jednego pliku wykonywało wybór około nawet 10 sekund, teraz 3s. O otwieraniu i zamykaniu okna AssetTracker wiedziałem. Myślę o relinkowaniu po klasach, ale tym sposobem łatwo ominąć jakiś typ plików i dużo więcej bawienia z tym. Gdzieś jest jakiś spis wszystkich klas plików by nic nie pominąć? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
mantragora Napisano 19 Lipiec 2013 Share Napisano 19 Lipiec 2013 Gdzies w helpie sa opisane klasy ale nie pamietam gdzie. Poza tym do pluginow musisz z dokumentacji producentow tych pluginow wysuplac co i jak. 3 sekundy to nie jest zle. Lepiej niz jechanie samemu 600 razy. Usunięcie folderu Users\mantragora\AppData\Local\Autodesk\3dsMax trochę pomogło, ale nieznacznie. Wow, tez uzywasz usera o nazwie "mantragora" ;). Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Gość kuzynsyna Napisano 19 Lipiec 2013 Share Napisano 19 Lipiec 2013 Nie no usera mam oczywiście innego :) Chyba będę musiał połączyć metody i część relinkować tak, a część tak by to przyspieszyć. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
mantragora Napisano 19 Lipiec 2013 Share Napisano 19 Lipiec 2013 Chyba ten topik mozesz przewalkowac => 3ds Max Objects Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
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ę