Helli
03-13-2005, 12:35 PM
Hi all
My question is again about scripted Operators.
Is it normal that they have really bad perforance or did I just do something wrong ??
The performance when using the script is only about 1/10 of the normal scene performance using no scripts.
So the whole idea behind is useless because no one wants to animate with a rig when he has to wait after moving the controlers for the rig Oo
Here is the script:
'----------------------Augen Direction steuern----------------------------
FaktorX = 600
FaktorY = 100
If controler_direction.value.posx <> "0" Or controler_direction.value.posy <> "0" Then
Select Case Out.Name
Case "Bone0_out"
Out.value.posx = Bone0.value.posx.value + controler_direction.value.posx.value/(FaktorX*0.8)
Out.value.posy = Bone0.value.posy.value + controler_direction.value.posy.value/(FaktorY)
Case "Bone1_out"
Out.value.posx = Bone1.value.posx.value + controler_direction.value.posx.value/(FaktorX*0.5)
Out.value.posy = Bone1.value.posy.value + controler_direction.value.posy.value/(FaktorY)
Case "Bone2_out"
Out.value.posx = Bone2.value.posx.value + controler_direction.value.posx.value/(FaktorX*0.3)
Out.value.posy = Bone2.value.posy.value + controler_direction.value.posy.value/(FaktorY)
Case "Bone3_out"
Out.value.posx = Bone3.value.posx.value + controler_direction.value.posx.value/(FaktorX*0.5)
Out.value.posy = Bone3.value.posy.value + controler_direction.value.posy.value/(FaktorY)
Case "Bone4_out"
Out.value.posx = Bone4.value.posx.value + controler_direction.value.posx.value/(FaktorX*0.8)
Out.value.posy = Bone4.value.posy.value + controler_direction.value.posy.value/(FaktorY)
Case "Bone5_out"
Out.value.posx = Bone5.value.posx.value + controler_direction.value.posx.value/(FaktorX*0.5)
Out.value.posy = Bone5.value.posy.value + controler_direction.value.posy.value/(FaktorY)
Case "Bone6_out"
Out.value.posx = Bone6.value.posx.value + controler_direction.value.posx.value/(FaktorX*0.3)
Out.value.posy = Bone6.value.posy.value + controler_direction.value.posy.value/(FaktorY)
Case "Bone7_out"
Out.value.posx = Bone7.value.posx.value + controler_direction.value.posx.value/(FaktorX*0.5)
Out.value.posy = Bone7.value.posy.value + controler_direction.value.posy.value/(FaktorY)
End Select
End if
'---------------------Lider steuern-----------------------------------
maxY = -4.8928
If controler_lider.value <> 0 then
Select Case Out.Name
'---Oberlid
Case "Bone1_out"
yDistanz = Bone1.value.posy.value - Bone7.value.posy.value
maxYoberlid = yDistanz * upper_lid_down
moveY = (maxYoberlid * (100/(maxY / controler_lider.value))/100)
out.value.posy = Bone1.value.posy.value - moveY
xDistanz = Bone7.value.posx.value - Bone1.value.posx.value
moveX = 0.5 * xDistanz * ((100/(maxY / controler_lider.value))/100)
out.value.posx = Bone1.value.posx.value + moveX
Case "Bone2_out"
yDistanz = Bone2.value.posy.value - Bone6.value.posy.value
maxYoberlid = yDistanz * upper_lid_down
moveY = (maxYoberlid * (100/(maxY / controler_lider.value))/100)
out.value.posy = Bone2.value.posy.value - moveY
xDistanz = Bone6.value.posx.value - Bone2.value.posx.value
moveX = 0.5 * xDistanz * ((100/(maxY / controler_lider.value))/100)
out.value.posx = Bone2.value.posx.value + moveX
Case "Bone3_out"
yDistanz = Bone3.value.posy.value - Bone5.value.posy.value
maxYoberlid = yDistanz * upper_lid_down
moveY = (maxYoberlid * (100/(maxY / controler_lider.value))/100)
out.value.posy = Bone3.value.posy.value - moveY
xDistanz = Bone5.value.posx.value - Bone3.value.posx.value
moveX = 0.5 * xDistanz * ((100/(maxY / controler_lider.value))/100)
out.value.posx = Bone3.value.posx.value + moveX
'---Unterlid
Case "Bone5_out"
yDistanz = Bone3.value.posy.value - Bone5.value.posy.value
maxYunterlid = yDistanz * (1 - upper_lid_down)
moveY = (maxYunterlid * (100/(maxY / controler_lider.value))/100)
out.value.posy = Bone5.value.posy.value + moveY
xDistanz = Bone5.value.posx.value - Bone3.value.posx.value
moveX = 0.5 * xDistanz* ((100/(maxY / controler_lider.value))/100)
out.value.posx = Bone5.value.posx.value - moveX
Case "Bone6_out"
yDistanz = Bone2.value.posy.value - Bone6.value.posy.value
maxYunterlid = yDistanz * (1 - upper_lid_down)
moveY = (maxYunterlid * (100/(maxY / controler_lider.value))/100)
out.value.posy = Bone6.value.posy.value + moveY
xDistanz = Bone6.value.posx.value - Bone2.value.posx.value
moveX = 0.5 * xDistanz* ((100/(maxY / controler_lider.value))/100)
out.value.posx = Bone6.value.posx.value - moveX
Case "Bone7_out"
yDistanz = Bone1.value.posy.value - Bone7.value.posy.value
maxYunterlid = yDistanz * (1 - upper_lid_down)
moveY = (maxYunterlid * (100/(maxY / controler_lider.value))/100)
out.value.posy = Bone7.value.posy.value + moveY
xDistanz = Bone7.value.posx.value - Bone1.value.posx.value
moveX = 0.5 * xDistanz * ((100/(maxY / controler_lider.value))/100)
out.value.posx = Bone7.value.posx.value - moveX
End Select
End if
My question is again about scripted Operators.
Is it normal that they have really bad perforance or did I just do something wrong ??
The performance when using the script is only about 1/10 of the normal scene performance using no scripts.
So the whole idea behind is useless because no one wants to animate with a rig when he has to wait after moving the controlers for the rig Oo
Here is the script:
'----------------------Augen Direction steuern----------------------------
FaktorX = 600
FaktorY = 100
If controler_direction.value.posx <> "0" Or controler_direction.value.posy <> "0" Then
Select Case Out.Name
Case "Bone0_out"
Out.value.posx = Bone0.value.posx.value + controler_direction.value.posx.value/(FaktorX*0.8)
Out.value.posy = Bone0.value.posy.value + controler_direction.value.posy.value/(FaktorY)
Case "Bone1_out"
Out.value.posx = Bone1.value.posx.value + controler_direction.value.posx.value/(FaktorX*0.5)
Out.value.posy = Bone1.value.posy.value + controler_direction.value.posy.value/(FaktorY)
Case "Bone2_out"
Out.value.posx = Bone2.value.posx.value + controler_direction.value.posx.value/(FaktorX*0.3)
Out.value.posy = Bone2.value.posy.value + controler_direction.value.posy.value/(FaktorY)
Case "Bone3_out"
Out.value.posx = Bone3.value.posx.value + controler_direction.value.posx.value/(FaktorX*0.5)
Out.value.posy = Bone3.value.posy.value + controler_direction.value.posy.value/(FaktorY)
Case "Bone4_out"
Out.value.posx = Bone4.value.posx.value + controler_direction.value.posx.value/(FaktorX*0.8)
Out.value.posy = Bone4.value.posy.value + controler_direction.value.posy.value/(FaktorY)
Case "Bone5_out"
Out.value.posx = Bone5.value.posx.value + controler_direction.value.posx.value/(FaktorX*0.5)
Out.value.posy = Bone5.value.posy.value + controler_direction.value.posy.value/(FaktorY)
Case "Bone6_out"
Out.value.posx = Bone6.value.posx.value + controler_direction.value.posx.value/(FaktorX*0.3)
Out.value.posy = Bone6.value.posy.value + controler_direction.value.posy.value/(FaktorY)
Case "Bone7_out"
Out.value.posx = Bone7.value.posx.value + controler_direction.value.posx.value/(FaktorX*0.5)
Out.value.posy = Bone7.value.posy.value + controler_direction.value.posy.value/(FaktorY)
End Select
End if
'---------------------Lider steuern-----------------------------------
maxY = -4.8928
If controler_lider.value <> 0 then
Select Case Out.Name
'---Oberlid
Case "Bone1_out"
yDistanz = Bone1.value.posy.value - Bone7.value.posy.value
maxYoberlid = yDistanz * upper_lid_down
moveY = (maxYoberlid * (100/(maxY / controler_lider.value))/100)
out.value.posy = Bone1.value.posy.value - moveY
xDistanz = Bone7.value.posx.value - Bone1.value.posx.value
moveX = 0.5 * xDistanz * ((100/(maxY / controler_lider.value))/100)
out.value.posx = Bone1.value.posx.value + moveX
Case "Bone2_out"
yDistanz = Bone2.value.posy.value - Bone6.value.posy.value
maxYoberlid = yDistanz * upper_lid_down
moveY = (maxYoberlid * (100/(maxY / controler_lider.value))/100)
out.value.posy = Bone2.value.posy.value - moveY
xDistanz = Bone6.value.posx.value - Bone2.value.posx.value
moveX = 0.5 * xDistanz * ((100/(maxY / controler_lider.value))/100)
out.value.posx = Bone2.value.posx.value + moveX
Case "Bone3_out"
yDistanz = Bone3.value.posy.value - Bone5.value.posy.value
maxYoberlid = yDistanz * upper_lid_down
moveY = (maxYoberlid * (100/(maxY / controler_lider.value))/100)
out.value.posy = Bone3.value.posy.value - moveY
xDistanz = Bone5.value.posx.value - Bone3.value.posx.value
moveX = 0.5 * xDistanz * ((100/(maxY / controler_lider.value))/100)
out.value.posx = Bone3.value.posx.value + moveX
'---Unterlid
Case "Bone5_out"
yDistanz = Bone3.value.posy.value - Bone5.value.posy.value
maxYunterlid = yDistanz * (1 - upper_lid_down)
moveY = (maxYunterlid * (100/(maxY / controler_lider.value))/100)
out.value.posy = Bone5.value.posy.value + moveY
xDistanz = Bone5.value.posx.value - Bone3.value.posx.value
moveX = 0.5 * xDistanz* ((100/(maxY / controler_lider.value))/100)
out.value.posx = Bone5.value.posx.value - moveX
Case "Bone6_out"
yDistanz = Bone2.value.posy.value - Bone6.value.posy.value
maxYunterlid = yDistanz * (1 - upper_lid_down)
moveY = (maxYunterlid * (100/(maxY / controler_lider.value))/100)
out.value.posy = Bone6.value.posy.value + moveY
xDistanz = Bone6.value.posx.value - Bone2.value.posx.value
moveX = 0.5 * xDistanz* ((100/(maxY / controler_lider.value))/100)
out.value.posx = Bone6.value.posx.value - moveX
Case "Bone7_out"
yDistanz = Bone1.value.posy.value - Bone7.value.posy.value
maxYunterlid = yDistanz * (1 - upper_lid_down)
moveY = (maxYunterlid * (100/(maxY / controler_lider.value))/100)
out.value.posy = Bone7.value.posy.value + moveY
xDistanz = Bone7.value.posx.value - Bone1.value.posx.value
moveX = 0.5 * xDistanz * ((100/(maxY / controler_lider.value))/100)
out.value.posx = Bone7.value.posx.value - moveX
End Select
End if
