Skocz do zawartości

lechoo

Members
  • Rejestracja

  • Ostatnia wizyta

Zawartość dodana przez lechoo

  1. lechoo odpowiedział kyoq → na odpowiedź w temacie → Programs Languages
    in coordsys obiekt_matka ( obiekt_dziecko.pos = [x,y,z] ) x,y,z to wartosci ustawiane suwakami
  2. lechoo odpowiedział 3dsmaxman → na odpowiedź w temacie → Programs Languages
    Zmodyfikuj ten kawalek kodu: case click of ( 2: (a = abs(gridDist.x)) 3: ( addmodifier selection[1] (Smooth autosmooth:true threshold:30) #stop ) ) Podejrzewam ze moznaby zrobic to bardziej elegancko ale to bylo najprostsze rozwiazanie.
  3. lechoo odpowiedział 3dsmaxman → na odpowiedź w temacie → Programs Languages
    W funkcji buildMesh musisz zmienic wszystkie ost na mesh. Jest to lokalna zmienna na ktorej operuje skryptowy plugin, czyli obiekt ktory tworzy. Wyrzuc tez addmodifier i convertToMesh. Drugie jest niepotrzebne a nadawanie modyfikatora w funkcji buildMesh oznaczaloby nakladanie nowego modyfikatora za kazdym razem kiedy zmieniasz jakis parametr obiektu, bo wlasnie tak wywolywana jest funkcja buildMesh. Sama funkcja setMesh sluzy to zdefiniowania topologi jakiegos juz istniejacego mesha (to ze mesh istnieje nie oznacza ze na zdefiniowana topologie), natomiast Ty uzywales setMesh na zmiennej ost pod ktora nie bylo zadnego mesha i dlatego wywalalo Ci blad. W normalnym skrypcie musialbys najpierw napisac ost = mesh() i dopiero wtedu setMesh.
  4. lechoo odpowiedział 3dsmaxman → na odpowiedź w temacie → Programs Languages
    Moglbys wrzucic caly skrypt, tak najlatwiej bedzie znalesc jakis blad.
  5. lechoo odpowiedział 3dsmaxman → na odpowiedź w temacie → Programs Languages
    Myslalem ze chodzi C o sam modyfikator :) Najprawodpodobniej nie zadeklarowales zmiennej ost, przynajmniej ja mam identyczny blad w takiej sytuacji. Sprobuj zmienic sam poczatek skryptu na: plugin simpleObject OstFor name: "OstFor" category: "Own Geometric Objects" classID:#(0x61e203b2, 0x63656b19) ( local ost a dalej po staremu.
  6. lechoo odpowiedział 3dsmaxman → na odpowiedź w temacie → Programs Languages
    Wywolanie jest jak najbardziej poprawne. Co do podstawowych bryl mozesz poszukac w przykladowych pluginach do maxa ktore sa w sdk. Sama geometrie tworzy sie dosc podobnie. Mozesz tez sprobowac na www.scriptspot.com w dziale objects.
  7. lechoo odpowiedział kyoq → na odpowiedź w temacie → Programs Languages
    Mozesz wykorzystac konstrukcje in coordsys. Przykladowo: in coordsys glowa_obj ( --tutaj poruszasz miesniami i wszystkie opercje beda sie odbywaly w --lokalnym ukladzie wspolrzednych obiektu glowa_obj )
  8. lechoo odpowiedział sbx → na odpowiedź w temacie → Programs Languages
    Normalnie robi sie to na callbackach ale nie znalazlem takiego ktory bylby wywolywany w momencie zaznaczenia obiektu. Byc moze da sie to jakos obejsc wykorzystujac custom attributes np. wywolujac jakas funkcje w momencie otwarcia interfejsu dodanego do obiektu.
  9. How To ... Read Geometry Data From Text File - Part One & Two
  10. lechoo odpowiedział 3dsmaxman → na odpowiedź w temacie → Programs Languages
    1. Jesli poprostu chcesz pisac w maxie to proponuje zaczac od skryptow. Do wielu rzeczy nie warto pisac pluginow bo w skrypcie jest prosciej i szybciej. Natomiast jesli masz pomysl na jakies konkretne narzedzie to warto zastanwic sie nad pluginem. 2. Jest ksiazka "mastering max script & max sdk" jesli dobrze pamietam tytul i to w zasadzie wszystko (i tak lepiej niz do XSI bo tam nic nie ma). Pozostaje wiec help i przyklady z samego sdk.
  11. lechoo odpowiedział sbx → na odpowiedź w temacie → Programs Languages
    Nie bardzo rozumiem co chcialbys zrobic. Blad wywala Ci bo kontroler skryptowy musi zwracac wartosc Point3 czyli np. if (select $Box01)==1 then [0,0,0] else [0,0,0] powinno byc dobrze.
  12. lechoo odpowiedział sbx → na odpowiedź w temacie → Programs Languages
    Dobrym pomyslem byloby zamienic getnodeByName na getNodeByHandle. Nigdy nie bedziesz mial dwoch nodow o tym samym ID a z nazwami moze byc roznie.
  13. lechoo odpowiedział sbx → na odpowiedź w temacie → Programs Languages
    Musisz dodac do custom attributes parametr myID type:#integer i wpisac do niego ID obiektu na ktorym jest CA: $Box01.inode.handle. Teraz pod samym buttonem odzyskujesz obiekt po jego ID: myObj = maxOps.getNodeByHandle myID. Jak masz obiekt reszta jest prosta: myObj.parent - rodzic obiektu myObj.children - tablica z dziecmi obiektu
  14. lechoo odpowiedział sbx → na odpowiedź w temacie → Programs Languages
    Czy funkcja pod buttonem ma dzialac na obiektach bedacych dziecmi lub rodzicami obiektu do ktorego button jest przypisany?
  15. lechoo odpowiedział sbx → na odpowiedź w temacie → Programs Languages
    Problem jest taki ze kazesz custom atrybutowi wypisac zmienna lokalna wazna tylko w obrebie funkcji boneCA, a tego nie mozna zrobic (a jest domyslne zmienna globalna). Musisz dodac do CA jakiegos stringa np. myObjName, do niego wpisac swoja zmienna czyli nameObj i wypisywac ta wewnetrzna zmienna. fn boneCA target nameObj = ( anotherObjNameCA = attributes attribute( parameters main rollout:params( blend type:#float ui:sld default:50 myObjName type:#string ) rollout params "IK/FK Blending" ( button btnSik "IK" pos:[10,51] width:31 height:22 button btnSfk "FK" pos:[119,53] width:31 height:22 label lbl1 "" pos:[57,56] width:52 height:17 slider sld "" pos:[5,12] width:152 height:25 button btnDik "IK" pos:[12,86] width:31 height:22 button btnDfk "FK" pos:[121,88] width:31 height:22 label lbl2 "" pos:[51,86] width:61 height:17 on btnSik pressed do ( print myObjName ) on btnSfk pressed do(print a) )) cn = getnodebyname target; custAttributes.add cn anotherObjNameCA cn.myObjName = nameObj ) a = "nic"; boneCA $Box01.name "jakas nazwa" Co do pytania 2 to chyba nie ale jeszcze pomysle :)
  16. lechoo odpowiedział sbx → na odpowiedź w temacie → Programs Languages
    Ja jak chce wiedziec co sie dzieje konwertuje kwaterniony na eulerangles, pracuje na nich i na koniec konwertuje zpowrotem na kwaterniony.
  17. lechoo odpowiedział sbx → na odpowiedź w temacie → Programs Languages
    Z kwaternionami bedzie troche inaczej, dzielisz tylko angle: dependsOn $Box01 myVal = $Box01.rotation myVal.angle = myVal.angle / 2 inverse myVal
  18. lechoo odpowiedział sbx → na odpowiedź w temacie → Programs Languages
    Sorki, napisalem to w ciemno bez sprawdzania, powinno byc tak: anotherObjNameCA = attributes "anotherObjName" ( parameters mainParams ( myObj type:#string ) ) custAttributes.add $GeoSphere01 anotherObjNameCA
  19. lechoo odpowiedział sbx → na odpowiedź w temacie → Programs Languages
    hehe, najprosciej napisac i zobaczyc czy wywali blad, ale powarznie to mozna dzielic calosc, to samo z pozycja.
  20. lechoo odpowiedział sbx → na odpowiedź w temacie → Programs Languages
    Stringa dodajesz tak: anotherObjNameCA = attributes anotherObjName ( parameters main rollout:params ( myObj type:#string ) ) custAttributes.add $GeoSphere01 anotherObjNameCA A reszta juz tak samo.
  21. lechoo odpowiedział sbx → na odpowiedź w temacie → Programs Languages
    Mozesz to zrobic przy pomocy custom attributes np. tak: anotherObjNameCA = attributes anotherObjName ( parameters main rollout:params ( myObj type:#node ) rollout params "another object" ( pickButton myObjpicker "pick object" on myObjpicker picked obj do myObj = obj ) ) custAttributes.add $GeoSphere01 anotherObjNameCA Wykoanie tego kodu spowoduje dodanie do GeoSphere01 atrybutu myObj ktory bedzie mogl przechowywac obiekty. Pickbutton sluzy tylko do wpisania czegos do tej zmiennej. Teraz mozesz dobrac sie do tego obiektu w ten sposob: print $GeoSphere01.myObj.name Spowoduje to wypisanie nazwy obiektu przechowywanego w GeoSphere01. Jesli nie potrzebujesz pickbuttona to mozesz pominac cala czesc z rolloutem i wpisac obiekt samemu $GeoSphere01.myObj = $jakis_obiekt Oczywiscie custom attributes sa zapisywane razem ze scena. Mama nadzieje ze o to Ci chodzilo.
  22. lechoo odpowiedział kuba333 → na odpowiedź w temacie → Programs Languages
    O ile wiem nie mozna zaimportowac tylko czesci obiektow z jakiegos pliku, ale mozna zrobic merge wybranych obiektow z pliku max.
  23. lechoo odpowiedział kuba333 → na odpowiedź w temacie → Programs Languages
    Na przyklad tak: utility test01 "test" ( button imgTest images:#("c:/temp/pic.bmp",undefined,1,1,1,1,1) on imgTest pressed do importFile "c:/temp/box.3ds" ) Wystarczy ze pozmieniasz odpowiednie sciezki i zrobisz guzik i bitmape dla kazdego obiektu.
  24. lechoo odpowiedział kuba333 → na odpowiedź w temacie → Programs Languages
    Jesli chcesz je udostepnic to najprosciej przekonwertowac do formatu czytanego przez maxa. Jesli koniecznie chcesz robic to pluginem to musisz z poziomu kodu tworzyc cala geometrie od zera. Nie polecam tej metody, bo plik ze zrodlem moze zrobic sie strasznie duzy jesli modele sa skomplikowane i jest ich duzo. W helpie do max scriptu zerknij do rozdzialu "Scripted SimpleObject Plug-ins", tam jest pokazane jak robi sie takie rzeczy. Mozesz to zrobic jeszcze inaczej, nacisniecie konkretnej miniaturki powoduje zaimportowanie pliku z tym modelem, wydaje mi sie ze tak byloby najprosciej.
  25. lechoo odpowiedział gonre → na odpowiedź w temacie → Programs Languages
    Wlasciwie jest to brak w VRay'u. Jego swiatla "VRayLight" nie maja udostepnionj dla max scriptu wlasciwosci excludeList.

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności