DiegoM's Recent Forum Activity

    Cubic Bezier Curves

    As of the latest release, r144, it is possible to edit the path of an instance as it is animated using cubic bezier curves. This is not activated by default though. In order to use this feature you will need to set the new Path Mode property of the timeline. Currently there are two setting for it, Line and Cubic Bezier.

    Once the mode is activated a few extra UI elements will appear in the Layout to allow you to edit the path of an instance as a curve. Remember that the new controls will only show up as long as Editing Mode is turned on.

    It is also possible to see in the Timeline Bar which path mode is being used in between each pair of keyframes, and change the value if you like. This is similar to how you can change the ease function that is used in between each pair of keyframes.

    Keep in mind that this feature is only used for X and Y properties of an instance, so other property tracks will not show a path mode.

    luckyrawatlucky

    That is a feature I am planning on adding, at some point in the future. The idea is that somehow, possibly through an event action you should be able to change the instance or instances that a timeline is affecting, that way it would be possible to re-use the same animation for multiple instances. Not too sure when will I get around to doing that though.

    Mobile Devices

    I forgot to mention this in previous posts. At the moment the Timeline Bar is not enabled in mobile because I just haven't figured out a good way to make the feature useful in small screens. It needs considerably more space than other bars to be of any use.

    There is also the fact that the Timeline Bar is a control that is naturally more suited for a horizontal layout, so that was another reason to disable it in mobile for the time being.

    This is not permanent though, eventually it should be enabled in mobile.

    mekonbekon

    When I first implemented the feature, there was no need to press ctrl to scrub. Right before making it public though, I was doing a little example animation, and I was constantly following what at the time was the wrong flow to create keyframes, which was:

    1. making changes in the layout or properties bar
    2. moving the time marker to a new position
    3. setting keyframes in the new position

    This meant that any changes I made in order to later create keyframes out of them, were lost because the program would preview the animation from the current time as soon as I moved the time marker to the position I wanted.

    As the developer this was just a mild annoyance because I knew exactly what was going on. So I continued working taking into account that the correct workflow was:

    1. moving the time marker to a new position
    2. making changes in the layout or properties bar
    3. setting keyframes in the new position

    I thought that for anyone else this small gotcha would be confusing/annoying, so I decided that the default behaviour when moving the time marker shouldn't change instances values in any way.

    Having to consciously press a key in order to preview makes it almost impossible to do it on accident, so the mild confusion of loosing changes because of an incorrect scrub becomes almost impossible.

    When implementing these I thought about my previous experiences with other software like, 3d Studio Max or even Unity, where you have to juggle a bunch of keyboard shortcuts along with the mouse, just to be able to do something. I like every other person got used to that very quickly, so I thought it would be the same here.

    dop2000

    Somewhere in my TODO list there is the item "Further Event Sheet Integration", particularly the possibility to set a keyframe that would trigger an action on the related instance, an "Action Keyframe" if you will. But I have no timeframe as to when I would start working on that.

    As for C3 crashing, I must have introduced that bug recently because I am pretty sure that should work, I will get around to fixing that for the next beta release.

    justifun

    Is it theoretically possible for a plug-in developer to write something that could convert motion data from a Json or xml sheet into the timeline format so that construct could play it back? Would it be hard for timeline to have a load Json function?

    I suppose it would be technically possible. I haven't tried this myself so I'm sure there are lots of caveats, but a plugin should be able to create a timeline programmatically at runtime, this is pretty much what the Tween Behavior does under the hood.

    But I suppose that you are thinking of importing data from other animations tools so C3 can just play it back. At the moment this would be very difficult because the feature is just not mature enough, so it just doesn't understand a lot of features present in other animation software.

    rodimus111

    Did you think about doing it with BEZIER CURVES?

    I realize that is a very popular request, so at some point I should be working on adding the functionality to use a bezier curve to edit the path an instance takes as it animates. I can't give any estimates as to when that work will start though, but it definitely is in the plans.

    Keyboard Shortcuts

    Recently a bunch of basic keyboard shortcuts where added to the Timeline Bar.

    S

    This is the same as the Set keyframes option that can be found in the layout context menu or the timeline bar context menu. It will set keyframes at the current position in the timeline, with values according to the current state of the instances in the layout. If there already are keyframes at the current time in the timeline, they will be updated.

    Delete

    Deletes the current selection, be it of keyframes or tracks.

    D

    Disable the current selection, be it of keyframes or tracks.

    Disabled keyframes are not are not taken into account when animating. Disabling a master keyframe will disable all corresponding property keyframes. Disabling a track will disable all of it's keyframes.

    E

    Enable the current selection, be it of keyframes or tracks.

    M

    Add missing property keyframes of all the selected master keyframes. The new property keyframes are given the current instance value. If a master keyframe is not missing any property keyframes, nothing will happen.

    M + Ctrl/Cmd

    Add the the missing property keyframes of all the selected master keyframes. The new property keyframes are given a value that fits into the timeline with out causing any changes.

    SPACE

    Preview the timeline

    LEFT ARROW + Ctrl/Cmd

    Move the current time marker to the next master keyframe

    RIGHT ARROW + Ctrl/Cmd

    Move the current time marker to the next master keyframe

    Delenne

    One more question: will users have access to properties of plugins? For example, will it be possible to control Spriter object parameters with the timeline? Or will it be limited to the standard Construct objects?

    In order to be able to animate C3's built-in plugin properties I had to do a little bit of work, because there was no way to update the values asides from event actions. The way it works is that each plugin needs to define which of it's properties are animatable and then implement the appropriate logic to react to changes at runtime. By default a plugin property is not animatable.

    All of that means that each plugin creator needs to update their plugin if they want to support animation of properties through a timeline.

    The details on how exactly to update a plugin will be released later, when the whole feature is more stable.

    So to answer the question, at the moment only the built in plugins support timelines. In the future it will be possible to modify existing plugins to do so aswell.

    Delenne

    Are nested timelines possible?

    At the moment this is not possible, I was thinking about it just yesterday though. But I don't think I will be able to start working on it any time soon.

    The animation interpolation control is quite rudimentary. Are you planning to add a graph editor of sorts?

    I am planning to add the option to create custom ease functions. These feature would come with a special editor to build your custom easing curve. You should then be able to assign that custom curve in the same way you assign the built in ones. Is that what you mean?

    Will bones/segmented characters be implemented? The competition allows for these, and it opens up many possibilities. Construct still relies on Spriter, which is less than ideal.

    At the moment there are no plans to support bone structures. That is a completely different feature which just happens to work very well with the concept of a timeline, so they are often assumed to go hand in hand.

    Will motion paths be integrated with the timeline?

    I Have thought about this too, but I am not too sure when I will be able to start work on this.

    Which parts of Construct's functionality can be keyframed/used in a timeline exactly? Everything, including event sheets and functions, and parameters for any object that is inserted in the layout? How far does the integration go?

    At the moment you can create keyframes for almost all properties that can belong to an instance. This includes the common properties, instance variables, behavior properties, effect parameters, and plugin properties.

    Some properties don't make sense to be interpolated, so those are not available. Ej. Sprite's Initial Frame can not be interpolated.

    There are some properties which are missing, because they are not part of Construct at all. For instance at the moment it is no possible to set the current frame of an animation from a timeline. That is a missing feature I would like to add.

    I have though about the possibility to interpolate Layout and Layer properties, Event Sheet global variables and the ability to trigger an event sheet action from a timeline, but those things are just in my TODO list. There is no estimated time of even when will I start with any of that.

    justifun

    I get very confused what i'm doing with the whole edit mode on/off, remember / forget stuff.

    My mind makes me think that any changes i make while edit mode is on, should be setting keyframes etc, but it only sometimes does? then i try and scrub my animation and it starts off at a different location to where I thought i set the keyframe? It feels very inconsistent.

    I have found a couple of cases in which only a master keyframe (black dot) is created, with no related property keyframes (blue squares). This can be confusing, because the master keyframes by themselves don't have any information to do an animation.

    And i can't set keyframes at frame 0 for some reason.

    Every track in a timeline needs the first keyframe, you can't remove it, and you can't change it's time. The only way to change them is to update their values.

    Enabling "edit mode" makes me think i should be able to edit the objects, but according to your description, turning it off afterwards reverts any changes you did. I don't follow.

    I was wondering if the explanation was good, I guess it wasn't, I'll try again :P

    "Edit Mode" allows you to make changes to the instances in the Layout without loosing their original state before entering "Edit Mode".

    This way you can preview the animation and mess with positions, sizes and other properties while you are creating your keyframes for the animation, without worrying about loosing the initial state, which you might want to keep. Ej. You want all the instances in a specific place at the start of the layout, but you also want to move them around while you are creating the animation. "Edit Mode" solves this problem.

    When you are done, turning "Edit Mode" off will revert all the changes as far as the layout is concerned, so you can continue working with the rest of the features of Construct normally.

    The changes you made to the timeline you where working on will not be reverted though, all the keyframes remain there with their respective values.

    I hope that makes more sense.

    Also when you goto a keyframe that already exists, we are forced to use the "update keyframe" button instead of the "add keyframe" button, which its odd that its two different buttons, "set keyframe" on a keyframe that's already there should just update the keys.

    This is a fair point. Under the hood these two are very different features, so it was natural to separate them. This is why we need user feedback, to notice this kind of things. I'll remember this one. I don't think is a deal breaker though.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads

    IJCT

    scrubbing preview should be a button on the interface, like "enable scrubbing preview" while dragging the timeline, its not obvious that we need to press CTRL (cmd)

    This, along with other keyboard shortcuts will be outlined in the manual, when it is written. I think that once you know about it, it's pretty easy to use.

    also please add dark theme for the timeline.

    This should come in time, otherwise it looks pretty ugly in any theme other than the default one. While we don't have this the whole feature will remain behind the experimental flag.

    onion skinning its a needed feature for this.

    What exactly are you thinking about? I picture a few different things.

    1) A translucent preview of how an instance looks in each keyframe. So you can more or less tell how the animation will take place.

    2) Several translucent previews of how the instance looks as it is animated. Something like this maybe?

    I have the feeling you are thinking of the second option. While I think it would look nice, I don't think it is absolutely crucial to creating an animation. The scrubbing preview already serves the purpose of giving you a feel of how the animation is turning out.

DiegoM's avatar

DiegoM

Member since 24 Apr, 2015

Twitter
DiegoM has 1,382,290 followers

Trophy Case

  • 9-Year Club
  • Jupiter Mission Supports Gordon's mission to Jupiter
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Regular Visitor Visited Construct.net 7 days in a row
  • RTFM Read the fabulous manual
  • Email Verified

Progress

15/44
How to earn trophies

Blogs