function prepareTransform(/* tweenProp, */_, value) {
    if (typeof (value) === 'object' && !value.length) {
      var pv;
      var transformObject = {};
      var translate3dObj = {};
      var rotate3dObj = {};
      var scale3dObj = {};
      var skewObj = {};
      var axis = [{ translate3d: translate3dObj },
        { rotate3d: rotate3dObj },
        { skew: skewObj },
        { scale3d: scale3dObj }];

      Object.keys(value).forEach(function (prop) {
        if (/3d/.test(prop) && typeof (value[prop]) === 'object' && value[prop].length) {
          pv = value[prop].map(function (v) { return (prop === 'scale3d' ? parseFloat(v) : parseInt(v, 10)); });
          transformObject[prop] = prop === 'scale3d' ? [pv[0] || 1, pv[1] || 1, pv[2] || 1] : [pv[0] || 0, pv[1] || 0, pv[2] || 0];
        } else if (/[XYZ]/.test(prop)) {
          var obj = {};
          if (/translate/.test(prop)) {
            obj = translate3dObj;
          } else if (/rotate/.test(prop)) {
            obj = rotate3dObj;
          } else if (/scale/.test(prop)) {
            obj = scale3dObj;
          } else if (/skew/.test(prop)) {
            obj = skewObj;
          }
          var idx = prop.replace(/translate|rotate|scale|skew/, '').toLowerCase();
          obj[idx] = /scale/.test(prop) ? parseFloat(value[prop]) : parseInt(value[prop], 10);
        } else if (prop === 'skew') {
          pv = value[prop].map(function (v) { return parseInt(v, 10) || 0; });
          transformObject[prop] = [pv[0] || 0, pv[1] || 0];
        } else { // perspective
          transformObject[prop] = parseInt(value[prop], 10);
        }
      });

      axis.forEach(function (o) {
        var tp = Object.keys(o)[0];
        var tv = o[tp];
        if (Object.keys(tv).length && !transformObject[tp]) {
          if (tp === 'scale3d') {
            transformObject[tp] = [tv.x || 1, tv.y || 1, tv.z || 1];
          } else if (tp === 'skew') {
            transformObject[tp] = [tv.x || 0, tv.y || 0];
          } else { // translate | rotate
            transformObject[tp] = [tv.x || 0, tv.y || 0, tv.z || 0];
          }
        }
      });
      return transformObject;
    } // string | array
    // if ( typeof (value) === 'object' && value.length ) {
    // } else if ( typeof (value) === string && value.includes('matrix')) {
    // decompose matrix to object
    throw Error(("KUTE.js - \"" + value + "\" is not valid/supported transform function"));
  }
Returns the property tween object.
@param {string} _ the property name
@param {Object<string, string | number | (string | number)[]>} obj the property value
@returns {KUTE.transformMObject} the property tween object