Re: [scripting] exporting keys
| Date : Tue, 17 Jul 2007 10:18:17 -0400 |
| To : XSI(at)Softimage.COM |
| From : "Bernard Lebel" <3dbernard(at)gmail.com> |
| Subject : Re: [scripting] exporting keys |
Should get you started. You don't need any command, the object model provides everything you need for that.
def writeFcurve( self, oParameter, iSpace ):
"""
Write the override entry type as a parameter.
"""
self.aFileLines.append(
' '.join( [
'%s<parameter' % ( ' ' * iSpace, ),
'scriptname="%s"' % ( oParameter.scriptname, ),
'valuetype="%i"' % ( oParameter.valuetype, ),
'sourceclassname="FCurve"',
'inputid="0"',
'entrytype="2">\n'
] )
)
# Get the fcurve
oFcurve = oParameter.source
# Check if fcurve has keyframes
if oFcurve.keys.count > 0:
iSpace2 = iSpace + 2
self.aFileLines.append( '%s%s<fcurve plotted="%s">' % ( '\n', ' ' * iSpace2, str(bPlotted) ) )
iSpace4 = iSpace2 + 2
self.aFileLines.append ( '%s<fcurveparameter scriptname="extrapolation" valuetype="2">%i</fcurveparameter>\n' % ( ' ' * iSpace4, oFcurve.extrapolation ) )
self.aFileLines.append( '%s<fcurveparameter scriptname="interpolation" valuetype="2">%i</fcurveparameter>\n' % ( ' ' * iSpace4, oFcurve.interpolation ) )
self.aFileLines.append( '%s<fcurveparameter scriptname="highclamp" valuetype="5">%f</fcurveparameter>\n' % ( ' ' * iSpace4, oFcurve.highclamp ) )
self.aFileLines.append( '%s<fcurveparameter scriptname="lowclamp" valuetype="5">%f</fcurveparameter>\n' % ( ' ' * iSpace4, oFcurve.lowclamp ) )
self.aFileLines.append( '%s<fcurveparameter scriptname="nokeyvalue" valuetype="4">%f</fcurveparameter>\n' % ( ' ' * iSpace4, oFcurve.nokeyvalue ) )
for oKeyframe in oFcurve.keys:
self.writeKeyframe( oKeyframe, iSpace4 )
self.aFileLines.append( '%s</fcurve>\n' % ( ' ' * iSpace2 ) )
self.aFileLines.append( '%s</parameter>\n' % ( ' ' * iSpace, ) )
def writeKeyframe( self, oKeyframe, iSpace ):
# Because of inconsistencies in float precision,
# We have to round the time
self.aFileLines.append( '%s<keyframe time="%f" value="%f">\n' % ( ' ' * iSpace, round(oKeyframe.Time), oKeyframe.Value ) )
iSpace2 = iSpace + 2
self.aFileLines.append( '%s<keyconstraint type="1" valuetype="11">%s</keyconstraint>\n' % ( ' ' * iSpace2, str(oKeyframe.Constraint( 1 )) ) )
self.aFileLines.append ( '%s<keyconstraint type="2" valuetype="11">%s</keyconstraint>\n' % ( ' ' * iSpace2, str(oKeyframe.Constraint( 2 )) ) )
self.aFileLines.append( '%s<keyconstraint type="4" valuetype="11">%s</keyconstraint>\n' % ( ' ' * iSpace2, str( oKeyframe.Constraint( 4 )) ) )
self.aFileLines.append( '%s<keyconstraint type="8" valuetype="11">%s</keyconstraint>\n' % ( ' ' * iSpace2, str(oKeyframe.Constraint( 8 )) ) )
self.aFileLines.append( '%s<keyconstraint type="16" valuetype="11">%s</keyconstraint>\n' % ( ' ' * iSpace2, str(oKeyframe.Constraint( 16 )) ) )
self.aFileLines.append ( '%s<keyconstraint type="32" valuetype="11">%s</keyconstraint>\n' % ( ' ' * iSpace2, str(oKeyframe.Constraint( 32 )) ) )
self.aFileLines.append( '%s<keyconstraint type="65" valuetype="11">%s</keyconstraint>\n' % ( ' ' * iSpace2, str( oKeyframe.Constraint( 64 )) ) )
self.aFileLines.append( '%s<keyconstraint type="128" valuetype="11">%s</keyconstraint>\n' % ( ' ' * iSpace2, str(oKeyframe.Constraint( 128 )) ) )
self.aFileLines.append( '%s<keyconstraint type="256" valuetype="11">%s</keyconstraint>\n' % ( ' ' * iSpace2, str(oKeyframe.Constraint( 256 )) ) )
self.aFileLines.append ( '%s<keyconstraint type="512" valuetype="11">%s</keyconstraint>\n' % ( ' ' * iSpace2, str(oKeyframe.Constraint( 512 )) ) )
self.aFileLines.append( '%s<keyconstraint type="1024" valuetype="11">%s</keyconstraint>\n' % ( ' ' * iSpace2, str( oKeyframe.Constraint( 1024 )) ) )
self.aFileLines.append( '%s<keyproperty type="interpolation" valuetype="2">%i</keyproperty>\n' % ( ' ' * iSpace2, oKeyframe.Interpolation ) )
self.aFileLines.append( '%s<keyproperty type="left" valuetype="4">%f</keyproperty>\n' % ( ' ' * iSpace2, oKeyframe.Left ) )
self.aFileLines.append( '%s<keyproperty type="right" valuetype="4">%f</keyproperty>\n' % ( ' ' * iSpace2, oKeyframe.Right ) )
self.aFileLines.append( '%s<keyproperty type="lefttanx" valuetype="4">%f</keyproperty>\n' % ( ' ' * iSpace2, oKeyframe.LeftTanX ) )
self.aFileLines.append ( '%s<keyproperty type="lefttany" valuetype="4">%f</keyproperty>\n' % ( ' ' * iSpace2, oKeyframe.LeftTanY ) )
self.aFileLines.append( '%s<keyproperty type="righttanx" valuetype="4">%f</keyproperty>\n' % ( ' ' * iSpace2, oKeyframe.RightTanX ) )
self.aFileLines.append( '%s<keyproperty type="righttany" valuetype="4">%f</keyproperty>\n' % ( ' ' * iSpace2, oKeyframe.RightTanY ) )
self.aFileLines.append( '%s</keyframe>\n' % ( ' ' * iSpace, ) )
On 7/17/07, Alexander Hemery < vortex(at)fhw.gr> wrote:
>
>
> hello all
>
> I want to make a script that exports plotted transformations of a selected
> object to a file where each line represents a keyframe and has
> posXYZ/rotXYZ/sclXYZ values.
> What commands should I be looking for ? I have no idea where to start.
> Thanks in advance!
>
> Alex.
>
- Follow-Ups:
- Re: [scripting] exporting keys
- From: "Alexander Hemery" <vortex(at)fhw.gr>
- Re: [scripting] exporting keys
- References:
- [scripting] exporting keys
- From: "Alexander Hemery" <vortex(at)fhw.gr>
- [scripting] exporting keys
| DATE: | << | >> | THREAD: | << | >> | INDEX: | Main | Thread |
|---|
- Previous by Date: Re: changing standard values in property pages
- Next by Date: Re: changing standard values in property pages
- Previous by Thread: Re: changing standard values in property pages
- Next by Thread: Re: changing standard values in property pages
- Index(es):
| Search the XSI List archives here or use the advanced search form to search across mailing lists. Searching help is available. |