Quest3D - Русскоязычное сообщество

Quest3D => Логика => Тема начата: mistud от 14 Февраля 2008, 01:39:57



Название: Маятниковое движение
Отправлено: mistud от 14 Февраля 2008, 01:39:57
Ребята, мне нужно сделать так, чтобы объект вращался на определенный угол в оба направления, т.е. делал циклично неполный оборот (типа маятника часов). Мучаюсь несколько часов, не могу справиться. Подскажите, какие каналы и как нужно связать.

Есть такой канал: Value Operator, и в нем есть выбор действий. Одно из них Loop Relative Value - так вот это почти то, что мне нужно: можно задать начальный и конечный углы поворота, но скорость задается только в одном направлении. Как сделать, чтобы скорость на заданных границах изменялась на противоположную?

Жду предложений.


Название: Re: Маятниковое движение
Отправлено: KBECT0MAH от 15 Февраля 2008, 03:47:07
у меня получился такой маятник  ;D



Название: Re: Маятниковое движение
Отправлено: mistud от 15 Февраля 2008, 14:49:23
Спасибо, КВЕСТОМАН. Я сам придумал схему, просто не смог ее сразу выложить. Схема прикреплена. Она слегка проще, чем твоя. В моей не нужны триггеры. Для переключения каналов я использую Expression Value. В нем цикл увеличения числа с нуля до двух. Пока Expression Value меньше единицы, вызывается нулевой канал Channel Switch, а потом, когда Expression Value переваливает за единицу, вызывается первый канал Channel Switch. Скоростью переключения между каналами можно управлять изменяя значение (которое на прикрепленной картинке 0.003). Ну а плавностью движения можно управлять, естественно, меняя значение Inertia, как и у тебя.

В любом случае, спасибо тебе за старания.

З.Ы. Просто мне нужно было поспать, чтобы мозг начал работать в нормальном режиме :)


Название: Re: Маятниковое движение
Отправлено: KBECT0MAH от 15 Февраля 2008, 15:05:35
 :D  если бы я знал какие переменные, что означают и как их можно применять,
то наверно тоже сделал схему попроще  ;) а пока я могу только складывать А и В  ::)

Расскажите мне, что делает OLD, каков его принцип действия?


Название: Re: Маятниковое движение
Отправлено: Gerion от 15 Февраля 2008, 15:23:52
OLD это текущее значение Expression.
например если написать i=i+1 то в данном случае это будет выглядить как OLD+1


Название: Re: Маятниковое движение
Отправлено: mistud от 15 Февраля 2008, 16:49:23
Сейчас объясню значение того, что у меня написано в Expression Value.

Оно выглядит так:
OLD<2?OLD+0.003:0

OLD - текущее значение (как уже успели заметить выше)
OLD<2 - это условие, которое мы задаем.
Если оно выполняется, то должна приводиться в действие та часть Expression Value, которая написана между знаком вопроса и двоеточием. Если же условие не выполняется, то приводится в действие часть Expression Value, написанная после двоеточия.

Итак, в нашем случае происходит следующее. Начальное значение Expression Value по умолчанию равно нулю. Следовательно выполняется наше условие OLD<2 и значение начинает увеличиваться с каждым кадром на величину 0.003. Как только значение становится равным 2 в силу вступает вторая часть выражения (написанная после двоеточия) и наше значение Expression Value обнуляется и цикл начинается заново.

Вот как-то так.


Название: Re: Маятниковое движение
Отправлено: KBECT0MAH от 15 Февраля 2008, 18:49:00
Спасибо за разъяснения  :)
Теперь буду не полько прибавлять но и использовать вопрос(?) и двоеточие(:)  :D