
Встала недавно передо мной задача сконвертировать 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.