Pull to refresh

Пакетный 3D-конвертер на основе 3ds Max

Working with 3D-graphics *

Встала недавно передо мной задача сконвертировать n-ое количество 3D моделей из Autodesk Collada (*.DAE) в OBJ и обратно. Поиск среди пакетных конвертеров ни к чему не привел, многие хоть и имеют обширный список поддерживаемых форматов, но какой-нибудь один из вышеназванных обязательно не знают.

Раз гора не идет к Магомету Тогда я решил воспользоваться возможностью 3ds Max'a по написанию пользовательских скриптов на MAXScript, который бы осуществил задуманное. Благо данный мощнейший инструмент по 3D моделированию поддерживает большинство распространенных форматов, включая нужные мне.

Немного поизучав документацию по 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.

ps вполне допускаю, что изобрел велосипед, коли так, прошу в камментах тыкнуть носом
Tags:
Hubs:
Total votes 21: ↑17 and ↓4 +13
Views 25K
Comments Comments 7