目次
はじめに
前回の続きです。
▼この記事でできること
解説
①アクションマッピングの追加
拾うアクションを設定しましょう。
上のメニューからファイル→プロジェクト設定のエンジンインプットを選択します。
アクションマッピングに新規でInteractを設定しFキーを設定しました。
②BP_FirstPersonCharacterの編集
BP_FirstPersonCharacterのイベントグラフを開きます。
作成したアクションの名前を入力するとアクションイベントが配置できます。
あとはCasheItemが存在するか(見ているアイテムがあるか?)をチェックしてPickインターフェースを呼びます。ここに条件を挟むことでより柔軟な対応ができます例えば、インベントリがいっぱいで持てない状態や、レアリティの低い装備への禁止などなど、、のちのち追加してみましょう。
アイテム情報ウィジェットを非表示にしてCasheItemを空にします。
③BP_ItemBaseの編集
呼び出されたイベントを処理します。
拾われたアイテムは消滅するのでDestroyActorに接続します。
実行してみましょう。
Fキーを押したらアイテムが消えて拾っているように見えるはずです。
④銃用のベースブループリントの作成
通常のアイテムであれば消えてしまっても問題ないですが銃の場合は手に持ったり射撃する必要があります。そこで銃用のベースブループリントを作成して基本的な機能を持たせましょう。
ItemBaseを複製しましょう。
名前はBP_GunBaseとします。
開いてSkeletalMeshを追加します。
ドラッグアンドドロップしてルートに設定します。
SkeletalMeshのコリジョン設定を変更します。
⑤銃用のインターフェースを作成
銃には射撃・リロード・のぞきこみの基本動作があるのでこれを定義します。
いつも通りインターフェースを作ります。
名前はBPI_GunActionとでもしておきます。
5つ定義しました。GrabとADSにインプットを追加しています。
⑥BP_GunBaseの編集
クラス設定からインターフェースを追加します。
イベントの実装をします。
Grabイベントに画像のように組みます。
コリジョンを無効化してキャラクターの腕のメッシュにスナップする処理です。
⑦銃の作成
BP_GunBaseから子を作成します。
名前はBP_Gun_Spongeとしました。
銃のメッシュを適応して、物理挙動してほしい場合はSimulatePhysicsにチェックを入れます。
HitCollisionは銃を覆うようにスケールを調整します。
GetItemInfoをオーバーライドします。
ST_Gun_Sponge_Info変数に昇格してデフォルト値を設定します。
マップに配置して実行してみましょう。
物理で落下&ウィジェットが表示されていたらOKです。
⑧銃を持てるようにする
BP_Gun_Spongeを開きます。
Grabイベントを実装します。
ノードを右クリックして親関数の呼び出しを追加を押します。
そうするとGunBaseで作成したノードが呼ばれるようになります。
BP_FirstPersonCharacterを開きます。
Interactイベントの最後に追加します。
アイテムカテゴリーで分岐させて武器の場合はGrabイベントを呼び出しています。
マップに配置して実行してみましょう。
銃は装備できてアイテムは拾えることを確認しましょう。
次回は射撃と武器スロットシステムの概要を作ります。
最後に
UE4やUE5向けの記事を書いています。
皆様の応援が投稿のモチベーションになりますので
コメントやTwitterのフォローなどしていただけるとありがたいです。
それではよきゲーム開発を。