投稿記事

基本の使い方②〜エディタ編【TRP_Particle】

←MV版マニュアルトップ
←MZ版マニュアルトップ

前回の基本の使い方①〜パーティクルを表示【TRP_Particle】に引き続き、今回はテストプレイ上で動くパーティクルエディタを使って自作パーティクル設定の作り方を解説します!


花火会場マップの左側の岸壁に、ナイアガラ花火(滝のように壁を覆って下に落ちる花火)を作ってみましょう!

まずは、壁の上端中央にパーティクルを表示させるための空のイベントを作ってイベントIDをメモします。

作成していくパーティクル設定名はfireworks_niagala_1としますが、自由に名前を付けて大丈夫です!(すでにある設定名と被らないように)

このパーティクル設定で表示させるコマンドは↓のようになりますね。イベントIDは壁に作ったイベントIDを入力してくださいね。


MV版コマンド

「particle set fireworks_niagala1 event:5」
(このまま実行しても設定データがないのでエラーとなります)

この設定データを編集するにはsetをeditに置き換えましょう。
それ以降のパラメータはset,play,editコマンドですべて共通です!

particle edit fireworks_niagala1 event:5

MZ版コマンド

MZ版では通常の再生コマンドを選択し、「_Editモード」のパラメータをON/trueにすればOKです。ターゲットのevent:5はイベントID5はイベントID5のイベントを表します。




テストプレイを実行すると・・・


このような編集画面が表示されました!
壁のイベントから光の粒がすごい勢いで放出されていますね。

右側のパラメータを変更してイメージするパーティクルの出方に調整していくのですが、パラメータが多くていきなり手探りで設定するのは大変かと思います。

まずは、似た感じのプリセットデータを読み込んで、そこからパラメータを修正してみることにしましょう。

画面右で表示している吹き出し花火のデータ(fireworks_dragon_c)を読み込んでみましょう。
吹き上げの向きを下方向に変えるとなんとなく実現できそうです。


プリセットデータの読み込み

画面下のプリセットボタンを押しましょう。(Ctrl+P(MacはCmd+P)のショートカットでもOK)

画面左にピッカーウィンドウが現れます。

それぞれの行に設定データ名とコメント説明が書かれています。

マウスホイールでスクロール。
左クリックで選んだ行の設定を読み込みます。

(プリセットデータは推奨の対象ごとにカテゴリが分かれてます。もし、fireworks_dragon_cのデータが見つからない場合は左右キーでカテゴリを切り替えてみてください)


fireworks_dragon_cを左クリックで選ぶと画面上に表示されていたパーティクルの出方が変わったのが分かると思います。

プリセットデータの読み込みができたのでEscキーを押してピッカーを閉じましょう。


方向を変えてみる

ここからパラメータをいくつか変えていきます。
まずは吹き出し方向を下向きに変えてましょう。

右側のパラメータの中からstartRotationの行をクリックしてみましょう。
(startRotationとキーボードで打ち込むことでも編集できます)

startRotationはパーティクルの射出方向を決めるパラメータです。
右方向が0度で、時計回りに下方向が90度、左方向が180度、上方向が270度(-90度でもOKです)となっています。

現在はmin(最小値)が-75で真上より少し右方向、max(最大値)が-105で真上より少し←方向となっています。

試しにminを0、maxを360にしてみましょう。

そのまま数値を「0」と打ち込めばOKです。
数値を打ち間違えた場合や変更する場合はbackspaceキー(Macはdeleteキー)で値をクリアできますのでもう一度打ち直しましょう。

左右キーで編集するパラメータを切り替えられます。
同じ用にmaxの値を360にしましょう。

パーティクルの動きは↓のように変化します。

0~360度、つまりすべての方向に満遍なく放出されるようになりました。
(パラメータの特性を理解するにはいろいろと値を変えて遊んでみましょう!)

さて、今回は下方向に射出させたいので、真下を表す90の値を入れてみましょう。
minとmaxを両方90にすると綺麗に下向きに表示されます。
(少し角度に幅をもたせたいときは+-10度で、min:80、max:100と設定したりします)



真下向きに放出されるようになりました!

発生方法を変える

今は1点から発生したパーティクルがそのまま真下に落ちていますが、崖全体を覆うように出現する幅を広げたいです。

パラメータの下の方を注目してみてください。

オレンジのパラメータだけ、他のパラメータと様子が違うのが分かります。

pointだけが表示されていて、他のrect/circle/ring/burstは閉じています。

オレンジのパラメータは発生方法を指定するパラメータで、どれか1つの種類だけ設定することができます。

また、他のパラメータと違い、上下キーで選択することはできないので「rect」のようにパラメータをキーボードで打ち込むか、マウスでクリックすることで変更・編集ができます。


では、長方形の中からランダムに発生する「rect」に切り替えてみましょう
([rect]をクリックすればOKです。rectはrectangle(レクタングル)の省略で長方形の意味です)

↓のようにpointの項目が閉じて、新たにrectのパラメータが表示されます。

rectの発生方法では長方形の左上の点(x,y)と幅(w)、高さ(h)を指定します。
まずはx,yを変更して崖の左上になるように調整しましょう。



それから、幅(w)の値を大きくして崖幅全体を覆うようにしましょう。


今回は崖の上端から降り注ぎたいので、高さ(h)は0のままでOKです。

頻度/発生数を変える

幅を広げた分、パーティクルの発生量が少なくて寂しい感じがするので量を増やしてみましょう。

パーティクルの発生頻度を表すfrequencyのパラメータを調整してみましょう。

少しややこしいのですが、frequencyの値はパーティクルが発生する間隔秒数となっており、小さいほどパーティクルがたくさん発生します。

ここでは0.003という値にしてみましょう。
0.003秒に1回パーティクルが発生し、1秒間で333個発生する計算になります。



崖と色が同化してわかりづらいですが、パーティクルの数が大幅に増えたのが分かると思います。

(メモ:発生量を増やすにはparticlesPerWave(1回ごとの発生数)を上げる方法もありますが、基本はfrequencyを調整すると覚えておきましょう)

拡大率scaleの調整

火花のボリュームを増やすためにscaleを調整します。

(メモ:frequencyをさらに小さな値にすれば発生数は増えますが、その分処理が重くなるので不自然にならない範囲でサイズを大きくしてボリュームを出すとよいでしょう。)

[scale] 0.2 0

とありますが、これは1つ1つのパーティクル出現時に0.2、つまり拡大率20%ではじまり、消滅時のときに拡大率0まで縮小するという設定になってます。

左の値(出現時の拡大率)を0.2から0.3に変更して出現時の大きさを調整します。



崖上部でのボリュームが出ました。

消滅時のときは拡大率0で終わりたいですが、崖の下半分部分でももう少しボリューム感が欲しいです。

alpha(不透明度)、scale(拡大率)、speed(スピード)、color(色)の紫色の4つの基礎パラメータ出現から消滅までの間の数値の変化を細かく設定することができます。(この4つをノードパラメータと呼びます)

左端の出現時が時間=0、右端の消滅時が時間=1にあたり、そのあいだの0~1の時間に対して数値を割り当てていくことになります。


崖の下半分でのボリュームが欲しいので、消滅直前まで縮小の幅を抑えてみます。
終わり間際の時間0.8のときにようやく最初の半分の拡大率0.15になるようにしてみましょう。

キーボードで「@」を打ち込むと左に黄色のスペースに@と表示され、中間値挿入モードになります。つづけて「0.8」と打ち込みEnterで確定しましょう。



0.3と0の間に「0@0.8」と表示されました。(時間0.8のときに拡大率scaleの値が0ということを現します。)

そのまま0.15を打ち込み時間0.8のときの値を変更すればスケールの編集完了です!
(メモ:もし時間を0.8から他の値に変更したい場合は「Shift+@」キーで変更することができます)


speedの調整

続いてパーティクルの速さ/speedを調整します。

speedの値を見てみると、
[speed] 500 200@0.3 0

出現時にスピード500で勢いよく噴出し、出現して少し経過(時間0.3)してから半分以下の200まで急減速し、そこから消滅までなだらかにスピード0まで減速しています。

ナイアガラ花火は下方向に自由落下していく感じに、徐々に早くなっていく設定にしましょう。

今回は中間値はなしで、出現時に10、消滅時に350と設定します。
(※このとき、出現時の速度は必ず0以外の数値にしてください。)

200@0.3にカーソルをあわせて「Shift+BackSpace」(Macの場合はShift+delete)で中間値を削除しましょう。


滝の流れ具合を見ると、崖の途中で消えてしまって下半分のボリュームが足りないように見えますが、よく見るといくつかのパーティクルは地面近く近くまで届いています。


スピードを早くすると下部分まで届くパーティクルは増えますが、一部のパーティクルが地面よりも下に移動して不自然に見えてしまいます

スピードの変化設定はこのままで、より多くのパーティクルが地面に届くようにバラけ具合を調整していきます。


バラけ具合の調整

speedの1つ下にあるminimumSpeedMultiplierというパラメータを編集します。

長ったらしいパラメータ名ですが、直訳すると「スピードの最小倍率」という意味でスピードのばらけ具合を表す数値になります。

この値を1とすることですべてのパーティクルのスピード変化が同じになります。1に近いお好みの数値を入れましょう。
(この値が0.5であれば設定した速度500から半分の速度250の間のランダムな速さでパーティクルが射出され、よりバラけてみえるようになります)



つづいて、lifetimeも調整していきます。
lifetimeはパーティクルが出現してから消滅するまでの寿命の秒数です。

min(最小値)が0.7秒、max(最大値)が1.0秒とばらつきがありますので、これもminを1秒に近づけてばらつきを少なくしてみましょう。

だいぶボリュームが出て見栄えがよくなったと思います!

(メモ:lifetimeと似たパラメータにemitterLifetimeというのがあります。これはエミッターが消滅するまでの時間を指しています。-1というのは寿命がなく永遠にパーティクルを出現させ続けることを指し、これを1などのプラスの値にすると1秒後にパーティクルの噴出がおわります。)



保存

パラメータの編集が終わりましたら忘れずに保存ボタン(またはCtrl+S)で設定を保存しましょう!

今回はこれで編集を終わるので保存&終了ボタン(ctrl+E)で編集画面も終わらせます。

イベントのプラグインコマンド「particle edit fireworks_niagala event:5」のeditをsetに置き換えて通常の再生コマンドに戻せば完成です!

お疲れさまでした!

(メモ:画面左上に赤色で表示数制限と表示されていますが、これはパーティクル数が1000以上にならないよう制限しているためです。複数のパーティクルを再生している場合は、それぞれの発生能力に応じて制限がかかるため自然な感じで全体の発生数が調整されます。この制限数はプラグイン設定で変更可能です。)


エディタでもう少し遊ぶ(おまけ)

プラグインコマンドのsetをeditに変えて再度エディタを表示し、画像選択ボタン(Ctrl+I)を押してみましょう。

画像の変更

パーティクルとして表示する画像を変更することができます。
(プリセットピッカーと同じくキーボードで頭文字の検索ができます)


また、左クリック長押しで「個別選択モード」と「複数選択モード」を切り替えることができます

複数選択モードで複数の画像を選択すると、複数の画像のうちランダムに表示されます。


タイル画像の使用

「タイル選択ボタン」を押してみましょう。
画像ピッカーと同じように、今度はタイルセットの画像が表示されました!

タイル画像と通常画像の複数同時選択はできないという制約がありますが、アイデアしだいで面白い演出ができると思います!

(メモ:タイルマップを使うときはblendModeのパラメータを0にして色/colorもすべて白にすると綺麗に表示されます。また、タイルセット画像はサイズが大きく余分にロードするとメモリを圧迫するのでなるべく表示中のマップのタイルセット画像を使うと良いでしょう)

設定のコピペ保存

なんとなくパラメータをいじって面白い演出ができて、「他の設定名のデータに保存したい!」というときがあるでしょう。

別名で保存する機能は残念ながらありませんが、「Ctrl+C」のショートカットキーで設定データをクリップボードにコピーすることができます。

クリップボードにコピーした状態で、改めて別の設定名で編集して「Ctrl+V」で設定をペーストすることができるので活用してみましょう。

(メモ:コピーされるのは普通のテキストデータなので、メモ帳などに一時的に保存しておくこともできます)


色の変更

ノードパラメータの1つ、color/色の値を変更してパーティクルの色を変えてみましょう。
colorパラメータは特殊で、項目を選択すると左上にカラーピッカーが表示されます。

右側のバーで好きな色合いを選択し、左側のパレットから好みの明るさ・彩度の色を選択しましょう。


カラフルな色のパーティクルが出るようになりました!
しかし、他の紫色の基本パラメータと違って、時間経過で1つ1つのパーティクルの色が変わっていません。

これはcolorパラメータの下にあるcolorModeの値が1になっているためです。

colorModeの値を(デフォルトの)0に変更してみましょう。



今度は発生直後の崖上と消滅直前の崖下で色が変化してるのが分かりますね!

colorModeは0でパラメータで色が時間変化するようになり、
colorModeが1で発生時の色がランダムに分布されるようになります。




終わりに

今回説明しなかったパラメータについても、それぞれのパラメータ編集時に左下に簡単なパラメータの解説が出ますので参考にして調整してみてください!

また、↓のページではそれぞれのパラメータを変えた場合の動作の変化を動画にまとめていますので一度見てみることをおすすめします。
パラメータ一覧【パーティクルプラグイン】

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

(執筆途中)基本の使い方①〜導入とパーティクル表示【TRP_Particle】

←マニュアルトップへ戻る

この記事ではパーティクルプラグイン「TRP_Particle」の導入方法から、パーティクルの表示・編集といった基本操作のごくさわりの部分を解説していきます。

少し長いですが、なるべく分かりやすいように画像をたくさん用意してますので、サクサクと読み進められると思います。

ぜひ、実際に解説内容をツクールで試しながら読んでみてください!

(メモ:途中に挟まれるメモ書きは少し進んだ内容となっています。腕に覚えのある方か、一通りこのチュートリアルをこなした後で読み返してみてください。)



プラグインの導入

通常のプラグインと同様に、RPGツクールMVにプラグインを導入しましょう。

解凍したフォルダの中のmaterials→pluginsフォルダ内の「TRP_ParticlePreset.js」「TRP_Particle.js」「TRP_ParticleEditor.js」「TRP_ParticleList.js」の4つのプラグインファイルをプロジェクトフォルダ内のjs→pluginsフォルダ内にコピペします。

ツクールMVを立ち上げてプラグイン管理から「TRP_ParticlePreset.js」「TRP_Particle.js」と「TRP_ParticleEditor.js」「TRP_ParticleList」を順にインポートしましょう。
このとき、上から順に「TRP_ParticlePreset.js」「TRP_Particle」「TRP_ParticleEditor」となるように配置して下さい。

(メモ:TRP_ParticlePresetとTRP_ParticleListはプラグインコマンドの入力中に右クリックまたはF1から呼び出せるプラグインヘルプで設定名を確認するのに便利です。他のプラグインとの競合も少ないのでリストの一番上に配置することをおすすめします!)

※MadeWithMVと併用する場合は、MadeWithMVより下にTRP_Particleを配置してください。

画像ファイルのインポート

パーティクルとして表示する画像をプロジェクトにインポートします。
materialsフォルダ内のparticlesフォルダをコピーし、プロジェクトフォルダのimgフォルダ内にペーストしてください。


これでプラグインの準備は整いました。
さっそくパーティクルを表示してみましょう!


パーティクルの再生

適当なイベントを作成してイベントコマンドのプラグインコマンドで、次のコマンドを実行してみましょう。

「particle play fireworks_c this」


(メモ:「このイベント(this)にfireworks_cというIDでパーティクル(particle)を再生(play)」という意味になります。)

実行してみると・・・?


イベントを実行するたびに花火っぽいパーティクルエフェクトが再生されました!


表示位置の調整

さて、どうせなら画面上の夜空に表示させたいところです。
パーティクルの発生位置を調整してみましょう。

先程のプラグインコマンドの直後に次のコマンドを打ち込んでみましょう。

「particle update fireworks_c pos 0 -350」


(メモ:「fireworks_cというIDのパーティクルのパラメータを更新(update)。位置(pos)をx=0、y=-350に変更」という意味になります。)

もう1度再生すると、イベントの頭上(350ピクセル上)に表示されました!
このように、updateコマンドを使って様々なパラメータを変更させることができます。

(メモ:細かな設定は設定データの編集で行いますが、位置の調整などはイベントごとにupdateコマンドで細かく調整することが多いです)

管理IDについて

さて、画面の左右にも同じ花火を打ち上げようと思います。

先程のコマンドをコピペでしたに2回複製し、updateコマンドでの位置調整でそれぞれxを-300と+300に変更します

パーティクルが1つしか再生されてません!


ここで、一度再生コマンド(playやset)のパラメータについて説明します。
playコマンドのパラメータは↓のような順番になっています。

「particle play 内部管理ID 対象 設定データ名 Z軸値」

「particle play fireworks_c this」というコマンドはでそれぞれのパラメータは↓

  • 内部管理ID:fireworks_c
  • 対象:this(このイベント)
  • 設定データ名:省略
  • Z軸値:省略

初めのうちは、内部管理IDと設定データ名がどう違うのか少し戸惑うかもしれません。

内部管理IDは自由な名前をつけることができますが、表示対象ごとに異なる名前をつけなければなりません。

今回はfireworks_cというIDを設定しており、パラメータを変更するupdateコマンドでもfireworks_cというIDに対して位置(pos)の変更を行っております。


このように、このパーティクル発生源(エミッターと言います)に対する操作はすべて、fireworks_cというIDを指定して命令することになります。

(メモ:パーティクル(particle)とは日本語で微粒子=小さい粒のことを指します。そして、このパーティクルを発生させる発生源をエミッター(emitter)と呼びます。同じ対象であっても、異なる種類のパーティクルを発生させるには複数のエミッターが設定されて、エミッターごとにIDを名付ける必要があります。また、同じ対象に同じ種類のエミッターを複数設定することもでき、その場合もIDを変える必要があります。)


設定名について

さて、次に設定名についてですが、これはパーティクルの発生の仕方や動き方の設定データの名前を指します。

ここでもう1度設定名を見直すと、
「particle play fireworks_c this」

  • 内部管理ID:fireworks_c
  • 対象:this(このイベント)
  • 設定データ名:省略
  • Z軸値:省略

設定名が省略されてますね!

どういうことかというと、設定データ名を省略すると内部管理IDがそのまま設定名として使用されます。(というより、内部管理IDを設定名と同じにすることで設定データ名を省略できます。)

なので、「particle play fireworks_c this fireworks_c」と同じコマンドということにまります。

ちなみに設定名fireworks_cは予め収録されているプリセットデータのうちの1つです。
プリセットに登録されている設定はプラグインヘルプから確認できます。
(プリセットデータはTRP_ParticlePreset、自作したデータはTRP_ParticleListから確認できます)




さて、先程の花火を複数表示するにはどこを修正すればよいか気づいでしょうか?

  • 同じIDを使ってはいけない
  • 設定名と違うIDを使うときは設定名(fireworks_c)は省略できない

という2点を抑えてプラグインコマンドをそれぞれ修正しましょう。
今回はfireworks_c_2、fireworks_c_3というIDに変更してみます。
(updateコマンドでの対象IDの変更も忘れずに!)


テストプレイで実行すると・・・↓

3つ並んで表示できました!めでたし!



ずっと表示するタイプのパーティクル

さて、先程の花火のパーティクルは1度再生するとそれっきりでした。

パーティクル設定にはこのように寿命(lifetime)が終わるとパーティクルの発生を終えて止まるものと、寿命がなくてずっと表示されるタイプのものがあります。

マップ右側にイベントを新しく作り、このイベントに吹き出し花火のパーティクルを表示させてみましょう!

このイベントを自動実行にしてパーティクル表示コマンドを打ち込んでも良いのですが、今回は解説のために先程のイベントの一番下に新しいコマンドを付け足します。

まずはそのコマンドを見てみましょう。

「particle set fireworks_dragon_c1 event:3」

今ままでの再生コマンドと2つ違う部分があります。


まず1つめ、サブコマンドのplayがsetに変わってます。
基本的には寿命があって1度表示させるだけの場合はplayそれ以外の場合はsetと使い分けて下さい。

今回はずっと表示されるタイプなのでsetコマンドを使っています。


そして、もう1つの異なる点は、対象をthisではなくevent:3と指定していることです。

実行しているイベント以外のイベントにパーティクルを表示するにはこのように、「event:イベントID」の形で指定することができます。
(メモ:この他にもpleyerでプレイヤーに、region:リージョンIDで指定のリージョンタイルから表示、walk:player:1でプレイヤーがリージョンID1を歩いたときに表示、などなど様々な対象を設定できます。詳しくは
再生対象の種類とZ軸【パーティクルプラグイン】](https://ci-en.net/creator/2170/article/230025)を読んでみてください)

さて、実行してみますと・・・

終わり無く延々とパーティクルが吹き出し続けてますね!

(メモ:一時的に止めるにはparticle offコマンド。再開するにはparitcle onコマンド。完全に止めて削除するにはparticle clearコマンドを使いましょう)


ついでに魔法陣の中央から吹き出るように、updateコマンドで位置(pos)を調整してみましょう。


バッチリです!

画面全体に表示するパーティクル

さて、続けてもう1つパーティクルをサクッと表示させてみます。
今度は特定のイベントに対してではなく、画面固定で表示するタイプのものです。

中央のイベントに次のコマンドを追加してください。
(常時表示するタイプなのでsetコマンドを使います)

「particle set light_leak_s screen」

  • ID:light_leak_s
  • 対象:screen
  • 設定名:省略(IDと同じlight_leak2)


画面全体に淡い光の演出が表示されました!

表示対象として今回はscreen(スクリーン)を使いました。これは画面に固定表示させて表示する対象設定です。

screenをweather<天候>に変えると発生したパーティクルがマップスクロールに連動して移動するようになります。
(メモ:他にも特定のリージョンのタイル上に表示するregionや、歩行時に表示するwalkなど様々な対象があります。)



パーティクル再生方法について慣れてきたでしょうか?

次は、いよいよエディタを使って設定データを自作してみましょう!

基本の使い方②〜エディタ編【TRP_Particle】


演出を仕上げる(おまけ)

今回作った花火会場にもう少しだけ演出を付け加えて見ましょう!
(早く自作パーティクル設定を作りたい方はスキップして↑のエディタ編を読んで大丈夫です!)

打ち上げ花火をリピートさせる

寿命が設定されているパーティクルは再生後に再度コマンドで命令しないと繰り返し再生されませんが、repeatコマンドを使うことで自動で繰り返すことができます。

ID:fireworks_cをplayコマンドで再生後に↓のrepeatコマンドを付け加えてみましょう。

「particle repeat fireworks_c 120」

最後の120は待機フレーム数を指します。
再生終了後に120フレーム(2秒)の間隔をあけて自動で再生されるよになります!



続けて夜っぽさを出すために色調変更コマンドで全体を少し暗くしてみましょう。

花火の見え具合をチェックしてみると・・・


よく見ると全体が暗くなってるのに引きづられて花火の見え方も暗くなってます。
つまり、花火のパーティクルも色調変更の影響を受けてしまってます。

パーティクルの重なり順を変更

さて、打ち上げ花火のパーティクル表示コマンドをおさらいしましょう。

「particle play fireworks_c this」

  • 内部管理ID:fireworks_c
  • 対象:this(このイベント)
  • 設定データ名:省略
  • Z軸値:省略

今まで説明を省いてきましたが、一番最後の省略されたZ軸値というのが画面上の重なり順を設定するパラメータとなります。

(キャラクターが対象の場合には)省略された状態だとZ軸値にはaboveという値が適用されます。

aboveは「〜〜より上」という意味の単語であり、対象の上に重ねて表示させる設定です。

逆にキャラクターの下(裏側)に表示したいときは「〜〜より下」という意味のbelowという値を設定します。


さて、キャラクターに表示させる場合は基本的にはこのaboveとbelowを使い分けるのですが、今回は色調変更の影響を受けないようにaboveよりさらに上側(手前側)に表示しなければならず、spritesetという値を設定します。

(メモ:spriteset<スプライトセット>とはシステム上でキャラクター画像が表示されるtilemap<タイルマップ>の更に上の階層、マップ上の画像表示の基盤部分を指します。)

playコマンドを↓のように修正してみてください。
パラメータの順番に気をつけて、省略していた設定名の指定も忘れずに!

「particle play fireworks_c this def spriteset」
(defとはデフォルト値を使うという意味で、設定名を省略してIDのfireworks1を設定名に使用しています。)

同じように左右の打ち上げ花火についてもZ軸値をspritesetに設定します。

変更前(右側)と比べて色調の影響を受けずに花火が明るく輝いて見えますね!
(吹き出し花火もZ軸値を変更してます)



お疲れさまでした!
これで、パーティクルプラグインの使い方基礎〜操作編が終わりました。

エディタ編がまだの方はぜひ、続けて挑戦してみて下さい!

基本の使い方②〜エディタ編【TRP_Particle】

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

[一言進捗]/[講座]スクリプトでmeta情報を活用

一言進捗

ダンジョンゲーの方はずっとメニュー作業とか言ってたけど、
ここのところは諸事情で戦闘まわりのシステムの整理をしています。

といってもやはり地味作業ですけどね!!


画面シェイクの挙動の修正↓(順に特大、大、中、小、極小)

ツクールのシェイクは30フレームと指定したら最初から最後までずっと同じ揺れの大きさなのですが、徐々に揺れが小さくなるように修正しました。(ランダムシェイクの既存プラグインを改造)

あと、開始直後に揺れ直後に画面をフリーズさせるヒットストップみたいな演出もオプションパラメータで用意して使ってみてるのだけど、ちゃんとそれっぽくできてるのかよくわからない。

ヒットストップ、ムズカシイ・・・(´・ω・`)


戦闘中のカメラ操作も不完全で騙し騙し使ってたのだけど、きっちりスムーズにズーム・フォーカスができるように調整。


地味だけど、結構大事な部分だと思うので個人的には満足な作業でした🤸‍



RPGツクールMV講座

ダイスプラグインのサンプルで使ってるテクニックを紹介しようのコーナーその2!

スクリプトコマンドでmeta情報を扱う

プラグインの設定のためにイベントとかスキルとか、
色んなデータのメモ欄にカッコをつけて書くあれはmetaデータと呼ばれるのですが、
実はプラグインでなくてもスクリプトコマンドで活用することもできます。

ダイスプラグインのサンプルでもイベントなどを覗くとちょこちょことメモ欄にメタ情報が埋め込まれてます。

今回の講座ではすごろくの「ワープマス」でのメタ情報活用例を紹介します!


ワープマスのイベントの挙動はこちら↓

ワープマスに入ると、対となるワープ先のイベントの位置まで瞬時に移動しています。

さっそく、ワープマスのイベントページを見てみましょう↓

メモ欄には<ワープ先イベントID:97>と書かれており、
このメタ情報を参考にして内部でワープ先のイベントの位置にプレイヤーを飛ばしています。

イベント部分はコモンを1行呼ぶだけとなっており、
ワープマスを量産するにもmeta情報のIDだけ変えれば良い設計となっています。

(変数で指定しても良いのですが、どちらにせよ内部でスクリプトコマンドを使って処理したい内容なので、メタ情報を使った方が手間は少ないと思います。)


さて、実際にどのようにスクリプトコマンドでmeta情報を扱っているかみてみます。
コモンイベント「ワープマス(※)」の中程のスクリプトコマンドです↓

スクリプトコマンドは書ける行数の制限があるため詰め詰めで多少見づらいので、
ここでは下のように小分けに説明してきます。

  1. メモ欄の情報を得るために呼び出し元イベントのイベントデータを取得する
    2.メモ欄のメタ情報から「ワープ先のイベントID」を取得する
    3.ワープ先のイベントの座標にプレイヤーを転送する

1.イベントデータの取得

1行目:var eventId = this.evntId();
イベントコマンドを実行していくインタプリタ(ここでのthis)が保持している呼び出し元のイベントIDを変数eventIdにセットしています。

2行目:var event = $gameMap.event(eventId);
取得したイベントIDのイベントオブジェクトを$gameMap(マップ)に問い合わせて取得しています。

このeventにはイベントの位置やページ状態などのパラメータなどが保存されています。(このようにゲーム中に変化するデータを保持しているオブジェクトをここではゲームオブジェクトと呼びます。)

3行目:var data = event.event();
イベントのゲームオブジェクトから、そのイベントのデータベース上の元データを取得しています。(このようにゲーム中に変化しないエディタで設定した元データをここではデータオブジェクトと呼びます。)

2.metaデータの取得

4行目:var meta = data.meta;
イベントページのメモ欄に設定したメタ情報は、イベントデータのmetaプロパティにまとめられてます。

5行目:var warpIdString = meta['ワープ先イベントID'];
<ワープ先イベントID:イベントID>のように指定したイベントIDは、
メタ情報の左側部分の名前でアクセスできます。

(日本語プロパティはmeta['プロパティ名']のようにかかなければなりませんが、
<targetWarpEventId:イベントID>のように英語の名前を設定しておけば
meta.targetWarpEventIdといった通常の形でアクセスできます。)

ここで変数名をwarpIdではなくwarpIdStringとしているように、
メタ情報に格納されたデータは全て文字列(String)となっています。

6行目:var warpId = Number(warpIdString)
文字列だったワープ先のIDを数値に変換しています。


3.ワープ先のイベントの座標にプレイヤーを転送する

7行目:event = $gameMap.event(warpId);
ワープ先のイベントのゲームオブジェクトを取得してevent変数にセットしています。

9行目はここでは関係ないのでカット。

11行目:$gamePlayer.locate(event._x,event._y);
イベント(event)のx,y座標にプレイヤー($gamePlayer)の配置(locate)させています。

これでワープ先のイベントの位置にプレイヤーをワープさせられました!



初心者でもコメントでスクリプトの流れが分かりやすいようにかなり丁寧に書いてますが、自分が実際に書くとしたら省略してこんな感じかも↓

var eventId = this.eventId();
var event = $gameMap.event(eventId);
var warpId = event.event().meta['ワープ先イベントID`]
event = $gameMap.event(warpId);
$gamePlayer.locate(event._x,event._y);

・・・意外と省略してませんね。

変数名だけを見れば1行目はイベントIDの取得をしていて、2行目はイベントの取得、3番めはメタ情報からワープ先のIDを取得しているということがすぐに分かるので、あまり省略しすぎず丁寧に変数に名前をつけて書いてくのが良いと思います!
(スクリプトコマンドだと行数制限があるのがネックですけどね・・・)





こんな感じで、ダイスプラグインサンプルのコモンイベントには処理の流れやスクリプトに細かいコメントを書いてますので、ご購入されている方は色々眺めてみると面白い発見があるかも?


ダイスを振るだけじゃないダイスプラグインをヨロシクネ!!
ダイス・サイコロプラグイン『TRP_Dice』

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

[一言進捗]パーティクルプラグイン製作中

ダイスプラグイン不具合修正

昨日、ダイスプラグインのV1.03アップデートを行いました。
不具合修正のみとなりますが「change/変化」コマンドを使う予定のある方は
お手数ですが更新の方よろしくおねがいしますm(_ _)m

https://twitter.com/thiropGames/status/1224464184995274752


一言進捗

ダイスプラグインの作業は一段落ついたので、
次に販売予定のパーティクルプラグインの整備を進めてます!

https://twitter.com/thiropGames/status/1224658475550068738

プリセットデータみたいなのをたくさん用意して、
すぐに色んな場面で使えるようにしたいなと考えてます。

3月中頃くらいに販売できるように製作中!
(ダイスプラグインは時間かかったので今回は無理な仕様は詰めずに進めたいです…)



自創作の方でもパーティクルプラグインを使いつつ機能の調整・追加をしてます。

↓戦闘シーンに組み込み

アクションシーケンス系のプラグインだと組み込みやすいけど
デフォ戦闘システムだとどこでパーティクル再生を指定すれば良いのか……うーん

(アニメーションのノート欄にパーティクル再生情報を埋め込むのが良いかなと、
 うっすら考えてます。)




今回は講座おやすみです。

ci-enで進捗記事を書きつつ、少しずつ講座の内容を書き溜めていくのが性にあってそうなので、だいたい進捗記事2〜3回で1回くらい講座コーナーも出せるかなと思います。

(ちなみに、次回の講座はスクリプトコマンドでのmeta情報の扱いについて解説予定)

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

[一言進捗]/[講座]格好良いアニメーションの極意

一言進捗

もう、ずーーーーーーーっとメニューの調整作業。
たぶん、今月もずっと。

https://twitter.com/thiropGames/status/1223584051669241856

メニューウィンドウ設計するって大変ですね・・・(遠い目

せめて今月のプレツクデーにはメニューの花形(?)といえばやっぱり合成屋!
・・・あたりのメニュー進捗を出したいですね。



いつか講座になるかもしれない何か

しばらくはダイスプラグインのサンプルで使っているテクニックを紹介する予定です。

いちおう、コモンイベントにはコメントをつけているのですが、補足や考え方なども少しずつ紹介していきたいなと思います!



いい感じのピクチャアニメーションを作る!

上の進捗動画内にもありますが、

「交渉成功!」

「交渉失敗…」

といったちょっとした情報を表示するのに、
ひと手間かけてフォトショップなどで画像化してから
ピクチャで動かすことで、演出のインパクトが大幅に上がります!


今回はピクチャをアニメーションさせる際に格好良くみせるコツみたいなものを紹介しようと思います!


ダイスプラグインのちんちろりんサンプルで使っている2つのピクチャ演出↓

この2つの共通点こそが、私が思うアニメーションの極意です!!
(見比べて考えてみてくださいね)





その共通点は……






1. ものすごく勢いのあるインモーション
2. 完全には止まらず、じわじわと動く継続モーション
3 勢いのあるアウトモーション


という、3つのモーションから成り立っていることです。

これはもう鉄板です!


アニメーションで変化させるのはだいたい下の4つ。

  • 位置
  • 大きさ・形状(拡大率)
  • 不透明度
  • 角度

最初に上げたモーションがそれぞれどんな要素でできてるか検証してみます。

スライドモーション

インモーション

始めは勢いよく右から中央にスライドしてきますね。

ただ、よく見ると移動と同時に透明な状態か不透明な状態に変化しています。

また、形状をみると横に潰れた状態(高さ0)から通常の状態に戻っています。


このように複数の要素のアニメーションを組み合わせるとより複雑で飽きないアニメーションが出来上がりやすいです。


少なくとも、不透明な状態のピクチャがドーンといきなり出てこないように、
始めは不透明にするか、高さか幅を0%にするなど意識すると良いでしょう。


また、インモーションはこれでもかと早く&大げさに演出すると、勢いがついた心地よいアニメーションになると思います。


継続モーション

中央(より若干右)にスライドしてきたテキストは、
その場で止まらずに少しずつ左に移動を続けます。

このちょっとした動きがあるだけでモーションがリッチに見えます。

勢いよくインしたあとにも微妙に動かし続けましょう。


2つ目の例でも、勢いよく縮小しつつインしたあとも、
ジリジリとゆっくり縮小をつづけています。


アウトモーション


インモーションと対応させて

  • 左へ移動
  • 形状を横に潰す(縦0%、横130%)
  • 徐々に透明に

といった3つの要素をアニメーションさせています。

インモーションより多少アニメーションフレームに余裕をもたせて
余韻をもたせるようにしています。
(といっても遅くしすぎたらテンポが悪くなるので注意!)


本当にこの3つを守るだけでそれっぽいアニメーションになると思いますので
みなさんもぜひピクチャ演出を活用してみましょう!

(ピクチャ演出はイージング系のプラグインを使うのも緩急が簡単につけれてオススメですが、↑の動画のように3つのモーションをしっかり設定すればイージング無しでも意外となんとかなります・・・というより、3つのモーションの設計の方が大事かと思います!)



ちなみに、ダイスプラグインのサンプルではピクチャ表示で画像を指定してから
演出用のコモンイベントを呼ぶだけで上で挙げた演出を行ってくれます!

ご購入されてる方は雑にピクチャ演出に活用したり、コモンイベントの中身を書換えてアニメーションを改造してみたりしてくださいね!



こんな感じでしばらくはダイスプラグインの宣伝がてら、
サンプルで使っているテクニックを少しずつ紹介してこうと思います。

宣伝うざいかもだけど、ダイスを振るだけじゃないダイスプラグインをヨロシクネ!!
ダイス・サイコロプラグイン『TRP_Dice』

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索