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

Листья на ветру или instancer replasment

Тема в разделе "Maya", создана пользователем Paul_Winex, 11 янв 2011.

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

    Paul_Winex Мастер

    С нами с:
    02.06.2007
    Сообщения:
    698
    Симпатии:
    10
    Баллы:
    126
    Приветствую. Последние два дня провожу за просмотром уроков по динамике и партиклам майским. Всё для того чтобы найти одну функцию. Суть вот в чем. Допустим я делаю какие-либо объекты, которые летят по ветру. Например листья во время сильного ветра или корова в торнадо. И всё бы хорошо, но встал вопрос насчет вращения. Без вращения это выглядит дешово а с параметром Rotarion = velosity просто глупо и смешно (особенно с коровой в торнадо :). Другие параметры тоже не совсем ясно. Я бы хотел решить вопрос через выражения.
    Вопрос - как сделать рандомное вращение? Чтобы каждому инстенсному объекту в каждом кадре записать выражение на rotation? Каждому отдельно, то есть PerParticle.
     
  2. VirtualV

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

    С нами с:
    25.04.2007
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    5
    Ниже вкладки Per Particle есть вкладка Add dynamic Attributes там такаеш General и выбираеш нужный тебе атрибут или создаеш свой, этот атрибут и появиться в Per Particle, ну далее вещаеш на него Експрешенс...
     

    Вложения:

    • 2107452.jpg
      2107452.jpg
      Размер файла:
      153,9 КБ
      Просмотров:
      34
  3. Paul_Winex

    Paul_Winex Мастер

    С нами с:
    02.06.2007
    Сообщения:
    698
    Симпатии:
    10
    Баллы:
    126
    Ну на самом деле это я сделал первым делом. Просто не хотел приводить в пример чтобы возможно другие варианты были. Я использовал параметр rotationPP. Но как с ним быть - уже второй вопрос на котором и застрял. В мануале написаны лишь действия с готовыми параметрами. А мне надо экспрешен. При назначении на параметр rotation типа velocity в скриптах пишется команда

    Код:
    particleInstancer -e -name instancer4 -rotation velocity nParticle01;
    При добавлении атрибута rotationPP получается такая команда:

    Код:
    addAttr -ln rotationPP -dt vectorArray nParticle01;
    То есть этот параметр по логике вещей является вектором. И вопрос в общем состоит из двух частей.
    - как скриптом работать с вектором? Дело в том что привычный мне доступ nParticle01.rotationPP.X тут уже не катит. И почемуто не катит nParticle01.rotationPP[0] и пр.
    - как правильно записать скрипт чтобы он исполнялся в каждом кадре для кажной частицы (а не например только при создании 1 раз)?

    Саму формулу я уже заготовил на примере вращения кубика.

    Код:
    $a = -20; //от
    $b = 20;  //до
    $s = 3;    //скорость
    
    pCube1.rotateX = pCube1.rotateX + (noise(time*$s)+1)/2*($b-$a)+$a;
    pCube1.rotateY = pCube1.rotateY + (noise(time*$s)+1)/2*($b-$a)+$a;
    pCube1.rotateZ = pCube1.rotateZ + (noise(time*$s)+1)/2*($b-$a)+$a;
    
    Но его надо модифицировать под работу с вектором.
     
  4. Dark™ vip

    Dark™ Administrator Команда форума

    С нами с:
    28.10.2001
    Сообщения:
    3.110
    Симпатии:
    217
    Баллы:
    1.520
  5. VirtualV

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

    С нами с:
    25.04.2007
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    5
    присвоить значения вектору можно в скобках <<>>, к примеру particleShape1.rotationPP=`rand<<360,360,360>>`;
    вобщем всё делается как я и описывал, толкьо я забыл что надо явно указать, что будет отвечать за вращении во вкладке Instancer (Geometry Replacement) и експрешенс будет нормально работать.
    p.s. зависимость от времени тут необязательно тк в каждом кадре формула будет расчитыватсья заново.
     

    Вложения:

    • 2107657.jpg
      2107657.jpg
      Размер файла:
      145,2 КБ
      Просмотров:
      33
  6. Paul_Winex

    Paul_Winex Мастер

    С нами с:
    02.06.2007
    Сообщения:
    698
    Симпатии:
    10
    Баллы:
    126
    2Dark и 2VirtualV обоим спасибки. То что надо!
     
  7. Paul_Winex

    Paul_Winex Мастер

    С нами с:
    02.06.2007
    Сообщения:
    698
    Симпатии:
    10
    Баллы:
    126
    Вот и выяснилась истина. Оказалось помимо создания параметра rotationPP надо его еще назначить как управляющий вращением параметр :) Причем, судя по уроку, можно и свой любой атрибут сделать (вектор) и его назначить. Это такие вот умозаключения чайника.
    В общем сделал сцену и оказалось что на сколько бы случайными небыли числа (и с noise и с rand) всё равно получается зацикленная анимация. То есть несколько секунд объект вращается куда угодно и потом анимация зацикливается. В данный момент даже не представляю как это цикл хотябы продлить или вовсе убрать повтор.
     
Модераторы: Dark™, Skif

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