Render.ru

SpherePush modifier

Chebu

Знаток
Рейтинг
59
#1
Модификатор SpherePush:

что делает: Модификатор "вытесняет" каждую вершину объекта, к которому применён, от опорных точек (pivot) заданных пользователем объектов с заданным радиусом. Воздействующими объектами могут служить любые объекты сцены, в примере это point_helper. Воздействующие объекты можно анимировать.

зачем нужен: Писал для вторичных анимаций у персонажа (перекатывающийся кадык при глотании; раздутая щека, когда что-то находится во рту; анимация живота и т.д.).

Видео на ютуб:

как использовать:
1)копируем код
2)создаём новый файл, называем его spherePush.ms
3)открываем файл spherePush.ms текстовым редактором. Например, блокнотом.
4)вставляем скопированный код.
5)файл кладём в 3dsmax_root\scripts\startup, где 3dsmax_root - дирректория, в которую у вас установлен 3DsMax
6)перегружаем макс, если был запущен, модификатор SpherePush должен появиться в списке доступных.

надеюсь, кому-нибудь пригодится

Код:
plugin simpleMod spherePush

name:"spherePush"

classID:#(0x329a4c0e, 0x652226e6)

(     
    parameters main rollout:params
    (
        nodes type:#nodeTab tabSizeVariable:true
        radius type:#floatTab tabSizeVariable:true 
    
        an type:#integer animatable:true
        
        on nodes tabChanged ar1 ar2 ar3 do
        (
            if (ar1==#refDeleted) do (deleteItem nodes ar2)
        )
    )
    
    rollout params "Parameters" width:162 height:280
    (
        listbox lbx1 "nodes" pos:[8,5] width:144 height:8
        button btn2 "remove" pos:[81,137] width:51 height:25
        pickbutton btn3 "add" pos:[37,136] width:40 height:26
        spinner spn1 "selection radius" pos:[11,169] width:144 height:16 range:[0,10000,0]
        
        fn updateList = 
        (
            items = #()
            for n in nodes do append items n.name
            
            lbx1.items = items
        )
        
        fn updateListSelection = 
        (
            sel = lbx1.selection
            spn1.enabled = (sel != 0)
            if(sel != 0) do
            (
                spn1.controller = radius[sel].controller
                spn1.value = radius[sel]
            )
        )
        
        on params open do
        (
            updateList()
            updateListSelection()
        )
        
        on lbx1 selected sel do
        (
            updateListSelection()
        )
        
        on btn2 pressed do
        (
            if(lbx1.selection>0) do 
            (
                deleteItem nodes lbx1.selection
                updateList()
                updateListSelection()
            )
        )
        on btn3 picked obj do
        (
            if( (findItem nodes obj) == 0) do
            (
                append nodes obj
                append radius 25
                updateList()
                updateListSelection()
            )
        )
        on spn1 changed val do
        (
            if (lbx1.selection != 0) do
            (
                radius[lbx1.selection] = spn1.value
            )
        )
    )
    
    on map i p do
    (
        for nID = 1 to nodes.count do
        (
            vec = p-nodes[nID].pos 
            dist = length vec
            if(dist<radius[nID]) do p += ((radius[nID]-dist)*vec/dist)
        )
        
        p
    )
    
    on create do
    (
        an.controller = linear_float()
        at time 10000 
        (
            animate on
            (
                an = 10000.0f
            )
        )
    )

)
 

kolts

Активный участник
Рейтинг
16
#3
А кто видел скрипт похожий на этот но чтоб можно было использовать любой объект, и чтоб деформировалось исходя из формы этого объекта, то есть деформатор для мышц, очень бесит что в максе его нет, сами мышцы сделать не проблема а вот деформатора нет
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#4
бесит что в максе его нет, сами мышцы сделать не проблема а вот деформатора нет
Кто тебе такое сказал ?

Стандартно для этого дела используется Skin Wrap, в Max8 на доп диске был отличный пример рига Maxine.

CAT который будет включен уже в следующую версию макса:
Мускулы+Клиджин(Видео),
Другие видео примеры.

Другие инструменты для работы с мускулатурой от внешних разработчиков:
ACT
Skin FX
Di-O-Matic Hercules
 

kolts

Активный участник
Рейтинг
16
#6
Не представляю как потом деформировать меш катовскими мышцами
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#7
Да точно также, с патчем теоретически должна быстрей считаться деформация.
А колиджин позволит придать любую форму для особо хитрых мышц.

 

Wats

Знаток
Рейтинг
25
#8
Скрипт безусловно полезный, вот только непойму чем вам Space Warp Displace не угодил? Им подобный эффект спокойно решается :rolleyes:
 
Сверху