We are now moving forward to our next topic: Animations in Aximmetry. We have already seen examples twice in the previous lessons, how to use simple LFO modules to add cyclical and continuous movements to different objects. Obviously, a real animation task is not created simply by these modules. A complex animation task utilises a key and curve based platform in Aximmetry.
We are going to cover its functional scope later on in this tutorial but before that, I will start illustrating how to use a versatile module, such as the LFO, more conveniently, when we have to create simple animations in the software.
We used to have a module on the cube, that facilitates rotation around an axis in the previous tutorial. Let’s use this again. Also we have seen the so called Dash Scalar module that transforms the control of the linked pin into a slider bar in Pin Values editor or on the Dashboard panel. In addition we have seen how this module can be set between minimum and maximum values of the output signal. For our purpose here we can set 30° degrees as a minimum and 100° degrees as the maximum angle of rotation.
It is now clearly visible, that if I draw the slider bar (let`s change the maximum to 140) the cube rotates as well accordingly. What should I do if I want to set this function to become an automatic one by inserting an ON/OFF switch? We are going to use a useful trick here. We have module called: Copy Logical. This copies a logic value, an On/Off value from its input to its output leaving it unchanged. This feature is useful to us when we obtain a switch button in the Dashboard panel by exposing it to the left input side like this. Let`s rename the input pin to “Cube” to recognise it a bit easier.
We now connect the output pin of the Copy Logical module to the Dash Scalar. What happens now? A logical value type is linked to a scalar type input. In such cases that the scalar will take on the values 0 or 1. The Off state will have 0 and On state will have 1. If I keep clicking on the switch, it will result in changing the cube between the two end positions. But it is a sudden shift though and we do not want this to happen. We`d rather like to have a slower, continuous movement from one end position to the other. In order to achieve this we have another fancy module on stock, the so called: Smooth module. In the case that there is a change on the input value, this module will facilitate a soft transition between the previous value into the new value. If I now start clicking on the switch in the Dashboard, we see how the cube is nicely turning. The speed of the transition can be adjusted obviously. We also have an option here to differentiate the speed of the upward movement from the speed of the downward movement with the “Dual Delay” property switch. Let’s set this value to two for instance. This will result in a rather quick roll in one direction and a nice slow roll when it returns.
This setup is good for a simple rotation on the object, but what if we want to define transitions between different locations in the scene as well? I first make a clone copy of the copy logical and smooth modules. As we have seen earlier I select both modules and drag them with the Alt key pressed down. With this move I also preserve the connection between them. So far we have used the Dash Scalar which facilitates transition between two numeric values. But we also have a module that can do the same between two complete transformations. Naturally, this module is titled as: “Dash Transformation”. I connect this here and I also expose the Copy Logical box to the input on the left and rename it “Sphere”, because this time I will animate our sphere object. This group of modules will have to be connected to the Transformation pin of the Sphere module. But, before I do this, there is one more clever move we have to make.
This Dash Transformation module has two transformation values belonging to the minimum and the maximum state. These need to be set in order to get a meaningful result. The easiest way to proceed here is to set the parameters with some visual aid in the preview panel. We can actually move and reposition the sphere itself. When we have found the starting position, we can simply copy its transformation in full by selecting Copy in the right-mouse menu. When it is done I go back to the preview and reposition the sphere to an end position. Let’s make it a little more complicated with a larger rotation and rescaling to a distorted, flattened sphere. In a similar way let’s copy its current transformation into the Maximum value of the Dash Transformation module. Now we have specified the two different end positions of the sphere as we intended and connect Dash to the transformation pin of the Sphere’s node. If we now click on the switch here, the sphere moves between the two end positions. We also see when I don`t wait for the sphere to reach its end position and I click again in the middle of its path - it behaves as if it were obeying the laws of physics in its motion, making the movement realistic. It slows down gradually and starts its return path speeding up gradually in the opposite direction. If we wish to change the characteristics of the movement, to make the sphere start more quickly and to decelerate much slower towards its arrival to the end position or the opposite, then we have another fancy mathematical tool in our sleeve. This is the “Power” module which performs a mathematical power operation on the value.
Adding it after the Smooth module, we can modify the distribution of the values in the 0-1 interval making them more dense towards the 0 or towards the 1 value. If the power exponent is less than 1, the values are condensed towards the 1 value which represents the ending position of the sphere. This results in a faster start from the 0 position and a slower deceleration towards the 1 position. When moving in the opposite direction the effect is reversed, of course. If we then set a higher value than 1, let’s say a quite large 9 as the power exponent, then the values are highly condensed towards the 0 value and the sphere starts quite slowly and decelerates very fast.
Let’s now turn our attention to the “real animations” when we control and change movements by curves. Firstly, let’s target the settings of our light source. As a first measure we are going to animate its different attributes and after this, we return to our objects and do some simple motion animation tasks.
I will now reposition the sphere to its original place so that we are able to see the changes of the lighting better. In order to create and control animations based on curves, we have to insert a so called “Sequencer” module. This module has the functionality to gather and control several adjustable parameters and all the complex movements in general.
To put it simply, the sequencer controls the ever changing parameters of each animation along a timeline. Within the sequencer module we can add an arbitrary number of so called sequence tracks that describe the change of the animation constituents along the timeline. Each signal type that can be animated has its own specific sequence track module in the system.
When we decide to animate a simple scalar value, the intensity of light for instance, we have to add a “Sequence Scalar” module to our compound. This will create a scalar track within the sequencer. Let us name this scalar Light Intensity. I connect it now to the Intensity pin of the Spot Light module. We see that it turned black in the Preview now. The reason for this is the default output value of the track module is zero and therefore the light intensity also becomes zero. We can fix this in the following steps.
The Sequencer has an editor panel, the so called Sequence Editor panel. The easiest way to load our sequencer into the editor is to double-click on it. The sequence editor is displayed now. We can mention one thing here already, that when we open the sequence editor panel we can always have only a single sequencer loaded into it. When we have to shift between different sequencers we can either double-click on them as we did previously or we can click on the dropdown menu here - within the sequencer module itself - where all the available sequencers in the compound are listed.
We only have one sequencer available to us at the moment. We can do the opposite as well. If I choose one specific sequencer here, we can click on the “Sel” button and the system will display the corresponding module to us. In this way we can have a good transport between the two editor views.
We can see here that we already have one track added to the sequencer as we connected the Light Intensity module before. The name of the track is the same as the name of the module in the compound. In order to have curves that can be modified we need the so called “Parts”. Each track is built up so that it contains one or more parts like this one here. Now I will display what it looks like, when we have more of these. The parts of the areas where we can edit curves and subsequently we can move these parts horizontally as well, including the curve placed in it. At the moment we don’t need this second part so I delete it.
For the proper operation of the sequencer, we need quite a lot of shortcuts on the keyboard. I will not talk about them in detail here, please consult the keyboard shortcuts documentation. What can be said about these in general is that the selecting, moving, adjusting and scaling of the parts are done by the right-mouse button. The left-mouse button operates most of the functions regarding the content of the part or more precisely the editing of the curve itself within the part.
Let’s set the length of the animation now. We can set 5 seconds for this animation. Here, I can mention that the panning of the view in the sequencer is done by the middle-mouse button like this. The Ctrl + middle-mouse combination is used for adjusting the scale of the view.
Let’s extend the part now to about 5 seconds, it is not crucial to have exact numbers now. Also, let us increase the height of the editing area. Here we are presented with a linear curve which has its default constant zero value. We can add new “Keys” by pressing the Alt button and left-clicking on the selected place of the curve. I select this position for the first key. If I move this key upwards then it is clearly visible how the intensity of the light on the sphere changes in the preview. Let us add some more new keys. Here the intensity goes down, then little up and so on.
This is a simple animation. We can start here and follow how the intensity changes in cycles according to the markup. The values of each key can be adjusted by the mouse in a similar fashion as I have already mentioned. With the left-mouse pressed down, we can adjust the key in respect of both time and value. This action can be performed here, in the bottom section too. After selecting a key we can adjust its properties in these fields below in the same manner we do in fields in the property editor panel.
We can also select the format of the time here in the “Set Time Format” panel. I will not go into this further but there are a variety of choices here to set up the time format for our sequencer tracks.
The changing of the value (the shape of the curve) between two keys can be adjusted in a couple of different ways. We have for instance the curve type setting field. Not one field but two of them. The one marked is in adjust the incoming section towards the key, the other field marked is out adjust the outgoing section from the selected key. If I set the incoming curve to Linear, we see we get a linear transition. Of course the incoming curve type of a key is the same as the outgoing type of the previous key, we can see its field value has changed to Linear as well.
The default curve type is the Auto Bezier and it is an ideal type to place keys quickly while maintaining a smooth transfer of the signal. Despite it is a Bezier curve, we cannot alter manually its tangent values. Apart from this, it has a couple of parameters for us to use. We will look at these setting options when we deal with the movement animations later on in this tutorial. Their adjustments will manifest visually better when it comes to the movements of objects.
We also have the “Normal Bezier” curve where we can manually adjust the shape and tangents of the curve. As we can see, we have only set the normal Bezier only at the incoming section of the key. If I set the Bezier to the outgoing section too then we end up with the more common tangent setting option with two wings. We also have a switch, down here, called “Smooth”. If I switch it Off then the tangents can be adjusted separately in either sides of the key. This way we can setup a motion where the changing of the speed is discontinuous. If I switch back to On mode, the two wings unite at least in respect of their slope. The length of the wings can be adjusted separately on both sides though.
We have already seen how the IN and the OUT curve types can be adjusted separately. If we want to make these kinds of adjustments more simply, then we have a button here marked with an “L” that stand for “Link”. This button connects the IN and the OUT functions. This gives us a good tool to change both the IN and the OUT curve types at once to the same type. SIne, Linear, we have quite a lot of curve types here listed. Now Let’s set the Bezier curve again.
I would like to talk about the control functions of the sequencer now. Let’s stop the sequencer. This blue vertical line here is called the “cursor”. When the sequencer is in Stop mode we can set the current time within the animation by dragging the cursor. In other words, we can manually sweep through the animation. The cursor also has another effect while the sequencer is in Play mode. It pulls the current play position to the actual position of the blue cursor and when we release the mouse the animation starts again from the new position. The stopping and starting of the sequencer can be done by these familiar Play, Pause and Stop buttons but in real life usage it may be easier to use keyboard shortcuts. For these and other relevant shortcuts to work here, this inner area of the editor must be focused. This means - and I may not have mentioned this earlier - that everywhere in the system, where areas or editor fields appear with a slim, blue frame, that area has the active focus on it. The focus has to be here, in order to use our shortcuts.
One important shortcut that is often used in editors is the “SPACE” key. This key starts and stops an animation while bringing the blue cursor along with it to the last stopping position. The other important shortcut is the ENTER key. This also starts and stops the animation but when you stop the animation the playing position jumps back to the blue cursor. This means that we can easily play the animation sequence from the same start position in a recurring manner with only hitting one shortcut key.
We can also see that currently the play function covers the whole length of the animation in a continuous repeating cycle. When playing reaches the actual end of the animation, it restarts from the actual start of the animation. This functional behavior is the so called “Loop” mode. We have a switch, up here. If I switch this Off, then playing does not stop at the end of the animation but goes on indefinitely. In addition to this, there is another option available here. If I switch off the loop but I still want to keep the playing position within the animation interval at all times, preventing the animation to continue indefinitely, then I can select the “Stay” button here. In this case the playing halts at the end of the animation. Let us activate the loop mode again. If we do not want the system to recognise and set the loop area automatically, then we can switch off the “Auto” button. We can now manually set an interval where the looping occurs.
We can modify the direction of the animation. Here, we have the “Backwards” button. If we switch it on then the playing position runs in the opposite direction and naturally within the selected loop area. Or if we switch off the loop, while keeping the Stay option, then the playing position stops at the beginning of the loop region. Finally, we have this “Bounce” button, which moves the playing back and forth within the given loop region like this.
Let’s return for a moment to the sequencer module. We can find similar properties listed here to the ones we have recently discussed in the sequencer editor. We find the loop start, loop end, auto loop region, etc… These conform with the switches we have used in the editor. One thing, that is worth mentioning here is the “Playing State” property. This gives us the control over the animation in the sequencer,, but it is independent from the Play, Pause, Stop buttons in the sequence editor. All of these buttons have the ability to overwrite each other. The significance of this is the following: The value set in the Playing State property here will be the initial state of the module when we load the compound. Now I set it to “Playing”. This means that I still can start and stop the animation with the sequence editor buttons, but if I now save and close the compound, next time I open it, the sequencer will automatically start in the Playing mode. This Playing State property can be operated by Triggers as well. There are separate buttons for the three main states. There is also an extra trigger for Restarting which places the sequencer back to the starting position and starts playing it from there. Obviously, these functional properties can be used as input pins on the module itself too. Therefore, this playing state property is capable of receiving an input signal thus enabling any external control of the play and stop functions of the sequencer. Also, it is quite convenient to expose these trigger functions to the left and operate them via buttons on the Dashboard.
Let’s expose the Pause pin as well. I wish to demonstrate this. I start the sequencer now. It is in play mode at the moment. If I Pause the animation, the system remains in play state, but it halts at one position. Here the yellow vertical line shows the current playing position. If I press play the animation picks up from this position. If I instead press Stop, then the sequence jumps back to a predetermined start position. Whenever I press stop, It will always jump to this position. This starting position can be specified in the properties panel with the “On Stop Go To” property. Currently it is set to the “Loop Start” value. This means that the start position will be the beginning of the loop region. We can also set the “Cursor” here. In this case the yellow play position line jumps back where the blue cursor is located. There are plenty of different options here. The one which is worth mentioning here is the “Marker”. The “Marker 1” more precisely. What is this marker then? Well, in the sequencer, we can place so called markers freely, in any numbers. With these green vertical lines, we can mark special positions in our animation. Among them, there is the first one. If the “On Stop Go To” is set to Marker 1, then the playing position will jump back to this position when we press the Stop button. But it is also vital to note here, that the On Stop Go To property interacts only with the Playing State property of the sequence module and indifferent to the Play/Stop control buttons here in the sequencer editor. These control buttons always relate to the position of the cursor as the starting position. It means when I stop the playing of the animation it will always jump back to the Cursor.
There is one more interesting field here as a special option, the so called “Halt At Marker”. If I set it to number 2, then the playing will always halt at the 2nd marker. This option is the perfect tool when we want to play an animation in phases. Let’s assume that after starting our animation, we wish to stop it at the 2nd marker. Obviously, this will mark some kind of special position. Now if we set the Halt At Marker to 3 we see how the animation continues but it goes until it reaches the 3rd marker, where it stops again. We can add marker Nr. 4 and again, increase the value of the parameter and complete one more phase of the animation. If we set the Halt At Marker to 0, it means that it will not stop at any markers.
Let’s move on now and add a new type of value to this sequencer. I will delete the markers, so it does not disturb us. Also, I disconnect the light intensity box from the Spotlight node. This will not control the intensity of the light from now on. Now, we will control the color of the light and therefore it is obvious that we have to choose the “Sequence Color” module here. We add this module as a track and rename it to Light Color. We connect this to the Color input of the Spotlight node. Again, we end up with a dark preview as the default value of the Light Color module is an empty color. Let`s get back to the sequencer editor where we detect a new track, which has a different layout than the Intensity above. This can have the same 5 second length here. This track will also contain keys, but these keys will be color keys this time.
We create a key with an Alt. click. The default color of the key is white. We can see in the preview that we retained a white light source as well. Let’s add a 2nd key to the track now. We can adjust the color of the key in two ways. Either we double-click on the small square at the bottom end of the key and by that open the familiar color picker - let’s pick an orange color here - or here at the bottom there is a color editing field that also brings up the color picker panel. We can also edit the color numerically directly in the field. The Alpha value of the color can be set either in the numeric field or here by sliding the small square at the top of the key like this. But since this is a color emitting from a light source, it will not give any effect here. Let’s add some more keys to this track. We can go for a green color - a darker green - and a red.
Let’s start the animation. We can follow the color changes here in the preview. The distribution of the color transitions can be adjusted by this mid-point knobs. This will give us the proportions of the color shifts between two neighboring keys.
OK, now given these two available tracks we can create an animation, where we first change the color of our object and then its intensity. First, we re-connect the intensity track like this. We see how both the intensity and color changes run parallel. For our purpose here, we have to reposition the upper Part as a whole to where the color track’s Part ends. Now the two animations will run separately after each other.
We stop the sequence now for a while. It is worth mentioning here that Parts, apart from their capability to change their position along the timeline, can be resized as well. One of the most simple scaling actions is when we extend the Part by pulling it, while maintaining the existing positions of its keys. We only extend the length of the Part basically. When we repeat this same action while pressing the Shift key on the keyboard, then we perform a scaling of the positions of the keys as well. The third option here is to repeat the same action while pressing the Ctrl key. This will maintain the positions of the keys in respect of their distance from the right end of the Part. These same actions can be performed on the left the side too. The simple extension, the scaling and the alignment functions are all available to us here, the same way as on the right side of the Part.
I will now go on explaining what other functions can be performed here in this editor view. We are already familiar with how the middle-mouse button facilitates a left-right repositioning of the editor area. Scaling of the editor area is done in a similar fashion by the Shift-middle-mouse button combination like this. If we perform this scaling action within the editing area of a track, then scaling can be performed not just horizontally but vertically within that track as well. In the case that we want to reveal every existing key within a Part or Track, then after selecting either the Part or the Track itself we have to press the “A” key on the keyboard. The scaling will be done automatically so that every existing key will be visible.
The Track itself can be resized as well. It also has a mode when it is fully folded. In this case we cannot see the curve itself, only the dots of the existing keys. This can be very convenient in many cases, for instance when we use Auto-Bezier curves and it is uninteresting to us to further adjust the shape of the curve. The keys will provide us sufficient information to run the animation as intended. The horizontal adjustments of the keys along the timeline is still available to us, while the changes of their values can only be adjusted at the bottom section, in the Value field. We also have a more folded track mode setting which hides every adjustment option from us. We only have a visual confirmation that the track and its keys are there. We have two options to leave this minimum track mode. Either we select one of the other neighboring mode icons or simply resize the track manually using its bottom divider.
Finally, there is a maximum mode. If we click-on this one, the track will fill the whole editing area in the sequencer. We are getting a track now with a maximum vertical extension while still having the option of rolling down the view to access the other tracks as well. Moreover, we can maximise the other tracks too in the sequencer. Now we end up having each track with a maximum extension vertically while still being able to access them all in the same view, like this.
Again, when we click on the normal track mode here, the curve will retain its original height. In order to reduce the vertical size of the track, we can use the manual adjustment option by pulling the bottom divider of the track upwards by the mouse.
I would like to demonstrate another track type now. This is the Logical track. This is basically good for applying ON/OFF keys into an animation. This can be used for many things. But in this particular animation we have already created an On/Off switch for the turning of the cube. This already existing animation - which is created by basic modules in the compound - is about to be merged with an animation that we create now in the sequence editor.
First, we have to connect the OUT pin of the Sequence Logical module to the IN pin of the Smooth module down here. From now on, we will be able to control the movement of our cube directly from the sequencer. Let’s place a new On/Off key into this new track. The value of the logical keys can be changed either by its dedicated Value switch at the bottom or by a double-click on the small square of the key. The value will be changed back and forth by these double-clicks. Let us position an ON key here and an OFF key here for instance. It is clearly visible how the cube is starting to turn when the animation reaches these logical keys while playing.
There is one more track type that is worth mentioning here. I will not connect it now to any modules, just give it a quick review. This is called the Integer track where we can make adjustments between whole numbers. Every key in the track can take on distinct numeric value. These values can be set exclusively at the bottom, in the Value field. This is their standard representation in the track, displaying the value of each section but we can assign names to these sections as well. So, the value of this integer is 1. We can write its name in this field instead. Let’s assume that we operate the “Switch” module - that has been created and demonstrated in the first Getting Started Tutorial - with this integer where the two distinct values of the switch were an oscillating image and the other is a video with a cartoon effect. In this case I can set the value of the first key to 1 and name it “Oscillate” and the second key to 2 and name it “Cartoon”. From now on, if I set values - that have names associated to it - to keys in the track, then it will show the names of the corresponding sections instead of their numbers.
Let’s go on and explain the process of creating movement animations in the system. In theory, it is possible to create the animation in a similar way as we have done previously. We have modules for this here already, such as the Sequence Vector and the Sequence Rotation modules. When these are connected to a Sequencer, we obtain separate x,y,z curves and these can be edited separately during the process. But this is far from a convenient method really.
In the sequencer, there is a so called “Capture” function. This function is capable of recording the actual positions of objects and transform these positions into curve keys. We are going to use this function soon but before that, we have to make some changes here. We are going to animate the Sphere, more specifically the Scene node of the Sphere because only this has the required Transformation pin value, essential for these type of tasks. The normal Scene Node cannot be used here. We have to replace it with a “Sequence Node” module. The Sequence Node is also a scene node, and behaves exactly the same way as the Scene Node except that it has separate Sequencer connection pins for Position, Rotation and Scaling transformations. These three inputs will have their own separate tracks in the sequence editor. Let’s add an additional Sequencer module to prevent the movement animation to be mixed with our existing other animation tracks. This will be an independent animation. Let’s connect all three tracks and name the sequencer to Sphere Sequencer, since it will control the animation of the sphere. We can easily load this into the editor by double-clicking it, or we can use the drop-down list in the Sequence Editor we mentioned before, where we can shift between sequencers already defined in the compound.
We can see that separate tracks are available for Positions, Rotations and Scaling. Moreover, they are summoned in a group that is named after the specific node it controls. We can easily rename this node to Sphere Node and detect the name change of the group here in the sequence editor. Now we have our three different tracks.
What would be the best way to work with them? First of all, let us position the cursor where we intend to add keys. After this we move the object - as we have done it in the preview before - to the position to be represented by the keys. This can be set as our start position. We return to the sequencer and activate the Capture function. As to which track the following capture will be applied, is determined with these small film slate icon buttons. We can freely decide whether we only want the position or both the position and rotation data to be captured. We are not obliged to select all three tracks and create new keys in all three tracks at once.
If I click on the film slate icon, it will also color the name heading of the track with red. All that remains is for me to find the Capture button with the red film slate icon here and click on it. We have now added 9 keys altogether in three tracks. 3 keys in each track, since there are three components in each. The next step is to define the next position of the object – which is the next position in the sequencer too. Let’s move the cursor to the next desired position. We can note that the cursor can be moved to positions which are situated outside of the existing parts. The parts will be extended by the capture function automatically. We can now reposition our sphere in the preview. Make note of adjusting the cursor first and the repositioning of the object second. If we do this in the reverse order then the sequencer will take control of the object and move it together with the cursor thus overriding the manually set position of the sphere. I repeat, it is crucial to set the cursor first and then the object’s position. We can add a new rotation and new scale value to the sphere. Our intention is to make a similar movement with this animation method as we did with the elementary modules at the beginning of the tutorial.
We click the capture button again adding a second set of key positions. If now we move the cursor manually, we can see the newly created movements on the object. Let us add a third key position. We set the cursor then reposition the object. It is advisable to use the “World” mode in the preview. It makes it easier to move the object after it has received a new rotation. In this mode the arrows won’t appear in the object’s own coordinate system, but in the world coordinate system instead. We move it here, give it a new rotation and scaling like this. Alright. We perform a Capture again. We have a full animation at hand. Let’s play the animation now.
I extend all three parts a little in order to have a longer full stop view of the sphere. Let’s unfold one of the tracks and look at the type of curves in it. We use the A key shortcut that brings us the full set of keys visible in the track. We can follow the changes of the x,y,z coordinates in time. The movement of the sphere begins with a sudden, sharp start and ends also suddenly. It is not the prettiest to view to be honest. But this gives us a good opportunity to comment on the parameters of the Auto-Bezier curves. Let us select all starting keys with the mouse, including the rotation and scale keys as well. We can find the “Ease” parameter of the Auto-Bezier curve here at the bottom section. It can take on values between 0 and 1. The 0 means starts and stops without acceleration and deceleration through the actual key. The value 1 means on the other hand a momentary full stop for the animation at that key - a deceleration when arriving to the key, full stop for a moment, and an acceleration when leaving the key. Let’s now set the initial keys to 1. We can see for a moment how the shape of the curve changes. It has changed from a steep curve into a slightly decreasing, horizontally aligning curve. It reflects on the movement of the sphere too with a slowly accelerating start. Let’s repeat this process on the last keys. We set the Ease value to 1 here too. It is clearly visible how the sphere is slowing down at the end.
Just to experiment a bit, let’s see the behavior of the curves at the keys in the middle section, where it was set to 0, meaning unchanged speed of the animation while crossing these keys. Set it to 1 and the sphere will make a short stop before it starts accelerating towards the last key in the sequence. Let’s reset this value to 0 now. Another parameter of the Bezier curve is the “Slope”. Let’s change this on the last keys. The slope parameter controls the distribution of the acceleration and deceleration within a given section. If I start to increase the value of the slope, it is clearly visible how it changes the shape of the curve here. The result is a different movement pattern. We see how the sphere has a faster acceleration now at the start of the last section and a longer deceleration pattern towards the end. The movement between the keys will take the same amount of time but has a different proportion of acceleration and deceleration times.
There are obviously, plenty of other curve types available to us when we intend to finetune the movement of an object.
These Capture tools, that have been used here to animate an object can be used for camera animations too. We utilise the Camera Mover module now in the compound and that is the module responsible at the moment for us to be able to move the camera with the mouse. If we take a closer look at this module, we find that the module is equipped with sequencer connection ports and because of this, it is ready for sequencer animations as well. We have the camera position, camera rotation properties as connectable tracks. Scaling of cameras make no sense and therefore it is not applicable here. We have the Zoom Factor parameter instead for animation purposes. Let us connect these three tracks to our sequencer. After returning to the sequencer editor, we find our three new tracks ready. We can now close the sphere animation group.
From now on our tasks will be very similar to the previous ones. We position the cursor anywhere in the part. Now we move the camera to a new desired position as well. When setting a starting position, I have now adjusted the camera position, the viewing angle and set the zoom here. We have to perform a capture now. We need to be aware of the existing movement animations though, so that it will not interfere with those. Therefore, I select the camera tracks one by one. We have two buttons here, that I did not mention earlier. The “All” and the “None” buttons. If we click on the “All”, every track in the sequencer will be selected for capture. We must not use this here because we only want to capture camera movements.
Let’s click Capture now. We get our first set of keys. Let’s move on. At this point, the camera can be positioned in the background, adjusting a bit, looking at the scene from a high angle like this and click on the Capture again. If I pull the cursor manually then we can watch this section of the animation. The last section can ultimately be a bare zoom, a quick zoom on the sphere. And Capture!
We detect a strange thing with the zoom here. The new zoom section has an effect on the previous section too. If I unfold the curve of the camera zoom, I notice, that the recent zooming has an effect on both sides of the key. This unwanted outcome is due to the characteristics of the Auto-Bezier curve type, which was in use during the zoom capture. We can correct this by adjusting the Ease field in the middle from 0 to 1. This means that the zoom will make a halt on that position. Or we can change the incoming curve type to Linear and this will be unaffected by the outgoing Bezier curve.
Let’s play the animation now. We have a camera movement that follows the sphere rather well and we have a zoom at the end of the scene. Since we did not have any camera movement in the last section, these keys can be removed altogether. The animation will not be affected by this action. One other thing that worth doing is to set the Ease field to 1 in the camera movement tracks in order to lend a softer start and stop of the camera. We add this Ease feature to both the outgoing and incoming zoom keys in the “Zoom Factor” track as well.
How do we then cope with situations, when we do not want to assemble a full animation here in the Aximmetry but rather want to use another modelling software - where we construct the mesh geometries. We aim to create the animation outside Aximmetry and transfer it here when it is done.
There are appropriate tools for these imports in the system. Certain type of animations, such as movement animations, light intensities, colors, visibility adjustments, etc can be imported into Aximmetry via the Collada format. I want to present one example for such an import. Before this we’ll remove these new animations we have done so far. Also let’s delete the sphere and the cube as well. I have already prepared an animation file in collada format in the Tutorial folder for this purpose. I import it and connect it to our root node.
We have got it now, let’s reposition the objects. OK. This is our imported animation and the mesh. If we enter the module we realise how massive its content is, how many constituents it has. This example has been chosen on purpose, in order to visualise that it is possible to import such complex animations, too. The collada file provides the hierarchy of the many scene nodes. Every scene node has its own mesh geometry connected to it. Obviously, each of these mesh objects can take on individual materials, too as we have already seen in the previous tutorial video.
To simplify this demo, we can apply a uniform shader to all of these geometries. Let us connect a Norm Shader to it and apply some kind of texture to it. This wooden type will do just fine. I also enlarge the falloff angle of the spotlight in order to increase the enlightened area of the scene.
Now let’s discuss how animations are stored in the system. Well, the animations, more specifically, the movement sequences of every single moving part are stored in distinct track modules, which are Sequence Transformation type modules. These type of modules cannot be created manually in the system, but are generated during the collada import. Now all of them are connected to the same sequencer. When collada files contain animations, these sequencer modules are also generated automatically during the same import process. There are plenty of animations presented here due to the great number of distinct moving parts in this file.
In the case that we want to control - play, pause, stop - certain parts of the whole animation only - let`s say the movements of some of the robotic arms independently from the movements of the containers, then we have to add a new sequencer - or new sequencers - and reconnect the animation tracks of these moving parts to this new sequencer module. When it is done, we can control this group of parts independently in the Pin Values panel of the new sequencer module.
There are a couple of things we can mention here in connection with the imports.
While using an imported file, we may want to change some of the existing connections between the imported modules or change the Transformation property of some of the modules. There is a scene node here for instance where we can do this. This can be done quite easily and the contents originated from the Collada file can be replaced with the new information - such as new connections and properties - by a user. Modules that have been altered by us and therefore differ from the original file will be marked with a yellow color.
When the content of the source collada file is altered - for e.g. by exporting a new version from the external modelling application - the system always runs a reimport of the file. This is basically an automatic process. Changes in the “dae” file is being monitored by the system and whenever a change occurs, the system performs an automatic reimport. But this reimport can be done manually, too by right clicking on the module and selecting the “Reimport” menu option. We can follow the reimport process here in the “Log” panel. Now if we enter the module again, we can clearly identify all of those modules which have been modified by us marked with yellow. This indicates that these modules have preserved the changes made here. In the case that the transformation of this node had been changed for some reason in the original collada file, the corresponding Scene Node in this compound would have been unaffected and kept its properties set by us.
Now, if we decide not to keep the changes but instead want a nice new clean import that restores everything to its initial import status, then we choose the “Clean Reimport” command. The full import process will run again and when we open the module, we can see that every animation is connected back to its original sequencer and our Scene Node has lost its changed transformation and restored its original collada file value.
And this concludes the demonstration of basic Animation features in the Composer system.