1
|
{"uid":"2A807B6228D551400E9A06E22E5AA73F781A","isLoaded":true,"lastModificationTime":0,"items":{"name":"Component_Live2DAnimation","type":"game_script","order":16,"content":"# ===================================================================\n#\n# Script: Component_Live2DAnimation\n#\n# $$COPYRIGHT$$\n#\n# ===================================================================\nclass Component_Live2DAnimation extends gs.Component_Animation\n ###*\n * Executes an animation on specific Live2D model-parameter of the Live2D game-object.\n *\n * @module gs\n * @class Component_Live2DAnimation\n * @extends gs.Component_Animation\n * @memberof gs\n * @constructor\n ###\n constructor: (data) ->\n super\n \n ###*\n * The easing-object used for the animation.\n * @property easing\n * @type gs.Easing\n ###\n @easing = new gs.Easing(null, data?.easing)\n ###*\n * The parameter name to animate.\n * @property param\n * @type string\n ###\n @param = \"\"\n \n ###*\n * Serializes the animation into a data-bundle.\n *\n * @method toDataBundle\n ###\n toDataBundle: ->\n easing: @easing\n \n ###*\n * Updates the animation.\n *\n * @method update\n ### \n update: ->\n super\n if not @easing.isRunning then return\n\n @easing.updateValue()\n @object.visual.l2dObject.setParameter(@param, @easing.value)\n \n if not @easing.isRunning\n @callback?(@object, this)\n \n ###*\n * Starts the animation.\n *\n * @method start\n * @param {string} param The name of the parameter to animate.\n * @param {number} value The target value.\n * @param {number} duration The duration in frames.\n * @param {Object} easingType The easing-type.\n * @param {function} [callback] An optional callback called if the animation has been finished. \n ### \n start: (param, value, duration, easingType, callback) ->\n currentValue = @object.visual.l2dObject.getParameter(param)\n @param = param\n @callback = callback\n @easing.type = easingType || gs.Easings.EASE_LINEAR[gs.EasingTypes.EASE_IN]\n if currentValue == value then return @callback?(@object, this)\n \n if duration == 0 or @isInstantSkip()\n @object.visual.l2dObject.setParameter(param, value)\n @callback?(@object, this)\n else\n @easing.startValue(currentValue, value - currentValue, duration)\n \ngs.Component_Live2DAnimation = Component_Live2DAnimation","parentId":"A8E9945CKEE5CA4855SAC81E480CB8098E0E","folder":false,"scriptType":0,"compiledContent":"var Component_Live2DAnimation,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\nComponent_Live2DAnimation = (function(superClass) {\n extend(Component_Live2DAnimation, superClass);\n\n\n /**\n * Executes an animation on specific Live2D model-parameter of the Live2D game-object.\n *\n * @module gs\n * @class Component_Live2DAnimation\n * @extends gs.Component_Animation\n * @memberof gs\n * @constructor\n */\n\n function Component_Live2DAnimation(data) {\n Component_Live2DAnimation.__super__.constructor.apply(this, arguments);\n\n /**\n * The easing-object used for the animation.\n * @property easing\n * @type gs.Easing\n */\n this.easing = new gs.Easing(null, data != null ? data.easing : void 0);\n\n /**\n * The parameter name to animate.\n * @property param\n * @type string\n */\n this.param = \"\";\n }\n\n\n /**\n * Serializes the animation into a data-bundle.\n *\n * @method toDataBundle\n */\n\n Component_Live2DAnimation.prototype.toDataBundle = function() {\n return {\n easing: this.easing\n };\n };\n\n\n /**\n * Updates the animation.\n *\n * @method update\n */\n\n Component_Live2DAnimation.prototype.update = function() {\n Component_Live2DAnimation.__super__.update.apply(this, arguments);\n if (!this.easing.isRunning) {\n return;\n }\n this.easing.updateValue();\n this.object.visual.l2dObject.setParameter(this.param, this.easing.value);\n if (!this.easing.isRunning) {\n return typeof this.callback === \"function\" ? this.callback(this.object, this) : void 0;\n }\n };\n\n\n /**\n * Starts the animation.\n *\n * @method start\n * @param {string} param The name of the parameter to animate.\n * @param {number} value The target value.\n * @param {number} duration The duration in frames.\n * @param {Object} easingType The easing-type.\n * @param {function} [callback] An optional callback called if the animation has been finished.\n */\n\n Component_Live2DAnimation.prototype.start = function(param, value, duration, easingType, callback) {\n var currentValue;\n currentValue = this.object.visual.l2dObject.getParameter(param);\n this.param = param;\n this.callback = callback;\n this.easing.type = easingType || gs.Easings.EASE_LINEAR[gs.EasingTypes.EASE_IN];\n if (currentValue === value) {\n return typeof this.callback === \"function\" ? this.callback(this.object, this) : void 0;\n }\n if (duration === 0 || this.isInstantSkip()) {\n this.object.visual.l2dObject.setParameter(param, value);\n return typeof this.callback === \"function\" ? this.callback(this.object, this) : void 0;\n } else {\n return this.easing.startValue(currentValue, value - currentValue, duration);\n }\n };\n\n return Component_Live2DAnimation;\n\n})(gs.Component_Animation);\n\ngs.Component_Live2DAnimation = Component_Live2DAnimation;\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUEseUJBQUE7RUFBQTs7O0FBQU07Ozs7QUFDRjs7Ozs7Ozs7OztFQVNhLG1DQUFDLElBQUQ7SUFDVCw0REFBQSxTQUFBOztBQUVBOzs7OztJQUtBLElBQUMsQ0FBQSxNQUFELEdBQWMsSUFBQSxFQUFFLENBQUMsTUFBSCxDQUFVLElBQVYsaUJBQWdCLElBQUksQ0FBRSxlQUF0Qjs7QUFDZDs7Ozs7SUFLQSxJQUFDLENBQUEsS0FBRCxHQUFTO0VBZEE7OztBQWdCYjs7Ozs7O3NDQUtBLFlBQUEsR0FBYyxTQUFBO1dBQ1Y7TUFBQSxNQUFBLEVBQVEsSUFBQyxDQUFBLE1BQVQ7O0VBRFU7OztBQUdkOzs7Ozs7c0NBS0EsTUFBQSxHQUFRLFNBQUE7SUFDSix1REFBQSxTQUFBO0lBQ0EsSUFBRyxDQUFJLElBQUMsQ0FBQSxNQUFNLENBQUMsU0FBZjtBQUE4QixhQUE5Qjs7SUFFQSxJQUFDLENBQUEsTUFBTSxDQUFDLFdBQVIsQ0FBQTtJQUNBLElBQUMsQ0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUF6QixDQUFzQyxJQUFDLENBQUEsS0FBdkMsRUFBOEMsSUFBQyxDQUFBLE1BQU0sQ0FBQyxLQUF0RDtJQUVBLElBQUcsQ0FBSSxJQUFDLENBQUEsTUFBTSxDQUFDLFNBQWY7bURBQ0ksSUFBQyxDQUFBLFNBQVUsSUFBQyxDQUFBLFFBQVEsZUFEeEI7O0VBUEk7OztBQVVSOzs7Ozs7Ozs7OztzQ0FVQSxLQUFBLEdBQU8sU0FBQyxLQUFELEVBQVEsS0FBUixFQUFlLFFBQWYsRUFBeUIsVUFBekIsRUFBcUMsUUFBckM7QUFDSCxRQUFBO0lBQUEsWUFBQSxHQUFlLElBQUMsQ0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUF6QixDQUFzQyxLQUF0QztJQUNmLElBQUMsQ0FBQSxLQUFELEdBQVM7SUFDVCxJQUFDLENBQUEsUUFBRCxHQUFZO0lBQ1osSUFBQyxDQUFBLE1BQU0sQ0FBQyxJQUFSLEdBQWUsVUFBQSxJQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBWSxDQUFBLEVBQUUsQ0FBQyxXQUFXLENBQUMsT0FBZjtJQUNwRCxJQUFHLFlBQUEsS0FBZ0IsS0FBbkI7QUFBOEIsbURBQU8sSUFBQyxDQUFBLFNBQVUsSUFBQyxDQUFBLFFBQVEsZUFBekQ7O0lBRUEsSUFBRyxRQUFBLEtBQVksQ0FBWixJQUFpQixJQUFDLENBQUEsYUFBRCxDQUFBLENBQXBCO01BQ0ksSUFBQyxDQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQXpCLENBQXNDLEtBQXRDLEVBQTZDLEtBQTdDO21EQUNBLElBQUMsQ0FBQSxTQUFVLElBQUMsQ0FBQSxRQUFRLGVBRnhCO0tBQUEsTUFBQTthQUlJLElBQUMsQ0FBQSxNQUFNLENBQUMsVUFBUixDQUFtQixZQUFuQixFQUFpQyxLQUFBLEdBQVEsWUFBekMsRUFBdUQsUUFBdkQsRUFKSjs7RUFQRzs7OztHQTNENkIsRUFBRSxDQUFDOztBQXdFM0MsRUFBRSxDQUFDLHlCQUFILEdBQStCIiwic291cmNlc0NvbnRlbnQiOlsiIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4jXG4jICAgU2NyaXB0OiBDb21wb25lbnRfTGl2ZTJEQW5pbWF0aW9uXG4jXG4jICAgJCRDT1BZUklHSFQkJFxuI1xuIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5jbGFzcyBDb21wb25lbnRfTGl2ZTJEQW5pbWF0aW9uIGV4dGVuZHMgZ3MuQ29tcG9uZW50X0FuaW1hdGlvblxuICAgICMjIypcbiAgICAqIEV4ZWN1dGVzIGFuIGFuaW1hdGlvbiBvbiBzcGVjaWZpYyBMaXZlMkQgbW9kZWwtcGFyYW1ldGVyIG9mIHRoZSBMaXZlMkQgIGdhbWUtb2JqZWN0LlxuICAgICpcbiAgICAqIEBtb2R1bGUgZ3NcbiAgICAqIEBjbGFzcyBDb21wb25lbnRfTGl2ZTJEQW5pbWF0aW9uXG4gICAgKiBAZXh0ZW5kcyBncy5Db21wb25lbnRfQW5pbWF0aW9uXG4gICAgKiBAbWVtYmVyb2YgZ3NcbiAgICAqIEBjb25zdHJ1Y3RvclxuICAgICMjI1xuICAgIGNvbnN0cnVjdG9yOiAoZGF0YSkgLT5cbiAgICAgICAgc3VwZXJcbiAgICAgICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBUaGUgZWFzaW5nLW9iamVjdCB1c2VkIGZvciB0aGUgYW5pbWF0aW9uLlxuICAgICAgICAqIEBwcm9wZXJ0eSBlYXNpbmdcbiAgICAgICAgKiBAdHlwZSBncy5FYXNpbmdcbiAgICAgICAgIyMjXG4gICAgICAgIEBlYXNpbmcgPSBuZXcgZ3MuRWFzaW5nKG51bGwsIGRhdGE/LmVhc2luZylcbiAgICAgICAgIyMjKlxuICAgICAgICAqIFRoZSBwYXJhbWV0ZXIgbmFtZSB0byBhbmltYXRlLlxuICAgICAgICAqIEBwcm9wZXJ0eSBwYXJhbVxuICAgICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAgICAjIyNcbiAgICAgICAgQHBhcmFtID0gXCJcIlxuICAgICAgICBcbiAgICAjIyMqXG4gICAgKiBTZXJpYWxpemVzIHRoZSBhbmltYXRpb24gaW50byBhIGRhdGEtYnVuZGxlLlxuICAgICpcbiAgICAqIEBtZXRob2QgdG9EYXRhQnVuZGxlXG4gICAgIyMjXG4gICAgdG9EYXRhQnVuZGxlOiAtPlxuICAgICAgICBlYXNpbmc6IEBlYXNpbmdcbiAgICAgXG4gICAgIyMjKlxuICAgICogVXBkYXRlcyB0aGUgYW5pbWF0aW9uLlxuICAgICpcbiAgICAqIEBtZXRob2QgdXBkYXRlXG4gICAgIyMjICAgXG4gICAgdXBkYXRlOiAtPlxuICAgICAgICBzdXBlclxuICAgICAgICBpZiBub3QgQGVhc2luZy5pc1J1bm5pbmcgdGhlbiByZXR1cm5cblxuICAgICAgICBAZWFzaW5nLnVwZGF0ZVZhbHVlKClcbiAgICAgICAgQG9iamVjdC52aXN1YWwubDJkT2JqZWN0LnNldFBhcmFtZXRlcihAcGFyYW0sIEBlYXNpbmcudmFsdWUpXG4gICAgICAgIFxuICAgICAgICBpZiBub3QgQGVhc2luZy5pc1J1bm5pbmdcbiAgICAgICAgICAgIEBjYWxsYmFjaz8oQG9iamVjdCwgdGhpcylcbiBcbiAgICAjIyMqXG4gICAgKiBTdGFydHMgdGhlIGFuaW1hdGlvbi5cbiAgICAqXG4gICAgKiBAbWV0aG9kIHN0YXJ0XG4gICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW0gVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlciB0byBhbmltYXRlLlxuICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIFRoZSB0YXJnZXQgdmFsdWUuXG4gICAgKiBAcGFyYW0ge251bWJlcn0gZHVyYXRpb24gVGhlIGR1cmF0aW9uIGluIGZyYW1lcy5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBlYXNpbmdUeXBlIFRoZSBlYXNpbmctdHlwZS5cbiAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtjYWxsYmFja10gQW4gb3B0aW9uYWwgY2FsbGJhY2sgY2FsbGVkIGlmIHRoZSBhbmltYXRpb24gaGFzIGJlZW4gZmluaXNoZWQuIFxuICAgICMjIyAgXG4gICAgc3RhcnQ6IChwYXJhbSwgdmFsdWUsIGR1cmF0aW9uLCBlYXNpbmdUeXBlLCBjYWxsYmFjaykgLT5cbiAgICAgICAgY3VycmVudFZhbHVlID0gQG9iamVjdC52aXN1YWwubDJkT2JqZWN0LmdldFBhcmFtZXRlcihwYXJhbSlcbiAgICAgICAgQHBhcmFtID0gcGFyYW1cbiAgICAgICAgQGNhbGxiYWNrID0gY2FsbGJhY2tcbiAgICAgICAgQGVhc2luZy50eXBlID0gZWFzaW5nVHlwZSB8fCBncy5FYXNpbmdzLkVBU0VfTElORUFSW2dzLkVhc2luZ1R5cGVzLkVBU0VfSU5dXG4gICAgICAgIGlmIGN1cnJlbnRWYWx1ZSA9PSB2YWx1ZSB0aGVuIHJldHVybiBAY2FsbGJhY2s/KEBvYmplY3QsIHRoaXMpXG4gICAgICAgIFxuICAgICAgICBpZiBkdXJhdGlvbiA9PSAwIG9yIEBpc0luc3RhbnRTa2lwKClcbiAgICAgICAgICAgIEBvYmplY3QudmlzdWFsLmwyZE9iamVjdC5zZXRQYXJhbWV0ZXIocGFyYW0sIHZhbHVlKVxuICAgICAgICAgICAgQGNhbGxiYWNrPyhAb2JqZWN0LCB0aGlzKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBAZWFzaW5nLnN0YXJ0VmFsdWUoY3VycmVudFZhbHVlLCB2YWx1ZSAtIGN1cnJlbnRWYWx1ZSwgZHVyYXRpb24pXG4gICAgICAgIFxuZ3MuQ29tcG9uZW50X0xpdmUyREFuaW1hdGlvbiA9IENvbXBvbmVudF9MaXZlMkRBbmltYXRpb24iXX0=\n//# sourceURL=Component_Live2DAnimation_158.js"},"summary":["name","type"]}
|