投稿記事

2019年 12月の記事 (2)

石垣 2019/12/21 17:49

制作日記5

ご支援ありがとうございます。
現在はローグライク風おねショタゲームを制作中しています。

まずは前回のハッカトリックスター0号の立ち絵を動かしてみました。
有料プランの記事では原寸での裸状態でのくらいモーションを2つアップしてあります。

現在はゲームの基本的な部分を制作中ですのでここからはその辺の話です。
次はマップをランダム生成できるようにしてみます。

さて自分で考えてみてもいまいちいい方法が浮かばなかったのでそんな時はネットで調べます。
いくつかのサイトを調べてみたところ、次の手順で処理を行えばマップをランダム生成できるようです。


1:マップをいくつかの区画に分ける
2:それぞれの区画に部屋を作る
3:部屋から区画の境界に向けて通路を伸ばす
4:区画の境界まで伸ばした通路をつなげる
5:通路をいくつか削除する

マップ生成ってこんなことやってたんですね。
というわけでそんな感じに作っていこうと思います。

1:マップをいくつかの区画に分ける
プログラムのテストごとに区画の数が変わるとバグの特定とかが面倒になりそうなので
テスト中は3×3の区画に固定しておくことにします。

2:それぞれの区画に部屋を作る
次は区画の中に部屋を作ります。
部屋の大きさはランダムに決めます。
また、区画内のどこに部屋を作るかもランダムに決めます。
ただし、区画内には通路のためのスペースを残しておかないといけません。
ですので部屋は図の破線の内側に作り、区画境界と部屋の間にはスペースが残るようにします。

また、部屋の形は正方形、長方形、正方形(四隅欠け)、方形(1辺欠け)のようにいくつか用意してみました。

そんな感じで3×3の区画にランダムに部屋を作るプログラムの実行結果です。
作ったマップはミニマップで確認しています。

次はさらに部屋に手を加えます。
現在は全ての区画に部屋を作っていますが、今度は部屋の作らない区画も発生させます。
また、部屋の中に障害物も設置します。
障害物は歩くことのできない床で、設置する場所はランダムに決めます。
ただし、あとで作る通路の入り口をふさいでしまうといけないので、部屋の壁沿い1マスには設置しないようにします。

そんなわけで作成したマップをミニマップで確認します。

部屋のない区画が発生していることが確認できます。
部屋の中の歯抜けの部分が障害物です。


現在のマップで確認すると、灰色の部分が障害物です。
障害物の部分は歩くことができません。
また、壁の横を斜め移動することはできませんが、障害物の横は斜め移動することができるようにしました。

部屋を作るところまではとりあえず完成です。
長くなってきたので続きはまた次回。

【 アニメ公開 】プラン以上限定 支援額:300円

このバックナンバーを購入すると、このプランの2019/12に投稿された限定特典を閲覧できます。 バックナンバーとは?

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

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

石垣 2019/12/07 10:06

制作日記4

ご支援ありがとうございます。
現在はローグライク風味のおねショタゲームを制作中しています。
引き続きゲームの基本的な部分の制作日記です。

とりあえず最初は敵用に描いたッカドール0号もといハッカトリックスター0号の立ち絵とか


有料プランの記事ではハッカトリックスター0号立ち絵の原寸と裸差分と表情差分を公開しています。

ここからはゲーム制作日記です。
前回の記事では敵キャラクターを画面に表示するところまでやったので、
次はプレイヤーが攻撃できるようにしてみます。

ただ、いきなり攻撃関係のプログラムを全部作るのは大変なので
まずは基本的な部分だけを作ります。
ローグライクだと攻撃をするといろいろメッセージが表示されたりされると思いますがそういうのは後回しです。
今回は
1:Xキーでプレイヤーが攻撃を行う
2:攻撃のヒットした敵キャラクターがくらいモーションを行う
という2点をまずは作りたいと思います。

もうちょっと細かく条件を付けるなら、
攻撃はプレイヤーの正面1マスだけではなく正面3マスを攻撃するなど、複数マスを同時に攻撃することも可能にする。


複数の敵キャラクターに攻撃がヒットする場合は、敵キャラクターは順番にくらいモーションを行う。
例えば敵Aと敵Bに攻撃がヒットする場合は、敵Aに攻撃がヒットして敵Aのくらいモーションが終わってから、敵Bに攻撃がヒットして敵Bがくらいモーションを行う。
というふうにしたいと思います。


さて、実際にどうするかですが
今回はキャラクターから見えない攻撃を飛ばす、というイメージで作ってみました。
なんのこっちゃ。

例えば右向きのキャラクターが自分の正面1マスに攻撃するとします。
この時キャラクターは攻撃モーションを取るほかに、自分の足元に「右側に1マス進む攻撃」を発生させます。


発生した攻撃がどこにいるのか分かりやすくするために赤いマスを表示していますが、実際のゲーム画面では赤いマスは表示されません。
次に発生した攻撃は右側に1マス進みます。

赤いマスと敵キャラクターが重なれば、敵キャラクターに攻撃がヒットしたことになるわけですね。
「1マス進む攻撃」は1マス進んだ後は消滅します。
という感じです。

ちなみに右を向いているキャラクターが正面3マスを攻撃する場合は「右上に1マス進む攻撃」「右に1マス進む攻撃」「右下に1マス進む攻撃」の3種類を発生させることになります。


また、2マス進む攻撃や3マス進む攻撃のように射程を変えたり、貫通する攻撃、貫通しない攻撃のような条件を変えることもできるようにしてあります。
あとはエフェクトを付けた見える攻撃にすることも可能にしておきました。

さて実際に制作したプログラムで「右を向いているキャラクターが正面3マスを攻撃する」場面をgifアニメにしてみました。

攻撃がヒットした敵キャラクターが順番にくらいモーションを行っています。
ちなみに今回の攻撃は敵キャラクターとの当たり判定を行っていますが、
プレイヤーとの当たり判定も行うと敵キャラクターの攻撃になるお手軽仕様です。

なんだかちょっと画面が寂しい気がしますが効果音とかいろいろ追加したらたぶんもうちょっとにぎやかになるのでしょう。
そんな感じで攻撃処理を追加してみました。

【 アニメ公開 】プラン以上限定 支援額:300円

このバックナンバーを購入すると、このプランの2019/12に投稿された限定特典を閲覧できます。 バックナンバーとは?

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

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

月別アーカイブ

記事を検索