Jump to content

Stretchy Arm system 3ds max


grand99
 Share

Recommended Posts

Hej

Mam pytanie. Posiada ktos linka/info jak zrobic stretchy arm system w 3ds? Wiem jak zrobic ik/fk blending system, tylko chcialbym do tego doddac stretchy arm z kontrola lokcia (ktory tez moze byc rozciagany)

z gory dzieki:)

Link to comment
Share on other sites

ok, jakby kogos interesowalo to znalazlem cos takiego:)

http://forums.cgsociety.org/showthread.php?t=590979

 

.............

Create 3 bones (b01,b02,b03) with an ik limb, and one point.

 

Unfreeze length of the bones.

 

Use the point as swivel angle.

 

Add float list controller on the x position of the 2 last bones, with :

- a float script calculating distance from point to b01 for b02

- a float script calculating distance from b02 to point for b03

- a float bezier as second slot for b02 and b03

 

Add float script to the float list weight controller (to avoid animation).

 

Now we need some change handlers :

-----------------------------------------

 

clearlistener()

gc()

 

deleteAllChangeHandlers id:#ElbowIk_Sel

 

when select #($'Point01',$'IK Chain01') changes id:#ElbowIk_Sel handleAt:#redrawViews obj do

(

if selection[1] == $'Point01' then

(

Farm = $'Bone02'.controller.FK_Sub_Control.position.contr oller.x_position.controller

Wrist = $'Bone03'.controller.FK_Sub_Control.position.contr oller.x_position.controller

 

Farm[2].value = Farm[1].value

Wrist[2].value = Wrist[1].value

Farm.weight[1].controller.script = "1.0"

Farm.weight[2].controller.script = "0.0"

Wrist.weight[1].controller.script = "1.0"

Wrist.weight[2].controller.script = "0.0"

print "Point Select"

)

if selection[1] == $'IK Chain04' then

(

Farm = $'Bone02'.controller.FK_Sub_Control.position.contr oller.x_position.controller

Wrist = $'Bone03'.controller.FK_Sub_Control.position.contr oller.x_position.controller

 

Farm[2].value = Farm[1].value

Wrist[2].value = Wrist[1].value

 

Farm.weight[1].controller.script = "0.0"

Farm.weight[2].controller.script = "1.0"

Wrist.weight[1].controller.script = "0.0"

Wrist.weight[2].controller.script = "1.0"

print "ik Chain Select"

)

)

 

deleteAllChangeHandlers id:#Ik01

 

when transform $'IK Chain01' changes id:#Ik01 handleAt:#redrawViews do

(

$'Point01'.pos = $'Bone02'.pos

)

 

deleteAllChangeHandlers id:#Elbow01

 

when transform $'Point01' changes id:#Elbow01 handleAt:#redrawViews do

(

Farm = $'Bone02'.controller.FK_Sub_Control.position.contr oller.x_position.controller

Wrist = $'Bone03'.controller.FK_Sub_Control.position.contr oller.x_position.controller

 

Farm[2].value = Farm[1].value

Wrist[2].value = Wrist[1].value

)

 

Feel free to try and comment.

If needed i can post an example file.

...............

 

 

tylko mam problem

robie 3 kosci, ustawiam IK, nie freezuje kosci, dodaje w float list controller w 2 ostatnich kosciach (b02,b03) pod x position float script i bezier float, tylko co pozniej? jak dodac ten scrypt ktory napisal?? moze ma ktos jakies rozwiazanie?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

We are using cookies. Read about our Privacy Policy