[REQUEST] Scrolling container animations?
#1
Lightbulb 
In order to enhance XBMCs already great skinning engine, I think following features would make cool addition to the GUI side of XBMC:

1. Ability to set tween for scrolling containers. Unless it is really hard it would be a very nice little detail making the overall experience of browsing media more exciting;
2. Ability to set "release" time for the container scrolling, which would basicaly be the time of container continuing in motion after releasing arrow key while decreasing scrolling speed. Combined with tween it would allow iPhone like scrolling effects;
3. Ability to have the scrolling smoothly speeding up once the key is held for certain period of time. Perheaps the speeding coefficient could be adjustable by users in advanced settings or by skinners from within the skin.

I know it is probably not easy to implement these features to the code and I am aware that it might be considered a petty detail for some people, however I am sure it would create the WOW factor, making XBMCs GUI even more advanced compared to other media centers. If anyone in the know would be willing to take time and code this feature I would be more than happy (as well as tons of users).

Thanks for any developers time spent on reading this,

M.
Reply
#2
3. is already in - acceleration up to maximal speed (designed to traverse the list in 10 seconds I think it is) on hold of the button. The main problem I believe is identifying when we have a button hold - this is up to the input devices. I think it works for the keyboard.

1. I'm not sure what sort of tweening you're wanting here. One thing to remember is that the scrolling basically works like this:

a. We compute the difference (in pixels) between where you are in the list at a given time (which could be in mid-scroll) and where you want to go.
b. We divide this by the scrolltime to compute the speed to scroll.
c. Each frame we add scrollspeed*frametime pixels to the list origin.

What do we do if you're mid-animation (and thus mid-tween) and the tweening is reset? This could yield very funny looking behaviour, particularly if you have agressive tweening (i.e. highspeed in the middle of the tween would be reduced suddenly). I guess one could compute the tween so that it started from current percentage complete, but I'm not sure how nice that would look either.

2. Is kinda nasty to do well, given our current system - all we know is where the user is scrolling to. Thus, we can't make it over-scroll. It would, however, be sort-of taken care of by the tweening though I think, so it's somewhat similar to 1.

To be quite honest, one needs an analog input device to really do this well. Just pick up an xbox controller and use the analog scrolling stuff - it already naturally acts like this.

EDIT: You could, ofcourse, somewhat simulate what the thing would look like using the "coverflow" style wraplist construction technique. Prove to me that it's sufficiently better (basically it'll only work nicely for single moves with that system I think?) and perhaps I'll take some time to investigate it further...

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#3
Jonathan,

Thank you for your response. I cant really comment on the inner workings of the GUI system, nor suggest a way of programming this. From what you wrote it sounds way too complicated, kinda crosses boundaries of my abstract thinking.Huh

The purpose of the tweening for slide animation of scrolling container would be solely aesthetical and would not really introduce better functionality. Only thing it would do is that the end of the container slide animation, once the user release scrolling wouldnt be so sudden, but more natural/gradual based on applied tween, while it also could allow overscrolling - the flywheel effect. The longer the scrolling would go the stronger the tween effect would be - the same bahaviour as the tweens have when used in skinnig engine. I hope I expressed the idea clear enough.

And yes you are right about fact that I could simulate the behaviour in fake containers based on hidden wraplist but only as far as OnNext/OnPrevious condition goes. It would not be a real scrolling and the tween would have the same strenght all the time as it would only work with single keypress. Once you really scroll, the fake containers dont animate anymore.

EDIT: I can create the simulation from within the fake container, but it wouldnt really look or behave close to what I am suggesting here. Therefore I am not sure I would be able to really prove it looks better than current scrolling system no matter how hacky I would go with the skinning engine.

thanks for your time,

Mat
Reply
#4
Yup - Note that the "strength" of the tween doesn't actually change (after all it can't - it's restricted from mapping [0,1]->[0,1]) - it's just stretched over a longer pixel distance, which may well mean that the effect looks enhanced due to the greater top speed - the acceleration rate is still the same.

As I say, if you can show just with onnext/prev that it looks better, then that'll be suitable motivation for someone to look at it further.

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#5
Jonathan,

Here is a short video of modified Aeons wraplists. I tried to make it look as close as possible to what I had in mind. The curent possibilities are somewhat limited, but I believe it should be enough for reference. I used back, circle and elastic tweeners.

http://www.youtube.com/watch?v=AWL1GUjGDXQ

Thank you,

Mat
Reply
#6
The bounce thing is kinda nasty :p

The key to remember is that the only way to really do this reliably is that we need to keep the animation time constant. Scrolling 1 item will take the same time as scrolling 10 items will, so the only thing that happens to the anim is that it's stretched over more pixels (i.e. velocity is increased).

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#7
minimalko Wrote:Jonathan,

Here is a short video of modified Aeons wraplists. I tried to make it look as close as possible to what I had in mind. The curent possibilities are somewhat limited, but I believe it should be enough for reference. I used back, circle and elastic tweeners.

http://www.youtube.com/watch?v=AWL1GUjGDXQ

Thank you,

Mat

Apart from the bouncing effect I think this looks promising, I kind of miss that flow feeling when navigating in lists which this creates.

Could you perhaps post the code?
Reply
#8
There is not much code to share. I did this from within skin just to demonstrate (apart from that it aint functional) how it could look if implemented into XBMC.
Reply
#9
jmarshall Wrote:The bounce thing is kinda nasty :p

The key to remember is that the only way to really do this reliably is that we need to keep the animation time constant. Scrolling 1 item will take the same time as scrolling 10 items will, so the only thing that happens to the anim is that it's stretched over more pixels (i.e. velocity is increased).

Cheers,
Jonathan

Jmarshal,

Would it be possible to have tween at least for the container scroll animation that we already have?

I dont know if I am clear enough, but right now one can set <scrolltime> value for container which is basicaly the time of slide revealing new list items when OnNext or OnPrevious. The way this animation ends is rough for it lacks tweening. It would be great to be able to set <scrolltween> value for container.

I dont know if it is possible but VMC for example has this.

The skin I am working on with phyek would really benefit from this feature, as well as any other skins.

Thanks,

Mat
Reply
#10
bump..sorry I had toBlush
Reply

Logout Mark Read Team Forum Stats Members Help
[REQUEST] Scrolling container animations?1