我正在使用three.js
构建一个浏览器游戏,我想将Maya 2013中的模型加载到我的场景中。我已将模型导出为obj文件。
现在我需要知道如何将它转换为three.js
- loader的JS文件。
到目前为止,这是我的装载机:
var jsonLoader = new THREE.JSONLoader();
jsonLoader.load( "models/model.js", addModelToScene );
提前致谢
答案 0 :(得分:12)
如果你不想使用blender,mrdoob(make threejs)有一个简单的python脚本将obj转换为json。只需在终端中运行--this script--,如下所示:
python convert_obj_three.py -i infile.obj -o outfile.js
答案 1 :(得分:11)
答案 2 :(得分:6)
这是一个很晚的回复。我写了一个转换器来读取obj文件并转换为ThreeJS支持的JSON格式: https://github.com/theMaxscriptGuy/Windows_Programs/tree/master/Obj_To_ThreeJS
以zip格式下载所有文件并运行converter.exe ...
答案 3 :(得分:6)
注意:python转换器脚本已更新为基于js的工具https://github.com/mrdoob/three.js/tree/dev/utils/converters
用法:
node obj2three.js model.obj
答案 4 :(得分:3)
使用[convert_obj_three.py][1]
脚本将3ds max模型导出为three.js时,使用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脚本,它将打印多个模型的phyton脚本命令,还有一个带有模型相对URL和坐标的json。 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窗口并打印结果。复制粘贴cmd中的python命令。使用打印的json在项目中批量加载模型。 修改强>
在尝试了一下脚本后,我做了一个设置,允许我在不到1分钟的时间内从3ds max导出我的模型(计数超过20)到打开浏览器选项卡。当然,您可能需要根据自己的喜好调整json输出。希望你会发现这很有用。
答案 5 :(得分:2)
使用以下内容创建名为conversion.py
的Python文件:click here to see it。
然后在终端中运行此命令:
python conversion.py -i file.obj -o file.js