Jump to content

Question for viewer developers


ItHadToComeToThis
 Share

You are about to reply to a thread that has been inactive for 362 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

6 hours ago, Lucia Nightfire said:

We need procedural animation creation by script capability.

I tend to agree, but SL has a rather loose connection between servers and avatars to allow for lag. There's a lot of fakery and interpolation going on to make that work. For example, when you turn your avatar, it turns immediately. That's in the viewer. The simulator then gets told which direction your avatar is facing. But when you move, that's done in the simulator, and you see a bit of lag. You'll see that this is fake if you use an avatar that's much longer than it is wide, like a horse. It looks like a horse, but it collides like a vertical cylinder. You can turn the head or rump through a solid object. That's wrong, but doesn't lag. If you tried to do this all from the server side, the server would have to work much harder and have much more detailed collision models.

A system that does this well has to intelligently split the job between viewer and server. Many games do that. You control character position with arrow keys, and the animation system reacts to nearby objects in some reasonable way, like switching from walking to climbing. The original Tomb Raider was one of the first games to have that. For a really good example of such implicit animation, see the UE5 demo video. The narration points out that when the character goes through a narrow doorway, she reaches out and touches the doorframe. That's triggered by the situation, and makes the movement look much more real.

You'd need a system where, instead of animations stored as a timeline of joint angles, behaviors were stored as goals with code to achieve them. Something where "close to vertical thing and moving forward" triggers the "climb" behavior, for example. Such systems exist, but it would be a tough retrofit to SL.

  • Like 1
  • Haha 1
Link to comment
Share on other sites

14 hours ago, NiranV Dean said:

Yea. Why would i even spend time on it then. We need a way to add multiple creators to one asset and we need a proper way to display that rather than just (multiple), also the Viewer needs to away to upload things and set multiple owners (or having fixed names already added when we reupload something from someone else)

another way could be an additional permissions flag: Export

Export permission can only be set to True when Copy, Modify and Transfer permissions are also set to True

for existing animations/assets (so existing content doesn't break) then the absence of the Export permissions flag means No Export

Link to comment
Share on other sites

On 9/28/2020 at 9:22 AM, NiranV Dean said:

Yea. Why would i even spend time on it then. We need a way to add multiple creators to one asset and we need a proper way to display that rather than just (multiple), also the Viewer needs a way to upload things and set multiple owners (or having fixed names already added when we reupload something from someone else)

So here's a funky idea.

Right now the Viewer uses a Motion Controller to manage all motions (animations) on all known characters (avatars). As it is right now the Motion Controller is somewhat limited, not open for modification and is always the same for every avatar.

HOWEVER

What if we changed the Motion Controller to be a fully separate instance for each avatar, one that is not pre-determined by the Viewer but rather is downloaded as asset like shapes and physics are? An asset that boils down to being an animation behavior controller, allowing each and every user to change the way animations behave for each avatar or outfit at any given time. This would open up a million possibilities for modding animations without even touching them and it could be retrofitted into SL quite easily since most of the foundations are already there. With an open Motion Controller we could set and change all kinds of things, like animation speeds, animation blending types, update intervals (yes we could change how much animations are updated this would allow optimizing less importing animations down), we could do things like configure what animations to play when, we could create complex state machines how our avatar should animate, basically we could create entire AO's (except we don't set the animations which we can do via a server side AO though). Behavior changes can be extended into infinity. Seeing how VRChat can do it (with Unity) this would open up a whole new way of customizing our avatar on a base level even if its just a small simple change like changing the animation speed of walking/running animations or making them depend on our velocity (which would be technically quite obsolete since SL does not support movement in anything other than the 6 pre-determined speeds = crouch, walk, run and all of them with stop-motion active). Most of these things wouldn't even be server side, its almost all exclusive to the Viewer itself and how it displays others, animation speeds is already supported by the Viewer for instance, simply synchronizing them via the Motion Controller asset between clients would make it so that changing animation speeds to match our movement speed is actually possible without ever touching the actual animation. This would also be the perfect opportunity to add animation blending (the Viewer supports it but animations are always override, there are no blended animations being used in SL)

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 362 days.

Please take a moment to consider if this thread is worth bumping.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...