Занимаюсь вот анимацией и подошел к вопросу - как привязать оружие к рукам, я понимаю что это связано с IK, но никак не могу понять с чего начать. Во первых что у меня имеется, персонаж бегает во все стороны по типу topdown, бегает в стороны по нажатию WASD а целится туда куда мышкой указываю, персонаж бегает как нужно и поворачивается в сторону курсора. Что я сделал - привязал автомат к правой руке, при прицеливании смотрит не туда куда нужно, получается нужно автомату смотреть в сторону курсора, но тогда как руки к нему привязать... В общем не пойму что ведомое а что ведущее, что куда должно крепиться и что куда должно смотреть. Подскажите что да как?
Re: Как привязывать руки к оружию?
Добавлено: 16 сен 2022, 03:46
Saltant
На ютубе есть куча видосов по IK в чем проблема?
Re: Как привязывать руки к оружию?
Добавлено: 16 сен 2022, 19:45
NOVA
Досконально не помню как делал.
Но так то всё правильно. Вроде оружие цеплять к правой руке, а левую IK на цевьё.
Re: Как привязывать руки к оружию?
Добавлено: 16 сен 2022, 19:51
Zimaell
NOVA писал(а):Досконально не помню как делал. Но так то всё правильно. Вроде оружие цеплять к правой руке, а левую IK на цевьё.
У меня немного другая ситуация, TopDown, сам прицел это 3D курсор, вот сделал что-то подобное
privatevoid Update(){
leftHand.position= WeaponLeftHandler.position;// WeaponLeftHandler точка на оружии к которой крепится рука
leftHand.rotation= WeaponLeftHandler.rotation;// leftHand пустышка на персонаже }
privatevoid OnAnimatorIK(){
anim.SetLookAtWeight(1f, 1f, 1f);
anim.SetLookAtPosition(Target);// Tagret курсор в который должен целиться, по сути туда должно смотреть дуло
anim.SetIKPositionWeight(AvatarIKGoal.LeftHand, 1);
anim.SetIKRotationWeight(AvatarIKGoal.LeftHand, 1);
anim.SetIKPosition(AvatarIKGoal.LeftHand, leftHand.position);
anim.SetIKRotation(AvatarIKGoal.LeftHand, leftHand.rotation);
но он смотрит выше и градусов на 30 левее, при приближении курсора подымает прицел еще выше, не пойму откуда SetLookAtPosition смотрит и куда, как его заставить смотреть туда куда мне нужно, а именно чтобы он целился именно в этот курсор...
и да, оружие прицепил к правой руке, IK к левой...
Re: Как привязывать руки к оружию?
Добавлено: 16 сен 2022, 20:02
NOVA
Ну вообще не помню, я такими методами и не пользовался 5 лет назад. Оружие входит в состав Меканим? У меня вроде было отдельным объектом. Оси пивота соответствуют? Где модели вообще делались. Пивот. Центр тяжести ствола должен находится именно в центре ладони правой руки. Вектор длины ствола должен быть направлен на курсор. Левая рука на цевье. Проверьте все эти вещи. Кажется вспоминаю, да. Дробовик не входил в состав скелета Mecanim. Вроде так. Оружие отдельный объект. Цепляем за правую руку. Направляем на цель. Цепляем левую руку за цевьё. Делаем переходы.
Re: Как привязывать руки к оружию?
Добавлено: 16 сен 2022, 20:27
Zimaell
NOVA писал(а):Ну вообще не помню, я такими методами и не пользовался 5 лет назад. Оружие входит в состав Меканим? У меня вроде было отдельным объектом. Оси пивота соответствуют? Где модели вообще делались. Пивот. Центр тяжести ствола должен находится именно в центре ладони правой руки. Вектор длины ствола должен быть направлен на курсор. Левая рука на цевье. Проверьте все эти вещи. Кажется вспоминаю, да. Дробовик не входил в состав скелета Mecanim. Вроде так. Оружие отдельный объект. Цепляем за правую руку. Направляем на цель. Цепляем левую руку за цевьё.
да оружие отдельные объект, да и всё вроде как вы описали, то вот "направляем на цель" вот тут проблемка, пивот по уроку у меня в плече правом, ну то такое, главное чтобы "куда" целился, вот тут я и не пойму этого вектора. Я так понимаю линия должна проходить от
и у меня начальная точка на левой руке а вот конечная точка куда-то в непонятном направлении вверх улетает, вот и не пойму почему не в сторону курсора...
Re: Как привязывать руки к оружию?
Добавлено: 16 сен 2022, 20:34
Zimaell
или как раз в том и проблема что если луч в сторону курсора не смотрит то и персонаж... только чего не смотрит в него, ведь заданы два вектора - левая рука и курсор, позиции через дебаг проверил и всё правильно, не пойму...
всё как и задумано, из центра луч всегда до курсора... а с прицелом что не так не пойму...
Re: Как привязывать руки к оружию?
Добавлено: 16 сен 2022, 20:46
NOVA
Я думаю, чот Вы там накосячили. Отцепите ствол и просто направьте на цель из камеры. И кстати про камеру не забывайте. Она тоже должна туда смотреть. Прям параллельно стволу. Работайте сами. Я просто на мысли навожу. В код даже не вчитывался. Отцепитесь от меканим сначала, проверьте. Как бы если объект нормально наводится, если он не дочка объекта, то и дочкой объекта он будет нормально наводится. Там останется только левую руку прицепить. Где-то косяк в коде. А с утра в субботу косяки в коде находятся в 4 раза быстрее чем в пятницу вечером. Тут ещё это. родительские объекты любят отдавать свои координаты вращения дочерним. Поэтому никаких парент. Только трансформпозишн и лукат.
Re: Как привязывать руки к оружию?
Добавлено: 16 сен 2022, 21:05
Zimaell
NOVA писал(а):Я думаю, чот Вы там накосячили. Отцепите ствол и просто направьте на цель из камеры. И кстати про камеру не забывайте. Она тоже должна туда смотреть. Прям параллельно стволу. Работайте сами. Я просто на мысли навожу. В код даже не вчитывался. Отцепитесь от меканим сначала, проверьте. Как бы если объект нормально наводится, если он не дочка объекта, то и дочкой объекта он будет нормально наводится. Там останется только левую руку прицепить. Где-то косяк в коде. А с утра в субботу косяки в коде находятся в 4 раза быстрее чем в пятницу вечером. Тут ещё это. родительские объекты любят отдавать свои координаты вращения дочерним. Поэтому никаких парент. Только трансформпозишн и лукат.
конечно где-то накосячил, иначе работало бы как хотелось бы... на счёт камеры - у меня нет привязки к камере так как TopDown, то есть камера статически смотрит сверху. отдельно пушка смотрит на курсор, а когда прицеплена к персонажу то вот такое... что ж буду искать методом тыка...
Re: Как привязывать руки к оружию?
Добавлено: 16 сен 2022, 21:42
Alkos26Rus
Zimaell писал(а):ради принципа провёл следующий тест
Vector3 dir = Target.position- WeaponAim.position;
Debug.DrawRay(WeaponAim.position, dir);
хм, луч смотрит туда куда нужно, а именно из левой руки и в цель, но сам персонаж и автомат смотрит в другую сторону, может не туда я креплю, никак не могу понять как оно должно работать... какая точка должна быть направляющей? левая рука? Или что?
Re: Как привязывать руки к оружию?
Добавлено: 17 сен 2022, 16:21
Saltant
Оружие должно быть в контейнере (отдельный геймобжект), луч должен стрелять из ствола оружия соответственно.