データベース編

スキルを作る

アクターが使用できる技や魔法を作成していきます。

スキル作成の流れ

この項目ではスキルを作成していきますが、実際にスキルをゲーム中で使用するためには、データベースの[アクター]や[職業]、[タイプ]タブも関わってきます。

一連の流れを確認してみましょう。

属性を設定する

スキルには[属性]を設定することができ、属性によって有効な攻撃や不利な攻撃を作成できます。
MZではサンプルとして複数の属性が用意されています。

属性を編集したい場合はデータベースの[タイプ]タブから編集しておきましょう。
属性の設定

スキルの設定をする

スキルの作成はデータベースの[スキル]で行います。

本項目ではこのスキルの設定について詳しく紹介します。

スキル習得の設定をする

[スキル]で作成したスキルは、アクターが特定レベルになると自動的に習得する設定が可能です。

レベルアップによるスキル習得は[職業]タブで設定可能です。 習得するスキル
また、イベントコマンド[スキルの増減]を使うことで、スキル習得イベントも作成できます。

スキル設定の注意点

スキル作成時には注意しなければいけないことがあります。
実際にスキルを作成する前に、注意点も念頭に置きましょう。

スキルタイプの設定

MZには「スキルタイプ」という仕様があり、アクターは「スキルを習得」していて、かつ「習得したスキルのスキルタイプ」を使用できなければスキルを発動できません。

2種類のスキルタイプ(魔法・必殺技)を使うことができる職業の特徴例

スキルタイプとは、スキルの系統のことです。
例えば「魔法」のスキルタイプを持つスキルを使用する場合は、アクターの特徴[スキルタイプ追加]で「魔法」を設定する必要があります。
[スキルタイプ追加]がない場合は、「魔法」自体のコマンドが表示されず、スキルを習得していたとしても使用することができません。
基本的な特徴の設定

スキルタイプを活用することで、スキル系統を表現できますが、戦闘時には[スキルタイプ追加]で追加した数だけスキルのコマンドが増加します。
あまり多すぎると操作しづらくなる恐れもあるため、注意しましょう。

攻撃と防御のスキル

スキルID:0001と0002のサンプルスキルは設定変更しないことを推奨します。

ID:0001 「攻撃」

バトル中に「攻撃」コマンドを選んだ時に発動するスキル

ID:0002 「防御」

バトル中に「防御」コマンドを選んだ時に発動するスキル

例えばスキルID:0002に回復魔法を設定した状態で防御コマンドを選ぶと、回復魔法が発動してしまいます。

ID:0001と0002は攻撃や防御をカスタマイズしたい方向けのスキルとなっているため、慣れないうちはサンプルのまま利用していきましょう。

スキルの基本設定を行う

それでは、実際にスキルを作成していきます。データベースの[スキル]タブで設定します。

[基本設定]

まずは、[基本設定]から設定します。

名前

ゲーム中に表示されるスキルの名前です。

アイコン

スキル欄で表示されるアイコンです。イメージに合うアイコンを設定しましょう。

説明

スキル欄で表示されるスキルの説明文です。

スキルタイプ

作成するスキルに合うスキルタイプを設定してください。ここで設定したスキルタイプによって、そのスキルを使用するコマンド名が決まります。
敵キャラ専用のスキルであれば、[なし]でも構いません。
スキルタイプの設定

TP

消費 MP / 消費 スキルの使用により消費する MP や TP の値です。なお、MP と TP 両方消費するスキルも作成可能ですが、画面表示は消費 TP のみになります。

範囲

スキルの効果を発揮する対象を設定します。

使用可能時

スキルを使用できるタイミングを設定します。

[発動]

速度補正 戦闘使用時に「敏捷性」を補正する数値を設定します。基本的には 0 で構いませんが、スキル使用時に先手を取りやすくしたい場合は正の数値を、先手を取りにくくする場合は負の数値を設定しましょう。
また、戦闘方法をTPBに設定した場合は、負の値を入力することでキャストタイムが発生し、行動選択から行動発動までに要するスキルも作成可能です。
詳しくは新機能活用講座をご確認下さい。
タイムプログレス戦闘

成功率

スキルの使用が成功する確率を設定します。失敗する可能性があるスキルには100 未満の数値を設定しましょう。

連続回数

対象に対してスキルの効果を適用する回数です。基本は 1 のままにしておき、2 回ヒットするスキルならば 2 を設定しましょう。

得 TP

スキルの使用成功時に使用者が獲得できる TP の値を設定します。

命中タイプ

スキルの命中判定に関する設定します。
命中タイプを活用しよう!

アニメーション

戦闘中にスキルを使用した際に、表示されるアニメーションです。
[通常攻撃]を選ぶと、通常攻撃のアニメーションを表示します。
戦闘中に使用しないスキルは、[なし]を選んでください。
アニメーションについて

命中タイプを活用しよう!

命中タイプは、次の 3 つのタイプがあります。

必中

スキルの使用に成功した時点で、命中率に関係なく必ず命中します。また、「反撃」、「魔法反射」、「身代わり」の対象になりません。

物理攻撃

通常攻撃同様に、使用者の命中率と対象の回避率によって命中するかどうかが判定されます。また、「反撃」、「身代わり」の対象になります。

魔法攻撃

対象者の魔法回避率によって命中するかどうか判定されます。また、「魔法反射」、「身代わり」の対象になります。

「特技」には[物理攻撃]を、「魔法」には[魔法攻撃]、「回復魔法」には[必中]を設定すると良いでしょう。

[使用時メッセージ]

戦闘中、スキルを使用した際に表示されるメッセージを設定します。
ボタンをクリックすると、メッセージを自動的に設定することができます。

自動設定で入力される%1・%2は使用者・スキル名に置き換えられて表示されます。

[必要武器]

スキルを使用するために必要な武器タイプを設定します。
ここで設定した武器タイプの装備品を装備していない場合、このスキルは使用できません。

[ダメージ]

スキルによる効果の種類と効果量を決めます。

タイプ

効果量の種類を決定します。
[HP ダメージ]と[MP ダメージ]は、それぞれ対象にダメージを与えます。
[HP 回復]と[MP 回復]は、それぞれ対象を回復します。[HP 吸収]と[MP吸収]は、それぞれ対象にダメージを与えると共に、使用者を回復します。
効果量を設定しない場合は[なし]のままにしておいてください。

属性

スキルの属性を設定します。[なし]以外の場合、対象の属性有効度によって最終的な効果量が変動します。[通常攻撃]を選ぶと装備中の武器に設定されている属性が反映されます。

計算式

効果量を決定する計算式を入力します。詳しくは、後で解説します。
スキルの効果量を決める計算式

分散度

効果量のばらつきの度合いを設定します。設定した数値のパーセント分、計算式で算出された効果量から上下に幅が出ます。

会心

会心の一撃を発生させるかどうかを設定します。

[使用効果]

スキル使用した際に発動する効果を設定する項目です。
設定できる効果はアイテムで設定できるものと同じです。

ダメージでは再現できない様々な効果が作成できるため、スキル実践編やポップアップメニューを活用して確認して下さい。
スキル実践編

スキルの効果量を決める計算式

[ダメージ]項目の計算式では、スキルの効果量(ダメージ量や回復量)を計算式で決めていきます。

計算式で使用する記述

計算式は半角英数字で入力していきます。
特定の数値だけではなく、決められた記述をすることで、能力値や戦闘状況を活用したスキルも作成できます。

能力を参照する場合の記述

計算式では数値以外にも特定の文字列を入力することで使用者と対象の能力値を参照することができます。

atk 攻撃力
def 防御力
mat 魔法力
mdf 魔法防御
agi 俊敏性
luk
mhp 最大 HP
mmp 最大 MP
hp 現在のHP
mp 現在のMP
tp 現在のTP
level レベル

上記の記述の前に対象を決めるアルファベットを記述します。

「a.」使用者の能力値(例)「a.mhp」……「使用者の最大 HP」
「b.」対象の能力値 (例)「b.agi」 ……「対象の敏捷性」

この他にも「v[n]」の形式で、変数を指定することも可能です。
また、上級者の方は関数を活用することで、より多彩な計算式も構築できます。
高度なスキルを作成する

四則演算と計算の基礎

計算式は「+」「-」「*」「/」を使った四則演算で構成します。
(「*」は掛け算、「/」 は割り算)

計算の順序は、掛け算と割り算が先で、足し算と引き算が後になります。
例えば上記画像であれば550が計算式から計算された効果量になります。
足し算を先に計算したい場合は、「(300 + 200)* 2 」のように括弧を活用しましょう。

なお、計算式は、整数で計算されるため、割り算を行った場合、余りは切り捨てられます。
ただし、「a.atk * 0.5」のように、式の中に小数点が出てきた場合は、小数点を含めた計算になります。
この場合、実際のダメージは整数に変換されます。(小数点以下は切り捨てられます)

初期スキルで計算式を学ぶ

サンプルデータを参考に計算式の理解を深めてみましょう。

「ファイアⅠ」の設定解説

「a.mat」はスキル使用者の魔法力、「b.mdf」は対象の魔法防御が代入されます。
「100 + 使用者の魔法力の 2 倍 - 対象の魔法防御の 2 倍」が基本的な効果量になり、この基本値に[分散度]で設定したパーセント分、最終的なダメージ量に変化が出ます。

上位ファイアを作ってみる

サンプルの「ファイアⅠ」を元に、ダメージ量の多い上位ファイアを作ってみましょう。

1つ目は整数を100から500に変えて作成したパターンです。
使用者・対象者の能力値計算をそのままにすることで、純粋に「400」ほど高いダメージが見込めるようになります。

2つ目は 使用者の魔法力を参照する箇所を「 a.mat * 2 」から「 a.mat * 4 」に変えて作成したパターンです。
「使用者の魔法力の 2 倍」から「使用者の魔法力の 4 倍」に変化したことで、魔法力が高いほど恩恵を受けるスキルになります。

「ヒール」の設定解説

サンプルデータの「ヒールⅠ」も見てみましょう。

「a.mat」はスキル使用者の魔法力に置き換わるため、「500 + 使用者の魔法力」が基本的な回復量になります。

上位ヒールを作ってみる

サンプルの「ヒールⅠ」を元に、より回復が見込める上位ヒールを作ってみましょう。

上記例では整数を500から2000に変更しました。
差額の「1500」ほど高い回復が見込めるようになります。

2つ目の例では整数を500から1000に変更し、かつ「 a.mat 」から「 a.mat * 4 」に変更しました。
整数の差額分高い回復が見込めるようになり、さらに使用者の魔法力が高いほど回復量の上昇が見込めるスキルになります。

スキル実践編

最後に、スキル作成例をいくつか紹介していきます。

敵を状態異常にするスキル

敵を異常状態にする魔法は[使用効果]で[ステート付加]を設定します。

ダメージがなく、ステートだけ付加したい場合は、[ダメージ]の[タイプ]を[なし]にしておきましょう。

味方の状態異常を治療するスキル

異常状態を回復するスキルは使用効果で[ステート解除]を設定します。

味方の能力を上げるスキル

[使用効果]の[強化]を使用します。

強化したい能力値と継続ターン数を設定します。
なお、同じ[強化]を重ねることで二段階まで能力値が強化されます。
異なる継続ターン数を設定した[強化]を重ねた場合は、長いターン数が適用されます。

ちなみに、使用効果[弱体]を使うことで能力値を下げるスキルも作成可能です。

ステートを活用した補助スキルを作る

ステートを活用することで、[強化]ではできない補助効果を発動できるスキルも作成できます。

ステートの実践編で「HPが毎ターン回復するステート」を作成しました。
HPが毎ターン回復するステート

スキルの使用効果[ステート付加]を使い、作成したHP自動回復のステートを付加します。
自動的に毎ターンHPが回復する効果を対象に与える、補助スキルができました。

ステートを活用することで、[強化]ではできない能力値を上げる強化スキルも作成できます。
ステートを活用した補助スキルも作成できることを覚えておきましょう。

全体攻撃魔法を作る

対象に関する設定は[基本設定]の[範囲]を使用します。

[範囲]を[敵全体]にすることで、全体攻撃魔法も作成できます。

先手を取りやすいスキルを作る

[発動]にある[速度補正]にプラスの数値を入力することで、スキル使用ターンに「俊敏性」に補正がかかり、先手を取りやすいスキルを作成することもできます。

マイナスの数値を入れることで、ターン制では通常より後手になりやすいスキル、TPBでは行動選択から発動まで時間を要するスキルも作成できます。
「威力は低いが先手を取りやすい技」「威力は高いが発動が遅くなる魔法」といった、スキルの個性に繋げることもできるので、必要に応じて活用しましょう。

高度なスキルを作成する

計算式を使うことで高度な効果量のスキルを作成できます。
スキルの効果量を決める計算式

計算式ではMZのゲーム実行部分で使用されているJavaScriptというプログラミング言語を使うこともできます。

「使用者の攻撃力 × 4 -対象者の防御力 × 2 」か「1」のいずれか大きい数値が効果量となる計算式の事例

JavaScript の Math.max(○, △)という関数を使用した例です。
この関数は○と△のうち、大きい結果の値になるという関数です。
「最低でも必ず1ダメージ与える」という計算式になっています。

「戦闘に参加しているアクター × 500」が効果量となる計算式の事例

こちらは戦闘に参加しているアクターの数によって効果量が高まる式を設定した事例です。

このように、「関数」を活用することで高度なスキルも作成できます。「関数」で取得できる値の一例を紹介します。

$gameParty.members().length メンバーの数(メンバーとは、戦闘中は戦闘参加人数、移動中はパーティーの人数)
$gameParty.size() $gameParty.members().length と同じ
$gameParty.battleMembers().length 戦闘参加人数
$gameParty.allMembers().length 戦闘不参加も含めた、パーティーの人数
$gameParty.aliveMembers().length 生きているメンバーの数
$gameParty.movableMembers().length 眠りなどにかかっていない(動ける)メンバーの数
$gameTroop.members().length 敵キャラ総数(まだ出現していない敵キャラは含まない)
$gameTroop.aliveMembers().length 倒された敵キャラの数
$gameTroop.movableMembers().length 眠りなどにかかっていない(動ける)敵キャラの数

専門的な知識が必要になるため、詳細の説明は省きます。
関数を活用することで、より広い計算ができることだけ覚えておきましょう。