落ちてるアイテムをピックアップ(取得)する処理!
1日ブログすっぽかした者です。(´・ω・)
今回は、シューティングゲームを作るという体で行くため、「落ちている『武器』を拾う」というシチュエーションにする。
やりたい事!
・武器を拾うためのBPの作成
・拾う武器の作成
・武器に近づいたら、武器名をスクリーンに表示
・武器の近くで指定したキーを押したら、キャラに装備
その他諸々・・・
※TPSテンプレート使用。アニメーションスターターパック使用。
・プレイヤーに武器をアタッチする為のソケットを追加
「Hand_r(右手)」にソケットを追加。
名前は任意で。(画像では「WeaponSocket」にした。)
・プレイヤーBP
カスタムイベント(PickUp)が呼び出された時、武器を指定したソケットに追加。
カスタムイベントの詳細。
・武器を拾うためのBPの作成
ActorクラスのBPを作成。
名前は任意で。(画像では「WeaponPickUp_Master」にしてある。)
以下のように、コンポーネントを追加。
Weapon・・・武器。スケルタルメッシュ。(スタティックメッシュでもいい)
Widget・・・ウイジェットを表示するためのコンポーネント。
これで、武器を拾うためのBPの作成は終了。
・武器に近づいたら、武器名をスクリーンに表示
武器に近づいたときに、武器の上に武器名を表示させる為のウイジェットを作成する。
武器名は何でも良い。(僕はライフルのアセットがあるので「Rifle」と明記)
階層にTextBlockを追加。
TextBlockに任意の武器名を入力。
フォントサイズは要調整。
・拾う武器の作成
僕のとこには「ライフル」と「ショットガン」のアセットがあるので、
2つの武器BPを作成する。
「Rifle」と「ShootGun」という名のBPだ。
2つともアクタークラスのBP。
作成した武器BPを開き、クラス設定を選択。
詳細パネルの親クラスを、作成した「WeaponPickUp_Master」に変更。
こうすることで、作成した「WeaponPickUp_Master」BPの機能(コンポーネント、BP)を継承(引き継ぐ)する事が可能。
例えば、武器BPを5個作成するとして、5個の武器BPすべてに「WeaponPickUp_Master」と全く同じ処理を1個づつ一々組まなきゃいけないのは面倒だし非効率。
ましてや、もし5個全ての武器BPの処理を変更する!ってなった時に、1個づつ同じように処理を変更するのはとても過酷。
これが10個、50個、100個となったら・・・個数は大げさかもだが、考えただけで全身の血の気が引く。
だったら、元となるMasterBP(WeaponPickUp_master)を作成して5個全ての武器BPに継承させれば、たとえ5個全ての武器BPの処理を変更するとなった時も、元となるMasterBPさえ変更すれば、後の5個全ての武器BPも変更されるという事になるのだ。
分かりづらいイラストで申し訳ない。だが、今の説明がしっかり理解できたなら幸いだ。
Space・・・Screenにする。
WidgetClass・・・作成したウィジェットを指定。
後は、ウィジェットを表示させたい位置に調整する。
・武器の近くで指定したキーを押したら、キャラに装備
「WeaponPickUp_Master」に以下の処理を組む。
オーバーラップコリジョンにプレイヤーがオーバーラップしたら、ウィジェットを表示。武器を取得する為のキー入力を受け取るためEnableInputを実行。
オーバーラップコリジョンから出て行ったら、ウィジェットを非表示。そして、キー入力も無効にする。(DisableInput)
取得する為のキーが押されたら、プレイヤーBPのカスタムイベント(PickUp)を呼び出し、オーバーラップコリジョンを破壊する。
これでプレイしてみよう!
プレイヤーの接近による武器名の表示。武器のアタッチ。ピックアップ処理。
やりたいことが全部出来ていた!あっぱれ!><///
今回は、ピックアップ処理ともう1つクラスの継承の方法も知れたので、一石二鳥!
それではまた!^^ノシ