【ウディタ講座】アクションRPGを作ろう!~ザコ敵の制御・移動範囲と高低差編~

これまではボスの設定・演出について記事を書いてきました。複雑な移動や攻撃のパターンは、ザコ敵にはあまり必要なさそうですね。

【ウディタ講座】アクションRPGをつくろう!~ボスのAIづくりについて~

……が、アクションRPGのザコ出現範囲は「ステージ道中=戦闘の場所」として、ボスの居場所よりも凝ったマップ表現をする傾向にあり、ザコ敵設定では「マップとの兼ね合い」が関心ごとになってくるようです。

今回は移動範囲と高低差の2ポイントについて、記事を書いていきます。

アクションRPGのザコ敵の「移動範囲」設定

移動範囲の設定とは


図のように部屋(エリア)が分かれていて、敵が砂色の部屋範囲にだけ出て欲しい、とします。

ザコ敵のパターン設定はシンプルでいいから、移動は「ランダム」とすると……

出てきて欲しくない緑の部屋にまで入ってきてしまう可能性があるわけです。

ランダム移動設定のまま、行ってはいけない範囲を指定する必要がありますね。

移動範囲を設定する方法

ごく簡単です。すでにご存じの人も多いであろう有名なもの。

通って欲しくない部分をカラのイベントで埋めてしまえばOK。

初期状態のイベントをおいておくだけで、他のイベントにとっては通行不能だけど主人公(プレイヤー)には通れるマスになってくれます。

 

ツクールでも同様のテクニックが知られていますね。

ウディタでの留意点としては、ゲーム設定で移動設定を0.5マス(半歩)にしていた場合、「当タリ判定■」にチェックを入れておく必要があることが挙げられます。

 

アクションRPGのザコ敵の「高低差」設定

高低差の設定とは

このようなマップでは、ザコ敵と主人公は同じ高さに立っていません。現実的に考えると、この場合は隣接していたとしてもお互いにダメージを受けるイベントは発生しないはず

高低差があろうと殴り合える方がプレイヤーさんには有利なことが多いので、作者が気にしなければそのままでもよいことではありそうです。

この記事では一応、調査として高低差によって攻撃があたる/あたらないの区別をつけるやり方をまとめていきます。

と言っても、スマートな方法は思いつかなかったので下記のような手数勝負となっています。

  • 高所の敵は高所だけを動くようにする(移動範囲の設定)
  • 主人公のいる高さフラグを変数で扱う
  • 高さフラグ変数に応じて、高所に居るザコ敵のイベントページを切り替える

高低差を「高さフラグ変数」で表現する

階段やはしごの出入り口に「プレイヤー接触起動」のイベントを置き、1段高いところに登ればフラグ変数を+1、下がれば-1とするわけです。

このマップでは、1段高い場所を「フラグ変数=1」と考えます。

高さ1にいる敵は、主人公も高さ1にいなければ殴り合えないわけですから、敵のイベントページを「高さ1なら殴り合える、高さ1以外では殴り合えない」と切り替えます。

 

ザコ敵イベントが主人公に攻撃できることは、イコール「接触起動のイベント内容が主人公のHP減少」でよいですね。

主人公がザコ敵イベントに攻撃できる/できないを変更する場合、このシリーズのやり方で言えば「影番号」設定を攻撃できないNPCタイプにしておけばよいでしょう。

【ウディタ講座】アクションRPGをつくろう!~イベントに攻撃する~

イベントページ切り替え設定例

  • 1ページめ:条件なし
    ザコ敵画像。イベント内容は接触起動の主人公HPダメージ
    影番号による指定をザコ敵に。
  • 2ページめ:高さフラグ1以外
    ザコ敵画像。イベント内容なし、影番号をNPCに。
    これが殴れないし、殴ってもこない状態。
  • 3ページめ:条件はザコHP0以下
    表示画像やイベント内容はなし。すりぬけ設定。倒されて消えた状態の敵。
    (イベント一時消去でもOKですが、一定時間で復活するザコなどの表現を考えると、この方式が有利)

 

【ウディタ講座】アクションRPGをつくろう! まとめ