Подтвердить что ты не робот

Как преобразовать объект в файл json для загрузчика модели three.js

Я создаю браузерную игру с three.js, и я хочу загрузить модель с Maya 2013 в мою сцену. Я экспортировал модель как файл obj.

Теперь мне нужно знать, как преобразовать его в JS файл для three.js -loader.

Это мой загрузчик:

 var jsonLoader = new THREE.JSONLoader();
 jsonLoader.load( "models/model.js", addModelToScene );

Заранее спасибо

4b9b3361

Ответ 1

Если вы не хотите использовать blender, mrdoob (made threejs) имеет простой python script для преобразования obj в json. Просто запустите - этот script - в терминале, например:

python convert_obj_three.py -i infile.obj -o outfile.js

Ответ 3

Это довольно поздний ответ. Я написал конвертер для чтения файлов obj и конвертирует в формат JSON, поддерживаемый тремя JSON: https://github.com/theMaxscriptGuy/Windows_Programs/tree/master/Obj_To_ThreeJS

Загрузите все файлы как zip и запустите файл converter.exe...

Ответ 5

При экспорте моделей 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"
)
  • Создайте новый txt файл, переименуйте его в coordinates.mcr и перетащите файл в окно 3ds max. Он автоматически откроет окно MaxScript Listener и распечатает результаты. Скопируйте команду python в cmd. Используйте напечатанный json для пакетной загрузки ваших моделей в вашем проекте.
  • Кроме того, скрипты могут быть назначены кнопкам в панелях инструментов 3dsMax для быстрого доступа.
  • Вышеупомянутый script может использовать дополнительную настройку. Не лучшее решение, но, по крайней мере, оно ускоряет работу, надеюсь.
  • Использовать Jos Balcaen script для экспортировать файлы obj в пакетном режиме (3ds Max)

Edit:

После нескольких экспериментов с script я сделал настройку, которая позволяет мне экспортировать мои модели (считая более 20) менее чем за 1 минуту из 3ds max, чтобы открыть вкладку браузера. Конечно, вам, возможно, придется настроить выход json по своему вкусу. Надеюсь, вы найдете это полезным.

Ответ 6

Создайте файл Python с именем conversion.py со следующим содержимым: нажмите здесь, чтобы увидеть.

И затем запустите эту команду в своем терминале:

python conversion.py -i file.obj -o file.js