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

Ищу скрипт типа xPose Zbrush'a

Тема в разделе "MAXScript", создана пользователем Астэт, 24 авг 2014.

Модераторы: Savin Denis
  1. Астэт

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

    С нами с:
    28.04.2013
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    7
    Как можно в максе получить скрипт типа xpose От Zbrush'а, этот скрипт должен раздвигать в сторону группу выделенных объектов, причем хайполи и лоуполи наложены друг на друга, это надо, чтобы при запекании нормалей не было косяков с наложениями.
     
  2. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Может быть скрипт RTTassist подойдет для вас.
    У меня нет возможности проверить его.
     
  3. Астэт

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

    С нами с:
    28.04.2013
    Сообщения:
    65
    Симпатии:
    0
    Баллы:
    7
    Да нужная функция есть судя по видео, но не работает на 15максе почему то, мог бы ктонибудь вырезать код explode функции и сделать простейшее меню типа такого
    Мне ничего кроме этой функции не нужно. это вроде просто, взять меши с префиксом _HP и _LP и растащить их в разные стороны
    ч1я.jpg
     
  4. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Пример: Каждому объекту low соответствует только один объект high.
    Код:
    rollout explode_test "Explode test"
    (
    edittext et_lp_pref "LP" text:"LP_" fieldWidth:50 pos:[5,5]
    edittext et_hp_pref "HP" text:"HP_" fieldWidth:50 pos:[90,5]
    spinner sp_step "Step" fieldWidth:50 range:[0.01,1e9,1] type:#worldunits pos:[5,37]
    button bnt_explode "Explode" pos:[100,30] width:70 height:30
    on bnt_explode pressed do
    (
    undo on
    (
    lp_pref=et_lp_pref.text;hp_pref=et_hp_pref.text;step=sp_step.value; lpa=#();hpa=#()
    if lp_pref!="" and hp_pref!="" then
    (
    for o in objects where (findString o.name lp_pref==1 and o.name.count>lp_pref.count) do 
    (
    append lpa o;
    hp_temp=getnodebyname (hp_pref+(substring o.name (hp_pref.count+1) o.name.count)) all:true
    if hp_temp.count==1 then append hpa hp_temp[1]
    )--for o in objects where (
    if lpa.count>0 and hpa.count>0 and lpa.count==hpa.count then
    (
    objs_center=[0,0,0]
    for i=1 to hpa.count do objs_center+=hpa[i].center; objs_center/=hpa.count
    objs_intersect=0
    for i=1 to hpa.count do for j=1 to hpa.count where i!=j do
    if intersects hpa[i] hpa[j] then objs_intersect=1
    while objs_intersect==1 do 
    (
    objs_intersect=0
    for i=1 to hpa.count do
    (
    dirv=normalize(hpa[i].center-objs_center)
    hpa[i].pos+=dirv*step; lpa[i].pos+=dirv*step
    for i=1 to hpa.count do for j=1 to hpa.count where i!=j do
    if intersects hpa[i] hpa[j] then objs_intersect=1
    )--for i=1 to hpa.count do
    )--while objs_intersect==1
    )--if lpa.count>0 and hpa.count>0 and lpa.count==hpa.count then
    )--if lp_pref!="" and hp_pref!="" then
    )--undo on
    )--on bnt_explode pressed do
    ); createdialog explode_test 180 65
     
Модераторы: Savin Denis

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