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

expression

Тема в разделе "Maya", создана пользователем -, 15 мар 2003.

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

    люди как через expression создать дрожание мяча. знаю надо лезть в хелп.
    слазел, но чтото не пошло...это через функцию noise?
    и еще вопрос, как создать так чтобы сфера(допустим) перемещалась через каждые 5 кадров вперед(на два кадра)..
     
  2. Guest

    по поводу первого вопроса, сотря какое дрожание, если хаотичное то noise или rand
    nurbsSphere1.translateX = 10 * noise (time);
    а второй вопрос я не совсем понял...
     
  3. Guest

    спасибо за ответ.попробую...
    хотя я написал чттото похожее(кроме умножения) у меня ничего не вышло.
     
  4. Guest

    Умножение не обязательно, просто амплитуда увеличивается.
     
  5. Олег Ядренцев

    Олег Ядренцев Знаток

    С нами с:
    17.06.2010
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    25
    А как изменить не амплитуду а именно скорость частоты пульсации rand???
     
  6. sanctus

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

    С нами с:
    29.08.2006
    Сообщения:
    312
    Симпатии:
    0
    Баллы:
    16
    nurbsSphere1.translateX = noise (10 * time);
     
  7. sanctus

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

    С нами с:
    29.08.2006
    Сообщения:
    312
    Симпатии:
    0
    Баллы:
    16
    команда rand выдает случайное значение при каждом вызове, то есть это не непрерывная функция. и вообще используйте её только если уверены что именно делаете. т.к. она требует хитрых маневров для однозначного определения.

    вам нужна функции noise или gauss, они действительно непрерывны. лучше используйте пример из предыдущего сообщения.
     
  8. sanctus

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

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

    Код:
    print (rand(10));print "\n";
    print (rand(10));print "\n";
    print (rand(10));print "\n";
    print (rand(10));print "\n";
    print (rand(10));print "\n";
    print (rand(10));print "\n";
    print (rand(10));print "\n";
    print (rand(10));print "\n";
    print "********";print "\n";
    print (noise(10));print "\n";
    print (noise(10));print "\n";
    print (noise(10));print "\n";
    print (noise(10));print "\n";
    print (noise(10));print "\n";
    print (noise(10));print "\n";
    print (noise(10));print "\n";
    print (noise(10));print "\n";
    результаты rand никогда не повторяются десятка здесь задает диапазон.
    а функция noise гарантирует получение "стабильного" шума, подавая на него время - time, мы получаем разброс, но теперь уже контролируемый, и уверяю на всех майках всех версий шум будет всегда одинаковым в отличие от ранда, который не повторит паттерн даже при двух запусках приложения.
    PS: для этого еще бывает seed, но это другая история.
     
  9. Олег Ядренцев

    Олег Ядренцев Знаток

    С нами с:
    17.06.2010
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    25
    Я прошу прощения. для меня вся эта тема с Экспрешнами очень новая знаний катастрофически не хватает. Проще я думаю будет объяснит то что мне нужно получить на выходе:
    хочу сделать камеру что бы она в могла немного "подтряхивалась" имитируя съёмку с рук, хотелось бы иметь такой экспрешн который смог бы контролировать значения хаотичности по скорости самой пульсации и силе этой пульсации если бы вы могли мне помочь...
    print (noise(10));print "\n"; -для меня это высший пилотаж даже не могу представить как это применить к объекту((((я полный нуб в экспрешн)
    можно продемонстрировать для одной оси объекта? pCylinder1.translateX=...
     
  10. sanctus

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

    С нами с:
    29.08.2006
    Сообщения:
    312
    Симпатии:
    0
    Баллы:
    16
    в чистой сцене выполните код:
    Код:
    camera;
    setAttr ".shakeEnabled" 1;
    потом создайте такой экспрешен:
    Код:
    float $amplitude = 0.01;
    float $frequency = 10;
    
    cameraShape1.horizontalShake = noise($frequency * time) * $amplitude;
    cameraShape1.verticalShake = noise($frequency * time+100) * $amplitude;
    теперь смотрите в камеру)
     
  11. Олег Ядренцев

    Олег Ядренцев Знаток

    С нами с:
    17.06.2010
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    25
    Не плохо всё работает но))) Хотелось бы иметь такую схему иметь 3 объекта связанных поин констрейн один для объекта "А" будет написан скрипт для хаоса движения, объект "Б" статичен, объект "В" держит позицию между "А" и "Б", в Атрибут идитор
    будет возможность менять позицию между объектом А и Б для объекта В
    К объекту В мы привяжем камеру, и всё это дело привяжем к какому нибудь контроллеру..
     
  12. sanctus

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

    С нами с:
    29.08.2006
    Сообщения:
    312
    Симпатии:
    0
    Баллы:
    16
    Зачем такие сложности? Просто выносите амплитуду в кастомный атрибут и читаете его в экспрешене
    А для расширения сознания: можно все это собрать на нодах, без экспрешенов
     
  13. Олег Ядренцев

    Олег Ядренцев Знаток

    С нами с:
    17.06.2010
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    25
    И как же мне это собрать на донах? Что единственное что мне приходит в голову для имитации тряски это expression. Если есть идеи подскажите...
    Я сам бы не против обойтись без expression, и какой же нодай мне задать случайные значения и как?(((
     
  14. sanctus

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

    С нами с:
    29.08.2006
    Сообщения:
    312
    Симпатии:
    0
    Баллы:
    16
    тут есть скрипт древнющй, который сам сделает за вас все на нодах, выберите только каналы, которые хотите "зашуметь" http://www.lightstorm3d.com/ls3d/?page_id=206
     
  15. Олег Ядренцев

    Олег Ядренцев Знаток

    С нами с:
    17.06.2010
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    25
    опять тот же не скромный вопрос как это чудо запустить, я понимаю что уже достал...((((
     
  16. sanctus

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

    С нами с:
    29.08.2006
    Сообщения:
    312
    Симпатии:
    0
    Баллы:
    16
    1. чаще всего команда которая запустит скрипт одноименна с его названием
    2. обычно у разработчика есть исчерпывающая информация в интернете или в теле самого скрипта
    3. ну или в крайнем случае вы открываете текст и ищете названия процедур, описанных в нем

    Здесь было второе
    Код:
    lsRandomizeChannel
     
  17. Олег Ядренцев

    Олег Ядренцев Знаток

    С нами с:
    17.06.2010
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    25
    не чего у меня не вышло как именно работает этот скрипт я не разобрался
    в теле описания нет не какой информации как работать с скриптом(((так сказать пошаговой инструкции...
     
  18. sanctus

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

    С нами с:
    29.08.2006
    Сообщения:
    312
    Симпатии:
    0
    Баллы:
    16
    да, они там поменяли кой чего, со времени моего последнего пользования им.
    но все просто, поставьте еще эти скрипты в догонку, и все заработает.
    http://www.lightstorm3d.com/ls3d/?page_id=451

    если не справитесь, то скину старую версию этого же скрипта, он еще под вторую майку писался)))
     
  19. Олег Ядренцев

    Олег Ядренцев Знаток

    С нами с:
    17.06.2010
    Сообщения:
    58
    Симпатии:
    0
    Баллы:
    25
    не я не так прокачан что бы понять как это работает(((
    Если вам не сложно меня и старая версия устроит лишь бы работала..
     
  20. VARVAR13

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

    С нами с:
    29.12.2010
    Сообщения:
    80
    Симпатии:
    3
    Баллы:
    9
    скачиваем то что указано в ссылках в постах №14 и 18
    из папок со скриптами копируюется содержимое по адресу C:\Documents and Settings\User\Мои документы\maya\2010\scripts.
    Затем запускается MAYA и в командной строке прописывается lsRandomizeChannel... и всего делов то...
     
Модераторы: Dark™, Skif

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