Skocz do zawartości

Featured Replies

Napisano

Mam około 400 obiektów dla których muszę zrobić tą samą czynność.

 

stworzyć ogranicznik/zawias constriaint point-point i ustawić parent space w punkcie 0,0,0

 

Próbuje zrobić to maxrecorderem ale nic mi nie wychodzi

 

 

 

macros.run "reactor" "rctCreatePointPoint" -- tutaj tworze point-pioint z zaznaczonych obiektów

$.hasParent = off -- tutaj wyłączam parenta

 

 

subobjectLevel = 1

modPanel.setCurrentObject $.baseObject

subobjectLevel = 2

modPanel.setCurrentObject $.baseObject -- tutaj ustawiam parent i object space na 0,0,0

-- Unknown property: "baseObject" in $selection - dlaczego to wyskakuje, kiedy próbuje uruchomić skrypt dlaczego nie tworzy się obiekt POMOCY

  • Odpowiedzi 13
  • Wyświetleń 1,2k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

Nie wiem czy to o to chodzi ale na poczatku musisz inaczej tworzyc poin-point.

 

pp = point_point() -- tutaj tworze point-pioint z zaznaczonych obiektów

pp.hasParent = off -- tutaj wylaczam parenta

 

 

subobjectLevel = 1

modPanel.setCurrentObject $.baseObject

subobjectLevel = 2

modPanel.setCurrentObject $.baseObject

Napisano

do point to point chyba musz byc przypisane obiekty. Child i Parent lub tylko child jesli maja dyndac w worldspace. chcesz stworzyc constraint ktory nic nie robi ?

Napisano
  • Autor

pp = point_point() -- tutaj tworze point-pioint z zaznaczonych obiektów -- samego point_point zrobiło

pp.hasParent = off

-- Runtime error: Attempt to access deleted scene object - tu wyskoczył błąd

 

Nie znam sie na skryptach i to mnie zabija

Jak wrzucam pierwsza linijke to tworzy sie się obiekt ale juz druga linijka nie działa

Jak to powinno sie zapisywać aby jedna opcja działała po drugiej bo w tej chwili opcje działają jakby osobno

 

Pozdrawiam

Napisano
  • Autor
do point to point chyba musz byc przypisane obiekty. Child i Parent lub tylko child jesli maja dyndac w worldspace. chcesz stworzyc constraint ktory nic nie robi ?

 

Chyba nie umiem tego opisać.

 

Chce do 400 obiektó przypisać ten point-point i zeby wszystkie obracały się wokół początku współrzędnych

 

ale nie chce robic to dla każdego z osobna

Napisano

tamten skrypt mi dzialal. A druga linijka o ile nie skasowales obiektu tez powinien dzialac.

 

Nie znam reaktora ani tego point-point wiec ciezko mi pomoc.

A nie moze to byc cos takiego ze parentuje twoje obiekty do zwykłego Point Helpera ktory jest tworzony w [0,0,0]. A potem sterujac obiektem wszysktie beda sie opraca/poruszac z nim? o to chodzi??

Napisano
  • Autor

Nie mam pojęcia o co chodzi ale dostaje niezłego doła wiem że to się da zrobić i nie umiem.

 

guru - tak, chcę aby wszystkie obiekty obracały się wokó jednego punktu nie ważne czy to będzie helper czy kula czy punkt początkowy

 

Nie rozumiem tego. Może trzeba coś napisać zeby wyselekcjonował tego nowo powstałego point-point

Napisano

fn ParentAll obj =
(
local p = Point box:on cross:on WireColor:[0,150,0] size:0.5 	
for x in obj do (	x.parent = p )	
print "Parent All objects"
select p

)
parentall $

 

Czy to o to chodzi??

Zaznacz obiekty ktore chcesz przylaczyc i wykonaj ten kod.

Napisano
  • Autor

ok działa, ale czy to mi pomoże w symulacji?

Chciałbym aby każdy obiekt miał swój własny ogranicznik bo chcę aby każdy poruszał się odzielnie w symulacji.

Napisano

zeby dla kazdego obiektu (400) byl tworzony point w srodku sceny.

 

Jak to nie dziala:D. U mnie smiga. Jaka masz wersje maxa??

Napisano
  • Autor

maxa mam 2011

 

Dla każdego obiektu chcę stowrzyć ogranicznik, helper może być tylo jako punkt odniesienia (parent) dla ogranicznikia point-point

Napisano

wybierz obiekty i odpal to. Testowalem tylko na kulkach w maxie 2009 i dziala nromalnie.

 

fn AddPointToPointConstraintToSelectionOfObjects = (

   objs_arr = selection as array

   constraintSolver = CSolver()
   rigidBodyCollection = RBCollection()
   constraintSolver.rbCollection =     rigidBodyCollection

   for i=1 to objs_arr.count  do (

       PointToPoint = Point_Point()
       PointToPoint.hasParent = false
       PointToPoint.childBody = objs_arr[i]
       constraintSolver.AddConstraint PointToPoint
       rigidBodyCollection.AddRigidBody objs_arr[i]
       PointToPoint.parentTransform =  matrix3 1
       PointToPoint.alignToParentSpace()

   )

   for Bodyindex=1 to rigidBodyCollection.rigidBodies.count  do (

       RBCollectionInterface = rigidBodyCollection.rctRBCollectionInterface
       rigidBodyObject = RBCollectionInterface.getRigidObject Bodyindex
       rigidBodyObject.mass = 10

   )
)
AddPointToPointConstraintToSelectionOfObjects()

Napisano
  • Autor

Hej CgBartosz

 

To prawie działą ale robi dodatkowe RBcollection i CSolver i podwójnie ten ogranicznik point-point co mi komplikuje scene bo ja juz mam Rig body collection a CSolver też

 

jakby dało się wyłączyć tworzenie tych dodatkowych obiektów to git by był?

 

guru mi zrobił skrypcik, który działa musze tylko przy zaznaczaniu obiektów pierwsze klikać na ten parent a później na child

Wielkie Dzięki jesteś prawdziwym GURU

Ideałem byłoby żeby te 400 obiekty się automatycznie tak przetworzyły.

 

 

pp = point_point()

pp.hasParent = false

 

par = selection[1]

chi = selection[2]

 

poz = chi.transform.pos

 

pp.parentBody = par

pp.childBody = chi

 

pp.parentTransform = (matrix3 [1,0,0] [0,1,0] [0,0,1] [0,0,0])

pp.childTransform = (matrix3 [1,0,0] [0,1,0] [0,0,1] [-poz.x,-poz.y,-poz.z])

 

select pp

Edytowane przez claude

Napisano

Masz jeden obiekt parent czy sa to pary obiektow parent-child ? Jesli pary to trzebaby je w scenie jakos unikalnie oznaczyc, na przyklad nazywajac w ponizszy sposob:

 

Zawias_01_parent

Zawias_01_child

 

Zawias_02_parent

Zawias_02_child

 

...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności