three.js
を使用してブラウザゲームを構築しています。モデルをMaya 2013からシーンにロードします。モデルをobjファイルとしてエクスポートしました。
これをthree.js
- loaderのJSファイルに変換する方法を知る必要があります。
これはこれまでのところ私のローダーです:
var jsonLoader = new THREE.JSONLoader();
jsonLoader.load( "models/model.js", addModelToScene );
前もって感謝します
ブレンダーを使用したくない場合は、mrdoob(made threejs)に単純な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
複数のモデルのphytonスクリプトコマンドと、モデルの相対URLと座標を含むjsonを出力する3ds maxスクリプトを作成しました。 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リスナーウィンドウが自動的に開き、結果が出力されます。 pythonコマンドをコピーして貼り付けます。印刷されたjsonを使用して、プロジェクト内のモデルをバッチで読み込みます。編集:
スクリプトを少し試した後、モデル(20以上)を1分以内に3ds maxからエクスポートしてブラウザーのタブを開くことができるように設定しました。もちろん、jsonの出力を好みに合わせて調整する必要があるかもしれません。これがお役に立てば幸いです。
Pythonという名前のファイルを作成しますconversion.py
次のコンテンツを含む: ここをクリックして表示 。
次に、ターミナルで次のコマンドを実行します。
python conversion.py -i file.obj -o file.js