VGT Napisano 22 Październik 2003 Napisano 22 Październik 2003 Dzięki kursowi ostatnio bawię się w maxscript i piszę własny plug-in. Jest już praktycznie na ukończeniu, ale bardziej robię go dla własnej satysfakcji, gdyż narzędzi przydatnych to w nim nie ma :) . Po drodze często trafiam na mniejsze lub większe problemy, ale udawało mi się je obejść. Niestety na poniższe już mi się objazdów nie udało znaleźć, więc chciałbym się zwrócić z prośbą o pomoc do bardziej zaawansowanych użytkowników w następujących kwestiach: 1. To musi być proste, ale chyba mam klapki na oczach bo nie mogę się do tego dogrzebać. Jeżeli chcę przesunąć obiekt w opisane zmiennymi miejsce, czy zmienić nazwę, stosuję: obiekt = selection obiekt.pos = [wspx,wspy,wspz] obiekt.name = \"nazwa\" No i wszystko jest ok. Tylko teraz jak uzyskać efekt odwrotny. Czyli chcę parametry wybranego elementu (współrzędne, nazwa) pobrać do zmiennych, by móc na nich potem operować. Tego samego potrzebuję w vertexach spline\'a. Udaje mi się te wartości wywołać w listenerze: getknotpoint $line01 1 1 --współrzędne pierwszego vertexa [23.8485,11.6306,0] Ale jak przypisać je zmiennym?? 2. Miałem do zrealizowania zadanie w którym użytkownik zaznacza dowolną ilość obiektów, a skrypt wykonuje po kolei na każdym z nich wymagane operacje (konieczne jest aby wykonywał na każdym osobno). Zrealizowałem to w ten sposób: group (selection) name:\"VGTsXVII_turb\" select ($VGTsXVII_turb) setgroupopen $VGTsXVII_turb true for x = $* do if isopengroupmember x then ( --wykonywane instrukcje na obiekcie x ) setgroupopen $VGTsXVII_turb false ungroup $VGTsXVII_turb Jak widać skrypt po kolei \"podchodzi\" do każdego obiektu w scenie i sprawdza, czy należy on do otwartej grupy (w ten sposób zrobiłem rozpoznawanie, na którym obiekcie ma wykonać zadanie). Problem pojawia się, gdy w scenie znajduje się jakakolwiek inna grupa, która jest otwarta. Niby skrypt działa, ale jeszcze z programowania mam takie nawyki, że staram się robić programy \"głupoodporne\", więc nie chciałbym, aby w wymaganiach skryptu było np.: żadna inna grupa nie może być otwarta, kolor obiektów musi być różowy, w winamp\'ie nie może lecieć discopolo, a za oknem musi być dobra pogoda [lol] Więc czy da się dodatkowo sprawdzać, czy obiekt x należy do otwartej grupy o konkretnej nazwie? 3. A ostatnia sprawa to już w zasadzie na pewno drobnostka. Jak zrobić pole tekstowe, w którym wyświetlana byłaby wartość zmiennej (aktualizowana przy każdej zmianie) ?? Jeżeli ktoś jest w stanie w jakikolwiek sposób naprowadzić mnie na rozwiązanie któregoś z tych problemów, będę wdzięczny za wypowiedź.
dr Ug Napisano 22 Październik 2003 Napisano 22 Październik 2003 zaznaczoneObiekty = getCurrentSelection() pierwszyObiekt = zaznaczoneObiekty[1] nazwa = pierwszyObiekt.name Tworzy sie tablica z zaznaczonymi elementami, do ktorej dobierasz sie przez index. W komorce przechowywana jest nazwa i .pos.
VGT Napisano 22 Październik 2003 Autor Napisano 22 Październik 2003 Po burzliwych dyskusjach udało się rozwiązać pierwszy problem :) Dzięki DruG!! No i jeszcze po bliższym zapoznaniu się z nową instrukcją getcurrentselection() okazała się ona także rozwiązaniem na mój drugi problem: grupa = getcurrentselection() for i = 1 to grupa.count do ( x = grupa(i) -- tu powinny być kwadratowe nawiasy, ale forum bierze to za formatowanie tekstu wiec jest tak -- wykonywane instrukcje na obiekcie x ) Więc pozostała już tylko trójeczka :]
lechoo Napisano 23 Październik 2003 Napisano 23 Październik 2003 Gdzies czytalem o skrypcie ktory sledzi wartosc wybranej zmiennej, dam znac jak uda mi sie go znalesc.
lechoo Napisano 23 Październik 2003 Napisano 23 Październik 2003 Znalazlem tego skrypta http://mapage.noos.fr/phlam/mx4/MVMon/index.htm moze to cos Ci pomoze, bo sam jeszcze nie wiem jak to dziala.
VGT Napisano 23 Październik 2003 Autor Napisano 23 Październik 2003 Dzięki za namiar. Będę kombinował... kto wie, może przypadkiem się uda ;)
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ę