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?