Scene_Map.prototype.fadeSpeed = function() { return 24 / 24; }; Sprite_Picture.prototype.updateOther = function() { const picture = this.picture(); this.opacity = picture.opacity(); this.blendMode = picture.blendMode(); this.rotation = (picture.angle() * Math.PI) / 180; if(this.visible && this._pictureId == 20){ var v = $gameVariables.value(113); var t = 30; var filter = new PIXI.filters.fadeInFilter(); filter.uniforms.key1 = v;//現在の時間 filter.uniforms.key2 = t;//全体にかかる時間 this.filters = [filter]; if($gameSwitches.value(140) && v < t){ v++; $gameVariables.setValue(113, v); }else if(!$gameSwitches.value(140) && 0 < v){ v--; $gameVariables.setValue(113, v); } } }; // フェードイン PIXI.filters.fadeInFilter = function () { var fragmentSrc = [ 'precision lowp float;', 'uniform float key1;',//0~100 'uniform float key2;',//0~100 'uniform sampler2D uSampler;', 'varying vec2 vTextureCoord;', "vec4 mapCoord( vec2 coord, vec4 color ){", "return vec4(0, 0, 0, color.a + key1 / key2 * 2.0 - 1.0);", "}", "void main(){", "vec4 color_o = texture2D(uSampler, vTextureCoord);", "vec4 color = mapCoord(gl_FragCoord.xy, color_o);", "gl_FragColor = vec4(color);", "}" ]; PIXI.Filter.call(this, null, // vertex shader fragmentSrc.join('\n'), // fragment shader {t:0.0} // uniforms ); }; PIXI.filters.fadeInFilter.prototype = Object.create(PIXI.Filter.prototype); PIXI.filters.fadeInFilter.prototype.constructor = PIXI.filters.fadeFilter;