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

вопрос по экспрешн

Тема в разделе "Maya", создана пользователем kvins, 5 мар 2010.

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

    kvins Знаток

    С нами с:
    05.12.2009
    Сообщения:
    156
    Симпатии:
    0
    Баллы:
    51
    я сделал экспрешн для инстансера чтоб они крутились во время симуляции... а я хотел спросить как остановить повороты когда они уже лежат на земле?? кто нить мб знает


    float $anything= rand(1,3);
    particleShape1.Scale_new= <<$anything,$anything,$anything>>;


    particleShape1.Rand_rotation= rand(-50, 40);


    particleShape1.Rotation_new= <<rand(360),rand(360),rand(360)>>;
     
  2. sanctus

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

    С нами с:
    29.08.2006
    Сообщения:
    312
    Симпатии:
    0
    Баллы:
    16
    а это creation или runtime expression?

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


    а вообще попробуй через Particle Collision Event Editor сделать.
    или в том же экспрешене проверять скорость объекта, когда он упадет, то сообветственно скорость обнулится.
     
  3. kvins

    kvins Знаток

    С нами с:
    05.12.2009
    Сообщения:
    156
    Симпатии:
    0
    Баллы:
    51
    ну это я по уроку делал))) я просто экспрешн начал совсем недавно учить .. мб знаешь какие нить уроки ?
    а еще можно ли с помощью экспрешн остановить движение уже вылетивших частиц? например на 50 кадре остановить
     
  4. sanctus

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

    С нами с:
    29.08.2006
    Сообщения:
    312
    Симпатии:
    0
    Баллы:
    16
    ну конечно

    не вдаваясь в синтаксис будет чтото такое:

    if (frame==50)
    {
    velocityPP = <<0,0,0>>
    };

    или если 50 кадров от рождения, то

    if (lifespanPP==50)
    {
    velocityPP = <<0,0,0>>
    };
     
  5. kvins

    kvins Знаток

    С нами с:
    05.12.2009
    Сообщения:
    156
    Симпатии:
    0
    Баллы:
    51
    блин почему то не выходит (((( пишет синтах ерор .. я и велосити пп создал ......................а вот когда я скобки убрал то синтах исчез но нечего не останавливается
    ну вот 2 фото......я делал в криэйшен вкладке. мб надо было в рантайм??


    вот такой получился экспрешн но он не действует на частицы(((

    if (particleShape1.lifespanPP==50)
    particleShape1.velocityPP = <<0,0,0>>

    я даже перенес все в афте динамик серавно нечего не остановилось((
     

    Вложения:

    • 1687547.jpg
      1687547.jpg
      Размер файла:
      163,8 КБ
      Просмотров:
      39
    • 1687548.jpg
      1687548.jpg
      Размер файла:
      170 КБ
      Просмотров:
      43
  6. sanctus

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

    С нами с:
    29.08.2006
    Сообщения:
    312
    Симпатии:
    0
    Баллы:
    16
    так будет работать!
     

    Вложения:

    • 1687807.jpg
      1687807.jpg
      Размер файла:
      286,1 КБ
      Просмотров:
      40
  7. kvins

    kvins Знаток

    С нами с:
    05.12.2009
    Сообщения:
    156
    Симпатии:
    0
    Баллы:
    51
    огромное спасибо .
     
Модераторы: Dark™, Skif

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