у меня получилось, но мне не нравится как это работает, есть идеи как это реализовать?
Использовал вращение и мотор шарниров
Мне кажется стоит с настройками джоинтов поиграть, плюс как ты вращение задаёшь?
Через rigidbody.rotation
класс
Уточню, механика в том, что левый и правый джойстики отвечают за разные крылья?
Не надо так, это только для кинематических rigidbody. Попробуй через Torque, задавать угловой момент, а не вращение напрямую. Забыл как метод называется
Да, причем в каждой клешне 2 кости и один Джой вращает 2 сустава по отдельности
Или даже напрямую к джоинтам обращаться. Хз, надо доки смотреть
Угловой момент я мотором пробовал подруливать, но коряво выходит, поищу, спасибо
а в чем вопрос-то? А то ты как будто просто хвастаешься ^_^
Работает еле еле, точности не хватает, реализовал с помощью вращения на угол и мотор в помощь чтоб поднимать тело. Вопрос: какие есть способы ещё?
а задачу можешь описать, что должно в результате получиться?
У Configurable Joint есть поле Target Rotation. https://docs.unity3d.com/550/Documentation/Manual/class-ConfigurableJoint.html
Это в 2д будет работать?
А, точняк
Задача: есть 2 контроллера выдают значение от -1 до 1 по двум осям. Есть 2 конечности вращающиеся точно по значению контроллера - это работает. Не работает: суставы выходят из точек крепления когда конечность упирается в коллайдер, частично удалось решить с помощью мотора, но это работает не корректно то почти не помогает то подбрасывает тело в воздух, просто мотор работает на ускорении и не даёт моментального эффекта. Пробовал скриптом двигать тело по вектору смещения сустава, совсем плохо было) как заставить физику поднимать тело от пола? Так думаю вопрос корректнее будет звучать)
а что мешает расчитывать точку опоры через плечо сустава и выкинуть нафиг физику?
Ок, попробую рассчитать , выкинуть суставы и менять коллайдер по форме персонажа, должно сработать.
я бы попробовал через каст с двух точек, либо через коллайдер на конце клешни получать точку пересечения с пов-тью, а потом одтягивать к этой точке всё. Мб даже на икашке получится сделать, но не уверен. По-хардкору если брать - то в принципе ничего не мешает получить точку пересечения с пов-тью удобным способом (рейкаст, коллайдер), посчитать через угол поворота возвышение крепления клешни к телу для обеих сторон и расположить себя согласно вычисленным позициям. С дивана выглядит так, что будет работать визуально корректно всегда. Но может быть небольшой пролаг по положению клешней на коллайдере. Правда вопрос с вертикальной пов-тью возникнет, наверное. Но, возможно это получится визуально даже логично, что краба перекосоёбит одной клешнёй наверх и он полезет на стену
Похоже без хардкора ни как🤟, физика сама не справляется) придется высчитывать и задавать положение и перемещение вручную)
ну то как ты описал ты некорректно физику используешь. Твоя система должна быть основана на инверсной кинематике, т.е. позиция конечной точки должна влиять на начальную (точку крепления) Но это сложно будет контроллировать и впихнуть в рамки (краб будет мочь перекувыркиваться, вряд ли это нужно). Без кинематики этот план обречён на провал :)
Пробовал использовать IK из коробки совсем не помогло, это скорее для упрощения создания анимации
ну сама по себе икашка не для того немного. Я скорее про принцип, а не про инструмент юнитей
Кстати были мысли вращение передавать в обе стороны и на конечность и на все части по цепочке, но пока не придумал как это сделать корректно
надо решать задачу по теоретической механике для этого :) Реакции опоры с двумя шарнирными соединениями в местах крепления типа. Не уверен, что это необходимо, варик с независимыми опорами, реагирующими на положение клешни выглядит попроще и удовлетворительно (с дивана, опять же, мб я что-то не учитываю)
Придумал, сделаю слайдер шарнир от тела до точки опоры, получится эдакий домкрат)
не очень понял идею, но славно, что появились какие-то мысли. Физика в чистогане не выглядит как решение проблемы. К тому же слабопредсказуема на самом деле
Обсуждают сегодня