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

Добавление Элемента(Attach), к нескольким объектам, в буфферном режиме.

Тема в разделе "MAXScript", создана пользователем GrndWrath, 16 ноя 2012.

Модераторы: Savin Denis
  1. GrndWrath

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

    С нами с:
    24.04.2012
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    2
    Здравствуйте, у меня есть проект для которого нужно присвоить - один элемент, к 209-ти(объектам) и при этом выгрузить все, в тот же формат, в котором были эти объекты(используя плагин)

    Я вижу это как очень не простую для меня задачу, так как опыта в работе с 3ds max скриптами и понимания задач - у меня нету.

    Возможно это будет выглядеть не совсем уместно но вот как я вижу метод решения этого.

    Меню A, при его нажатии можно будет выбрать нужные объекты в папке, после чего они будут поочередно, загружаться в сцену 3ds max, им будет присваиваться нужный элемент Из меню B( так же нужно чтобы был учтен Material id, то есть если Объект A Имеет MatId 1, то прис. элемент будет менять свой Mat ID На 2 - не совсем вижу как это реализовать) и они будут выгружаться через Plugin .dlu( Не уверен что это возможно), в назначенную папку, с тем же именем.

    Меню B, в котором должен выбираться сам объект(который нужно добавить ко всем другим), тут у меня возникает вопрос
    этот объект должен быть выгружен из сцены, в формат 3ds или Obj, Для того чтобы распространяться(присваиваться) к нескольким объектам(которые мне нужны), ИЛИ же можно использовать загруженный в сцене объект, но тогда возникает затруднение с самим Plugin-om.dlu Который я использую для выгрузки, в нужный мне формат - он берет все объекты в сцене и помещает в один файл(можно ли как то это заблокировать или лучше - указывать путь к 3ds, obj Объекту).


    Это я вижу в идеале, и готов заплатить за такой скрипт.



    А пока что я ломаю голову над самим упрощением - "кликанья по объектам, выбора editable mesh, attach",
    то есть кнопка, при нажатии кнопки - A(на выделенном объекте), достаточно просто нажать на желаемый объект и он присваивается, к тому что был выделен изначально, с учетом MatID, то есть если у первого объекта был MatID1, То у второго не важно какой он был, должен стать MatID2(То есть должна быть функция счетчика, и MatID Должен был бы становится идущим следующим).

    Код:
    Group "Object to be Attachd "
    	(
    		
    		button   Btnattach  "Pick object - ..."
    	)
    
    	on Btnattach pressed do
    	( meshop.attach [u]$object01 $Object02 [/u]
    
    
    
    
    И тут мое первое затруднение, я так понимаю $object01 Это уже указатель на то что будет использоваться, а как в скрипте указать чтобы использовалось то что было выделено(задействовано - и где об разузнать - гугл ) ? на то что будет выделяться(Желаемый объект)


    заранее Спасибо, надеюсь достаточно описал все ?
     
  2. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Пример:
    1. В новой сцене создаем 2 чайника (Teapot) и конвертируем их в Editable Mesh.
    2. К каждому чайнику применяем свой материал Standard.
    3. Выделяем один чайник. Запускаем скрипт.
    4. В новом окне нажимаем кнопку и выбираем второй чайник.
    Код:
    rollout obj_attach_test "Object to be Attached"
    (
    fn filt obj2 = superclassof obj2 == GeometryClass
    pickbutton Btnattach "Pick object - ..." filter:filt
    on Btnattach picked obj2 do
    ( 
    if(selection.count==1 and obj2!=undefined)then
    (
    obj1=selection[1]; if(obj1!=obj2)then
    (
    if(classof obj1==Editable_Mesh)then
    (
    meshop.attach obj1 obj2 attachMat:#IDToMat
    )--if(classof obj1==Editable_Mesh)then
    )--if(obj1!=obj2)then
    )--if(selection.count==1 and obj2!=undefined)then
    )--on Btnattach picked obj do
    );createDialog obj_attach_test width:200
     
  3. GrndWrath

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

    С нами с:
    24.04.2012
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    2
    Класс спасибо, работает на ура, осталось разобраться как присвоить идущий по порядку MatID, и ускорит все то что я делаю =).

    Спасибо.
     
  4. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    В моем примере, чайники сначала имеют MatID=1, а после Attach элемент "чайник1" имеет MatID=1, а элемент "чайник2" имеет MatID=2.
     
Модераторы: Savin Denis

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