2017-08-22 3 views
1

一部のfbxモデルでアニメーションに問題があります。たとえば、20秒間続くアニメーションがあれば、モデルは19秒間静止したままになります。そして、すべての変更は最後の1秒以内に起こります。他のfbxモデルでは、アニメーションが正しく実行されます。 私はアニメーションを実行するために使用していたコードは、次のされています3つのjsでFBXアニメーションが正しく実行されない

var clock = new THREE.Clock(); 
var mixers = []; 

function(object){ 
     object.position.set(0,0,0); 
     object.mixer = new THREE.AnimationMixer(object); 
     mixers.push(object.mixer); 
     console.log(object); 
     for (var a = 0; a < object.animations.length; a++){ 
      var action = object.mixer.clipAction(object.animations[a]); 
      action.play(); 
      console.log(action); 
     } 



     scene.add(object); 
     animate(); 
    } 

そしてアニメーションコードは次のとおりです: loader.loadコールバックがある

function animate() { 
    requestAnimationFrame(animate); 
    for(var i = 0; i < mixers.length; i++){ 
     mixers[i].update(clock.getDelta()); 
    } 
    render(); 
    stats.update(); 
} 

function render() { 
    if (mixer) { 
     mixer.update(clock.getDelta()); 
    } 
    renderer.render(scene, camera); 
} 

任意のアイデア?ありがとう!経験から

答えて

2

、私はFBXのアスキーエクスポート処理が(少なくともオートデスクマヤのために)常にどちらか

  1. 正しい開始と終了Mayaで設定時間または
  2. 与えを与えないことを伝えることができthreejsが正しくインポートされない一連の数値。

何が起こるのかはあなたが説明したように、何も起こらないアニメーションには多くの時間があります。私が見た限りでは、それは通常最後に終わっていますが、確かに始まりになることもあります。

fbxファイルを手動で修正することはできますが、開始時間を最初のフレームの時間に設定する機能を追加するだけで簡単です(最初のフレームが問題の場合は、2番目のフレームから開始します)。

私はこのコードをどこかに持っています。それを見つけてみましょう。そして、私はこの答えに追加します。

関連する問題