mirror of
https://github.com/Relintai/entity_spell_system.git
synced 2025-02-22 17:18:12 +01:00
merge_mesh_array is now able to handle bones.
This commit is contained in:
parent
963268666f
commit
b5bd583e8e
@ -259,6 +259,8 @@ Array CharacterSkeleton3D::merge_mesh_array(Array arr) const {
|
|||||||
PoolVector2Array uvs = arr[VisualServer::ARRAY_TEX_UV];
|
PoolVector2Array uvs = arr[VisualServer::ARRAY_TEX_UV];
|
||||||
PoolColorArray colors = arr[VisualServer::ARRAY_COLOR];
|
PoolColorArray colors = arr[VisualServer::ARRAY_COLOR];
|
||||||
PoolIntArray indices = arr[VisualServer::ARRAY_INDEX];
|
PoolIntArray indices = arr[VisualServer::ARRAY_INDEX];
|
||||||
|
PoolIntArray bones = arr[VisualServer::ARRAY_BONES];
|
||||||
|
PoolRealArray weights = arr[VisualServer::ARRAY_WEIGHTS];
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
while (i < verts.size()) {
|
while (i < verts.size()) {
|
||||||
@ -281,6 +283,12 @@ Array CharacterSkeleton3D::merge_mesh_array(Array arr) const {
|
|||||||
uvs.remove(remk);
|
uvs.remove(remk);
|
||||||
colors.remove(remk);
|
colors.remove(remk);
|
||||||
|
|
||||||
|
int bindex = remk * 4;
|
||||||
|
for (int l = 0; l < 4; ++l) {
|
||||||
|
bones.remove(bindex);
|
||||||
|
weights.remove(bindex);
|
||||||
|
}
|
||||||
|
|
||||||
for (int j = 0; j < indices.size(); ++j) {
|
for (int j = 0; j < indices.size(); ++j) {
|
||||||
int indx = indices[j];
|
int indx = indices[j];
|
||||||
|
|
||||||
@ -299,6 +307,8 @@ Array CharacterSkeleton3D::merge_mesh_array(Array arr) const {
|
|||||||
arr[VisualServer::ARRAY_TEX_UV] = uvs;
|
arr[VisualServer::ARRAY_TEX_UV] = uvs;
|
||||||
arr[VisualServer::ARRAY_COLOR] = colors;
|
arr[VisualServer::ARRAY_COLOR] = colors;
|
||||||
arr[VisualServer::ARRAY_INDEX] = indices;
|
arr[VisualServer::ARRAY_INDEX] = indices;
|
||||||
|
arr[VisualServer::ARRAY_BONES] = bones;
|
||||||
|
arr[VisualServer::ARRAY_WEIGHTS] = weights;
|
||||||
|
|
||||||
return arr;
|
return arr;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user