Home Technical Talk

HL2 XSI Custom Rig Help

polycounter lvl 11
Offline / Send Message
jocose polycounter lvl 11
Hi All,

I am trying to make a custom rig for Hl2 in XSI. It's the first time I have gone about doing this and right now I am just trying to do some export tests. I don't have any control objects ATM just bones.

When ever I parent the root of one bone to the effector of another it does not export properly. Instead the bone just sits at 0,0,0 and does nothing.

If I instead parent the root of one bone to another bone, this works.

However, in the valve biped and other valve rigs, they do have the roots of bones parented to the effectors of other bone chains. So this has left me pretty confused.

Does anyone know anything about this. Is it invalid to parent the roots one bone chain to the effector of another, or should this be working?

Replies

  • Flynny
    Options
    Offline / Send Message
    Flynny polycounter lvl 9
    Ive no idea but im intrigued, you say the bones are parented to parts of the rig?
    Or are they parent constrained to parts of the rig? If its the former I cant see how that would work..
  • jocose
    Options
    Offline / Send Message
    jocose polycounter lvl 11
    Thanks for responding. I have a feeling that this issue is very simple and is probably a result of me not having a fundamental understanding of rigging.

    They are parented.

    I actually don't have a "rig" per say. JUST BONES. I am going to animate the bones directly just for this simple test and then go back and do a proper rig.

    What I have works in XSI just fine. It's tedious to work with but it was fine to do some test poses and a simple animation.

    So, would you normally constrain, rather than parent, the root to the effector? I thought that since it worked in XSI it was acceptable, but really I know nothing of the right or wrong way to do this :(

    I have a bone that starts with a root node, and then in the middle there is the "bone", and then it ends with an "effector" node. Like this:

    *root*<--bone<--*effector*

    If I have a chain of bones there may be more than one bone in between the root and effector. What I need to do is parent one chain to another. I did somthing like this:


    *rootA*<--boneA<--*effectorA* <--parented-- *rootB*<--boneB<--*effectorB*

    What I am trying to illustrate there is that rootB is parented to effectorA. This relationship works in XSI just fine, but when exported the bone chain consisting of rootB, boneB, & effectorB it just sits at 0, 0, 0 of the world and does nothing.

    I thought it was fine to parent a chain's root to another chains effector, and as I mentioned it looks as though the Valve biped (and other Valve rigs I looked at) did the same thing.

    However, what I did try, that seamed to work, was either parenting rootB to boneA directly, or constraining rootB's translation and orientation to effectorA.

    While either of those seamed to work, it if left me wondering if I was doing something wrong, and what the correct way to go about doing this was.
  • Flynny
    Options
    Offline / Send Message
    Flynny polycounter lvl 9
    The latter sounds right, I think the bones appearing at 0,0,0 sound like the hierchy has been broken and the bone/s are lost on the export..

    I dont think I know of an engine that supports a broken hierchy skeleton for animations, golden rule is every joint chain starts with 1 joint (usually hips) that will split into 2 chains ,the back bones and up the chest and the hips down to both feet..

    could you grab a viewport screenshot of the hierchy by chance? been a while since i used xsi
  • jocose
    Options
    Offline / Send Message
    jocose polycounter lvl 11
    Sure:

    hierarchy.jpg

    limbs.jpg

    This is a simple example of what I am trying to do. With this current setup if I were to rotate "UL_Bone1" all the other bones would rotate with it, but if I were to export that animation only "UL_Bone2" would rotate with it and the LL bones would just sit at 0,0,0.

    Also I can confirm that the bones are being exported. I can see them in the Source SDK model viewer. It's just that they don't move and appear to just sit at the bottom of the world.

    Oh BTW, I'm not doing a human model. This is a creature with very inhuman anatomy. Otherwise I would have used the Valve Biped , but that doesn't really effect the rig, I think the same rules apply here.

    oops "LR_eff" should be "UL_eff" sorry just a typo.
  • Flynny
    Options
    Offline / Send Message
    Flynny polycounter lvl 9
    Its definately sounding like a rig problem, best bet is to try chop up what valve have done and try mimmick it..

    When in doubt, copy ;D
  • PieJesu
    Options
    Offline / Send Message
    I reckon the problem lies with your exporter. Working rigs are easily created and exported for the Source Engine in max.
  • jocose
    Options
    Offline / Send Message
    jocose polycounter lvl 11
    @Flynny Thanks for your advice. I am going to try and rip apart one of the existing rigs. However, I would like to know, what I just did there by parenting the root to the effector makes general sense, correct? I'm not breaking some fundamental rule by doing it that way right?

    @PieJesu I would think it would be the other way around because Valve uses XSI as their primary package internally, and they have the most documentation and support for the XSI exporter. As far as I know Max is secondary to them. I feel like I must be doing something wrong. If I figure it out I will post back here. I'm going to have to look at the valve biped and see if I can deduce anything.
  • PieJesu
    Options
    Offline / Send Message
    Did Valve create the exporter that you're using for your copy of XSI?
  • jocose
    Options
    Offline / Send Message
    jocose polycounter lvl 11
    Yes, this is the official exporter. It's either identical or very similar to the one that is used internally at Valve (as far as I know).

    Oh and by the way this morning I noted that the effector is actually parented to the bone in the valve rigs but in mine it was parented to the root. XSI sets it up this way by default. I am at work now, but when I get home i'm gong try changing the relationship to match the valve rig and I suspect it will work.
  • jocose
    Options
    Offline / Send Message
    jocose polycounter lvl 11
    I just wanted to confirm that the problem was simply the the fact that the effector wasn't parented to the last bone in the chain. I'm not sure why XSI sets up their bones this way, but the effector is always paretned to the root.

    I assumed since it worked in XSI it would work in source, and I was wrong.

    Once I fixed this I had no other issues and now have my animated model in game. Thanks your responses.
Sign In or Register to comment.