fixes
diff --git a/parser/CompConverter.js b/parser/CompConverter.js index 2e6bcf0..8f69d3c 100644 --- a/parser/CompConverter.js +++ b/parser/CompConverter.js
@@ -17,8 +17,8 @@ if(!renderCancelled){ var dataFile = new File(exportFolder.fullName+'/data.json'); dataFile.open('w','TEXT','????'); - //dataFile.write(JSON.stringify(compositionData)); //DO NOT ERASE, JSON UNFORMATTED - dataFile.write(JSON.stringify(compositionData, null, ' ')); //DO NOT ERASE, JSON FORMATTED + dataFile.write(JSON.stringify(compositionData)); //DO NOT ERASE, JSON UNFORMATTED + //dataFile.write(JSON.stringify(compositionData, null, ' ')); //DO NOT ERASE, JSON FORMATTED dataFile.close(); } currentExportingComposition+=1; @@ -104,8 +104,9 @@ currentExportingComposition+=1; } } - //If we get here there are no more compositions to render and callback is executed - helperFootage.remove(); + //If it gets here there are no more compositions to render and callback is executed + //helperSolid.remove(); + //helperFootage.remove(); endCallback.apply(); } @@ -114,6 +115,14 @@ var helperImportOptions = new ImportOptions(); helperImportOptions.file = helperFile; helperFootage = mainProject.importFile(helperImportOptions); + var helperFolder = helperFootage.item(2); + var helperComp = helperFootage.item(1); + //helperSolid = helperComp.layers.addSolid([1.0,1.0,0], "helperSolid", 10, 10, 1); + //helperSolid = helperComp.layers.addNull(2); + //helperSolid.layerInfo.transform['Anchor Point'] + //helperSolid.transform['Anchor Point'].expression = "velocityAtTime(time)"; + //helperSolid.parentFolder = helperFolder; + rqManager.setProject(app.project); LayerConverter.setCallback(layersConverted); currentExportingComposition = 0;
diff --git a/parser/DOMAnimationManager.js b/parser/DOMAnimationManager.js index e103dca..b01d126 100644 --- a/parser/DOMAnimationManager.js +++ b/parser/DOMAnimationManager.js
@@ -242,6 +242,9 @@ layerOb.ks.p = extrasInstance.roundNumber(layerInfo.transform.position.valueAtTime(0,false),3); } if(layerInfo.transform['Anchor Point'].numKeys>1){ + /*if(lType == 'ShapeLayer'){ + prepareHelperSolid(layerInfo.transform['Anchor Point']); + }*/ extrasInstance.convertToBezierValues(layerInfo.transform['Anchor Point'], frameRate, layerOb.ks,'a'); }else{ layerOb.ks.a = extrasInstance.roundNumber(layerInfo.transform['Anchor Point'].valueAtTime(0,false),3); @@ -263,6 +266,23 @@ } } + function prepareHelperSolid(property){ + var helperAnchorPoint = helperSolid.transform["Anchor Point"]; + var j,jLen = helperAnchorPoint.numKeys; + while(jLen > 0){ + helperAnchorPoint.removeKey(1); + jLen -= 1; + } + jLen = property.numKeys; + for(j = 0;j<jLen; j += 1){ + var keyIn = property.keyInTemporalEase(j+1); + var keyOut = property.keyOutTemporalEase(j+1); + helperAnchorPoint.addKey(property.keyTime(j+1)); + helperAnchorPoint.setValueAtKey(j+1,property.keyValue(j+1)); + //helperAnchorPoint.setTemporalEaseAtKey(j+1, keyIn, keyOut); + } + } + function createLayers(compo, layersData, frameRate){ var i, len = compo.layers.length; for(i = 0;i<len;i++){
diff --git a/parser/extras.js b/parser/extras.js index d795605..dbb4d63 100644 --- a/parser/extras.js +++ b/parser/extras.js
@@ -545,10 +545,10 @@ if(property.propertyValueType == PropertyValueType.ThreeD_SPATIAL || property.propertyValueType == PropertyValueType.TwoD_SPATIAL || property.propertyValueType == PropertyValueType.SHAPE ){ property.expression = propertyExpression; } - bezierIn.x = extrasInstance.roundNumber(bezierIn.x,3); + /*bezierIn.x = extrasInstance.roundNumber(bezierIn.x,3); bezierIn.y = extrasInstance.roundNumber(bezierIn.y,3); bezierOut.x = extrasInstance.roundNumber(bezierOut.x,3); - bezierOut.y = extrasInstance.roundNumber(bezierOut.y,3); + bezierOut.y = extrasInstance.roundNumber(bezierOut.y,3);*/ segmentOb.i = bezierIn; segmentOb.o = bezierOut; segmentOb.n = (bezierIn.x.toString()+'_'+bezierIn.y.toString()+'_'+bezierOut.x.toString()+'_'+bezierOut.y.toString()).replace(/\./g, 'p');
diff --git a/parser/global.js b/parser/global.js index ac9dab9..3ca83c7 100644 --- a/parser/global.js +++ b/parser/global.js
@@ -1,5 +1,7 @@ /****** INIT Var Declarations ******/ var helperFootage; +//Solid for anchor point fix on shape layers +var helperSolid; //Destination export folder var exportFolder; //Interval objects container
diff --git a/player/index.html b/player/index.html index 60c1ee9..a0416b8 100644 --- a/player/index.html +++ b/player/index.html
@@ -4,6 +4,7 @@ <!-- build:js bodymovin.js --> <script src="js/main.js"></script> <script src="js/3rd_party/transformation-matrix.js"></script> + <script src="js/3rd_party/BezierEasing.js"></script> <script src="js/utils/MatrixManager.js"></script> <script src="js/utils/animationFramePolyFill.js"></script> <script src="js/utils/common.js"></script>
diff --git a/player/js/elements/canvasElements/CVBaseElement.js b/player/js/elements/canvasElements/CVBaseElement.js index b49059d..57c2c2b 100644 --- a/player/js/elements/canvasElements/CVBaseElement.js +++ b/player/js/elements/canvasElements/CVBaseElement.js
@@ -59,7 +59,7 @@ ctx.globalAlpha = ctx.globalAlpha*this.currentAnimData.tr.o; matrixValue = this.currentAnimData.matrixArray; ctx.transform(matrixValue[0], matrixValue[1], matrixValue[2], matrixValue[3], matrixValue[4], matrixValue[5]); - console.log('this.currentAnimData.tr.a: ',this.currentAnimData.tr.a); + ///console.log('this.currentAnimData.tr.a: ',this.currentAnimData.tr.a); ctx.translate(-this.currentAnimData.tr.a[0],-this.currentAnimData.tr.a[1]); if(this.data.hasMask){ this.maskManager.draw();
diff --git a/player/js/elements/canvasElements/CVShapeItemElement.js b/player/js/elements/canvasElements/CVShapeItemElement.js index 241bb08..978d8b5 100644 --- a/player/js/elements/canvasElements/CVShapeItemElement.js +++ b/player/js/elements/canvasElements/CVShapeItemElement.js
@@ -70,6 +70,7 @@ var matrixValue = tr.mtArr; if(matrixValue[0] !== 1 || matrixValue[1] !== 0 || matrixValue[2] !== 0 || matrixValue[3] !== 1 || matrixValue[4] !== 0 || matrixValue[5] !== 0){ ctx.save(); + console.log('matrixValue: ',matrixValue); ctx.transform(matrixValue[0], matrixValue[1], matrixValue[2], matrixValue[3], matrixValue[4], matrixValue[5]); flag = true; }
diff --git a/player/js/utils/DataManager.js b/player/js/utils/DataManager.js index ebeb75f..5347db6 100644 --- a/player/js/utils/DataManager.js +++ b/player/js/utils/DataManager.js
@@ -669,9 +669,15 @@ keyData.__fnct = fnc; } perc = fnc('',(frameNum)-(keyData.t-offsetTime),0,1,(nextKeyData.t-offsetTime)-(keyData.t-offsetTime)); + //var easing = new BezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y); + //var prePerc = ((frameNum)-(keyData.t-offsetTime))/((nextKeyData.t-offsetTime)-(keyData.t-offsetTime)); + //console.log('prePerc: ',prePerc); + //console.log('easing: ',easing(prePerc)); ///perc = 0; ///var distanceInLine = 0; var distanceInLine = bezierData.segmentLength*perc; + //console.log('perc: ',perc); + var segmentPerc; var addedLength = 0; dir = 1; @@ -701,8 +707,8 @@ }else{ propertyArray = bezierData.points[j].point; } - keyData.__lastPoint = j; - keyData.__lastDistanceInLine = distanceInLine; + //keyData.__lastPoint = j; + //keyData.__lastDistanceInLine = distanceInLine; break; }else if(j == bezierData.points.length - 1){ if(interpolatedParams.type == 'p'){ @@ -954,7 +960,8 @@ interpolatedParams.arrayFlag = false; interpolatedParams.type = 'default'; if(renderType == 'canvas'){ - renderedData.an.matrixArray = matrixInstance.getMatrixArrayFromParams(r,sx,sy,px,py); + //renderedData.an.matrixArray = matrixInstance.getMatrixArrayFromParams(r,sx,sy,px,py); + renderedData.an.matrixArray = matrixInstance.getMatrixArrayFromParams(matrixParams.r,matrixParams.sx,matrixParams.sy,matrixParams.px,matrixParams.py); }else{ renderedData.an.matrixValue = matrixInstance.getMatrix2FromParams(r,sx,sy,px,py); } @@ -1097,7 +1104,8 @@ interpolatedParams.arrayFlag = false; interpolatedParams.type = 'default'; if(renderType == 'canvas'){ - shapeTrOb.mtArr = matrixInstance.getMatrixArrayFromParams(r,sx,sy,px,py); + shapeTrOb.mtArr = matrixInstance.getMatrixArrayFromParams(matrixParams.r,matrixParams.sx,matrixParams.sy,matrixParams.px,matrixParams.py); + ///shapeTrOb.mtArr = matrixInstance.getMatrixArrayFromParams(r,sx,sy,px,py); }else{ shapeTrOb.mt = matrixInstance.getMatrix2FromParams(r,sx,sy,px,py); }