SkyrimをMMORPGっぽくしてみました。
概要
Skyrimの成長システムは、スキルが上昇すると経験値を獲得し、レベルが上がっていきます。つまり、こういうことになります。
- 街にいて生産をしているだけでレベルが上がっていく
- 敵をどれだけ倒しても、クエストをどれだけ達成してもレベルが上がらない
- スキルが最大になるとレベルを上げられなくなる
いくつかのModを組み合わせることで、昔のMMORPGのような成長システムにできます。つまり、こうなります。
- 街で生産をしているだけではレベルは上がらない
- 敵を倒したり、クエストを達成することでレベルが上がっていく
- スキルが最大になってもレベルを上げられる
実際に試してみたMod
Skyrim Skill Uncapper
プレイヤーの成長にまつわる各種設定を変更できます。
- スキル上限を100以上にできる
- スキルの上昇速度を変更できる
- スキルが増えたときの経験値獲得量を変更できる
- レベルが上がった時のヘルス・マジカ・スタミナ最大値、運搬最大量、Perkポイントの増え方をそれぞれ変更できる
Auto Health Magicka and Stamina
スキルを上げるとヘルス・マジカ・スタミナの最大値が増えていくようになります。武器スキルでヘルスが、魔法スキルでマジカが増えるといった具合です。
このModはLE用ですが、bsaを展開すればSEでも使えます。
このModをSE化して機能を追加したSkill Managerを作りました。
Experience
経験値の獲得タイミングを変更します。
- 敵を倒した時
- 新しい場所を発見した時
- クエストを達成した時
また、レベルに応じてスキルの上限に制限が加えられます。
Epic Glory skill advancement overhaul
プレイヤーの初期値を変更します。スキルをオール0からスタートにできます。
ヴァニラにはスキルが15未満の場合の経験値計算にバグがあるようなので、Skyrim Skill Uncapperとの併用が必要です。
鍛冶などいつかのスキルは0のままでは成長しません。本を読んで1にすると成長するようになります。またはYou can learn skill from tutorialを使って、チュートリアルでスキルが成長するようにします。
実はGameSettingsのiAVDSkillStartを0にすればいいだけなので、SSEEditで簡単に作れます。
まだ試していないけどよさそうなMod
Sleep to Gain Experience
経験値を獲得してもその場では反映されず、寝ると反映されてレベルアップできるようになります。
このModのいう経験値とはスキルの上昇値のことで、Experienceで敵を倒して獲得した経験値はその場で獲得されてしまうのでダメでした。
Reading Is Good
本を読んだらスキルが上がりますが、これをスキルが上がりやすくなるように変更します。
導入はちょっと大変そう。
試してみた結果
Experienceの敵を倒した時に手に入る経験値がおかしいように感じました。道端でNPC同士の戦闘があると、プレイヤーがまったく手を出していないのに経験値が入ってきます。
Experienceの設定では敵を倒しても経験値を入らないようにして、似たようなModを作りました。死んだActorにたいしてGetKiller関数で誰が倒したのかを調べ、プレイヤーなら経験値を獲得するようにしました。これだとGetKillerでnoneが返ってくることが多々あり、うまくいきませんでした。特にNPCだとこうなることが多いです。そこで、Actorにスクリプトを配布し、OnHitでダメージを受けたイベントを捕捉、プレイヤーが与えたダメージの割合をカウントしておき、対象が死んだら割合に応じて経験値を獲得するようにしました。この実装だと、たとえとどめをささなくても貢献した分の経験値はもらえるので、より一層MMORPGっぽくなりました。