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

Класс в виде переменной?

Тема в разделе "MAXScript", создана пользователем Александр Якушев, 6 май 2015.

Модераторы: Savin Denis
  1. Александр Якушев

    Александр Якушев Активный участник

    С нами с:
    13.08.2009
    Сообщения:
    77
    Симпатии:
    1
    Баллы:
    7
    Ничего так и неполучилось нарыть в интернете по этой теме. Помогите, пожалуйста.
    Есть функция для изменения величины блюра в нужных слотах в выбранных картах для любых типов материалов (надеюсь понятно выражаюсь:)):
    Код:
    fn EditBlurMaps mm slotName theBlur typeMAP =
    (
        if mm != undefined do
        (
            numSTM = getNumSubTexmaps  mm
            if numSTM != 0 do
            (
                for i = 1 to numSTM do
                (
                    theSlotName = getSubTexmapSlotName  mm i
                    if findString theSlotName slotName == 1 do  theMAP = getSubTexmap  mm i
                    for bt in getclassinstances typeMAP target:theMAP do bt.coords.blur = theBlur
                       
                    EditBlurMaps theMAP slotName theBlur typeMAP
                    )
                    )
                )
            )
    mm - это материал
    slotName - имя выбранного слота этого материала (например "Diffuse")
    theBlur - величина блюра (например 0.2)
    вопрос: !!!!!!!!typeMAP - должна быть переменная с классом карты (bitmaptexture и т.п.)!!!!!!!!! но, понятное дело, выдает ошибку.

    Прилагаю, также, небольшой скрипт с этой функцией.
     

    Вложения:

  2. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Код:
    fn EditBlurMaps mm slotName theBlur typeMAP =
    (
        if mm != undefined do
        (
            numSTM = getNumSubTexmaps  mm
            if numSTM != 0 do
            (
                for i = 1 to numSTM do
                (
                    theSlotName = getSubTexmapSlotName  mm i
                    if findString theSlotName slotName == 1 do  theMAP = getSubTexmap  mm i
                    if theMAP!=undefined then
                    for bt in getclassinstances (execute typeMAP) target:theMAP do bt.coords.blur = theBlur             
                    EditBlurMaps theMAP slotName theBlur typeMAP
                    )
                    )
                )
            )
     
    Александр Якушев нравится это.
  3. Александр Якушев

    Александр Якушев Активный участник

    С нами с:
    13.08.2009
    Сообщения:
    77
    Симпатии:
    1
    Баллы:
    7
    :D Спасибо
    igorznag
    То что нужно! Правда скрипт еще глючит немного, буду допиливать.
     
Модераторы: Savin Denis

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