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

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?

We could make audio behave the same way, but then we’d break many of games which rely on this behavior to use audio created by users other than the creator.

1 Like

While you’re potentially at it please make decals behave the same way.

1 Like

Couldn’t you make it a setting? So that all of the existing (and new) audios start off as “free to use” but can be disabled? That way it would only break a game if the audio owner went out of their way to disable it, not instantly robbing all games of their audio.

It would be an option, yes. There are some problems which are tricky to resolve:

  • Do we allow users to revoke access to an asset? If so, revoking an asset might be used as a weapon to hurt developers who are relying on your asset.
  • Do we support granting access to specific users/groups? Developers may want to share with specific people but not the general public. We could say anyone who owns the asset can use it, but this doesn’t work for groups as they can’t take assets.
  • If we decide to make all existing assets (audio, animations) “free”, developers may be irritated that assets which they explicitly marked as unavailable are suddenly showing up in the toolbox.
1 Like

Well I suppose if they were never free to start with they should have never been available to use in games by other players.

All in all, I can certainly see your points, but I think we should look at the long run here. Roblox is growing rapidly, and copyrights on music and audio are becoming a bigger problem increasingly. People can’t upload audio they have licensing to because others are free to use them in thousands of other games no matter what their settings are.

The audio still belongs to the original creator. It seems like it would be their right to revoke access to an audio that they own, and potentially created or paid for outside of Roblox.

If I had to decide, I would say that this would have to work the same way the animations do for groups now. If a group needs to use an audio, the group will need to create and own the audio. It’s a little bit out of the way, but it doesn’t seem like the end of the world to provide access. Additionally, granting access to specific users is not a feature currently allowed on animations, so I don’t imagine that’s ever been a problem. (I mean, that’s also not a feature in models, which have existed for years.)

2 Likes

Give plenty of time and it shouldn’t be an issue. Three phases:

###Phase 1
All newly uploaded assets follow new behavior. All old assets are flagged to be set to free, and developers are given a full month to mark their assets as private. The develop page should be overhauled at this point so using it is easy, and assets can be batch updated. I don’t think anyone will complain because

  • Assets were never explicitly marked private – private was the default
  • In the long run this increases privacy
  • With the overhauled develop page, configuring assets shouldn’t be much of a hassle.

At the end of this period, audio and decals not marked as private are set to be publicly available. Assets flagged as private remain private.

###Phase 2
Over the next couple of months, Studio gives developers a warning if they use an asset that’s marked as private. They are given plenty of time to find an alternative or upload their own.

###Phase 3
The changes are finalized, and private assets can no longer be used in games where the creator doesn’t own the asset. The only games that wouldn’t have adapted at this point are games that are no longer maintained – the wonderful thing being that the assets they use are likely also no longer maintained, and as such have been marked as free in phase 1. The number of games broken by this change should be minimal, and ROBLOX will now have the power to make whatever changes to assets it deems necessary without fear.

There are some high-level optimizations that can be done in Lua, that just aren’t practical to implement in C++. An ordinary dev shouldn’t be expected to write their own animation system, but there is so much more that can be done when using a custom animation engine.

Level of Detail

My Lua Joints only exist and run when a graphic or sound is requesting them. When the hand parts are swapped out for a low detail version, the skeleton has fewer joints and parts to worry about.

If a character is off-screen or obstructed, it will stop updating and unload, resulting in 0 animation overhead. This optimization can’t be done in the roblox animation system because a script might want to know where the parts are.

Additional assemblies and animation types that sync by using the same animation ‘clock’

I can add more joints too, and sync their animations. I can also sync it with non-joint animations that play sounds, or anything else I want to make.

If it doesn’t move, it doesn’t update

I can set joints to have a static cframe or give them an abitrary Lua function that returns a cframe. This allows my Lua joints to fall asleep.
http://i.imgur.com/IzKmpTh.gif
http://i.imgur.com/4hDJWvc.gif

I can have joints without parts

http://i.imgur.com/DjjhDfA.gif

It can run any type of animation.

Animated hair, animated weapons, mounts, inverse kinematics; anything that results in a cframe, I can do it
http://i.imgur.com/0KIA5Gv.gif

Custom easing styles

My animation systems have had easing styles since before roblox even had an animation system. If I can write it in lua, I can make it an easing style.
2 keyframes:
http://i.imgur.com/FruWWKC.gif
(Groups of joints reuse the same easing result.)

Cache animation results

Once it’s looped through the same transition once or twice, it begins using old results instead of interpolating the same cframes.

Custom animation format and replication

If two completely different animations reference the same cframe, it only replicates that cframe once.

Transform Animation Data

I can mirror animations, or apply any other transformation I might need.

Real-time independent joint scaling

Reliable and Future Proof

Animations that use anchored parts and .CFrame are extremely stable and portable. I can run them in studio without relying on physics or humanoid animation controllers. I haven’t touched this animation system in years and it still works:
http://i.imgur.com/yCbXnbR.gif

C++ runs objectively faster than lua, but custom animation systems are more efficient for me as a developer.

10 Likes

I would argue that users should not be able to revoke access. They should be able to take it off public domain, but users who have taken it should still be able to use it. ROBLOX features shouldn’t be designed to support developer drama and conflicts, much like group payouts. If it ends up being a violation of usage terms like “you need to give me credit for this to use it”, the creator can file a DCMA request through the proper channels.

Groups should be updated to be able to “take” assets. They can already have inventories for audio/decals/etc, so I don’t see why we’d implement something completely different when the foundation is already there. There’d be no need to distinguish between “taken” and “able to use in-game” with the transition I outlined earlier as well.

1 Like

If we’re talking about “taking it” as if it’s in their inventory, I agree. I am moreover referring to the possibility that people are using it simply by the assetid without owning it at all. Either way, however, we’re not talking about drama and conflicts. We’re talking about property and copyrights.

This should not be possible in the first place, and in my earlier post I outlined an elegant solution for phasing this out. Once users are no longer able to use assets without having it in their inventory, they should be able to take an asset and be guaranteed of its usage forever.

This.

So much this.

I wouldn’t mind so if the animator had just a few limitations, I’d be annoyed sure, but I’d still use it. Currently its very restricted and it’s difficult to do some of these optimizations and tricks, if even possible at all, without my own (or tomarty) animation system. I still think hiring an expert to continously work on this instead of an intern every year would help a lot.

How much would we have to pay you collectively to document and open-source it as a sort of animation toolkit? :slight_smile:

Seriously though a near-complete solution like that could be very useful if it was publicly available to play around with, I think it would really help boost development of custom rigs/animations etc.

3 Likes

While uninformative this is very true. Animating with the ROBLOX animator and setting up custom rigs is something I dread every time. I’ve just come back to it after not doing any for a while and I’m incredibly frustrated, here are a few problems:

  • Rigging the character. I spent about an hour looking through different plugins to edit Motor6D’s and in the end found a pretty good one usability-wise, made by @Sharksie however I’d much prefer something integrated into Studio like the new constraint system has. Anyway, the point is it took WAY too long to figure this out and I’ve been making stuff on ROBLOX for like 8 years, how do you expect newer developers to understand it? It’s not even on the Wiki page. @UristMcSparks

  • The editor constantly crashing studio (happened on more than one occasion within the first 5 minutes of trying to animate my new rig) I can’t give you an error because studio stops responding when I move a keyframe to the end of the timeline, which is just one of the things that causes the crash. Other times, the editor breaks thanks to errors I can see in the output, which I’ll make sure to post as a bug report next time. But that’s exactly why I hate using it, it’s always throwing errors and breaking, making me lose everything I’ve just made. It’s not just a one-time 1-in-100,000 incident, it’s ALL THE TIME.

  • Lack of other features. As pointed out by other people in the thread @ScriptOn @BuildIntoGames there aren’t many of them. I won’t post a list since it’s already been covered pretty much.

I know you’ve been saying well we should fix it ourselves and share, but this is one of flagship features in Studio, every game needs animation, every single developer can’t be expected to have to fix/make their own tools because they simply don’t work otherwise.

rant over