【ツクールMZ】スキル・アイテムの項目をイベントコマンド化してみた

 

ツクールアドベントカレンダー2025参加記事です。
不定期更新中

【概要】

《目的》
・こだわろうと思えば市販レベルのスキル演出、スキル内容がプラグインなしでも
かなり組める環境を実現させる仕組みの一例を試作
《改造方針》
・スキルとアイテムは
発動、ダメージ、使用効果、メモが共通で、主にここをコマンド化する。
スキル側にある「メッセージ」もコマンド化の対象とする。
基本設定などコマンド化の対象外のものは
適宜カテゴリ分けのうえ一部強化+折畳み枠とする
 

【新基本設定のカテゴリ】

◆〚基本設定〛◆

旧基本設定等から以下を受け継ぐ
・名前
・アイコン
・説明
・タイプ(スキルタイプorアイテムタイプ)
・使用可能時
・発動速度補正(カテゴリ「発動」から)
・必要武器タイプ1(スキルのみ)
・必要武器タイプ2(スキルのみ)
・価格(アイテムのみ)

◆〚消費コスト〛◆

消費コストをスキルとアイテムとで共通項目化のうえ、以下の項目を組み合わせて消費するスタイルとする
・MP
・HP
・TP
・拡張パラメータ
・個数(アイテムのコスト設定時のみ有効)
・他のアイテム
・変数 
 
 ✦スキルの消費コストの初期状態(MP+HP+TP)
  +拡張パラメータ追加例(名称:LP)
MP 0  
HP 0 \death
TP 0  
LP 10  
新規項目…
 ・HPは新要素アピールのため初期状態に含めておく。
  (不要なら選択して削除)
 ・数値部分は計算式利用可。
 ・拡張パラメータは別途データベースで設定。
  データベース→「タイプ」→new!「拡張パラメータ」からを想定。
 ・各項目の末尾にメモ欄を装備。
  HP欄の"\death"は「戦闘不能を許可」するオプション。
  あえて制御文字指定として、UIのシンプル化とメモ欄の利用例を示し、必要に応じてプラグインで関連機能追加したいときの利用箇所であることを理解しやすくするのが狙い。
 
 ✦アイテムの消費コストの初期状態(個数)
  +他のアイテム(名称:謎の邪神像)+変数(名称:環境魔素(闇))等追加例
個数 5 \useup 
謎の邪神像 0  
環境魔素(闇) itemcosts[0]*20 \min0 
HP itemcosts[0]*10 \death
新規項目…
 ・個数と他のアイテムは複数個指定可。0で消耗しない扱い。
  初期数は通常アイテムで1。大事なもの、隠しアイテムは0。
 ・この例では別途「謎の邪神像」を持っていないと、このアイテムを使えない、という設定になる。
 ・\useup は不足時はあるだけ使い切る、というオプション。
 ・\min0 は最低値を0とするオプション。変数専用。
 ・itemcosts[0] は(このアイテムの)「個数」の値。
  0以外だと他のアイテムを指定できる(\useup有効時は値が変動)
 ・%(現在値)と%(最大値)の英字表記版を例示(cur, max)
 ・個数、他のアイテム、変数に%(最大値)指定はない
 

◆〚主範囲〛◆

同じスキルに異なる範囲の効果を設定できるようになったため設けられる項目。
ここの内容に応じて対象の選択方法が変わる。
「使用者を除く」といった補正について、方向性をいくつか併記。
陣営 状態 メモ

〚陣営〛
( )なし
( )敵
(●)味方
( )敵と味方
( )使用者 

《使用者補正→「数」側の場合》

〚数〛
(●)全体
( )個別[ 1]体(最大9)
  重複[あり/ なし ▼]
( )ランダム[ 6]体(最大99)
  重複[あり/ なし/ 周回 ▼]
( )カスタム(プラグインで指定)

 [レ]使用者[除く/ 追加 ▼]
 [ ]隣接[前後/ 前か後/ 前/ 後 ▼] 

〚状態〛
(●)生存
( )戦闘不能
( )無条件

〚メモ〛
[  …]

《使用者補正→「陣営」側の場合》

〚陣営〛
( )なし
( )敵
(●)味方
( )敵と味方

使用者
[含む/ のみ/ 除く/ 追加 ▼]

〚数〛
(●)全体
( )個別[ 1]体(最大9)
  重複[あり/ なし ▼]
( )ランダム[ 6]体(最大99)
  重複[あり/ なし/ 周回 ▼]
( )カスタム(プラグインで指定)

 [ ]隣接[前後/ 前か後/ 前/ 後 ▼] 

〚状態〛
(●)生存
( )戦闘不能
( )無条件

〚メモ〛
[  …]

〚陣営〛
( )なし
( )敵
(●)味方
( )敵と味方
( )使用者 

《「使用者除く」のみUI追加》

〚数〛
(●)全体
( )個別[ 1]体(最大9)
  重複[あり/ なし ▼]
( )ランダム[ 6]体(最大99)
  重複[あり/ なし/ 周回 ▼]

 [レ]使用者を除く

〚状態〛
(●)生存
( )戦闘不能
( )無条件

《詳細はタグ指定》
〚メモ〛
\adduser:使用者追加

〚陣営〛
( )なし
( )敵
(●)味方
( )敵と味方
( )使用者 

《強化点をほぼメモ欄に委託》

〚数〛
(●)全体
( )単体
( )ランダム[ 6]体(最大99)
 

 [レ]使用者を除く

〚状態〛
(●)生存
( )戦闘不能
( )無条件

《詳細はタグ指定》
〚メモ〛
\adduser:使用者追加
\multitarget[n]:n体個別指定
\noduplicate:対象が重複しない
\equalize:周回重複と同じ

 

✦解説----
・プレイヤーによる複数体個別指定が可能に。
 一部集中的に攻撃したい、などを叶えるスキルが組める

 <重複>
  「あり」……同じ対象を続けて選択できる
  「なし」……同じ対象は選択できない。対象の数が攻撃回数より少ない時は
   全員選択か対象となった時点で打止となる。演出専用向け。
  「周回」……対象1体に1回づつランダムで当てたあと、
   再び対象1体づつランダムに…を、攻撃回数が満たされるまで繰り返す。

 <使用者>
  「除く」……対象から使用者が除かれる(陣営:使用者でも利用可)
   味方個別の場合は個別選択時に使用者がスキップされる
  「追加」……対象に使用者を追加する。
   敵と使用者、味方単体と使用者などを対象としたいときに。
   (使用者込みのため、個別選択時に使用者はスキップされる)

 <隣接>
  隣接は使用者または「全体」以外の個別対象で適用できる。対象が個別複数のときは対象ごとに発生。
  隣接キャラは副対象扱いとしてスクリプトから判別可能。副対象を拡張したいときはプラグイン&メモ欄でコントロールする
(隣接指定機能はオールプラグイン+メモ欄任せでもいいかもしれないが、骨子があると安定性のあるプラグインが組みやすい……かも?)
  「前後」……個別対象ごとに、その前後キャラを副対象に加える
  「前か後」……個別対象ごとに、副対象を別途選択。
   ただし、ランダムのときは副対象を対象ごとに前後いずれかをランダム選択
  「前」「後」……個別対象ごとに、そのひとつ前/後のキャラを副対象に加える

  味方キャラの場合、隣接「前」は
   FV……左か上のキャラ
   SV……真左方向を基準として、±90度以内かつ距離が最も近いキャラ
  味方キャラの場合、隣接「後」は
   FV……右か下のキャラ
   SV……真右方向を基準として、±90度以内かつ距離が最も近いキャラ
  敵キャラの場合、隣接「前」は
   FV……真下方向を基準として、±90度以内かつ距離が最も近いキャラ
   SV……真右方向を基準として、±90度以内かつ距離が最も近いキャラ
  敵キャラの場合、隣接「後」は
   FV……真上方向を基準として、±90度以内かつ距離が最も近いキャラ
   SV……真左方向を基準として、±90度以内かつ距離が最も近いキャラ

 <メモ>
  注釈用途のほか、プラグインによるオプション機能を記述するときに利用する

 

【スキルイベント】

  スキルイベントを配置して使用効果を組み立てる。
 マップイベントのコマンドも一部利用できる

《旧設定画面からの移設先》

 「速度補正」……基本設定側へ移設
 「成功率」……使用効果ごとに設定
 「連続回数」……ループなどで表現
 「得TP」……「TPの増減」に代替
 「命中タイプ」……使用効果ごとに設定
 「アニメーション」……同名コマンドを利用

 「メッセージ」……新コマンド「バトルログの表示」へ

 「ダメージ」……新コマンド「ダメージ・回復・吸収」へ

 「使用効果」……子項目をそれぞれコマンドに展開

 「メモ」……同名コマンドを利用

《マップ専用コマンド》

 スキルイベントコマンドとして利用できないものは以下

 ・ゲーム進行:セルフスイッチの操作、セルフ変数の操作
 ・アクター:名前の変更、職業の変更、二つ名の変更、プロフィールの変更
 移動:場所移動、乗り物の位置設定、乗り物の昇降、※移動ルートの設定
 ・キャラクター:隊列歩行の変更、隊列メンバーの集合
 ・シーン制御:すべて
 ・システム設定:すべて
 ・マップ:マップ名表示の変更、タイルセットの変更
 ・バトル:バトルの中断

※移動ルートの設定用のコマンドは対象をバトラーに変えて概ね利用できる。
 利用できないものは以下

 ・移動頻度の変更

■〚メッセージ〛■

・スキルイベント向けは以下

コマンドと
主な項目
機能の特徴

≪バトルログの表示≫

「バトルログの内容
  (一度に2行可)」

[ 20]フレーム
 [レ]完了までウェイト
 メモ[  …]

以下の定型文を挿入するボタンがある。
[〜を唱えた][〜を放った][〜を使った]
[使用者名][対象者名][※このスキル名]

※アイテムのイベント編集中は"このアイテム名"と表示される

■〚キャラクター〛■

・スキルイベントでは基本となるカテゴリ

コマンドと
主な項目
機能の特徴
≪効果とモーションの設定≫
〚範囲〛
 (●)主範囲と同じ
 ( )親範囲と同じ
 ( )別途指定
   [敵全体 …]

〚実行間隔〛
 [ 6]フレーム
 [レ]完了までウェイト

〚メモ〛
 [  …]

・マップの「移動ルートの設定」相当で、最も重要なコマンド。
・ブロックタイプで、内側にコマンドを記述する。ネスト可能

 ◆効果とモーションの設定
  範囲:主範囲と同じ
  ◆効果とモーションの設定
   範囲:使用者
   ◆
  ◆
 ◆

・範囲の別途指定は、主範囲で用いられる範囲指定窓が開く。
・実行間隔は、1体づつ処理を行うとき、何フレームを置いてから次の対象を処理するかで利用する

≪味方全体のフェードアウト≫

 [ 20]フレーム
 [レ]完了までウェイト
 メモ[  …]
 

・召喚技等でパーティを非表示にしたいときに。

≪味方全体のフェードイン≫

 [ 20]フレーム
 [レ]完了までウェイト
 メモ[  …]
 

 

 

■〚ダメージと回復〛■

・HP, MP, TP, ダメージ系追加パラメータの増減を行う

コマンドと
主な項目
機能の特徴

≪HPダメージ・回復≫

( )回復
(●)ダメージ
( )吸収
成功率[計算式% …]

属性[ 火]
 ダメージ計算式
 [  …]
 分散度[計算式% …]
会心[あり ▼]

・項目に成功率が追加
・成功率と分散度で計算式利用可に

≪HPの増減≫

( )増やす
(●)減らす

定数[ 0]
+比率[ 0%]
+変数[なし …]

[レ]戦闘不能を許可
[レ]数値エフェクトを表示

・スキルイベントではアクター、敵キャラの指定項目は省略され、直近の対象範囲が適用される。

・増減コマンドに、現使用効果で用いられている比率%要素を加える。
 定数+比率+変数の形式に。

・数値エフェクトを有効にすると、合計値の正負に応じた色の数値エフェクトが対象に表示される。