ページ 11

Pixi.JSを使ってモーションをかけたい

Posted: 2022年8月26日(金) 16:18
by Square
プラグイン初学者です。
敵にエンカウントしたときに発生するエフェクトを改造したいと思い、
Pixi.JSを使ってみようと思いましたが、うまくいきませんでした。
【自分のコード】

コード: 全て選択

(function(){
	Game_Screen.prototype.motionBlur = function(duration){

	const container = new Container();
	container.filters = [new MotionBlurFilter([1,2], 9)];
	this._fadeInDuration = duration;
	console.log("helloworld"); //テスト用
	};
	
	Scene_Map.prototype.startEncounterEffect = function() {
    this._encounterEffectDuration = this.encounterEffectSpeed();
	};
	
	Scene_Map.prototype.updateEncounterEffect = function() {
    if (this._encounterEffectDuration > 0) {
    	$gameScreen.motionBlur(duration);
        this._encounterEffectDuration--;
    	}
	};
})();
コンソールにはhelloworldが表示されるので、$gameScreen.motionBlur(duration);は呼び出せてると思うのですが、モーションブラーがかかりません。
Pixi.JSを使ってモーションをかけたいのですが、どうすればよいでしょうか。

Re: Pixi.JSを使ってモーションをかけたい

Posted: 2022年8月26日(金) 20:25
by 剣崎 宗二
何故なにも発動しないかと言いますと、一言で言えば「画面上に貼り付けられていない空っぽのContainerに対してフィルターを追加しているから」です。
実際そのcontainerはconst、つまり該当function内にしか存在せず、どこにも代入されておりませんよね?

画面上にフィルターを追加する際の参考としては、
Scene_Base.prototype.createColorFilter
Scene_Base.prototype.updateColorFilter
辺りをたどってみると良いかと思います。