一般的なRPGでは、キャラクターを強くするのに、LV上げや装備、もしくはパッシブスキルによる強化が一般的ですが、
キャラの素体のパラメータをあげるものではないので、キャラ毎に最大LV・最強装備・最強パッシブスキルが決まってしまい、
ユーザの「好みのキャラを好きな能力だけ強くしたい」という要望に応えられません。
ドラクエなどのRPGでは、ドーピングアイテム(ドラクエの「ちからの種」など)によるパラメータ強化が盛んに行われていますが、
アイテムで強化というのはなんだか味気ないですし、ツクる側もチート対策などをしなければならず、面白みに欠けると思います。
そこで、上記の成長要素に加えて、ユーザ(プレイヤー)がドーピングアイテム集めをしなくても、
『プレイしていたら自然と自分の好きな能力が上げられる』というシステムがあれば、
ユーザも自分のプレイスタイルでの成長を楽しめますし、
うまくやれば、戦闘を作業にしない方法も見つかると思います。
実装例として、2案あげたいと思います。
■A案: 「敵にダメージを与えたら攻撃力が、敵からダメージを受けたら防御力が、一定の確率で上がっていくシステム」
→ あるツクラーさんのアイディアを元に、必要最小限の機能を整理しました。
(実装例)
1. 全てのスキルの発動し、ダメージを受けた直後に、スキルタイプを取得する
2. スキルタイプが「HPダメージ」だったら、スキル使用者のバトラーと、対象者のバトラーを取得する
(i) スキル使用者が 「味方」 で、かつ対象者が 「敵」 だったら、P%の確率で、そのアクターIDの攻撃力+X
(ii) スキル使用者が 「敵」 で、かつ対象者が 「味方」 だったら、P%の確率で、そのアクターIDの防御力+X
※簡単化するため、スキルタイプは「HPダメージ」だけで、通常攻撃や魔法などの区別はしていません。
成長するパラメータも、攻撃力と防御力だけに特化しています。
※XやPの数値は、プラグインのパラメータ化して、制御文字\V[n]などを使って動的に変更できると、なおいいと思います。
例えばX=0.1など小数点を考慮できれば、P=100%でもいいのですが、
ツクール上の攻撃力は小数点以下は丸められる仕様(?)だと思うので、厳しいと思いました。
無理やりやると結構大変なので(別途変数をアクターID毎に取ってセーブデータに残しておく……これだけのために?)、
確率で+1する設計にしてみました。
■B案: 「スキル発動時に、プレイスタイルに関連する変数に渡す取得し、コモンイベントで設定する」
→ プラグイン内ですることを最小限にしたバージョンです。
1. 全てのスキルの発動後に、最後に使用したスキル情報(スキルタイプ、スキル使用者、受けた/与えたダメージなど)を、
プラグインのパラメータに指定した変数番号の、ゲーム内変数\V[n]にそれぞれ代入する
2. プラグインのパラメータに指定した特定のコモンイベント番号の、コモンイベントKを呼び出す。
※アクターの何をどう上げるかは、コモンイベントK内で、\V[n]を参照し、ツクラーが自由に調整することができます。
ツクラーさんの実装は大変になりますが、これが出来るだけでも、非常に拡張性が高く、応用性が広がると思います。
■その他の応用例
・A案の改良例
→ 攻撃力や防御力だけでなく、最大HPや最大MP、素早さや魔法力や魔法防御力、運などにも応用できる
→ 確率で各種パラメータや運が増減するような、ユーザがどうなるか予測の付かない成長システムが作れる
・B案の改良例
→ 特定スキルやスキルタイプを使っていると、新しいスキルを閃くなど、戦闘スタイルを考慮した技の取得などにも応用できる
→ 戦闘時のセリフや、自動戦闘時のアクターやCPUの思考を、最後にプレイヤーが使用したスキルを考慮できる
(コモンイベント内で、特定条件で戦闘行動の強制などを使うと出来ます)
■実装の困難さについて
「ここまで要件定義できるなら、自分でやればいいじゃない」と思われるかもしれませんが、
一度、自分でやっていたのですが、私にはあまりにも難しくて……プラグイン化は断念しました。
参考までに、コモンイベントは途中まで作成しました。以下にあげておきます。
https://www.dropbox.com/s/le2o9sbogta0c ... .html?dl=0
何かの参考になりましたら幸いです。
余談かもですが、アクターのパラメータ上限を1000以上に限界突破する場合、以下の処理が必要になります。
https://www.dropbox.com/s/v3ebtn7wczuhf ... 88.js?dl=0
A案・B案にかぎらず、どんな方法でもいいので、協力いただけると助かります。
ツクールの戦闘システムをよりおもしろくするために、ご助力をどうかよろしくお願いします。
ユーザのプレイスタイルに応じてパラメータが限界突破するシステムの実装
Re: ユーザのプレイスタイルに応じてパラメータが限界突破するシステムの実装
先程のソースコード、HTMLコピーだとコピペがしにくいので、テキスト版も作りました。(置換とインデント処理がしんどかった…)
https://www.dropbox.com/s/xv9sv8aysf2j5 ... 88.js?dl=0
著作権は放棄しますので、ご自由にお使いください。
https://www.dropbox.com/s/xv9sv8aysf2j5 ... 88.js?dl=0
著作権は放棄しますので、ご自由にお使いください。