ゲーム開発を試してみようと思い立ち、Unreal Engine 5をインストールして開発する過程で調べてみた部分を備忘録的に投稿します。今回はブループリントクラスの武器データを実際にキャラクターに装備させる方法を紹介します。
先回の続きです。近接武器のブループリントを作成した先回は別記事をご覧ください。
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のゲーム開発でキャラクターに「剣」を装備させたい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。