アコニック・ランド:雑談系:ゲームシステム関連の考察とか

ゲームシステム関連の考察とか

主にRPG
※素人による独自研究的な内容が殆どですので、くれぐれも鵜呑みにはしないようご注意を…。

アルテリオス計算式
環状構造を持つ迷路
貫通力(防御突破力)
クリティカル
クリティカルアップ効果
経験値とドーピング
固定値と割合の中間
最大レベル到達時に経験値が隠れる件
サブキーの代用としてのテンキー5の勧め
Shiftキー使用の非推奨
剰余の勧め
セーブ/ロード画面作成上の注意点
多段クリティカル
詰み
難易度
反射・吸収四相
HPとMPの名称
不具合
歩行ダメージによる詰み
防御力
防御力と防御態勢
見易さとリアリティ
ランダムエンカウント率
ランダムの扱い

ツクールMVのプラグイン作成関連はこちらへ移動しました。


アルテリオス計算式

世間では「ダメージ=攻撃力−防御力」という計算式が、
アルテリオスというゲームに因んで、アルテリオス計算式と呼ばれているそうです。
そしてこの式は、バランスブレイクし易いという事で有名なようです。

ただ、ドラクエやツクールでも用いられている
「ダメージ=(攻撃力−防御力÷2)÷2」といった計算式も、
本質的には同じもの、つまり同様のバランスブレイクを起こし得るという点に注意が必要です。
例えば、この式で攻撃力8、防御力8という状態は、
アルテリオス計算式では攻撃力4、防御力2という状態と等価となります。

ドラクエの計算式であっても、レベルアップ等によって防御力が攻撃力の2倍上昇するようなら、
アルテリオス計算式と同じ結果となりますし、アルテリオス計算式であっても、
防御力の上昇が攻撃力の半分ならば、ドラクエ式と同様の結果となります。

両者の違いは、例えば平均の攻撃力が100である状態で、平均の防御力が50なのは気持ち悪いとか、
最大値はどちらも9999に合わせたいとか、そういった場合に、こういった計算式の調整が役に立ちます。
要は、式単体ではなく、攻撃力に対する防御力の比率との兼ね合いが重要というわけです。

どちらの式も、「ダメージ=定数A×攻撃力−定数B×防御力」という形で表現できます。
アルテリオス計算式の場合はA=B=1であり、ドラクエ式の場合はA=1/2、B=1/4となります。
防御力によるバランスブレイクを根本的に解決するには、この式の形自体を見直す必要があります
(その辺については別項で考察してます)。

2021.8.13


環状構造を持つ迷路

ダンジョン探索の難易度は、環状の構造を持つか否かで格段に変わります。
ループ構造があると、「片方の手を壁に付けて…」という手が通用しなくなりますからね。
あえて難易度を上げようという意図があるわけでなければ、
こういう構造を作るのは最小限に留めた方が良いです。

とは言っても、一画面で全てを見渡せるような場合は、全く支障にはならないと思いますし、
ケースバイケースです。
特に問題となるのは、探索の障害が常時付き纏う場合です。
定番としては、敵とエンカウントする機会が多数あり、しかも通常のRPGのように、
戦闘で画面が切り替わるような場合です。
自分はこういう場合、戦闘に熱中している間に、どこをどう探索しているのか忘れてしまう事がよくあります。

2015.7.16-2019.9.9


貫通力(防御突破力)

ダメージ計算の方法として、「(攻め側の)攻撃力−(受け側の)防御力÷2」という式がよく用いられます。
ただこの方式では、ダメージを割り増ししたいだけの場合や、防御力による無双を防ぎたいだけの場合には不便です。
実はこの式は、攻撃力がHPと防御力を同時に相手取ってる形となっています。
攻撃力×(1−防御力÷攻撃力÷2)」と変形する事により、それが如実に現れます。
攻撃力と防御力が共に倍になった場合に、ダメージが2倍となっている事からもこれが伺えます。
これは、攻撃力2倍の効果が、防御力2倍だけでは打ち消し切れない事を意味しています。

そこで、攻撃力の内の、HPと対峙する部分と、防御力に対峙する部分とを分離し、
後者を仮に貫通力と呼ぶと「攻撃力×(1−防御力÷貫通力÷2)」となります。
これなら、攻撃力と貫通力が共に倍化すれば従来の攻撃力倍化効果と同じ結果を得られ、
更に片方のみ変化する事によって、先の不便も解消されます。
防御力はインフレでバランスを壊し易いデリケートな要素ですが、
この方式ならば、防御力と貫通力の関係をデリケートに設定した一方で、
攻撃力とHPの関係をガンガンインフレという事も可能となります。

これこそが「攻撃力−防御力÷2」の本来の姿なのではないかと思います。
光電効果やギアチェンジにも通じる所があります。
うちで公開しているRAMEN21とCUSSHELでもこの方式を当初から用いてたりします。
防御力の式自体を変更する場合にも、それに応じて貫通力を定義できます。

ただ、パラメータが多くなるとその分煩雑にはなりますし、魔法攻撃力も魔法貫通力とに分けるのかって話も
出て来てしまいますので、簡単のためにあえて統合してあるのかもしれません。
防御力は単独でもバランスブレイカーなパラメータですし、対して貫通力は同格以下の相手に対しては
上げても効果の薄いパラメータなので、攻撃力とまとめて丁度バランスが取れる所もあるのかもしれません。

似たような関係を持つものとして、攻撃回数⇔攻撃力があります。
こちらはカンスト的な問題を除くと、攻撃力倍増が攻撃回数倍増よりも常に強い事になってしまいますし、
共に増えればダメージがどこまでも二乗比例してしまうためにバランスブレイク要因にもなりますが、
近いものを分かり易く再現した方法と言えると思います。

2017.9.4-19


クリティカル

RPGのバトルではクリティカル(会心/痛恨)というのは定番のお楽しみ要素だと思うが、
いざ導入しようと思うと、どういう位置付けにしようか大分悩む。
真っ先に思うのは「命中しなかった」の反対と言う位置づけだが、その場合、
効果としては「2回当たった」に相当するもの、つまりダメージ倍増型が妥当そうになって来る。
これは「命中しなかった」による穴をそのままクリティカルの際に持って来る形となっている。
しかしこれでは、防御力(減算型)が高くて攻撃の通じない相手に対しては、クリティカルは出ない。0を倍にしても0だから。
クリティカルというものは、堅い相手に出てこそというイメージが無いだろうか。
ツクール作品の場合はこのタイプが多いが、クリティカルと言うよりダブルヒットと言った方が良いかと思う。

クリティカルの効果のもう一つの大きな流派として、防御力無視型がある。
これは単純な倍率でない点、計算に組み込もうとすると結構難しい。
また、防御力と攻撃力がせめぎ合ってる状況下では、クリティカル=一撃必殺みたいな状態となり、
戦闘を著しく不安定にしてしまうかもしれない。
クリティカル率が100%になると、防御力がデッドステータス化して来る点にも注意が要る。
一方、防御力というものもまたバランスブレイカーな所があり、一方的な戦いや千日手状態を生み易い。
防御力無視型のクリティカルは、上手く使えばそれを中和してくれるかもしれない。
回避性能も、物によっては防御力同様の事が起こるので、そういう場合は
「クリティカル判定に成功したら必中」とするのも良いかもしれない。
単純な防御力無視の場合、防御力が紙の相手にクリティカルを出しても、
ダメージに大差が出ない事になり、なんだか少しさみしいが、
ドラクエでは主に「守備力無視の上でのダメージ倍増」となってるらしい。

両者の折衷的なものとしてはまず、「防御力を半分で計算した上でのダメージ1.5倍」的なものが考えられるが、
クリティカルでもダメージが出ないという状況は復活してしまう。
そこで提案したいのが、「通常時のダメージ+防御無視でのダメージ」という形。
これならば、固過ぎる相手には(クリティカルで)防御無視ダメージ、ゼロ装甲の相手には二倍ダメージとなり、
それなりに安定するかもしれない。各々に適当な係数を付けて調整するのも良いと思う。
例えば「通常時のダメージ×1.5+防御無視でのダメージ×0.5」とすれば、
ゼロ装甲の相手へのダメージは二倍のままだが、固過ぎる相手に対するダメージは半分になる。
千日手を防ぐ意味では、ターン経過などによってクリティカルが出易くなったりするのも使えるかもしれない。

余談ながら、クリティカルの具体的なイメージに関して、大きく二通り見られる。
一つは、鋭い武器による急所への命中、もう一つは、重い武器の直撃。
後者は普通に、命中率が低くて攻撃力が高い感じでも良い気がするが、
割と相反するイメージのものが共にクリティカルとされてるのはなんか興味深い。

2015.2.22-2017.5.21


クリティカルアップ効果

プラスのステータス異常として、攻撃力上昇という効果はよく用いられるが、
クリティカル率上昇という効果も割とよく見かける。
ただ、この効果について少し注意すべき点は、「クリティカル率倍増」では一般的に、
「攻撃力倍増」よりもはるかにしょぼいという事。
特にクリティカルの効果がダメージ倍増型の場合は圧倒的で、
クリティカルのダメージよりも攻撃力二倍時の非クリティカルダメージの方がまず大きく、
攻撃力二倍の場合はその上で更にクリティカルが出せるため、
例えクリティカル率が100%になったとしても、攻撃力倍増には敵わない。
クリティカルの効果が防御力無視型である場合も、クリティカル率が倍化した所で、与えるダメージの平均に
大差はない場合が多く、防御がやたら高い特殊な相手以外に対してはあまり意味が無い。
この効果を設ける場合、クリティカル率の上昇率を上げたり、クリティカル率を加算する形にする他、
クリティカルの効果そのものを上昇する効果を加えるのも手かと思う。

2017.3.24


経験値とドーピング

経験値を溜めてレベルアップする方式と、値段も効果も固定のドーピングアイテムによって能力強化する方式とでは、
大きく勝手の違う所があります。
ドーピング式は、自分で能力配分を構成する事ができるというのが楽しいですが、
どうもそれだけというわけには行きません。
通常、同じ敵と戦っていると、レベルアップの頻度はどんどん下がって行きますが、
レベルアップ毎に上がる能力はだいたい一定です。
ドーピング式の場合をこれに例えると、レベルアップの頻度が落ちない事に相当しています。

そしてレベルアップ式では、強い敵程沢山の経験値を落としますが、ド―イング式で同様の事をすると、
ただでさえ落ちないレベルアップ頻度を更に加速させるわけで、激しいインフレが起こります。
レベルアップ式と同様にするには、敵が落とすお金などを、敵の強さに関わらず一定にする必要が出てます。
ただ、強い敵を倒しても利益が同じってのは微妙に物足りなさを感じさせる所だと思います。
ドーピング式は、自由度の高さの分に加え、その辺との折り合いもまた大変な所なのかもしれません。

これに対して、ドーピングアイテムが買う毎に値上げされるものや、各ステータス毎に経験値&レベル的なものがあって、
ドーピングによってその経験値を増やすみたいな方式もあり、これなら通常のレベル式と同様になります。
一方、ゲームバランスが尖ってたりインフレが激しい方が面白い事も結構あると思います。

2017.9.12


固定値と割合の中間

回復量や消費量などで、固定値と割合という概念がよく使われますが、
これらってなんか両極端な感じがしないでしょうか。

例えば、MPというのは、最強の技を好き放題に使えるような状態になって来ると、
もはや上げる意味がなくなってきます。
これに対し、様々な対策をして、余分な最大MPを生かしている例も有りますが、
具合悪い例として、上級技のMP消費量を割合にしてしまうというのが有ります。
これではもはや、最大MPを増やす意味が全く無くなってしまいます。
(MP回復アイテムの回復量が固定値なために、上げた方が不利になってしまってるという例も
有りますが、それはまた別の注意点です)

「固定値+割合」はこの中間に位置し、これを上手く使うのも手だと思いますが、
もう一つお勧めしたいのが「平方根に比例」です。

消費量を、最大MPの平方根に比例とした場合、最大MPを増やす事に意義のある期間を
結構延ばせそうです。
消費MPが固定値の技は、最大MPが25倍になれば、25倍回使えるようになりますが、
この方式の場合、5倍回使えるに留まりますし、81倍になっても9倍です。
また、「固定値+割合」では、割合で決められた数以上は、MPが何億倍になっても
上がりませんが、こちらは固定値の場合同様、無限に上がって行きます。
「固定値+割合」は、両者の厳しい所を併せ持っている感が有ります。

どう中間なのかという理屈としては、
固定値の場合は「消費量=固定値」
割合の場合は「消費量=最大×割合/100」
という式になっていますが、これらをこう書き換えると解り易いです。
 消費量=最大×固定値
 消費量=最大×(割合/100)
つまり、両者は
 消費量=最大×A
という同じ形で現されます。そして、nに0.5を用いた物が、
この「平方根に比例」なわけです。
割合が100分率指定ならば、こちらは10分率で指定するのが妥当かもしれません。
なお、「固定値+割合」は相加平均、こちらは相乗平均に相当します。

弱点としては、乱用し過ぎたら重そう、日常的な感覚ではかなり掴み難そう、
というのが有ります。

2013.4.11-21


最大レベル到達時に経験値が隠れる件

ツクールの昔からの仕様なのか、最高レベルになると次のレベルまでの経験値が----になるのはわかるが、
現在の経験値までがなぜか----になってしまう例がツクールゲーに多い。
そこは記念的なものとしてちゃんと数値出して欲しい。

2016.12.22


サブキーの代用としてのテンキー5の勧め

最近のフリーRPGでは、決定キーとしてZ(またはC)、キャンセルキーとしてX、
補助キーとしてC(またはZ)が使われる例を良く見る。
その内決定はエンター、キャンセルはテンキー0で代用ができるのが結構標準的になってるから、
ここまでなら片手だけでの操作ができて便利なんだけど、
なぜか補助キーだけはテンキーで代用できる例を見た事が無い。
補助キーを使うものの場合、そのためだけに左手も使わねばならず、無駄な不便さを感じる。
テンキー5で代用するのが凄く安定するから、設定が可能なものの場合はそれでやってる。
テンキー5が不可な場合はテンキー+でも行ける。
凄く便利だから、普及してても良いと思うんだけど、キーボードプレイヤー自体が少数派なのかな。
中途半端な片手操作対応なんだよな…。
ちなみにPgUpとPgDownは普通に手が届くから問題無し。

2015.8.18


Shiftキー使用の非推奨

《※自前でアプリケーションレベルから作る場合の話です》

ゲームで使うキーとして、Shiftキーは推奨できません。

ツクールVXのゲームでよく、Shiftを押しながらでダッシュになる物がありますが、
自分の環境では歴代、Shiftキーを押しながら他のキーを押してると、
特定のキーが押しっぱなしのような状況になってしまい、どうにもならないので、
F1で出て来る設定で、CにShiftと同じ機能を当て、
Cで代用してます(ツクールXPならデフォルトでそうなってるのですが。
そもそも、常時ダッシュキーを押してるようなゲームでは、ダッシュの速度をデフォにすれば
良い気がしますが…。無駄に指が疲れる感が。パッドなら苦にならないかもしれないけど)。

他にも、Shiftキーを押しっぱなしだと何か出る環境は沢山あります。
こちらはPCの設定次第でなんとかなりますが、そこまでさせるのは好ましく無いと思います。

2014.1.7


剰余の勧め

プログラムに慣れてるかたにとってはお馴染みの物だと思いますが、
ここではツクール等から入ったかた向けに記述してみます。
「剰余」って聞き慣れない言葉で難しい印象があるかもしれませんが、
要は割り算における「余り」の事です。
割り算が理解できれば、決して難しいものではありません。
そしてこの「剰余」、中学生以降の数学ではあまり出番の無くなるものではありますが、
実はかなり応用範囲が広いので、慣れ親しんでおくのがお勧めです。

例えば、剰余を用いる事によって、以下の事が簡単にできるようになります。
●一の位だけを出す(59→9、120→0など)
●値をループさせる(0→1→2→3→0など)
●倍数か否かの判定
●ランダム要素において、同じ結果が連続して出るのを避ける

まず、「7を5で剰余」というのは、「7を5で割った余りを出す」事を意味しており、
結果は2となります。
「7を5で割る」が「7÷5」と表現されるのに対し、この「7を5で剰余」というのは、
プログラム上ではよく「7%5」あるいは「7 mod 5」と表現されますので、
この表現に慣れておくと把握し易くなると思います。

例についての具体的な方法ですが、1つ目については「10で剰余」で行けます。
もし十の位を出したい場合は、「10で除算した後に10で剰余」となり、
百の位を出したい場合は、「100で除算した後に10で剰余」となります。

2つ目の例については、「1を加算した後に4で剰余」によって実現できます。
「0〜8」の間でループさせたい場合は、「1を加算した後に9で剰余」となります。
つまり、「1を加算した後に『最大の値+1』で剰余」というわけです。
これはカーソルで選択するような機能を手製で実装する際にも便利です。
また、「0→3→2→1→0」のように逆方向にループさせたい場合は、「3を加算した後に4で剰余」します。
一般的には、「『最大の値』を加算した後に『最大の値+1』で剰余」となります。

これを、1〜4のように、0以外の値から始まる形でループさせる場合は、もう少し複雑な形となり、
正方向なら「『最小の値』で減算した後に、1を加算し、『最大の値−最小の値+1』で剰余、更に『最小の値』を加算」、
逆方向なら「『最小の値』で減算した後に、『最大の値−最小の値』を加算し、『最大の値−最小の値+1』で剰余、更に『最小の値』を加算」
となります。
0から始まる場合との違いは、最初に「『最小の値』で減算」が、最後に「『最小の値』で加算」が加わっている事と、
「最大の値」が「最大の値−最小の値」に置き換わっている事です。

3つ目については、7の倍数なら「7で剰余した結果が0である」によって行けます。
倍数なら、余りは出ませんからね。
12の倍数なら「12で剰余した結果が0である」となります。

4つ目については、乱数の値が0〜5であるならば、まず前回の結果を変数Aに記憶しておきます。
次に1〜5の乱数を発生させ、これをAに加算し、6で剰余します。
一般的には、「1〜『最大の数』の乱数を、前回の結果に足し、『最大の値+1』で剰余」となります。
これも、0以外の値から始めるとなると、ループの場合と同様の変更が必要となります。

2019.9.16


セーブ/ロード画面作成上の注意点

以下一点です。

●セーブ画面を開いた際、前回選択(セーブ・ロード問わず)したデータが初期選択となっている事

ツクールのデフォルトのセーブ画面はこの辺は対応しているのですが、
凝ったスクリプトを利用した物、自作プログラムの物では、
初期選択を常にデータ1としてしまっているものが度々見られます。

この仕様は、場面毎にセーブ場所をマメに変えて行く人キラーです。
また、別々の人が別々のセーブ枠を使っているという場合にも障害になります。
まず、毎回15とかまでカーソルを進めなければならない手間。
そして、これによりうっかりデータ1を上書きしてしまった事が何度有るか…。

ついでに、起動直後のロード画面での初期選択も、「一番新しいデータ」の所にしておくのがお勧めです。
最後にロードまたはセーブしたデータにしておくのも良いと思います。

2013.4.21-2018.7.17


多段クリティカル

クリティカルや会心はどうせあるなら2段階くらいあった方がロマンがあると思います。
ノーマル、クリティカル、第二クリティカル(幻の超クリティカル)の3段階という形です。
特にクリティカル率100%くらいになって来ると、クリティカルを出す楽しみが無くなって来て、
物足りなさを感じた事はないでしょうか。
一方、あんまり段階が多過ぎても有難味が薄くなって来る気がします。

で、多段クリティカルの発生率の計算方法なんですが、
クリティカル率が固定の場合は、同じ判定を二度繰り返すくらいでまぁ妥当そうに思います。
サイコロを振って、1が出たらクリティカル、続けて振ってもう一度1が出たら第二クリティカルという具合です。

しかし、クリティカル率がステータスなどに依存して来ると不十分さが目立って来ると思います。
例えば、クリティカル率が100%になった場合、同時に第二クリティカル率も100%となります。
これでは最初の問題を全然解決してません。
クリティカル率が100%になったら、当初のクリティカルの確率で第二クリティカル率が出るくらいに
なるのが望ましいと思います。

そこでまず、第二クリティカル率をクリティカル率に対して固定とする方法があげられます。
ただこの場合、クリティカル率がこの比率より低い場合には、
クリティカルに対する第二クリティカルの発生率が、ノーマルに対するクリティカルの発生率よりも大きい事になり、
微妙に有難味が薄くなる気がします。

個人的には、この二つを組み合わせた方法、即ち
ノーマルに対する第二クリティカル率=min(クリティカル率^2,固定比率×クリティカル率)
クリティカルに対する第二クリティカル率=min(クリティカル率,固定比率)
という感じが妥当ではないかと思います。

ただこの方法、クリティカルの段階数を更に増やすとなるとやや不十分な点が出て来ます。
固定比率<クリティカル率の状態では、第二クリティカルはクリティカル率の二乗に、
第三クリティカルはクリティカル率の三乗に比例する形となりますが、
これが固定比率=クリティカルでどれもクリティカル率に一乗比例となってしまいます。
「クリティカル率が100%の時に第二クリティカルが当初のクリティカルの代わりのように働く」
という形を追及する上では、この時第三クリティカルは当初の第二クリティカルの代わりに
働く形となるのが望ましく、つまりこの時点では第三クリティカルはクリティカル率の
二乗に比例する形となっているべきです。
ここまで実現するのはなかなか困難だと思います…。
ノーマルに対する第nクリティカル率=min(k=1〜n)(クリティカル率^k×固定比率^(n−k))
みたいな感じになりそうではあるんですけどねぇ。

一方、第三クリティカルともなると、クリティカル率が100%になって初めて
出現するようになるくらいの方が良いかもしれません。
第二クリティカルのお陰で、クリティカルを出す楽しみを保つ事はできても、
第最大クリティカルを出す楽しみは無くなるわけですからね。

他、第二クリティカル率を、クリティカル率×固定比率にする形もあると思います。
ただ、(ステータスの上がり方などにもよりますが)これだと逆に低くなり過ぎな気もします。
また、通常時に対する第二クリティカルの発生率が、クリティカル率よりも早いスピードで
上がる事にも注意してください。
例えば、クリティカル率が10倍になれば、ノーマルに対する第二クリティカル率は100倍、
第三クリティカル率は1000倍となります。

2016.1.29


詰み

セーブには「詰み」の危険性が付き纏います。
どこでもセーブの場合は勿論、セーブポイントを設ける場合にも要注意です。
特に、全滅するとゲームオーバーになる場合はこれが多いです。
昨今、小まめにセーブを分ける事は普通だとは思いますが、
安心して上書きセーブできるような設計を心掛ける事も大切だと思います。
ここでは詰みの原因となる主な例を列挙しようと思います。

●追跡タイプの歩行キャラに袋小路に追い詰められる、或いは包囲される。
対策:NPCが入れない床を適宜配置する、時々ランダムに動くようにする、押し出しを可能にする、など。

●出口に通じる長い一本道を、出口の所までしか行けないランダム歩行キャラに塞がれる。
対策:同上。

●負けたらイベントが進んだり脱出できたりする状況で、負ける事ができない。
対策:一定ターン後に強制戦闘終了など。

●脱出・進行のために必要なものが無い状況があり(未入手のまま行く手段がある、紛失する手段があるなど)、かつ補給する手段も無い。

●エンディング直行しかできない状態でセーブができる(自由に世界を回れるタイプの作品で、世界を回れなくなる)。
対策:その状態ではセーブをできないようにする、時間をそれ以前に巻き戻す機能を設ける、など。

(以下はゲームオーバー有りの場合)

●毒状態やダメージ床による歩行時のダメージにより、回復手段にありつく前に全滅。
対策:「歩行ダメージによる詰み」を参照。

●絶対勝てない敵シンボルに逃げ道を塞がれ、戦闘から逃走しても通過ができない。
対策:逃走成功した際には、シンボル消去、もしくは一時的に通過可能とする。

●特定歩数後に絶対発生する絶対勝てない&逃げられないランダムエンカウント(ツクール作品のランダムエンカウントはそういう仕様のため要注意)。
対策:逃走率に下限を設け、「絶対に逃げられない」という現象を避ける。

●ボス戦しかできない状況で、レベル上げや回復・補給の手段が無い。
対策:「時間を少し戻す」的な救済処置を設けるなど。

2017.9.16-2018.7.27


難易度

ゲーム制作において、難易度設定というのもとても難しい問題だと思います。
純粋なアクションとかなら、自分でプレイして調整という手もありますが、
謎解きの類や、隠しパラメータが多い場合は、そうも行かないのが厄介です。
他の人にプレイして貰って、その様子を見ない限り、わからない事は結構あると思います。

そこでプレイする側も、感想の際に単に「難しかった」と言うだけではなく、
どこがどう難しかったのか、どのようにプレイしてどのように詰んだのか、
そこを詳細に述べた方が良いと思います。
そうしないと、作者はどこをどう改善したら良いのかの見当も付きません。
全く見当違いな改善という名の改悪が行われてしまうかもしれません。
その点、初見プレイ動画というのは、とても貴重なデータになる所もあると思います。

自分なんかはそういった報告を全くという程貰った事がないので、作者側としても、
参考になる報告が貰えたら、有り難いものだと認識して欲しいと思います。
ただ、ヌルゲーマーの意見とマゾゲーマーの意見、片方に偏って聞き過ぎるのは危険だと思います。
ニコ動で付いているコメントの場合、エアプレイヤー層によるものも多そうですので、それも要注意点だと思います。

2018.4.17-2019.9.16


反射・吸収四相

「攻撃をすると自分もダメージを受ける」という諸刃タイプ、
「攻撃をすると自分は回復をする」という吸血タイプ、
「攻撃をされると相手にダメージを与える」という針鼠タイプはよく有りますが、
この系統の中ではもう一つ、
「攻撃をされると相手が回復する」というタイプが考えられます。
諸刃を相克効果と呼ぶならば、相生効果と呼べるものです。

武器や技防具や状態
吸収型ダメージを与えると、自分は回復をする
【有利な効果】
ダメージを受けると、相手は回復する
【不利な効果】
反射型ダメージを与えると、自分もダメージを受ける
【不利な効果】
ダメージを受けると、相手にもダメージを与える
【有利な効果】

しかし、自分の経験ではこういうタイプの防具・態勢は見た事が有りません。
相手を回復させてしまってでも守りを固めたい場合に使用する物と言う感じで、
使えない事も無いと思うのですが、大抵、受けるダメージより与えるダメージの方が
極端に大きいですので、不利な要素とするには、受けたダメージよりも与えた回復量の方が
大きいとか、仲間を攻撃する事で大回復という、不自然な状況になるかもしれません。

2011.5.7-2013.4.11


HPとMPの名称

ライフを表す量として、HP(ヒットポイント)がなぜか広く浸透していますが、
パッと見何の事か解らないし、命中率と紛らわしいと思います。
日常では「ヒット」などとは呼ばず、「体力」等と呼んで無いでしょうか。
それゆえ、代わりにVP(バイタルポイント)を良く使います(一応自分で考えましたが、
1988年の貝獣物語の時点で既に存在していたようです)。

ただ体力と言うと、次のMP的な要素と被る気もしますし、直接的に屈強で肉体的な
イメージな気もします。HPはゲームバランス上、屈強というわけでは無いキャラにも
大きく振る必要がよく出ます。そこで、カードゲームでよく見るLP(ライフポイント)
の方がより適当にも思えます。
耐久性という意味でTP(タフポイント)というのもできそうですが、TPは別の意味で
使われる事が多いそうな。

技の使用可能回数的な量として、MP(マジックポイント/マジックパワー)もよく浸透
していますが、言うまでも無く、マジック以外の技に対しては使えないのが困り物です。
一時期はSP(スキルポイント)が良く使われていたようで、これなら適用範囲が広がり、
問題無さそうです(スペルポイントの場合はMPと同義だと思いますが)。

MPと言うと、魔法力というファンタジーな概念に思えますが、日常にも似た物を
よく見ているはずです。体力や燃料です。
そういう意味で、自分はEP(エネルギーポイント/エナジーポイント)を良く使います。
時間毎のエネルギーがパワーとなるので、PP(パワーポイント)と類義かもしれません。
我々は首を切られても死にますが、エネルギーが尽きても死にますから、
いわゆる魔法生物の特性を併せ持っています。
ただ、LPに対してEPを並べると、Eから二本消したらLになってしまうからか、
字形のバランス的に微妙な気もします。気のせいですかねぇ…。

エネルギーというと、直接的というか、科学的で厳密な感じがするかもしれませんので、
もう少し汎用性を求めると、行動と言う意味でAP(アクションポイント)辺りが
より妥当な気もします。

HPをヘルスポイント、MPをマインドポイント/メンタルポイントとする事も有り、
面白い解釈とは思いますが(ハートポイント&ミラクルポイントというのも有り?)、
そこまでしてHP・MPという表記を重んじる事は無いと思います。
そもそもPに拘る事も無いかもしれません。

2013.2.8-2014.3.29


不具合

個人製作のフリーゲームにおける不具合というものについて、
しばしば誤解があるような気がしていますので、
それについての個人的な雑感をまとめてみました。

●不具合は恥でも罪でも無い
不具合が発生するのはむしろ当然の事です。
市販のゲームでも、多くのテストプレイヤーが居てなおバグが残ってる事がよくあります。
自分がプレイして来た作品は、むしろ不具合等の存在するものが殆どでした。

ゲームというのは通常、何かしらの自由度がありますが、それは時に無数の分岐を生みます。
その分岐を全て把握しチェックするのは、作者一人ではまず無理です。
また、一部を変更する事で、意外な所に皺寄せ的に不具合が発生する事もあります。
何かを変更する度に全ての要素をチェックするのが理想的ではありますが、
それでは時間が幾らあっても足りません。

もしかしたら中には、「クレーム」や「ダメ出し」のつもりで不具合報告する人も居るかもしれませんが、
殆どの人は善意でしているのではないかと思いますし、どちらにしてもあまり重く受け取る必要はありません。
配布サイトによっては、不具合を報告する機能が付いてるくらいですし。

とは言え、「一旦通してプレイしてみる」というのはサボらない方が良いと思います。
また、不具合報告をされるのが嫌な場合は、その旨を明示しておく事を推奨します。

●不具合を直す必要は無い
有料で配布してる場合はそうも行かないかもしれませんが、こういうのは本来個人の自由です。
不具合を報告する人の多くも、「直せ」という強要のつもりで報告しているのではなく、
単純に情報を提供したいだけかもしれません。
ただ…重大な不具合や仕様欠陥によって、折角の作品の本来の魅力を、
手に取った者が十分に味わう事ができないというのは、非常に勿体無い事だという事は記しておきたいです。

●不具合を直さない必要も無い
しばしば「修正すると鬱陶しがられる」「過去作に固執してると思われる」
「更新と言うからには新しい要素も付けないと納得されないだろう」的な理由から、
不具合を修正しない例があるような気がしています。
しかし、幾ら過去の作品に対しても、精力的に修正のみの更新をされてる作者さんも結構居ます。

また、世のバージョンアップというのは、不具合修正のみである事がむしろ大半であり、
新しい要素を追加するなどの事は、決して必須ではありません。
重大な不具合によって進行ができずに苦しんでるプレイヤーの事を考えれば、
不具合修正だけでも、更新した方が喜ばれるに決まってると思います。
少なくとも、不具合を直さないのは美徳の類では無いと思います。
自己満足で制作してるかたならまだしも、楽しんで貰う事を大切に思ってるのならば、
尚更直さない手は無いはずです。

尤も、Vectorやふりーむ!のような公共的なサイト上の場合、「微細な修正のためだけに
短期間に何度も更新をする」というのは、知名度向上のための工作とも取られかねないですし、
具合悪いかもしれません。
それでも、一ヶ月に一度程度なら良いと思います。
また、要素の追加を伴う更新がメインだった場合は、不具合の修正のみであるという点は、
DL前の段階の部分でも明示した方が無難かもしれません。

●不具合が報告されるのは当たり前の事ではない
ある程度の有名人となると、不具合が報告されるのは日常茶飯事かもしれませんが、
自分は2019/9/9現在、生涯において不具合報告というものを一切受けた事がありません。
割と重大な不具合を何年も放置してしまってた事もあります…。

これはあくまで過激思想の部類かもしれませんし、殆どの人は賛同しないとは思いますが、
有用な報告の一つでもしてくれた人は、既にテストプレイヤーと言っても過言ではないと思います。
「自らの作品をより完成度の高いものにするために直接的な協力をしてくれた人」である事に違いは無いはずです。
制作途中の作品に対しては尚の事です。
正規のテストプレイヤーと区別する必要がある場合は、「デバッグ協力」みたいな枠を設けてはどうかと思います。
(自分の場合、普段はそういうつもりで不具合報告してるわけではありませんが、報告量が半端なくなって来ると
「自分は実質デバッガの一員なのではないか」という自負が生まれて来てしまったりします…)

また、不具合を報告しないのは、決して怠惰によるものとは限りません。
不具合報告というものも喜ばれるとは限りませんし、要らぬ報告をして嫌われたり、
やる気を削ぐ結果になる事を恐れての場合も多いのではないかと思います。

●【報告者向け】ソフト以外では同様の報告は慎む
まず、以上は「ダメ出し」や「クレーム」を推奨する内容ではありません。
当然ながら、報告にあたっても「お客様の権利だ」などという尊大な態度ではなく、
相手を人として尊重する真摯な気持ちを持って報告すべきです。

また、ソフトに対する不具合報告と、イラストや漫画に対するエラーや誤字の報告とは、
少々事情が違っており、後者は歓迎されない場合が多い様子があります。
どう違うか説明するのは難しいですが、ソフトと比べると修正が困難だったり、
そのまま差し替える事ができなかったりする事が多いというのも一因のようです。
そういった報告は、ソフトに対してくらいに留めておくのが無難です。

ソフトに対する場合でも、相手が嫌だと言ってたら慎むべきです。
特殊な場合を除き、相手が嫌がる事をしないというのは人としての基本です。
相手が不具合を修正しない場合は、歓迎されてないと判断するのが賢明かもしれません。

2019.9.9-10.23


歩行ダメージによる詰み

RPGにおいて、マップを移動中に、毒や地形によってダメージを受ける事がありますが、
このダメージによるゲームオーバーが可能の場合、詰む危険が出るので、扱いには細心の
注意が必要です。

例えば、どこでもセーブが可能な場合ならば、毒を回復する手段が無い&残りライフが僅かな状態で
セーブをしてしまうと詰みます。回復機能の無いセーブポイントも同様です。

ドラクエの場合は、歩行ダメージで全滅できる代わりに、ゲームーオーバーが有りません。
FF4の場合は、ゲームオーバーが有る代わりに、歩行ダメージではHP1未満にはなりません。
他、セーブが可能な状態において、帰還(+無事に回復)も必ず可能とするのも手だと思います。

2013.10.2-2014.4.20


防御力

RPGには大抵、しぶとさに関わるパラメータとして、HPと共に防御力が存在してますが、
防御力はHPに比べるととても繊細に設定されているように思います。
通常は「ダメージ=攻撃力−防御力÷2」のような引き算の形となっていますが、
ここで防御力が相手の攻撃力と等しい場合、(回復とか抜きにすると)HPを9倍にしても
9倍持ち堪えられるようになるだけなのに対し、防御力は2倍になっただけで無双状態になりますので、
繊細にもなるわけです。
なので、インフレの激しい作品や、ステータスを自由に上げられるタイプの作品の場合は
バランスブレイクを起こし易いです。
インフレ対策としては、貫通力の話で述べた貫通力を導入し、HPと攻撃力の伸びをそのままにした上で、
防御力と貫通力の伸びを累乗根的に抑えるというのも手だと思います。

そもそも「攻撃力−防御力÷2」という引き算の式も本当に正当なのか、
根拠に乏しく思う部分があります。
引き算は解り易くてオーバーフローも避けられるので、
TRPG上や古いコンピューター上では妥当だったのだろうと思いますが、
防御力が一定以上では色々補正しないと無双になってしまうのが、
アクションゲームとかならともかくRPG的には微妙な気がします。
防御力>攻撃力×2ではそのままでは負の値になってしまうので、
実際には「max(攻撃力−防御力÷2, 0)」としなければならないというのも、
なんか綺麗でないような気がします。
÷2というのも取って付けた感が有ります。
防御力無視効果でもなければ、HPを1増やすよりも防御力を2増やす方が常に有利となる点も、
パラメータの個性化が不完全な感じがします。

この減算による計算では、防御力は一定以下の攻撃を急峻的に減ずるフィルタのような性質を持っています。
貫通力の所でも述べたように、この式は本質的には「攻撃力×(1−防御力÷攻撃力÷2)」であると思います。
この「1−防御力÷攻撃力÷2」の部分がフィルタとしての役割を持っています。
類似の計算は他にも無数に考える事ができ、その一つに、電気回路のフィルタなどで出て来る式を応用した
「攻撃力÷(1+(防御力÷攻撃力))」があります。
これならば、色々補正をしなくてもダメージは攻撃力>0で常に0以上となり、
防御力≫攻撃力で二乗反比例的に0に近づいて行く形となります。
ただ、防御力が攻撃力に対して一定以下では、防御力の影響が更に微妙になり、
逆に攻撃力の直前辺りでは更に急峻的になります。

フィルタ的な性格が強いと、同格以上の敵と戦う場合にはあまり目立った効果を見せず、
格下を無双するためのステータスとして働く傾向となります。
これを究極化すると、防御力が攻撃力超ならばダメージ0で、逆なら防御力の影響ゼロという具合になります。
すると、ダメージが通らなくて絶対に敵わなかった敵が、あるレベルを境にあっさり倒せてしまう、
てな事になり、そこまで来ると特殊な場合を除いてだいぶ味気ない感じになって来ます。
(先程の式の2乗を∞乗にするとそうなります。一方、1乗にしてしまうと、
防御力がHPの劣化パラメータのようになってしまいます)
いずれにしても、高いとすぐ無双的になる一方で、HPや攻撃力・貫通力とは異なり、
0であっても致命的では無いという点も気になるポイントです。

防御力は、元々はフィルタという側面よりも、強さに伴うHPやダメージの膨大化を抑えるためのものという側面と、
防具の付け替えによって、残りHPを変えずにしぶとさだけを変えるためのものという側面の方が
強いのではないかとも思います。
それだけならば、「攻撃力÷防御力」という除算の式も利用できそうです。
この場合の防御力はHPと同等の働きをしますが、HP・攻撃力・防御力が共に増えて行くと、
インフレしても与えられるダメージに変化が無く、HPが増えた分戦闘がどんどん長引く事になります。
そのため、「攻撃力×攻撃力÷防御力」のようにするか、攻撃回数を導入して、
これも増やして行くようにする必要が出て来ると思います。

2017.9.17


防御力と防御態勢

RPGでよく見かけるステータス名「防御力」、大抵は減算的な働きをする。
しかし、同じくよく見るアクションコマンド「防御」は、ダメージを半減等、
除算的な働きをし、同じ防御と言う名を使いながら、全く別の働きをしている。
防御という行動に、防御力は影響を起こさないのだ。

そして、「防御無視」と言われた時には、防御力を無視するのか、防御(態勢)を
無視するのか解らない事が有る。
それを考慮してかどうかは知らないが、ドラクエでは防御力は「守備力」「身の守り」
となっていた。
それを引き継ぎ、減算的な働きのパラメータを守備力、除算的な働きのパラメータを
防御力としたらどうか。

しかし思えば、防御態勢の効果が守備力と全く別というのも、
ゲーム的な都合による必要悪的仕様なのかもしれない。
道理としては、防御してたら守備力が増えた状態になりそうではないだろうか。

2013.4.11


見易さとリアリティ

見易さとリアリティには、相反する部分があります。

例えば宝箱の向きですが、大抵のトップビューゲームでは宝箱は、
後ろ向きになるような配置であっても、あえて前向きに表示されています。
これに対して、リアリティを重視してか、後ろ向きにしている作品も有るのですが、
開けたかどうかの判別が非常に困難で、同じ宝箱を何回も調べさせられる事となり、わりと苦痛でした。
「開けたら消える」などの演出によりフォローされていれば別だったと思いますが…。

見易さやゲーム性を大いに犠牲にしてまで、リアリティを追及するのは一考すべき所だと思います。
移動グラが三頭身だったりする時点で、既に記号化されてるんですし。

2015.7.16-2019.9.9


ランダムエンカウント率

単純に「毎歩n%の確率で出現」とするのが最も簡単で現実的かもしれないが、
これだと出まくったりなかなか出なかったりと、ゲームとしてはかなり不安定になってしまう。

ツクールXPなどでは「敵の出現毎に、次に敵が出るまでの歩数を二項分散(乱数+乱数)で決める」という形を
取っているが、この方法には「一定歩数内には必ず現れる」「何度ロードし直しても次の一歩で敵が出る」
「敵が出現するまで、場所による敵の出現率変化の影響が現れない(これにより、遭遇率100%のはずの地域を
素通り出来てしまったりする)」という現象が伴う。

また、双六のような感じで「歩く毎にランダムでカウンターが上がり、このカウンターが一定値以上になれば敵が出現」
(一歩がサイコロ一振りに相当し、アガリでエンカウント)とする方法も、若干安定はするだろうが、
エンカウント率が一定以下になると「一定歩数の間は必ず現れない」という状態になる。

「それで何が悪い、むしろ好都合だ」という場合は良いが、いずれにも抵触せずに、
100歩の間にn回遭遇する形にする簡単な方法も有る。
「毎歩n%の確率で出現」を基本として、「敵が出なければ遭遇率が上がり、出れば下がる」という形。

例えば、遭遇率がn%なら、毎歩カウンターをn進め、カウンターが100を超えたら遭遇率を上昇補正、
遭遇したらカウンターを100戻し、カウンターがマイナスになれば逆に遭遇率を下降補正する。
平均歩数など求めようと思ったら難しいが、これなら自動的に、100歩にn回の割合を保とうとしてくれる。
ここで、遭遇率が100%なら常に100%、0%なら0%なので、これに合うよう補正式を考える。
また、カウンターを進める値は補正抜きのnのままとする。

これだけでは、「一万歩歩いた時点での遭遇回数が毎回きっちり同じ」という感じの状況になり、
なんか味気無いので、カウンターを戻す値にランダム幅を与えると良さそう。

2013.10.29

それよりも、n%の確率でカウンターが1進む操作を毎歩m回繰り返し、カウンターがm以上になったら
エンカウント&カウンターをm戻すという方法の方が、以上をより簡潔・自然に実現できるかもしれない。
「1歩毎にn%の確率で1エンカウント」を「1/m歩毎にn%の確率で1/mエンカウント」に置き換える形。
m=1の場合には純粋なランダムと同じ動作となり、mが大きくなるほど「一定歩数毎に1エンカウント」に近づいて行く。
mの値としては4くらいが妥当か?
上で述べた双六式と似てるけど、乱数の出方を90°変えた感じ。

2015.3.15

どこでもセーブが可能な場合、「何度ロードし直しても次の一歩で敵が出る」という現象を回避すると、
敵に全く会わずに進む事が多少面倒ながらも可能になる。
これを防ぐ事を優先したい場合は、ツクールXPなどの仕様の方が有利になるわけだが、
場所による敵の出現率が即反映されないのはやはり不便でしかないと思う。
そこで、「敵が出現するまでの歩数の振れ幅を一定にし、代わりに、
場所によって歩数カウンターの減り具合を変える」という方法が有効に思う。

2018.7.27


ランダムの扱い

確率というものは非常に気まぐれなので、使いようによっては面白いが、
使い方を誤ると、攻略を著しく困難で不安定なものにしてしまう。
扱いに細心の注意が必要。

例えば、1/3の確率で起こるイベントは、12回連続で起こらないという事も然程珍しくは無い
そこまで来ると、「起こらないもの」であるとプレイヤーは判断するだろう。
オマケ的なイベントならそれでも問題は無いが、これが攻略に必須であるとなると、
かなりゲームとして危うくなってしまう。
コインを振る場合のように、表が出る事もあれば裏が出る事もあると予め解ってる場合なら兎も角、
そこにランダム要素がある事自体が解り辛い場合、
そうとは気付かず散々試行錯誤をしたプレイヤーの心は完全に折れてしまうだろう。
1000分の1の確率で起こり得る不運でも、1000人プレイヤーが居れば1人には十分降りかかり得るのである。

攻略に必要なのがコインの表のみならば、表が出る確率を増やすのも一つの手ではあるが、
裏が出る事も必要な場合、余計事態を悪化させてしまう事になる。
裏が出る確率が減るからのみならず、片方しか出ない確率が増える事により、
そこにランダム要素が存在する事自体にも余計に気付き難くなってしまうためである。

幾らランダムが面白くても、ラスボスとの戦いが、
1/100の確率で一発当てれば勝ち、なんてのだったら微妙だろう。
当たる確率を調整した所で問題の解決にはならない。
重要な分岐をランダム任せにしてしまうのは、それに似た物があると思う。

対策としては以下のようなものが考えられる(いずれか一つでOK)。

1.コインを振った結果がランダムであるという事を明示または暗示する
2.コインを振る機会が多くなるような構成にする(頻繁に通るような場所に設置など)
3.ランダムによる分岐肢を増やす(コインをサイコロに変更など。同じ結果が連続する事が少なくなる事により、ランダム要素の存在に気付き易くなる)
4.前回の結果に応じて確率を変更(結果のフィードバック)

重要な分岐をランダム任せにするのはお勧めはしないが、する場合は4の導入を推奨したい。
具体例としては以下のようなものが考えられるので、場合に応じて最適なものを模索すると良いと思う。

・前回の結果が表ならば、次は裏が出易いコインを使い、裏ならば、表の出易いコインを使う
・3連続で表が出たら次は必ず裏、3連続で裏が出たら次は必ず表
・一回目は高確率で表

尤も、手間暇掛けて導入しても、それに気付く人は滅多に居ないだろうし、
あんまり多用し過ぎても、不具合の危険を増やすだけになるかもしれないので、
ここぞという時だけに絞るのがお勧め。

2015.12.25-2018.7.17


ツクール関連
メモに戻る
トップに戻る