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.

The collision tutorial in Irrlicht is a very good starting point. The ray collision isn't fancy on the characters, but it would serve well enough. However, if you're using bullet, it probably has some sort of ray collision so you should use that. It would be best to tie in the physics engine first thing and then work from there, using the collison and forces of the physics engine to manipulate game objects. You sound inexperienced so I would recommend dropping the idea of making a first person shooter and create a simple world and move things around using the bullet engine. A 3d pong game would be a good start. Otherwise, you could drop the physics engine and it wouldn't be too hard to write a 1st person shooter using Irrlicht's collision tutorial. It's still not really a good starting point unless you use something like fpscreator or something where you're basically building a mod.