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

нужен MEL

Тема в разделе "Maya", создана пользователем St.ASH, 18 дек 2007.

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

    St.ASH Активный участник

    С нами с:
    05.12.2005
    Сообщения:
    85
    Симпатии:
    10
    Баллы:
    6
    Товарищи!
    Нужен скрипт, укладывающий тротуарную плитку.
    Суть сцены такова: сначала плитки не видно (она под землею), где то в середине ролика она начинает аля вылезать из под земли и выкладываться аккуратненько по всему тротуару, тропинкам и т.д. На все про все отведено около 125 кадров.

    Все бы ничего, но в сцене около 56000 плиток.

    Подвопрос.
    долго искал но както безрезультатно.
    Есть ли в меле некая переменная которая при каждом последующем выполнении команды МЕЛ смещает коэффициент того или иного значения на определенное число.
    Например: тротуар лежит дугой. Следовательно, прямоугольная плитка появляясь из под земли должна принимать угол поворота тротуара. То есть угол поворота каждой последующей плитка по оси У должен смещатся относительно предыдущей на определенный градус.


    Спасибо.
     
  2. xeash

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

    С нами с:
    26.04.2007
    Сообщения:
    208
    Симпатии:
    0
    Баллы:
    12
    можно сделать все не оптимизированно...через эскпресшен например, или партиклами...
    кстати насчет смещения, может поможет, может нет:
    1) выдели объект
    2)сделай копию
    3) в любом канале напиши +=, -=,*= и т.д а затем число -коэффициент. т.е. типа +=2 и канал копии изменится на задданное число
     
  3. Миша Ершов

    Миша Ершов Мастер

    С нами с:
    02.11.2003
    Сообщения:
    1.415
    Симпатии:
    2
    Баллы:
    325
    Простые циклы с этой задачей справятся.

    Про анимацию плитки. Не знаю как там конкретно все выглядит, но раз 125 кадров, то не долго. Можно разделить участки плитки по типу появления и т.п., и написать несколько мел-скриптов.
    Вообще странная постановка вопроса, без подробностей. Ничего не понятно.
     
  4. cKOT

    cKOT Пользователь сайта

    С нами с:
    05.12.2005
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    2
    125 кадров, достаточно быстро, может просто плитки сделать материалом и анимировать появление прозрачностью?
     
  5. solovjoff

    solovjoff Знаток

    С нами с:
    13.04.2006
    Сообщения:
    229
    Симпатии:
    0
    Баллы:
    22
    создай тротуар, наложи текстуру, и анимируй появление тротуара....ммм...внимательно посмотри на скриншоты
    Edit Mesh ---> Cut Faces Tools с галочкой Delete Faces
     

    Вложения:

    • 518936.jpg
      518936.jpg
      Размер файла:
      29,8 КБ
      Просмотров:
      43
  6. St.ASH

    St.ASH Активный участник

    С нами с:
    05.12.2005
    Сообщения:
    85
    Симпатии:
    10
    Баллы:
    6
    for Xeash:
    Интересное решение. С его помощью я открыл для себя много нового.
    В данном конкретном случае такой подход трудноприменим. Ибо смещение по каналам поворота и транслейта на протяжении всего тротуара разный как черное и белое. Т.е гдето смещение/поворот больше гдето соответственно меньше. Тротуар (плитка точнее) - не идеальный, то бишь как в реальности. По крайней мере так старался.
    Спасибо)

    for Миша Ершов:
    "Простые циклы"... мне бы знать как они выглядят, я бы может и справился.
    Подробности: в начале сцены нет тротуара. Где то в середине сцены плитки как бы волной появляются из под земли и укладываются вдоль тротуара. Причем важно показать что плитка именно "вылезает" из под земли (плитка похожа по форме на кирпич) и ложится, аля - трансформер.

    for cКОТ:
    не прокатит. нужно объемное видение (читай выше)))

    for solovjoff:
    Три часа пыхтел над советом но ничего не понял...)
    Не получилось...

    Но все равно спасибо




    Пришлось решать проблему банальным и геморройным способом - разбивать по группам и вручную анимировать каждую группу по транслейту и ротейту...

    так прошло 4 дня...
    результат вроде нормальный...

    Просто время жалко...
    Буду учить мел как псалмы...
     
  7. solovjoff

    solovjoff Знаток

    С нами с:
    13.04.2006
    Сообщения:
    229
    Симпатии:
    0
    Баллы:
    22
    дЫк елы палы, ну как не понял....дай свое мыло, я тебе скину сцену уже с анимированным тротуаром....или пиши в асю 200692001
    я, тебе другой несколько проще (и соответств. быстрее) вариант тебе предложил, может быть немного не то, что ты просил, но то, что он тебе пригодится когда-нибудь, уверен на все 100
     
  8. Миша Ершов

    Миша Ершов Мастер

    С нами с:
    02.11.2003
    Сообщения:
    1.415
    Симпатии:
    2
    Баллы:
    325
    Я все равно так полностью и не понял что именно нужно. Всё-таки нужно подобные вопросы иллюстрировать.
    Ну а мел конечно надо изучать. К тому же в нём ничего сложного нет.
     
  9. DEL

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

    С нами с:
    20.04.2005
    Сообщения:
    380
    Симпатии:
    0
    Баллы:
    13
    Можно сделать так :
    Расставить плитки с помощю Animatio SnapShot, дальше можно прицепить к каждой копии по одной косточке(на хаэйнде есть подобные скрипты) и анимировать(в ручную или експрешеном).
     
  10. Lakoske

    Lakoske Знаток

    С нами с:
    12.05.2005
    Сообщения:
    142
    Симпатии:
    0
    Баллы:
    21
    косточками... флюидами еще посоветуйте ему.
    тривиальная задача один цикл - не знаю что тут не понятного
    алгоритм простой:
    делаешь одну плитку с анимацией - как она там у тебя поднимается из под земли и крутится
    дублируешь с сохранением анимации
    открываеш скрипт эдитор
    открываешь граф эдитор
    сдвигаешь у дубликата анимационные кривые на некое d (d=кол-во плиток/хронометраж)
    смотришь что там появилось в скрипт эдиторе
    дальше какими-то средсвами создаешь дубликатов сколько надо (анимация должна сохраняться) и как надо расположенных - хорошо чтобы именовались адекватно - tl_1...tl_500
    потом выделяешь их в аутлайнере и запускаешь скрипт который выглядит примерно так:

    $obj=`ls -sl`;
    for ($o in $obj){
    а тут к $o применяестя механизм смещения анимационных кривых, который ты подсмотрел раньше в скрипт эдиторе. модифицированный и красивый.
    }

    мне кажется это самый простой, ломовой способ.

    удачи
     
  11. Ro

    Ro Знаток

    С нами с:
    28.11.2007
    Сообщения:
    291
    Симпатии:
    0
    Баллы:
    28
    создаешь один элемент плитки, называешь его "a1" заходишь в Dublicate Special, пишешь что надо сделать 55900 дубликатов методом смещения на определенное расстояние новой плитки относительно предыдущей, там же настраиваешь поворот одной плитки относительно другой, и у тебя получается идеально ровный асфальт. что бы проанимировать "вырастающий" из земли асфальт все плитки вначале прячешь под землю, потом пишешь скрипт типа "процесс"

    proc knopka(){
    int $chislo;
    for ($chislo<449){
    int $number=1;
    ("a"+$number).translateX=("a"+$number).translateX+ ... (тут расстояние, на которое плитка должна переместиться вверх, равное высоте плитки + расстояние от верха плитки до земли, под которой плитка пока и обитает)
    $number=$number+1;
    $chislo=$chislo+1;};
    };

    chislo это переменная которая заставляет проц выполнять себя в каждом кадре по 448 раз, так как 56000/125=448. тоесть в каждом кадре будет выкапываться 448 плиток, ибо количество плиток и кадров строго оговорено

    теперь в экспрешене задать операцию включения "процесса"

    knopka;

    исправьте если будут ошибки : ) мона конечно ваще скрипт сделать что бы одним нажатием все действия делал, тока вводи сколько кадров и сколько плиток
     
  12. Ro

    Ro Знаток

    С нами с:
    28.11.2007
    Сообщения:
    291
    Симпатии:
    0
    Баллы:
    28
    и в конце проверку на chislo забыл, после строчки $chislo=$chislo+1;}; вставить

    $chislo=$chislo+1;
    if ($chislo=449){$chislo=1;};};
    };
     
  13. Ro

    Ro Знаток

    С нами с:
    28.11.2007
    Сообщения:
    291
    Симпатии:
    0
    Баллы:
    28
    и в конце проверку на chislo забыл, вместо строчки $chislo=$chislo+1;}; вставить

    $chislo=$chislo+1;
    if ($chislo=449){$chislo=1;};};
    };
     
  14. Миша Ершов

    Миша Ершов Мастер

    С нами с:
    02.11.2003
    Сообщения:
    1.415
    Симпатии:
    2
    Баллы:
    325
    Знак "=" означает "присвоить". А вот "==" - это уже "равно".

    Короче написать $chislo++.
     
  15. Vitaliy Babich

    Vitaliy Babich Знаток

    С нами с:
    03.07.2003
    Сообщения:
    71
    Симпатии:
    0
    Баллы:
    25
    можно при помощи DrivenKey сделать необходимую анимацию, зафиксить её на кастом аттрибуте который потом в зависимости от времени тягать экспрешеном например, можно также небольшой ранд повешать, чтобы не всё так скушно...
     
Модераторы: Dark™, Skif

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