HOUDINI. Концепция. Часть 3
24 / 10 / 2008
В третей части постараюсь рассказать про такие ключевые понятия в Гудини как ГРУППЫ и АТРИБУТЫ. Но для начала закрепим некоторые моменты из предыдущего урока.
ПУТИ.
Пути к операторам или параметрам (каналам) имеют синтаксис схожий с файловой системой UNIX.
Корень (то есть наивысший уровень) это /. Соответственно любой абсолютный путь (absolute path) к оператору или каналу будет начинаться с /.
Например: /obj/geo1/sphere1 — путь к SOP-оператору sphere1; /obj/geo1/sphere1/radx — путь к параметру (каналу) Радиус по оси X.
Названия каналов отличаются от их подписей в панели параметров. Посмотреть реальные названия можно в тултипе, либо в HELP CARD для данного оператора (значек вопроса в панели параметров справа сверху).
Кроме абсолютных путей существуют относительные (relative path), то есть путь относительно текущего положения. Втаком случае путь к текущему контексту обозначается как "..", а к текущему оператору как "."
../sphere1
./radx
CВЯЗЫВАНИЕ ПАРАМЕТРОВ (КАНАЛОВ).
Для связывания каналов в Гудини существует несколько функций, которые создаются автоматом при перетягивании мышкой одного параметра на другой. Вот самые "популярные" из них:
ch(channel_path) — возвращает значение параметра.
chs(channel_path) — возвращает значение строкового параметра.
chf(channel_path, frame) — возвращает значение параметра в указанном кадре.
cht(channel_path, time) — возвращает значение параметра в указанное время (сек).
...
При перетягивании появляется диалог, в котором можно выбрать как именно будет происходить связывание.
Text — просто копирование текста из одного пораметра в другой;
Current Channel Value — копирование текущего значения параметра в другой;
Channel Reference — связывание выражением одного канала с другим, с использованием абсолютного пути;
Relative Channel Reference — связывание выражением одного канала с другим, с использованием относительного пути;
Cancel — отмена.
Рекомендую поэкспериментировать, то есть по-связывать абсолютно (Channel Reference) и относительно (Relative Channel Reference) параметры (каналы) внутри одного оператора и между разными операторами. А также между операторами в разных контекстах. И не забывайте обращать внимание на то, какое выражение создается при этом.
ГРУППЫ.
Группы предназначены для процедурного отбора компонентов.
В данном уроке создается собственный модуль (SOP-оператор) gear (шестеренка), в котором с помощью групп реализована возможность управлять количеством зубцов шестеренки и другими характеристиками.
А также пример использовании модуля в простой анимации.
Сценку скачиваем здесь SOP_example3_gear.zip . Файл gear.otl кладем в папку ../User/My Documents/houdini9.5/otls/
А вот, собственно, видеоурок в 2-х частях: SOP_example3_gear_p1.mov и SOP_example3_gear_p2.mov
В уроке охвачена лишь малая часть возможностей GroupSOP. С помощью этого оператора можно не только создавать группы, но и удалять их :-) , а также комбинировать несколько групп, преобразовывать тип групп из Point Group в Primitive Group и наоборот.
Для закрепления знаний по ГРУППАМ рекомендую поэкспериментировать с GroupSOP, выставляя различные критерии отбора компонентов. А также почитать HELP CARD по этому SOP-у.
ГЕОМЕТРИЯ.
В гудини различают следующие компоненты геометрии:
Points — поинты (вертексы по аналогии с Майа);
Edges — ребра, тут все понятно;
Primitives — примитивы (фейсы/полики по аналогии с Майа);
Vertex — вот тут засада. Аналогии этого нет по-моему нигде. Вертексы — это вершины примитивов. То есть поинты это как бы контейнеры для вертексов. То есть в одном поинте может быть несколько вертексов, если в нем соединяется несколько примитивов. Пока рекомендую забыть про вертексы на время, так как понадобятся они нам еще не скоро.
АТРИБУТЫ.
Атрибут — это по сути переменная, значение которой можно задавать/изменять для каждого компонента индивидуально. То есть различают per-point, per-primitive и per-vertex атрибуты.
Примером атрибутов в Гудини могут служить uv-координаты (пер-поинт атрибут), поинт нормали N (пер-поинт атрибут ), позиция поинта в пространстве P (пер-поинт атрибут), цвет поинта Cd (пер-поинт атрибут), цвет примитива Cd (пер-примитив атрибут). Это все стандартные атрибуты (но это не значит что они создаются сами по-умолчанию), кроме того можно создавать сколь угодно собственных атрибутов.
Аналогия атрибутов есть в Maya particles, то есть там тоже можно создавать атрибуты пер-патикл. Например скорость, позишен и т. д. Только в гудини атрибуты можно создавать для любого типа компонентов геометрии.
Просмотреть атрибуты можно в таблице под названием Spreadsheet, доступной в меню если тыкнуть правой клавишей на SOP-операторе.
Сверху справа перед выпадающим списком View находится кнопочка выбора типа атрибутов — то есть point, primitive или vertex.
Атрибуты нужны в случае если нам необходимо сохранять какую-то информацию, индивидуальную для каждого компонента. Как в случае с point position (P), point normals (N), uv или point color (Cd). И соответственно считывать ее.
Для работы с атрибутами в SOP-контексте имеется ряд операторов доступных по TAB в подменю Attribute. (На самом деле очень многие SOP-операторы так или иначе модифицируют или создают новые атрибуты)
Кстати много интересного можно посмотреть нажав средней клавишей на любом операторе. Появится окошко, в котором будет все: начная от того, сколько поликов и точек, групп и атрибутов — и заканчивая тем, сколько в памяти весит конкретная нода.
К сожалению, пока времени дописывать урок нет. Но учитывая важность этого понятия в гудини -- рекомендую посмотреть серию уроков:
http://vimeo.com/channels/54102#6803463
