落ちてるアイテムをピックアップ(取得)する処理!

1日ブログすっぽかした者です。(´・ω・)

 

今回は、シューティングゲームを作るという体で行くため、「落ちている『武器』を拾う」というシチュエーションにする。

 

やりたい事!

・武器を拾うためのBPの作成

・拾う武器の作成

・武器に近づいたら、武器名をスクリーンに表示

・武器の近くで指定したキーを押したら、キャラに装備

その他諸々・・・

 

※TPSテンプレート使用。アニメーションスターターパック使用。

 

・プレイヤーに武器をアタッチする為のソケットを追加

f:id:Free_Gamer:20180713201900p:plain

f:id:Free_Gamer:20180713201920p:plain

「Hand_r(右手)」にソケットを追加。

名前は任意で。(画像では「WeaponSocket」にした。)

 

・プレイヤーBP

f:id:Free_Gamer:20180713211835p:plain

カスタムイベント(PickUp)が呼び出された時、武器を指定したソケットに追加。

 

カスタムイベントの詳細。

f:id:Free_Gamer:20180713213012p:plain

 

・武器を拾うためのBPの作成

ActorクラスのBPを作成。

名前は任意で。(画像では「WeaponPickUp_Master」にしてある。)

以下のように、コンポーネントを追加。

f:id:Free_Gamer:20180713202301p:plain

f:id:Free_Gamer:20180713202422p:plain

Weapon・・・武器。スケルタルメッシュ。(スタティックメッシュでもいい)

Sphere・・・オーバーラップコリジョン

Widget・・・ウイジェットを表示するためのコンポーネント

 

これで、武器を拾うためのBPの作成は終了。

 

・武器に近づいたら、武器名をスクリーンに表示

武器に近づいたときに、武器の上に武器名を表示させる為のウイジェットを作成する。

武器名は何でも良い。(僕はライフルのアセットがあるので「Rifle」と明記)

f:id:Free_Gamer:20180713203209p:plain

階層にTextBlockを追加。

TextBlockに任意の武器名を入力。

フォントサイズは要調整。

f:id:Free_Gamer:20180713203315p:plain

 

・拾う武器の作成

僕のとこには「ライフル」と「ショットガン」のアセットがあるので、

2つの武器BPを作成する。

「Rifle」と「ShootGun」という名のBPだ。

2つともアクタークラスのBP。

作成した武器BPを開き、クラス設定を選択。

詳細パネルの親クラスを、作成した「WeaponPickUp_Master」に変更。

f:id:Free_Gamer:20180713204032p:plain

f:id:Free_Gamer:20180713204235p:plain

こうすることで、作成した「WeaponPickUp_Master」BPの機能(コンポーネント、BP)を継承(引き継ぐ)する事が可能。

 

例えば、武器BPを5個作成するとして、5個の武器BPすべてに「WeaponPickUp_Master」と全く同じ処理を1個づつ一々組まなきゃいけないのは面倒だし非効率。

 

ましてや、もし5個全ての武器BPの処理を変更する!ってなった時に、1個づつ同じように処理を変更するのはとても過酷。

これが10個、50個、100個となったら・・・個数は大げさかもだが、考えただけで全身の血の気が引く。

f:id:Free_Gamer:20180713205830p:plain

 

だったら、元となるMasterBP(WeaponPickUp_master)を作成して5個全ての武器BPに継承させれば、たとえ5個全ての武器BPの処理を変更するとなった時も、元となるMasterBPさえ変更すれば、後の5個全ての武器BPも変更されるという事になるのだ。

f:id:Free_Gamer:20180713205843p:plain

分かりづらいイラストで申し訳ない。だが、今の説明がしっかり理解できたなら幸いだ。

 

武器BPのWidgetコンポーネントを設定しよう。

f:id:Free_Gamer:20180713210414p:plain

Space・・・Screenにする。

WidgetClass・・・作成したウィジェットを指定。

 

後は、ウィジェットを表示させたい位置に調整する。

f:id:Free_Gamer:20180713210718p:plain

 

 

・武器の近くで指定したキーを押したら、キャラに装備

「WeaponPickUp_Master」に以下の処理を組む。

 

オーバーラップコリジョンにプレイヤーがオーバーラップしたら、ウィジェットを表示。武器を取得する為のキー入力を受け取るためEnableInputを実行。

オーバーラップコリジョンから出て行ったら、ウィジェットを非表示。そして、キー入力も無効にする。(DisableInput)

f:id:Free_Gamer:20180713210857p:plain

取得する為のキーが押されたら、プレイヤーBPのカスタムイベント(PickUp)を呼び出し、オーバーラップコリジョンを破壊する。

f:id:Free_Gamer:20180713210912p:plain

 

これでプレイしてみよう!

youtu.be

 

プレイヤーの接近による武器名の表示。武器のアタッチ。ピックアップ処理。

やりたいことが全部出来ていた!あっぱれ!><///

 

今回は、ピックアップ処理ともう1つクラスの継承の方法も知れたので、一石二鳥!

 

それではまた!^^ノシ