tebop opened this issue on Oct 30, 2007 · 56 posts
diolma posted Fri, 09 November 2007 at 6:51 PM
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
import poser
scene = poser.Scene()
Figure = scene.CurrentFigure()
if not Figure: raise "No figure selected"
RCollar = Figure.Actor( "Right Collar" )
if not RCollar: raise "Right Collar not found"
LCollar = Figure.Actor( "Left Collar" )
if not LCollar: raise "Left Collar not found"
RShldr = Figure.Actor( "Right Shoulder" )
if not RShldr: raise "Right Shoulder not found"
LShldr = Figure.Actor( "Left Shoulder" )
if not LShldr: raise "Left Shoulder not found"
RCBend = RCollar.Parameter( "Bend" )
if not RCBend: raise "RCBend not found"
LCBend = LCollar.Parameter( "Bend" )
if not LCBend: raise "LCBend not found"
RSBend = RShldr.Parameter( "Bend" )
if not RSBend: raise "RSBend not found"
LSBend = LShldr.Parameter( "Bend" )
if not LSBend: raise "LSBend not found"
for F in range(scene.NumFrames()):
scene.SetFrame(F)
# Deal with this frame
# try a very simple "fix" for now..
cv = RCBend.Value() # save the Collar bend value
RCBend.SetValue( 0 ) # clear it
sv = RSBend.Value() # get the shoulder bend
# adjust the shoulder bend.
# Due to the different "sensitivities" between the collar and
# the shoulder, the collar value cannot be directly
# transferred to the shoulder.
# The following was worked out empirically using Posette.
# It will probably have to be changed for different figures.
newSV = sv + (cv * 1.5)
RSBend.SetValue( newSV ) # set the shoulder
# Now do the same for the left side..
cv = LCBend.Value() # save the Collar bend value
LCBend.SetValue( 0 ) # clear it
sv = LSBend.Value() # get the shoulder bend
newSV = sv + (cv * 1.5)
LSBend.SetValue( newSV ) # set the shoulder
scene.SetFrame(0)