/*: * @plugindesc 中央の明度を上げ、彩度を少し低めにしたグラデーション背景プラグイン * @target MZ * @help * このプラグインは中央に卵子を象るグラデーションと、全体的に彩度を調整した背景を描画します。 * * イベントの「スクリプト」コマンドで以下を使用してください。 * グラデーションを表示: GradientOverlay.show(); * グラデーションを削除: GradientOverlay.hide(); */ (() => { const GradientOverlay = {}; GradientOverlay.show = function() { // 既にグラデーションが存在する場合は何もしない if (SceneManager._gradientSprite) return; // スプライト作成 const gradientSprite = new Sprite(); const width = Graphics.width; const height = Graphics.height; // ビットマップ作成 const bitmap = new Bitmap(width, height); const context = bitmap._context; // 内側から外側に徐々に暗くなりつつ、彩度を低めに調整 const radialGradient = context.createRadialGradient( width / 2, height / 2, width / 4, // 中心と開始半径 width / 2, height / 2, width // 外側の半径 ); radialGradient.addColorStop(0, '#9A3C64'); // 中央のやや明るい紫(彩度控えめ) radialGradient.addColorStop(1, '#4D2033'); // 外側の暗い紫(彩度控えめ) context.fillStyle = radialGradient; context.fillRect(0, 0, width, height); // 卵子を象る楕円形のグラデーション const eggGradient = context.createRadialGradient( width / 2, height / 2, 0, // 楕円の中心(中央部から開始) width / 2, height / 2, 150 // 楕円の最大半径 ); eggGradient.addColorStop(0, 'rgba(255, 220, 220, 1)'); // 明るい桃色 eggGradient.addColorStop(0.5, 'rgba(200, 150, 180, 0.6)'); // 少し暗い桃色 eggGradient.addColorStop(1, 'rgba(100, 50, 80, 0)'); // 外側(透明な紫) context.fillStyle = eggGradient; context.save(); // 楕円を描画するためにスケーリング context.translate(width / 2, height / 2); // 中心を移動 context.scale(1.5, 1); // 横に広げて楕円形に context.beginPath(); context.arc(0, 0, 150, 0, Math.PI * 2); // 楕円形を描画 context.closePath(); context.fill(); context.restore(); // ビットマップを再描画 bitmap.baseTexture.update(); // スプライトにビットマップを設定 gradientSprite.bitmap = bitmap; // 現在のシーンにスプライトを追加 SceneManager._scene.addChild(gradientSprite); // スプライトを保持 SceneManager._gradientSprite = gradientSprite; }; GradientOverlay.hide = function() { // グラデーションが存在する場合は削除 if (SceneManager._gradientSprite) { SceneManager._scene.removeChild(SceneManager._gradientSprite); SceneManager._gradientSprite = null; } }; // グローバルに登録 window.GradientOverlay = GradientOverlay; })();