Всем доброго времени суток. Сначала расскажу, что нужно сделать.
Есть мешь рук насаженные на кости. Необходимо вывести позицию вершины (vertex) кончика пальцев.
Итак, известно точное расстояние от кости фаланги пальца до этой вершины.
Я решил просто при помощи for сравнить расстояние всех вершин с заданным.
Скрипт такой:
Никак не могу понять что за беда, почему if не срабатывает?
Прошу помощи в решение проблемы. Заранее спасибо!
Есть мешь рук насаженные на кости. Необходимо вывести позицию вершины (vertex) кончика пальцев.
Итак, известно точное расстояние от кости фаланги пальца до этой вершины.
Я решил просто при помощи for сравнить расстояние всех вершин с заданным.
Скрипт такой:
Код:
for i in objects do if classOf i == Editable_Mesh do obj=i -- получаю объект на котором ищу вершину (в сцене всего один объект класса Editable_Mesh)
z_dist = [0.0327497,-0.0125671,0.0100674] -- заданная дистанция от фаланги до вершины
for v = 1 to getNumVerts obj do -- ковыряю каждую вершину по порядку
(
dist = getVert obj v - $bip01_l_finger12.pos -- получаю дистанцию
rd = dist - z_dist -- должно получится [0,0,0]
if v == 1044 do b = rd -- специально поставил для проверки так как точно знаю индекс вершины 1044 в данной сцене, но в разных сценах индекс может изменяться поэтому нельзя применять одно и то же число
if rd == [0,0,0] do messagebox ("Index: "+(v as string)) -- этот if должен срабатывать когда rd = [0,0,0], т.е. разница между искомым и найденным расстоянием равна нулю, но сообщения messagebox нет
)
f = b -- MAXScript Listener здесь показывает [0,0,0] значит всё правильно считает, а if не срабатывает
Прошу помощи в решение проблемы. Заранее спасибо!