2020年8月5日水曜日

ローグライクゲーム #5「敵AIの配置と移動 Astarロジック実装」



おはこんばんにちは!ギルガメです!

2Dゲームも進めながらこちらの3Dローグライフゲームも進めていきます。ずっとほかの開発しながらローグライフの敵のAIはどのようにしようか考えていました。エリアフィールドとアリアをつなぐものを確認しながらロジックを進めていたのですが、あまりのロジックがよくない、絶対に移動する先を最短の道を確認するロジックが必要だということでAstarのロジックを追加することにしました。

Astarとは何?と思う人にはこちらの記事がおすすめです!ものすごくわらりやすいです。

まずは敵を作成します。今回は無料でダンジョンにいても違和感のないモンスターをアセットで探してみました。なんと・・めっちゃくちゃかわいいボムちゃんを発見!すごいクオリティでアニメーション付き・・最高です。

かわいいボムちゃん(ギルガメが勝手に名前を付けています)
   トーンシェーダーを付けてアニメっぽくしたかったのですが、こちらは
ちょっと複雑でそのまま使うことにしました。


興味のある方はこちらからインポートできます。

ランダム配置で設定してみました。
これだけだとまだうごきません。Astarロジックをここから
追加してみました。

Astarのコードはこちらを参考にさせていただきました。

こちらからギルガメのゲームの仕様に変えながら実装しました。プレイヤーが敵のいるエリアに入ったときに敵はプレイヤーをロックオンします。ロックオンしたときにAstarロジックに切り替えるようにしました。それまではAstarを使わずにランダムの行動をするようにしています。Astarはかなりメモリを使うので、ロックオンのみにしています。

ギルガメの前回のロジックよりはクオリティがよくなりました。

まだまだ攻撃の判定などの実装がたりないので攻撃モーションのみですが、移動はかなりよくなりました。まだ道の移動には怪しい動くをします。改善は必要ですが、かなりダンジョンの雰囲気がでてきました。

少しずつこちらも進めていきます!

2020年8月1日土曜日

Steamに向けて「ギルガメジャンパー」リリースまでの開発 #10



おはこんばんにちは!ギルガメです!

今回は宝石「サファイア」のかけらを集める新しいステージの開発の進歩になります。また新しいアイデアが浮かんだので、ずっとバウンドしながら進んでいくステージからフィールドを回転させながらステージを進めていくギミックを思い出したので実装してみました。

スクリプトはこちらになります。


こちらを回転用のオブジェクトに追加します。このスクリプトはプレイヤーが触れたときにトリガーが発動するようにしています。スクリプトにはあらかじめ回転してほしいフィールドと角度を設定します。トリガーが発動したときにフィールドのTransition.rotationを回転してほしい角度をアニメーションでなめらかに動くようにしました。RotationのアニメーションにはQuaternion.Slerpを使います。これを覚えておくといろんなところで活用できるので役にたちます。

テスト!

こんな感じでフィールドの回転をいかしてかけらを
集めるステージになります。

修正は回転させるオブジェクトは一度きりで、触れると消えるようにします。
またフィールドの回転が終わるまではプレイヤーは動けないようにしました。またあたり判定も一時的にけします。フィールドのあたり判定を避けるためです。

このステージは回転と時空でステージを転々と移動しながら進んでいく仕様にしようと思います。またおまけステージで暗闇ステージも作ろうと思います。

これで第三ステージもこれで形になったので、進めていきます!