Skocz do zawartości

Rekomendowane odpowiedzi

Napisano

Witam!:)

 

Oto screen:

 

skrypcik.jpg

 

Chcialbym wiedziec jak sie robi taki fajny interface do animowania w maxie? Czy trzeba do tego napisac wlasny skrypcik? Zbytnio nie wiem jak mam zapytac google o to cos

  • Odpowiedzi 8
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano (edytowane)

Masz tu skrypcik na robienie tych malych kontrolek ktore mozna rozmiarowac. A edytujac width lub length mozesz uzywac go jako binarny suwak gora-dol lub lewo-prawo.

 

rollout _controls "Kontrolka" width:180
(
group "Create Controls" 
(	
	spinner spn_ctrl_size "Size:" pos:[10,20] type:#float range:[1,10,1]
	button btn_create_Ctrl "Create" pos:[120,18]
)
fn funk ctrlSize =
(
rec =Rectangle length:ctrlSize width:ctrlSize angle:90 name:(uniqueName "Controler") wireColor:[200,0,0]
cir=Circle radius:(ctrlSize*0.1)  name:(uniqueName "CHandler") wireColor:[0,0,200]
cir.parent = rec
rec.rotation.x_rotation = 90
setTransformLockFlags cir #{3..9}

flCtrl = cir.pos.controller
flCtrl.X_Position.controller = float_limit() --Adding limit controller
flCtrl.Y_Position.controller = float_limit() --Adding limit controller
rec.width.controller = bezier_float()
rec.length.controller = bezier_float()
--Wireing parameters
paramWire.connect rec.baseObject[#Width] cir.pos.controller.X_Position.controller[#Limits][#Upper_Limit] "Width/2"
paramWire.connect rec.baseObject[#Width] cir.pos.controller.X_Position.controller[#Limits][#Lower_Limit] "-Width/2"
paramWire.connect rec.baseObject[#Length] cir.pos.controller.Y_Position.controller[#Limits][#Upper_Limit] "Length/2"
paramWire.connect rec.baseObject[#Length] cir.pos.controller.Y_Position.controller[#Limits][#Lower_Limit] "-Length/2"

select rec
)	
on btn_create_Ctrl pressed do
(
	funk spn_ctrl_size.value
)
)
createDialog _controls

 

Majac to zwyczajnie z pomoca "Wire Params " łaczysz pozycje z rotacja czy czym innym.

Edytowane przez guru
Napisano
guru, popraw moze swoj skrypt bo nie bedzie dzialal w aktualnej formie.

Trzeba zdefiniowac funkcje ponad miejscem jej wywolania.

 

Dzieki faktycznie nie dzialal:P.

Jeden nawiac za duzo na dole.

Napisano

no tak ale widocznie maxscript funkcje pierwsze kompiluje. Funkcja jest poza rollout'em wiec pewnie dlatego.

Zawsze tak robie i dziala:)

Napisano

niezupelnie, uruchomilem maxa, wkleilem skrypt i przy kliknieciu guzika dostalem takie info:

 

-- Error occurred in btn_create_Ctrl.pressed()

-- Frame:

-- faceControler: undefined

>> MAXScript Rollout Handler Exception: -- Type error: Call needs function or class, got: undefined

  • Like 1
Napisano (edytowane)
niezupelnie, uruchomilem maxa, wkleilem skrypt i przy kliknieciu guzika dostalem takie info:

 

-- Error occurred in btn_create_Ctrl.pressed()

-- Frame:

-- faceControler: undefined

>> MAXScript Rollout Handler Exception: -- Type error: Call needs function or class, got: undefined

 

Masz racje. Mam ta sama funkcje w innym kodzie i prawdopodobnie z pamieci pobral gdy wykonywalem inny kod. Juz poprawiam. Dzieki za uwage:)

 

rollout _controls "Kontrolka" width:180
(
group "Create Controls" 
(	
	spinner spn_ctrl_size "Size:" pos:[10,20] type:#float range:[1,10,1]
	button btn_create_Ctrl "Create" pos:[120,18]
)
fn funk ctrlSize =
(
rec =Rectangle length:ctrlSize width:ctrlSize angle:90 name:(uniqueName "Controler") wireColor:[200,0,0]
cir=Circle radius:(ctrlSize*0.1)  name:(uniqueName "CHandler") wireColor:[0,0,200]
cir.parent = rec
rec.rotation.x_rotation = 90
setTransformLockFlags cir #{3..9}

flCtrl = cir.pos.controller
flCtrl.X_Position.controller = float_limit() --Adding limit controller
flCtrl.Y_Position.controller = float_limit() --Adding limit controller
rec.width.controller = bezier_float()
rec.length.controller = bezier_float()
--Wireing parameters
paramWire.connect rec.baseObject[#Width] cir.pos.controller.X_Position.controller[#Limits][#Upper_Limit] "Width/2"
paramWire.connect rec.baseObject[#Width] cir.pos.controller.X_Position.controller[#Limits][#Lower_Limit] "-Width/2"
paramWire.connect rec.baseObject[#Length] cir.pos.controller.Y_Position.controller[#Limits][#Upper_Limit] "Length/2"
paramWire.connect rec.baseObject[#Length] cir.pos.controller.Y_Position.controller[#Limits][#Lower_Limit] "-Length/2"

select rec
)	
on btn_create_Ctrl pressed do
(
	funk spn_ctrl_size.value
)
)
createDialog _controls

Edytowane przez guru

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