Конверсия Instancer’а в геометрию


Type: Python Script (py)
Name: sag_instancerToGeometry
Version: 1.4
Released: 2012.05.05
NEW REWORKED VERSION IS CALLED ark_instToGeo AND AVAILABLE HERE

v1.4 - corrected GUI for older maya versions v1.3: - doesn't set visibility to off prior to the starting frame of conversion - doesn't pay attention to 'start from current frame' if custom range is defined v1.2: - reworked GUI - uses long names correctly (no problems with objects of the same name anymore) - doesn't freeze source objects' rotations or error if channels have keyframes - keeps input connections for instances also - works with different rotation orders of source objects and instancer itself - each baked object is inside it's own group which actually gets all keyframes - works with any linear units of the scene (switches to cm and back, actually) v1.1: - duplicates now maintain original input connections - only translate, rotate, scale and visibility are keyframed now

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

Вот наконец-то собрался и написал утилиту для решения этой задачи.

sag_instancerToGeometry Interface

Read the rest of this post »

Posted on November 14, 2009 at 20:37 by · Permalink · 59 Comments
In: FX · Tagged with: , , , , , , ,

Добавлена Галерея

В правом верхнем углу блога уже довольно давно располагается кнопочка на галерею моих последних работ, но вот только сейчас я довел последнюю до презентабельного состояния. Без лишних разглагольствований – приглашаю надавить на упомянутую кнопочку или проследовать по этой ссылке – Галерея 🙂

Posted on August 10, 2009 at 22:05 by · Permalink · Leave a comment
In: Misc

Initial значения партикловых атрибутов

Предположим, мы установили частицам initial state или попросту создали их с определенными значениями атрибутов кропотливо вымученным скриптом, а потом захотели изменить некоторые из этих значений… Допустим, спрайты дыма имеют разный начальный скейл и увеличиваются относительно него со временем, и мы хотим их сделать в два раза меньше… Или попросту изменить в несколько раз массу осколков разлетающегося объекта (которая, предположим, предварительно высчитана с учетом объема осколка), но не производя заново вычислений, сетапов и т.п.

Particles with inital mass for each shard

Particles with initial mass for each shard

Read the rest of this post »

Posted on August 9, 2009 at 22:02 by · Permalink · Leave a comment
In: FX · Tagged with: , , , , , ,

Новые старые статьи

Я закрываю свой старый сайт (теперь http://www.sigillarium.com/ ведет прямо в этот блог) и, в связи с этим, переношу сюда задним числом несколько старых статей, которые еще содержат ценную информацию (а так же для сохранения работоспособности линков на них с других ресурсов). За неоценимую помощь в технической стороне дела хочу поблагодарить Rastler, чей блог по фотографии можно посетить тут – Rastler Blog

Posted on July 10, 2009 at 5:08 by · Permalink · Leave a comment
In: Misc

Тайлинг процедурных текстур и Placement mapping

Небольшой трюк, вполне простой, но возможно не совсем очевидный. Для создания шероховатостей, детальной фактуры и прочей высокочастотности обычно используется какой-нить fractal или noise с большим числом repeat, что приводит к явному тайлингу:

Fractal with high repeat value reveals tiling

Fractal with high repeat value reveals tiling

Можно попытаться разбавить другими нойзами, но есть решение куда лучше…

Read the rest of this post »

Posted on July 5, 2009 at 3:15 by · Permalink · 12 Comments
In: Render · Tagged with: , , , , , , , , ,

Проверка Нахождения частицы внутри объема и Влияния поля

Довольно часто возникает задача – определить находится ли частица внутри объекта и в зависимости от этого что-то с ней сделать (обычно убить 🙂 )

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

Решение заключается в следующем – так как различные volume fields влияют на частицу, когда та попадает в их объем, если представить объект набором таких полей и проверять действует ли хоть одно из них на частицу, можно узнать внутри ли она объекта. Разумеется, для сложных форм результат будет неточным, но можно создать стопку полей, достаточно аккуратно их передающую. В любом случае, это будет сильно быстрее 🙂

Read the rest of this post »

miLabel для контроля mib_amb_occlusion

В шейдере mib_amb_occlusion имеются два уродливых, но полезных атрибута: id_inclexcl и id_nonself. Вкупе с кастомным атрибутом miLabel они позволяют определять какие именно объекты могут затенять, а какие нет, а так же определять затеняет ли объект сам себя. Ключевой для понимания момент – речь идет только о способности затенять, а не о способности принимать затенение.

Disabling self-occlusion with miLabel attribute

Disabling self-occlusion with miLabel attribute

Read the rest of this post »

Posted on June 6, 2009 at 23:24 by · Permalink · 2 Comments
In: Render · Tagged with: , , , , , , , ,

Равномерные трейлы частиц

Когда возникает задача получить партиклами какие-то гладкие линии, трейлы или струи, обычно надежды возлагаются на Blobby Surface или новый Output Mesh для nParticles. У обоих есть свои достоинства и недостатки, общий из которых – как добиться ровного трейла – при минимуме использованых частиц получить максимально гладкий результат.

Первым решением наверняка будет – генерить трейлы из основных частиц обычным emitter. Как раз при таком варианте трейлы будут получаться неравномерными – в зависимости от скорости движения основной частицы-генератора участки трейла будут состоять из разного количества частиц, где-то скучкованы, где-то значительные промежутки, для устранения которых придется увеличивать радиус blobby, что в свою очередь приведет к общему утолщению трейла, лишним вычислениям и т.п. Гораздо более эффективный способ, о котором и пойдет речь в данном посте – генерить частицы трейла партикловым экспрешеном в зависимости от расстояния, которое базовая частица-генератор проходит за фрейм, и располагать их равномерно между этими двумя позициями.

Read the rest of this post »

Posted on May 24, 2009 at 21:37 by · Permalink · 13 Comments
In: FX · Tagged with: , , , , , , , , ,

decomposeMatrix plugin

В стандартной поставке майи (как минимум начиная с 8.5), есть плагин с наверняка туманным для многих названием decomposeMatrix. Плагин добавляет довольно полезную ноду с одноименным названием, предназначенную для разложения стандартной 4×4 transform matrix на translation, rotation, scale и shear.

decomposeMatrix Interface

decomposeMatrix Interface

Read the rest of this post »

Posted on May 23, 2009 at 3:33 by · Permalink · 4 Comments
In: Rigging · Tagged with: , , , , , , ,

Совокупление mip_matteshadow и IBL

Недавно немало помучался с тем как же заставить mip_matteshadow шейдер отображать сквозь себя текстуру IBL. В примерах повсеместно используется mip_mirrorball и mip_cameramap, но чего делать с обычным latlong изображением – ничего не нашел. Хотя видел предложение воспользоваться mib_lookup_spherical, но по-моему синхронизировать этот шейдер с вращениями IBL – большое западло. Сейчас опишу наденное мною простое и полезное решение.

IBL and ground plane to catch shadows

IBL and ground plane to catch shadows

Read the rest of this post »