UE4ゲーム制作入門十六日目
一人UE4ゲーム制作入門アドベントカレンダー十六日目です。
モンスターハウス的な感じのを作りました。なんか無駄に面倒な処理をしてる気がするので、もうちょっとスッキリさせてやりたい気はします。
敵ブループリントクラスを多少変える
死亡時に敵生成兼管理アクターを持っていた場合、死亡したときの処理を走らせて消えるようにしました。
BP_Roboにはダメージ処理と死亡時処理をしていなかったことに気づいたので追加しました。
ブループリントインターフェースを用意する
モンスターハウスが起動したり終わったりしたときに、異なるブループリントクラスすべてが何かしらの処理を行えるように、ブループリントインターフェースを用意します。
このブループリントインターフェースは宣言だけを持っていて、継承しているアクターそれぞれがイベントの中身を実装して、メッセージを受け取ったらそれを実行することになります。
これのいいところは、アクターの継承は必ず親が一つしか選べませんが、インターフェースは複数持たせられるので、必要なインターフェースを持って、色々な処理を異なるアクターで同時に実行できるようになることだと思っています。違ったらおしえてください。
モンスターハウスの起動と管理アクターを作成する
BP_SwitchActorという名前のブループリントクラスを作成します。Acotrクラスが親です。
塞ぐ出入り口を塞げる程度の大きさのBoxコリジョンとスタティックメッシュを用意します。イベントグラフはこんな感じ。Boxコリジョンを通り抜けた瞬間モンスターハウスを起動します。配列には今のところスポーンポイントをセットして、インターフェースのトラップ起動時のメッセージをそれぞれに送っています。
そして、敵が全滅したときなどにEnd時のメッセージが飛んで来るので、モンスターハウスをクリアしたことを、終わったときにイベントを実行したいアクターすべてに終了時イベントを知らせるメッセージを送っています。
スポーンポイントを作成する
このアクターはSwitchからモンスターハウス開始メッセージが飛んできたときに、生成するポイントに指定した敵を生成します。
ホントはロボとクマ両方出そうと思ったのですが、AIの都合上クマはエラーしか吐かないのでやめました。
生成処理です。敵が生成に成功するたびに生成した数を増やします。これがゼロになったときに、Switchに全滅したことを知らせます。
敵が死んだときには数を減らしていきます。ゼロ以下ならSwitchにメッセージを飛ばしています。
完成
全部作成できたら、ステージ内に配置して、やるとだいたいこんな感じになると思います。