This topic is 2771 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

Hello. I'm trying to recreate LightWave Bone animation in my program, but i have some trouble calculating bone weights for vertices affected by multiple bones without weight maps. I did some research, i know about that topic: http://www.gamedev.n...nesweight-maps/ and i'm a member of LWP on yahoo. But it didn't help much. Because modern LightWave(i'm using 9.6) animation system is weird as hell.

Here's abstract representaion of how i'm trying to calculate bone weights:

 void NormalizeArray(float* &_Array, unsigned int _Count) { float WSum = 0.0f; for(unsigned int f = 0; f < _Count; f++) WSum += abs(_Array[f]); for(unsigned int f = 0; f < _Count; f++) _Array[f] /= WSum; } unsigned int ACount = 0; float temp_weight[Num_Bones]; for(int b = 0; b < Num_Bones; b++) { Bone.distance = Dist_PtS(bone, vertex); if(Bone.distance < Bone.Min_Range) temp_weigth[ACount] = 1.0 - Bone.distance/Bone.Min_Range; else temp_weigth[ACount] = 0; //Add faloff later ACount++; } NormalizeArray(temp_weight, ACount); //So now Array should store multiplier for every bone affecting current vertice; 

Rest Length multiplication is off. Min and Max range are 42. No weight maps. All Bones strength is 100%.
I'm not sure if it's correct(i mean correct for general weight calculation, not lightwave specific), but sometimes it looks close to what i see in LightWave Layout, but most of the time it's not. So i can't figure out even basic lightwave weight calculation. Look at comparsion, maybe that will help tou to help me .

[attachment=2264:ComparsionA.jpg]

1. 1
2. 2
3. 3
4. 4
Rutin
13
5. 5

• 19
• 10
• 9
• 9
• 11
• ### Forum Statistics

• Total Topics
633694
• Total Posts
3013363
×