Страница 1 из 2

Лапка жучка-паучка

СообщениеДобавлено: 18 фев 2018, 01:01
Maslinka27
Есть лапа жука и ее нужно вертеть как у жука, то бишь: как сделать центр вращения у основания лапки, и как сделать само вращение - вперед до максимального улга, назад до максимального? Желательно пример, потому что я понятия не имею как это сделать. 2Д вид сверху

Re: Лапка жучка-паучка

СообщениеДобавлено: 18 фев 2018, 19:38
Maslinka27
Я нашел решение, но не получается реализовать. по нажатию кнопки должно постоянно вращаться, но на деле он всего лишь задает угол. То есть у лапка мгновенно меняет направление и стоит на месте.
[syntax=]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lapka : MonoBehaviour
{
public float angularV;
public float angularMax;
public float angularMin;

private bool InputW;
private bool InputS;
private bool InputA;
private bool InputD;

void Update()
{
InputW = Input.GetKey(KeyCode.W);
InputS = Input.GetKey(KeyCode.S);
InputA = Input.GetKey(KeyCode.A);
InputD = Input.GetKey(KeyCode.D);
}

public void FixedUpdate()
{
if(inputW == true)
transform.rotation = Quaternion.AngleAxis(angularV, Vector3.forward);
}
}
[/syntax]

Подскажите на что поменять inputW или как дополнить, чтобы считывался каждый момент ее нажатия, и пока она нажата, лапка вращается.

Re: Лапка жучка-паучка

СообщениеДобавлено: 18 фев 2018, 19:44
samana
Сделайте это анимацией (animator или animation). Посмотрите уроки по анимации и всё получится.

Re: Лапка жучка-паучка

СообщениеДобавлено: 18 фев 2018, 19:53
Maslinka27
samana писал(а):Сделайте это анимацией (animator или animation). Посмотрите уроки по анимации и всё получится.


Это будет проще? Я бы хотел сделать все именно скриптами, потому прошу помощи. А анимацией потом можно, не всему же сразу учиться.

Re: Лапка жучка-паучка

СообщениеДобавлено: 19 фев 2018, 12:11
immeasurability
инверсионная кинематика (как вариант FinalIK)

Re: Лапка жучка-паучка

СообщениеДобавлено: 19 фев 2018, 14:09
Woolf
Есть лапа жука и ее нужно вертеть как у жука, то бишь: как сделать центр вращения у основания лапки, и как сделать само вращение - вперед до максимального улга, назад до максимального? Желательно пример, потому что я понятия не имею как это сделать. 2Д вид сверху



Re: Лапка жучка-паучка

СообщениеДобавлено: 20 фев 2018, 04:14
1max1
Тоже интересует данный вопрос, я набросал пару скриптов и вот что получилось, правда движения не очень правдоподобны из-за синхронизации двух сторон, да и вообще выглядит как робот :D

Re: Лапка жучка-паучка

СообщениеДобавлено: 20 фев 2018, 16:16
immeasurability

Re: Лапка жучка-паучка

СообщениеДобавлено: 20 фев 2018, 20:09
NOVA
Интересно сколько приносит ассет автору? Возьни кажется много. А какой годовой спрос на паучков? Сколько же этих всяких ассетов разного калибра.

Maslinka27 писал(а):Есть лапа жука и ее нужно вертеть как у жука, то бишь: как сделать центр вращения у основания лапки, и как сделать само вращение - вперед до максимального улга, назад до максимального? Желательно пример, потому что я понятия не имею как это сделать. 2Д вид сверху

Автор. Ik - это математика. По вашим запросам ещё и ограничение по углу вращения. Если Вы ходите кодом, ориентируйтесь на уравнения нескольких векторов, пересекающихся в одной точке и ограничивайте по углу же. Для 2d всё много проще. Формул в интернете навалом. Этот скрипт непростой и никто его просто так Вам не напишет. Судя по Вашему коду, Вы вообще не понимаете суть инверсной кинематики.
Прямая кинематика, это когда вы вращаете объект, а все дочерние вращаются за ним. Инверсная кинематика, это когда Вы вращаете объект, а конечные объекты суставов ног (стопы ног) остаются на месте и все суставы имеют ограниченную длину и двигаются соответственно. То есть стопы ног есть дочерние объекты у земли. Далее надо делать имитацию передвижения. Двигать стопы в определённом направлении в определённой последовательности.

Re: Лапка жучка-паучка

СообщениеДобавлено: 20 фев 2018, 20:45
Maslinka27
Nova, я половину слов не понял, но все что я хочу сделать - 6 вращающихся палочек, исходящих из тела паука. я не знаю что с вложенями тут, так что просто представьте квадрат и 6 коротких линий из него. вот они должны двигаться, изображая движение паука. А инверсная кинематика уже звучит страшно

Re: Лапка жучка-паучка

СообщениеДобавлено: 20 фев 2018, 20:56
NOVA
Maslinka27 писал(а):Nova, я половину слов не понял, но все что я хочу сделать - 6 вращающихся палочек, исходящих из тела паука. я не знаю что с вложенями тут, так что просто представьте квадрат и 6 коротких линий из него. вот они должны двигаться, изображая движение паука. А инверсная кинематика уже звучит страшно

ААА. Сустав из одной прямой? Но это не важно. Вы хотите поворачивая объект заставить палочки двигаться за ним? Вам надо задать положения лапок при повороте на определённый угол. Лучше всего это вручную делать в программах. Кодом замучаетесь. Причём паучок не прыгает же. Он поочереди лапки переставляет.
Если кодом то радиус до каждой лапки и кратчайшее движение по окружности (надо возвращать в первоначальную позу, пусть даже с заносом), передвижения с замедлением, куча уравнений для поочерёдной перестановки. Это жесть вобщем. Если погуглить на английском, может и есть какой скрипт. Я знаю как это за 1-2 два вечера сделать в 3ds max только. И то на определённые углы.
Вобщем Вам придётся мнооого поработать. Для начала хотя бы схемы передвижений нарисовать. Вы хоть сами то представляете как это должно работать? Как должны скакнуть например лапки при повороте тела на 1 градус. Да никак. Лапы должны остаться на месте. Лучше переставлять лапки при повороте на 45 градусов. В такую позу, при которой лапки будут комфортно стоять. Чтобы при следующем повороте опять на 45 градусов.... Ну долго объяснять в общем. Вам надо самому это понять. Даже с двуногим не всё так просто. Надо ноги ставить в позиции а тело отдельно поворачивать для чёткости отстрела или осмотра. Тогда всё будет выглядеть нормально.

Re: Лапка жучка-паучка

СообщениеДобавлено: 20 фев 2018, 21:20
Maslinka27
... Где там мои уроки по анимации?
Не думал, что настолько сложно все будет. В голове у меня есть представление как это выглядит, но оно даже не подразумевало таких сложностей. Сделаю все анимацией. А если не получится, придется опять чертовы колеса делать. Или принимать :(
Вижу, Вы шарите в юнити. Может подскажете, как сделать это viewtopic.php?f=105&t=46551 ?

Re: Лапка жучка-паучка

СообщениеДобавлено: 20 фев 2018, 21:30
NOVA
Maslinka27 писал(а):... Где там мои уроки по анимации?
Не думал, что настолько сложно все будет. В голове у меня есть представление как это выглядит, но оно даже не подразумевало таких сложностей. Сделаю все анимацией. А если не получится, придется опять чертовы колеса делать. Или принимать :(
Вижу, Вы шарите в юнити. Может подскажете, как сделать это viewtopic.php?f=105&t=46551 ?

Не,не с ригидбади сто лет не работал. По поводу вращения вокруг оси и ног.
Даже в GTA 5 - это криво реализовано.
Скрытый текст:

Я как то раньше повороты поточнее делал. Ногами по 90 градусов. В конце видео в стойке. Если угол ствола превышает, то там, надо ну вы поняли. Ноги шевелятся, но стрелять можно независимо.
Скрытый текст:

Но это только через меканим. И то повозиться надо.

Re: Лапка жучка-паучка

СообщениеДобавлено: 20 фев 2018, 21:37
Maslinka27
А с помощь Hinge Joint 2D можно вращать пушку? Высчитывать угол там, и прочее, а потом моторчиком в Джоинте доворачивать, мм?

Re: Лапка жучка-паучка

СообщениеДобавлено: 20 фев 2018, 21:44
NOVA
Maslinka27 писал(а):А с помощь Hinge Joint 2D можно вращать пушку? Высчитывать угол там, и прочее, а потом моторчиком в Джоинте доворачивать, мм?

Не связывался с hinge joint. Можно вектором определять положение тела. Положение пушки отдельно.
Для этого есть куча прекрасных вещей в C#. Vector3.Angle, Vector3.Dot, Положение точки в системе координат пушки тела и камеры. Короче всё можно. Надо пробовать и задавать правильные вопросы. Но вы лучше с анимации ног начните в каком - нибудь редакторе. Лучше на 90 градусов поворот тела проанимировать вместе с ногами. Просто влево и вправо вокруг Y. А ствол отдельно на мышь реагировать заставить. И если поворот ствола превышает -45, 45 градусов, то вращать анимированное тело. Вот тогда будет реалистично. Если тела нет - неважно. Тело - это всего лишь материнский объект для ног. Оно может быть нулевого размера.