Skocz do zawartości

Schody ruchome


uke

Rekomendowane odpowiedzi

Hej

 

Zrobiłem właśnie animowane schody ruchome. Każdy stopień przypisany 'Path constrait' do linii. 100 stopni, wobec czego musiałem 100 razy zmienić parametr '% along spline'.... Wie ktoś jak można to zrobić prościej/szybciej/elastyczniej?

 

Jeśli komuś takie schody się przydadzą to dajcie znać. H-600cm.

 

ukłony

uke

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 7
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

Zrobiłem Ci narzędzie, którego szukasz.

Skopiuj ten kod i wklej do "max script editor" i daj na "evaluate all" lub "ctrl + e"

Ten skrypt dodaje path constraint jak i umożliwia zmianę procentową.

 

- wybierasz spline

- zaznaczasz stopnie czy inne elementy

- jeżeli nie masz jeszcze dodanych path constraint to wciskasz "Add path constraint"

- następnie suwakiem ustawiasz co ile mają być odstępy schodów na splinie i wciskasz "set along path val". Czyli jak masz np 5 stopni i ustawisz suwak na 25 to pierwszy stopien bedzie na 0 kolejny na 25 itd

- jeżeli później chcesz zmienić wartość na splinie to tylko zmieniasz wartość suwakiem i jeszcze raz wciskasz "set along path val"

 

try (destroyDialog pathConstraint) catch ()
rollout pathConstraint "Path Constraint Setup"
(
group "Spine Select"
(
pickbutton pickSplineB "Pick Spline"
edittext curSpline "Current Spline:"   readOnly:true
)
Group "Path Vonsraint"
(
button addPathCons "Add Path Constraint"
)
group "Path Value"
(
button setPercVal "Set Along Path val"
spinner addPathPerc "Set Steps"
)
local SplineB,s
on pickSplineB picked elem do
(
	curSpline.text=elem.name
	SplineB=elem
)
on addPathCons pressed do
(
	try(
	s=selection as array
	for o in s do
	(
		o.position.controller=position_list()
		num=o.position.controller.count+1
		o.position.controller[num].controller=path_constraint()
		o.position.controller.active=num
		o.position.controller[#Path_Constraint].path=SplineB
	)
	)catch()
)
on setPercVal pressed do
(
	try(
	s=selection as array
	for i = 1 to s.count do
	(
		o=(i-1)*addPathPerc.value
		s[i].position.controller[#Path_Constraint].percent=o
	)
	)catch()
)
)
createDialog pathConstraint

Odnośnik do komentarza
Udostępnij na innych stronach

Jeżeli chcesz łatwo animować schody to teraz też masz taką możliwość:

 

- w grupie "Animate Percent" wpisujesz o ile mają się przesunąć

- wciskasz auto key i następnie "Move Along Path"

 

nowy kod

try (destroyDialog pathConstraint) catch ()
rollout pathConstraint "Path Constraint Setup"
(
group "Spine Select"
(
pickbutton pickSplineB "Pick Spline"
edittext curSpline "Current Spline:"   readOnly:true
)
Group "Path Vonsraint"
(
button addPathCons "Add Path Constraint"
)
group "Path Value"
(
button setPercVal "Set Along Path val"
spinner addPathPerc "Set Steps"
)
Group "Animate Percent"
(
button animPerc "Move Along Path"
spinner AnimPercVal "Set Steps"
)
local SplineB,s
on pickSplineB picked elem do
(
	curSpline.text=elem.name
	SplineB=elem
)
on addPathCons pressed do
(
	try(
	s=selection as array
	for o in s do
	(
		o.position.controller=position_list()
		num=o.position.controller.count+1
		o.position.controller[num].controller=path_constraint()
		o.position.controller.active=num
		o.position.controller[#Path_Constraint].path=SplineB
	)
	)catch()
)
on setPercVal pressed do
(
	try(
	s=selection as array
	for i = 1 to s.count do
	(
		o=(i-1)*addPathPerc.value
		s[i].position.controller[#Path_Constraint].percent=o
	)
	)catch()
)
on animPerc pressed do
(
	try(
	s=selection as array
	for i = 1 to s.count do
	(
		o=AnimPercVal.value
		s[i].position.controller[#Path_Constraint].percent +=o
	)
	)catch()
)
)
createDialog pathConstraint

Odnośnik do komentarza
Udostępnij na innych stronach

Mistrzu, genialnie!

 

Wielkie dzięki. Teraz muszę jakość dojść jak to działa. Masz jakieś godne polecenia samoukowi źródła wiedzy o skryptach w maxie? Tutków jest masa, ale rozsądnych niewiele. A może ty coś już napisałeś? Ściągnąłem ten o riggowaniu Indiego, wydawałeś inne dzieła?

 

Jeszcze raz wielkie dzięki

 

pozdrawia

uke

Odnośnik do komentarza
Udostępnij na innych stronach

Hehe, proszę bardzo.

Nie, ja żadnych tutków nie robiłem. Cieszę się, że podobają ci się moje rzeczy:)

Jeżeli chcesz zacząć bawić się skryptowaniem to oczywiście polecam tutoriale z cgacademy. Jeżeli nie robisz szkieletów i nie chcesz sobie zaprzątać głowy macierzami to spokojnie starczą te z poziomu intermediate. Generalnie bardzo dużo rzeczy idzie się dowiedzieć z F1. Od maxa chyba 6 zajmuję się nim Bronisław "Bobo" Petrov, który bardzo dobrze go napisał.

 

Pozdrawiam

  • Like 2
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