mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-09-12 19:47:27 +00:00
fix: not being able to write xmodel_export with omitted default armature
This commit is contained in:
@@ -18,16 +18,16 @@ protected:
|
||||
auto vertexOffset = 0u;
|
||||
for (const auto& vertex : xmodel.m_vertices)
|
||||
{
|
||||
XModelVertexBoneWeights weights{0, 0};
|
||||
XModelVertexBoneWeights weights{.weightOffset = 0, .weightCount = 0};
|
||||
|
||||
if (vertexOffset < xmodel.m_vertex_bone_weights.size())
|
||||
weights = xmodel.m_vertex_bone_weights[vertexOffset];
|
||||
|
||||
m_vertex_merger.Add(VertexMergerPos{vertex.coordinates[0],
|
||||
vertex.coordinates[1],
|
||||
vertex.coordinates[2],
|
||||
&xmodel.m_bone_weight_data.weights[weights.weightOffset],
|
||||
weights.weightCount});
|
||||
m_vertex_merger.Add(VertexMergerPos{.x = vertex.coordinates[0],
|
||||
.y = vertex.coordinates[1],
|
||||
.z = vertex.coordinates[2],
|
||||
.weights = &xmodel.m_bone_weight_data.weights[weights.weightOffset],
|
||||
.weightCount = weights.weightCount});
|
||||
|
||||
vertexOffset++;
|
||||
}
|
||||
|
@@ -532,6 +532,12 @@ namespace
|
||||
}
|
||||
}
|
||||
|
||||
bool CanOmitDefaultArmature()
|
||||
{
|
||||
return ObjWriting::Configuration.ModelOutputFormat != ObjWriting::Configuration_t::ModelOutputFormat_e::XMODEL_EXPORT
|
||||
&& ObjWriting::Configuration.ModelOutputFormat != ObjWriting::Configuration_t::ModelOutputFormat_e::XMODEL_BIN;
|
||||
}
|
||||
|
||||
void PopulateXModelWriter(XModelCommon& out, const AssetDumpingContext& context, const unsigned lod, const XModel* model)
|
||||
{
|
||||
DistinctMapper<Material*> materialMapper(model->numsurfs);
|
||||
@@ -542,8 +548,8 @@ namespace
|
||||
AddXModelObjects(out, model, lod, materialMapper);
|
||||
AddXModelVertices(out, model, lod);
|
||||
AddXModelFaces(out, model, lod);
|
||||
|
||||
if (!HasDefaultArmature(model, lod))
|
||||
|
||||
if (!CanOmitDefaultArmature() || !HasDefaultArmature(model, lod))
|
||||
{
|
||||
AddXModelBones(out, context, model);
|
||||
AddXModelVertexBoneWeights(out, model, lod);
|
||||
|
Reference in New Issue
Block a user