Regarding the moment of when to set it, take note how much time until the smoke covers the player before setting the set_visible to false. This will prevent the sudden invisibility of the player.
In terms of third person shooter, I don't have much experience with it. You can look for Shaders to accomplish it, I think.