Author Topic: Actions, Mucha needed  (Read 2014 times)

Azora

  • Traveller
  • *
  • Posts: 14
    • View Profile
Actions, Mucha needed
« on: September 07, 2002, 07:32:03 am »
I know what you would all say, if you had the chance to stop me. \"Its been stated before\", ok fine but i still must say it anyways, and yes this is my 1st posting :} .
What i want is as follows, if you are blacksmithing, diging, running, sewing, painting or stocking a fire can we please see some rudamentry actions taking place I got really sick of DAoC (even though its was quite fun to meet so many strang.......... gers) becuase in the open beta the final testing phase, when you were conversing with shop keepers or making some object you just seemed to stand there and will things into you inventory, i mean they could at least hold out there hand or weld a hammer to the anvle. its so more atmospheric.

P.S. Bloody good game even for an alpha!  :))
« Last Edit: September 07, 2002, 07:43:24 am by Azora »

Link

  • Hydlaa Notable
  • *
  • Posts: 895
    • View Profile
(No subject)
« Reply #1 on: September 07, 2002, 11:59:44 am »
As stated before, This is a ONLINE rpg when making a oline rpg you want to keep the animations low for the sake of the size of the download and also to keep frame rates under control.
The Great Linksunius

boonet

  • Hydlaa Resident
  • *
  • Posts: 167
    • View Profile
(No subject)
« Reply #2 on: September 07, 2002, 12:46:17 pm »
Well, once the skeletal animations will be woking on our models, it won\'t really be a problem to add many actions without having a significative impact on download. And adding more actions wouldn\'t result in worse fps: even a standing character is not totally frozen, but it\'s playing his standing animation. So the fps would remain the same. :) Having to broadcast more data about different actions could have some effect on network performance, but for sure  Vengeance can answer this question better than me.

Vengeance

  • Veteran
  • *
  • Posts: 1452
    • View Profile
(No subject)
« Reply #3 on: September 07, 2002, 05:35:35 pm »
The network overhead is minimal, because the action to display is sent and the player\'s computer handles displaying each frame--the server does not have to participate in that.

The real issue, I think, is RAM used by each model.  Hmm, some quick back of the napkin calcs here...  The latest Kran model has 600 polys or so, 800 vertices, and each action is assumed to be 30 frames (although this might change).

So polys take 600x3coordsx4bytes = 7,200bytes.  No biggie.

Vertices take 800x3coordsx4bytesx30frames = 288K per animated action.

Also, CS stores the normals for each vertex for each action, so we double that number and arrive at an estimate that each animation we add to a player model will take 550K-750K, depending on model size.

If you assume 12 races of both sexes, that\'s 24 models (23 because the Kran is one sex), so to create standard actions for all races will require 14MB per Anim.  Since these are anims and have to be displayed quickly, they will more or less all have to be loaded into RAM ahead of time.

Maybe there is a better way to do this, but unless I\'m missing something major, I\'m not sure how we can deliver a game with many many anims per character.

Boonet?  Thoughts?

- Vengeance

boonet

  • Hydlaa Resident
  • *
  • Posts: 167
    • View Profile
(No subject)
« Reply #4 on: September 07, 2002, 07:48:41 pm »
Hey, this gave me the occasion to reflect a bit about the question Vertex animation VS Skeletal animation. This is my very rough analysis of the pros/cons of the second one. First some quick calcs:

An animated model has let\'s say 20 bones, and most of them can rotate and translate in 3 directions, so for the starting bones positions we have:

20bones x ( 3coords + 3rotations) x 4bytes = 480 bytes.

Every bone must store a weight map, defining how much it affects every vertex in the model, and this is defined only once for every model. In the worst case, where we assume that we specify the weight even for vertices that are affected at a zero degree by that bone, we have:

20bones x 800vertices x 4bytes = 64K per model

The animation for a bone is stored both in its position and rotation, so we have:

20bones x ( 3 coords + 3 rotations) x 4bytes x 30frames = 14.4K per animated action.

For the Kran model example we would have:
initial vertex and normal data: 14.4K
starting bones positions: 480bytes
weightmaps: 64K
Bones animations for let\'s say 3 base standard actions (stand, walk, run): 3x14.4K=43.2K
This gives us around 122K for a model animated with 3 actions: extending this result over all the 24 races gives us around 3MB total data required for base animations.
If we think to add let\'s say  \'stab\', \'drink\' and \'\'play banjo\' actions to the base ones, the total data would top around 4MB. This shows how a skeleton based animaton system is less affected by the addiction of action in respect to a vertex-based one.

Things that didn\'t enter in this rough evaluation:
- normal and vertex data per each frame must be calculated runtime by the engine, which is more work for CPU.
- eventual morph targets to add nice subtilities to the motion  have not been taken into account. They may be replaced by a bone structure having more bones.
- Actions can be longer or shorter than 30 frames. A \'play banjo\' one could be only 10 frames long i.e., while a \'wear complete armor plate\' could be 100 frames long. But I suspect that the mean would be around 20-30 frames.
- In this case the bones animations have been keyframed, but they could be scripted too: a walk cycle could be driven by parametric expressions, resulting in less stored data, but higher CPU load.
- the same skeleton animation can be exchanged through different models, if certain conditions exist: interesting save of data.
- a clever method of mapping skeletons to meshes would allow us to create a new animation of the skeleton and apply it only once to all the required models, without having to animate each skeleton for each mesh with the new action.
- a skeleton would automatically provide attach points for weapons, so it wouldn\'t require us to add them to the mesh as we do now.
- a very good looking skeletal animation is more difficult to achieve, unless morphs or complex skeletons are not provided.
- a last-minute idea (I don\'t know how much realistic or feasible, but I caught if passing through my brain): skeletons would be better to have imposter-rendering of animated characters far away. Imagine rendering the segments of arms, legs, etc... and then having those mapped to simple quads  bound to the skeleton. We could see 1 character at 2 Km distance, or, conversely, we could handle huge crowds of models with less CPU stress. Uhm...

Well, Venge, these were my thoughts about the question. I\'d like to continue it, because the time when we\'ll have to decide if switching or not to skeletons is coming closer, even if it\'s not yet 1 of our priorities.
I\'m quite late for dinner and I\'m rushing this a bit, so please report me everything that I wrote that could be wrong. :)

Aruneko

  • Hydlaa Citizen
  • *
  • Posts: 333
    • View Profile
(No subject)
« Reply #5 on: September 07, 2002, 10:53:36 pm »
...?????

Translation, please?  :)

*thinks very hard*

So skeletons are worse quality but less effort and space?

Vengeance

  • Veteran
  • *
  • Posts: 1452
    • View Profile
(No subject)
« Reply #6 on: September 08, 2002, 08:05:13 am »
I\'m not an expert with skeletal animation either, Aruneko.  :-)  I think that is what he is saying.

Boonet, we cannot go to fully skeletal animation for our characters yet because that part of CS doesn\'t yet fully work.  I mentioned it to Jorrit the other day and he said \"Yes the whole Sprite system needs to be rewritten...\"  which doesn\'t sound like it will be fixed any time soon.  :-)

Also, the vertex positions and normals will have to be stored somewhere...not calculated for each sprite each frame.  I would be *shocked* if CS didn\'t store them, because the calculations for them are fairly expensive.  It may be possible, however, that for example only the vertices and normals for the currently active animation are cached.

On the other hand, if we have many characters running around, standing, waving and playing the banjo, all those actions may still be all cached at the same time anyway.

It\'s a tough problem.

- Venge

Azora

  • Traveller
  • *
  • Posts: 14
    • View Profile
(No subject)
« Reply #7 on: September 08, 2002, 09:25:03 am »
just leave room for improvement in the scripting so you can add more animations later, and will we have a selection of skins for are charter or a templat of some sort, or will we all look the same bar a few items? or will are skins and hight be randomly choosen for us?

boonet

  • Hydlaa Resident
  • *
  • Posts: 167
    • View Profile
(No subject)
« Reply #8 on: September 08, 2002, 04:01:59 pm »
Semi translation :)

-Skeletal animation is harder to make good-looking as vertex animation.
-Skeletal animation stresses more the CPU (and/or requires caching=memory), while vertex animation requires more memory.
-Skeletal animation (if correctly implemented) makes easier the introduction of more actions.
-skeletal animation will make extremely easy the process of migrating to higher-resolution characters when the GPUs will be able of handling them.

...and this is just academy for now, since a rewrite of the sprites system in CS is still far away, as Venge confirmed :)  Just starting to think a bit about possible future options...

Azora: we have a working character look customization system, so the players will be able to decide how their characters will look during the game (clothes, skin, hair, eyes, etc...). We need 2d art to fill it, though :)

Azora

  • Traveller
  • *
  • Posts: 14
    • View Profile
(No subject)
« Reply #9 on: September 10, 2002, 09:10:18 am »
Tell me the email and ill send images from my friend and I, hes currently doing consepts for some one elses game, but that looks to be falling threw so its his loss your gain.

Phillzlocation@hotmail.com
« Last Edit: September 10, 2002, 09:10:55 am by Azora »