float spread = local_weapon->inaccuracy() + local_weapon->get_spread();
float distance = transformed_center.dist_to(local::eye_pos);
distance /= sin(DEG2RAD(90.f - RAD2DEG(spread)));
spread = sin(spread);
// radius and spread
float radius = max(box->radius - distance * spread, 0.f);
head_scale = body_scale = std::clamp(radius / box->radius, 0.f, 1.f);