This chapter provides a general description of the elements, subelements, and attributes that encode scene objects. It includes the following sections:
“Higher-Level Elements”
The attributes for these elements are described in the section “Common Attributes.”
The name in parentheses after the name of an element refers to the type of factory the element is associated with. For example, scenenode(Camera) means the factoryID= attribute of the scenenode references the id= attribute of a Camera factory in the XML file. See Listing 2-3.
name=, id=.[scenenode* | layer*]* : layers or scenenodes a layer contains. The order in which layer and scenenode elements appear follows the Motion scene graph hierarchy.mask* : shape or image masks in the layer.name=, id=, factoryID=, version=validTracks or filter subelements.name=, id=, factoryID=, version=validTracks or filter subelements.name=, id=, factoryID=, version=numberOfPages (unsigned integer) : the number of pages in a PDF file. Present only if a PDF file has more than one page.linkedObjects (id): the id of the audioTrack element this movie clip is linked to, if the movie clip contains audio (located after flags). Present only if an audio track is linked to this scenenode.mask* : shape or image masks in the layer.name=, id=, factoryID=, version=paragraphMarginsCached: the previously used Paragraph layout margins..scrollMarginsCached: the previously used Scroll layout margins.crawlMarginsCached: the previously used Crawl layout margins.paragraphStyles+: information about the formatting of a paragraph in a text layout. style+: styles a text layout incorporates.styleRun : style runs a text layout incorporates.text (string) : the text in a text layout.mask* : shape or image masks in the layer.object*: describes a glyph in a text layout. There must be one object element for every glyph in a text layout.name=, id=, factoryID=, version=scenenode(Replicator)isShapeStyle : an element used internally by Motion that you should not modify.mask* : shape or image masks in the layer.name=, id=, factoryID=, version=pluginUUID= (UUID) : internal plugin UUID for this generator.pluginVersion (float) : internal plugin version of this generator.pluginName (string) : internal name of this generator.mask* : shape or image masks in the layer.scenenode element whose name= attribute is "Emitter" and whose factoryID= attribute corresponds to a Motion replicator. These are not Motion emitters but rather a special class of Motion replicator used to enhance masks, shapes, and paint strokes. See scenenode (replicator).name=, id=, factoryID=, version=scenenode(Particle Cell)* : particle cell sources that this emitter incorporates.mask* : shape or image masks in the layer.name= attribute is "Emitter" and the factoryID= attribute corresponds to a replicator.name=, id=, factoryID=, version=scenenode(Replicator Cell)* : replicator cell sources that this replicator incorporates.Behavior ("Pen Pressure") Note: present only if this replicator represents a shape or paint stroke and incorporates a shape style.Behavior ("Pen Speed") Note: present only if this replicator represents a shape or paint stroke and incorporates a shape stylemask* : shape or image masks in the layer.name=, id=, factoryID=, version=name=, id=, factoryID=, version=clip elements.id=, name=. The name= attribute is set to "Media Layer" and should not be changed.clip*id=, name=.pathURL (URL): absolute URL to the file on disk that this clip represents.relativeURL (URL) : the relative URL to the file with respect to the location of the Motion project file. Present only if the source file is not in the same folder as the Motion project file.missingWidth (integer): the width of this file. Used as a placeholder when the file is missing from disk.missingHeight (integer): the height of this file. Used as a placeholder when the file is missing from diskmissingDuration (float) : the duration of this file in seconds. Equal to the reciprocal of the project framerate if the clip represents an image. Used as a placeholder when the file is missing from disk.creationDuration (integer) : duration of this element in frames with respect to the project framerate. Used as a placeholder for the time line when the file is missing from diskmediaID (UUID): UUID of clip if present in file. Empty if no UUID is present.audiotrack elements.id=, name=. The name= attribute is set to "Audio Layer" and should not be changed.audioTrack*scenenode(Master) name=, id=, factoryID=, version=id=, name=linkedObjects (id): the id of the scenenode element that this audioTrack is linked to. Present only if the audio track is linked to a scenenode elementname=, id=, factoryID=pluginUUID= (UUID) : internal plugin UUID for this filter.pluginVersion (float) : internal plugin version of this filter.pluginName (string) : internal name of this filter.name=, id=, factoryID=name=, id=, factoryID=scenenode(Replicator)isShapeStyle : Motion uses this element internally. You should not modify it.name=, id=, factoryID=Many scene objects and parameters contain similar subelements describing general characteristics of the scene object.
Motion uses these subelements for internal processing. You should not change them.
in= (frame) : the in point of a scene object in the timeline.out= (frame) : the out point of a scene object in the timeline.offset= (frame) : the frame where the media’s first frame begins. This is applicable to Motion image objects referencing movie clips.timing element then appears as:
<timing in="30" out="49" offset="30" />.timing element is then:
<timing in="35" out="49" offset="30" />.inpoint (frame): the frame where this time marker appears.outpoint (frame): the frame where this time marker ends. This element appears only if the time marker’s duration is greater than 1label (string): the name of this time marker. This element appears if the time marker has an assigned name.comment (string): the comment for this time marker. This element appears if the time marker has an assigned comment.color (enumerated): 0: red; 1: green; 2: blue; 3: purple; 4: orange; 5: yellow; 6: gray; 7: cyan.type (enumerated): 0: standard; 1: DVD menu loop; 2: DVD alpha transition.parameter element with this value for the name= attribute specifies a scene object’s unique properties. See “The Properties Parameter.”parameter element with this value for the name= attribute specifies a scene object’s unique settings. See “The Object Parameter.”curve may actually represent a constant value. In this case, its type= attribute is not present, but a value= attribute is.
type= (enumerated): the type of value the curve represents: not present: constant 1: spline 3: used for backward-compatibility purposes.default= (dependent on the channel): the default value for this channel.value= (dependent on the channel). The constant value for this channel; used when “Disable Animation” is selected for a channel in the Inspector or Curve Editor.parametric= (Boolean): 1 if a curve is parametric; 0 otherwise (and the attribute is not visible). Used internally by Motion and should no be modified.round= (Boolean): 1 if the curve values are rounded; 0 otherwise. Used internally by Motion and should no be modified.retimingExtrapolation= (Boolean): 1 if a curve is used for retiming footage and has constant timing; 0 otherwise (and not visible).value= (dependent on the channel). Visible only if the value is a constant.numberOfKeyPoints (integer): the number of keypoints in this curveclosed (Boolean): 1 if the value of the channel this curve represents is interpolated after the last keyframe to values of the first keyframe; 0 otherwise (and not visible). This element is generally used only for curves representing a text object’s path position parameters.preExtrapolation (enumerated): the curve extrapolation method for values before the first keyframe: not visible: constant; 1: linear; 2: Ping-Pong; 3: repeat; 4: progressive repeat.postExtrapolation (enumerated): the curve extrapolation method for values after the last keyframe: not visible: constant;1: linear; 2: Ping-Pong; 3: repeat; 4: progressive repeat.keyPoint*: a keypoint (also known as a keyframe for parameters) for this curve. The number of keyPoint elements must equal the value of the numberOfKeyPoints element.interpolation= (enumerated): the interpolation method for this keypoint. Not present: bezier; 0: constant; 1: linear; 6: continuous; 7: ease In; 8: ease Out; 13: exponential; 14: logarithmic.flags=time (frame): the frame where this keypoint appears on the timeline. For curve elements representing text object paths, the time subelement is the index of the keypoint on the text path, starting at 0.value (dependent on the channel): the value of the channel at this keypoint’s time. bias (percent): the bias for the keypoint. Used by keyPoint elements for B-spline curves. Visible in the XML file only if the bias is not 1.0normal (float): the normal value of this keypoint, if applicable. For curve elements representing text object paths, the normal subelement is used to determine the change in the normal vector of the path at this keypoint.inputTangentTime (float): independent variable for the input handle. Visible in the XML file only if the keypoint is not the first in a curve.inputTangentValue (float): dependent variable for the input handle; Visible in the XML file only if the keypoint is not the first in a curve.outputTangentTime (float): independent variable for the output handle. Visible in the XML file only if the keypoint is not the last in a curve.outputTangentValue (float): dependent variable for the output handle. Visible in the XML file only if the keypoint is not the last in a curve.curve_X describes the X positions of the vertices of a shape. The element curve_Y describes the Y positions of the vertices. vertex*: a vertex for this shape in the specified dimension. There must be as many vertex elements as points in the shape.index= (integer): the index of a vertex in the shape for a given dimension. The first vertex is 0.id=. See “Motion Project File.” The id= attributes for the x and y coordinates of a vertex are set according to the following convention: for x coordinates, id= begins at 1 and increments by 2; for y coordinates, id= begins at 2 and increments by 2. So (1,2) would be the x,y id= pair for the first vertex; (3,4) for the second pair; and so on.flags=. See “Motion Project File.”vertex_folder: a container for elements describing this vertex.vertex_folder are curves; otherwise, they are constant values.name=(defaults to “Vertex”), id=, flags=. See “Motion Project File.” The id= attributes for the x and y coordinates of a vertex are set according to the following convention: for x coordinates, id= begins at 1 and increments by 2; for y coordinates, id= begins at 2 and increments by 2. So (1,2) would be the x,y id= pair for the first vertex; (3,4) for the second pair; and so on.parameter subelements specify a vertex_folder element. Enabled (Boolean): 1 if this point is enabled, 0 otherwise.Value(float): the value of the vertex that this vertex folder represents.Bias(percent): the point bias for this vertex. Used when this vertex represents a Motion B-Spline curve.Input Tangent (float): the value of the input tangent handle for this vertex. Used when this vertex represents a Motion Bezier curve.Output Tangent (float): the value of the output tangent handle for this vertex. Used when this vertex represents a Motion Bezier curve.type= (Boolean): 0 if representing a system font; 1 if a LiveFont.styleRun element.)name=, id= , factoryID= , version=. Note: the name= attribute is set according to the following convention: for a text layout object containing n styles, the first style will be named Style; the second style will be named Style 1, and so forth until Style (n - 1).fontcopyFlags (unsigned integer) : you should not modify this element that Motion uses internally.Size (float): the size in points of the font referenced in this style.Tracking (float): the tracking amount in pixels for this style.Kerning (float): the kerning amount for this style, in pixels.Baseline (float): the baseline amount for this style, in pixels.Slant (float): the slant amount for this style, in pixels.Scale–>Offset–Rotation–>Monospace (Boolean): 1 if enabled; 0 if disabled.All Caps (Boolean): 1 if enabled; 0 if disabled.All Caps Size (percent): the size of the capital letters relative to the size of the font.Style Preset : a parameter used internally by Motion that should not be modified.Face–>: a container for the parameters for the style’s face.Drop Shadow–>: a container for the parameters for the style’s drop shadow.Outline–>: a container for the parameters for the style’s outline.Glow–>: a container for the parameters for the style’s glow.LiveFont Timing–>: a container describing the parameters for LiveFont timing.scenenode.style= (id): the id of the style that this style run incorporates.offset= (unsigned integer): the index of the character where this style run begins, where the index of the first character is 0.length= (unsigned integer): the number of consecutive characters this style run affects.value= (unsigned integer): an decimal ASCII character code.SubelementKerning (float): the kerning value for this glyph in pixels.cached= (Boolean): 1 if margins have been previously set for the Paragraph Layout Mode, 0 if they have not.left= (float): the value of the left margin.right= (float): the value of the right margin.top= (float): the value of the top margin.bottom= (float): the value of the bottom margin.cached= (Boolean): 1 if margins have been previously set for the Scroll Layout Mode, 0 if they have not.left= (float): the value of the left margin.right= (float): the value of the right margin.top= (float): the value of the top margin.bottom= (float): the value of the bottom margin.cached= (Boolean): 1 if margins have been previously set for the Crawl Layout Mode, 0 if they have not.left= (float): the value of the left margin.right= (float): the value of the right margin.top= (float): the value of the top margin.bottom= (float): the value of the bottom margin.paragraphStyle object for every paragraph in the text layout object. A paragraph is defined as a sequence of characters terminated by a carriage return character.justification (enumerated). 0: none; 1: partial; 2: full.alignment (enumerated). 0: left; 1: center; 2: right.tabStop position= (unsigned float): the position of this tab stop.type= (enumerated). 0: left; 1: center; 2: right; 3: decimal.In general, Motion uses the attributes listed here for internal processing. The common attributes include: name=, id=, factoryID=, and version=.
name= attribute of a scene object generally matches the name found in the Layers list of the Project Pane. The name= attribute of a parameter generally matches the name found in the Inspector or other relevant UI element.name= attribute with the value Position in a parameter element references the position controls found in the Transform section of the Properties tab in the Inspector. This parameter has subelements for X, Y, and Z , also found when the Position control in the Inspector is collapsed.name= attribute of a parameter element. On the other hand, you can change name= attributes of elements referring to Motion scene objects, such as layer and scenenode.id= attribute. Generally, this attribute is unique to the element and is used internally by Motion to identify its role in the project. You should not modify an id= attribute, particularly for parameter elements.
version= attribute that references the major version of Motion used to create this object. Motion uses this attribute for internal processing. You should not modify it.The id= attributes for scenenode, layer, footage, audioTrack, and other elements that specify scene objects may be interrelated.
For example, if a movie clip scene object appears in the scene graph, its Media parameter will refer to a clip element’s id= attribute to describe the source media of the movie clip. Additionally, if the movie clip scene object references an audio track, the movie clip scene object will refer to the audio track’s id= attribute and vice versa:
Listing 3-1 id= Example
<scenenode name="Movie1" id="10395" factoryID="1" version="4"> |
. . . |
<linkedobjects>10397<linkedobjects> |
. . . |
<parameter name="Object"> |
. . . |
<parameter name="Media" id="300" flags="65552" value="10393" /> |
</parameter> |
</scenenode> |
<audio name="Audio Layer" id="10398"> |
<audioTrack name="Movie1" id="10397"> |
. . . |
<linkedobjects>10395<linkedobjects> |
. . . |
<parameter name="Properties" id="1" flags="4112"> |
<parameter name="Media" id="104" flags="65552" value="10393" /> |
. . . |
</parameter> |
. . . |
</audioTrack> |
. . . |
</audio> |
<footage name="Media Layer" id="10394"> |
<clip name="Movie1" id="10393"> |
. . . |
</clip> |
. . . |
</footage> |
Since many scene objects may use the same media file as their source, it may be the case that the media parameters for many scenenode elements reference the same clip element.
As the code sample above shows, the id= attribute (10393) for a clip element may be referenced by other scenenode or parameter elements. When modifying the id= attribute for a scenenode element, you may need to modify the related scenenode or parameter elements accordingly.
The id= attribute of a parameter element is used to identify a channel. You should not modify it.
Last updated: 2009-07-23