single.php

Unreal Engineでキャラクターに近接武器を装備させる方法(その2)

ゲーム開発を試してみようと思い立ち、Unreal Engine 5をインストールして開発する過程で調べてみた部分を備忘録的に投稿します。今回はブループリントクラスの武器データを実際にキャラクターに装備させる方法を紹介します。

先回の続きです。近接武器のブループリントを作成した先回は別記事をご覧ください。

https://blog.janjan.net/2024/01/31/unreal-engine-infinity-blade-weapons-vol-1/

Infinity Blade:Weaponの追加

キャラクターに装備させる近接武器は、マーケットプレイスで提供されている「Infinity Blade:Weapon」を使っています。

キャラクターに近接武器を追加

先回の続きで[BP_Blade]の[イベントグラフ]画面で武器を持たせるイベントを追加していきます。

1.[イベントグラフ]画面の空いている場所でマウスを右クリックします。

2. 表示された[このブループリントで使えるノード]で “Add Custom Event” を検索して追加します。

3. 追加されたカスタムイベントの名前を “OnEquipment” に変更します。

4. [詳細]画面の[インプット]項目の右側の[+]アイコンをクリックします。

5. 表示された一覧から[オブジェクトタイプ]内の[Character]を選択します。

6. 追加された[Character]の[リファレンス渡し]を有効(チェックを付ける)にします。

7. [OnEquipment]の[Character]を右クリックして表示されたポップアップメニューから[変数へ昇格]を選択します。

8.[セット]の[Character]ピンを伸ばして表示された[Character オブジェクト参照を取得する動作]画面で “Get Mesh” を検索して追加します。

9.[イベントグラフ]に[Mesh]が追加されます。

10. [Mesh]のピンを伸ばして表示されたポップアップメニューで[変数へ昇格]を選択します。

11.[イベントグラフ]に[セット]が追加されます。

12. [マイブループリント]に追加された変数の名前を “Character Mesh Component” に変更します。

13.[コンポーネント]内の[BladeMeshComponent]をドラッグします。

14.[イベントグラフ]に[Blade Mesh Component]が追加されます。

15.[Blade Mesh Component]からピンを伸ばして表示された[Skeletal Mesh Component オブジェクト参照を取得する動作]画面で “Attach Component To Component” を追加します。

16. 追加された[Attach Component To Component]の実行ピンを接続します。

17.[Attach Component To Component]の[Parent]には[Character Mesh Component]変数を接続します。

18.[Attach Component To Component]の[Location Rule]プルダウンリストを開いて一覧から[Snap Target]を選択します。

19. 同様に[Rotation Rule][Scale Rule]にも[Snap Target]を設定します。

20.[Socket Name]を右クリックします。

21. 表示されたポップアップメニューで[変数に昇格]を選択します。

22. 追加された変数の名前を “Blade Socket” に変更します。

ここまでの作業で武器の装備するイベントが完成しました。すべてを保存しておきます。

武器をスナップさせる部位

[Blade Socket]に設定する近接武器をキャラクターに装備する場所を確認しておきます。

[コンテンツドロワー]を開いて[Characters|Mannequins|Meshes|SKM_Quinn](キャラクターのスケルタルメッシュ)を開いて[スケルトンツリー]に表示される関節一覧から、武器を装備させる関節部分の名前をコピーします。

今回は右手首の関節部分 “weapon_r” にしました。

武器を装備するイベント作成

作成した近接武器のクラスを使ってキャラクターに装備するイベントを追加していきます。

1.[BP_ThirdPersonCharacter]クラスの[イベントグラフ]の空いている場所で右クリックします。

2. 表示された[このブループリントで使えるノード]で “Keyboard Event E” を検索して追加します。

3. 追加されたイベントの[Pressed]ピンをドラックします。

4. 表示された[実行可能なアクション]画面で “SpawnActor from Class” を検索して追加します。

5.[イベントグラフ]に追加された[SpawnActor NONE]の[クラスを選択]をクリックします。

6. 表示された一覧で “BP_Blade_Sword” を検索して設定します。

7. [Spawn Transform]を右クリックして表示されたポップアップメニューから[構造体ピンを分割]を選択します。

8.[SpawnActor BP Blade Sword]に[Spawn Transform Location][Spawn Transform Rotation]、[Spawn Transform Scale]が追加されます。

9.[イベントグラフ]の空いている部分で右クリックして表示された[BP Blade Sword オブジェクト参照をする動作]画面で “OnEquipment” を検索して追加します。

10. 追加された[On Equipment]と[SpawnActor BP Blade Sword]の実行ピンを接続して[Character]からピンを伸ばして表示された[Character オブジェクト参照を提供する動作]で “Get a reference to self” を検索して追加します。

10.[イベントグラフ]に[Self]が追加されます。

11.[BP_ThirdPersonCharacter]を開いて[詳細]画面の[メッシュ|Skeletal Mesh Asset]プルダウンリストを開きます。

12. 表示された一覧から[SKM_Quinn]を選択します。

実行して確認

実行画面でキーボードの[E]キーを押すと、キャラクターに剣が追加されます。表示位置がおかしいのは、関節からのオフセットが設定されていないためです。

表示位置はすこし違和感がありますが、新しく追加したブループリントを利用してキャラクターに近接装備の追加ができました。

次回は、武器を装備する位置を調整していきます。

まとめ

今回は、Unreal Engineで今回はキャラクターに近接武器を装備させる方法の続きを書きました。

マーケットプレイスで手に入れた近接武器のデータを設定したブループリントクラスをキャラクターの関節にスナップする方法で「剣」を装備できました。

Unreal Engineのゲーム開発でキャラクターに「剣」を装備させたい人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です