It would be useful if keyframes can be 'scaled'. Currently when working with armatures and creating poses, you have to specify three keyframes and then set their handles to vector or something to get a pose to hold for the desired number of frames. It would be useful if keyframes like this could be scaled (stretched out) in the action editor so that for the duration of the key, the pose would be held. A standard keyframe would have a duration of 1 frame.
yes yes, I`ve also noticed lack of this feature when animating a character , it could be very helpful.
I think this would be a great idea of enhancing the user interface. It would still technically have key frames for the start and end.. .but manipulating them would be much simpler! Very good idea! I hope someone on the developers list sees this!
Certainly something along those lines would be a great...maybe a "Key Loop" or "Pose Loop", or...ideally loop whatever currently selected settings/actions that make contextual sense.
Kayframe is a dot on a ipo line... how can you scale that? or make that hold.
You can shift-d the yellow block and place it just after, becasue it's the same key, the time between the 2 would get the same position (in theory), though yes you have to set handle to vector. There is a way, but i don't think "scale" can define this well. maybe select keyframes directly in action window (yellow rectangle) and set handle type there. So you could shift-d the key, select both and press v for example and the position "between" these two key would be set vector, so a straight line, the same position....
The advantage of this is that you get much more posibilities.
Are you looking for something more than what can be done via the Hold option available while working in the NLA Action Strip options (hold the last frame forever until overidden by another Action)?
One other idea related to keys might be to introduce the concept of "instancing" where an original key (and/or maybe an Action) can be instanced and placed at any number of points throughout the timeline. It would then be very easy to make a global change to all those "instance" keys by simply just editing the single master key.
Originally, my idea was for a user to be able to define a held pose easier. This pose would be merely one part of a sequence.
In the action window, a user just has to select a keyframe, and use the scale tool or something like that to visually 'stretch' out the block showing a keyframe is. The area this block covers will maintain a constant pose for the bone it is assigned to. Internally, Blender would create two IPO points, one for each end of this 'keyblock', with the handles set to a mode where they keep in line with each other at all costs.
This would help to lower clutter and also save time (when you insert a new pose between two existing ones, then you want to make that new pose hold for some time, you have to copy that pose, paste it into another frame, insert a keyframe, then change the handle type).
A couple of weeks ago I added the convention in the Ipo curve system that the bezier "auto handles" now by default stick to a horizontal position on 'extrema' or on equal Y positions. That eliminates the 'overshooting' that happened when you duplicate keys.
I think this is exactly what you proposed?
Here are some screenshots (hopefully) to illustrate my point.
In this example there are two existing keyframes in frames 0 and 40. In a), a keyframe has been inserted on frame 17.
b) shows what currently happens when you want this pose to be held until frame 25.
c) shows what I'm proposing. When two adjacent keys for a bone are very similar, they should be drawn as a single block as shown by this.
Now, as similar keyframes are drawn like this, it is instinctive for a user to press the scale key to get from a) to c). What would happen is, the user would insert a key frame (image a). They would then press the scale key and start dragging the mouse. Internally, Blender would create a new keyframe at the point where the pose visually extends to (in this case, 25). This would be like copying the keyframe selected in a), duplicating and moving it to frame 25 as shown in b). However, it would be simply displayed as c).