TopDownEngine 弾数設定・リロードできる銃の作成1/2

前回は、Unity の見下ろし型ゲームの作成支援アセット「TopDown Engine」の Weapon コンポーネントを用いた武器を公式レシピに従って作成し、それと別のサンプルを比較することで連射速度を調整できるようになりました。

前回の記事:TopDownEngine Weapon既定値とサンプル比較 | Compota-Soft-Press

今回は、TopDown Engine の Weapon コンポーネントの既定値を変更して、弾数が0になったときにリロードする設定の前段階として、インベントリで銃や弾薬を管理したり、マップに落ちている装備を拾う機能についても紹介します。
※ Unity のバージョン 2021.3.25f1、 TopDown Engine のバージョンは 3.2 です。

リロードのため WeaponAmmo コンポーネントの追加

前回、「消しゴム銃」に近いサンプルの銃プレハブの ProjectileWeapon とデフォルトの設定を比較しました。
その差分の一部として Magazine Based はサンプルでは ON 、 Magazine Size はデフォルトは 30 、サンプルは 5 になっていました。

Magazine Based の公式の説明によると Ammo (弾)が必要になるようです。

Checking the “Magazine based” checkbox will tell the weapon that it should take its ammo from the character’s inventory. To do so, you’ll also need another component on your weapon, WeaponAmmo.
(Google 翻訳)

「マガジンベース」チェックボックスをチェックすると、キャラクターのインベントリから弾薬を取得するように武器に指示されます。そのためには、武器の別のコンポーネントである WeaponAmmo も必要になります。
Weapons | TopDown Engine Documentation – https://topdown-engine-docs.moremountains.com/weapons.html#ammo

新たに Weapon with ammo 版の銃プレハブを作成

前回までに、MyWeapon という名前で ProjectileWeapon コンポーネントを用いた Weapon 版の銃プレハブを公式レシピに従って作成し、 Time Between Uses プロパティを変更して、連射速度を調整しました。

その MyWeapon の設定を、サンプルを手本にして変更して、「消しゴム銃」の仕様に近づけようと思っていました。

しかし、 Weapon with ammo 版の銃プレハブ TestWeapon の公式レシピを見ると、3D 版の MyWeapon とは違い、もともと作ろうと思っていた 2D 用の銃で目指すものに MyWeapon より似ています。
そこで、弾数管理・リロードも行える TestWeapon 銃プレハブを作成して、それをベースに自作の消しゴム銃を作り直すことにしました。
※ 3D で弾数制限・リロードの必要がない場合は、前々回作成した MyWeapon 銃プレハブのほうがカスタマイズしやすいと思います。

Creating a weapon with ammo

  • create a new project in Unity 2019.4.19f1
  • import TDE v1.10.1
  • open the KoalaDungeon demo scene
  • create a new empty object, name it TestWeapon
  • add a ProjectileWeapon comp to it, under Magazine, check MagazineBased, set MagazineSize to 10, under Settings check InitializeOnStart
  • add a MMSimpleObjectPooler comp to it, drag a KoalaRifleBullet in its GameObjectToPool slot (for these steps I didn’t create new ammo, it’ll be using the rifle ammo)
  • add a WeaponAmmo comp to it, set AmmoID to KoalaRifleAmmo, AmmoInventoryName to KoalaMainInventory, Max Ammo to 100, and make sure ShouldLoadOnStart is checked
  • drag the TestWeapon object into your project to make a prefab out of it, remove it from the scene
  • in a Resources folder, right click > MoreMountains > TopDownEngine > InventoryWeapon to create a weapon asset
  • name it TestWeapon, set its ItemID and ItemName to TestWeapon, set its TargetInventoryName to KoalaMainInventory, check its Equippable checkbox, set its TargetEquipmentInventoryName to KoalaWeaponInventory, in its EquippableWeapon slot, drag the TestWeapon prefab, set its ItemClass to Weapon
  • in the scene, select the KoalaRiflePicker, and in its ItemPicker comp, drag the TestWeapon asset
  • press play, move over the rifle and ammo picker to grab them
  • press T, this will equip the weapon (it won’t look like much, we didn’t setup its visuals or anything), press E to shoot, do it 10 times to empty the clip, press R to reload, do it again, weapons empty and refill as expected
Weapons | TopDown Engine Documentation – https://topdown-engine-docs.moremountains.com/weapons.html#creating-a-weapon-with-ammo

武器の作成・テストを行う TopDownEngine > Demos > Koala2D の KoalaDungeon シーンを開きます。

TopDownEngine Demos の中の KoalaDungeon シーンを開きます.

武器プレハブの作成

新しく作る武器 (Weapon with ammo) のもととなる空のゲームオブジェクトを作成し、TestWeapon とリネームします。
※ 空のゲームオブジェクトの作成は、Hierarchy ウィンドウ内で右クリックしてメニューを表示して Create Empty を選択します。

TopDownEngine KoalaDungeon シーンに TestWeapon ゲームオブジェクトを作成します..

作成した TestWeapon ゲームオブジェクトに ProjectileWeapon コンポーネントを追加します。
※コンポーネントの追加は TestWeapon ゲームオブジェクトを選択してから Inspector ウィンドウの Add Component ボタンを押して、検索ボックスに ProjectileWeapon と入力後、検索結果から同名のものを選びます。

Magazine カテゴリの 2 項目を変更します。

  • Magazine Based : OFF → ON
  • Magazine Size : 30 → 10

Settings カテゴリの 1 項目を変更します。

  • Initialize On Start : OFF → ON
TopDownEngine TestWeapon ゲームオブジェクトに ProjectileWeapon コンポーネントを追加し、3か所の設定を変更します.

同じく MMSimpleObjectPooler コンポーネントを Add Component ボタンから追加します。
そのコンポーネントの Game Object To Pool のスロットに KoaraRifleBullet を設定します。
※スロットにプレハブを設定する際は、Project ウィンドウのそのプレハブを Inspector ウィンドウのそのスロットにドラッグ&ドロップするか、スロットの右側にあるボタンを押して Select GameObject から選択します。

TopDownEngine TestWeapon ゲームオブジェクトに MMSimpleObjectPooler コンポーネントを追加し、Bullet を設定します.

同じく WeaponAmmo コンポーネントを Add Component ボタンから追加します。
Ammo セクションの 4 つの項目を変更・確認します。

  • Ammo ID : 空欄 → KoalaRifleAmmo
  • Ammo Inventory Name : MainInventory → KoalaMainInventory
  • Max Ammo : 100 (変更しない)
  • Should Load On Start : ON (変更しない)
TopDownEngine TestWeapon ゲームオブジェクトに WeaponAmmo コンポーネントを追加し、4 つの項目を設定します.

Hierarchy ウィンドウの TestWeapon ゲームオブジェクトを、Project ウィンドウの任意のアセットフォルダにドラッグ&ドロップし、TestWeapon プレハブを作成します。
その後、Hierarchy ウィンドウの TestWeapon ゲームオブジェクトは削除します。

TopDownEngine TestWeapon ゲームオブジェクトを Project ウィンドウにD&Dしプレハブを作成します.

TestWeapon 用 InventoryWeapon の作成

Project ウィンドウの Resources フォルダ内で右クリックしてメニューを表示し、Create > MoreMountains > TopDownEngine > InventoryWeapon を選択して、InventoryWeapon を作成します。
名前は TestWeapon にリネームします。
※ Resoueces フォルダは複数存在するかもしれません。今回は Assets > TopDownEngine > Demos > Koala2D > Resources を選びました。

TopDownEngine Project ウィンドウの Resources フォルダ内でメニューから Inventory Weapon を作成します.

作成した TestWeapon (Inventory Weapon) の項目の一部を変更します。

  • Item ID : 空欄 → TestWeapon
  • Target Inventory Name : MainInventory → KoalaMainInventory
  • Equippable : OFF → ON (これにより以降の項目が増えます)
  • Item Name : 空欄 → TestWeapon
  • Item Class : Neutral → Weapon
  • Target Equipment Invetory Name : 空欄 → KoalaMainInventory
  • Equippable Weapon : TestWeapon (Projectile Weapon)
    ※Project ウィンドウからドラッグ&ドロップするか、スロット右側のボタンでダイアログを表示し、検索して設定します。
TopDownEngine Project ウィンドウの Resources フォルダに作成した TestWeapon(InventoryWeapon)の設定を変更します.

ゲーム内で取得させるための ItemPicker の設定変更

作成した TestWeapon (Inventory Weapon) は、最初所持していないため、ゲーム内で取得・装備する必要があります。

サンプルの KoalaDungeon シーンには、武器を取得・装備する ItemPicker コンポーネントを持ったゲームオブジェクトが配置されるので、そのプレハブの設定を差し替えて、作成した TestWeapon を装備させます。

TopDownEngine > Demos > Koala2D > Prefabs > ItemPickers の KoalaRiflePicker がゲーム開始直後に手に入れられる武器の ItemPicker なので、この設定を変更します。
※変更前に Ctrl + D でオリジナルを別の名前で複製しても良いでしょう。

TopDownEngine Project ウィンドウのKoalaRiflePickerを選択します.

Project ウィンドウの KoalaRiflePicker プレハブを選択し、 Inspector ウィンドウで設定を変更します。

  • ItemPicker コンポーネントの Item : Koala Rifle (Inventory Weapon) → TestWeapon (Inventory Weapon)
TopDownEngine KoalaRiflePicker の ItemPicker コンポーネントのItemをTestWeapon(InventoryWeapon)に差し替えます..

テストプレイ

公式レシピの通りに TestWeapon の設定、 ItemPicker の変更ができたので、KoalaDungeon シーンを再生しテストプレイをしましょう。

プレイ開始後、上の方にある TestWeapon の武器と弾薬を取得し、 T キーで装備(弾薬が空になった際にはリロード)、弾薬の所持数分、E キーで発射できます(なぜか右側にしか発射できません)。

TopDownEngine TestWeapon(Weapon with Ammo) を公式レシピ通りに作成した後のテストプレイ Edited SS1

今回はここまで

今回は、Unity の見下ろし型ゲームの作成支援アセット「TopDown Engine」でリロードを行える銃を公式レシピに従って作成し、テストプレイで動作を確認するまでの手順を紹介しました。
前回と同じ ProjectileWeapon コンポーネントをメインとしていますが、弾薬を管理する WeaponAmmo コンポーネントやインベントリとの連携を行うコンポーネント、装備をゲーム内で取得させる ItemPicker も設定しました。

まだ、右側にしか方向できないので、次回はそれを解消します。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

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