studiohdr_t* studio_model = interfaces.ModelInfo()->GetStudioModel(model);
if (!studio_model)
return;
for (int j = 0; j < 12; ++j)
{
if (!backtracking->backtrack_records[player_index][j].valid)
continue;
const auto matrix = backtracking->backtrack_records[player_index][j].boneMatrix;
for (size_t i = 0; i < size_t(studio_model->numbones); ++i)
{
mstudiobone_t* pBone = studio_model->pBone(i);
if (!pBone || !(pBone->flags & 256) || pBone->parent == -1)
continue;
ImVec2 vBonePos1;
if (!Utils::WorldToScreen(Vector(matrix[i][0][3], matrix[i][1][3], matrix[i][2][3]), vBonePos1))
continue;
ImVec2 vBonePos2;
if (!Utils::WorldToScreen(Vector(matrix[pBone->parent][0][3], matrix[pBone->parent][1][3], matrix[pBone->parent][2][3]), vBonePos2))
continue;
renderer->AddLine(vBonePos1, vBonePos2, settings->colors.skeleton);
}
}
Source? hmm.1. Call setupbones in ever tick
2. Save it to ur records
3. Use ur own DrawSkeleton func to draw saved matrix
4. Sorry for my English and enjoy
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz