The Elder Scrolls 3: Morrowind #10 Custom Portrait

Custom Portrait

インベントリ左にあるレンダリングされたキャラクタイメージを任意の指定した画像に差し替えるmod。ペーパードールをポートレートに差し替えると言うとなんだか懐かしい響き。

20年以上前の見栄えのしないレンダリングよりも、私の好きなクラシックRPGのポートレート方式の方が良いんじゃないかと思ってやってみた。
MWSEを使うと、メニュー内に画像を足すことは簡単にできるんだけれど、このキャラクターイメージの場合、内部的にレンダリング諸々の独自の処理が動き続けているので普通の画像操作とは挙動が異なり、自在に画像をレイアウトできるというわけにはいかない。そのブラックボックスの挙動を把握することが最初の難所だった。
チマチマと挙動を推測して実践してうまくいけそうだという手応えは掴めたんだけれど、自分だけが差し替えるんじゃなくてユーザが好きな画像を指定できるmodとしてリリースするには、それが容易にできるようなユーザフレンドリーなMod Configメニューを作るのが大変だろうという予想は浮かんでいた。
そして、予想通りメニュー作りが一番大変だった。

MWSEのMod Configメニューには、mcmというフレームワークが用意されていて、基本的にはそれで比較的容易にMod Configのメニュー画面を作成することが出来るんだけれど、今回はその基本的なことから外れていることをやるだろうという予想だ。
このmodのメニューでやることは、一般的なメニューの単純にフラグをオンオフして、スライダーで値を調整できるというものではなくて、画像を指定してロードできるようにして、エラーハンドリングも含めて正常動作するように対応して、インベントリ相当のプレビューを表示して、表示を調整するような各項目の変更にもプレビューをリアルタイムに追従させるという…要するに様々な項目が連動して動的に変化するメニューである。このような場合、mcmを使用することは(知っている限りでは)その構造上難しく、フレームワークではないローレベルなUIのAPIを使用して処理する必要がある。

それから、本来のキャラクターイメージには、マウスカーソルをあてるとその装備品のツールチップが表示されて、それをクリックすると装備を外すことができ、逆に装備品やアイテムを持っていくと装備や使用したりする機能がある。
前者はポートレートになることで見た目と機能が一致しなくなるので無効にしたいが(インベントリから同じことが出来るので不便ではない)、後者は出来なくなるのは困る。前者を無効にしようとしたときに、単純にマウスオーバーやクリックのイベント処理を停止させると、全く同じクリックを行う後者の装備やアイテムの使用も出来なくなる。データやイベントには、それらを区別するための違いがなくて困った。これはCommunityでそんなの分からんよという、ドキュメントになってないような情報を教えてもらって何とかなった。

余談であるが、この手のペーパードールやポートレートとステータス画面は、本来の電源無しのRole-Playing Gameのキャラクターシートがモチーフになっていると思うのだけれど、このmodを作るときに検索して見ていたところ、日本のキャラクターシートにはほとんど必ずと言っていいほどポートレート欄があるのだけれど、英語圏のCharacter Sheetにはポートレート欄が無いものが多い、ということに気が付いた。

The Elder Scrolls 3: Morrowind #9 DPS Tooltips

DPS Tooltips

武器のDPSをエンチャントも含めて解析的に計算してツールチップに表示するmod。

Morrowindをプレイしていると、当然ながら武器はベースダメージも速度もバラバラで、さらにエンチャントも多種多様の効果があって、それらを好きなようにもエンチャント出来てしまうので、何を装備すりゃいいのかよく分からんので、そういう表示計が欲しくて作った。
表示上だとベースダメージは高いが振りの遅い武器は強そうに見えるんだけれど、実際に可視化してみると振りの早い武器が結構強かったりして興味深い。

リリース上は2番目だがMorrowindで最初に作ったmodで、これは難産だった。こんな小さな数字の表示をするためにやっていることは割に合わないくらい手間暇がかかっている。しかもそれでいてまだ不確かな部分がある。
最初は、武器ダメージとエンチャントダメージを速度でかければいいだろうくらいの軽い気持ちだったんだけれど、ダメージ計算の内部仕様を調べていくと、その複雑さに泥沼になっていった。それを自力でシミュレーションする必要があるのだ。
数値的に求めればDoTの正確なダメージ量が求められるんだけれど、それはさらに難しいことが分かったので早々に諦めた。ツールチップを表示する短い時間に処理しきれない可能性もあるし。

処理を複雑にしている最たるものは、Resist/Weakness による属性ダメージの増減と、Fortify/Damage/Drain/Absorb/Restore Attributes による能力値の増減だ。
攻撃したときに攻撃対象にだけネガティブな効果だけが適用されるのであればまだマシなんだけれど、ゲームシステム的にResistやFortifyといった攻撃対象にとってポジティブな効果すら自由にエンチャントできてしまうし、自分にもある程度効果を追加できてしまう。
極めつけは、Resist/ Weakness to Magicka の存在だ。この効果はResist/ Weakness の中で一番特殊で、属性ダメージ効果を除いて他の属性Weakness を含む殆どのネガティブな効果に影響する。そのため、エンチャントの解決順序には気を使う必要がある。

その他にも、Constant Effectのある武器を装備していたり、On Strikeの武器で既に攻撃していてその効果が適用済みだったりすると、それを差っ引いておかないと二重に効果が適用されて正しい結果にならないという問題にも設計を悩まされたりしている。
さらにバグなのか仕様なのか、普通に作ったらそうはならないだろうという風に解決順序が入れ替わっていたり符号が逆だったり、Code Patchによってさらにそれが修正されていたりするので、ひたすらリサーチに時間をかける必要があった。

未対応になっている命中率に対応できるとより正確なDPSが分かるんだけれど、それは命中率に関わるエンチャントや能力値、スキルの影響を解決する必要があることを意味している。
21年間ありそうでまだなかった理由が分かったのと、エンジンの内部仕様に詳しい人に面倒見て欲しいmodである。

The Elder Scrolls 3: Morrowind #8 Main Menu Shortcut

Main Menu Shortcut

メインメニューの項目をそれぞれの頭文字のキーと、エスケープキーでゲーム終了できるようにするmod。

発端は、特にmod作っていると頻繁にゲームを起動して頻繁に各種メニュー項目にアクセスして終了するんだけれど、それが面倒だったからである。
mod開発に限った話ではないけれど、マウスでカーソル動かしてクリックするという操作は何度も何度も繰り返したくないのである。

このmodはMorrowindで最初に作ったmodではなくて、少し慣れた時期のMay Modathon 2023が始まる直前に着手して、一晩くらいでさっさと作った。
一番大変だったのは、ショートカット機能そのものよりも、メニュー項目の一つのMod Configメニューウインドウがエスケープキーで閉じれてしまうことだった(ショートカットが仕込まれている)。Mod Configメニューをエスケープキーで閉じると、同時にこのmodが動いてゲームを終了したがるので、そうならないようにする仕込みが必要だった。

また、これに限らず全てのmod開発において、スクリーンショットの撮影や編集、英語でのドキュメントの作成といったリリースに向けた作業が結構大変である。そういう部分はそういうのが好きな人にやって欲しいと思うが、全て個人作業である。

比較的に簡単に作れて、見栄えがいいわけでもない小さいmodだと思うんだけれど、使ってみると思惑通り便利だと思う。特にmodder向けだと思う。

The Elder Scrolls 3: Morrowind #7 May Modathon 2023

Morrowindをしばらくプレイしていて感じるのは、21年前のゲームなのにModコミュニティが未だに活発だということだ。

TESシリーズのNexusを見比べていて(あくまで個人的に)感じるのは、Skyrim = アダルト、Oblivion = Skyrim に移行しきって落ち着いている、Morrowind = 今だに新しいModがよく出ている、なんならOblivion よりも多い、という印象だ。Oblivion とは異なり、Morrowind には移行されない事情や魅力があるらしい、というのがNexusだけでもなんとなく分かる。Discordにも参加しているが、大人数で非常に活発である。

Modを探していると、目につくのは Modathon という文字やバナーだ。最初はNexusにそういうシステムでもあるのかと思って気にも留めていなかったが、どうにも Mod コンペイベントを行うコミュニティ文化が形成されていて、それに参加するためのタグとなっているようだ。Modathon はMorrowind Modコミュニティ特有の造語で馴染みが無いが、日本でも一定の知名度があるハッカソン(Hackathon)と同じようなものだ。
大昔Morrowindをプレイしたときはそんなものは無かった気がするんだけれど、どうやらModathon の歴史を見てみると2015年から始まったようなので、それは知らなくて当然だった。このコンペがMorrowind のModコミュニティを今なお活発にしている要因の一つであるだろう。

Morrowind May Modathon Month 2023 – Celebrating 21 Years of Morrowind! May 1st through June 2nd

さて、その Modathon は毎年Morrowind の発売された5月1日から一か月間行われる。つい先日、今年の開催がアナウンスされて、もうじきその日がやってくる。例年通りであれば21年前のゲームとは思えないほどのModが一ヶ月の間にリリースされると思われるので、Nexusを覗いてみるのはいかがだろうか。

ちなみに、プレイしている時期といいタイミングだったので私もModder として参加する予定です。また、Modathon とは関係ないけれど、Morrowind のエンジン機能を超えたModding を可能にする、Morrowind Script Extender (MWSE) にちょっとだけcontribute したよ。

The Elder Scrolls 3: Morrowind #6 in 2023

この前The Cat Ladyをリプレイしたときに、結構覚えていないところが多くて新鮮味があって、さらにそれより前のプレイしたMorrowindならもっと覚えていないんじゃないかとモチベーションが再燃している。

過去にも何度か、思い出したようにMorrowindをリプレイしたくなるんだけれど、このゲームはvanillaでプレイするのは今も当時もバグで困難だし、modで色々手を加えようにも、その敷居は結構高くてなかなか大変なのである。及び腰になってしまう。

Morrowindのmod構築の方法は、検索すると日本語のページでも結構出てくるんだけれど、日本語のページは軒並み更新が停止していて古い情報になっているため、真似してはいけないが(真似しようとしてもツールのインターフェイスが変わりすぎているのだが)、かつては大体次のような感じだった。

  • Data filesにmod突っ込む
    • アーカイブ対応したmodは稀なので、同じ構造の場所にそれぞれのmodを上書きしていく必要がある。ファイルが競合する場合、適用したい順序に的確に上書きする必要がある。
  • プラグインのロード順序は、なんとファイルの日付順なので、ちまちまとWrye Mashなどで手入力で書き換えて調整する。
  • 汚れたmodを掃除する。
    • Construction Setの出来が良くないのか、不要な部分の変更が入ってたり、キーが重複したり、バグを発生させる要因となる変更が不用意に入り込んで”汚れた”状態になりやすい。
  • Leveled Listという、プレイヤーのレベル依存となる共通の変更箇所を弄るmodは競合が避けられないので、マージしたプラグインを作成する。
  • マスターデータと同期したり更新したり、なぜそれが必要なのか訳の分からない作法が必要なことが多々ある。

当時からさらに時間が経過したこともあって、この面倒な手順が改善されているに違いないだろう(結論は変わっていないところもあれば、改善されてるところもあった)。
一方で、ディスプレイやCPUなどハードウェアの変化にも対応する必要が増えている。
modコミュニティの様相も大きく変わって、複数あったMorrowindの大手modコミュニティサイトは全て潰れてしまい、多様なゲームに対応するようになったNexusか、わずかに残存している個人サイトのみになってしまった。多くの古いmodは本人か誰かがNexusに移行していない限り、ダウンロードすることが困難になっている。また、情報サイトの多くはリンクが古く、辿ることが出来なくなってしまっている。

非常に長い前置きになったが、Morrowindを現代でプレイするには鮮度のよい最近のmod事情を調べる必要があるのだ。前述のとおり日本語ページは全てがoutdatedなので英語で。もはやMorrowindは英語が読めないとプレイするのが難しいと思う。
そして調べたところ、多くのドキュメントは、お気に入りのmodやツールを列挙することが多く、既に詳しい人を対象にしているので、そうでない人には取捨選択することが難しいという印象を受けた。
その中で、丁度2023年に改訂が行われている最中のページに辿り着いた。

Morrowind Installation and Modding Guide (via Life in Ink and Pixels)

2023年にMorrowindを初めて遊ぶ人を対象に、順序立った解説になっているため、今から遊ぶには何をすればよいかの取り掛かりとしては非常に分かりやすいと思った。まだ改訂途中だが、現時点で改訂済みのpart.6までで最低限ゲームを始められる状態に出来る。
ガイドにもoptinalとして書いてあるが、Mod Organizer 2は非常に使いやすかった。かつて大変だったmodの管理とファイルの上書き問題が解決できるようになっている(NMMやVortexは無理)。日付の設定もMO2やWrye Mashともに、ドラッグ&ドロップで勝手にやってくれるようになっている。

そこから先は、自分の使いたいmodやツールを探して入れていけばよいのだが、それらの選定は過去よりもさらに難しくなっている。
今もメンテナンスが継続されていたり、昔の定番から新しい定番にとってかわったものもあったり、別の人がフォークして改善していたり、パッチが累積された決定版やパッチ断片が散らばったものがあったりなかったり。年月が経ったことでmodやツールの歴史を紐解く必要がでてきたことで、どれを使うべきなのか判断することが難しくなっている。それはそれでmodの楽しいところだけれど。

また、上記のガイドでは、汚れていないことが確かでインストールが容易なreplacerを主に扱っているが、それ以外のmodになってくると今でもなお掃除やマージは避けられないので、それについて知る必要がでてくる。
ある程度、最近のmod事情に慣れてくると、次のガイドが役に立った。必須ではないツールややることも割と列挙されていて、初めて読むと混乱するが、鮮度は比較的よい。

Guide for installing mods (Kurpulio via The Nexus Forums)

このガイドのうち、NexusのMloxのバージョンが古いことに気が付いたが(最新はgithubにある)、試した感じだとMloxも最近の事情に追従できていない感じだったので、これに頼る必要性は薄いだろう。