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

Crowd System(Particle Instance) HELP!

Тема в разделе "Maya", создана пользователем ghenci, 24 янв 2008.

Модераторы: Dark™, Skif
  1. ghenci

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

    С нами с:
    18.12.2006
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    7
    Привет всем! Делаю симуляцию толпы насекомых бредущих так сказать по пересеченной местности... Все вроде бы нормально, инсекты бегают, смотрят в нужную сторону, ножками перебирают, но... никак не могу заставить инстансы накренятся в зависимости от топологии местности проще говоря не получается связать наклон объекта(инстанса) с нормалью поверхности где в данный конкретный момент находится частица.

    в expression нахожу вектор нормали:

    float $normalF[] = `pointOnSurface -u (particleShape1.goalU) -v (particleShape1.goalV) -normalizedNormal nurbsPlane1`;

    vector $normal = << $normalF[0], $normalF[1], $normalF[2] >>;

    так же нахожу направление движения:

    vector $direction = particleShape1.velocity;


    это понятно... дальше ступор. Как описать расположение частиц в пространстве что б они учитывали не только направление движения но и нормали Nurbs поверхности???

    Если кто сталкивался и решил подобную проблему, большая просьба поделиться идеей решения... Ну очень надо!
    Заранее спасибо! :)
     
  2. Lakoske

    Lakoske Знаток

    С нами с:
    12.05.2005
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    21
    ну если ты заставил частицы двигаться по плоскости, то particleShape->Instancer->AimDirection=velocity
     
  3. ghenci

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

    С нами с:
    18.12.2006
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    7
    эт да понятно :) но тогда инстансы будут просто "смотреть" в сторону движения, но крена не будет... Те на пример, муравей бежит по какой то холмистой поверхности вдоль оси X. Если он бежит по центру холмика то все впорядке (он находится четко перпендикулярно поверхности и нормаль в точке 0,1,0) , но если он бежит по его краю или склону который направлен на пример по оси Z то видно что муравей не совсем "обтекает" поверхность. Часть его ног просто проваливаются, а часть висят в воздухе, хотя пивот его и привязан к "земле". Нормаль поверхности в этой точке направлена уже не строго по оси Y (0 , 1 , 0) а имеет уже другую ориентацию (те к примеру 0 , 0.7 , 0.3). Если выставить " particleShape->Instancer->AimDirection=velocity" то как раз такой наклон не учитывается что введет к не совсем корректному расположению инстанса в пространстве (нет нужного крена). Вот в этом и вопрос, как учесть КРОМЕ направления движения еще и и нормаль....

    (можно представить лодку плывущую по волнам... он же он же колеблется не только взад вперед (нос лодки вверх, нос - вниз) но и в сторонны:лево - вправо)...
     
Модераторы: Dark™, Skif

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