Skocz do zawartości

Featured Replies

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
  • Wyświetleń 1,2k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

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.

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

Powaznie? tego nie zauwazylem, jednak nadal wywolujesz funkcje "faceControler" przed jej definicja...

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

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

 

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

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności