Three.js: Model yang diekspor Blender berubah bentuk saat animasi diterapkan

Dibuat pada 7 Sep 2014  ·  3Komentar  ·  Sumber: mrdoob/three.js

Saya mengalami masalah aneh saat memuat model dari eksportir Blender. Ketika saya memuat model tanpa menerapkan animasi, terlihat seperti ini--

screen shot 2014-09-07 at 1 26 00 am

tapi begitu saya menerapkan animasi, model berubah bentuk dan terlihat seperti ini--

screen shot 2014-09-07 at 1 24 25 am

dengan jari-jari terentang mengerikan dan tubuh berputar. Model masih melakukan animasi, tetapi berubah bentuk.

Berikut kode yang saya gunakan untuk memuat dan menghidupkan model

    var loader = new THREE.JSONLoader();
    loader.load( "js/models/Golfer_SWING.js", function(geometry, materials){

    for ( var i = 0; i < materials.length; i ++ ) {
        var m = materials[ i ];
        m.skinning = true;
    }

    playerObject = new THREE.SkinnedMesh( geometry, new THREE.MeshFaceMaterial( materials ) );
    playerObject.position.set( -50, -250, 0 );
    playerObject.scale.set( 100, 100, 100 );
    playerObject.rotation.y = -180 * Math.PI/180;

    scene.add( playerObject );

    playerObject.castShadow = true;
    playerObject.receiveShadow = true;

    helper = new THREE.SkeletonHelper( playerObject );
    helper.material.linewidth = 3;
    helper.visible = false;
    scene.add( helper );
    swingAnimation = new THREE.Animation( playerObject, geometry.animations[0] );
    swingAnimation.play();

    } );

Saya telah mencoba banyak perubahan konfigurasi yang disarankan untuk file campuran, tetapi tidak ada yang berfungsi. Berikut tautan ke file campuran.

http://cl.ly/3H3M2T3i1o1p

Saya menggunakan r68 dan eksportir blender terbaru.

Help (please use the forum)

Komentar yang paling membantu

Saya membuat beberapa perbaikan pada file blender Anda agar cocok untuk ekspor three.js.

  • Atur ulang skala objek mesh (ctrl-A, dalam mode objek)
  • Mengubah animasi untuk memulai dari frame 1, bukan frame 0. dan menggeser semua keyframe lainnya dengan satu frame.
  • Menambahkan bingkai kunci pose istirahat pada bingkai 0 (di luar rentang animasi baru)
  • Menambahkan semua simpul dari mesh klub ke grup simpul bernama "hand.R" (sama dengan nama tulang)

Sekarang Anda dapat mengekspor model dan animasi dengan benar dengan memilih frame 0, lalu mengekspor.

https://dl.dropboxusercontent.com/u/46299249/Golfer_FIXED.blend

Semua 3 komentar

Anda _harus_ mengekspor mesh dan animasi Anda dengan kerangka yang dibersihkan dari semua transformasi.

Saya mencoba dengan file Anda dan mendapatkan hasil yang tepat dengan memilih setiap tulang dalam mode pose dan kemudian memilih Pose->Clear Transform->All, dan kemudian melakukan ekspor three.js.

Ini tidak akan memengaruhi adegan Anda atau bingkai utama lainnya, tetapi Anda harus melakukannya setiap kali Anda mengekspor.

Saya membuat beberapa perbaikan pada file blender Anda agar cocok untuk ekspor three.js.

  • Atur ulang skala objek mesh (ctrl-A, dalam mode objek)
  • Mengubah animasi untuk memulai dari frame 1, bukan frame 0. dan menggeser semua keyframe lainnya dengan satu frame.
  • Menambahkan bingkai kunci pose istirahat pada bingkai 0 (di luar rentang animasi baru)
  • Menambahkan semua simpul dari mesh klub ke grup simpul bernama "hand.R" (sama dengan nama tulang)

Sekarang Anda dapat mengekspor model dan animasi dengan benar dengan memilih frame 0, lalu mengekspor.

https://dl.dropboxusercontent.com/u/46299249/Golfer_FIXED.blend

satori99, terima kasih banyak! Saya telah bergulat dengan ini selama berhari-hari. Dan banyak terima kasih telah menyediakan file tetap. Sekarang bekerja untuk saya :)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat