Home Technical Talk

Current Gen Rigging

interpolator
Offline / Send Message
Hito interpolator
Hey all you TA/Ds and Riggers, what's the specs on current Gen engine's rigging capabilities? Things like UE3; Doom3; etc?

Specifically: limit to # of Bones total? # of bones each vertex may be attached to? or phrased differently, blending weights allowed?

I'm asking because from what I've been able to observe, games like Gears; Bioshock, FEAR, Doom3, all had 1/0 weighting; only 1 bone per vertex. But older engine Torque handle blended weights just fine. Is it a technical thing? or just a "not enough time to blend weights" thing?

So whats the low down on rigging for X360/PS3?

Replies

  • East
    Offline / Send Message
    East polycounter lvl 14
    I find it hard to imagine Gears (or BioShock) had 1 bone per vertex weighing, when the Unreal Engine 3 supports 4 bones per vertex.

    I could be very wrong, though.
  • Hito
    Offline / Send Message
    Hito interpolator
    I could be wrong, I'm just basing this on observations. In some of the cinematic sequences in Bioshock the weights looked very "jagged"; Same in many FEAR screenshots. Of course I could just be mistaken completely and what I saw in the game is the best that's possible with the current tech.

    Gears was very hard to tell for sure since the designs are all very chunky and the armor had small seams. for All I know those models could have been in segments and childed to the bones with no weights blending at all. Though I doubt thats the case.

    But now I know UE3 is capable of 4 bones per vertex.
  • East
    Offline / Send Message
    East polycounter lvl 14
    Yeah, you might be right. Just because the engine supports it, doesn't automatically mean they are using it smile.gif
  • Rob Galanakis
    No one is using rigid weighting anymore... Well almost no one though I can't think of who would be.

    Gears are 3 maybe 4 bones/vertex... UE3 can I think do 4 (its stated on the info page, whatever it is), but 3 AFAIK is common since most of the time 4 isn't necessary. Though this is a content and not pipeline/engine issue so I'm sure some models use 2, some 4.

    Bone amounts are on the Engine page as well, I thought... I'm not sure the max amount of bones Shader3.0 can handle in the vert shader per-mesh but that's probably the max (90 something? can't remember). Anyway, a mesh can be split up if the bones are too many, allowing things like facial bone rigs that would otherwise go over the hardware bone limit.

    The jagged edges (screenshot example?) are not really due to bones-per-vertex but with the constraints of smooth skinning. It doesn't displace volume or simulate muscles, so there will always be problems. Things like helper bones and other rigging techniques will remedy this in the future (I think its been a somewhat neglected area of graphics, but as polycounts increase I think it will become more essential), but what you're seeing is probably just natural.
  • animatr
    Offline / Send Message
    animatr polycounter lvl 18
    at work, i am the rigger/character td for our team.
    our specs are 24 bones per piece(a model can be broken up into many pieces. though usually, each piece has a corresponding texture sheet.)
    we can go up to 127 bones per piece, but those pieces wont be able to cast shadows.
    we dont have the ability though to do faces with morph targets/blendshapes though. our facial rig is all joints, probably around 24 total. 3 verts per influence is our limit.
    if you saw shitty weighting in FEAR, it was most likely becasue someone did a shitty job weighting it. there really arent a whole lot of technical restrictions.
    our biggest one is rotation order, but im sure thats common in every engine.
  • Hito
    Offline / Send Message
    Hito interpolator
    thanks for the clarifications robg and animatr;

    Time has distorted my memories re: FEAR. The jaggie areas are the hips and shoulders, which have been traditionally problematic.

    About bones and casting shadows, why is it that with many bones the piece can't cast shadow? I read something somewhere about skin modifier in max prevents stencil shadows (or somehting to that effect), is that related?
  • Rob Galanakis
    animatr: My guess is that the vertex shader would be too intensive to be practical to handle so many bones and shadow casting as well. Is this right?

    As far as the Skin Modifer, no, that's not true... I know sometimes there are issues with stencil shadows (done on the CPU) and hardware vertex deformation (done on the GPU). I'm sure there are fixes for this (skeletal animation is usually fine in most engines but OGRE for example can't handle other types of vertex shader deformations with stencil shadows). You're probably confusing Skin with skining.
  • Hito
    Offline / Send Message
    Hito interpolator
    one more thing, all rigging helpers and contraints and such are fair game right?

    The exporter essentially bakes the animation every frame to the animation file for in-game use?
  • Eric Chadwick
    Depends on the exporter/engine I think. Ours doesn't care what you use for bones (mesh, bones, biped, helpers) or what hierarchy, only that if you want rotational-inheritance then you need a hierarchy... i.e. hand moves thru an arc when elbow is rotating, only when the hand bone is linked to the forearm bone. If hand isn't linked then it moves from pose to pose instead of rotates from pose to pose.

    Cool topic.
  • Hito
    Offline / Send Message
    Hito interpolator
    I've only had some experience with Torque so far. and a little with the engine used in Dawn of War. DoW engine used Biped, judging from the art samples. I'm not sure how the vehicles are rigged, since the model extractor doesn't read the bone information. but its probably safe to assume they're max bones.

    I've only used Biped with Torque for the sake of not having to name every bone and sharing animation.

    Currently I'm rigging and animating a model for UE3 but it'll be sent to someone else to be tested in the engine; so I'm asking around a bit to see what I can expect with the newer engines.

    So far I'm just using Biped and some helper dummies like Poop's setup. I don't think there will be any problems.
  • Vailias
    Offline / Send Message
    Vailias polycounter lvl 18
    Unreal 2.x had a limit of 4 bones per vertex, but a lot of things used one per vertex except in those stretchy areas.
    Weapon meshes were often one bone per vert in pieces, and UT2k4 included internal render optimizations for segmented meshes with single bone per vertex weighting.

    So sure the engine is capable, but the more influences you put on the more intense the calculations are for the end animation, and the less resources you have for other things like AI and collision.

    And yes generally speaking any rig stuff is fair game (control rig, not skeleton) and can be omitted from the final in game animation.

    what are you animating?
  • CrazyButcher
    Offline / Send Message
    CrazyButcher polycounter lvl 20
    when gpu is used for creating the final vertices, a single mesh may not have more than around 24 bones. Because that amount of data fits into constants most vertex programs can do as minimum. Also as dynamic branching is still rather "new" (sm3+), a mesh that is gpu-weighted will have a common weight count for all vertices. (say 3), and even if a vertex has only 1 weight, the other "dummy weights with 0 influence", will still be calculated. So say your engine does "gpu-skinnin fixed 3 weights", there is no reason to save weights.

    for stencil shadows or in case a mesh is rendered very often in the same state (multi-pass), skinning normally is done on the CPU, where there are no "limits", and where individual counts do make a difference. The result can be reused, whilst GPU skinning must be "recalculated" every time a mesh is drawn.
Sign In or Register to comment.