Не совсем правильное отображение, но для последующих раздумий сойдёт:
C++:
Vector BonePos;
Vector OutPos;
matrix3x4_t BoneMatrix[128];
for (int i = 0; i < 128; i++)
{
angleMatrix(Vector(0, Globals::FakeAngle.y, 0), BoneMatrix[i]);
matrixMultiply(BoneMatrix[i], matrix[i]);
BonePos = Vector(matrix[i][0][3], matrix[i][1][3], matrix[i][2][3]) - info.origin;
vectorRotate(BonePos, Vector(0, Globals::FakeAngle.y, 0), OutPos);
OutPos += info.origin;
BoneMatrix[i][0][3] = OutPos.x;
BoneMatrix[i][1][3] = OutPos.y;
BoneMatrix[i][2][3] = OutPos.z;
static IMaterial* material = g_pMaterialSys->FindMaterial("models/inventory_items/dogtags/dogtags_outline", TEXTURE_GROUP_MODEL);
g_pModelRender->ForcedMaterialOverride(material);
oDrawModelExecute(ecx, context, state, info, matrix);
g_pModelRender->ForcedMaterialOverride(nullptr);
}