Jump to content
Eternal Lands Official Forums
Roja

Idle Animations

Recommended Posts

I think it would be nice to make some various standing idle animations so people don't look so stiff all the time. This would be a client side only thing, because it's not such a big deal that it needs to go through the server.

 

How it can work:

 

- ~10 different idle animations, just subtle variations, nothing major.

- Client will randomly choose to play 1 for a random length of time inside minimum & max time values(like it should complete at least X amount of loops of an animation before switching to another, and we don't want 1 going infinitely)

- Client needs to smoothly blend between the animations(I think Cal3d can do this, if not this might be a problem...)

- Client needs to smoothly blend into the next action(walking, sitting, into fight) if possible. Or first change into the default idle pose then go into the other animation.

 

So if anyone can program this, please let me know..and of course i'll work on the idle animations and send them to you :)

Share this post


Link to post
Share on other sites

These animations will need to work from a sitting position as if people are idle they are most likely sitting at storage mixing (is that considered "idle") or afk (which means sitting).

Share this post


Link to post
Share on other sites

I don't have time for this task, however I left some code here and there (under MORE_EMOTES) to handle animation blending programatically....good luck!

Share this post


Link to post
Share on other sites

Thank you knufasz! :)

 

No there doesn't have to be sitting idles bkc. Sure would be cool, but we can't have everything. I figured these standing idles wouldn't be too hard, that's why I suggested it.

Share this post


Link to post
Share on other sites
No there doesn't have to be sitting idles bkc. Sure would be cool, but we can't have everything. I figured these standing idles wouldn't be too hard, that's why I suggested it.

So the implication is that these idle animations will only apply to standing, not moving, and not afk people? That doesn't seem like it would be that many (to be worth the effort).

Share this post


Link to post
Share on other sites

Unfortunately I have problems with my developing environment setup. I can use Ubuntu because I cant install proper video drivers and lunch EL. On the other side Windows and DevCpp I have version of DevCpp which should work but it doesn't. I'm getting an Error 255 while trying to compile (and compilation process is not even started). My DevCpp version is very old, Much time was passed since I was developing Animation Blending patch.

So, Could someone send me link to working DevCpp setup?

Edited by knufasz

Share this post


Link to post
Share on other sites

Thank you knufasz! :)

 

No there doesn't have to be sitting idles bkc. Sure would be cool, but we can't have everything. I figured these standing idles wouldn't be too hard, that's why I suggested it.

Another solutions is standing idle, sitting idle, on horse idle sets of animations.

Share this post


Link to post
Share on other sites

The problem is the transitions between idles. One idea I had with Fedora was to make special "poses" that you could choose-this needs server support too though. So basically you'd choose a sitting animation you'd want to use, and it would use that one evertime you sat until you changed it to something else. Could also have this with walking, standing, etc...but again the problem is when you need to blend these with ALL the other animations-can't make transition animations for all so it would need to be done in programming.

 

I figure since that was so complex might as well do something easier, which is why I suggested the standing idles here.

Share this post


Link to post
Share on other sites

I figure since that was so complex might as well do something easier, which is why I suggested the standing idles here.

 

Well, there is always a problem with idles, or animations at all, when the player does some action at the middle of an animation.

 

A solution, at least for some eyecandy like idle animations might be: keep them as short as possible and the client plays the full animation and THEN starts the action the player did by clicking.

 

That would cause a small delay, like a few milliseconds, but nothing more.

 

Like the char finishes scratching its head and THEN start the fighting animation to attack a goblin.

 

When the scratching head animation doesnt take too long, it wouldnt be a problem.

 

The server itself doesnt have to care about that, the fight starts right now when the server starts it, but the client displays it just a few milliseconds later.

 

That shouldnt cause any harm and could be all done client sided.

 

So there is no need to blend over from a small idle animation to another one. Just finish the idle animation, THEN start the next animation.

Share this post


Link to post
Share on other sites

That works if you don't do much else but breathe. but if you move a foot for instance, even slightly...

 

Well, what do you want for idle animations?

 

Doing a happy dance for hours or something like that?

 

Thats why i suggested short idle animations.

 

Scratching your head, moving a foot, poke the next closest char in the eye, somthing which can be done in less than a second.

 

That shouldn't do any harm and cause not a too long delay IMO.

 

Well, just my thoughts :)

 

Piper

Share this post


Link to post
Share on other sites

Scratching your head, moving a foot, poke the next closest char in the eye, somthing which can be done in less than a second.

And (I would think) that if you kept the animations limited to upper-body actions, they would work equally well for sitting or standing (and perhaps horse-back too). I don't consider movement (walking) to be "idle".

 

As a footnote: I've always thought that if you were afk for more than (for example) 10 minutes you should lay down and go to sleep like Mario does in Super Mario 64.

Share this post


Link to post
Share on other sites

Scratching your head, moving a foot, poke the next closest char in the eye, somthing which can be done in less than a second.

 

That shouldn't do any harm and cause not a too long delay IMO.

 

 

 

Yeah, and if that repeats over and over, the same movements say from the current idle to a new one every few seconds that looks retarded. Trust me guys, I do put some thought into things.

Share this post


Link to post
Share on other sites
Yeah, and if that repeats over and over, the same movements say from the current idle to a new one every few seconds that looks retarded.

I would not expect any idle animation to be on-going. I would have expected it to be the type of thing that would randomly trigger say once every 10+ seconds. So rather than continuous motion, you have just random movements of people as they sit/stand there. Kind of like what real people do.

Share this post


Link to post
Share on other sites

IIRC, some animals already have 2 kind of idle animations, one normal and a special one (like eating the grass).

Actually, the special animation has something like 10% chance to be triggered each time we need to play an idle animation. And I guess, the animations are blended between them to avoid all the problems you are talking about.

 

So, if you keep this scheme, adding new idle animations is quite straight forward IMO. Anyway, I think it's worth to give it a try by using the same mechanism and see if it's acceptable or not...

Share this post


Link to post
Share on other sites

The monster idles are relatively long, and both start and end in the same position, that's why they "blend" ok. Yet even still they too look repetative.

I can make an extremely long idle, say at LEAST 200 frames(but 400 would probably be more ideal) so it doesn't look as bad for players and so it lasts. The current idle is just a standing breathing animation, what I had planned were other slightly different positions, standing and breathing, so really no other movements than that which would have made a short animation-just needing it to loop-and it having variable start/ending times too which isn't possible with set lengths.

The other problem with long animations is if we need to wait for it to finish so that it "blends". That's why having some blending function in programming would make it a ton better.

Share this post


Link to post
Share on other sites

Another idea, something along the lines of what bkc said, is to randomly trigger some emotes from time to time(specific emotes not all of them). Although this still would be best in addition to different poses.

Share this post


Link to post
Share on other sites

Animation blending was implemented by me some time ago. So all that need to be done is basically to exchange current idle animation with new one after some random time.

 

 

I have some concept about new idle animations. I was thinking about introducing something I've called mood. Each mood would have set of idle animations assigned. For example sad mood would have assigned 'turning his head doubtfully', 'cover face with one hand', 'looking into distance' etc. Each player and NPC would have one of moods assigned. I think I would do it in randomly way for start. It would give more authentic behavior for players and prevent skipping from 'happy' mood idle animation to 'sad' mood idle animation and back and forth. It would open interesting possibilities too. For example a player could send his chosen mood into server and it could be sent back(with player struct) to others. Furthermore server could send mood for NPC for example with quest progress.

 

 

After few hours of searching graphics card driver I still can not lunch El under my Ubuntu. Still no luck with DevCpp setup too. I'm really don't know how to resolve make.exe 255 error. I will keep digging.

Share this post


Link to post
Share on other sites

That sounds similar to something I was discussing with Fedora months back. We were planning to make "poses" Basically you'd be able to pick, from a list, your standing and sitting idles, and even possibly your walk. If we did do something like this I'd want players to be able to choose it, and then it also needs to go to the server. This gets pretty complicated fast though, as not only do we need blends for sitting/standing up, but for all the emotes(and emotes while sitting+standing) which need to look good, and other animations too.

 

So I was just trying to keep it on the simple side now, which I think we should stick to-just various standing idles :)

Share this post


Link to post
Share on other sites

A thought on the synching up views of "random" idle animations and other "random" things....

 

If you use the time clock and the character ID (the one that uniquely identifies a player/bunny/whatever) and do some math with the "random" function, you will have the ability of giving everyone an identical view of what idle animations the critters and people are doing without adding anything to the server. Just trust me..."random" is not "truely random".

 

To avoid a bunch of different people/monsters/things switching actions at the same time, try something like random((seconds+character_id)/duration).

 

Keeping this in mind, you could also sync up things like pond ripples, grass blades and other obscure things.

Share this post


Link to post
Share on other sites

Finally I have some free time. So I decided to give little update about this patch. Some work in progress is included in this patch. I've decided to use emotes as base for this idle animations because they are well done and are working 'out of box'. With this path all actors do 'random' (pseudo random as nathanstenzel proposed) emote after some 'random' time being idle. What I want to achieve in next step it would be extensions of emote configuration file to add mood id for every emote and mood list. This way it would be possible to very easily and flexible to configure which emotes will be attached to particular mood. Then moods will be 'randomized' between actors and will change after some quite long time 10-20 minutes or so in 'random' way. I hope that maybe in future sending moods ids to/from server will be added. It would work nice especially for NPCs and quest progress.

Adding new idle animations would require same work as adding new emote. I don't know exactly how to do it so Roja please contact with someone who coded emotes about this. You could think about possible moods and emotes (or your new idles) attached to moods. Each emote in mood will have 'chance to fire' so You can determine which emote in mood will be used more frequently or less frequently.

OK, that's all for now. I will let you know about progress.

Share this post


Link to post
Share on other sites

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

  • Recently Browsing   0 members

    No registered users viewing this page.

×