しんばりん日記

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

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

前回の続きで、魔法攻撃の管理を行う「MagicController」的なクラスを作成していきます。

 

[新規作成]→[ブループリントクラス]から...うーん、今回はActorComponentを選択しましょう。

名前は適当にMagicControllerで。

 

ひとまず、今まで実装してきたただ魔法を射出するだけの処理を作成してみます。

 

f:id:sinvary:20190214011012p:plain

イベントを作成し、引数によって氷か炎か、をわけます。

それ以外はControllerに記載していたものと同様です。

また、アクターの手の位置を取得するためのCharacter変数はインスタンス編集可能にしています。

 

次に、キャラクターBPを開きます。

f:id:sinvary:20190214011421p:plain

左上に、キャラクターBPにくっついているコンポーネントたちがあるので、[コンポーネントを追加]を選択して作成したMagicControllerを追加します。

その後、BeginPlayにてMagicControllerの変数Characterをセットします。

 

f:id:sinvary:20190214011720p:plain

最後に、Controller内をこのようにスポーン処理の代わりに[Get Component by  Class]からMagicControllerを取得し、イベントを発行すれば完成です。

 

f:id:sinvary:20190214012857p:plain


ちなみに、氷魔法に実装していた散弾はこんな感じに移行しました。

あくまで魔法BPの中身はシンプルなものにしていきたいと思います。

 

さて、通常と拡散ができたので次はホーミングですね。

このホーミングに限っては、炎魔法特融のものにしたいと思っていました。

というわけで、次回からホーミング魔法作成していこうと思います。

 

 

ちなみにといいますか、イベントで魔法の形を分けるようにしたのですがゲームの実装はどうしようかなとちょっと悩み中...

チャージレベルで通常→拡散となるのか、プレイスタイル変更で通常←→拡散になるのか。

どちらにしても、コントローラーからのイベントは1つにして、中で分岐すればすっきりしそうですね。

そのようにするならば、通常と拡散はイベントではなく関数化したほうがもっとよさそうです。