two Napisano 10 Lipiec 2012 Napisano 10 Lipiec 2012 Chciałbym zrobić skrypt automatyzujący proces parametryzacji w 3ds maxie. Nic skomplikowanego, jedynie mam problem z jedną rzeczą. Skrypt ma być uniwersalny, więc dla obiektów dużych jak i małych powinien działać tak samo. Jednak w tej chwili rozmiar parametryzacji planarnej jest stały. Mam więc pytanie, jak można napisać skrypt, w którym rozmiar parametryzacji będzie się dostosowywał do obiektu, czyli przy dużych obiektach będzie duży (tak, aby parametryzował cały obiekt), a przy małych mały? Poniżej zamieszczam linijkę która według mnie odpowiada za ten rozmiar. $.modifiers[#unwrap_uvw].unwrap5.setGizmoTM (matrix3 [-1.68492e-006,0,38.5465] [0,23.9861,0] [-18.8891,0,-8.25668e-007] [59.6047,0,9.44454]) Wpadłem na pomysł, że można by to ominąć, czyli jedynie zmniejszać obiekt, ale jak ustawić taki warunek, aby zmniejszał on obiekt proporcjonalnie ? Czyli warunek, że jeśli wysokość jest większa od np. 50 to obiekt przyjmuje wysokość 45 przy zachowaniu proporcji szerokości i głębokości. Z góry serdecznie dziękuję za pomoc. Cały mój skrypt wygląda tak: $.position.x=0 $.position.y=0 $.position.z=0 modPanel.addModToSelection (Unwrap_UVW ()) ui:on subobjectLevel = 3 modPanel.setCurrentObject $.modifiers[#Unwrap_UVW] subobjectLevel = 3 $.modifiers[#unwrap_uvw].unwrap5.mappingMode 1 $.modifiers[#unwrap_uvw].unwrap5.setGizmoTM (matrix3 [-1.68492e-006,0,38.5465] [0,23.9861,0] [-18.8891,0,-8.25668e-007] [59.6047,0,9.44454]) $.modifiers[#unwrap_uvw].unwrap.move () $.modifiers[#Unwrap_UVW].texMapList.count = 0 $.modifiers[#Unwrap_UVW].texMapIDList.count = 0 $.modifiers[#Unwrap_UVW].baseMaterial_list.count = 1 $.modifiers[#Unwrap_UVW].baseMaterial_list[1] = undefined $.modifiers[#Unwrap_UVW].texMapList.count = 0 $.modifiers[#Unwrap_UVW].texMapIDList.count = 0 $.modifiers[#Unwrap_UVW].texMapList.count = 1 $.modifiers[#Unwrap_UVW].texMapIDList.count = 1 $.modifiers[#Unwrap_UVW].texMapList[1] = Checker () $.modifiers[#Unwrap_UVW].texMapIDList[1] = -1 $.modifiers[#unwrap_uvw].unwrap.edit () actionMan.executeAction 2077580866 "40049" -- All Commands: Normal Map Dialog subobjectLevel = 3 $.modifiers[#unwrap_uvw].unwrap5.mappingMode 0 subobjectLevel = 3 $.modifiers[#unwrap_uvw].unwrap5.mappingMode 1 actionMan.executeAction 2077580866 "40194" -- All Commands: Render UVW Template $.modifiers[#unwrap_uvw].unwrap5.renderUV ""
two Napisano 14 Lipiec 2012 Autor Napisano 14 Lipiec 2012 Ok, mniej więcej wiem jak się zabrać do tematu. Mam jednak jeden problem. Jak mogę odwołać się do wysokości, szerokości i długości obiektu ? W normalnym boxie to jest $.height. Jednak potrzebuję uniwersalną komendę np. do czajnika. Po prostu chodzi mi o odczytanie wysokości. Później robię skalowanie, ale potrzebuję do tego mieć znaną wysokość.
gonre Napisano 16 Lipiec 2012 Napisano 16 Lipiec 2012 nodeGetBoundingBox Returns a 2 element array containing the min and max points of the node's bounding box in coordinate system matrix3 as point3 values. Positions returned are always in the specified matrix3 coordinate system. bb= nodeGetBoundingBox $teapot01 $camera01.transform format " % % \n" bb[1] bb[2] LUB nodeLocalBoundingBox Returns a 2 element array containing the min and max points of the node's local bounding box. Positions returned are in the current coordinate system. bb= nodeLocalBoundingBox $teapot01
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ę