Ответ 1
Если вы не хотите использовать blender, mrdoob (made threejs) имеет простой python script для преобразования obj в json. Просто запустите - этот script - в терминале, например:
python convert_obj_three.py -i infile.obj -o outfile.js
Я создаю браузерную игру с three.js
, и я хочу загрузить модель с Maya 2013 в мою сцену. Я экспортировал модель как файл obj.
Теперь мне нужно знать, как преобразовать его в JS файл для three.js
-loader.
Это мой загрузчик:
var jsonLoader = new THREE.JSONLoader();
jsonLoader.load( "models/model.js", addModelToScene );
Заранее спасибо
Если вы не хотите использовать blender, mrdoob (made threejs) имеет простой python script для преобразования obj в json. Просто запустите - этот script - в терминале, например:
python convert_obj_three.py -i infile.obj -o outfile.js
Используйте Blender.
Затем установите этот аддон:
Это довольно поздний ответ. Я написал конвертер для чтения файлов obj и конвертирует в формат JSON, поддерживаемый тремя JSON: https://github.com/theMaxscriptGuy/Windows_Programs/tree/master/Obj_To_ThreeJS
Загрузите все файлы как zip и запустите файл converter.exe...
Примечание: конвертер python script был обновлен до инструмента на основе js https://github.com/mrdoob/three.js/tree/dev/utils/converters
Использование:
node obj2three.js model.obj
При экспорте моделей 3ds max в three.js с помощью [convert_obj_three.py][1]
script, небольшая степень автоматизации может быть достигнута с помощью следующей команды в cmd promt:
cd C:\Python27 &
python convert_obj_three.py -i _obj\chromeBand.obj -o _json\chromeBand.js &
python convert_obj_three.py -i _obj\controlPanelCover.obj -o _json\controlPanelCover.js
Я написал 3ds max script, который будет печатать команду phyton script для нескольких моделей, а также json с моделями относительных URL-адресов и координат. Json полезен для размещения нескольких моделей в правильном положении в сцене.
(
local inputPath = "D:\Archive\Work\_Dev\_Convert\Obj\\"
local outputPath = "C:\Server\htdocs\viewer\assets\models\my-project\\"
local jsonPath = "assets/models/my-project/"
local myListEntry = "\n"
for o in selection do
(
myListEntry +=
"\"" + o.name + "\": {\n" +
"\t\"url\": \"" + jsonPath + o.name + ".js\",\n" +
"\t\"position\": {\n" +
"\t\t\"x\": \"" + o.position.x as string + "\",\n" +
"\t\t\"y\": \"" + o.position.z as string + "\",\n" +
"\t\t\"z\": \"" + (o.position.y * -1) as string + "\"\n" +
"\t}\n" +
"},\n"
)
myListEntry += "\n\n\n=== Run this using cmd promt: ===\n"
myListEntry += "cd C:\Python27 &\n"
for o in selection do
(
myListEntry += "python D:\Archive\Work\_Dev\_Convert\convert_obj_three.py -i " +
inputPath + o.name + ".obj -o " +
outputPath + o.name + ".js & \n"
)
myListEntry += "exit \n"
print myListEntry
actionMan.executeAction 0 "40472"
)
coordinates.mcr
и перетащите файл в окно 3ds max. Он автоматически откроет окно MaxScript Listener и распечатает результаты. Скопируйте команду python в cmd. Используйте напечатанный json для пакетной загрузки ваших моделей в вашем проекте.Edit:
После нескольких экспериментов с script я сделал настройку, которая позволяет мне экспортировать мои модели (считая более 20) менее чем за 1 минуту из 3ds max, чтобы открыть вкладку браузера. Конечно, вам, возможно, придется настроить выход json по своему вкусу. Надеюсь, вы найдете это полезным.
Создайте файл Python с именем conversion.py
со следующим содержимым: нажмите здесь, чтобы увидеть.
И затем запустите эту команду в своем терминале:
python conversion.py -i file.obj -o file.js