1

古いモデル (ginger demo) を使用して THREE.JS プログラムを作成しました。r44 から r58 にアップグレードした後、python ベースの OBJ -> Three.js コンバーターのバージョン 2 を使用して作成されたモデルを使用できなくなりました。この問題は、ファイルのフォーマットが原因であると想定しています。

私は元の .OBJ モデルを持っていないので、古い json 形式を新しいものにアップグレードしてパーサーが読み取れるようにする方法を見つけようとしています。THREEJS Editor にインポートしてから再度エクスポートすることを検討しましたが、モデルにはモーフィング ターゲットがあり、その手法を使用してそれらを保存することはできませんでした。

アップグレードしようとしている JSON ファイルの例を次に示します。

これまでの進捗状況は次のとおりです。JSONLoader を使用してインポートする場合、最初に表示されるエラーは次のとおりです。

Uncaught SyntaxError: Unexpected token /

これはメタデータのコメントによるものです。そのため、このコンバーター ファイルの 160 行目付近にある形式と一致するように、コメントされたメタデータをメタデータ フィールドに追加しました。また、他のすべての非 JSON コード (変数など) を削除しました。また、「edges」フィールドは空で、.py コードにその文字列が見つからなかったため、削除しました。

json ファイルは正常にロードされましたが、使用すると次のエラーが発生しました。

Uncaught TypeError: Cannot read property 'map' of undefined 
Uncaught TypeError: Cannot read property 'attributes' of undefined

「属性」エラーが無期限に繰り返されました。

json ファイルは次のようになります。

{
"metadata": {
    "formatVersion" : 2,
    "generatedBy"   : "OBJConverter",
    "vertices"      : 168,
    "faces"         : 144,
    "normals"       : 576,
    "colors"        : 0,
    "uvs"           : 175,
    "materials"     : 1
},
"scale" : 1000.000000,
"materials": [  {
    "DbgColor" : 15658734,
    "DbgIndex" : 0,
    "DbgName" : "phong1SG",
    "colorAmbient" : [0.0, 0.0, 0.0],
    "colorDiffuse" : [0.8, 0.8, 0.8],
    "colorSpecular" : [1.0, 1.0, 1.0],
    "illumination" : 4,
    "mapDiffuse" : "ginger_color.jpg",
    "opticalDensity" : 1.0,
    "specularCoef" : 98.0
}],
"vertices": [1900,6776,...],
"morphTargets": [],
"morphColors": [],
"normals": [-0.024569,-0.94821,...],
"colors": [],
"uvs": [[0.37164,0.65357,...]],
"faces": [43,1,...]
} 

手動変換のエラーは何ですか? 異なるコンバーターのバージョンから同じデータを使用することさえ可能ですか? これを行うより良い方法はありますか?

4

1 に答える 1

1

ファイルをエディターにドラッグしてからエクスポートすることにより、エディターを使用してそれらを変換できるはずです。悲しいことに、エクスポーターはまだ完成していません (UV がありません)...

于 2013-06-25T21:55:39.077 に答える