【ツクール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%]
+変数[なし …]

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

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

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

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

【ツクールMZ】初中級者向けのイベントコマンドを考えてみた

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

  • 【初中級者向けのイベントコマンドとは何か?】
    • 《定義》
    • 《基本的なラインナップ強化方針》
  • 【コマンド強化案リストの見方】
    • ◆〚方向移動〛◆
    • ◆〚接近・離脱移動〛◆
    • ◆〚座標指定移動〛◆
    • ◆〚向きの変更〛◆
    • ◆〚移動設定〛◆
    • ◆〚画像の操作〛◆
    • ◆〚姿勢〛◆
    • ◆移動ルート系でも利用できるコマンド◆
  • 【一般イベントコマンド系の強化案】
    • ■〚メッセージ〛■
    • ■〚選択肢〛■
    • ■〚ゲーム進行〛■
    • ■〚タイマー〛■
    • ■〚フロー制御〛■
    • ■〚パーティ〛■
    • ■〚アクター〛■

【初中級者向けのイベントコマンドとは何か?】

《定義》

 初期コマンド群に慣れてきたころに「あともう一声、市販作品で用いられている演出をしたいな」というときに、基本と思われるものを集めたコマンドセット。
 (現状、本項で挙げた機能の多くがプラグインで補完されている)
 RPGでいうところの「序盤から見えているが、中盤になると取れる宝箱」
 イメージとしては、メニューの環境設定あたりで「中級コマンド群を表示」で有効化すると、コマンドの各カテゴリに追加表示される感じ。

 

《基本的なラインナップ強化方針》

・「移動ルートの実行」とほぼ同じ仕様の「エフェクトの実行」コマンドを用意する
 ……EventEffects系のコマンドやアニメーションなど、移動に関わらないものを担う。別枠にすることで、移動が中断されにくいようにする。

・同じ系列のコマンドは基本版、準基本版、詳細版を用意する
 ……それぞれ初級、初中級、中級向け扱い。同じようでだんだんパラメータが増えていくことで理解を深めやすくする。
 テストでいうと文章題の①②が基本コマンド、③④あたりが本項でテーマの初中級者向けコマンド、という位置づけ。

・パラメータの多いものはカテゴリの後半にまわす
 ……パラメータが多いほど演出対応力が上がるが、運用難度も上がるため。ただし、挙動が読みやすいパラメータ名が多い場合はカテゴリの前半にまわせるものもある。

・パラメータ数が5,6種以上になるコマンドは「メモ欄」配置を検討する
 ……拡張性を高めたいがパラメータ数や構成が複雑(中上級以上向け)になりそうなときは基本パラメータ以上はメモ欄に任せ、プラグインからのタグ付けに頼ることで見た目のパラメータ数を抑え、とっつきやすさを確保する。

・座標指定系では絶対指定、相対指定は揃える。
 ……目標指定である絶対指定、変化量指定である相対指定は何かと両方使うので揃える。

・座標指定系では基点選択版を設け、直接指定リストには「マップ」を加える 
 ……キャラ[ マップ▼] オフセット[ X][ Y]でマップ座標指定
  キャラ[ プレイヤー▼] オフセット[ X][ Y]でプレイヤー周辺指定を表現できる、

・座標指定系では座標タイプ(オフセットタイプ)を揃える
 ……XYで表現する上下左右座標(直交座標)、前後(Fwd,Fd,FかFB)と左右(Side,Sd,SかLR)で表現する前後左右座標、距離(半径)と角度で表現する上下環状座標(極座標)と前後環状座標。4種を揃える。
 いずれもどういう座標か理解しやすそうな呼称をつけてみた。
 また、前後左右座標と環状座標は運用が似ているので正負の方向を揃える(重要)

ピクセル指定する箇所ではタイル指定(小数点可)も可能とする
 ……MZはタイルの解像度を48x48以外も指定できるようになったので、今後はWITHのようにアセット配布システムが逆輸入されたときに耐えられるよう、タイル指定を基本とする。

・速度指定する箇所ではtpsを数値指定可能とする
 ……tps=tile per second tpsが1.0のとき、1秒で1タイルぶん進む。タイルの解像度が変わっても対応可能。
 現状見たところ、速度1~6はそれぞれ、tps=0.25, 0.5, 1.0, 2.0, 4,0, 8.0 であるように思える。これらをプリセットとしてコンボボックス[ tps▼]で指定可能とする
 速度で+1.0, -0.5 などと符号をつけると、現在の速度に加算される。
 空欄の場合、現在の速度が維持される。グレーで「維持」と仮表示される。

・コンパクトイージング記述を設ける
 速度・フレーム数指定項目でイージングを示す記号を数値の後につけられる。イン(⇒)、アウト(⇐)、インアウト(⇔)を指定可能。この記述だと他のスクリプトと被りにくいので。

・イベントやピクチャの指定項目で直接のほか変数などを指定可能とする
 ……[直接/変数/セルフ変数/ラベル/テキスト▼][プレイヤー ▼]
 またはコンパクトに[…/V/SV/Lb/Tx▼]で指定。より柔軟な演出をしやすくする。ラベル指定は出現中のイベントにコマンド「ラベル」が含まれているもので、かつ指定文字列が含まれるものを全選択する。
 テキスト(展開式複数行)からは名称指定のほか、ID複数指定、正規表現によるマッチング複数指定、その他プラグインによる高度な指定方法が狙える仕様とする。

・テキスト版数値指定を用意する
 ……本項では[ T]と表現を試みる。名称入力で変数と解釈される。
 数値入力時、ドラッグまたはホイールの上下で値が増減する。

続きを読む