【TopDown Engien】敵を倒したときにアイテムをドロップする方法

Lootコンポーネントのインスペクター TopDownEngine
スポンサーリンク

前書き

今回はTopDown Engineで敵キャラを倒したときにアイテムをドロップさせる方法になります。

TopDown EngineではLootというスクリプトを使うことで簡単にアイテムをドロップさせる機能が実装できるため、Lootコンポーネント(以下、Loot)の使い方について紹介していこうと思います。

Lootコンポーネントを付与することで敵を倒したときにアイテムを落とすようになります。

Lootの設定方法

Helathコンポーネントが設定されているオブジェクトと同じ階層にLootを設定してあげるだけでLootの設定は完了です。Lootを設定させることで敵を倒したときやダメージを与えた時にアイテムをドロップするようになります。

Lootの作り

TopDown Engineの2DゲームDemoの中にLootを使用しているPrefabが見つかりませんでした。なので、今回は自分が作成したゲームの中で登場する敵キャラを参考に説明していきたいと思います。
# 3DゲームDemoのほうにはLootスクリプトを設定したものがありましたが、2DゲームDemoには見つかりませんでした。もしかしたらあるかもしれませんが….

Lootのインスペクターは以下になります。

Lootのパラメータを見てみると分かりますが、パラメータに

  • SpawnLootOnDeath
  • SpawnLootOnDamage

が存在します。いずれもhealthコンポーネントが必要になるため、Lootを使用する場合はhealthコンポーネントが付与されているオブジェクトにLootを付与すると期待通りの動きをすると思います。
# 敵を倒したときにアイテムをドロップさせることが目的なので、healthがない敵キャラはいないと思います。

基本的には上記パラメータ「SpawnLootOnDeath」や「SpawnLootOnDamage」を設定して、「敵を倒したときにアイテムを落とす」または「敵にダメージを与えた時にアイテムを落とす」ことが主の使い方になります。

また、LootModeを指定してドロップするアイテムを設定することができます。直接オブジェクトを指定する方法やMMLootTableGameObjectSOという独自のスクリプトで設定することも可能です。

Lootのパラメータについて

Lootで使用する主要なパラメータについて説明していきます。

LootMode

ドロップするアイテムを設定します。LootModeには3つのモードがあります。

unique

LootModeがUniqueのキャプチャ

単一のGameObjectを指定することができます。ドロップするアイテムは指定したGameObject1つだけです。

LootTable

LootModeがLootTableのキャプチャ

ObjectsToLootクラスを用いて複数のGameObjectを設定することができます。合わせてWeightを設定することでアイテムの出現率も設定することができます。

LootTableScriptableObject

LootModeがLootTableScriptableObjectのキャプチャ
MMLootTableGameObjectSOのキャプチャ

MMLootTableGameObjectSOという独自のスクリプトを設定することができます。MMLootTableGameObjectSOの中身はLootTableで設定したように複数のGameObjectが設定でき、Weightも設定することができます。

3つのパターンを紹介しましたが、簡単に使い方を分けると以下のようになるかなと思います

  1. unique:
    単一のアイテムを落としたい場合などに設定する。重要アイテムやキーアイテムを落とすときに設定してあげるとよさそう。
  2. LootTable:
    雑魚敵などで複数のアイテムをドロップさせたい場合に設定するとよさそう。
  3. LootTableScriptableObject:
    雑魚敵などで「同じようにアイテムを落としたい」場合に設定するとよさそう。

ボスや重要アイテムを落とす敵キャラにはuniqueで設定し、いろいろなアイテムを落とさせたい雑魚敵などはLootTable、LootTableScriptableObjectに設定するといった形で使い分けをしていただくとよいかなと思います。

Conditions

Conditionsのキャプチャ

上記で説明をしましたが、アイテムをドロップする条件を指定することができます。

SpawnLootOnDeath

敵を倒したときにアイテムをドロップするようになります。通常はこちらのフラグを有効にするかなと思います。

SpawnLootOnDamage

敵にダメージを与えた時にアイテムをドロップするようになります。叩くとコインが落ちてくるような敵を作るときに有効になるのかなと思います。

Pooling

Poolingのキャプチャ

ドロップするアイテムをPoolingするかどうかも指定することができます。

MutualizedPoolName

Poolingするときのアイテムを他の敵キャラと共有することができます。例えば敵Aと敵Bで同じアイテムをドロップさせる場合はこの項目を一致させることでPooling処理が働き最適化が行えるため処理が軽くなります。

Spawn

Spawnのキャプチャ

アイテムのドロップ方法について設定することができます。

Quantity

アイテムのドロップする量を指定できます。

SpawnProperties

省略していますが、アイテムがドロップする位置やアイテムの大きさを変更することができます。

LimitedLootQuantity

アイテムのドロップ数に制限をかけることができます。このフラグがTrueの場合はMaximumQuantityの数だけアイテムがドロップするとそれ以降アイテムがドロップしません。このフラグがFalseの場合、無制限にアイテムをドロップし続けます。

MaximumQuantityとRemainingQuantity

最大ドロップ数とその残りになります。LimitedLootQuantityがTrueの場合は、アイテムをドロップするたびにRemainingQuantityが減っていき、RemainingQuantityが0になったところでアイテムがドロップしなくなります。

CollisionsとFeedback

CollisionsとFeedbackのキャプチャ

Avoid Obstacles

壁などの障害物を避けてアイテムをドロップさせることが可能になります。

Loot Feedback

アイテムをドロップした時にFeedbackを実行することができます。

まとめ

今回はTopDown EngineのLootの作りについて紹介しました。

基本的にはHealthコンポーネントが設定されているオブジェクトにLootを設定してあげるだけでアイテムがドロップする簡単な設定方法になっています。いろいろとパラメータについても説明しましたが、とりあえず動かしてパラメータを変えてみて状況にあった設定を見つけていただければいいかなと思います。

コメント

タイトルとURLをコピーしました