personally i like the direct way, the fast way. My Renderworld-Shadow-projector optimized by Peter Scheutz is pretty fast and an ideal choice for tekken-like stuff. For large Terrains and Buildings etc. you can combine this with the FLEX Method Rob mentioned. That's really easy. If you have probs with the FLEX-Mesh then have a look at the Flag Demo in the 3D Code Archives, it uses a Mesh with realtime modificated Vertex Heights.
So this technic uses two parts:
1)
temporary position camera at the lights position, point it to the Character, color the character grey and the ground black/hidden (entityFX 1 of course) and make a Renderworld (which is in fact the shadow viewed from above). transfer this Render to the Texturebuffer of the FLEX-Mesh.
2)
Position the FLEX-Mesh right above the Character, x/z-centered. get each Vertex X and Z position and use Linepick to determine the Ground Y.(Make shure the Character is not pickable for his own shadow) Now set the Vertex-Y of the FLEX-Mesh to Ground-Y +0.1 or something.
then reset camera and entityfx etc, continue as usual.
So this technic uses two parts:
1)
temporary position camera at the lights position, point it to the Character, color the character grey and the ground black/hidden (entityFX 1 of course) and make a Renderworld (which is in fact the shadow viewed from above). transfer this Render to the Texturebuffer of the FLEX-Mesh.
2)
Position the FLEX-Mesh right above the Character, x/z-centered. get each Vertex X and Z position and use Linepick to determine the Ground Y.(Make shure the Character is not pickable for his own shadow) Now set the Vertex-Y of the FLEX-Mesh to Ground-Y +0.1 or something.
then reset camera and entityfx etc, continue as usual.