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

Скрипт на MEL

Тема в разделе "Maya", создана пользователем KlimD, 4 окт 2016.

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

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

    С нами с:
    04.10.2016
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    2
    Добрый день. Написал скрипт для спекания текстуры. Сейчас занимаюсь оформлением. Столкнулся с вопросом - когда идет процесс Batch Bake (mental ray), информация о процессе рендера выводится самой майкой внизу слева. А хотелось бы выводить ее через свой прогресс бар (процесс идет довольно долго и сидеть за компом просто скучно. А прогресс бар хорошо читается во время пробегания мимо компа). Так вот собственно и сам вопрос - как получить информацию о том самом прогрессе?
     
  2. Lemieux

    Lemieux Знаток

    С нами с:
    08.06.2011
    Сообщения:
    807
    Симпатии:
    74
    Баллы:
    32
    progressWindow?
     
  3. KlimD

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

    С нами с:
    04.10.2016
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    2
    Ну да, именно так. Сейчас просто выводится название рендера и в начале идет 1%, по окончании 100%. Удобно, что хоть видно что именно рендерится. Но все-таки хотелось бы иметь визуальный прогресс.
     
  4. Andots

    Andots Знаток

    С нами с:
    12.03.2009
    Сообщения:
    527
    Симпатии:
    95
    Баллы:
    31
    Не Mel но поробуй так

    Код:
    import maya.cmds as cmds
    
    
    
    
    amount = 0
    
    cmds.progressWindow(    title='Doing Nothing',
                                            progress=amount,
                                            status='Sleeping: 0%',
                                            isInterruptable=True )
    while True :
            # Check if the dialog has been cancelled
            if cmds.progressWindow( query=True, isCancelled=True ) :
                    break
    
            # Check if end condition has been reached
            if cmds.progressWindow( query=True, progress=True ) >= 100 :
                    break
    
            amount += 5
    
            cmds.progressWindow( edit=True, progress=amount, status=('Sleeping: ' + `amount` + '%' ) )
    
            cmds.pause( seconds=1 )
    
    cmds.progressWindow(endProgress=1)
     
  5. Andots

    Andots Знаток

    С нами с:
    12.03.2009
    Сообщения:
    527
    Симпатии:
    95
    Баллы:
    31
    Ну думаю разберешься как прикрутить к этому то что тебе надо, просто надо на каждом цикле чекнуть свой прогресс "amount"(приравнять к своему прогрессу вместо "amount +=5" ну и тот что 0 тоже), ну и паузу поболе поставить. Чтоб каждую секунду не проверял
     
    Последнее редактирование: 4 окт 2016
  6. KlimD

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

    С нами с:
    04.10.2016
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    2
    Спасибо, этот пример я уже видел. Это не то. Мне надо получать данные о прогрессе, который идет в течении самого рендера. Т.е. во время спечения одной текстуры (майка это видит и показывает прогресс самого рендера в левом нижнем углу), так вот мне надо практически сдублировать это, только уже на мой ProgressWindow. У меня рендерится 8 разных вариантов и я хочу в реальном времени это наблюдать (прогресс каждого рендера в отдельности). Т.е. из МЕЛа отправляется комманда на рендер, в это время сам скрипт ничего не делает, т.к. ждет конца рендера, но майка данные о прогрессе получает, вот хочется их перехватить и отобразить своим скриптом.
     
  7. 4i4ikov

    4i4ikov Знаток

    С нами с:
    07.04.2015
    Сообщения:
    170
    Симпатии:
    50
    Баллы:
    23
    Экранная лупа от микрософт спасёт инвалида пробегающего мимо монитора))
     
Модераторы: Dark™, Skif

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