- Рейтинг
- 2
Всем привет.
Мне нужно сделать экспортер весов точек с привязкой к костям. С макс скриптом до этого не сталкивался так что пришлось немного пошаманить и вот что получилось (Все на стадии эксперементов):
Вариант 1:
Тут возникает проблем в том что цикл прирывается когда jая кость не действует на iую вершину, т.е. вес равен 0.
По идее нужно проверять влияет ли кость на вершину но нужную функцию я так и не нашел.
Вариант 2:
Тут мы смотрим сколько всего вершин и костей в модели а затем в цикле выбираем кость и вершину и выводим значение. Тут проблема в том что кость выбирается правильно но вес точки остается тем же что и для первой, т.е. получается чтото такое:
Bone1 0.665
Bone2 0.665 ( а должно быть 0.335, что видно в листенере когда переключаем кости вручную)
Как это исправить я тоже без понятия. Надеюсь кто-нибудь сможет помочь, потомучто я в ступоре (.
Мне нужно сделать экспортер весов точек с привязкой к костям. С макс скриптом до этого не сталкивался так что пришлось немного пошаманить и вот что получилось (Все на стадии эксперементов):
Вариант 1:
Код:
k= skinOps.GetNumberVertices $Box01.modifiers[#Skin]
l= skinOps.GetNumberBones $Box01.modifiers[#Skin]
for i=1 to k do (
for j=1 to l do (
m=skinOps.GetVertexWeight $Box01.modifiers[#Skin] i j
print m
)
)
По идее нужно проверять влияет ли кость на вершину но нужную функцию я так и не нашел.
Вариант 2:
Код:
k= skinOps.GetNumberVertices $Box01.modifiers[#Skin]
l= skinOps.GetNumberBones $Box01.modifiers[#Skin]
for i=1 to k do (
for j=1 to l do (
skinOps.SelectVertices $Box01.modifiers[#Skin] i
skinOps.SelectBone $Box01.modifiers[#Skin] j
m=skinOps.GetBoneName $Box01.modifiers[#Skin] j 1
print m
print $Box01.modifiers[#Skin].Effect
print
)
)
Bone1 0.665
Bone2 0.665 ( а должно быть 0.335, что видно в листенере когда переключаем кости вручную)
Как это исправить я тоже без понятия. Надеюсь кто-нибудь сможет помочь, потомучто я в ступоре (.