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