|   Регистрация (Registration)   Вход  



1 ! 2 ! 3 ! 4 ! 5 ! 6 ! 7 ! 8 ! 9

Xpresso goodies (Маленькие удобства)

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

Range Mapper (Преобразователь промежутков)

Начнем с нода Range Mapper. Это один из наиболее полезных и часто используемых нодов Xpresso. Его основное предназначение преобразовывать значения из одного промежутка в значения другого промежутка - отображать один на другой, как линейно так и с использованием кривой, задаваемой в приспособлении сплайн (spline gadget).
Воображение это описание не поражает, но возможности этого нода неограничены. От простого прообразования (проценты в градусы, радианы в длину, и т.д. ) до определенного убывания для функций.
Бросим короткий взгляд на его свойства:
  • Тип данных (Data Type): Только действительные числа либо вектора. Вектора особенно полезно использовать для плавного движения от одной позиции к другой или вращения.
  • Область определения/значений (Input/Output Range): Несколько общих областей доступно в качестве предопределенных параметров.
  • Ограничение Сверху/Снизу (Clamp Lower/Upper): если входные значения ниже или выше области определения (не входят в нее) выходное значение не выйдет за рамки заданной области значений. Например, вы определили область определения как промежуток 0 - 1, область значений как промежуток 0 - 100. С включенной опцией Clamp Upper при входном значении 1.5 вы получите на выходе 100, при выключенной - 150 при использовании линейной зависимости.
  • Модуль (Modulo): Если область определения дает результат превосходящий область значения - значения переходят в начало области значений. Пример. Используем те же промежутки, что и ранее. С включенной опцией Modulo значение 1.5 на входе даст 50 на выходе, точно также как и 2.5, -1.5.
  • Реверс (Reverse): Инвертирует область значений.
  • Использование сплайнов (Use Spline): Вместо линейно интерполяции используются сплайны для вычисления выходных значений. Сплайны можно использовать только внутри заданной области, если входное значение не входит в область определения и ограничение сверху/снизу и модуль выключены, выходное значение интеполируется линейно.
  • Разрешение сплайнов (Spline Resolution): Определяет точность вычисления значения сплайна. Чем больше значение тем медленнее вычисление.
Продемонстрируем простой, но очень полезный пример использования Range Mapper для автоматизации конструкции (сцена). Range Mapper используется для комбинации нескольких, частично не линейных, анимаций в одну простую с использованием параметра. Вместо анимации двух значений с различными кривыми, Вы анимируете только одно причем линейно (анимация).

Object List iterator (Итератор списка объектов)

Object List iterator действительно полезен когда требуется выполнить действие для нескольких объектов не обращая внимания на зависимости между ними. Object List iterator абсолютно не зависит от иерархии, объекты просто включаются в список. Как Вы можете видеть в основной части конструкции содержатся только 2 нода, Object List и Object нод, ссылающийся на объекты. Все остальные ноды нужны для вычисления значений при вращении в нашем примере.
В примере все объекты в списке Object List вращаются вокруг оси y ( вверху). сцена анимация

Ray Collision (Коллизия лучей)

Нод Ray Collision работает почти как rytracer. Луч направляется из одной точки в другую и отталкивается от поверхности, которая находится между двумя этими точками. Мы используем этот нод для создания маленького инструмента, который поможет располагать объекты на поверностях.
Конечно его можно использовать и в анимации.
Идея состоит в использовании 2 Null объектов в качестве точек между которыми направлен луч, для расположения объекта в точке где луч отталкивается от другого объекта.
Основная часть конструкции состоит из вещей, которые мы уже знаем. Параметры представляются как свойства Xpresso tag (Info) и о преобразовании выравнивания (Alignment) во вращение (Rotation) нам известно из примера о координатах . Сцена
  • Коллизия (Collision): Булевское значение, которое становится ИСТИНОЙ если луч сталкивается с полигоном, принадлежащим заданному объекту.
  • Позиция удара (Hit Position): Положение точки в которой луч пересекает объект.
  • поверхность нормали (Face Normal): Нормаль полигона в точке удара.

Мы имеем здесь несколько параметров, обратимся к справочнику, что они делают и как улучшить конструкцию используя один из них или несколько вместе.
Ray Collision всегда дает нам первый полигон столкновения с объектом, который пересекается и работает только с полигональными объектами.
Один из способов улучшить конструкцию это использование Object List iterator для проверки нескольких объектов на столкновение. Помните что если есть несколько объектов сталкивающихся с лучом только последний проверенный для расположения объекта.
Другое улучшение состоит в том, чтобы расположить объект на определенном расстоянии под поверхностью коллизии перемещая объект вдоль нормали поверхности. Это реализуется постым умножением нормали на заданную длину и сложением с заданной позицией.Сцена Анимация

1 ! 2 ! 3 ! 4 ! 5 ! 6 ! 7 ! 8 ! 9


  К списку уроков

 новости   plugin db   а-чем-а-как   форум   ссылки   о проекте  
Вся ответственность за содержание материалов, опубликованных на сайте, лежит на их авторах.
Использование материалов, опубликованных на сайте, разрешено только со ссылкой на источник.

Copyright © 2003-2011 C!NEMAXiMUS