• Editor
  • Feature Proposal - Graph suggestions

  • Đã chỉnh sửa
Related Discussions
...

One thing that would be a good addition is the ability to set X and Y graphs separately (mostly specific to translate). Currently, because they work together, the motion from key A to key B is linear, and the graph just decides how fast the bone will move along the path. Setting X and Y graphs separately however would allow you to move something in a circular motion, or change the way something gets from key A to B. There are other ways you could accomplish this, but just having a button to separate the two would be the easiest in my opinion (which honestly, not having seen the code, doesn't really mean much :p )

Another suggestion would be to allow more points on the graph besides the start and end point. This would allow for more complex movement between two points. This isn't changing much though, because this would be relatively equivalent to using a bunch of keys instead.

Just small things I've noticed while using the program, and wished I could do.

On an additional note, Nate suggested a workaround for this before: Have two bones in a hierarchy, and the image on the child bone. Make one bone only move along X (and has a specific curve) then the other bone only move along Y (and has a different curve.)

It's a little hackish, but if you really need to do something right here right now, that might work.

If you're only after a circular path, the new Disable Inherit Rotation checkbox for bones should do wonders. You can make a child bone move around a circle (without rotating itself) by rotating its parent around and unchecking the inherit rotation checkbox. Just make sure they have a distance between them, of course.

This isn't implemented yet in most of the runtimes though. But it's in the editor in case you want to see it.
I've played around with it a bit. Fuuuun stuff.

Thanks Pharan! 🙂

X and Y are keyed together because it is very common. Sometimes it would be convenient to have them separate but so far we've been able to get by without. There would be some extra processing at runtime if X and Y had separate timelines. Same with the graph, we want to handle the common cases elegantly and with minimal processing. Currently it uses a 10 segment bezier curve that is pretty well optimized.

I like the suggestions Pharan! I had thought of the single bone with distance from the object to move something in a circle, but I didn't think of making separate bones for x and y. I suppose since it's not common to need to separate the two, I'll just give that a try whenever I want to give them separate curves.

Also, I wasn't so much suggesting x and y permanently be separate, but instead just having some kind of toggle switch that allows you to separate them. It would be equivalent to making translate X and translate Y more like rotation, each having their own value when the toggle is active for a selected bone, like this:

Hình ảnh bị xóa do không hỗ trợ HTTPS. | Vẫn hiển thị

Just curious though, does it make little organizational sense to have the two bones for the two curves for what you're trying to achieve?

This is what I was trying to do, but offsetting the main body bone and rotating it worked better than translation would have anyways:

Hình ảnh bị xóa do không hỗ trợ HTTPS. | Vẫn hiển thị

I don't have any animations currently that I want to separate x and y, but while I think adding an x-only bone and y-only bone would definitely work, I also feel like I would be adding those bones for no reason other than to control the path from A to B.

A simple idea would be to make something like a bouncing ball. Put a translation key at every bounce and peak, X would be rather constant, and controlling Y would allow you to give the bounce some curve, vs having to add a bunch of keys to round it out.

TheInventionist, what you're saying totally makes sense. Separating the X,Y translation to two different bones is a bit of a hack, but I don't know how trivial the code change would be. Nate will need to chip in on that.

TheInventionist đã viết

Also, I wasn't so much suggesting x and y permanently be separate, but instead just having some kind of toggle switch that allows you to separate them. It would be equivalent to making translate X and translate Y more like rotation, each having their own value when the toggle is active for a selected bone, like this:

Hình ảnh bị xóa do không hỗ trợ HTTPS. | Vẫn hiển thị

This is a good idea, to make it optional. It could be done. At runtime there could be an XTimeline, YTimeline, and XYTimeline. This would require changes in the editor and all the runtimes though, so not a small amount of work. It would have to be done after all the current tasks. 🙁

3 năm sau

Do forgive my necroing an old thread, but rather than making a new one on the same topic, I just wanted to express my excitement over seeing this feature on the Spine waffle's list of intended enhancements. I know it could still be a long way off, but it's something I find myself wishing for in a great number of my animations, so any notion of it on the horizon is great news.

I did independently come up with the separate X and Y bones workaround, which alleviated a lot of my stress over getting smooth curves for a few cases, but having both values belong to the same bone would be much more straightforward and easy to work with. It's also one of the first things I tried to do in Spine, in coming from a 3D background, so the split option will ideally make things much more user friendly for the majority of new users who give up on getting a smooth curve rather than finding this thread or coming up with the separate bones workaround.

I'm sure it's far from the most important feature on the to-do list (especially given the workaround), but I definitely think it will be well received when it comes to pass. In the meantime, thank you to the whole team for all the constant hard work and updates that have been making Spine noticeably better every day!

Cheers Emjay! 8) :beer: