UE5.3でマリオ風アクションゲームを作っています
今回は敵キャラをファイヤーボール攻撃で倒せるようにします
下記動画の前半部分です。
被ダメージ処理(攻撃されたクリボー側
まずは、攻撃されたクリボー側でダメージ処理をつくります
攻撃を受けたときに発動するイベントはAny Damageです
いま時点クリボーは何かしらダメージ受けたらやられるという仕様でよいので、Destroy Actorで消しちゃいます
攻撃の受け方で演出を変えるなどはあとでこの辺をいじればよさそうですね
いまは仕組みづくり優先とします
ファイヤーボール
攻撃処理
前回作ったファイヤーボールを改良しますが、おさらい兼ねて処理全体を説明します。
焼きリンゴのブループリントにスフィアコリジョンを追加してOn Component Begin Overlapイベントを追加しました
ちなみにスフィアコリジョンのほうが計算量が軽いらしいので、Boxで作ったけどかえました。
極め本に詳しく説明なかった気がしますが、球だと点と点の距離を1回測るだけで済むけど、箱型だと一旦点と点の距離見ただけでは箱の内側かわからなくて、その方向の箱の壁を求めてその位置を出して…って計算するんでしょうね。
Apply Damageで相手側に攻撃受けたイベントを起こします
ただしこれだと発射した瞬間玉ねぎちゃん自身がダメージ食らっちゃうので
Get Player Characterでプレイヤーである玉ねぎちゃんを参照して、それとぶつかった相手(Other Actor)と比較することで、玉ねぎちゃん以外のアクターに攻撃する仕様とします
こういうとき、
ダメージを受けた玉ねぎちゃん側のAnyDamage処理でファイヤーボールからの攻撃は食らわない(無視する)という分岐も可能ですね
必要になったら考え直します
あとはクリボーやノコノコは1撃ですがボスは違うので、
即死扱いとなるDestroy ActorではなくApply Damageで攻撃した通知を送り、攻撃された側で処理わけするのがよいと思います
ダメージ(というか攻撃力というほうがイメージにあいますが)この値が0だとイベントが起きないので1に変えます
そして攻撃したら自身は消える仕様とします
ここでは簡単にDestroy Actorで消しちゃいます
ナイアガラ等で演出追加してもよいですね
実験した結果、発射直後に焼きリンゴ自体がなぜか自分とぶつかっていたので「自分じゃなかったら」の分岐も追加しました
この時点の処理はこうなります。
焼きリンゴ発射でちゃんとクリボーを倒せます
地面ブロック、ピーマンなどのメッシュは跳ね返ります
一見これで完了です。
しかしアイテムがでる段ボール箱やレンガブロックにはぶつかって消えてしまう問題が残ります。
ちなみに本家にもっと寄せるには、地面やブロックに上から当たったら跳ね返るけど、横向きにぶつかったら消えるって仕様ですね。
今回はそこは単純に跳ね返る仕様のままにします。
ポーンにだけ攻撃
これは自分自身か玉ねぎちゃん以外のアクターとぶつかったら攻撃扱いなためブループリントアクターも「アクター」なせいです
これを回避する方法を考えましょう
クリボーの親クラスが現状Pawnクラスなので、Other ActorをPawnにキャスト成功したらぶつかる判定に変えます
ちなみにこのあとで敵キャラはキャラクタークラスに親クラスを変更する予定ですが、キャラクタークラスのさらに親がポーンクラスなのでキャラクターはポーンです
たまねぎは野菜ですみたいな関係性ですね
なのでこの作戦はそのまま使える予定です
そして自分自身はポーンじゃないので、最初に自分自身じゃないかの判定は不要になりました(ポーンだったらの判定がFalseなのでそこですでに処理が止まるため)
これでファイヤーボールでの攻撃ができるようになりました
この場合、キノコがわりのパワーアップ玉ねぎもキャラクターにしているので、それにもぶつかって消えちゃいますが、そこは仕様として放置します。
それも回避したい場合は、タグ付けなどで敵・味方・その他のチーム分け情報を付けておいてそれをチェックして分岐する作戦などが考えられます。
つづく
- 第1回:やることリスト
- 第2回:サイトマップ 構成要素一覧
- 第3回:走る・跳ぶ(Blender→UE5)
- 第4回:Bダッシュ
- 第5回:ダッシュ中は高く跳べる
- 第6回:ミニとノーマルサイズの変化
- 第7回:敵に当たったらダメージ
- 第8回:ステージ作りステップ1
- 第9回:ステージ作りステップ2
- 第10回:跳ねる壊れるレンガブロック
- 第11回:ハテナブロック+コイン
- 第12回:パワーアップキノコ(たまねぎ)
- 第13回:ファイヤーフラワー(赤ピーマン)
- 第14回:ファイヤーボールで攻撃
- 第15回:踏みつけ攻撃
- 第16回:ブロック越しに攻撃
- 第17回:スターで無敵
- 第18回:亀キャラを作る
- 第19回:亀キャラの動作
- 第20回:プレイヤー専用コリジョンでファイヤーバグ対策
コメント