xzw 4 miesięcy temu
rodzic
commit
9347247aec

+ 5 - 8
public/lib/potree/potree.js

@@ -82562,21 +82562,17 @@
 	        var endTime1 = key.time + key.dur + fadeTimeEnd;
 	        var startTime2 = key.time + fadeTimeStart;
 	        var endTime2 = key.time + key.dur - fadeTimeEnd;
-	        key.tempTime_ = time - startTime1; //当前动作时间 
+	        key.tempTime_ = MathUtils.clamp(time - key.time, 0, key.dur); //time - startTime1 //当前动作时间 
 
-	        if (i == 0 && time < key.time) {
-	          //开始前维持第一个动作
-	          key.tempTime_ = 0;
+	        if (i == 0 && time < startTime2) {
+	          //开始前维持第一个动作 
 	          return 1;
 	        } else if (i == keys.length - 1 && time > endTime2) {
 	          //所有动作播完后维持最后一个动作
-	          key.tempTime_ = Math.min(key.tempTime_, key.dur);
 	          return 1;
 	        } else {
 	          if (time < startTime1 || time > endTime1) return 0; //out bound 
 
-	          key.tempTime_ = time - startTime1; //当前动作时间 
-
 	          if (time >= startTime2 && time <= endTime2) return 1;
 	          if (time < startTime2) {
 	            return Potree.math.linearClamp(time, [startTime1, startTime2], [0, 1]);
@@ -82614,7 +82610,8 @@
 	      animateActions.forEach(action => {
 	        action.setEffectiveTimeScale(action.tempSW_.scale); //speed  只有没paused时有效
 	        action.setEffectiveWeight(action.tempSW_.weight);
-	        action.time = action.tempSW_.time % (action._clip.duration / action.tempSW_.scale) * action.tempSW_.scale; //只有paused时有效
+	        action.time = action.tempSW_.time % ((action.clipDur_ || action._clip.duration) / action.tempSW_.scale) * action.tempSW_.scale; //只有paused时有效
+	        action.tempSW_.weight < 1 && console.log('action', action._clip.name, action.time, action.weight);
 	      });
 
 	      //model.mixer.timeScale = 1 ;

Plik diff jest za duży
+ 1 - 1
public/lib/potree/potree.js.map


+ 1 - 1
src/sdk/cover/index.js

@@ -1574,7 +1574,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                             } 
                         },
                         getSupportActions(){
-                            return model.actions?.map(e=>{return {name:e._clip.name, duration:e._clip.duration}}) //model.actions?.map(e=>e._clip.name)
+                            return model.actions?.map(e=>{return {name:e._clip.name, duration:e._clip.duration}}) //界面上的一次循环时长保留小数位方式为floor,为了避免超出时间使动作回到开头
                         },
                         setDefaultPose(pose){
                             model.defaultAniPose = pose