1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Стряхнуть частицы

Тема в разделе "Houdini", создана пользователем nanobes, 31 окт 2009.

Модераторы: виталий антоновас
  1. nanobes

    nanobes Активный участник

    С нами с:
    03.12.2005
    Сообщения:
    409
    Симпатии:
    0
    Баллы:
    15
    ну хоть первая конкретная тема будет, может не заглохнет ветка.
    пока думаю над этим: есть объект, на нём частицы (скажем банка пива - на ней капли (конденсат) - просто для примера). объект движется в пространстве категорически меняя направление и скорость. задача - периодически стряхивать с объекта частицы. крупные капли должны стряхиваться вперёд мелких. всё лучше чем мусолить чем гуди лучше :)))
     
  2. Слава Подчуфаров 40220

    Слава Подчуфаров 40220 Знаток

    С нами с:
    01.04.2007
    Сообщения:
    612
    Симпатии:
    1
    Баллы:
    30
    Разбираться будем вместе тк я не знаю. Знаю что если в POP создать ноду event, в event name дать ей название,в rule написать $SPEED>нужного числа, а в activation, например, ноды force написать popevent("название из event namе"), то сила будет действовать на частицу со скоростью больше нужного числа(это нам и надо). А как заставить двигаться частицы вместе с банкой я пока не знаю.
     
  3. Слава Подчуфаров 40220

    Слава Подчуфаров 40220 Знаток

    С нами с:
    01.04.2007
    Сообщения:
    612
    Симпатии:
    1
    Баллы:
    30
    Так, для этого есть нода creep. Но у меня пока не работает.
     
  4. Слава Подчуфаров 40220

    Слава Подчуфаров 40220 Знаток

    С нами с:
    01.04.2007
    Сообщения:
    612
    Симпатии:
    1
    Баллы:
    30
    Я все еще не забил ) Вот нашел тутор из книжки с похожим результатом http://www.awn.com/articles/tutorials/ithe-magic-houdinii-initial-velocity
    Значит надо сделать так что-бы частицы наследовали скорость не только во время рождения, а на протяжении всего существования. Тогда получится. Как это сделать - (не поверите) не знаю )
     
  5. Слава Подчуфаров 40220

    Слава Подчуфаров 40220 Знаток

    С нами с:
    01.04.2007
    Сообщения:
    612
    Симпатии:
    1
    Баллы:
    30
    Ага! Я таки мозг! После всего сделанного в уроке добавляем в POP нетворк ноду attribTransfer в строке SOP выбираем trail1, в строке points вибираем "v" (он только один там и есть),создаем ноду event,event name: speed; rule:$VX(в моем случае сферка двигается только по оси X)<2(нужная нам скорость),
    в attributeTransfer в activation пишем popevent("speed"). И они стряхиваются! Ну настроить красивости и зависимость от массы должно быть не сложно.
    P.S. Хух, чуть не родил пока понял. К томуже давно гудю не открывал( сейчас у меня приоритет - обучение 2д рисованию), но оно работает!
    Если недопонял - спрашивай, объясню :) Отпишись если получиццо. Знал бы как прикремить файл - прикрепил-бы, но аттачатся только картинки.
     
  6. stass3d

    stass3d Активный участник

    С нами с:
    12.01.2009
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    5
    Записал видео и опубликовал на сайте:

    http://houdini-howto.com/content/opadayushchie-kapli-urok-po-partiklam
     
  7. MpaKo6ec

    MpaKo6ec Активный участник

    С нами с:
    06.06.2008
    Сообщения:
    218
    Симпатии:
    0
    Баллы:
    13
    Большое спасибо за урок, но тут возникла проблема. дело в том что после переноса атрибута позишена с уровня сопа в патиклы, и последующего его использования в ноде Position POP, во время анимации патиклы собираются в несколько "кучек", т.е. он не остаются каждая на своем месте (на месте поинта полученного изначально скаттером), а смещаются. В результате к концу анимации остается скажем всего 4 видимых понита, в коодрдинатах которых и собраны все остальные. Если смотреть в details view на ноде AttributeTransfer POP, то то атрибут "pos" полностью соответствует атрибуту "P", а вот в следующей ноде Position POP он меняется и видно как постепенно "pos" для всех точек сводится к всего лишь нескольким разным координатам. Ситуацию меняет только повышение сабсемплинга на POPnet, но даже если поставить 10, это всеравно не избавит от проблемы на 100%.
    А в видео все работает, но мне пока не удалось понять что не так, т.к. по логике все тоже должно работать, но что-то видимо упустил, хотя не понимаю что там можно было упустить, вроде и так все просто :)

    Вот сценка - http://dl.dropbox.com/u/697415/drops.hipnc
     
  8. Koxby

    Koxby Пользователь сайта

    С нами с:
    14.02.2008
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    2
    Также было.. Очевидно на видео скорость анимации меньше, поэтому частицы и не теряются. Я trail-ом делал копию анимированного обьекта в котором был кастомный атрибут содержащий позицию основного(через attribcopy) . С trail-ового я и передавал позишен партиклам. (Иначе говоря частицы "знали" где в следующем кадре будут вершины меша)) Работает на любой скорости анимации и сабсемплинге=1
     
  9. MpaKo6ec

    MpaKo6ec Активный участник

    С нами с:
    06.06.2008
    Сообщения:
    218
    Симпатии:
    0
    Баллы:
    13
    Решение оказалось проще. В сорсе патиклов (POPNet/Source) надо просто активировать, атрибут ORIGIN который хранит id сорса партикла, в нашем случае номера точек скаттера. Потом остается повесить все туже ноду POSITION и там указать экспрешеном типа point("../../POINTS_OUT", $ORIGIN, "P", 0), индекс 1 и 2 для Y и Z соответственно. :)
     
  10. Василий Пономарев 63681

    Василий Пономарев 63681 Знаток

    С нами с:
    08.02.2008
    Сообщения:
    173
    Симпатии:
    1
    Баллы:
    38
    При подобном методе я столкнулся с проблемой, суть которой состоит в том, что велосити-то нулевой, меняется только позишн партиклов, грубо говоря движение "жестко" указано четко по позишну. В итоге даже простой коллижн или даже простые форсы не могут действия оказывать на партиклы, т.к. все их остальные атрибуты просто игнорятся, все ведомо тем самым позишном...
     
Модераторы: виталий антоновас

Поделиться этой страницей