モザイクを使ったフェードイン・フェードアウトを作る【pixi.js】

pixi.jsではフィルターでスーパーファミコンのようなモザイク処理(正しい呼び方がわからない)を行うことができます。

今回は私がゲームで使っているモザイク処理のやり方を説明します。

@pixi/filter-pixelateをインストール

私が現在使っているpixi.jsのバージョン5ではモザイク処理は標準では入っていません。

なのでインストールする必要があります。

npm install @pixi/filter-pixelate

これでモザイク処理が使えるようになります。

モザイク処理の使い方

使う際はまずはインポートします。

import {PixelateFilter} from '@pixi/filter-pixelate';

そしてモザイク処理を行いたい要素(containerなど)に追加します。

this.pixelateFilter = new PixelateFilter();
this.pixelateFilter.size = 1;
this.filters = [this.pixelateFilter];

ここまでが準備です。このpixelateFilter.sizeがモザイクの大きさです。1は通常の解像度と同じ大きさです。これが大きくなるとモザイクが大きくなります。

フェードインやフェードアウトで使う際にはループでこのpixelateFilter.sizeの値を大きくしたり小さくしたりするとスーファミで見たことのあるような感じのモザイク処理が出来上がります。

画像の引き延ばされ方に注意

モザイク処理とは単純な拡大処理で1ドットを引き延ばして表示します。pixelateFilter.size = 4であれば4ドットずつの間隔で1ドットを4倍に拡大して表示します。

この時その1ドットは右と下に引き延ばされます。

そうすると見た目としてはモザイクが大きくなるにつれ右下に画像が動いているように見えてしまいます。

これの対処法としては単純にそのcontainerを反対方向、つまり左上に移動させることです。pixelateFilter.sizeの半分量を反対側に移動してやるとその場にとどまってモザイク処理がかかっているように見えます。

 

実際の動作を見てみたい方は私のゲームを遊んでみたくださいな(‘ω’)ノ

同カテゴリー記事

記事の感想・コメント

※コメントはまだありません※

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

最近作ったゲーム