0
<html>
    <head>
        <title>My first Three.js app</title>
        <style>canvas { width: 100%; height: 100% }</style>
    </head>
    <body>
        <script src="https://raw.github.com/mrdoob/three.js/master/build/three.js"></script>
        <!--<script src="C:/Users/danr/Desktop/ThreeJS/three.js-master/build/three.js"></script>-->
        <script>
            var scene = new THREE.Scene();
            var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);

            var renderer = new THREE.WebGLRenderer();
            renderer.setSize(window.innerWidth, window.innerHeight);
            document.body.appendChild(renderer.domElement);
            
            camera.position.z = 5;
            
            var pointLight = new THREE.PointLight(0xFFFFFF);
            pointLight.position.x = 2;
            pointLight.position.y = 5;
            pointLight.position.z = 10;
            scene.add(pointLight);
            
            loader = new THREE.JSONLoader();
            loader.load( "./X738.js", function(geometry) 
            {
                mesh = new THREE.Mesh(geometry, new THREE.MeshNormalMaterial());
                mesh.scale.set( 1, 1, 1 );
                mesh.position.y = 0;
                mesh.position.x = 0;
                scene.add(mesh);
            });
            
            function render() {
                requestAnimationFrame(render);


                renderer.render(scene, camera);
            }
            render();
        </script>
    </body>
</html>

これが私のコードのすべてです。私は Apache2.2 サーバーを使用しており、Python を使用してモデルを FBX から Json に変換しました。これが私が得ているエラーメッセージです:

THREE.WebGLRenderer 57 three.js:18058
Uncaught SyntaxError: Unexpected token , three.js:9764
xhr.onreadystatechange three.js:9764

     xhr.onreadystatechange = function () {
        
                if ( xhr.readyState === xhr.DONE ) {
        
                    if ( xhr.status === 200 || xhr.status === 0 ) {
        
                        if ( xhr.responseText ) {
        
                            var json = JSON.parse( xhr.responseText );//*Uncaught SyntaxError: Unexpected token*
                            var result = context.parse( json, texturePath );
                            callback( result.geometry, result.materials );

何が間違っている可能性があるかについての提案はありますか??? さまざまな解決策を試しましたが、何も機能していないようで、非常に迷っています。

ありがとう!!!

編集: これは、Python FBX から JSON へのコンバーターが私に返してくれるもののサンプルです:

{
    "metadata": {
        "formatVersion" : 3.2,
        "type"      : "scene",
        "generatedBy"   : "convert-to-threejs.py",
        "objects"       : 1,
        "geometries"    : 1,
        "materials"     : 1,
        "textures"      : 1
    },


    "urlBaseType": "relativeToScene",

    "objects" :
    {
        "Tire_Front" : {
            "geometry" : "Geometry_40_Tire_Front",
            "material" : "Material #3319",
            "position" : [ 0, -423.113, 451.225 ],
            "rotation" : [ -1.5708, 0.000987928, 6.04932e-20 ],
            "scale"    : [ 1, 1, 1 ],
            "visible"  : true
        }
    },

    "geometries" :
    {
        "Geometry_40_Tire_Front" : {
            "type"  : "embedded",
            "id" : "Embed_40_Tire_Front"
        }
    },
4

1 に答える 1

0

.json ファイルで「Uncaught SyntaxError: Unexpected token」のソースを特定しました。括弧「{」または「[」を含む構文に注意してください。

{
    "metadata": {
        "formatVersion" : 3.2,
        "type"      : "scene",
        "generatedBy"   : "convert-to-threejs.py",
        "objects"       : 1,
        "geometries"    : 1,
        "materials"     : 1,
        "textures"      : 1
    },


    "urlBaseType": "relativeToScene",

    "objects" :
    {
        "Tire_Front" : {
            "geometry" : "Geometry_40_Tire_Front",
            "material" : "Material #3319",
            "position" : [ 0, -423.113, 451.225 ],
            "rotation" : [ -1.5708, 0.000987928, 6.04932e-20 ],
            "scale"    : [ 1, 1, 1 ],
            "visible"  : true
        }
    },

    "geometries" :
    {
        "Geometry_40_Tire_Front" : {
            "type"  : "embedded",
            "id" : "Embed_40_Tire_Front"
        }
    }

}

「JSONLoader」の代わりに「OBJLoader」を使用してオブジェクトをロードすることも役立ちます。

于 2015-06-30T02:32:05.023 に答える