Variable/Array/Timeline node


On 13/12/2002 at 20:09, xxxxxxxx wrote:

It would be great to have a timeline node.

Very simply put (as for as the user is concerned) it would be a one dimensional array that interpolated data between key values.

Ideally it would be great if you could drag and drop a track from teh timeline into a field on the node and it would take it's info from there (and would be able to set the info back again on the timeline). However if that's not possible then the possibility to take in as a pointer Frame from a Time node, and then be able to "key" points... then the node itself would interpolate the values inbetween the keys (i.e. if you were to key a value at index 0 of 10, and then key a value at index 10 of 30, the value at index 5 would be 20, even though theres no keyframe there), with maybe the option to interpolate hard, soft, linear, or stepped on each keyframe for in and out.. like the normal timeline.

Then just input frame again into the index and out would pop the value at that point in time, if it could handle the usual values in the actual array (i.e. vector, real, matrix, integer etc) then it would be amazingly powerful, for instance you could keyframe a movement of say a walkcycle, then load the keyframes into the array object (either by dragging and dropping the timeline, or by manually going to each keyframe on the main timeline and pressing the record keyframe button on the node AM page, thus recording that value.

Also this would bring in arrays (it would be even better if it could handle multidimensional arrays, so you could just add another array input and output like the condition node you can add inputs), it woudl also bring in variables to xpresso... it would be such a useful node. However why not take it a stage further.

Why not have the option to autokey input info, so press the autokey function, press play and each frame (that is if you've got the Time node inputed to the pointer input on this node) would be recorded... it would enable baking of a lot of things that wouldnt normally be bakeable.

And what about taking it that one stage further.. being able to save and load a text file containing the array. That way the same walk cycle could be used multiple times in multiple animations. Thinking particles could be "baked" by putting all the TP attributes into the array, saving the info, then setting up the scene so that an array node puts all the values into a TPsetData node... it would be amazingly powerful and useful to have.

as a node it should have the following inputs:

Index (the pointer), Value (the value at that index if recorded, could be multiple value inputs each one of a different type), On (Record or not), Interpolation (probably values as follows 0 (step) 1(linear to 2 (hard) 3 (medium as in v7 medium) 4(hard)5(fast)6(slow)), Filename (the text file that the info is being written/loaded from).

and outputs

Value(number of outputs matches the number of inputs), Array length, Next "keyframe" (the index value of the next keyframe) Previous Keyframe (the index of the last keyframe), Interpolation (current interpolation), filename.