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

GoalU, GoalV

Тема в разделе "Maya", создана пользователем Lemieux, 11 май 2012.

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

    Lemieux Знаток

    С нами с:
    08.06.2011
    Сообщения:
    810
    Симпатии:
    74
    Баллы:
    32
    Приветствую всех.
    Если использовать экспрешн вида particleShape1.goalU = rand (0,2); particleShape1.goalV = rand (0,8); , то целевая поверхность будеть покрываться хаотично частицами. Как решить задачу в которой частицы покрывали поверхность равномерно, например от низа до верха объекта?
     
  2. iNOD

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

    С нами с:
    10.11.2009
    Сообщения:
    631
    Симпатии:
    2
    Баллы:
    19
    Например так.

    Код:
    for ($i = 0; $i < 800; $i++)
    {
    float $a = $i/100
    particleShape1.goalU = $a; 
    particleShape1.goalV = $a;
    }
    
     
  3. Владимир Забелин

    Владимир Забелин Активный участник

    С нами с:
    19.04.2012
    Сообщения:
    400
    Симпатии:
    12
    Баллы:
    17
    этот код написан с ошибками.
     
  4. Lemieux

    Lemieux Знаток

    С нами с:
    08.06.2011
    Сообщения:
    810
    Симпатии:
    74
    Баллы:
    32
    Почему-то частицы скапливаются в верхней части цилиндра. У цилиндра Min Max Range U = 0 2; Min Max Range V = 0 8 если это поможет.
     

    Вложения:

    • 2718012.jpg
      2718012.jpg
      Размер файла:
      350,6 КБ
      Просмотров:
      64
  5. iNOD

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

    С нами с:
    10.11.2009
    Сообщения:
    631
    Симпатии:
    2
    Баллы:
    19
    Попробуй так

    Код:
    for ($i = 0; $i < 200; $i++)
    {
    float $a = $i*0.01;
    float $b = $i*0.04;
    particleShape1.goalU = $a;
    particleShape1.goalV = $b;
    }
    
    Владимир Забелин и в каком месте ошибка?) Я как пример написал.
     
  6. iNOD

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

    С нами с:
    10.11.2009
    Сообщения:
    631
    Симпатии:
    2
    Баллы:
    19
    Да, еще можно так.

    Код:
    int $crttm = `currentTime -q`;
    if ( $crttm != 0)
    {
    float $a = $crttm*0.01;
    float $b = $crttm*0.04;
    particleShape1.goalU = $a;
    particleShape1.goalV = $b; 
    } 
    
     
  7. Lemieux

    Lemieux Знаток

    С нами с:
    08.06.2011
    Сообщения:
    810
    Симпатии:
    74
    Баллы:
    32
    во 2 примере частицы прилепляются в одну координату (8,8), во втором прилепляются по спирали от (0,0) до (2,8), в 200 кадре опять скапливаться наверху.
     
  8. iNOD

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

    С нами с:
    10.11.2009
    Сообщения:
    631
    Симпатии:
    2
    Баллы:
    19
    На сколько кадров тебе нужна анимация? Если например на 200 то ты считаешь на калькуляторе 8/(кол кадров) и подставляешь его в формулу.

    Код:
    int $crttm = `currentTime -q`;
    if ( $crttm < (кол кадров))
    {
    for ($i = 0; $i < 200; $i++) 
    {
    float $b = $crttm*(8/(кол кадров));
    particleShape1.goalV = $b;
    float $a = $i*0.01;
    particleShape1.goalU = $a;
    }
    } 
    
     
  9. Lemieux

    Lemieux Знаток

    С нами с:
    08.06.2011
    Сообщения:
    810
    Симпатии:
    74
    Баллы:
    32
    Мне желательно не по кадрам, а с помощью particleId. Например, 1 частица летит в координату 0,0; 2 частица летит в координату 0,0.01 (шаг зависит от кол-ва частиц, которое будет в сцене и от диапазона UV координат) и так далее. Извините если непонятно объясняю :))
     
  10. iNOD

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

    С нами с:
    10.11.2009
    Сообщения:
    631
    Симпатии:
    2
    Баллы:
    19
    Скинь сюда экспрешен который рандомно раскидывает по поверхности, я посмотрю и изменю, просто сейчас не могу искать инфу про партиклы, ибо занят.
     
  11. Lemieux

    Lemieux Знаток

    С нами с:
    08.06.2011
    Сообщения:
    810
    Симпатии:
    74
    Баллы:
    32
    Эти 2 строчки как раз и раскидывают рандомно частицы по поверхности.
    particleShape1.goalU = rand (0,2);
    particleShape1.goalV = rand (0,8);
     
  12. iNOD

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

    С нами с:
    10.11.2009
    Сообщения:
    631
    Симпатии:
    2
    Баллы:
    19
    Вот пробуй. Проверял работает.

    Код:
    int $crttm = `currentTime -q`;
    if ( $crttm != 0) 
    {
    float $a = $crttm*0.01; 
    particleShape1.goalU = $a;
    particleShape1.goalV = rand(0, 8);
    }
    
     
  13. iNOD

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

    С нами с:
    10.11.2009
    Сообщения:
    631
    Симпатии:
    2
    Баллы:
    19
    Можно еще так.

    Код:
    int $crttm = `currentTime -q`;
    if ( $crttm != 0) 
    {
    float $a = $crttm*rand(0.03, 0.05); 
    particleShape1.goalU = $a;
    particleShape1.goalV = rand(0, 8);
    }
    
     
  14. iNOD

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

    С нами с:
    10.11.2009
    Сообщения:
    631
    Симпатии:
    2
    Баллы:
    19
    В этой строчке. Чем больше это значение тем быстрее поднимаеться вверх. Но если так то будут видны линии из партиклов по этому.

    float $a = $crttm*0.01;

    Лучше использовать этот вариант как по мне, хотя смотря какая цель.

    float $a = $crttm*rand(0.03, 0.05);
     
  15. Lemieux

    Lemieux Знаток

    С нами с:
    08.06.2011
    Сообщения:
    810
    Симпатии:
    74
    Баллы:
    32
    Большое спасибо :)) уже результат очень похож на то, что я хочу.
     
  16. iNOD

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

    С нами с:
    10.11.2009
    Сообщения:
    631
    Симпатии:
    2
    Баллы:
    19
    А тебе какой вариант больше подошел первый или второй?
     
  17. Lemieux

    Lemieux Знаток

    С нами с:
    08.06.2011
    Сообщения:
    810
    Симпатии:
    74
    Баллы:
    32
    Блин, что-то меня заглючило и сообщение нельзя удалить.
    Подошёл первый вариант с постоянной переменной. Хотя, если взять в рандоме поменьше значение и диапазон, то эффект тоже будет интересный.
    Вообще для чего мне это нужно. Я пытаюсь сделать торнадо через частицы и Goal в виде нюрбс цилиндра. Таким поведением частиц можно показать как вихрь смерча устремляется к земле. Конечно точного эффекта пока не добились, но я очень благодарен за информацию и примеры.
     
  18. iNOD

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

    С нами с:
    10.11.2009
    Сообщения:
    631
    Симпатии:
    2
    Баллы:
    19
    Так наверно лучше использовать курвс, и анимировать их, а на них пустить частицы как тут.

    http://www.youtube.com/watch?v=RwIwC8cDHvU&feature=endscreen&NR=1
     
  19. Lemieux

    Lemieux Знаток

    С нами с:
    08.06.2011
    Сообщения:
    810
    Симпатии:
    74
    Баллы:
    32
    Это всё хорошо, но как тогда создать поток, вортексом? С этими полями тоже проблемы есть. А тут сделал из цилиндра форму, какая тебе нужна, сделал его Goal, проанимировал вращение. Да и мне полезно будет изучение Mel.
     
  20. iNOD

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

    С нами с:
    10.11.2009
    Сообщения:
    631
    Симпатии:
    2
    Баллы:
    19
    Так если делать с целиндром, то как показать потоки? Просто будет все монотонно и не красиво, а так создал 5-8 сплайнов, сделал анимацию, потом повесил на них партиклы, а на партиклы флюиды, и будет красота.
     
Модераторы: Dark™, Skif

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