
Встала недавно передо мной задача сконвертировать n-ое количество 3D моделей из Autodesk Collada (*.DAE) в OBJ и обратно. Поиск среди пакетных конвертеров ни к чему не привел, многие хоть и имеют обширный список поддерживаемых форматов, но какой-нибудь один из вышеназванных обязательно не знают.
Немного поизучав документацию по MAXScript, данный скрипт был реализован. Скачать можно по этой ссылке (в архиве также инструкция по установке).
Ключевая функция уместилась в небольшое количество строк:
fn DoExport inputpath outputpath ext pfxb pfxa = ( if (inputpath != undefined and outputpath != undefined) do ( if (pfxb != "") then Prefix1 = pfxb else Prefix1 = "" if (pfxa != "") then Prefix2 = pfxa else Prefix2 = "" files = getFiles ( (replaceChar (inputpath as string) "\\" "\\\\") + "\\*.*" ) for f in files do ( resetMaxFile #noPrompt importFile f #noPrompt max views redraw exportName = outputPath + "\\" + Prefix1 + getFilenameFile f + Prefix2 + "." + ext exportfile exportName #noPrompt selectedOnly:TRUE ) --end for ) --end if ) --end fn
Интерфейс предельно прост:— указываем папку с исходными моделями (Input Directory)
— указываем папку, в которую будут складываться сконвертированные модели (Output Directory)
— указываем в какой формат хотим сконвертировать модели (без точки)
— по желанию можно добавить к именам файлов сконвертированных моделей префикс и/или постфикс
(вложенные папки не обрабатываются)
В итоге получился относительно универсальный 3D-конвертер, поддерживающий все разнообразие форматов, понимаемых 3ds Max'ом. Из минусов могу выделить необходимость установленного 3ds Max'a.