Allow us to make our animations usable in any game by configuring it and add a library section

You’re forgetting that the interfacing between C++ and Lua is pretty slow. Another alternative for custom equations is to build something in C++ that can parse formulas from strings and then evaluate them, but that’s also sub-optimal compared to built-in styles because those would just be compiled C++ methods

Not interested in this attitude, sorry. If you want to make tools and systems for your game and not share - feel free to.

I think the best option would be for roblox to contract someone.

Yes, of course - we develop these tools internally. They are in the open and there are many people who ask for more parts of ROBLOX to become open-source and we are changing more and more builtin systems, both on the client and Studio side, into open-source Lua. So if you (not as in personally you) really think you have solid ideas on how to improve animation editor - contribute.

If I’m correct, the intense part comes from interpolation in CFrames, not x. I don’t think running a function that says function(x) return x^4 end would be so intensive.

C++ -> Lua -> C++ transitions are really expensive.

3 Likes

An incredible amount of open-source software gets built by people solving issues that they care about and then contributing their solutions to the community at large. A lot of humans don’t behave like you think they do.

9 Likes

The changes I had wanted to make would have drastically altered the scope of the ROBLOX animation editor. To name a few:

  • Set up IK for joints
  • Ability to move connections between parts instead of parts (e.g. move elbow instead of upper/lower arm)
  • Create GUI controllers for animations (e.g. slider for how open/closed a crane claw is)
  • Store metadata (like controllers) in animation model published to ROBLOX so that they’re loaded whenever they’re imported back to the editor
  • Dynamically add/remove parts during the playing of the animation (e.g. new magazine during reload)

All of these can be done with ROBLOX animations, but may or may not be too specific enough for the official animation editor, and there was no guarantee that PRs that change the scope of the official editor this much would be accepted, so this became a project separate from the official editor. I made sure to build it off of ROBLOX animations, but building on top of the official editor wasn’t a good option.


There was also the issue of modularity. The official editor isn’t easy to extend because the whole thing is packed into essentially two scripts: the 800-line GUI handler and the 6000-line main script responsible for everything else. Fulfilling my needs took precedence, so the choice between spending a significant amount of time learning the inner workings of that wordcode wall before even being able to modify it and starting from scratch was an obvious one. If it had been modularized I may have decided to use it as a base instead of starting from scratch:

I’m here’s as a Devils advocate. You were discussing how nobody wanted to do anything.

All I’m saying is “hey as a developer at roblox this is honestly what I’m seeing”

I would love to help roblox in any way I can. I just don’t have time. The reasons I list are why I think most people don’t add on.

Sure - I don’t quite buy that these are the reasons, I think it’s more like ROBLOX community doesn’t embrace the “sharing is good” as much as they could, but not necessarily for rational reasons. It’s like when I ask people whether they have thought of using somebody elses A* module the usual response is “I guess I just wrote my own” - in Unity ecosystem what you do first is you find a plugin on asset store.

I am not trying to convince you personally into switching to our animation system or to share your work to be clear - everybody has their own reasons and there’s never enough time. I personally used to care way too much about code I write for myself, and these days I’m way more towards the “I want to spend my time to help other people out” side.

Ah.

The A* thing would be used by me if the voxel size wasn’t so big, just a heads up.

Would be nice to be able to sell animations as an asset (eg. like a t-shirt for robux).
And have the availability to use that earned robux for DevEx.

2 Likes

Bear in mind that most of us are students, so there’s value in writing our own algorithms for learning.

The community still has a lot to learn about standing on the shoulders of giants. It’s hard for the animator to get better when it keeps getting scrapped and rewritten from scratch.

I think the issue is lack of a good rigging tool. I can’t imagine using the editor would be any easier or harder with a non-humanoid rig, the problem is likely making the rig in the first place.

@BuildIntoGames I’m not sure what you mean here. What are you specifically trying to do that is difficult? Using animations on NPCs? Writing AI?

It took me a solid 2 weeks to figure out how to get it to work because the wiki was really vauge about it. To my knowledge, the wiki page hasn’t changed since then.
(More specifically, the animationcontrollers implementation was pretty different compared to running animations on players, and it has very specific undocumented use cases)

What undocumented cases are you referring to? Playing an animation on a player should be identical to playing one on an NPC.

If I recall, my big problem was the humanoidrootpart - I didn’t realize you needed a humanoidrootpart in the npc and it wasn’t (It still isn’t to my knowledge) documented and was one of the problems that mislead me. AnimationControllers also made no sense and seemed pretty useless. (Why couldn’t the animations just run directly on the humanoid?)

But you don’t want your static models like animated guns or fishes or whatnot to try climb TrussParts, walk around, have a nametag & healthbar, swim in ROBLOX terrain water, jump and fall etc., right?

I guess you’ve figured it out by now, but AnimationControllers are just an empty skeleton for loading and playing animations, in contrast to Humanoids, which comes with a ton more unrelated features. This break-up is due to the legacy setup of animations - so the Humanoid couldn’t just have its animation-specific API removed due to all the dependency from existing code, likely.

I do agree that we need some good tools to create rigs - that’s currently a more complicated matter. But making animations just takes some effort to get into, and then you can make gorgeous animations in little time. Though I haven’t tried MrNelson’s model rigger plugin yet :frowning: (seems to be popular though)

1 Like

Fair enough about HumanoidRootPart. I’ll look into that.

1 Like

If there was just this one feature in Roblox Animation API @zeuxcg, I’d be willing to use the system. An “add keyframe on the go” API. Instead of animations, I want to be able to insert a keyframe that I have created according to the environments of the game which would enable me to make dynamic animations. For example, I want the character to pick something up from the floor, I want to add keyframes such that the player takes that object with its hand not the thin air. It’ll never be the same exact animation twice. I could make swords collide with players with some primitive collision detection and build a nice sword fighting which is responsive where collisions have impact (see the game exanima) and feels realistic. Unfortunately, I’m pretty sure that Roblox won’t be adding this feature but I’m hoping for an answer if it’s even possible or not.

1 Like

So, is this gonna happen or will animations remain restricted to the uploader’s places?

1 Like

More or less asking for Inverse Kinematics

We don’t have plans currently to support sharing animations, but it’s definitely something we’d like to support.

You know what confuses me? How are you guys able to lock the use of animations other people’s animations from the library but not audio?