PartialOffload (ActionSource)
Introduced
4.0
Description
Partially offloads the fcurve items one or many action sources for a given range of frames. Note that this applies only to FCurve items in the action.
The action source needs to have an external storage in order to be able to execute this command. Before offloading an action source, if the action is dirty it will be exported. Once offloaded or partially offloaded, an action source will never export the data again. When an action source is partially offloaded, the status parameter of the source is reset to 1 (roughly equivalent to the siAssetStatusPartiallyLoaded enum value.
Scripting Syntax
ActionSource.PartialOffload( FrameStart, FrameEnd, [Remember] )
C# Syntax
ActionSource.PartialOffload( Int32 in_dStartFrame, Int32 in_dEndFrame, Boolean in_bRemember );Parameters
|
Parameter |
Type |
Description |
|
FrameStart |
The frame to start offloading the fcurve keys. If smaller than AnimStart parameter on the action, AnimStart will be used instead. |
|
|
FrameEnd |
The frame to end offloading the fcurve keys. If greater than AnimEnd parameter on the action, AnimStart will be used instead. |
|
|
Remember |
If true, the range of frames will be appended to the OffloadedRanges parameter of the action, so when the scene is reloaded the partial offload will be processed. If false, the range of frames is only temporarily offloaded. Default Value: false |
Examples
JScript Example
/* This example demonstrates how to partially offload an animation source. */ NewScene( null, false ); // Create an animation source of a sphere. CreatePrim("Cone", "MeshSurface", null, null); Translate(null, -7.85065649868519, 0.715575131336405, -7.15575131336405E-02, siRelative, siView, siObj, siXYZ, null, null, null, null, null, null, null, null, null); SaveKey("cone.kine.local.posx,cone.kine.local.posy,cone.kine.local.posz", 1, null, null); SetValue("PlayControl.Key", 10, null); SetValue("PlayControl.Current", 10, null); Translate(null, 4.19500728937374, 7.06630442194682, -0.706630442194682, siRelative, siView, siObj, siXYZ, null, null, null, null, null, null, null, null, null); SaveKey("cone.kine.local.posx,cone.kine.local.posy,cone.kine.local.posz", 10, null, null); SetValue("PlayControl.Key", 20, null); SetValue("PlayControl.Current", 20, null); Translate(null, 4.25493596493627, -7.84151081422792, 0.784151081422792, siRelative, siView, siObj, siXYZ, null, null, null, null, null, null, null, null, null); SaveKey("cone.kine.local.posx,cone.kine.local.posy,cone.kine.local.posz", 20, null, null); SetValue("PlayControl.Key", 30, null); SetValue("PlayControl.Current", 30, null); Translate(null, 4.1350786138113, 7.57317013997673, -0.757317013997673, siRelative, siView, siObj, siXYZ, null, null, null, null, null, null, null, null, null); SaveKey("cone.kine.local.posx,cone.kine.local.posy,cone.kine.local.posz", 30, null, null); SetValue("PlayControl.Key", 40, null); SetValue("PlayControl.Current", 40, null); Translate(null, 2.21736099581185, -7.48372324855972, 0.748372324855972, siRelative, siView, siObj, siXYZ, null, null, null, null, null, null, null, null, null); SaveKey("cone.kine.local.posx,cone.kine.local.posy,cone.kine.local.posz", 40, null, null); CreateModel(null, null, null); SelectObj("Model.Cone", null, null); StoreAction("", "Model.Cone.kine.local.sclx,Model.Cone.kine.local.scly," + "Model.Cone.kine.local.sclz,Model.Cone.kine.local.rotx,Model.Cone." + "kine.local.roty,Model.Cone.kine.local.rotz,Model.Cone.kine.local." + "posx,Model.Cone.kine.local.posy,Model.Cone.kine.local.posz,Model." + "Cone.kine.global.sclx,Model.Cone.kine.global.scly,Model.Cone.kine." + "global.sclz,Model.Cone.kine.global.rotx,Model.Cone.kine.global.roty" + ",Model.Cone.kine.global.rotz,Model.Cone.kine.global.posx,Model.Cone" + ".kine.global.posy,Model.Cone.kine.global.posz", 2, "simplemove", true, 1, 40, false, false); // Add a clip of the source in the mixer SelectObj("Model", null, null); AddTrack("Model", "Model", 0, null, null); AddClip("Model", "Sources.Animation.Model.simplemove", null, "Model.Mixer.Mixer_Anim_Track", 1, null, null, null, null); SetValue("PlayControl.Key", 20, null); SetValue("PlayControl.Current", 20, null); // We need to set the external storage to external if we want to be able // to offload the source SetValue("Sources.Animation.Model.simplemove.storage", 3); var oAction = GetValue("Sources.Animation.Model.simplemove"); // Now offload the fcurve in the section of frames 10 to 20 oAction.PartialOffload( 10,20, false ); LogMessage(oAction.status.Value); LogMessage(oAction.OffloadedRanges.Value); // Note that this partial offload as not been added to the OffloadedRanges parameter of the source. // reloading the action will dispose the temporary offloaded ranges oAction.Reload(); oAction.PartialOffload( 12,22, true ); LogMessage(oAction.status.Value); LogMessage(oAction.OffloadedRanges.Value); // Expected result: //INFO : 1 //INFO : //INFO : 1 //INFO : 12,22
See Also
Autodesk Softimage v7.5