メインコンテンツまでスキップ

タイプシステム

タイプシステムは、あらゆるモンスター捕獲ゲームにおけるバトル戦略の背骨です。MCE には、完全に設定可能なタイプ相性表、複合タイプのサポート、タイプの相性をカスタマイズするためのエディターツールが含まれています。

概要​

すべてのモンスターは 1 つまたは 2 つのタイプを持ち、すべての技はちょうど 1 つのタイプを持ちます。技が対象に当たると、ゲームは、技のタイプと対象のタイプとの関係に基づいてタイプ相性の倍率を計算します。

Type Chart Editor

この表はコードではなくデータです。上のエディターは、バトルの計算式が実行時に読み取るのと同じアセットを書き込みます。 だからこそ、18 タイプのグリッドは規則ではなく出発点になります。タイプを追加したり、削除したり、 セルを書き換えたりでき、再コンパイルは不要です。

デフォルトの倍率は次のとおりです。

結果倍率メッセージ
こうかばつぐん2.0 倍"It's super effective!"
こうかはいまひとつ0.5 倍"It's not very effective..."
こうかなし0.0 倍"It doesn't affect [target]..."
等倍1.0 倍(メッセージなし)

複合タイプのモンスターでは、倍率は掛け合わされます。ほのおの技がくさ/こおりのモンスターに当たると、2.0 x 2.0 = 4.0 倍のダメージになります。

デフォルトのタイプ相性表​

デモには、標準的なモンスター捕獲ジャンルに合わせた 18 タイプ(および Typeless タイプ)が含まれています。

Normal、Fire、Water、Grass、Electric、Ice、Fighting、Poison、Ground、Flying、Psychic、Bug、Rock、Ghost、Dragon、Dark、Steel、Fairy

タイプのカスタマイズ

これら 18 タイプは出発点にすぎません。タイプは通常の MonsterType アセットなので、追加、削除、名前の変更ができます。初期の世代では 15 タイプを使うなど、より少ないタイプを使うゲームもあれば、まったく独自のタイプ相性表を作るオリジナルゲームもあります。

タイプ相性表​

表はタイプ自身に保存されています。すべての MonsterType アセットは、そのタイプの技に対する AttackMultipliers 辞書(防御側のタイプ → 倍率)を持ちます。IMonsterDatabase.GetTypeEffectiveness() メソッドは、実行時に倍率を返します。

float multiplier = database.GetTypeEffectiveness(attackingType, defendingType);

覚えておきたい主な相性:

攻撃タイプ有利(2 倍)不利(0.5 倍)無効(0 倍)
FireGrass、Ice、Bug、SteelFire、Water、Rock、Dragon--
WaterFire、Rock、GroundWater、Grass、Dragon--
GrassWater、Rock、GroundFire、Grass、Poison、Flying、Bug、Dragon、Steel--
ElectricWater、FlyingElectric、Grass、DragonGround
GroundFire、Electric、Poison、Rock、SteelGrass、BugFlying
GhostPsychic、GhostDarkNormal
Normal--Rock、SteelGhost

完全な表は、Type Chart Editor で閲覧・編集できます。タイプの辞書にないペアは、等倍(1.0 倍)として扱われます。

複合タイプ​

モンスターが 2 つのタイプを持つ場合、ダメージを受けるときに両方のタイプが判定されます。

Final Multiplier = Effectiveness(move_type vs type1) * Effectiveness(move_type vs type2)

これにより、いくつかの興味深い場面が生まれます。

技のタイプ対象のタイプ計算結果
IceDragon / Flying2.0 x 2.04.0 倍(二重にこうかばつぐん)
ElectricWater / Ground2.0 x 0.00.0 倍(無効、Ground が吸収)
FightingNormal / Ghost1.0 x 0.00.0 倍(無効、Ghost が吸収)
WaterFire / Rock2.0 x 2.04.0 倍(二重にこうかばつぐん)

STAB(タイプ一致ボーナス)​

モンスターが自分のタイプのいずれかと一致する技を使うと、その技は 1.5 倍の STAB ボーナス(DamageMath.StabMultiplier)を得ます。このボーナスは、タイプ相性やその他のダメージ係数と掛け合わされます。

Final Damage = Base Damage * STAB * Type Effectiveness

たとえば、みずタイプのモンスターが、ほのおタイプの対象にみずの技を使う場合:

Base * 1.5 (STAB) * 2.0 (super effective) = 3.0x total

Type Chart Editor の使い方​

Type Chart Editor は、タイプ相性を表示・変更するためのインタラクティブなグリッドツールです。

OpenMon Hub(Tools > MCE > OpenMon Hub)→ Database タブ → Type Chart Editor を開きます

エディターでは:

  1. ビューモード -- グリッドは N×N のタイプ相性表全体を表示し、タイトルバーに表示されるタイプ数が示されます。行は攻撃側のタイプ、列は防御側のタイプで、各タイプの色がその行と列を示します。
  2. 色分け -- 緑 = こうかばつぐん(2 倍)、赤 = こうかはいまひとつ(0.5 倍)、濃い灰色 = 効果なし(0 倍)、薄い灰色 = 等倍(1 倍)。
  3. 編集モード -- 任意のセルをクリックして、値を順に切り替えます:等倍 → 2 → 0.5 → 0 → 等倍。すべての変更は Unity の Undo で元に戻せます。
  4. Refresh -- プロジェクトのタイプの一覧を再読み込みします(ウィンドウがフォーカスを得たときにも再読み込みされます)。
  5. Save All -- すべてのタイプを変更済みとしてマークし、アセットをディスクに保存します。

グリッドには、Index がオンになっている MonsterType アセットが一覧表示されます。タイプを追加または削除するには、アセットを作成または削除します(後述)。エディター自身には、追加や削除のボタンはありません。

タイプの変更はすべてに影響する

タイプ相性表を変更すると、ゲーム内のすべてのバトルに影響します。変更後は十分にテストしてください。タイプを追加または削除する場合は、モンスターと技の割り当ての更新が必要です。

カスタムタイプの作成​

オリジナルのゲームを作るなら、カスタムのタイプ相性表が欲しくなるかもしれません。

  1. MonsterType アセットを作成します:Assets > Create > MCE > Monster Database > Type、または Hub の Database タブの New Monster Type。名前(例:Cosmic、Sound、Digital)を付け、色とアイコンを設定し、表に表示されるよう Index をオンのままにします。
  2. Type Chart Editor を開いて Refresh を押します:新しいタイプが行と列として現れます。
  3. 既存のタイプとのすべての組み合わせについて、相性の値を設定します。
  4. 新しいタイプを使うモンスターと技を作成します。

カスタムタイプのデザインのヒント​

  • 攻撃面と防御面のバランスを取る。タイプには、およそ同じだけの長所と短所があるべきです。
  • 無効を増やしすぎない。無効は強力で、使いすぎるとイライラするゲームプレイを生みます。
  • 総数を扱える範囲に保つ。15〜20 タイプがちょうど良い数です。25 を超えると、プレイヤーが覚えるのが難しくなります。
  • 面白い対抗手段を作る。最良のタイプ相性は、自動的な勝ちではなく、リスクとリターンの判断を生みます。

コードからタイプを問い合わせる​

SDK インターフェース(Indie・Pro・Source・Studio エディション)​

using System.Linq;
using OpenMon.MCE.SDK;

IReadOnlyList<MonsterType> allTypes = engine.Database.GetAllTypes();
var fire = allTypes.FirstOrDefault(type => type.name == "Fire");
var grass = allTypes.FirstOrDefault(type => type.name == "Grass");

float effectiveness = engine.Database.GetTypeEffectiveness(fire, grass);
// Returns 2.0 when both types exist in the database

直接アクセス(Source・Studio エディション)​

ソースコードにアクセスできれば、MonsterDatabase クラスを通じてタイプ相性表を直接扱い、特別なバトル条件のために実行時に相性の値を変更することもできます。

ベストプラクティス​

  1. 変更には Type Chart Editor を使う -- 元に戻す手順を記録し、タイプのアセットを保存してくれます。
  2. オリジナルのゲームを作るなら、カスタムタイプを文書化する。プレイヤーは相性を学ぶ必要があります。
  3. 複合タイプでエッジケースをテストする。4 倍の弱点や二重の無効は、プレイヤーを驚かせることがあります。
  4. タイプのバランスを取るときは、技の分布を考慮する。防御面で強くても、使える良い技がないタイプは、事実上弱いタイプです。