投稿記事

まるちゃん 2022/04/30 11:29

ツクールMVのエンカウント処理をコモンイベントで実行するときのやり方

この記事はランダムエンカウント処理が作りたい人向けのものです
こういったものはシンボルエンカウントにすればすべて解決できるはずです
デフォルトでのランダムエンカウントには汎用性がありません
昨今のゲームにおいて戦闘に敗北したらセーブした場所からやり直すというのは
プレイヤーに多大な負荷を与えるもので作るべきではありません
しかし,デフォルトではコマンドの処理でしか敗北や逃走の処理を作れません
なので,コモンイベントでランダムエンカウントを作ろうという試みです
しっかりバグチェクしていないので,本当に動作しているかわかりませんが
そうじゃなかった場合は各自で修正をお願いします。自分も気づいたら直そうと思います
やることは内部でしていることをただ変数とかにするだけです


まず,コマンドでエンカウント禁止の変更で禁止にしてください
次に,並列処理で実行するのでスイッチをONにしてください
そして,敵出現歩数のエンカウントを作成します
マップの設定にある敵出現歩数がスクリプトで表記すると
$gameMap.encounterStep() となり通常 30 です
エンカウントするまでの歩数を内部で 0 ~ 30 の数字を作り2回加算します
そうすると山なりな正規分布の形になって偏りが少なくなります


歩数カウンタで歩数を代入して違った場合,新しいカウンタに代入します
これで移動したのかしていないのか判定できます(修正:2022/05/20)
$gamePlayer.encounterProgressValue() これでエンカウントに関するパーティー能力のことを考慮しながら半減なら 0.5,無効なら 0.0 の数値だけ減算します
また茂みにいるときは 2.0 そして通常 1.0 減算してくれます

BattleManager.onEncounter() を使えば不意打ちや先制攻撃の判定をつくれます
コマンドで使ってるので戦闘の敗北の処理や逃走の処理を作れます
また戦闘開始の前にコモンイベントを呼び出したいときや
終了後に呼び出したいときにも使えるはずです
勝利のときと逃走のときはまた,敵出現歩数の作成をおこなってください
不意打ちと先制はよく試してないから違うかも

ツクラーユーザーの制作の手助けになれば
そして間違ってたらごめん!

フォローしてくれている人や,いいねを押してくださる皆様へ
なんかいっつも自分の好きなタイミングに好きなように投稿してしまっています
ごめーん。そしてありがとう

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

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

まるちゃん 2022/04/05 10:43

一応作っています

エターしそう
どうしてもゲーム制作ではUIから作りたがってしまう
そしてそれをやるたびにゲーム制作が失敗している
でも今回は,今回は大丈夫なはずなんだ
前回のゲーム制作からデータの作り方を学んだ
スキルも決まり,データも作れている
調整は必要だが目処が立っている,はず…

今回はダンジョンマップも作ります
以下の URL でダンジョンを自動に生成できます
これを見ながら書いて 50 マップを作る予定です
10 階層のダンジョンを5つ攻略する予定だからです
Random Dungeon Map

制作中のメニューのUIを表示します
他の方のゲーム制作の参考になれば




戦闘シーンは画面サイズを変更したせいでちょっとずれてます
Passive のスキルタイプを削除する
もう少し頭の良い書き方だったらピッタリ合うようになるんですが…

ルフランの地下迷宮と魔女ノ旅団というゲームをプレイしました
それが面白かったので似たような感じでゲームを作ろうかなぁと
前回のゲームはもともと転職しつつキャラクターを強化する予定でしたが
あのような形になりました
前回作ったゲーム
スキルツリーは設定が面倒だったので自分で作りました
転職するたびにスキルがリセットされる感じです

ついさっきスキルシーンが完成して結構疲れたので休憩したいなぁと
スキル習得だけ情報が少なくて微妙かなぁとか思ってます
ステータスを表示したりしたのですが,なんかへんかなぁって
ステータスシーンは省いても問題ないから
あとは装備シーンとショップシーンと合成シーンを作り直すだけです
なんかまだあって心が折れそうになっています

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

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

まるちゃん 2021/12/26 14:10

ゲーム完成したかも!

ゲームが完成しました! - ゲームアツマール
https://game.nicovideo.jp/atsumaru/games/gm23790

タイトルが Project1 のままだけど…
まぁいいや!!!!!

これが限界!

新着ゲームに自分のゲームが出てこないんだけど…
本当に遊べてるかなぁ?
別アカウントでプレイできたから大丈夫だと思うんだけど…

PageUp,Downボタンでボス戦を中断できます
ログの確認も一応できます

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

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

まるちゃん 2021/09/29 11:38

MVでゲーム作ってました

アカウントのパスワードも忘れて入れないなぁって思って
DLsite は入れて見たら入れてたから進捗をちょっと表示します
結局,似たようなゲームつくってました
真・女神転生のゲーム解説動画が結構面白くてよく見ていました

属性耐性の扱い方が少しわかった気がします
次はそんな感じのゲームにしたいなぁと思います
今のゲームはクリッカーゲームをRPGっぽくしただけです
レベルも成長しすぎるとわからないから 999 が限界で…
あ,はじめにSS投稿して後は無駄話して終わりにします




RPGMaker/FTKR_CustomSimpleActorStatus.ja.md at master ・ futokoro/RPGMaker ・ GitHub

このスクリプトを使わせてもらって作りました
VXace では一生懸命,自分で作っていたけどめんどいから
人のスクリプトもらって使ってます
やっぱい UI はちょっと工夫したいというか…

6人パーティーで自動戦闘してガチャで仲間増やす感じにしました
各アクターの使用できるスキルは装備した2つまで
ダメージ計算をデフォルトから変更しました
ポケモンのダメージ計算が一番いい気がします
(a.level * 5 + 5) * 1.0 * a.atk / b.def
こうすると攻撃力が 1.5 倍されるとダメージが 1.5 倍され
防御力が 1.5 倍されると 1.0 / 1.5 = 0.666...
33% 軽減されます
もう少し防御力の重要性が増す気がして好きです
属性耐性の考え方は多分こうすると面白いんだと思います
最大HPが 999 として上記のダメージ計算を使用します
ファイアの魔法の威力が 300 程度とします
これは最大HPに比べてとても大きな数字です
300 * a.mat / b.mdf として計算すると
a.mat が b.mdf と同値とすると 1.0 となります
これは最大HPが 999 とすると 1/3 のダメージで大ダメージとなります
これを属性耐性を上げることで軽減するというのが目的なような気がします
ダンジョンや状況によってこの属性耐性を上げることの重要性がとても増してきます
a.mat と b.mdf は多分だいたい同値となります
また魔法防御のバフの重要性があがります
300 * 1.0 / 1.5 = 200 となり 100 ダメージも軽減できます!
さらにツクールVXであった炎の指輪で炎属性を半減できる装備があると
300 * 1.0 / 1.5 * 0.5 = 100 ダメージと軽減できます
これがツクールのデフォルトの計算でもいいんですが
300 + 500 * 2 - 500 * 2 = 300
300 + 500 * 2 - 500 * 2 * 1.5 = -200
マイナスの値を取るのを良しとするかどうか…
調整次第なのかなぁ?
また,魔法はレベルが上がると通常攻撃と比べて弱くなります
500 * 4 - 500 *2 = 1000 のダメージが入ります
ツクールVXace では 400 が魔法ダメージの最大でした
魔法力と魔法防御が同値だと 400 しか入りません


いくつか他のゲームでも流用できる計算の考えを少し紹介したいです
使用者の攻撃力を5ターンの間 1.5 倍するという能力は
ターン終了時に TP を +5 獲得すると考えて
コストが 20 の2回攻撃と同値の意味になります
0.0, 1.5, 1.5, 1.5, 1.5 = 6.0
1.0, 1.0, 1.0, 1.0, 2.0 = 6.0

MP の回復手段を1つ用意して 10 ターンでサイクルするような形にしました
サイクルとは指定したスキルを毎ターン使用すると仮定して,MP回復スキルを使用することで結果的に指定したスキルを0コストで使用できることです
MP回復スキルは 100% にしてしまうと,どんな最大MPを持っていても関係なくなってしまいます。なので,回復量は割合になります
製作中のゲームでは TP を 50 消費して 50% 回復することとしました
(ツクールの回復効果量上昇のパラメータを用いると 100% とか作れて強くなります)
毎ターン,リカバーの魔法(コスト 200)を使用すると
200 * 10 = 2,000 となるので
2,000 / 0.5 = 4,000 の最大MPを所持するとサイクルできます
リカバーⅡは 600 となっています
600 * 10 = 6,000
6,000 / 0.5 * = 12,000 > 9,999 の限界値を超えてしまいます
そのために,MP 回復を素早く使用するためのスキルを用意しました
これは味方全体の TP を +15 します
これを使用するとちょうど次のターンに2回攻撃が使用できます
この MP 回復手段を使用すると 20, 40, 60 と増えていき
4ターン後には使用できます
600 * 3 = 1,800
1,800 / 0.5 = 3,600 の最大MPでサイクルできます
もし,味方全体のMPを回復するスキルが存在すると
TP コストを 100 消費して味方全体の MP を 50% 回復するものとします
20, 40, 60, 80 ,100 なので6ターン目にこの魔法を使用できます
600 * 5 = 3,000
3,000 / 0.5 = 6,000 の最大 MP でサイクルができます
とりあえず,単体と全体の魔法もあるので使用者の TP を 15 上げる魔法を作っていました
しかし,これは味方全体のTP上昇と併用すると面白みがない気がしました
ここはすごく悩んだところで,記事にして考えを整理したかったです
3つの役割が支援職には求められます
・全体回復をする人(MP回復手段持ち)
・味方全体の TP を上げる人(MP回復手段持ち)
・味方全体の MP を回復する人(自身の TP をあげられる)
TPは最大でターン毎に 15 * 2 + 5 = 35 取得できます
35, 70, 100 となり4ターン後に使用可能です
でもこれは…,MP 回復手段を自己回復で賄うのと同じターンですね
20, 40, 60 で4ターン後に 50 消費して自身の MP を回復する
そうすると何がいいかと言うと2つしか装備できないので
MP 回復手段以外のバフやデバフを装備できることです

自分は以下の通りにしたほうがいいかと思って作りました
味方全体の最大 MP の 5% を回復するというスキルです
消費コストは 900 となります
最大 MP が 6,000 あると 6,000 * 0.05 = 300 回復します
600 消費するスキルが 300 となります
200 消費するスキルだとサイクルします
消費 MP が半減すると 600 でもサイクルできます
そういう装備を作ることにしました
VX にあった賢者の指輪で,2000 だとマジックペンダントです
まだ,もう少し考えたほうがいいかもしれない気がしてきました
ちょっと思いついたのが味方全体の TP を上げるのは 10 に変更することです
2回攻撃の消費コストを仕方ないから 15 に変更します
2つのスキルで使用すると 10 * 2 + 5 = 25 上昇します
25, 50, 75, 100 で5ターン後に使用可能になります
600 5 = 3,000
3,000 / 0.5 = 6,000 の最大 MP が求められます
通常だと 600
4 / 0.5 = 4,800 となり
リカバーがサイクルする目安の 4,000 と比べて 800 程度の上昇で済みます
今回は最大MPを上げる装備も作っているので重要度が低下するのは避けたいです

今回のゲームは4つの役割を持つ職業という感じでざっくり分けました
アタッカー,タンク,サポーター,キャスターです
サポーターの重要性が増してしまったかなぁと思っています
6人パーティーのうち3人がサポーターとか構成としてありえます
8人パーティーでもいいのかなぁとか思ってます
パーティーのうち3人が支援する人は多すぎるかなぁと
火力を考えるなら味方全体の TP を上げてくれるひとはほしいなぁと
最低2人はサポーターが必須のパーティーかなぁと
魔法攻撃は TP を消費するものと MP を消費するものの2種類作りました
MP 消費してやるなら MP全体回復持ちの人を入れたほうがいいかなぁと
ダメージ計算は以下の式です
a.mat * (a.level * 5 + 5) * 3.0 / b.mdf
これが TP を消費せずに使用できると考えると強いかなぁって
打たれ弱いけど…
3回攻撃のスキルがあってこれはコストが 40 なので
魔法攻撃のほうが威力が強くなります
代わりに魔法攻撃をする人は打たれ弱くなっています

自分がゲーム紹介すると文字ばかりになってしまいます
他の人はこんなに最後まで読んでないと思うけど
これが僕のゲーム制作です
自分が作りたいゲームというのがわかってから
これだけを考えてゲーム作っています
ストーリーは作れないけど世界観とか設定はこういう感じに作り込める気がします
次作るゲームは属性耐性を考えて仲間をガチャじゃない感じで入れて
そのためにストーリーを作る必要があるんですが
もっと仲間というものを考えて作りたいです
今はステータスが弱いか強いかとしか考えていません
次のゲームもそうだと思うんだけど…,装備とかをもっと考えたいです
今の装備はステータスを上げるだけです。もっとかっこよくしたい
スキルもかっこいい感じにしたいです
2つの効果を持つスキルとういのを意図的に作りませんでした
アクターのスキル習得の仕方も装備じゃなくて工夫したいです
全体回復魔法を覚える使えるキャラクターとか
真・女神転生Ⅲがセール中だからほしいなぁとおもってます


ダンジョンは頑張れませんでした…
頑張って作ったんですけどマップサイズが微妙に合わなかったりで
諦めました
通路と部屋とか作って明かりプラグイン入れてかっこよくしても
めんどいなぁって

ダンジョン生成,迷路,広い通路にして作りました
いい感じなんですけど
ずらしたりなんだりしてサイズを固定にできなかったです
迷路の複雑さがダンジョンの大きさに直結してしまうみたいで
複雑さを一定にすることができませんでした

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

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

まるちゃん 2020/05/06 16:58

ゲーム制作は順調かも?(経験値曲線の作成)

メンバー入れ替え.txt (メンバー入れ替え.txt)
https://ux.getuploader.com/Rpg_Maker_VXace_Maruchan_Uploard/download/74
デフォルの並び替えを少し変えます
(2020/05/24)バグが有った。return_scene をしてるのですが並び替えが終わったとき。ターン経過とかすべてクリアされてました。保持しないと…。並び替えは絶対に欲しいものだから…。


経験値取得アイテム.txt (経験値取得アイテム.txt)
https://ux.getuploader.com/Rpg_Maker_VXace_Maruchan_Uploard/download/75
アイテムで経験値を増減する
これもバグありました。self.exp を加算するのを忘れていました
アクターの経験値は累計で計算します
でもこれ作ってよかった


パーティー能力.txt (パーティー能力.txt)
https://ux.getuploader.com/Rpg_Maker_VXace_Maruchan_Uploard/download/78
アイテムを所持しているだけでパーティー能力を発揮します
なんかバグがあるようです。修正したんですけど…
もう一度修正します


リザルト画面.txt (リザルト画面.txt)
https://ux.getuploader.com/Rpg_Maker_VXace_Maruchan_Uploard/download/76
修正(2020/05/06)
控えのメンバーについて配慮していなかった


こんな感じのスクリプトを作りました
職業が3次職までで16個作ったので
メンバーが入れ替えできると面白いだろうなぁって思ったので
それに通常戦闘はアタッカーをもっと増やしたかったので仲間を追加しました
闘技場をつくってボスモンスターと戦うためにも幅をもたせたかったからです

アイテムの効果量や装備のアップグレード価格の見直しをしました
今もまだスキルで悩んでいます
ダンジョンは合計8つ作ったのでマップを8個作りました!

まだ本格的に作ってないだけだから…(震え声)
まぢ、もうこれが限界って感じ…


まだ経験値曲線がわかりません
どうやって敵の経験値をつくってどれぐらい入れればいいのか
これが全然わかりません
ちょっとずつ増やしていくだけしかわかりません
とりあえず最初は10ぐらいがちょうど良さそうなので10にしてます
次の敵は20、30、40って増えていくだけです
お金は1Gスタートで経験値の 1/10 ってだけです
本当にわかりません。どうすればいいんですか?
不安で仕方ない
とりあえず通しでレベル300までは育てました
ちょっと300あたりから経験値が多いような気がして…

(2020/05/08)経験値曲線を作ることにしました
20 * 1 * 50 = 1000
20 * 2 * 100 = 4000
20 * 3 * 150 = 9000
20 * 4 * 200 = 16000
20 * 5 * 250 = 25000
20 * 6 * 300 = 36000
20 * 7 * 350 = 49000
20 * 8 * 400 = 64000
20 * 9 * 450 = 81000
20 * 10 * 500 = 100000
20 * 11 * 550 = 121000
20 * 12 * 600 = 144000
20 * 13 * 650 = 169000
20 * 14 * 700 = 196000
20 * 15 * 750 = 225000
20 * 16 * 800 = 256000
各ダンジョンて入手できる経験値の最高値を計算したところこうなりました
(level / 5) ^ 2 * 10 ぐらいの経験値曲線でいいのかなぁと
レベル上がりすぎてもこまるから3倍ぐらいします
1.2 * level ^2 ぐらいが丁度いいのかなぁと
ツクールの経験値曲線は exp_for_level で算出します
これはこれまで獲得した経験値が exp_for_level(level + 1) より大きくなると
レベルアップすることができます
なので、経験値曲線を f(x) としたとき exp_for_level は
f(x+1) - f(x) = 1.2 * level ^2 となるような関数を作ります
ここらへん変えても良かったのですが
リザルト画面に影響があるので f(x) を求めることにしました

f(x) を多項式と考えたとき ax^3 + bx^2 + cx + d をとります
2次関数にすると b(x+1) ^ 2 - bx ^ 2 で x^2 が消されるので3次関数となります
f(1) = 0 をとるために d はなにか値が入ります
f(x+1) - f(x) = a(x+1)^3 + b(x+1)^2 + c(x+1) + d - (ax^3 + bx^2 + cx + d)
= 3ax^2 + (3a + 2b)x + b + c = 1.2 * x ^2
a = 0.4, b = -0.6
b = -c
f(x) = 0.4x^3 - 0.6x^2 + 0.6x + d
f(1) = 0 をとる
0.4 - 0.6 + 0.6 + d = 0
d = -0.4
f(x) = 0.4x^3 - 0.6x^2 + 0.6x - 0.4 となります
最初は難しく考えすぎてました

少し微調整
f(2) = 3.2 - 2.4 + 1.2 - 0.4 = 1.6 は低すぎるので
ある程度変え用途思います
f(2) は 10 ぐらいあったほうがいい気がします
でも最初は全体魔法を覚えるまで面倒な時間があるからこれでもいいかも?
f(x+1) - f(x) = 1.2 * level ^2 + 8.8
x = 1 のとき 10 をとる
そうすると
3ax^2 + (3a + 2b)x + b + c = 1.2 * x ^2 +8.8
a = 0.4, b = -0.6
-0.6 + c = 8.8
c = 9.4
f(x) = 0.4x^3 - 0.6x^2 + 9.4x + d
f(1) = 0 をとる
0.4 - 0.6 + 9.4 + d = 0
d = -9.2
f(x) = 0.4x^3 - 0.6x^2 + 9.4x - 9.2 となります
f(2) = 0.4 * 8 - 0.6 * 4 + 9.4 * 2 - 9.2
= 3.2 - 2.4 + 18.8 - 9.2 = 10.4
多分これでいいと思うけど…
10.4?


結構ゲームとして遊べるようになりました
けれども、最後になって作るべきものが増えてきました

スキルの習得は妥当だと思えるものから少し低い感じで作りました
以前紹介したパラメーターをもう少し詳細に書き直そうと思います
いい感じにできたと思います

装飾品は複雑にすると自分がわからなかったのですごく単純にしました
パラメーター +5%, 10%, 15%, 20%, 25% って感じです
最後はインフレさせちゃっていいやってことで宝具に装飾品を増やす物を作りました

宝具というのは所持しているだけで効果を持つ強力なアイテムです

鳳凰の羽根

味方単体を最大HPの50%で復活させる。
繰り返し使用できる。

聖なる十字架

戦闘中に1度だけ使用できる。
5ターンの間、味方全体の能力値を大幅に上げる。

魔封じの鏡

戦闘中に1度だけ使用できる。
5ターンの間、敵全体の能力値を大幅に下げる。

王家のブローチ

ダメージ、ステータスの最大値が増える。
メダルとハートを交換できる。消費アイテムが追加される

メダルというのは敵を倒すとたまに入手できるアイテムです
ハートはボスを倒すと入手できるアイテムです
メダルは装備の購入、ハートは宝具の交換に必要なアイテムです

願いのランプ

獲得する経験値が2倍になる。

明星のランタン

不意打ちを防止する。生成攻撃確率を上げる。
獲得金額が2倍になる。アイテム入手率が2倍になる。

魔法の砂時計

戦闘中に1回だけ使用可能。
5ターンの間、HP・MP自動再生・状態異常防止。

ベヒモスの角笛

ダンジョン内で1度だけ使用できる。
味方全体のTPを100にする。

天使の鈴

ダンジョン内で1度だけ使用できる
味方全体を全回復させる。

成金の壺

装飾品を3つ装備することが可能になる。

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

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

1 2 3 4 5 6 7

月別アーカイブ

限定特典から探す

記事を検索