View Full Version : Hard Body Rigging.
Ethangar
06-10-2008, 09:07 PM
I'm performing more of a test for me. This was the single biggest P.I.T.A. to do in LW and there might be a circumstance in the near future where I have to do it again in XSI this time. I've found and bought lots of tuts on soft body rigging but they don't apply here. I'm going to try and explain what I need in terms of aircraft control surfaces since thats what its needed for.
I have an F-18 that I built in LW and have brought into XSI. Now the problem is with the flaperons. The ailerons on the F-18 act as alierons ( to control roll ) and flaps when landing. Getting them to work will be step one but the part that killed me in LW was when the flaps were down. They deflect down to the max of say 25 degrees. (pulled a number.) Now if the pilot tries to adjust the roll of the aircraft the one that is fully deflected will not deflect any more but the one on the opposite side will still decrease deflection just like an aileron should. Its the locking out the one from deflecting past the max that killed me.
Any pointers on where to look to figure this type of rigging out in advance of me needing it?
XSI 6.5
EricTRocks
06-10-2008, 11:05 PM
It's a bit confusing trying to understand without a diagram of what parts you're trying to rig. But just going to toss this out: Are you just trying to have a control have a limit in rotation say X?? You can set rotation limits in the kinematics PPG (CTRL + K). I'm not familiar with aircraft setup at all but if you could provide some rough diagrams it'd help I think.
Thanks,
Eric T.
thiago
06-11-2008, 02:11 AM
ok this is the aileron?
http://www.adl.gatech.edu/classes/dci/aerodesn/aileron.jpg
If yes it seems to me that it's just a bone or even a separate object with the pivot point in the right place.
Isn't it?
When you say "Hard body" you mean that you don't wanna distort right?
So select all the points of your mesh, press ctrl+e to open the envelope table. This way you see exactly what deformer is affecting what point. You can select all the points and just put 100% of weight in one bone, making it behave as a "rigid envelope".
Or I'm totally missing the point here?
mantom
06-11-2008, 04:43 PM
If the entire model is rigid, then there's no point in applying an envelope as you're not going to gain anything.
For an airplane, just build the alierons as separate geometry and make them children of their respective wings. Make sure to place the centers along the axis of rotation for the alierons. In some cases you might need constraints or expressions to help automate the extension/contraction of the alierons during animation so it's more workflow friendly to iteration, but that's about all there is to it.
Matt
Ethangar
06-11-2008, 07:36 PM
Sorry for being a bit vague. I was in a hurry to post. This is the part of the wing (red overlay) that I'm talking about.
494
Shown fully deflected ( down ) The are also the ailerons of the plane.
Ailerons work opposite each other. As this part rotates up ( left roll ) the the one on the opposite wing will rotate down and vice versa. That part is no problem to figure out. The problem comes in when they are deployed as flaps (attachment). Then the control surfaces on both wings rotate down like shown. Again shouldn't be a big deal to figure out ( I haven't tried so I have my fingers crossed anyway ) At full flaps they are drooped about 38 degrees, but they still have to function as ailerons to control the roll of the plane. Since they are at their max deflection down they can not rotate anymore in that direction. So in the example above if the pilot were to roll the aircraft to the left. The part in the image should rotate up but the one on the other wing shouldn't move at all since its at full deflection.
That is the part that caused the headaches in LW and I'm hoping won't be a huge deal in XSI.
thiago
06-11-2008, 07:48 PM
yeah but technically speaking (in 3d), what's the matter with this mesh?
It doesn't deform right? so why not just position the pivot in the right place, and this would rotate down and at the same time go out of the wing (I'm just guessing the real thing would work like this).
Shouldn't be a problem, I would do without any enveloping at all... just pivots in the right place, and some Expressions/LinkWith here and there.
Ethangar
06-11-2008, 09:04 PM
Is there a tut somewhere on setting up hard surface models? I found lots that are for organics etc but I haven't found anything on setting up hard surface (no deformation) models like this.
thiago
06-11-2008, 09:41 PM
hmm I don't know about any tutorials ...
but I would start to learn about these nodes in XSI:
- kinematics (Global and Local Transform difference).
- pivots
- constraints
and..
- parent/child relations
- model structure
this is very well documented, and there is plenty of videos about this things here in the community.
But as far as I know there's nothing specific about Airplanes.
That said, would be useful for other users if you share what you discover...
mechis
06-11-2008, 10:15 PM
Why can't you just have a control for each aileron. It's the easiest solution :)
There's no reason why you have to do it all in one control...
~Mechis
David Diamond
06-12-2008, 12:40 PM
I read this thread for the first time yesterday and, as a pilot (and 3D geek) it intrigued me. I'm not good with math, but my brain tells me this is a job for expressions. And, if I'm not mistaken, the basic logic would go something like this:
First off, despite the fact that the control surfaces/flaps are a hybrid on this airplane, the pilot would still have separate controls for each--the stick controlling the "ailerons" and a switch (presumably) controlling the flap positions.
In this hybrid model, I'm guessing "aileron" motion would be an offset of the existing "flap" position. In other words (forgive my syntax; I'm making it up):
If (flapPosition == 0) {aileron_starboard.rot = -aileron_port.rot}
That's the easy part. But, if the "flaps" are deployed, the movement of the "ailerons" needs to be an offset of that. For example, if the "flaps" were deployed to 10 degrees (flaps will always go "down," so we don't need to worry about negative rotations), then it would seem to me that for the first 10 degrees of "aileron" roll, only the "up" aileron would move. At the moment the flapPosition degree has been reached, the "ailerons" are exactly opposite one another, as they would be on a normal airplane. But, we'd have to allow for additional aileron movement too--even beyond the flapPosition deployment angle. Then, when the "ailerons" were brought back to normal, they would both move until the "up" aileron reached the flapPosition degree on its way down, at which point it would stop moving.
Then, as others have mentioned, you'd have to set hard rotation limits. The trick here is that once a hard limit was reached, the math would have to compensate using the other surface.
My brain hurts.
Here are some hard-coded numbers:
Flaps level, 10 degree left bank:
flaps.rot = 0
aileron_port.rot = -10, aileron_starboard.rot = +10
Flaps 10 degrees, 10 degree left bank:
flaps.rot = 10
aileron_port.rot = -10, aileron_starboard.rot = +20
Flaps 10 degrees, 45 degree left bank:
flaps.rot = 10
aileron_port.rot = -10, aileron_starboard.rot = maxRotation
In this last situation, if that configuration still did not achieve the desired bank, then the aileron_port.rot would have to start moving the opposite way in order to compensate, essentially removing the "flap" contribution to the surface position in favor of the need for opposite aileron. Then, when the bank was brought back toward neutral, the aileron_port.rot would "stop" at -10 to reintroduce the "flap" contribution.
I realize I haven't provided you with a solution, but I'm hoping that one of the hot-shot XSI masters here will get an idea from this that might help.
Ethangar
06-12-2008, 08:39 PM
Why can't you just have a control for each aileron. It's the easiest solution :)
There's no reason why you have to do it all in one control...
~Mechis
More than anything its a comfort thing. I set it up in Lightwave so that all the control surfaces are being driven by one Null at world center. Bank, Pitch and Roll were handled by rotating the null on different axis. Flaps (on WW-II planes which is mostly what I do) were handled by moving the null from 0 to 1 on the Y axis (0% to 100% deployed) and the landing gear was moving it from 0 to 1 on the Z axis. That put all the basic flight controls and movable objects all under the control of one null.
Since thats what I'm used to I suppose thats what I'm looking for in XSI. It should basically be the same for a simple WWII plane but this one is just a little more involved with wing tips that fold and leading edge extension and droop that are tied to the flap positions etc.
I suppose I should crawl before I try walking... I'll just try and set up some primitives and see if I can get them to work the way I want so I can figure out the process.
Ethangar
06-12-2008, 09:31 PM
In this last situation, if that configuration still did not achieve the desired bank, then the aileron_port.rot would have to start moving the opposite way in order to compensate, essentially removing the "flap" contribution to the surface position in favor of the need for opposite aileron. Then, when the bank was brought back toward neutral, the aileron_port.rot would "stop" at -10 to reintroduce the "flap" contribution.
I realize I haven't provided you with a solution, but I'm hoping that one of the hot-shot XSI masters here will get an idea from this that might help.
Actually that summed it up quite nicely :)
Ethangar
06-16-2008, 07:36 PM
I got some time on the weekend to play around with this just using stand in primitives and have muddled my way through setting up a basic rig that is keyed off of a null. You were right that it just seems to make more sense to my brain to do it with pivot points than envelopes.
Now that leads to another question about pivots. They are movable through the kinematics panel. What I'm wondering is if there is a way to move them more interactively with the mouse in the view port? I'm used to the way that LW handles it where I can activate the pivot tool and click anywhere in the viewport and the pivot appears there. You can then proceed to drag it around and adjust it to your hearts desire. This seems much easier than moving sliders around in the PPG.
Sarford
06-16-2008, 08:03 PM
Hi Ethan,
Yeah, you can very easely move your pivot around in XSI (even animate it too). When selected your object, click 'Center' (next to the big white arrow on the MCP) and you can move, rotate and scale your center to your harts content. When moving your center, if you hold alt it will snap to that position.
And for your control surfaces. I would set up a nul which controlled the flap position (y-axis) aswell as the airelon positions (x-axis). The conection to the flap position can easely be made with an 'Link with...' setup. For the airelon positions you have to setup an conditional statement. Something like:
cond(LeftAirelon.rotY>maxRotation, maxRotation, LeftAirelon.rotY)
And the same for the right airelon too ofcourse. That way, when the airelon reached max rotation because of the flaps deployment it wouldn't go furter but it could go back.
Ethangar
06-16-2008, 09:13 PM
That works the treat! One odd thing though is that when I move it in the Y axis the handle moves the opposite direction. I move it up and the handle takes off down. I'll have to play with that one.
What about set neutral pose. That seems to reset all the rotations and translations back to zero. Is that a good habit to get into or does it matter?
Thanks for the advice on setting up the flaperons. I understand it but I'll have to take baby steps first before I take off running. :) Its just frustrating sometimes that doing even basic things takes so much effort in XSI. Not a failing of XSI's though.. just that I still think in LW is all. My last model in LW was in 50 odd layers and had a hugely complex rig for it. If I can manage that...... I'll win with XSI to. I just have to learn to stick to it and not get frustrated and run back to where I'm "comfortable." :)
EricTRocks
06-17-2008, 09:20 AM
Hey,
You may get the center moving in opposite direction if you are in COG mode. Ensure that you aren't. :)
Moving the 'Center' and moving the pivot position are two different things. With an object selected go to the kinematics ppg by hitting CTRL+K. Go to the 'Pivot' tab. On the left side you see SRT options to move the object pivot. These are different than moving the center. Read the docs by clicking the '?' at the top of this tab. It does state that if you want to animate the pivot, that you must also key the compensation that coincides with the S,R, or T sliders. But there are buttons on that tab that do that I believe. You can probably make a custom button that does the same.
It is a very good habbit to set neutral poses. This allows you to get your object back to the original position if necessary. Note that it will most likely only show '0' values in local mode which is what mode you'll have to be in to set it back to '0' or if you 'Reset Transforms' from the transform menu.
Hope that helps.
Eric T.
vBulletin® v3.7.0, Copyright ©2000-2008, Jelsoft Enterprises Ltd.