In my game, the player has an RPG (rocket launcher). Using this launcher, he can shoot a rocket.
When shown in the inventory, the rocket is stuck in the launcher. Also, when the user walks, the rocket is stuck in the launcher, and the RPG (the combination of launcher and rocket) is placed on his back.
Now when the user shoots, the rocket leaves the launcher, and the launcher pulls the player into a little spin to simulate a recoil.
Since the rocket and the launcher are stuck together most of the time, I was thinking that I should have a main game object named "RPG" with the 2 meshes "launcher" and "rocket". Most of the time, they would be stuck together.
When the user launches the rocket, I would change the position of the rocket in order to simulate it flying away. When it has exploded, I would make the rocket mesh invisible.
I was really proud of that plan until I noticed that the recoil will move the rotation and position of the RPG (launcher). Imagine the recoil of a pistol: The recoil will cause the pistol (and the hands) go up a bit.
Now when I do this with the launcher, the rocket will change its flight path. That would look unrealistic.
Can somebody tell me how this is commonly dealt with?