djalex777
Сделал.
Тут вот как оказывается, я немного не так в первый раз объяснил.
Простое приравнивание матриц работает если к анимированной модели хочешь привязать полностью статичную smd-шку без анимаций.
А тут у оружия оказывается есть idle анимация.
Тут надо делать так:
Функция ANIMATE2_WEAPON(n As Integer, parent As D3DMATRIX) As Boolean аналогична ANIMATE2.
Добавил параметр parent As D3DMATRIX - абсолютная матрица сустава к которому крепится оружие.
И абсолютная матрица нулевого сустава получается перемножением относительной на абс. матрицу сустава к которому крепится оружие (parent), вместо TrNodes(Nodes(i)).absolut
D3DXMatrixMultiply TrNodes(i).absolut, TrNodes(i).relative,
parent
И тогда все замечательно работает
Вместо твоей модели я использовал модели из HL1?
С твоими моделями что-то не получается прикрепить куда надо.
Может модель калаша называлась w_ak47?
Нужно обязательно использовать p_ak47.
Либо ты может анимацию подправил, не знаю...
Но все работает.
З. Ы.
Строчка TrNodes(i).absolut.m42 = 0 нужна только для того, чтобы модель стояла на месте, её надо использовать при анимациях run, walk и т.д. т.е., когда модель двигается.
В остальных случаях НЕ нужно приравнивать TrNodes(i).absolut.m42 к нулю.
У вас нет доступа для просмотра вложений в этом сообщении.