Agreed, almost all engines at least have some basic FPS framework (be a little useless if they didn't ), so the camera should not be an issue at all. As said above, raycasting is probably the best way to go.
A more specific approch to this, perhaps saving you hours on google is...
In DirectX, you can use D3DXIntersect(), or an equivelant that Irrlicht has. That will give you the info on whether you hit the entire mesh or not. If you want more specific impacts (head, torso, leg, ect.), then you can use D3DXIntersectSubset(), making each different part of the body a different subset.. which is kind of what you should do anyway.
If this all can't be done in directX, I'm sure Irrlicht has some kind of identical or similar function. I'm not entirley sure if the source code can be moddified for that, but again, I would think that engine needs heavy modification before it can start most any quality project, so no source code would be a dumb move.