かゆ 2019/07/12 18:49

キャラクター系のシステム

ということで、システム作りから始めます。

当面は地味なやつが続くと思います。
なお、具体的なスケジュールはちょっと立てられないです。
本業の合間にやるので、進み方は不規則になります。
リリースできたアプリでも年単位はかかっているので、
気長にお付き合いいただけたら幸いです。

キャラクター系の概要

まずはキャラクター系から。
ハコだけの状態で作っていく。

画面上にあって背景でないものはキャラクターである。
キャラクターは1つのGameObjectであり、
基本動作系・キャラクター固有系・攻撃系のcsがアタッチされている。
キャラクター固有系が他を制御する。
固有系には今のところPlayer、Enemyの2種類がある。
マップ上の壊れる岩や、アイテムが拾える場所など、もう何種類か増える。
モンスターのAIなどは固有系に含まれる。

キャラクターは固有系の指示によって、攻撃系を使って、ウエポンを生成する。
ウエポンは1つのGameObjectであり、
ウエポン系のcsがアタッチされていて、当たり判定を持つ。
ウエポンはそれを生成したキャラクターの情報と、
当たり判定に当たったキャラクターの情報を持つ。
生成時と当たり判定時に処理の起点となる。

作ってみたのがこれ。
AIはまだ入っていなくて、キーボードで操作している。

緑がプレイヤー機。
プレイヤーは近接攻撃と遠隔攻撃を持つ。
飛んでいく白いのが遠隔攻撃で、プレイヤーの前に出る白いのが近接攻撃。

赤はモンスターで、とりあえず「索敵」と「体当たり」を作った。
「索敵」は大きな当たり判定を出して、範囲内にいるキャラを取得する。
「体当たり」は取得したキャラの座標まで突っ込む。
プレイヤーと同じ遠隔攻撃・近接攻撃を持つこともできる。

攻撃は全てウエポンであり、
「サーチ」はダメージ処理のないウエポン、
「体当たり」は自分と同じ位置・大きさの当たり判定を持ったウエポンと考える。
ウエポンの処理はそれぞれ独立していて、
順に繰り出すことで戦闘AIが作れる。
例えばこの動画では、Aキーで「索敵」+「体当たり」を順に実行するようにしている。

あとは「掴み」「防御」のウエポンを作れば、
このゲームのモンスターの動きはある程度表現できると思う。
実際、「サーチ」と「体当たり」の組み合わせでいろいろできる。

A:ランダムに1動く
B:距離10の範囲にプレイヤーがいたら、そっちに1近付く
C:距離3の範囲にプレイヤーがいたら、3動いて体当たり

という動きを作って、どちらも1秒に1回判定するようにすれば、
「にじり寄って来て体当たりしてくる」
というAIになる。
「1回体当たりしたら3秒間は動かない」という風にすれば、
いちおう戦闘っぽくなるだろう。

四角に乗っている数字はHP。
今は数が減るだけだけど、0になったら死亡処理が必要だし、
プレイヤーには気力減・ピヨリ・即死処理などの拡張が必要になる。
そのあたりとかレバガチャはもう少し後に作ろうと思ってたけど、
「掴み」との関係もあるし、先に作ってもいいかもしれない。

あと、いま4方向になっちゃってるので8方向対応する。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

最新の記事

月別アーカイブ

限定特典から探す

記事を検索