【解決済み】画面にぼかしを入れるスクリプト

麻婆豆腐
記事: 27
登録日時: 2020年1月11日(土) 11:26

【解決済み】画面にぼかしを入れるスクリプト

投稿記事by 麻婆豆腐 » 2023年4月01日(土) 11:42

メニュー画面を開いたときにメニューの後ろ(マップ全体)にぼかしがかかる表現を、メニュー時ではなくマップ上で自由にONOFFしたいです(ピクチャで自作メニューを作っているため)。
MVで使っていたスクリプトはMZでは無理だったので、MZ版のスクリプトが知りたいです。
よろしくお願いします。

ちなみにMVで使っていたスクリプトはこれです。
ぼかしをかける

コード: 全て選択

var snap = SceneManager.snap();
snap.blur();
var back = new Sprite(snap);
var set = SceneManager._scene._spriteset;
set._pictureContainer.addChildAt(back, 0);

ぼかし解除

コード: 全て選択

SceneManager._scene._spriteset._pictureContainer.removeChildAt(0);
最後に編集したユーザー 麻婆豆腐 on 2023年4月03日(月) 10:16 [ 編集 1 回目 ]

名無し蛙
記事: 305
登録日時: 2015年11月23日(月) 02:46

Re: 画面にぼかしを入れるスクリプト

投稿記事by 名無し蛙 » 2023年4月02日(日) 02:48

それくらいならブラーフィルターを設定すれば反映されると思いますよ

コード: 全て選択

// 設定(フィルタを一つ追加)
SceneManager._scene._spriteset.filters.push(new PIXI.filters.BlurFilter());
// 解除(最新のフィルタを一つ除外)
SceneManager._scene._spriteset.filters.pop();

spriteset.filtersにはデフォルトで
ColorFilterというものが設定されているのでそこに影響を与えない様に注意してください。
麻婆豆腐
記事: 27
登録日時: 2020年1月11日(土) 11:26

Re: 画面にぼかしを入れるスクリプト

投稿記事by 麻婆豆腐 » 2023年4月02日(日) 06:02

ありがとうございます。
しかしそのスクリプトだとピクチャにもフィルターがかかってしまうようです。
マップをぼやけさせた上からピクチャを表示したいため、マップにのみブラーをかけたいです。
名無し蛙
記事: 305
登録日時: 2015年11月23日(月) 02:46

Re: 画面にぼかしを入れるスクリプト

投稿記事by 名無し蛙 » 2023年4月02日(日) 11:06

そういえば自作メニューの背景に使うんでしたっけ
それなら下手な事をせずにsnapを取ってぼかして背景に設定した方が良いですね

コード: 全て選択

// スナップショットの取得
const bitmap = SceneManager.snap();
// 新規スプライトを作りssを設定
const sprite = new Sprite(bitmap);
// ブラーフィルターを設定
sprite.filters = [new PIXI.filters.BlurFilter()];
// スプライトセットのベースに追加
SceneManager._scene._spriteset._baseSprite.addChild(sprite);

コード: 全て選択

// スプライトセットのベースのチルドレンの最後尾の要素数を取得
const index = SceneManager._scene._spriteset._baseSprite.children.length - 1;
// 最後尾の要素を削除
SceneManager._scene._spriteset._baseSprite.removeChildAt(index);

追記:
って自前でプラグイン組むならともかくピクチャの表示で実装するなら最前面に蓋したら何も映りませんね
ちょっと考えなおします

再追記:
spritesetに直接加えるのではなくbaseSpriteに追加するように修正しました

再々追記:
これで問題無いならわざわざsnapを取る必要すらなく
baseSpriteに直接ブラーフィルターを掛ければ良い事に気付いたので載せておきます。

コード: 全て選択

// 設定(フィルタを一つ追加)
SceneManager._scene._spriteset._baseSprite.filters.push(new PIXI.filters.BlurFilter());
// 解除(最新のフィルタを一つ除外)
SceneManager._scene._spriteset._baseSprite..filters.pop();
麻婆豆腐
記事: 27
登録日時: 2020年1月11日(土) 11:26

Re: 画面にぼかしを入れるスクリプト

投稿記事by 麻婆豆腐 » 2023年4月03日(月) 10:16

わ~再々追記までありがとうございます!お手数おかけしました(T_T)
おかげさまで理想通りの演出ができるようになりました!感謝です。

“MZ:質問” へ戻る