Нормальная идея, только для идеальной реализации будут необходимы head bone angles, т.к. голова модели имеет степени свободы, которые дают ей возможность иметь углы, отличные от базовых углов модели. Все бы ничего, но
Code
EngFunc_GetBonePosition, // void ) (const edict_t *pEdict, int iBone, float *rgflOrigin, float *rgflAngles);
возвращает нулевые углы всегда и везде. Так что прийдется игнорировать возможность свободного вращения головы относительно остальных частей модели. И, кстати, шлем иногда спасает даже от пуль M4A1 винтовки и также, если я правильно помню, пуль AK-47.