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

Анимирование в Maya или физика в Unity

СообщениеДобавлено: 09 дек 2015, 11:28
pesiik
Моделирую в Maya. Мне нужно создать реалистичное поведение упругого элемента между браншей. Упругий элемент состоит из двух мешей. Он, собственно, должен изгибаться когда ручки смыкаются. Как это организовать? Анимация обычная или, быть может, можно намутить физику в движке? И если приведите ссылочку подробно описывающую процесс.
P.S: таких инструментов много, может имеет смысл именно физику сделать?
Изображение

Re: Анимирование в Maya или физика в Unity

СообщениеДобавлено: 09 дек 2015, 13:59
Paul Siberdt
Физика - довольно неконтролируемая штука, в отличие от анимации... и в отличие от функционала реального инструмента. :)
Все, что можно сделать просто - лучше делать просто. Вместо кучи рассчётов, коллизий, констрейнов, дампингов и прочего, у вас будет один ползунок-контроллер состояния анимации. Думаю, искать альтенративу нет смысла.

Re: Анимирование в Maya или физика в Unity

СообщениеДобавлено: 09 дек 2015, 14:12
pesiik
Paul Siberdt писал(а):Физика - довольно неконтролируемая штука, в отличие от анимации... и в отличие от функционала реального инструмента. :)
Все, что можно сделать просто - лучше делать просто. Вместо кучи рассчётов, коллизий, констрейнов, дампингов и прочего, у вас будет один ползунок-контроллер состояния анимации. Думаю, искать альтенративу нет смысла.

Хорошо, тогда немного не по теме: можно ли пример анимирования похожего объекта? Это soft boby? В Maya

Re: Анимирование в Maya или физика в Unity

СообщениеДобавлено: 09 дек 2015, 15:18
waruiyume
По 2 кости на каждую сторону.

Re: Анимирование в Maya или физика в Unity

СообщениеДобавлено: 09 дек 2015, 16:51
Paul Siberdt
Зависит от роли иснтрумента в вашем приложении, но всяко посмотрите на крайние положения. Возможно, достаточно будет одной кости на пружину... или пары-тройки, если хотите визуализировать изгиб. При желании и необходимости, можно собрать IK-цепочку из нужного количества костей, дабы пружины гнулись ну-вааще-зашибато. :).

Re: Анимирование в Maya или физика в Unity

СообщениеДобавлено: 09 дек 2015, 16:52
pesiik
waruiyume писал(а):По 2 кости на каждую сторону.

Очень тяжело обрисовывать веса. Нужно равномерно очень. Либо инверсная кинематика. Есть ли какие нить решения?

Re: Анимирование в Maya или физика в Unity

СообщениеДобавлено: 09 дек 2015, 16:55
pesiik
Paul Siberdt писал(а):Зависит от роли иснтрумента в вашем приложении, но всяко посмотрите на крайние положения. Возможно, достаточно будет одной кости на пружину... или пары-тройки, если хотите визуализировать изгиб. При желании и необходимости, можно собрать IK-цепочку из нужного количества костей, дабы пружины гнулись ну-вааще-зашибато. :).

что за IK-цепочка? и учитывая что это два меша, нужно ли создавать две отдельные группы joint-ов?

Re: Анимирование в Maya или физика в Unity

СообщениеДобавлено: 09 дек 2015, 17:06
Paul Siberdt
А зачем вам два меша? Сливайте в один.

IK-цепочка это последовательность костей, связанных в IK-конструкцию. Можно, я говорю про майку, создать двух-трехступенчатую цепочку на стандартном IK-солвере или придумать что-нить подлиннее и заюзать IK-сплайн. Но, по мне так IK здесь не особо нужна, поскольку движения пружины просты и однообразны. Более, чем достаточно создать цепочку косточек и прописать зависимости их поворотов от состояния инструмента (поворота рукоятки). Тогда анимируя рукоятку, вы отыграете поведение обеих пружин.

Если не хотите анимировать - бросайте заскиненный меш в юньку и скриптом прописывайте все эти зависимости. Возможно, я б сам, в конце концов, так и поступил.

Re: Анимирование в Maya или физика в Unity

СообщениеДобавлено: 09 дек 2015, 23:59
pesiik
Paul Siberdt писал(а): Можно, я говорю про майку, создать двух-трехступенчатую цепочку на стандартном IK-солвере или придумать что-нить подлиннее и заюзать IK-сплайн. Но, по мне так IK здесь не особо нужна, поскольку движения пружины просты и однообразны. Более, чем достаточно создать цепочку косточек и прописать зависимости их поворотов от состояния инструмента (поворота рукоятки). Тогда анимируя рукоятку, вы отыграете поведение обеих пружин.

А с весами тогда не придется мучиться? Равномерно их нарисовать у меня не получается. Я просто нубоват в этом деле. Может я ваще фигню несу и веса там ни к чему?

Re: Анимирование в Maya или физика в Unity

СообщениеДобавлено: 10 дек 2015, 01:08
Paul Siberdt
Попробуйте сначала, на самом деле- проблем нет никаких.
Можно даже не париться и создать количество костей равное числу поперечных сечений пружины. Тогда можно обойтись по одному весу на кость и ни о чем не думать.
А можно процедурно создать пружину или просто ее гнуть уже в Юньке и вообще обойтись без анимаций и скинед мешей... но, имхо, это уже некоторый гемор.

Re: Анимирование в Maya или физика в Unity

СообщениеДобавлено: 10 дек 2015, 09:46
pesiik
Paul Siberdt писал(а): и вообще обойтись без анимаций и скинед мешей... но, имхо, это уже некоторый гемор.

вы имеете ввиду по изменению scale меша создать видимость его динамики? мне все таки нравится идея с ik. я погуглил, плюс вы говорите, что она будет цивильней смотреться

Re: Анимирование в Maya или физика в Unity

СообщениеДобавлено: 10 дек 2015, 11:14
pesiik
Paul Siberdt писал(а):Попробуйте сначала, на самом деле- проблем нет никаких.

Помогите пожалуйста) вот допустим я комбайню два этих меша и строю такую схему костей и ik, где красная линия - кости, желтая линия - цепь.
Изображение
Правильно? Если нет, обозначьте как сделали бы вы. Вот пустой скрин:
Изображение

Re: Анимирование в Maya или физика в Unity

СообщениеДобавлено: 10 дек 2015, 13:24
Paul Siberdt
pesiik писал(а):
Paul Siberdt писал(а): и вообще обойтись без анимаций и скинед мешей... но, имхо, это уже некоторый гемор.

вы имеете ввиду по изменению scale меша создать видимость его динамики? мне все таки нравится идея с ik. я погуглил, плюс вы говорите, что она будет цивильней смотреться

Нет, я имею в виду переcтраивать меш пружины, добавляя вертексам bend-эффект.

Цепь, что вы нарисовали, будет отыгрывать работу инструмента (сжатие-разжатие), но ничего не сотворит с пружиной в плане эффекта.

Я имел в виду такоую штуку.

И, вот, уже две мои штуки можно вешать на вашу, дабы концы IK-солверов пружин позиционировались автоматически.

Re: Анимирование в Maya или физика в Unity

СообщениеДобавлено: 10 дек 2015, 13:57
Paul Siberdt
Вот, поиграйтесь в апдейте с этой штукой:
Синтаксис:
Используется csharp
using UnityEngine;
public class MeshBender : MonoBehaviour
{
    public float coeff; // алхимический коэффициент, заменяет параметр радиуса кривизны
    public Vector3 angle; // алхимический коэффициент, задает представление об осевых поворотах
    public Vector3 center; // вроде как должен быть центр кручения в локальных координатах меша

    private Transform t;
    private Mesh m;
    private Vector3[] baseVertices; // здесь храним начальную вертексдату
    private Vector3[] resultVertices; // сюда считаем вертексдату кручения
   
    void Start()
    {
        t = transform;
        m = t.GetComponent<MeshFilter>().mesh;
        baseVertices = m.vertices;
        resultVertices = new Vector3[baseVertices.Length];
    }

    void Update () {

        for (int i = 0; i < baseVertices.Length; i++)
        {
            // угол закручивания веркекса под алхимическим коэффициентом
            Quaternion rotation = Quaternion.Euler(angle.x * coeff * i, angle.y * coeff * i, angle.z * coeff * i);
            // находим позицию закрученного вертекса
            resultVertices[i] = center + rotation*(baseVertices[i] - center);
        }
        m.vertices = resultVertices;
    }
}


Разберитесь со скриптом, думаю, его вполне можно приспособить под пружину.

Re: Анимирование в Maya или физика в Unity

СообщениеДобавлено: 10 дек 2015, 14:00
pesiik
Paul Siberdt писал(а):Я имел в виду такоую штуку.

в один меш их объединять не надо? со второй половиной тоже так же? а в середине нужно соединить кости первой части и второй?