1 キルあたりの魂の量をランダムに追加する

倒した敵ごとにランダムな量の魂をプレイヤーに付与する方法について見ていきます。

Choose your operating system:

Windows

macOS

Linux

アクション RPG (ARPG) をプレイしているとき、倒した敵 1 体につき 1 つの魂がプレイヤーに与えられます。その後プレイヤーは、集めた魂を使ってゲーム内のストアでポーションや武器を購入できます。このシステムはその通りに機能しますが、倒した敵 1 人につき 1 つの魂をただ得るだけでは、単調な作業となりプレイヤーを飽きさせてしまいます。以下の操作ガイドでは、敵の設定を行い、それを倒した際にランダムな量の魂がプレイヤーに授与されるようにします。

ステップ

アクション RPG の最新バージョンでは、すでに以下の設定と機能があります。

  1. まず、 [Content Browser (コンテンツブラウザ)] で、 BP_EnemyCharacter ブループリント を探しダブルクリックして開きます。

    クリックしてフルサイズで表示

  2. BP_EnemyCharacter ブループリントが開いたら、 [Functions] リストの [+ (プラス記号)] ボタンをクリックして新しい関数を追加し、 「SpawnLoot」 という名前を付けます。 SoulsPerKill_Step2.png

  3. グラフの SpawnLoot ノードを選択し、 [Details (詳細)] パネルの [Inputs] セクションの下に、 「Quantity」 という名前の新しい 整数 (Integer) 入力を追加します。

    SoulsPerKill_Step3_1.png

  4. グラフに次のノードを追加します。これらのノードを使用することで、箱の中のランダムな場所にランダムな量の魂をスポーンできるようになります。

    SoulsPerKill_Step3_2.png

    ブループリント ノード名

    デフォルト値

    For Loop

    N/A

    Get Actor Location

    N/A

    Random Point in Bounding Box

    Box Extent X : 40、 Box Extent Y : 40、 Box Extent Z : 40

    Spawn Actor From Class

    N/A

  5. Spawn Actor From Class ノードの [Select Class] 入力をクリックし、表示されたリストから BP_SoulItem ブループリントを検索して選択します。

    SoulsPerKill_Step3_3.png

  6. 次に、 GetActorLocation ノードの [Return Value] Random Point in Bounding Box ノードの [Origin] 入力に接続します。こうすることで、魂がスポーンされたとき、それら魂がすべて、お互い重ならないようになります。

    SoulsPerKill_Step3_4.png

  7. For Loop の出力 [LoopBody] SpawnActor ノードの入力に接続し、 Random Point in Bounding Box ノードの [Return Value] の出力を SpawnActor ノードの [Spawn Transform] 入力に接続します。

    SoulsPerKill_Step3_5.png

  8. この関数を終了するには、 SpawnLoot ノードの**出力**を ForLoop ノードの入力に接続してから、SpawnLoot ノードの [Quantity] 出力を ForLoop ノードの [Last Index] 入力に接続します。これらすべてが完了すると、ブループリントは次の図のようになります。

    クリックしてフルサイズで表示

  9. 次は、 イベントグラフ**に行き、 EventDestroyed** イベントを探します。

    SoulsPerKill_Step4.png

  10. EventDestroyed の最後に移動して、イベント グラフに次のノードを追加します。

    SoulsPerKill_Step5.png

    ノード タイプ

    ノード名

    デフォルト値

    インスタンスが編集可能か

    Integer

    SoulMIN

    1

    可能

    Integer

    SoulMAX

    1

    可能

    Spawn Loot

    N/A

    N/A

    N/A

    SoulMIN および SoulMAX インスタンスを編集可能にするには、 [Variables (変数)] パネルに移動して、変数名の横にある [目] のアイコンをクリックします。

  11. 上記のノードを使用して、プレイヤーが敵を倒したときに SoulMIN SoulMAX の間にランダムな量の魂が出現するように設定します。これを機能させるには、次の図に合わせてノードを設定します。

    SoulsPerKill_Step6.png

  12. 1 キルあたりの魂の量がランダムとなる設定ができたら、 [Set Collision Object Type] の出力を下の図のように Add Souls ノードの入力に接続します。

    クリックしてフルサイズで表示

    新しいロジックの後に "Parent: Destroyed" ノードを再接続することを忘れないでください。

  13. それが完了したら、 [Compile (コンパイル)] ボタンと [Save (保存)] ボタンを押してから BP_EnemyCharacter ブループリントを閉じ、 NPC_GoblinBP_Level_01 ブループリントを開きます。

    SoulsPerKill_Step8.png

  14. NPC_GoblinBP_Level_01 ブループリントを開いた状態で、 [Details (詳細)] パネルに移動し、 [Default] セクションの下にある SoulMIN および SoulMAX の入力を探します。

    SoulsPerKill_Step9-1.png

  15. SoulMIN SoulMAX の入力が見つかったら、SoulMIN に 「1.0」、SoulMAX に「3.0」の値を入力します。

    SoulsPerKill_Step10.png

  16. それでは、残りの NPC Goblin Blueprints を開き、以下の SoulMIN SoulMAX の番号を入力してください。それが完了したら、必ず各ブループリントを [Compile (コンパイル)] して [Save (保存)] してください。

    ブループリント名

    SoulMIN

    SoulMAX

    NPC Goblin Level 01

    01

    03

    Goblin NPC Level 02

    03

    05

    NPC Goblin Level 03

    05

    10

    上で行っていることは、ゴブリン NPC の設定で、そのゴブリン NPC のレベルに基づいて異なる量の魂を付与するようにしています。レベル 01 のゴブリンは最小限の量の魂を付与し、レベル 03 のゴブリンは最大量の魂を付与します。

最終結果

ARPG を起動すると、次のビデオのように、倒した敵それぞれに応じてランダムな量の魂をプレイヤーに付与できるようになりました。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル