在Three.js中,調用action.play()
使對象消失,控制檯上沒有任何錯誤或警告。Three.js調用clipAction.play()使動畫對象消失
我使用THREE.ObjectLoader
加載在攪拌機中創建的JSON文件。 srt(位置/比例/四元數)動畫位於生成的文件中。形態目標也是如此。爲了優化文件大小,我將srt作爲一系列空對象進行動畫處理。形態目標軌道位於主要目標中,我克隆5次以建立角色(確切地說是氣球)。
我以前做過大量的測試來介紹形狀/變形動畫。成功後,我確定了所有的動畫。只有被消失的模型所支配。 srt(位置/比例/四元數)動畫以前工作正常。但是在重構代碼之後,在調用action.play()
時要少些間諜。那時對象就消失了。迴應混音器和包含剪輯的陣列,一切都看起來是正確的(即我看到的軌道,名稱是正確的等)。同時檢查新生成的JSON,它看起來是一樣的和正確的(也沒有改變SRT動畫,只引入了動畫)
所以我迷路了,覺得這看起來越來越像一個bug。從以往的經驗來看,我確實知道它的工作原理(或已經工作)。
我創建了一個的jsfiddle:https://jsfiddle.net/oompol/3ya6sqed/
[編輯]我打開action.play並調用該函數從DIV [/編輯]鏈接,請注意我註釋掉調用action.play()
。所以你看到負載和初始化工作。請參閱以下的功能
function playScene(scene) {
for (parentName in srtMixers) {
var clpName = "balloon1_fly";
var clp = THREE.AnimationClip.findByName(animLib, clpName);
var action = srtMixers[parentName].clipAction(clp);
action.clampWhenFinished = true;
console.log("playScene:", clpName, clp, parentName, srtMixers);
//this is when the problem happens
action.play();
}
}
如果場景導出爲'window.fgScene = fgScene',然後在開發工具檢查它,你可以看到的位置/旋轉/縮放和有鱗向上的' 1000872413286' ......這似乎是可疑的? –
他們是?!不知道你的意思是由window.fgScene = fGscene,當你設置。但我知道這些音階不是動畫的。如果他們發生任何事情,它會降低它們1. – bakajin
請參閱[在Google Chrome中檢查jsfiddle.net上的javascript](https:// stackoverflow。COM /問題/ 5655058 /檢查的JavaScript-上的jsfiddle網功能於谷歌鉻)。您可以使用調試器來檢查'scene.children'並查看場景中所有內容的位置和比例。 –