豪華画面エフェクトの詰め合わせ(プチ更新:適用ターゲット追加)

ツキミ

ユーザー
FilterController.js v2.0.10
Tsukimi

プラグイン紹介
このプラグインは、pixi ビルドインの filters をコントロールするためのプラグインです。


デモ
「まずどんな効果があるか見たい!」という方は、
PIXIのフィルターデモ
↑こちらのデモで遊んでみてください。


使い方
プラグインコマンドと、メモ欄のタグによるエフェクト作成ができます。
まずはプラグインコマンドから説明していきます。

※※※プラグインコマンドのエフェクト作成
まず最初は、作りたいエフェクトを選びます。例として、twist(画面のねじれ)を挙げます。

このエフェクトを作るには、プラグインコマンドで
・createFilter [id] [エフェクト名] [適用ターゲット]
createFilter ねじれ1号 twist 0
を実行するだけでいいです。
 ねじれ1号:識別用の名前です。 番号、言葉……お好きな名前でどうぞ!
 twist:どのエフェクトかを指定してください。(エフェクトの種類を参照)
 0:エフェクトの適用ターゲットは何か。
  - 効果ターゲット:
   0: 画面
   1: 全画面(メッセージウィンドウ含む)
   2: マップ(全キャラ+地形タイル)、21: 全マップ(前記+parallax)
   3: 地形タイル、31: 背景(タイル+parallax)
   4: 全キャラ
   4000+x: 特定キャラ(x-> -1: 自キャラ, 0: このイベント, 1以上: 該当イベント)
   5: 全ピクチャ
   5000+x: 特定ピクチャ (x-> ピクチャ番号)
※ 4の全キャラは非常に重くなるので、お使いは計画的に!

実行したらこうなります:


上はの画面ターゲット、下はの全画面(ウィンドウメッセージ含む)ターゲット。

さらに、エフェクトを イベント・バトラーの位置に参照させる こともできます。
・createFilter [id] [エフェクト名] [適用ターゲット] [イベントID]
イベントIDを指定すると、エフェクトはキャラのマップ位置を参照する。キャラが移動するとエフェクトも連れて移動する。
また、マップ/バトルから出るとエフェクトも消えます

マップ:
 イベントID: 1以上:イベントID
        0  :このイベント
       -1  :ゲームプレイヤー
       screen:ゲーム画面。イベントID未指定と同じ。
 (screenは主にエフェクトをマップ限定する時に使う)

バトル:
 イベントID: 1以上:見方キャラ
        0  :このキャラ
       -1以下:敵キャラ
       screen:バトル画面。イベントID未指定と同じ。
 (screenは主にエフェクトをバトル限定する時に使う)


各エフェクトの細部パラメータを設定したい時は、
・setFilter [id] [パラメータ……]
setFilter ねじれ1号 408 100 96 10
ねじれエフェクトのパラメータを入力する必要があるので、パラメータを調べましょう。

パラメータが4つあるので、4つとも入力しましょう。
例: setFilter ねじれ1号 v1 v2 r50~v3 10
→ねじれ1号の x,y座標は変数1、2番に、半径は(50~変数3番)の間の乱数に、強度は 10 にする。
パラメータは数字以外、以下の文字も設定可能です。
 x        : 現在のパラメータ(パラメータを変えない)
 v<数字>   : 変数番号<数字>の値を代入する
 r<#1>~<#2>: #1~#2の間の乱数生成。
          #1と#2もv<数字>で指定可能。

下に各エフェクトのパラメータ一覧表の画像があるので、ダウンロードしてご覧ください!

setFilter ねじれ1号 408 100 96 10 の実行結果です。
エフェクトの位置が(408,312)から(408,100)になり、半径も96になり、強度も4から10に増えた。


続いて、エフェクトを移動させましょう。
・moveFilter [id] [パラメータ……] [時間(フレーム数)]
・moveFilterQ [id] [パラメータ……] [時間(フレーム)]


多分皆さんはもう何となく意味が分かると思いますけど、
つまりエフェクトを現在のパラメータから時間(フレーム数)かけて新パラメータに移動する。
試してみましょう。
createFilter ねじれ1号 twist 0
setFilter ねじれ1号 408 312 0 0
moveFilter ねじれ1号 408 100 96 10 120


120フレームかけて、(408,312)から(408,100)に徐々に移動して、半径と強度も0からだんだん増していく。

moveFilter と moveFilterQ の違いは?
・moveFilter は前の移動ルートを取り消し、現在のパラメータから新たに移動ルートを設定する。
・moveFilterQ は移動ルートの列を作り、移動ルートを一つずつ実行していく。

setFilter ねじれ1号 0 0 x x
moveFilterQ ねじれ1号 408 312 x x 60
moveFilterQ ねじれ1号 816 0 x x 60
画面左上からスタートし、画面中央に移動してから画面右上に移動する。

画面がエフェクトいっぱいで、そろそろ一部のエフェクトを消したいよね!→
・eraseFilter [id]
eraseFilter ねじれ1号
今すぐねじれ1号を消す。

・eraseFilterAfterMove [id]
eraseFilterAfterMove ねじれ1号
ねじれ1号は移動ルートが全て実行完了後、自動で自分を消す。

フィルターを全部消したい場合は:
・eraseAllFilter
今すぐ全部のフィルターを消す。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
一部のエフェクトには、元々アニメが存在している。
そのアニメの速度を調整するには:
・setFilterSpeed [id] [変化スピード]
該当するエフェクトは godray(陽射し)、shockwave(波動)、oldfilm(古い映像エフェクト)です。
godrayとshockwave のデフォルトスピードは0.01、oldfilmのデフォルトスピードは1。

※※※マップ・イベントのメモ欄によるエフェクト作成
マップ開始時に自動でエフェクトを作り出し、マップから出るとエフェクトを消す。
マップとイベントのメモ欄に所定の書式で記入してください。

<Filter:[id],[エフェクト名],[効果ターゲット]>
- 基本的にプラグインコマンドの createFilter と同じ。
マップのメモ欄に記入すると画面依存に、
イベントのメモ欄に記入するとイベント依存になる。

例: <Filter:発光,godray,0>


<SetFilter:[id],[該当エフェクトのパラメータ ...]>
- setFilterと同じ。
基本的に上の<Filter>で作ったエフェクトを設定する時に
使ってください。

例: <Filter:発光,godray,0>
  <SetFilter:発光,-30,0.5,2.5>



<SetFilterSpeed:[id],[変化スピード]>
- setFilterSpeedと同じ。
基本的に上の<Filter>で作ったエフェクトを設定する時に
使ってください。

例: <Filter:発光,godray,0>
  <SetFilterSpeed:発光,0.03>

※※※エフェクトの種類とパラメータ:
※displacement を使う時に、dispacement用の画像を"DisplacementMap"と命名し、img/picture/ に入れてください。

上級者向け:カスタマイズの FilterController を作る。
この FilterController.js では、PIXI.Filters の各フィルターのパラメータを一部省略し、
ユーザーに簡単にパラメータを設定できるようにしています。

例えば、RGBSplitFilter には元々RGB各チャンネルのx,yのズレ、計3x2=6つのパラメータが設定できますが、
FilterController.jsではパラメータをズレの半径と角度の2つに削減しました。

今回は、6つのパラメータが設定できる、新しい FilterController "rgbsplit2" を作りましょう。
設定すべきものは3つ:
1.rgbsplit2 に対応する PIXI.Filter
2.rgbspilt2 のカスタマイズ パラメータ
3.実際の Filter Object を更新する function
コードは以下になります:
コード:
var newFilterName = "rgbsplit2";
Filter_Controller.filterNameMap[newFilterName]        = PIXI.filters.RGBSplitFilter;
Filter_Controller.defaultFilterParam[newFilterName]   = [1,-1,-1,0,0,1];

Filter_Controller.updateFilterHandler[newFilterName]  = function(filter, param) {
        filter.red   = [param[0], param[1]];
        filter.green = [param[2], param[3]];
        filter.blue  = [param[4], param[5]];
};
一行目・var newFilterName = "...";:
 新しい FilterController の名前を設定する。
 気をつけて頂きたいのは、名前は小文字しか使えません。"RGBSplit2"とかはダメです。

二行目・Filter_Controller.filterNameMap :
 新 FilterController と対応するPIXI.Filterをタイアップする。

三行目・Filter_Controller.defaultFilterParam :
 新 FilterController のカスタマイズパラメータ。
 6つのパラメータを使いたいので、要素が6つある配列にしました。

五行目・Filter_Controller.updateFilterHandler[...] = function(filter, param) { ... };:
 実際の RGBSplitFilter を更新する function。
 filter は Object、paramはさっき設定されたカスタマイズパラメータの配列。
 

以上で新 FilterController の設定が完了です!
このコードを適当のtxtファイルにいれて、識別子を.jsに変えてプラグインマネージャでONにしたら追加完了です。
createFilter 新フィルター rgbsplit2 0
setFilter 新フィルター 10 10 -5 -5 0 0

などのプラグインコマンドで制御可能です。

もしフィルター生成時にしか設定する必要のない(updateで処理したくない)パラメータがあったら:
コード:
Filter_Controller.filterSpecialInit["rgbsplit2"] = function(filter) {
};
Filter_Controller.filterSpecialInit で設定できます。
例えば、DisplacementFilterは Sprite が必要なので、
コード:
Filter_Controller.filterSpecialInit["displacement"] = function(filter) {
    var sprite = new Sprite(ImageManager.loadPicture("displacementMap"));
    filter.map = sprite._texture;
};
などで設定できます。


ダウンロード
ここ、もしくはGitHubからダウンロードできます。
(ctrl+sで保存)

                                 

2020/08/31 更新:
フィルター3つ追加(bevel、tiltshift、glitch)
eraseAllFilter コマンド追加
ちょい最適化

2018/06/12 プチ更新:
適用ターゲット追加
21:全マップ(キャラ+タイル+parallax)
31:背景(タイル+parallax)
2018/03/13 11:38 プチ更新:
内蔵する PIXI.filters のバージョンが v2.6.0 に。特に機能に変化なし。
2018/02/26 17:50更新:色々なフィルター追加、適用ターゲット追加

・フィルターを9つほど追加。
・単一キャラ、単一ピクチャに適用できるようになった。
  - 効果ターゲット:
   0: 画面
   1: 全画面(メッセージウィンドウ含む)
   2: マップ(全キャラ+地形タイル)
   3: 地形タイル
   4: 全キャラ
   4000+x: 特定キャラ(x-> -1: 自キャラ, 0: このイベント, 1以上: 該当イベント)
   5: 全ピクチャ
   5000+x: 特定ピクチャ (x-> ピクチャ番号)
※ 4の全キャラは非常に重くなるので、お使いは計画的に!
2018/01/24 14:11更新: バージョン更新 v2.0.0
・内蔵する PIXI.filters をv2.5.0に更新
・全体のコードを更新
・setFilter, moveFilterなどのパラメータ設定にゲーム変数、乱数指定可能。
2018/01/08 14:03更新: エフェクトのターゲットを追加
0: 画面、1: 全画面、 2: マップ(全キャラ+地形タイル)、3: 地形タイル、 4:全キャラ、5:全ピクチャ
※4の全キャラは非常に重くなるので、お使いは計画的に!
Godrayに 明るさ/暗さ のパラメータを追加
※今までの godray に関するプラグインコマンドの修正の必要はありません

2018/01/04 12:24更新: バトル中、キャラID指定すると、エフェクトを該当バトラーに付ける機能を追加。

2018/01/03 23:05更新: バグ修正しました…… 今はDL可能です。(まだバグがありましたらお教えください OTZ)
2018/01/03 20:37更新: 重大バグ修正中。ダウンロードしないでください。
2018/01/03 更新:moveFilterQが正常に機能しないバグを修正しました、申し訳ありません。

                                 

  • 製作者: ツキミ
  • 非商用利用: 自由/ 報告、クレジット不要(してくれたら嬉しい!)
  • 商用利用: 自由/ 報告、クレジット不要(してくれたら嬉しい!)
  • 単体再配布: OK(ただし自作宣言はNG)
  • 加工: OK
  • 加工後の単体再配布: OK、でも説明のところにこのページのリンクを書いてください
  • シリーズ: ツクールMVhttps://drive.google.com/file/d/1lHsa9n_vkAO8YGgUaf8hWKJNtkuPuUDY/view?usp=sharing
 
最後に編集:

gorira

ユーザー
遅くなりましたが、あけましておめでとうございます。:smile:

さっそくダウンロードして使わせてもらいました。
とても素晴らしいです。
デモを遊びこのエフェクトをどの場面に使うか色々想像しながら酔いしれてました!
こちらエフェクトをイベントの位置に参照することができるとありますが、これをバトラーにも参照することは可能でしょうか?
エネミー[id]、またはアクター[id]を指定することです。
 

ツキミ

ユーザー
遅くなりましたが、あけましておめでとうございます。:smile:

さっそくダウンロードして使わせてもらいました。
とても素晴らしいです。
デモを遊びこのエフェクトをどの場面に使うか色々想像しながら酔いしれてました!
こちらエフェクトをイベントの位置に参照することができるとありますが、これをバトラーにも参照することは可能でしょうか?
エネミー[id]、またはアクター[id]を指定することです。

あけましておめでとうございます!

DLして頂き、ありがとうございます……!感無量です!
ところで、先ほどセーブできないバグが発見され、ただ今修正しましたが、お手数ですがもう一回DLして頂けませんか?:kaocry:

バトラーにエフェクトを付けられるのはとても良い機能になりそうですね!
私としても是非実装したい機能です。
でも、先にお詫びを申し上げなくちゃならないのが、今はまだバトル関連のソースコードが分からなくて……そちらの機能を実装するにはだいぶ時間かかりそうです。(RPGのバトルは大の苦手で……)
今すぐ実装できる!っていうわけじゃないんです:kaocry:

ですので、実装するまで、もう少し待って頂けませんか……?
 
最後に編集:

ツキミ

ユーザー
こちらエフェクトをイベントの位置に参照することができるとありますが、これをバトラーにも参照することは可能でしょうか?
エネミー[id]、またはアクター[id]を指定することです。
更新しました!

バトル中 createFilter でイベントIDを指定すると、エフェクトをバトラーに付けられるようになりました。
(-1以下:敵キャラ、0:このキャラ、1以上:味方キャラ)
戦闘システムには不慣れなので、バグがあったらお手数ですが是非お教えて下さい><
 

しぐれん

ユーザー
マサカリっぽい話ですみません。
Twitterで見たので書き込みます。
Filter_Controllerですが、フィルターの種類ごとに派生クラスにして管理した方がスクリプトから処理しやすくなるのではないかと思います。
switch(fillterType)と書いている処理で、同様のスイッチ文を多数見たので。
実行速度の観点でも、スイッチ文による分岐を関数呼び出し1回に落とせるメリットがあります。

Filter_Baseでupdate,createなどが該当します。
またスプライトとゲームオブジェクトは1対1で対応するクラスが存在するので、ゲームオブジェクトに復元用のパラメータを格納したクラスを入れれば行けると思います。
Sprite_Baseにフィルターを格納する機能を入れれば、ゲーム中のすべての画像へフィルターを投入できそうです。
 

gorira

ユーザー
>>ツキミ様

多忙により返信が遅れました。
もう更新していただけていたとは・・・ありがとうございます!
さっそく試してみるとちゃんとバトラーに表示されるようになりました。
面白すぎて目が放せない状態でした。
応用すればステートやスキルなどでいろんな表現ができそうです。
先にお詫びを申し上げなくちゃならないのが、今はまだバトル関連のソースコードが分からなくて……そちらの機能を実装するにはだいぶ時間かかりそうです。(RPGのバトルは大の苦手で……)
こちらこそ申し訳ありません。
無理な要望を申し付けをしたにもかかわらず迅速な対応してくれた事にとても感謝いたします。
またセーブによるバグの修正もありがとうございました。
これからも大事に使わせていただきます。
しぐれん様のおっしゃる通りゲーム中の全ての画像にフィルターをかけることができたら更に夢が膨らみますね!
この度は本当にありがとうございました。:kaojoy:
また何かありましたらご連絡いたします。
 

ツキミ

ユーザー
適用ターゲットを追加しました。
0: 画面
1: 全画面(ウィンドウ含む)
2: マップ(全キャラ+地形タイル)
3: 地形タイル
4:全キャラ(非常に重くなるので、お使いは計画的に!)
5:全ピクチャ
今後は単一キャラ、単一ピクチャ指定 などのターゲット追加の予定もあります。

godray エフェクトに明るさ/暗さのパラメータを追加しました。

※今までの godray に関するプラグインコマンド、タグの修正の必要はありません。
 

master2015hp

ユーザー
申し訳ありませんが、なぜこのプラグインが私にとってうまくいかないのですか?
私はRPGMVの英語版を使っているのですか?
私は新しいプロジェクトにプラグインをインストールしましたが、プラグインのコマンドとマップのメモは機能しません
Sorry but why this plugin doesn't work for me?
Is it because i used RPGMV English version?
I installed the plugin on a new project but plugin command & map note doesn't work
upload_2018-1-19_20-0-43.png
 

ツキミ

ユーザー
申し訳ありませんが、なぜこのプラグインが私にとってうまくいかないのですか?
私はRPGMVの英語版を使っているのですか?
私は新しいプロジェクトにプラグインをインストールしましたが、プラグインのコマンドとマップのメモは機能しません
Sorry but why this plugin doesn't work for me?
Is it because i used RPGMV English version?
I installed the plugin on a new project but plugin command & map note doesn't work
View attachment 2301
Sorry, I'm currently working on another plugin, so the reply is delayed.(also sorry about the other post in stair-move plugin)

Currently my plugins are only capable for JP-version of RPG Maker MV(especially when there are plugin parameters);
However I expected that it should be working when coming to this plugin. There may be bugs.

Could you tell me the version of your RPGMV and your testing environment(computer or smartphone)?
Also, when you start testing, is there any Error in the Console? (press F8, and you could see the Console popup)


I have known where the problem is.
Though in the tutorial I said that if you type in "createFilter ..." you can see the effect as the image shows;
the true is, if I don't "setFilter ... ", the Twist Filter (effect) will have a radius of 0, meaning no visual effects. (please look at the default parameter image, radius of Twist is default 0)

So if you type the above 'setFilter' command to adjust the radius, you may see the Twist effect appears.

Does this solution solved the problem?
If not, please feel free to tell me. And, thank you for choosing my plugin!
 
最後に編集:

ツキミ

ユーザー
2018/01/24 14:11更新: バージョンアップデート v2.0.0
アップデート内容:
・内蔵する PIXI.filters をv2.5.0に更新
・全体のコードを更新
・setFilter, moveFilter などのパラメータ設定にゲーム変数、乱数指定可能。

上級者向け:カスタマイズの FilterController を作る。
この FilterController.js では、PIXI.Filters の各フィルターのパラメータを一部省略し、
ユーザーに簡単にパラメータを設定できるようにしています。

例えば、RGBSplitFilter には元々RGB各チャンネルのx,yのズレ、計3x2=6つのパラメータが設定できますが、
FilterController.jsではパラメータをズレの半径と角度の2つに削減しました。

今回は、6つのパラメータが設定できる、新しい FilterController "rgbsplit2" を作りましょう。
設定すべきものは3つ:
1.rgbsplit2 に対応する PIXI.Filter
2.rgbspilt2 のカスタマイズ パラメータ
3.実際の Filter Object を更新する function
コードは以下になります:
コード:
var newFilterName = "rgbsplit2";
Filter_Controller.filterNameMap[newFilterName]        = PIXI.filters.RGBSplitFilter;
Filter_Controller.defaultFilterParam[newFilterName]   = [1,-1,-1,0,0,1];
 
Filter_Controller.updateFilterHandler[newFilterName]  = function(filter, param) {
        filter.red   = [param[0], param[1]];
        filter.green = [param[2], param[3]];
        filter.blue  = [param[4], param[5]];
};
一行目・var newFilterName = "...";:
 新しい FilterController の名前を設定する。
 気をつけて頂きたいのは、名前は小文字しか使えません。"RGBSplit2"とかはダメです。

二行目・Filter_Controller.filterNameMap :
 新 FilterController と対応するPIXI.Filterをタイアップする。

三行目・Filter_Controller.defaultFilterParam :
 新 FilterController のカスタマイズパラメータ。
 6つのパラメータを使いたいので、要素が6つある配列にしました。

五行目・Filter_Controller.updateFilterHandler[...] = function(filter, param) { ... };:
 実際の RGBSplitFilter を更新する function。
 filter は Object、paramはさっき設定されたカスタマイズパラメータの配列。


以上で新 FilterController の設定が完了です!
このコードを適当のtxtファイルにいれて、識別子を.jsに変えてプラグインマネージャでONにしたら追加完了です。
createFilter 新フィルター rgbsplit2 0
setFilter 新フィルター 10 10 -5 -5 0 0

などのプラグインコマンドで制御可能です。

もしフィルター生成時にしか設定する必要のない(updateで処理したくない)パラメータがあったら:
コード:
Filter_Controller.filterSpecialInit["rgbsplit2"] = function(filter) {
};
Filter_Controller.filterSpecialInit で設定できます。
例えば、DisplacementFilterは Sprite が必要なので、
コード:
Filter_Controller.filterSpecialInit["displacement"] = function(filter) {
    var sprite = new Sprite(ImageManager.loadPicture("displacementMap"));
    filter.map = sprite._texture;
};
などで設定できます。
 

ツキミ

ユーザー
2018/02/26 17:50更新:色々なフィルター追加、適用ターゲット追加
・フィルターを9つほど追加。フィルターのパラメータ画像を参照してください。

・単一キャラ、単一ピクチャに適用できるようになった。
  - 効果ターゲット:
   0: 画面
   1: 全画面(メッセージウィンドウ含む)
   2: マップ(全キャラ+地形タイル)
   3: 地形タイル
   4: 全キャラ
   4000+x: 特定キャラ(x-> -1: 自キャラ, 0: このイベント, 1以上: 該当イベント)
   5: 全ピクチャ
   5000+x: 特定ピクチャ (x-> ピクチャ番号)
※ 4の全キャラは非常に重くなるので、お使いは計画的に!
 

kuro

フォーラムスタッフ
素晴らしいプラグインを公開してくださり、ありがとうございます。
雰囲気作りに大活躍しております!

Please publish a wonderful plugin, thank you.
We are active in making the atmosphere:D
Awesome!

20180310_11.jpg

20180310_12.jpg
 

ツキミ

ユーザー
2018/03/13 11:38 小更新:
内蔵する PIXI.filters のバージョンが v2.6.0 に。
v2.6.0: iOSでのバグを修正。機能に特に変化なし。


>> @kuro
ありがとうございます!褒めて頂けてすごく嬉しいです ><
これからも良質なプラグインを提供できるように どんどんアプデしていきたいと思います!
 

めとろ

ユーザー
こちらのプラグインのお陰でゲーム演出の幅が大きく広がりました。
本当にありがとうございます。

一点伺いたいのですが
フロントビューバトルにおいて特定の敵一体にフィルターをかける場合
どのようにプラグインコマンドを作成すれば良いか御教授頂ければと思います。

例えば、敵グループに3番目(#3)に追加した敵(敵キャラ番号0004)に
バトルイベントからフnoiseフィルターをかける場合。

プラグインコマンド:createFilter ノイズ noise -1 0004

上記等のいくつかパターンを試したのですが上手くできませんでした。
バトル画面全体になら問題なくフィルターを掛ける事が出来ました。

拙い質問で大変恐縮ですが
どうぞよろしくお願い致します。
 

ツキミ

ユーザー
2018/06/12 プチ更新
parallaxとタイルだけ、の要望があったので追加。(テストしてない)

適用ターゲット追加
21:全マップ(キャラ+タイル+parallax)
31:背景(タイル+parallax)

敵グループに3番目(#3)に追加した敵(敵キャラ番号0004)に
バトルイベントからフnoiseフィルターをかける場合。

プラグインコマンド:createFilter ノイズ noise -1 0004

上記等のいくつかパターンを試したのですが上手くできませんでした。
バトル画面全体になら問題なくフィルターを掛ける事が出来ました。

拙い質問で大変恐縮ですが
どうぞよろしくお願い致します。
申し訳ありません。戦闘関連は壊滅的に疎いですので、今は答えられません……
時間あったら対応してみます。
 
お疲れ様です。
こちらのプラグインを使用させていただき、表現の幅が一気に跳ね上がりました。
本当にありがとうございます。

一点報告なのですが、適用ターゲット指定による特定ピクチャ(5000+x)のみうまく働きませんでした。
(その他の指定、ピクチャ全体(5)、特定イベント(4000+x)は問題ありませんでした)
そちらだけどうかご確認お願いいたします。
 

ツキミ

ユーザー
お疲れ様です。
こちらのプラグインを使用させていただき、表現の幅が一気に跳ね上がりました。
本当にありがとうございます。

一点報告なのですが、適用ターゲット指定による特定ピクチャ(5000+x)のみうまく働きませんでした。
(その他の指定、ピクチャ全体(5)、特定イベント(4000+x)は問題ありませんでした)
そちらだけどうかご確認お願いいたします。
こんにちは!
そちらでもバグの存在が確認できました。
番号がズレてましたようです。(5001は2番目のピクチャに適用することになってしまいました…)

今は修正済みです。お手数ですがもう一度ダウンロードしてください。
 
ありがとうございました!無事解決いたしました!
……もうひとつ発見してしまったのですが、特定ピクチャ指定(5000+X)の場合のみ、
トリアコンタンさんのプラグイン集(TkoolMV_PluginCommandBook.js)と微妙に競合してしまうようです。
(プラグイン集をOFFにしていた場合、500XでピクチャXを指定できました。
 競合状態だと対象ピクチャの番号がズレてしまう……?)
もし可能でしたら、そちらもご確認できたらと思います。(プラグイン集も便利なコマンドが多いので……)
 
ある程度は自己解決いたしました…!
特定ピクチャ指定の競合を自力で調べたところ、
ピクチャにエフェクトをかけるタイミングによって起きていたようです。
(プラグイン集をONにしていた場合、ピクチャの表示→エフェクトかけるプラグインコマンドの途中に
文章の表示など他のコマンドをはさむと動作しませんでした。
プラグイン集をOFFにした場合は通常通り動作いたしました)
ともあれ、大変お手数をおかけいたしました……!
 
最後に編集:

salaspitg

ユーザー
 こんにちは。素敵なプラグインをありがとうございます。画面効果の向上に利用させていただいております。

 上級者向けのコードを参考にして、画面上下にぼかしを入れるティルトシフト(TiltShiftFilter)のかけ方を調べ、少しだけ実装ができたのでこちらにシェアさせていただきます。以下のコードをjsファイルにして、FilterControllerと一緒にプラグインとして設定すれば一応動くかと思います。

 当方JSやMVの仕様に詳しくないため、なぜこの記述で動いているのかよくわかりません。
 PIXIのフィルターデモでTiltShiftFilterの項目にあった「blur」「gradientBlur」の2つのパラメーターだけ設定したところ、画面上部にだけ大きくぼかしがかかってしまいました。ここに3つ目の「padding」のパラメーターを追加して、これを200に調節したところ偶然うまく上下にぼかしをかけることができたという経緯があります。
 可能であればツキミさんまたはどなたかに補足・補完していただければ幸いです。

追記:
 今のところターゲットは 0 または 1 のみで動作しています。ターゲットをそれ以外にした場合、透過タイルや遠景を使ったマップでは大きく画面が崩れたり、上側のみがぼかされたりします。

コード:
var newFilterName = "tiltshift";
Filter_Controller.filterNameMap[newFilterName]        = PIXI.filters.TiltShiftFilter;
Filter_Controller.defaultFilterParam[newFilterName]   = [20,700,200];
 
Filter_Controller.updateFilterHandler[newFilterName]  = function(filter, param) {
        filter.blur   = [param[0]];
        filter.gradientBlur = [param[1]];
        filter.padding = [param[2]];
};

upload_2019-3-30_9-20-9.png
 
最後に編集:
トップ