This tag encloses all animation specific data. The "File" parameter can be used to load a default environment for the viewer/container. Using this approach the user can use a HSF to define the initial attribute settings within the scene. This could include color settings for geometry within the scene and the initial positioning of lights.
This tags defines an alias for a given animation target. It can either enclose one or multiple animation tags or be defined for later use.
The subtarget tag can be part of the TargetObject tag and further specifies targets for the animation. Those could be individual faces/edges/vertices in a shell or individual shells inside a segment .
Identifier of the subtarget object
String can be any one of the following : GEOMETRY, FACES, VERTICES, EDGES.
Pivot point
Segment path to target object
Identifier of target object
Rotational Components of modelling Matrix
Scale Components along the three axis
The different action type strings have the following meaning:
ACTIVATE continues an animation from it's current position
DEACTIVATE stops an animation at its current position
INFOTEXT displays text information (e.g. tooltip) at mouse position
RESET stops an animation at it's current position and rewinds it
RESTART restarts an animation
LOADFILE loads a new (hsf) file and places it in the directory defined by the value
parameter
LOADURL loads a specific URL by opening a separate browser window
This collection of tags provide a simple means of triggering animation based on user input or other sensors. It is usually associated with visible geometry that the user can interact with. In a lot of cases this will be the same geometry that the animation is performed on. To chain multiple animations together ONANIMFINISHED with an animation as the target can be used.
Users can define their own action types/value combinations. All action types that are not recognized will have to be quietly disregarded by any parser. We recommend developers to prefix all user defined types with a "$".
Animation Identifier, Object Identifier or Sensor identifier
Action associated with the target.
Additional parameters for the defined action
Delay time (in ticks) before action is activated
Identifier of target object for this sensor (see below). Could be either an object or an animation (for ONANIMFINISHED), if no target is provided sensor can still be executed by other sensor
event associated with the target
Event is only executed if target object is idle (not in any animation)
Identifier of the sensor object.
Delay time (in ticks) before sensor is active
Vendor information
Path/URL of file that serves as stage for this animation block
Version number of the format specification
Number of individual “time-slices” per second that can be used to specify key frames
(tps). All time related values are expressed in ticks.
Identifier of the animation data
Initial Execution delay for this animation block (in ticks)
By combining a timeline with one or more interpolators and a target the Animation tag defines a single animation. If the timeline contains more values than the interpolator the remaining timeline values are disregarded. If the timeline contains less values than the interpolator than the number of interpolator values must be a multiple of the timeline values.
Timeline values (s): 0, 0.2, 0.8, 1.2
Rotation Values (degree): 0, 90, 180
The animation will rotate from 0 to 180 degrees in 0.8 seconds and then stop or restart (according to the loop setting)
Timeline values (s): 0, 0.2, 0.8, 1.2
Rotation Values (degree): 0,20,40,60,80,100,120,140
The animation will go from 0 to 180 degrees in 1.2 seconds. It will be at 40 degrees in 0.2 seconds and at 20 degrees in 0.1 seconds.
Timeline values (s) : 0, 0.2, 0.8, 1.2
Rotation Values (degree): 0,20,40,60,80,100
Invalid!!
An animation can be declared either active or inactive at startup. If inactive it can later be activated by a sensor tag, through scripting or programmatically. An active animation will execute immediately after program initialization with the defined delay time
With the Loop parameter it is possible to allow an animation to be performed once or any number of times. Alternatively it can also go backwards after going through the complete timeline by setting RLoop to 1. This is useful for a swinging door or any kind of repetitive animation.
Apart from the delay time that is only executed once it is also possible to define an acceleration time and deceleration time which allows for a smooth acceleration when going from the first to the second (or second last to last) value of the interpolators. This is based on a simple predefined acceleration/deceleration curves.
This tag can also be nested allowing for sets of animations that logically belong together. All tags that appear inside an “Animation” tag are defined relative to that block. Sensor tags can access nested animation data by using a hierarchical naming scheme similar to the one used to access elements in the HOOPS segment structure. The same is true for target specifications. All parameters of the enclosing animation block will be inherited by the child animations.
it is possible to define an animation “instance” by specifying another animation with the “InstanceOf” Parameter. This facilitates the reuse of animations for different target objects. An example would be an animation block that defines various complex animations which should be applied to multiple objects simultaneously. An “instanced” animation can itself not instantiate another animation.
The “Target” Paremter for instanced animations will be ignored and replaced by the Target of the instanciating animation. Also the “CurrentTick” and “Active” Parameter do not apply for instanced animations.
This tag defines a series of time values (expressed in ticks) used in conjunction with one or more interpolators. The actual time for one frame is determined by the "TicksPerSecond" parameter in the Animdef tag that encloses all animation data. The timeline array can be seen as linear interpolation of time over distance. By using modifiers on an individual timeline element it is possible to change this "velocity curve" and give it non-linear behavior. While it is common in animation to specify "acceleration and deceleration" as part of the "space-curve" definition this approach provides an alternative and more direct control over the "speed" of the animation.
See the "Interpolator" description for a more in-depth discussion of modifiers.
Global Modifier list for this timeline Valid options are currently: (l)inear, (t)cb, (b)ezier (d)iscrete
Positional values expressed either linear or spline based movement.
Identifier of the Interpolator object
Adjusts the rotation of the object to follow the path of the keyframe values
Directional vector if FollowPath=1
Default Modifiers that are implicitly applied to all keyframes
Rotational Values expressed as quaternions (x, y, z, w). SLERP interpolation is used between the keyframes.
Identifier of the Interpolator object
Default Modifiers that are implicitly applied to all keyframes
Linear or non-linear scaling of objects
Identifier of the Interpolator object
Default Modifiers that are implicitly applied to all keyframes
Transition between segments by turning visibility on/off. Simple but fast form of animation.
Default Modifiers that are implicitly applied to all keyframes
Identifier of the Interpolator object
Rotational Values expressed as rotations around a common axis (in degrees). Swinging door, pendulum, etc...
Identifier of the Interpolator object
Default Modifiers that are implicitly applied to all keyframes
Color values expressed as rgb triplets.
Further specifies the geometry type that the color applies to (faces, edges, lines, etc…)
Further specifies the color component(diffuse, specular, transmission)
Identifier of the Interpolator object
Default Modifiers that are implicitly applied to all keyframes
Transition between attribute settings. All attributes of the segments referenced in the keyframe list will be applied to the target segment. Useful for switching rendering modes, visibility, etc.
Identifier of the Interpolator object
Default Modifiers that are implicitly applied to all keyframes
Transition between facetted objects with the same number of vertices. Linearly interpolates between vertex coordinates. Useful for non-rigid body animation. Note that object descriptor can currently only be a tag-id or a key. (TOB, TID, HKEY),
Identifier of the Interpolator object
Default Modifiers that are implicitly applied to all keyframes
Transition between per vertex color attributes to model for example heat or stress proliferation on an object. The object descriptor must point to an array of color values that match the target object.
Identifier of the Interpolator object
Default Modifiers that are implicitly applied to all keyframes
Positional values defining a trail drawn as line segments. The trail is created in a special subsegment (called "trail") of the segment pointed to by the target object of the parent animation.
Identifier of the Interpolator object
Color of the trail geometry
Thickness of the trail
Style of trail (see HOOPS documentation for available line styles)
Path will either extend from target position to last keyframe (forward), from first keyframe to target position (backward) or from first keyframe to last keyframe (full)
Default Modifiers that are implicitly applied to all keyframes