Blenderエクスポーターからモデルをロードするときに奇妙な問題が発生しています。 アニメーションを適用せずにモデルをロードすると、次のようになります-
しかし、アニメーションを適用すると、モデルが変形して次のようになります-
指がひどく伸び、体がひねられた。 モデルは引き続きアニメーションを実行しますが、変形します。
モデルの読み込みとアニメーション化に使用しているコードは次のとおりです
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();
} );
ブレンドファイルに対して一般的に提案されている設定変更をたくさん試しましたが、どれも機能しません。 ブレンドファイルへのリンクは次のとおりです。
私はr68と最新のblenderエクスポーターを使用しています。
スケルトンからすべての変換をクリアして、メッシュとアニメーションをエクスポートする必要があります。
私はあなたのファイルを試してみましたが、ポーズモードですべてのボーンを選択し、[ポーズ]-> [変換のクリア]-> [すべて]を選択してから、three.jsエクスポートを実行することで適切な結果が得られました。
これはシーンや他のキーフレームには影響しませんが、エクスポートするたびに行う必要があります。
私はあなたのblenderファイルにいくつかの修正を加えて、three.jsのエクスポートに適したものにしました。
これで、フレーム0を選択してからエクスポートすることで、モデルとアニメーションを正しくエクスポートできます。
https://dl.dropboxusercontent.com/u/46299249/Golfer_FIXED.blend
satori99、どうもありがとうございました! 私はこれと何日も取り組んできました。 そして、固定ファイルを提供してくれてありがとう。 それは今私のために働いています:)
最も参考になるコメント
私はあなたのblenderファイルにいくつかの修正を加えて、three.jsのエクスポートに適したものにしました。
これで、フレーム0を選択してからエクスポートすることで、モデルとアニメーションを正しくエクスポートできます。
https://dl.dropboxusercontent.com/u/46299249/Golfer_FIXED.blend