Skocz do zawartości

Maxscript- relinkowanie ścieżek


Gość kuzynsyna

Rekomendowane odpowiedzi

Gość kuzynsyna

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

  • Odpowiedzi 8
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

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 przez mantragora
Odnośnik do komentarza
Udostępnij na innych stronach

Gość kuzynsyna

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

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

Gość kuzynsyna

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

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ę



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności