среда, 27 апреля 2016 г.

Callback функции.

Пример на illusioncatalyst.com

Хороший урок от Bobo


General Event Callback Mechanism

Ниже простой пример вызова функции при выделении нужного модификатора.


----------------------------
fn checkModName theName =(
    r = false
    try(if (modPanel.getCurrentObject()).name == theName then r = true) catch()
    r
)

txt = "try(if checkModName \"UVW Map\" then print \"you have selected UVW Map modifier\" \n"
txt += "else print \"you have selected a different modifier\")catch()"

callbacks.addscript #modPanelObjPostChange txt id:#abrakadabra

------------------------------------------------------------
--callbacks.removeScripts id:#abrakadabra
эта строка для выгрузки функции из памяти.
----------------------------

четверг, 21 апреля 2016 г.

Просто и быстро заменить одни объекты другими (например hi польные на low польные, включая инстансные...). Или про функцию instancereplace.

Есть сцена, в которой понадобилось заменить высокополигональных людей на те же модели, но оптимизированные.
Делается этим скриптом, но в определенной последовательности!
-----------------------------------------start
  arLow = selection as array
 arHi = selection as array

 for i in arLow do(
    for j in arHi do(
         if i.name == j.name and i.material.name == j.material.name do(
                print i.name
                instancereplace j i
             )
        )
     )
-----------------------------------------end

Выделяем первую группу, например высокополигональных людей и выполняем строку (shift+enter):

arHi = selection as array
 создаем ,тем самым, массив hipoly
 Тоже для lowpoly группы:
arLow = selection as array


 Только теперь можно выполнить код:
--
 for i in arLow do(
    for j in arHi do(
         if i.name == j.name and i.material.name == j.material.name do(
                print i.name
                instancereplace j i
             )
        )
     )
 --
Благодаря использованию функции instancereplace в сцене должны поменяться все инстансные (зависимые) высокополигональные люди.