しんばりん日記

ue4を使ってのゲーム制作ブログです。間違いを指摘していただけると助かります!

攻撃してみる:魔法作成(1)

あけましておめでとうございます!

このブログは仕事のある日しか更新しない予定だったので、かなり空いてしまいました...

しかも書きながらBP作成しているので、作業ペースはカタツムリ以下です!

 

さて、とりあえず先に攻撃魔法を作ってみようと思います。

作る手順は

  1. ボタンを押した際コリジョン付きのBPを向いている方向にスポーン
  2. スポーンさせたオブジェクトが時間とともに「前方」へ進む
  3. 何かしらに当たったかを確認
  4. 「敵」タグをもつアクターに当たった時のみhitと表示

の流れでいこうと思います。(まぁ1と2と3は分ける必要ないですけど...)

 

では魔法のBPを作る...のですが、自分が想定している魔法は現在氷と炎の2種類!

多少は性質を変える予定ではありますが、どちらも遠距離で攻撃と類似する箇所が

あるので、親クラスを作成しちゃおうと思います。

名前は「MagicBase」でCapsuleコリジョンをy軸に90度傾けたもの。

(多少大きさは変えるものの、まぁ今回はベースにコリジョンを持たせてみました。

 多分ふつうはこんな形はしないと思いますが、今回はきっと大丈夫)

ひとまずテストなので、コリジョンの設定はデフォルトのまま。

また、子側で入れ替えればいっかな?ということでスタティックメッシュを設定。

これもテストということで、適当に丸を引き延ばした形を設定。

 

...あぁ、あと魔法は「貫通」する予定なので、スタティックメッシュの当たり判定は

とりあえずコリジョンとおんなじものにしておきました。

 

これで、プレイヤーコントローラーにボタンを押したらスポーンする処理を適当に入れて...

f:id:sinvary:20190108014821p:plain

前側をコリジョンぴったりにして後ろがピッタリではないようにつくってしまっていたため、

show collisionで確認したところきちんとプレイヤーの向きに合わせて動いていました。

あぁ、プレイヤーコントローラーがなかったので適当に作成して適当に設定しました。

 

次は2と3いきます!

ベースはきちんと作成できたので(実際は何も作っていませんが)、

今度はこれを継承して子ブループリントを作成します。

ブループリントを作成→すべてのクラスから、先ほど作成したMagicBaseを選択。

先ほどはプレイヤーに重なってしまったので、少し前にずらしちゃいましょう...

で、とりあえず適当にTickにて前方に少しずつ進んでいく処理を書きます。

これでコントローラーからスポーンさせれば、動くようになります。

もちろんベースをスポーンさせたら動きませんが。

 

3の場合は、Get Capsuleで出たコンポーネントをクリックしたときのイベントウィンドウから、

Hitやらオーバーラップイベントやらから取得。

これで、魔法がどのアクターをオーバーラップしたかわかる...はず。

 

ひとまず今日はこんな感じで。

明日は今日と同様に、敵アクターのベースを作成し、タグをつけて敵アクターに当たった時だけ魔法が消えるようにしてみようと思います。