Open6

RMUでカスタムステータスを追加したい

ピン留めされたアイテム
tolinertoliner

目的

RMUでカスタムステータスを、エディタ上で追加・編集出来るようにしたい
ここでの「カスタムステータス」とは、RMU上におけるアクター等の「能力値」のうち、初期状態で存在しないものを指す。
オートガイドへの対応も行いたい。

やること

  • RMUのステータス関連の調査
  • RMUのコードを編集してのカスタムステータスの追加
  • RMUのコードを編集して、エディタ上でカスタムステータスを追加・編集出来るようにする
  • 職業・装備・アイテム・状態異常(RMUにおける「ステート」)
  • スキルのダメージ計算式でカスタムステータスを利用可能にする
  • 内容のドキュメント化

やらないこと

  • 成果物のプラグイン化: RMUにおける本体を書き換えるプラグインに関するエコシステムがほぼ存在しないため(将来的に作りたい)
  • カスタムステータスを利用したサンプルゲームの作成
  • スキルの種類の追加
tolinertoliner

関連してそうなデータクラス

  • RPGMaker.Codebase.CoreSystem.Knowledge.DataModel.Runtime.RuntimeActorDataModel: ゲーム中におけるアクターの状態保持
  • RPGMaker.Codebase.CoreSystem.Knowledge.DataModel.Class.ClassDataModel: 職業データ
  • RPGMaker.Codebase.CoreSystem.Knowledge.DataModel.Class.AutoGuideDataModel: オートガイド関連のデータ。
  • RPGMaker.Codebase.Runtime.Common.DataManager: データ周りを管理してる、900回以上参照されてるクラス
tolinertoliner

RMUにおけるアクターのステータスは、

  1. 職業に設定されたレベル毎のステータス
  2. 追加効果によるステータス

の2つの和で計算される。
頭の痛いことに、追加効果によるステータスは装備・マップ効果・アイテム使用時の効果などが、すべて区別されずにごっちゃで処理されてる
装備時に追加ステータスを加算、装備変更したらその分変動、装備取ったらその分減算。マップ効果あるところに入ったら加算、出たら減算。
逆によくこれでステータス管理をバグらずに出来てるな?って言いたくなる設計・・・

tolinertoliner

久しぶりにこっちに手を付けたい(なお時間)
とりあえずRMUのアプデをした

tolinertoliner

カスタムステータス実装で影響しそうな範囲としては、

  • 職業データモデル
  • 敵データモデル
  • ランタイムのアクターデータモデル
  • ランタイムの敵データモデル

と、「上記の使用箇所全て」になるのかな?
戦闘周りとかアイテム周りとか、単純に利用箇所が多そうね・・・