RPG maker unite 長編RPG第二弾「妹ーたるサヴァイバー!」制作進捗
こんにちは
孤独な狼と猫です。
とんでもない暑さの日が続くので
なるべく外に出ないで製作を続けています。
さらに台風も来てますし!
長編RPG「妹ーたるサヴァイバー!」の制作進捗です。
マップやイベントの方が一段落しているので
現在はアイテムや戦闘関連の設定に入っています。
①アルケミストスキル
前回は主人公が使用するガジェットスキルをアイテムから合成する、というのを紹介していました。
次は主人公の妹、愛那向けのスキル設定を行いました。
「妹ーたるサヴァイバー!」では外の星から来た主人公と愛那達は魔法が使えません。
なので妹の愛那が使うスキルは定番とも言える魔法スキルではなくアルケミストとして薬品類を使うスキルになっています。
レベルアップでは無く舞台となる惑星システリア各地にある薬剤を道具「ケミカルレプリケーター」で解析しスキルを習得するというシステムになっています。
例えば・・・
硫酸 → アシッドボールLV1
王水 → アシッドボールLV2
抗体サンプル → キュアポイズン
攻撃も治療も出来ちゃいますがどちらかというとヒーラー寄りのスキルになります。
ちなみにフルオロスルホン酸とか有機過酸化物など化学屋さんしか分からないような薬剤も出てきますが、逆に柔軟剤からキュアストーンを覚えたりして、なんちゃっての部分も多いです。
②アイテム、武具類設定。
武器は30種類ぐらいと少なめです。
というのも主人公と妹の愛那は持っている武器は専用のレーザーライフル、レーザー短銃のみ。
この二人は冒険の途中で手に入るカスタムパーツを入手して武器をパワーアップしていくようになっています。
単純に攻撃力がアップするだけでなく命中率が上がったり、攻撃回数が増えたりしていきます。さらに主人公はアタッチメントを装備して毒、麻痺などの特殊効果を付加させる事が可能なので種類が少ないとはいえ自在にカスタマイズすることが出来て便利。
防具は今のところ約140種類。
これも主人公は前回紹介したガジェットを装備出来るのでバリエーションが豊富です。
これはもうちょっとアクセサリを増やそうとも思います。
今作は敵の攻撃が激し目なので補助効果のある装備は種類を増やしてユーザーが色々選択していけるようにしたいです。
アイテムは約200種類。
上記の薬剤やガジェット装備の素材も含んでいます。さらにモンスターを倒した時に得られる食料(!)なんかを取り入れています。
これらを駆使して過酷なダンジョンを生き延びれるような設計になる予定。
そう、まさにサヴァイバー!
③敵モンスター
今設定し終わったのは250種類弱ぐらいでしょうか。
まだボスモンスターや固定モンスターも幾らか増えそうですが、多くても300は越えないと思います。
まだ戦闘背景設定、戦闘エフェクトアニメーション等が残っていますが、それが終わればいよいよ初期テストプレイが出来そうです。
でもまだ先は長いかな・・・
そしてそれに先立って攻撃ダメージ式の改良を行いました。
デフォルトで入っているのはアルテリオス式ですが、これが使いにくい。
ちょっと敵が強くなるといきなりダメージが大きくなって即死が頻発したり、逆にちょっと弱い敵が攻撃してきてもダメージが1ばかりになったりして有効に使える範囲が狭いのです。
そこを改良するのにまず考えた事は・・・
防御が大きくなってもダメージが直線的に減少しない。
指数関数の左右逆になったような形が望ましい。
なので最初は指数関数として以下の形を考えました。
ダメージ=攻撃力×係数×exp(ー防御力×係数)
勿論ツクールの計算式に指数関数は無いです(無いですよね?)
なので指数関数を級数展開して二次関数で近似・・・
・・・だと上手くいかないんですよね。
二次関数はどうしても頂点が出てきてしまうのでどこかで防御力がアップするとダメージが逆に増加する点が出てきてしまうのです。
勿論その頂点の場所をゲーム中では到達出来ない防御力が凄い高い所に調整出来るのですがそうすると防御力がアップしてもダメージが中々減らないというジレンマに陥ります。
それに防御力アップするスキルを使うとその頂点すら突破してしまう危険性もあります。
三次以上の奇関数もウネウネした形になりがちなので防御力がアップするとダメージが増えたりする箇所も出てきそうなのでNG。
なので指数関数→多次元関数という路線は諦めて別の方法にしました。
今度はちょっと原始的ですが
攻撃力に対して想定するそれっぽいダメージを自分で作ってそれから近似式を作って貰うという方法にしてみました。
出来上がった基本的な形は
係数1×攻撃力/防御力+係数2×(攻撃力の二乗)/防御力
さらに防御力が凄く高い場合にダメージがマイナス→ゼロか1になるようにアルテリオスの式を追加します。
係数1×攻撃力/防御力+係数2×(攻撃力の二乗)/防御力+係数3×攻撃力-係数4×防御力
出来上がってみるとこれはウェブ上でよくダメージ式として紹介されるタイプのものを組み合わせた形ですね。
係数の設定としては係数1:係数2=数千:1ぐらい、
係数3と4は通常のアルテリオス式と同様に1前後が良さそうです。
後は想定されるダメージ、HPに合わせて係数を設定すれば他の作品にも適応は出来ると思います。
自分は幾つか防御力、攻撃力からシミュレーションして
70 × a.atk / b.def + 0.05 × a.atk × a.atk / b.def + 0.7 × a.atk - 0.3 × b.def
という式に落ち着きました。
グラフを見てみると防御力アップによるダメージの減少が段々緩やかになっていきますが
ずっとダメージがゼロにならない訳でもなく
防御力:攻撃力=3:1ぐらいからはダメージが0になります。
防御力50(スタート地点ぐらいの敵の防御力)vs攻撃力2000(最終ダンジョンぐらいの味方の攻撃力)でダメージは12000ぐらい。
防御力2000vs攻撃力2000でダメージは900ぐらいです。
これで防御力と攻撃力のバランスが随分取りやすくなったと思います。
実際に幾つか戦闘でテストを行いましたが極端な値は出なさそうでした。