Home Technical Talk

Pros and cons for different ways to organize game character and associated skeletal mesh props

grand marshal polycounter
Offline / Send Message
Alex_J grand marshal polycounter

Looking for advice from anybody with more experience in games production. I am just getting familiar with animation ecosystem in unreal.

I am making a third person shooter in which you use a bow as your only weapon. I am using the Paragon Sparrow character as a reference.

My primary question is, I need for the bow to be present while authoring animations so that I can correctly place the characters hands. However, if I include the bow in the characters fbx, then unreal is going to always expect that bow joints to go along with the skeleton. In other words, the bow would have to parent to the characters root joint. So that become hard linked together in a way.

That is the way that Paragon's Sparrow is done. I suppose in the case that we want to see the character without the bow, we could just hide the bow by masking its material, or maybe translating it way beneath the level. Not a huge deal.

Another thing I could do is to use the bow for animation authoring, but just not export it with the character. Then, in Unreal, I can attach it via a socket. This seems like keeping it separate might be a little more flexbile in general, though I can't currently think of any situation where it would matter...99% of the time you'd have the bow in hand.

A con against having bow separated is that then I have to sync bow animations with character animations - also not a huge deal, but it's a little more complexity to handle in unreal, whereas if bow animations and character are authored together, then I only have a single animation to call upon in Unreal.

It seems that there are good reasons to have the bow be part of the characters skeleton. But it also seems like, in virtually any example of shooting games, usually weapons are separate and attached via a socket. However, that may be a necessity of weapon swapping features, whereas like Paragons sparrow, my character will only ever have the one weapon.

In the future, if I did want to upgrade the characters bow, that could still be handled separately via the sockets method. So it's not either or, really. But if possible, I like for there not to be too many caveats, and for things to all follow same pattern as much as possible.

I'm just using community as rubber duck and also interested if anybody has any experience and can point to any pro's / con's I'm not aware of.


Replies

  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter

    Whichever way you end up going for, the only thing that matters at this point is to start by spec-ing the two assets (character and bow) in a way that allows for either scenario later - either with each using their own UV square, or with the bow using a full UV square and the character using 3/4 of a square (leaving one quarter empty to squeeze the bow back in later if needed).

    Everything else (pros and cons of either approach) will be a wild guess, and likely not representative of the future realities of production.

    ... Or, adopt an art style that doesn't require any texturing :)

  • Alex_J
    Options
    Offline / Send Message
    Alex_J grand marshal polycounter

    @pior

    i was focusing more on the animation pipeline. setting up the rig and animation files is a little less flexible because animations are associated with the skeleton, so if I include the weapon with the character skeleton that kinda locks me in. I mean, its possible to change later it just takes a bit of work.

    But on the other side, if I have the bow be a separate skeleton with separate animations, that makes for more complicated animation blueprint in engine. So my hunch is to keep weapon with the character so I can easily author animations and then I don't have to do any fancy programmer stuff in engine to sync animations.


    As far as textures and materials, I don't see any reason the bow couldnt share space with the character. I mean, that's how it was done in paragon, and I will be having much simpler setup compared to them.

  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter

    That's precisely my point :) Something as seemingly simple as assuming that they will share textures is a rather dangerous thing to do. The Paragon assets are very specific to the MOBA genre, where characters and weapons are one and the same.

    Your absolute best bet is to go for separate textures, separate assets, a fully static bow without any bendy deformations, and weapon animations being completely driven by the character animations (meaning : the bow simply follows/is attached to the hand/socket). And Ideally you'd take care of the strings by drawing lines between dummies. Everything else would mean added complexity one way or another - which is possible to solve during the course of preproduction of course, but not as some kind of masterplan in advance as you're bound to miss some factors.

    Anything else (like deciding early on that the bow will deform in sync with character animations, or that the two should be merged) would be asking for trouble imho.

    In other words, you can't really decide on any of that without trying both approaches in context.

  • Alex_J
    Options
    Offline / Send Message
    Alex_J grand marshal polycounter

    @pior

    ah ok i understand you better.

    i have tried both approaches and it seemed like including the bow with the character was simpler overall. Because then I just author the animations in one swoop, and in engine all i have to do is call a specific montage. For instance, an animation for draw the bow, and animation to fire the bow.

    whereas if the bow is a separate skeleton, then i have to go through each animation and ensure that the bow lines up. and to draw and fire the bow there is no two animations to call. But I think the major problem would be, suppose I want to make the character draw back further when drawing the bow... if the bow is separate and composited with the animation in engine, now i have to have either an IK system in engine so that bow string reaches the drawing hand position, or a material system for the bow string (like you mentioned). BOth of those are things I don't know how to do. I mean, I could learn, but I know how to do animations and rigs in maya so it seems simple to me to go with that. This is all in in comparison with going into a single maya file to adjust the bow draw animation where I would adjust arm position, and be done. Within like 30 seconds I can be testing it in engine again, and there are no new systems that I have to develop.

    I think that is where I see the biggest benefit of single rig. It does operate with the assumption that character is tied to the bow, like you mentioned that is part of a certain game design, and in my case that's the plan for the game as well. One character, one outfit, one weapon. It's a solo developed game so I think its good to set some hard boundaries and not try to design for infinite possibilities.

Sign In or Register to comment.