デフォルトでは、アクション RPG (ARPG) のプレイヤーは、ストアから購入したアイテムのみを使用できます。しかし、プレイヤーがアイテムを取得する方法はストアからの購入だけではありません。次の操作ガイドでは、ワールドに配置してプレイヤーが拾うことができるピックアップの作成方法について説明します。
手順
- 最初に、SK_Blunt_Hambone スケルタル メッシュとそのすべてのアセットを Infinity Blade Weapons から アクション RPG プロジェクトに移動します。
時間とリソースを節約するために、アクション RPG (ARPG) にあるアイテムの多くは既存のプロジェクトから ARPG に 移行 されました。移行されたコンテンツが見つからない場合は、「コンテンツを移行する」を参照してください。
-
次に、「Items」の下に「Pickups」という名前で新しいフォルダを作成します。
-
次に、「Blunt_Hambone」フォルダを「Pickups」フォルダにドラッグします。
-
「Blunt_Hambone」フォルダから次のフォルダを削除します。これらはプロジェクトが使用する命名規則に準拠していないためです。
- InfinityBladesWeapons
- Weapons
- Blunt
-
次に、フォルダ名とさまざまなアセットのすべてから「Blunt」という単語を削除します。
クリックしてフルサイズで表示。
-
必要なすべてのコンテンツを追加して名前を変更したら、「Hambone」フォルダが選択されていることを確認します。そして、[Content Browser (コンテンツブラウザ)] 内を右クリックし、表示されたリストから [Blueprint Class] オプションを選択します。
-
新しいブループリント BP_Pickup_Hambone に名前を付けてダブルクリックして開きます。
クリックしてフルサイズで表示。
-
[Components (コンポーネント)] セクションで、次の設定を使用して以下のコンポーネントを追加します。
コンポーネント名 コンポーネント値 Sphere Collision Radius = 64 Skeletal Mesh SK_Hambone -
次に、[Variables (変数)] セクションで、変数 タイプ が RPGItem、デフォルトのポーション タイプが Potion_Health の「PotionType」という名前の新しい変数を作成します。
-
[Components (コンポーネント)] タブの [Sphere] コリジョンを選択し、[Details (詳細)] パネル、[Events] の下にある [On Component Begin Overlap] オプションの [+] 記号をクリックして、イベント グラフに追加します。
-
イベント グラフに追加する必要がある最初のノードは、Cast To BP_PlayerCharacter ノードです。これにより、プレイヤーだけがピックアップを使用でき、敵は使用できなくなります。ノードが追加されたら、下の画像と一致するように、On Component Begin Overlap ノードに接続します。
クリックしてフルサイズで表示。
-
次に、プレイヤーがピックアップに当たり通過した時に、プレイヤーの動きが止まらないようにする必要があります。これを実現するには、イベント グラフに Set Collision Enabled ノードを追加し、New Type 入力が No Collision に設定されていることを確認します。完成すると、イベント グラフは次の図のようになります。
クリックしてフルサイズで表示。
-
今度は、ピックアップしたアイテムをプレイヤーのインベントリに追加できるように、イベント グラフに次のノードを追加する必要があります。
- Add Inventory Item
- Get Player Controller BP
- Potion Type Reference
-
ポーションを現在のインベントリに追加するには、まず Potion Type 変数を Add Inventory Item ノードの New Item 入力に接続し、次に Get Player Controller BP を Add Inventory Item の Target 入力に接続します。接続が完了すると、ブループリントは次の図のようになります。
クリックしてフルサイズで表示。
-
次に、Set Collision Enabled ノードの 出力 を Add Inventory Item ノードの 入力 に接続します。これにより、正しいアイテムが正しいインベントリ枠に追加されます。完成すると、ブループリントは次の図のようになります。
クリックしてフルサイズで表示。
-
今度は Set Slotted アイテムと Make RPGItemSlot ノードを イベント グラフに追加します。
-
次に、拾ったアイテムが正しいインベントリの場所に収まるようにするロジックを設定する必要があります。これを行うには、次の図のように、Make RPGItemSlot の出力を Set Slotted Item ノードの Item Slot 入力に接続します。
クリックしてフルサイズで表示。
-
そして、Add Inventory Item の 出力 を Set Slotted Item ノードの入力に接続します。それから、Set Slotted Item の [Target] 入力を Player Controller に、Item 入力 を Potion Type 変数に接続します。こうすることで、拾ったアイテムをインベントリの正しいスロットに追加することができます。これらすべての手順が完了すると、ブループリントのこのポーションは次の図のようになります。
クリックしてフルサイズで表示。
-
次に、Destroy Actor ノードを追加し、Set Slotted Item ノードの出力 を Destroy Actor ノードの入力に接続します。このように接続することで、プレイヤーがアイテムの上を歩いてそれを拾う際に、そのアイテムがワールドから確実に消えるようになります。これが完了すると、ブループリントは次の図のようになります。
クリックしてフルサイズで表示。
-
最後に、[Compile (コンパイル)] ボタンと [Save (保存)] ボタンをクリックして作業内容を保存します。
最終結果
BP_Pickup_Hambone が完成したら、BP_Pickup_Hambone ブループリントをコンテンツ ブラウザから ARPG レベルにドラッグして、[Play (プレイ)] ボタンを押します。ゲームがロードされたら、レベル内のピックアップを探し、プレイヤーをそのアイテムにぶつけて通過させます。プレイヤーが BP_Pickup_Hambone ピックアップと接触するとすぐにピックアップは消え、UI とインベントリが更新されて新しいポーションが追加されたことが表示されます。次のビデオでこの例を実際に見ることができます。