投稿記事

吉里吉里でRPG要素の記事 (8)

気狂いなすび 2024/08/10 13:05

吉里吉里でRPG要素で、装備やステータス変化をしたりです!(健全記事)

吉里吉里でRPG要素 装備編

装備ごとの数値を作り、装備したらどこからその数値をもってきたりするかの流れ

格納されたアイテムを読み込み装備する

これが一から作れば作るほどむずかしい話だと思います。

アイテム欄を配列にするなら、
アイテム欄1=10番のアイテム
アイテム欄2=24番のアイテム

次に入手するアイテム、ランダムで決まる。

34番のアイテム

アイテム欄3=34番のアイテム

という形。
つまり、アイテム欄配列で言えば、

10,24,34

と、入っていくわけなんですが、
装備するときって、
その24番のアイテムを装備するなら、
例えばですね?

キャラクター1の装備1が24番って考えちゃうと、

もしも24番のアイテム、
つまり同じアイテムを手に入れたとき、
どっちの24番アイテムかわからなくなったりするわけです。

装備1 = 24

アイテム欄1=10
アイテム欄2=24 ←
アイテム欄3=34
アイテム欄4=24 ←

どっちの24番??

となると、装備してる欄って、24番を装備って考え方じゃなく、

アイテム欄の2番目に格納されている24番のアイテムを装備!!

ということになってきます。

つまりアイテム欄何番目かの装備とか、
もしかしたら何番目の24番アイテムの数、
と言うような複雑な考え方をしなくてはいけなくなってきます。

なので、今回自分が取った考え方は・・・

キャラクター1の装備1
    ↓
アイテム欄2番目、24番のアイテム
    ↓
24番のアイテムのステータスが変化する数値 +x 
    ↓
キャラクターステータスに +x の数値を足す。

というような、正直めんどうな方式をとっていたりします。

もしかしたらもっと簡単な考え方があったのかもしれませんが、
自分が今回思い浮かんだのこんな感じなので、それを採用しました。

選んだアイテムの種類でステータスを変化させる

ちょっと面倒な話なわけなんですが、
例えばの話し、
メイン武器装備で言えば、

キャラクター1の装備、
一番目のメイン装備を足します。
攻撃+20、防御+20

配列  ↓

キャラ装備攻撃配列1に+20
キャラ装備防御配列1に+20

配列から読み込んで↓

ステータスを変化させる。
攻撃+20、防御+20

となります。
その変化値の+20を別の配列。

今この装備をしていることで、
これだけ数値が変わってますよという

ステータス変化配列1(攻撃)=20
ステータス変化配列2(防御)=20

実数値を覚えさせておく。

そして装備を外すときは、

ステータス - 20(ステータス変化配列1)
ステータス - 20(ステータス変化配列2)

という形を覚えさせておく形式を取りました。

ちょっと面倒ですが、
アイテム番号24番のステータスはこういう変化!
というのをいちいちアイテム毎に設定さえしちゃえば、
全アイテム勝手に装備欄に入れた途端、
ステータスの足し算が起きて、
もしもアイテムを外したとしても、
アイテム番号24装備を数値でステータスから引く、
と勝手にしてくれる寸法です。


実際考え方としてはそんなにむずかしくなく、
ただ、それぞれのアイテムの変動する数値を設定しておくだけで、

保管庫
装備24番の数値

↓24番が装備される。

保管庫から24番の数値をもってくる。

↓

装備者に24番の数値を+する。

↓24番の装備を外す。

装備者から24番の数値を-する。

というのが一連の流れになります。

まぁこれを配列に格納して、
数値をちゃんと引っ張ってきて、
正常に動作させるというのが、
意外にも細かくて面倒だったりするんですが・・・

それでようやく装備できる

今までの流れでようやく装備ができるわけなんですが、
他にも

このキャラはアイテム番号◯◯~から◯◯まで装備できる。

という設定をしてさえおけば、
このキャラクターの装備欄には、
片手剣から両手剣まで装備できる。
このキャラクターは魔法使いの杖しか装備できない。
となります。

つまるところ一人の一つの装備欄毎に、
装備できる番号設定をしなくちゃいけないっていう
面倒なところはあるんですけどね……

これでようやく装備が完成という感じです!

こんな単純な話なんですが、
意外に数値で、どこどこのアイテム欄を、
誰の装備欄に格納して、
それを捨てると、3番目じゃなくて、2番めのアイテム欄になるから、
装備している人がいたら一つずれるとかも作ったり、
単純そうに見えて細かい数値の変動が多くあったりします。

こういう細かい数値いっぱいやるのが一番打ち間違えとか、
変な動作するとかで、一人で作っていると、
それが大層時間かかりました……

でもようやく正常に動くようになりましたので、
もうばっちりですね!!

装備以外にも今回作った要素

装備以外にも属性やステータスの細かい耐性なんかを作りました。
属性は

火←水←土
光→闇→無

という独自2種の三すくみで、
弱点属性からダメージ+1.3倍、
得意属性からダメージ-1.3倍
という感じの少し抑え目な弱点補正にしました。
なんで抑え目かと言うと、
属性以外のダメージ要素に
物理耐性と魔法耐性なんかの設定もしまして、
物理耐性10%なら、
物理ダメージ-10%
となります。
となると逆に魔法耐性-30%だったりすると、
魔法ダメージ+30%になったりと、
魔法が弱点の要素になります。
なので、弱点と弱点掛け合わせったらとんでもないダメージでちゃった!
みたいな要素を防ぐために属性補正は小さめに設定しました。

他に状態異常耐性なんかも設定しまして、
敵によっては2ターンに一度50%麻痺でパーティを止めてきて動けないんだが??
とかみたいな敵に対して、
麻痺耐性90%のステータスだったりすると、
50%麻痺の90%耐性なので、45%カット!
結果相手の麻痺確率が5%になる。
また逆もしかりで、
ボス敵が毒100%無効だったとしても、
毒耐性を30%落とす魔法と、
毒確率50%の武器を持ってたりしたら、
50%の70%カットなので15%、
つまりHPの高いボスなんかにも毒を15%の確率で入れられて、
定数ダメージを与えられる!
みたいな感じになります!!

これらを使ってどういうゲームにするか

アイテムをいっぱい用意しておき、
それをランダムで宝箱から排出されることによって、
誰がどんな戦法で戦っていくかの方針を、
どんどん変えれるようなゲームにしていきたいと思っています。

例えば、
高火力で速いその変わり防御が低いキャラクター
しかしちょうどいい高火力の武器がでなかった、
代わりに遅くなるけど高火力の武器をドロップした!

↓遅くなる代わりに防御が上がる装備

高火力で遅いが防御が高いキャラクター

というような、
ランダムドロップしだいで戦法を変えていくようなゲームにしたいです。

他にも、折角状態異常耐性なんかも1から作ったので、
この武器を装備すると5割の確率で敵の麻痺耐性を下げる。

なので麻痺を使うキャラクターをパーティにいれる。

みたいなのも良いと思います。

大体のことをランダムで勝手にできるようにしたので、
とにかく戦法の自由度が高いゲームを作りたいと思ってます。


今回実装した要素のまとめ動画

ツイッターで載せれる動画が基本1分40秒くらいなので、
ツイッター用に前半と後半でわけてあります。
ちなみに最近は動画の音量大きすぎると思われたので、
いつもより音量小さめにしました……
と言ってもゲーム音声じゃなくて、
無音は嫌だから後付けのいつも通りのピコピコディスコなんですが……


前半は装備欄やステータスの説明。

後半は両手武器だったりサブ武器の枠についてを説明してます。

今後の予定

今後はスキル等の戦闘中の要素を増やそうと思っています。

今回の誰が何を装備できるかという流れを応用して、
スキル動作の設定をしておき、
戦闘中このスキルを使ったら、
そのスキル動作を発動させるみたいな流れのものを作ったりします。

他にもMPとかSPとか設定してない訳で、
スキル発動をターン待ちとかにしようと思っているんですが、
(魔法は詠唱時間があるから2ターン待たないと使えない、
物理スキルは即発動できる代わりに、再度使うのに1ターン待たなきゃいけないみたいな)
そこら辺の設定をもっと細かく考えて、
より戦闘を面白いものにしたいと思っています。

あとは今回の装備の一連の流れも、戦闘中にもできるようにしたりして、
装備しているアイテムを相手に投げれるようにしたりしたいです。
装備が外れる代わりに、投げると強力な一撃を出せたり、
戦闘中なので、装備を変えるコマンドは1ターン消費するとか。
あと戦闘中のアイテム使用関係なんかも作っておきたいですね!

そこら辺の戦闘関係が終わったら、
細かいことで言うのだったら、

マップを目視した場所以外表示しないようにする。
今は前に作ったマップのイラストそのままなので、マップのイラストを変えてちゃんとしたダンジョン風にして、階層毎に少しずつイラスト変えていく。
ボス敵毎に特殊な演出を入れたりする。
戦闘中のステータス変化がわかりやすいようにする。
もちろんゲームの肝となるシナリオ制作に取りかかる。
細かいバグとか、変な表示をなおして見やすくする。

という感じになっています。
なんかすぐに完成しそうな……はたまたすぐには完成しなさそうな、
ここまでがっつり吉里吉里で作ったことがないので、
完成までどれくらいかかるかいまいち自分でもぴんときてなかったりします。

これからもゲームを作りながら、
もちろん絵も上達するように描いたりと、
色々頑張っいく予定なので、
良ければ今後ともよろしくお願いします!!

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

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

気狂いなすび 2024/07/29 19:08

吉里吉里で戦闘の数値を作ったり、ランダムマップのバグなおしたりした進捗2024年7月(健全記事)

戦闘系の数値を作ったり、マップのバグをなおしたりしてました。

戦闘系の数値を作った

戦闘系の数値っていうとなんだ??
と思われますけど、結局はステータスのことだったり。

だけどステータスに種類があったり、

通常は攻撃力100

攻撃力100

でマップとか移動中に片手剣を装備して+50されて

攻撃力150

さらに戦闘中は仲間からのバフで攻撃力2倍にされて

攻撃力300

となんだかんだ場所や状況によって変動したり。

この数値をどこに格納して、どこで判断するかとかが、
意外に面倒だったりって感じです。

例えば初期のステータスは、
はじめからにすれば絶対にそのステータスを読み込まなきゃいけないので、
不変的な倉庫に数字を格納しておきます。

頑丈な金庫 初期ステータス

次にその数値を読み込んで、レベルアップや装備を参照して出てくる、
ゲームを見るうえで一番見ることになるステータス画面のステータス数値。

初期ステータスから数字だけ読み込む
↓
↓レベルアップした数値
↓装備品によるステータスアップした数値
↓
ステータス

となり、そして戦闘中のバフ・デバフはステータスを参考にするので

ステータスから数字だけ読み込む
↓
↓バフ・デバフをかけられる
↓
戦闘中のステータス

となります。
そして戦闘が終わると保存していたステータスを読み込み元に戻る。

みたいな考え方で今回は作っていくことにしました!!

ただしいて言うなら、移動中のステータスを戦闘前のステータスに読み込ませて、
さらに戦闘中のステータスに読み込ませて戦闘中に上下する数値というのを自分を本当は作ったり、
別に複雑な話じゃなくて、読み込むのらくだろうなーくらいで増やしただけなんですけどね。

まぁそういうステータスや戦闘系の数値をがっつりつくったので、
例えば敵に3ターンのデバフを食らった!

戦闘前攻撃力100
これの3割デバフ
戦闘前攻撃力100/100(100%の1%を出す)=1
1×30(デバフの割合30%)=30

戦闘中攻撃力100ー30(デバフの30%分)=70

そして攻撃するときのダメージ計算は、
3ターンこの戦闘中攻撃力70を参照するようしておくわけです。

他にも細かいことを言えば、デバフが重複するかしないかの設定、
何ターンでデバフが解除されるか、それともデバフまたくらってターン数リセットなんかの設定も作ったりしました。

今はまだデバフしかつくってないですが、
ゆくゆくはバフと状態異常によるダメージとステータス変化、
それらが固定かランダムのターンで終わるかなんかも細かく作っていったり、
見やすいように、戦闘画面に表示できるようにしようとしたりしてます。

これで一応形はできたので、
敵キャラなんのステータスもちゃんと作っていけたりするので、
敵なんてなんぼいてもいいので、
とりあえずこの作業だけは終わらせておきたかったので、無事終わらせられて良かったです。

あとは敵だけではなくアイテムや装備系を次からはやっていこうと思っていたりします!!!


あんまり面白くないしためにならないので読み飛ばしてもいいと思う場所

そういやタイトルのマップのバグって?


前回の報告で動画を載せたりしたんですが↓

前回の報告のページ

その時に載せた動画↓

なんですが、冒頭でマップを広くしたから生成するのに時間がかかるって書いたんですが、

あれは単なるバグでした。

そもそも吉里吉里でこんなに重くなることありえるのだろうか??
みたいなことを思いまして、色々調べてみたらバグでした・・・

もともとエラーを吐いたら、生成を最初からやり直して~みたいな、
几帳面なことをしていたので気づくのに遅れちゃったんですが、
そういう機能をつけてたおかげで表面上はちゃんと動いていたみたいです。

ただそのせいで、マップを大きくした分、
かなりの回数最初からやり直し状態になってたので重かったので、
そこら辺を直したりしてました。

ただその機能をつけたのが、当時1年か2年ないくらい前の自分が、
吉里吉里でRPG風のゲーム作れればなと思って作った最初のほうだったので、
原因が結局解明できなかったバグがあって、ならエラー吐いたら最初からにしちゃえ! 
みたいな暴力的な解決法に出た結果だったりします。

そして今でもあんまりそのバグというか、多分数字のミスなんですけど、
どこが間違ってるのかあんまりわからなくて・・・

でもしかし、当時と違い自分も結構な経験を積んで、
重くしないで、バグやミスを取り除けるようになったりしてるはずと!!

エラー吐かないように別の場所に二重チェックみたいなのいれたりして、
最初からやり直しじゃなくて、エラーが出た場所を消すようにしたりしました。

概要だけじゃなくて具体定期なことを言うと、

0,0,0,0,0,0,0,0,
0,0,0,0,0,0,3,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,1,0,0,0,0,0,
0,0,0,0,0,0,0,0,

1がスタート、3がゴール

としたときに、1と3の間を勝手に道をつなげるはずなのに、
なぜかたまにつながらずに、

0,0,0,0,0,0,0,0,
0,0,2,2,2,0,3,0,
0,0,2,0,0,0,0,0,
0,0,2,0,0,0,0,0,
0,0,1,0,0,0,0,0,
0,0,0,0,0,0,0,0,

2が道

となったりしてゴールまでぎりぎり届いてくれなかったり。
そしてつながらないのでもう一度やりなおし!となって重かったみたいな感じです。

これが最初の15×10くらいの数値だったら、部屋を何個か作って道をつくるくらいは
全然軽いんですが、
それが4倍になると流石にやり直す回数も4倍どころじゃなくて、
4乗くらい増えるみたいでそれのせいで重かったわけです。

いやいや!!
すげー絶対単純なミスだってその程度なおせよ!!!!
一応今回は簡易的に伝えましたが、実際は結構もっと複雑なわけでして・・・
なので何百回もやり直させるよりは、
何度か道がつながってるかどうかのチェックする場所を作って、
つながってなかったらつなげるって動作をするようにしました。

(でもそのチェックする場所あればもう最初の道作る場所いらない?
いえいえあくまでチェックする程度の機能なので、
基盤の道をつなげるのが大事だったり)

読み飛ばしてもいいと思う場所終わり

つまりマップのバグを直したおかげの恩恵は?

とりあえず色々あってランダムマップを生成するのに軽くなったので、
もっと部屋の数を増やして、
アイテムももっと多く配置できるようになりました。

やっぱりローグライクっぽいゲームはランダムドロップのアイテムとかが、
結構楽しいものだったりすると思うので、
もっと面白くできそうな気がしますね。

(ちなみになんだけど、実はあんまりローグライク系のゲームって
なすおた本人はあんまりやったことないような気がするというか、
なので今作ってる作品が本当にローグライク系に分類されるのかちょっと悩んでたりw)

今回の報告をまとめた動画

ツイッターに載せた、今回のまとめ動画です。

そういえばあんまり深くは報告し忘れてたりしますが、
敵のHPを見やすくしたり、敵を攻撃する対象を選べるボタンを作ってみたり、
その狙ってた敵が倒れたら、攻撃する対象は次の敵に自動で移行するようにしてみたり、

あとは動画撮ったあとに夜につくったんですが、
ステータス画面やアイテム画面になると、
急に攻撃ボタンとか色々消えて、
次には戻ってるみたいなのって、なんか見栄えよくないなっておもったので、
そこら辺も細かいですけど直したりしました。

今回はこんな感じになりますし、
日曜日1日中ゲーム作ってて疲れて深夜にCi-en書いてたりするので、
誤字とか色々あったりすかもしれないですが、ご容赦ください・・・

こんな感じで面白いものなんかを色々作っていく予定です。

ツイッターではイラストや進捗、日常のつぶやきなんかも載せてたりします。
他にもCi-enだけじゃなく、色々な場所で活動してたりします。
興味があったら良ければ見ていってください!!

なすおたのツイッター

気狂いなすびのサークルツイッター

ピクシブ

無料でできるふりーむの気狂いなすびのページ

DLsiteの同人作品のページ

よければ今後もよろしくお願いします!!

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

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

気狂いなすび 2024/07/13 17:05

前に吉里吉里ZでちょっとしたRPG要素を作ろうと思った時のまとめ③(健全記事)

3D風のマップ移動表示と、戦闘中速い順に並べる考え方

前回まででランダムマップとマップを表示できるようになったので、
吉里吉里でそれっぽいことをやるだけなら問題ないと思いますけど、

単なる全体マップを見ながら探索するだけってなんか味気なくね??

と思っちゃったりしました。
前回言った通り、全体マップでも自分の位置を自分のSDキャラにして、
マップの配列を複雑にして、ここは木、ここは壁、これは家ってすれば、
初代のポケモンみたいな見た目くらいはできたりするわけですが、
そういうのじゃなくて、
もっとウィザードリー風の3Dダンジョンを探索したいなった思いました。

……というのも、ぶっちゃけ配列複雑にして色々なオブジェクトを作るより、
ある一定の画像を規則的に表示してくれてたほうが、楽……というか、
折角ランダムにマップを自動生成してくれるんだったら、
変な事をしすぎずに、シンプルな方がいいと思いました。

もしもそれで満足いかなったら、そしたらそこからどんどん足していけばいい訳ですし……

ということで、

3D風マップ移動の表示

配列上の判別

ばばん! こんな感じでマップを自動で表示してくれるようになりました!!
これは去年作った時の進捗をまとめた動画の抜粋ですが、
この画面で言う所の視点は、数字の配列にすると、

2,2,2,
0,2,2,
2,2,2,
1,3,1,

0が壁、1は見えない、2が道、3が自分

というのが視点となっています。

こうやって数字の配列にしてしまえば、
ここまでランダムマップを作る過程を見てきた人ならわかると思いますが、
どこに壁があるとかを判別するのはそんなに難しいことじゃないはず!
前回も大きな文字で書きましたが、今回も大文字でかいておきますが、

(指定したい文字数目) / (改行するときの数) =(x軸) と余りの数(y軸)

という話。
大事なことは何度でも書いて見直す手間を減らすスタイルです。
これをさっきの配列に置き換えると、

 2,2,2,
 0,2,2,
 2,2,2,←ここの列の数式
 1,3,1,0 
   x軸1 y
       軸

右下をx1y0という始点として、自分の位置は
   
   x2y0

配列に直すと二番目の数値。

とするなら、矢印の座標は左から、

x3y1 x2y1 x1y1

となりなるので、こうすれば配列の数式のパターンがわかってくると思います。
自分の視界を前方向9マスと考えたら、

自分の位置   (x a y b)

前方向を向いている場合の視点

一列目の位置  (x a-1 y b+1) (x a y b+1) (x a+1 y b+1)
ニ列目の位置  (x a-1 y b+2) (x a y b+2) (x a+1 y b+2)
一列目の位置  (x a-1 y b+3) (x a y b+3) (x a+1 y b+3)

の9マスとなります。
数式に直してしまえば、プログラミングやゲームに直すのはとても楽ですよね~(多分)。
ただ何度も念を押してかいたようにこれは前を向いている場合の視点の方程式です。
もしも横を向いている場合はまたそれに対応した数式を書かないといけません。
でもまぁここまで読んでいる人ならわかると思うので、省略しようかと思います。
一応念のため書いておくと、

1,2,2,0,
1,2,2,0,
3,2,2,0,
1,2,2,0,

0が壁、1は見えない、2が道、3が自分

さっきのを横にした時の配列を考えて、
前方向を向いているときを参考にしてもらえれば、大丈夫かなとか思ってます。

画像表示の判別

多分人によってはさっきの数式なんて、
今までここまで読んでれば簡単にわかるわい!
って思ってる人も多いかと思います。
どちらかっていうとこっちの方が興味あるかもって感じですよねー・・・
でもこっちは説明することなんてあんまりないような気がします。

という画像、実は12枚くらいの画像で出来上がったりしています。
とりあえず左側の画像だけみると

赤の1枚目、青の2枚目、黄色の3枚目となっています。

画像を載せるとわかりやすいかもしれませんが、

 
 

となっています。
パターンで言えば赤が4枚

         赤が道か道じゃないか
        ↓         ↓
      赤が道         赤が道じゃないパターンで1枚目
    ↓     ↓
  青が道    青が道じゃないパターン2枚目
↓    ↓ 
黄色が道  黄色が道じゃないパターン4枚目
の3枚目

というわかりづらい文字の図解。
パターンを書き出すと、

赤が道じゃないパターン

赤が道で青が道じゃないパターン

赤が道で青も道、黄色も道のパターン

赤が道で青も道、黄色が道じゃないパターン

という4つのパターンになっています。

そんなに少なくて大丈夫なのー???
って思ったりするかもしれませんが、
実は結構事足りたりします。

視線のことを考えると、
左の赤が道か道じゃないかで、その次の青が見えるか見えないか、
そして青が道なら黄色が道じゃないか道なのかを判別する。
基本的に順番として、

赤 > 青 > 黄

で手前が塞がれたら奥が見えないというのが基本だったりします。

このルールで左右と真ん中の壁を作っていけばなんとかなっていくかなと思います。
他にもアイテムや敵を表示したい場合は、
大中小の3種類を用意し、道がある場所に表示するようにすれば問題ないかと。

戦闘中の速い順の並べ方

戦闘中ターン制バトルにおいて、速いキャラから順番に動けるってのは、
まぁ速い順に並べ替えているんですが、有名なソート方法を使っています。
前回の終わりにちょろっと描いたんですが、
バブルソートという昔ながらの考え方を使っています。
というか自分はそれ以外の考え方を知らないし、
なんならこれが本当に正しいバブルソートだっけ? って言われると、
ちょっとうろ覚えだったりします・・・
(昔自分の大学では、プログラミングもやるよって言われたんですけど、
概要やアルゴリズムを習うことが殆どだったので、
そういうのはちょっとだけ覚えていたりする
(ちなみにプログラミングは研究室でjavaを軽くやってたり
するていどだったりします←つまり言う程プログラミングはできない
(でも後輩に教える立場だったから少しはできたり?)))

知らない人に言うと、
よくゲームなんかでのアイテムの並び替えとか一つとっても、
実はこういった小難しい方程式を使って並び替えていたりするって話なんですよ。
とりあえずいつも通り数字とかの図解で説明する方が楽かと思うので説明していきます。

5、4、2、1、2、

という5つの数字の配列があるとします。
これを小さい数字を左に、大きい数字を右にするとするならばどうしますか?
いやいや! 人間なら見ればわかるっしょ!?
という訳にはいかないのがプログラミングだったり・・・

5、4、2、1、2、

を並べ替える時最初の5と4を比べたら4の方が小さいので、
4と5を入れ替えたい!
入れ替えればいいと思うけど
1番目に2番目の数を入れる・・・すると
1番目と2番目の数が同じになってしまって、
最初の5という数字が消えてしまう。
融通が利かないのがプログラミングだったり。

じゃあどうするかってなると、
ここでお皿を一つ追加してあげたりするのです!!
お皿ってなんじゃい!?
って思うでしょうが、こういった配列を考えるとき、
大学の先生にも言われたんですけど、お皿にのっている数字というのを考えてみましょう。

5、4、2、1、2、

という配列は、

5、4、2、1、2、
皿、皿、皿、皿、皿、

というお皿の上に乗っている数字で、
ここでお皿をも一つ追加すると、

5、4、2、1、2、
皿、皿、皿、皿、皿、皿、

というなにも載っていないお皿が増えたら便利じゃないですか?
そしたらそこに入れ替える数字を一時的においておけば、
さっきみたいに1番目と2番目の数字が一緒になったとしてもー?

 、4、2、1、2、5
皿、皿、皿、皿、皿、皿、

4、 、2、1、2、5、
皿、皿、皿、皿、皿、皿、

と余分につくったお皿に5という数字をおいておけるというわけです。
そしたらその5のお皿を2番目の数字にいれて、

4、5、2、1、2、
皿、皿、皿、皿、皿、皿、

と1番目の数字を並べ変えることに成功します!

今は1番目の数字と2番目の数字を比べて入れ替えましたので、
次は2番目と3番目、次は3番目と4番目、そして4番目と5番目を比べるとしていくと~?

4、2、1、2、5、
皿、皿、皿、皿、皿、皿、

となります。

小さい順にならんでないじゃん!!!!!!
となりま~す^^
じゃあ駄目じゃん!!
ってまあまぁ落ち着いて。
これを何回か繰り返せばなんとかなりそうじゃないですか?
となると今度は何回繰り返せばいいのかってのを考えていくと、
例えば、もしも一番右の数字が本当は一番小さかったら、
と考えた場合、

一番右の数字が一番左まで行く回数が繰り返しの数が正解というわけです。

つまり5個の数字の配列なら、右の数字を左まで持ってくるのに4回入れ替える、
ということになります。

前後の数字を比べて入れ替えていく作業を最後の数字までする × (比べたい数字の量 -1)回 

繰り返すと単純な前後の数字を比べるだけでソートができたりします。
これが、水の中から空気の気泡が浮かび上がってくるように見えることから、
バブルソートといわれてりする? んじゃなかったなかー確か??

んでこれをすることによって、敵の数が3体、パーティが4人だった場合。
比べる数字は7個。
つまり6回繰り返すと速い順に並べ替えることができます。

ちなみに数字だけ並び替えても意味ないじゃんって言われるかもしれないですけど、
さっきの数字の列を例にすると

 5、 4、 2、 1、 2、
1皿、2皿、3皿、4皿、5皿、仮皿、

という上の数字と関連させたお皿にすれば、

  、 4、 2、 1、 2、 5
仮皿、2皿、3皿、4皿、5皿、1皿、

       ↓

 4、  、 2、 1、 2、 5
2皿、仮皿、3皿、4皿、5皿、1皿、

       ↓

 4、 5、 2、 1、 2、 5
2皿、1皿、3皿、4皿、5皿、仮皿、

という感じになるのでこれをバブルソートして、

 1、 2、 2、 4、 5、
4皿、5皿、3皿、2皿、1皿、

というお皿まで対応させておけば、速い順に並べ替えても、
4皿が一番速いから動きますと対応させることができたりします。

これで戦闘中速い順にならべかえて、
対応したお皿のキャラが行動していくという形になるはずです。

今回の説明はこのくらいにしておこうかと思います。
てかどうでした今回の説明?
ぶっちゃけ説明することがあんまりなくて、
大事な事を何度も細かく説明してる感じがして、
逆に読みにくかったりしたでしょうか?

まぁあくまでここでは概要を理解してもらえたりすればいいかなと思っていて、
なんならこういうことを読む人って大体もうそんな原理知ってるって人が多いと思うので、
あくまで軽く概要を知ってもらって、
今後の読んでくれる人の創作で行き詰った時、
あーそういうや、なすおたはあんな方法でやってたみたいだなー、
少しそれについて調べてみるかーとなってくれればいいかなと思います。

次回の吉里吉里ZでRPGっぽいののまとめは何を説明するかまだ決まってないですが、
多分何かまた載せようかと思ってます。
また今作っているRPG風のゲームの進捗やイラスト、エッチなCG集なんかも更新していく予定なので、
もしよければ今後ともなにとぞよろしくおねがいします!

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

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

気狂いなすび 2024/07/09 19:02

次回作の話と吉里吉里でRPG風のゲームのステータスやアイテム欄の進捗2024年7月1週(健全記事)

最初に、次に販売したいRPG風のゲームの話

あんまりまだ説明してなかったので、
ここでちゃんとどういうゲームを作る予定かということを書いておきたいと思います。

次に出すゲームはローグライク系のゲーム

途中でボスとして出てくるキャラクターを仲間にして、100階層クリアを目指すローグライクっぽいRPG風のゲーム
というのが次作るゲームのメインの内容となっています。

レベル上げのないカジュアルに遊べる作品

サクサクっと遊べるゲームにしたい

内容自体はそんなに長すぎないで、さくさく遊べることを目標にしたいと思っています。
本音を言えば、いつだってどっしり構えたレベル上げをしていくような、
長い作品を出した方が内容も面白くできる可能性も高くなるとは思いますが、
今自分にそれほどのことはできないと思っています。
というのも、まぁまだそういうRPG風のゲーム作りにも販売にも慣れていない状態なので、
最初から大きなことをやって、何も出さずに失敗!
というよりは、もっとサクッとできて、ちゃんと完成しているものを作りたいと思ったからです。
そしてそんなサクッとできる作品なら、よりカジュアルに、
レベル上げを無くした方がやりやすいのかなと考えました。

モンスターと戦うと確率でトロフィーを獲得してステータスを上げる

けどそしたら敵と戦う必要なくなっちゃうじゃん……
となりますけど、それもあんまり楽しくないですよね。
ずっとモンスターとの戦闘を逃げてるだけでクリアできるならそうしますし。
ただそこで、モンスターを倒すと確率でトロフィーとかを獲得して、
ステータスが上がり、それが他の周回プレーでも共通とかなら、
最初難易度が少し高くても、どんどんやってくほどに楽になってく、
みたいな形なら無理なく楽しめるんじゃないかなと思っています。
他にも隠しボスを倒すと、とあるキャラのスキルが強化されたりー、
なんていうのもありかなとか考えてます。
あとは実績が最初は初期かされてて、階層も100以上いけるみたいな、
チャレンジモードとかも、なんだかんだ無限に遊べて楽しいのかなーとか妄想してます。

エッチな作品だけどゲーム実況可能にしようかとか

ちなみにエッチなゲームにする予定なので、もちろんR18作品にする予定です。
ただ、まぁなんて言うんでしょう?
今まで結構フリーゲームなんかを作ってて、ゲーム実況可とかにしてたので、
もちろん18歳以上の購入はできないですけど、
エッチなイラストや展開を省いたストーリーモードを設けて、
ゲーム実況可とかにしてもいいかなーとか思ってたりします。

実装できるかわからないところはちょっと未定ということで……

今の所自分でも初めてのことをずっと頭を悩ませながら作ったりしているので、
もしかしたら実装できない、致命的な欠陥を見つけた、ゲーム自体がお蔵になる??
なんて可能性はいつもあるので、
ここに書いたことを全てできるかわかりませんが、
頑張って作っていきたいと思っています!

興味がある人がいたら応援なんかもよろしくお願いします!!

ここからが2024年7月7日までの進捗まとめ

ステータスやアイテム欄を作りました~

今まではフリーゲームのおまけ用でそこまでじっくりしたステータスは作っておらず、
HPだけとっても30くらいが限度でダメージも1~10くらいの少ない数値で作ってあったんですが、

ちゃんとRPGっぽいゲームを作るのなら、
HPも3桁くらいは自動で表示できるようにしたり、

それに比例して、攻撃や防御のダメージ数値ももっと大きくしたりしました。
他にも、ミニゲーム用だったので、アイテムの持てる数を2つ、
それ以上持つと古いのから捨てるという仕様でしたが、

アイテムも10、ないし予定では20か30くらい持てるようにして、

今回は間に合いませんでしたが、キャラ毎の装備アイテムなんかもつくり、
ランダムでドロップする、みたいな形にしていきたいと思います。

ステータス画面

この前に作った、マップや戦闘画面どこからでも飛べて戻れるボタンで、
いつでもステータス画面を呼び出して、操作キャラのステータスを見れるようにしました。
今回は間に合ってませんが、
マップ上でステータスを開いて、そこから装備を選ぶ、
みたいなこともできるようにしていきたいと思います。

もちろん戦闘中は装備は変えられない仕様にする予定だったり。

アイテム欄

アイテム欄もステータスと同様にどこからでも飛べて戻れるボタンでいつでも見れて、
マップでならアイテムを自由に使用したり捨てれたり。
戦闘中はアイテムを使うとそのキャラが1ターンを消費してアイテムを使用、
装備系のアイテムだったら相手に投げつけるみたいな形にしていこうと思ってます。

アイテムは戦闘の数値をもっと細かく練ってから作らないと、
意図せずぶっこわれアイテム作っちゃいそうなので、
今回はフリーゲームのミニゲーム用に作った可愛らしいアイテムで代用しています。
数値をちゃんと細かく作ったらアイテムもどしどし作っていく予定です。

設定画面

設定画面もステータスとアイテム欄同様(ry
前につくったどこからでも飛べて戻れるボタンが、
あまりにも自分の中では画期的で、吉里吉里においてこれがあるだけで、
数倍やれることが増えたので大助かりです!

設定は基本的に音に関係するのを調整できるようにしてあります。
マップ上で開くとセーブとロードができて、
戦闘中に開いてもセーブとロードはできない感じにしました。
戦闘中に、ずっと最低乱数引くまでロードし続ける!
なんて変な戦い方は良くないので……

報告を軽くまとめた動画

という今まで説明したことを軽くまとめて文字付の動画にしたのはこちらとなっています。
ツイッターで載せた動画と同じものになっています。

ツイッターでも書きましたが、
この動画のBGMは後付けなので、動画中の音量設定でBGMを弄っていますが、
もちろん後付けなので音量はかわりません。
バグじゃないです……
だけど音量設定の戻るボタンの音量が変なのはバグです直しておきます……(ややこしい)

今後の予定

次はキャラクター毎のステータスを細かく決めていき、
戦闘での数値計算をしっかり作っていきたいと思います。
それができれば、アイテムのデータを作っていき、装備なんかも作りやすくなると思うので。
他にも戦闘の数値計算がしっかり決まったら、
敵のデータもがしがし作っていけると思うので、
ステータスや戦闘での数値計算、戦闘形式が今は優先事項かなと思ってます。

自分なりのペースにはなってしまいますが、
これからもどしどし作品もイラストも頑張っていくのでよろしくお願いします。
ツイッターやCi-enでのフォローや、
いいねなんかをつけてもらえると大変励みになります!
過去作も無料のものや有料のものと色々ありますで、
見てもらえるととても喜びます!!
よかったらよろしくお願いします!!!!

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

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

気狂いなすび 2024/06/24 18:36

吉里吉里で30×20のランダムマップやステータス画面っぽいの作った進捗2024年6月4週(健全記事)

今まで15×10の150マスを30×20の600マスにしたり、ステータス画面っぽいのを作りました。

どうしてマップ大きくしようかと思ったか

もともとこのRPG風のゲームは、こんど出すフリーホラーゲームのミニゲーム用に作っていたんですが、
それをもうちょっと大きくして、戦闘なんかをしっかりしたものにすれば、
ファンタジーのRPGゲームとしてちゃんと出せるのではないかと思った次第です。
最近はエッチなCG集の販売なんかをしていましたが、
どうせならもともと気狂いなすびはゲームを作ったりがメインなので、
RPG要素がメインのエッチなゲームを次は販売したいなーと思い色々改良しています。

何より色々なことに挑戦して、気狂いなすび独自の要素を作っていくってのが、
なすおたの活動のメインと言っても過言ではないので、
何事にも挑戦と言うことで作ったりしてます!

なのでファンタジーのRPG要素ゲームを出す予定なので良ければよろしくお願いします!

30×20の600マスランダムマップについて

今まで15×10の150マスを4倍の30×20の600マスランダムマップにしたんですが、
ランダムマップの考え方は別のまとめ記事に書いた通りのなので省略します。
まぁ、なので今までのランダムマップの考え方をただ、大きい配列に適用しただけなので、
ランダムマップを作るのは大して難しくはないんですよ。
本音を言えば600マス程度じゃなくて、最初9倍の45×30の1350マスランダムマップを作ったんですが……
重すぎて吉里吉里じゃ動かなくなりました(泣)。
なのでランダムマップは600マスくらいがちょうどいいかという結論です。

ちょっと話は逸れますが……
今回はランダムマップということにこだわった結果重くなりましたが、
別にランダムで生成という手順が重いのであって、
ランダムじゃなくて、固定のマップならもっととんでもなく大きなマップができると思います!
そのうちもっと自由度を高めて150×100の15000マス固定マップくらいでクラフト系のゲームみたいな?
島開拓とか町開発とかできるくらいに複雑にしていければいいかなとか思います。

で、話を戻すんですが、
今回で一番面倒なのが、そのマップを表示するときどう表示するかっていうのが一番面倒でした。
600マスを全部そのまま出せるのなら出していいですけど、
一回で600マスのマップを表示すると、どうしてもマップは見づらくなるし、
ゲームも重くなります。
なので表示は今までの150マスだけで、600マスを4分割画面にして、
マップを移動したらまた別の150マスを表示するっていう感じにしました。

簡単な小さな図で説明しますと、

0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,5,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,

という8×6マップがあったとしまして、
自分が5だとして表示するのが4×3だけだとすると、

0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,1,1,5,1,
0,0,0,0,1,1,1,1,
0,0,0,0,1,1,1,1,

という自分がいる1の場所を表示って感じにしました。
もしもこの5の自分が一つ上に行ったとしたら、表示されるのは

0,0,0,0,1,1,1,1,
0,0,0,0,1,1,1,1,
0,0,0,0,1,1,5,1,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,

と言う感じで表示の場所を変えるという感じです。
もちろんこの自分の5を左に移動したとしても、

0,0,0,0,1,1,1,1,
0,0,0,0,1,1,1,1,
0,0,0,0,1,5,1,1,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,

表示している場所は変わらずです。
これのおかげで30×20のマップを4分割で表示して、
大きなランダムマップを作りました。

最後にまとめの動画を載せますが、
動画ではマップが最初から全部表示されていますが、
3D風のメイン画面の視点で見えた場所だけマップを表示して、
どこがゴールか行き止まりかわからないようにしていきたいと思います。
そうすることで、ランダムもマップを恐る恐る探索していくようにしていきたいです。

ステータス画面っぽいのについて

ぶっちゃけ今はステータスとかほとんどまだ決めてないので、
見栄え、悪いですよね~……
画面としてはこんな感じです。

まあ質素ですよね……
なんで今更こんなん報告してんの? って思う人も多いかもしれないんですが、
実は最後の報告動画ではわかるんですが、
吉里吉里っていつでもボタンでとある画面に飛べて、
元の場所に戻るっていうことが

びっくりするほど難しいんです!!

吉里吉里のタグを知っている人しかわからない説明なんですけど、
ボタンにcallタグの効果がないので、
ボタン押したら画面に行ったっきりって感じで戻ってこれないんですよ……
なのでまぁ色々工夫して、
マップ中いつでもと、戦闘中いつでもステータス画面が見れるって結構苦戦しました。
今回は一応の報告ということで載せた感じです。

ただ、ここまでできれば、ステータス画面だけではなく、
アイテム画面とかそういうのも表示できると思うので、
そういった画面も随時作っていこうかと思っています。

まとめの動画

ツイッターにも載せたまとめの動画です。
動いている挙動はだいたいこんな感じです。

今後の予定

今後、ファンタジーのゲームを作るにおいてイラストやシナリオなんかではなく、
ゲームのシステムとして今思いつく改善していきたい場所は

アイテム画面
マップの視界
戦闘関係(ステータスやスキル等々)
大量の敵(雑魚敵のステータスやスキル、あとボス関係)
システム系全般のグラフィック
細かなバグ

なんかを色々いじっていけば完成って感じだと思います!
がんがんと作っていって面白いファンタジー作品を作っていければと思ってます!
他にもエッチなCG集もあとちょっとすると販売予定なので、
大人な紳士淑女のみなさんは良ければ!!

今後も頑張って行くのでよろしくお願いします!!!!

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

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

« 1 2

月別アーカイブ

限定特典から探す

記事を検索