The Elder Scrolls 3: Morrowind #15 Inspect It!

Inspect It!

昨今のゲームで結構見かけるようになった、Inspecting SystemをMorrowindで出来るようにするmod。Inspecting Systemは通称なんだけれど、ExamineよりもInspectのほうがよく使われているように見える。要するに、アイテムなどの物体を様々な角度から観察できるモード。

調べていないんだけれど、このシステムを最初に無意味に行ったゲームは個人的にはシェンムーだと思っている。アドベンチャーゲームだともっと古来からあったかもしれない。そこからゲームの進歩に伴って、物体のディティールが非常に細かくなっていったので、無意味さにも需要が増えているのだと思う。そのため、Modでハイポリ、ハイレゾ化されたMorrowindにも通用するだろうという考えだ。
シリーズ後発のSkyrimにもあるので、さしあたってはそれをベースラインにしつつ自分なりに良い感じを目指した。出来上がってみて、実際に使ってみると、何気なく見たアイテムが細かいところまで作られていたり、逆に普段見えないから適当に作られた部分もあってなかなか面白い。何となくルクルと回してみるのも原始的な心地よさがあると思う。

Morrowindには、MGE XEやOpenMWによってポストプロセスエフェクトが追加されるんだけれど、そのうちの被写界深度はおそらくプレイヤーからは不人気だと思う(悪意はないけれど)。
一般的にゲーマーは画面がぼやけることを嫌うからでもあるんだけれど、Morrowindの場合、Modによる後付けの効果なのでゲームシステムと連動しておらず、常に画面中点にフォーカスするようになっているというやむを得ない事情があるからだ。
つまり、システムに連動した使い方をすれば違和感なく効果的に機能するだろうという持論のもとに、被写界深度を独自に扱うようにしている。

基礎的な技術検証は去年のModathonのころから細々と別の目的でやっていたんだけれど、メニューモードでポーズしている最中はあらゆるアニメーションを再生することができない問題が未だに残っている。これが解決すれば、ほかのアイデアを沢山実現することができるんだけれど…
また、MorrowindのNPCの体の構成は部位ごとにバラバラになったパーツをつなぎ合わされているんだけれど(スキニングとか法線の繋ぎ目とかあんまり気にしていられない時代だ)、これを構築する処理系はブラックボックスだ。一般的な原理でエミュレーションすると、なぜか回転が余計に追加されたりされなかったり、基点がオフセットされなかったりで変なことになる。OpenMWでは解析済みなのでそれを調べないといけないだろう。これができると、アーマーの表示を床置きのモデル以外にもちゃんとしたモデルとして表示可能になるし、NPCも対象にできるようになる。

The Elder Scrolls 3: Morrowind #14 Your Name.

Your Name.

人格が入れ替わったり、Baar Dauが落下するわけではない。
名前を聞き出すまで、人々の名前が分からなくなるmod。姓名別に判定して記憶されるようになっていて、物覚えの良さにskillやattributeが関わってくる。

Ultimaを代表とするいくつかのRPGは、名前を聞き出すまでは誰なのか分からないようになっているゲームデザインがあるんだけれど、それが好きなのでやりたかった。

Modathon用に簡単なのを作ろうと思っていたんだけれど、意外に面倒だった。これだから自然言語は。

  • 一切名乗らないやつが意外にいる
  • 固有名ではないやつ(Guardとか)の扱い
  • 冠詞(the)や前置詞(of)が邪魔
  • 引用符で一部くくられたやつがいるが、テキスト中では別にくくられていない
  • luaの文字列検索が貧弱(正規表現は規模が大きいのでやりたくなかったらしい)
  • 完全一致だと所有系(’s)に一致しないが、前方一致だと無関係な言葉に誤爆する
  • 同一キャラクターで複数IDを持つやつがいる
  • creatureはそもそも喋ることができるのかどうか分からない

名乗るかどうか怪しい問題児は、フラグで判定できるようにしたけれど、クエストに関係しているかどうかはうまく取れなかったなあ。事前にNPCからクエスト情報が取れると、クエスト関係のグラフが構築できるので、このmodに限らず様々なことに役立つんだけれど。
どうしようもないパターンはテーブルに頼るのでmoddingに弱いが、カスタムはしやすいだろう。

名前の出現は、テキスト側と名前側をかなり前処理して整形したあとにスペースで分割して完全一致にした。所有系も出現しないことはないんだけれど、目をつぶる。

名前の管理はビットマスク。忘却曲線という実際の人間の記憶の残り方に基づいた記憶管理をしているんだけれど、元の曲線は縦軸が確率なのでそのまま適用すると、何度も話しかけていると記憶喪失になってしまう。なので、縦軸を時間に変更した曲線を定義している。

The Elder Scrolls 3: Morrowind #13 Hanafuda: Akaviri Playing Cards

Hanafuda: Akaviri Playing Cards

Morrowindで花札の「こいこい」をギャンブルとして遊べるようにするMod。

5月のModathonの途中から作り始めて、今まで結構時間をかけて作っていた。まだやり残していることが結構あるんだけれど、自分だとできないことだったり、できても必要以上に時間をかけているとモチベーションも無くなってくるので、キリのいいところで一旦リリース。
ソースコード量だけで言うとMorrowindのmodのなかでもかなりの大作だと思うし、ここまでMorrowindのUIを使い倒しているmodは他にないんじゃないかと思う。なので、苦労に見合うように遊んでくれると嬉しいです。

発端は、Modathonが始まってcommunityで花札をMorrowindで遊びたいという声が上がったことから。communityには自分を除いて日本人は見当たらない(と思う)ので、もちろん海外の人から。その時は、Modathon向けに作っているmodが既にいくつかあったし、modding可能な範疇で技術的に作れるのか分からない部分が多かったので、あまり気に留めずにいた。

いくつかmodをリリースしてある程度moddingに慣れてきたところで、より発展的なアイデアをいくつか検証しているときに、以前のその話を思い出した。日本人なので花札について知っていて、さらに日本語で専門的な情報を集めやすい自分がそれを実現することに向いてるんじゃないかと思ったので、技術的に実現可能なのかどうか他のアイデアと並行してプロトタイピングしはじめた。
Modathon期間中はcommunity内でカードゲームについて時々話題が出ていたので、ネタが被らないかどうかちょっと心配していた。この話題はあくまで話題で、実際に本格的に作っている人はまだいなかったので杞憂だったのだが。

Modathonの終わりが近づいてきたときに、ゲームが大雑把に一通り動作する状態になって、MWSEで作りきれそうというのは分かったが、Modathonには間に合わなさそうというのも分かった。
完成までやることが沢山あるのと、ネタ被りしないように公言しておきたいのと、要望出していた人のほうが花札に詳しいのでフィードバックを貰いながらのほうがいいだろうということで、community内で進捗をオープンにしながら作ることにした。

続きを読む →

The Elder Scrolls 3: Morrowind #11 Use What You Used First

Use What You Used First

ロックピックやリペアツール、ライトといった回数や時間に残量があるアイテムを使用するとき、同じアイテムのうち一番残量が少ないものから使用するようにするmod。

そう書いているということはデフォルトの挙動はそうじゃなくて、特にQuick Keyから使用すると適当に選んで使い始めるので、何回か中途半端に使ったアイテムが沢山インベントリに生成されることになる。
これはModathon以前にプレイしていた時に結構気になっていたんだけれど、コミュニティのdiscordのやり取りを見ていて思い出したので作った。既存のmodでは、ロックピックを持ってない時に錠の前で自動で装備するとか、キー入力でロックピックの品質を切り替えていくとかあるんだけれど、残り回数についてケアしているものは見当たらなかった。
気にしない人は気にしない挙動なんだろうけれど、特にリペアツールなんかは結構重量があって嵩張るので心理面以外にも実利がある。

うれしいことにインベントリから自分で選んで使用するときにも、ロックピックの残り回数を見比べて少ないものから選ぶということをしなくても、適当に装備しようとすれば残り回数が少ないやつから自動的に使用し始める。Quick Keyでなくても便利になった。

テストしていて気が付いたんだけれど、武器を振っている最中にもロックピックなどは装備することができるし、ロックピックを使っている最中にプローブなどに持ちかえることもできる。武器から武器への変更は振り終わるまで出来ないのに。