English

3из3

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) — возвращает значение параметра в указанное время (сек).

...

При перетягивании появляется диалог, в котором можно выбрать как именно будет происходить связывание.

paste_options

Text — просто копирование текста из одного пораметра в другой;

Current Channel Value — копирование текущего значения параметра в другой;

Channel Reference — связывание выражением одного канала с другим, с использованием абсолютного пути;

Relative Channel Reference — связывание выражением одного канала с другим, с использованием относительного пути;

Cancel — отмена.

Рекомендую поэкспериментировать, то есть по-связывать абсолютно (Channel Reference) и относительно (Relative Channel Reference) параметры (каналы) внутри одного оператора и между разными операторами. А также между операторами в разных контекстах. И не забывайте обращать внимание на то, какое выражение создается при этом.

 

ГРУППЫ.

Группы предназначены для процедурного отбора компонентов.

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

SOP_example4_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-операторе.

SOP_spreadsheet 

Сверху справа перед выпадающим списком View находится кнопочка выбора типа атрибутов — то есть point, primitive или vertex.

Атрибуты нужны в случае если нам необходимо сохранять какую-то информацию, индивидуальную для каждого компонента. Как в случае с point position (P), point normals (N), uv или point color (Cd). И соответственно считывать ее.

Для работы с атрибутами в SOP-контексте имеется ряд операторов доступных по TAB в подменю Attribute. (На самом деле очень многие SOP-операторы так или иначе модифицируют или создают новые атрибуты)

Кстати много интересного можно посмотреть нажав средней клавишей на любом операторе. Появится окошко, в котором будет все: начная от того, сколько поликов и точек, групп и атрибутов — и заканчивая тем, сколько в памяти весит конкретная нода.

node_info

К сожалению, пока времени дописывать урок нет. Но учитывая важность этого понятия в гудини -- рекомендую посмотреть серию уроков:

http://vimeo.com/channels/54102#6803463

http://vimeo.com/channels/54102#6803615

http://vimeo.com/channels/54102#6803939