Pekomo

Last-modified: 2009-05-17 (日) 15:36:55

現在有効になっているModからアイテムのデータを抜き取りCsvファイルに出力する機能と、CsvファイルからEspファイルを作る機能を持ったプログラム

 開発中。
 動作にはPythonとwxPythonが必要。(Wrye Mashが動けば動く。)
 これは現在有効になっているModからアイテムのデータを抜き取りCSVファイルに出力する機能と、CSVファイルからespファイルを作る機能を持ったプログラム及び関連プログラムだ。防具と服と武器に対応。
 TESCSのExport機能がアイテムの全てのデータを出力しないのが不満だったので作った。つまりこのプログラムはアイテムの全てのデータを出力する。それから現在有効になっている全てのModからアイテムのデータを引き出すのも特徴。
 用途はModで追加されたアイテムを含めた大量のアイテムのデータを一気に処理すること。アイテムのバランスの調節とか。
 プログラム名の由来は「ペロッ…これは…!ムーンシュガー!!」の略。意味はない。

 

 防具の軽い/普通/重いは保持される。
 内部的にはアイテムだけど実際にはアイテムではないものは自動的に除外される。例えば武器に含まれるマジックボルトとか。
 武器で魔法が付与されているのにIgnore Normal Weapon Resistanceが無効なのは勝手に有効にする。
 moduleフォルダ内のconfig.pyを編集することで、防具の軽/中/重の閾値を変更できる。

 

各プログラムの説明

  • Records from Active ESM ESP to CSV.py : 現在有効になっているesm/espファイルからアイテムのデータを取り出し、CSVファイルとして保存する。
  • CSV to ESP.py : CSVファイルからアイテムのデータを取り出し、espファイルとして保存する。
  • Tweak CSV.py : CSVファイルのデータをいじるプログラム。
  • Compare CSV.py : 二つのCSVファイルを比較する。
  • Omakase.py : 指定したフォルダ内にあるファイルに従って自動で防具、服、武器のバランスを調節し、Data Filesフォルダ内にPekomo Omakase.espとして保存する。sampleフォルダに入っている設定ファイルのバランスの調節の具合はあくまでも試験的なもので、しっかりと考えた結果ではない。設定ファイルの書式はconfigフォルダにあるTweak CSV.pyの設定ファイルと同じ。ファイル名順に実行される。
 

ダウンロード

 

今後の予定

  • おまかせ機能のサンプルデータを添付する。
  • 機能を拡張する前に、Pekomoの方向性に問題がないか検討する。
  • アイテムのデータを自分好みに修正して、実際に遊んで、問題がないか確認する。
  • 機能の拡張はその後。本や薬に対応したい。
 

更新履歴
 
Beta7
 色々。
 それぞれの機能の説明を英語や数式で説明するのはあきらめて、グラフを表示するようにした。
 数値を入力するところに「1/2」とか分数を入れても認識するようにした。
 Omakase機能が作成するespファイルを一つにした。Pekomo Omakase.espってやつ。
 Miscアイテムに対応。
 既知の問題

  • 防具の重さの軽/中/重のしきい値を変更するModを使用していないという前提でPekomoは動作している。重さのしきい値を変更するModはほとんど見かけないのでこれでもよい気がするが、そういうModを使っている人は困るだろう。意見があれば考慮することにしよう。

Beta6
 出来上がりつつある(二回目)。
 既知の問題

  • 服と武器のデータを出力したespファイルにも、防具用のGMSTが書き込まれてしまうこと。

Beta5
 最初から作り直した。

Beta4
 出来上がりつつある。

 

覚え書き

  • 防具と武器の値段のバランスが悪いのははっきりしている(と思う)。性能の低いアイテムはあまりに安すぎるし、性能の高いアイテムはあまりに高すぎる。問題はどれくらい調節するべきか、どんな数式に当てはめるべきか。手作業で一つずつ設定する方法は駄目。アイテムが多すぎるし、Modで追加されたアイテムに対応できない。
  • スクリプトの改善。
  • 変な英語を何とかする(超重要)。
  • ローエンドのアイテムの値段を高くした場合、商人の商売能力を高める類のModを使わないと、簡単に金持ちになってしまうな。
  • 重さが0の服は特別扱いになるらしく、インベントリ等で名前以外の情報を見ることができなくなる。だから「指輪なんて重さ0でいいや」はまずい。
  • 防具や武器の能力を変更した場合、ゲーム世界に存在する全てのアイテムの能力も変更される。しかしゲーム世界に最初から置かれているアイテムのHealthの現在値だけはデフォルトの数値を引きずるようだ(Healthの最大値はちゃんと変更される)。だからHealthを減らした場合、最初から店の棚とかに置かれているアイテムの中にはHealthの現在値が最大値より大きいものが出てしまう。
    • 解決策その一。気にしない。放置。デメリットは本当は解決してないこと。
    • 解決策その二。ゲーム中常にその場にあるアイテムをチェックするスクリプトを走らせておいて、Healthが現在値>最大値なアイテムを見つけたら修正するようにする。MWSEの関数を使えば可能なはず。デメリットはスクリプトを作るのが面倒臭いことと、余計なスクリプトが走ることになるのでゲームが少し重くなること。
    • 解決策その三。Morrowind.esmをいじる。デフォルトの数値はMorrowind.esmを参照している可能性が高い。それをいじってしまう。デメリットは面倒臭いこと。アイテムの能力を変更するModを作るだけだったのに、いつの間にかMorrowind.esmまでいじる羽目になったでござる。
    • 解決策その四。セーブデータを解析して問題点を修正するプログラムを作る。デメリットはそういったアイテムのデータがセーブデータに書き込まれて、ゲームを中断して、そのプログラムを実行した段階でやっと修正が入ること。でも試しにセーブデータの問題点を修正するプログラムを作ってみたら、結構簡単にできた。Healthの現在値>最大値問題は既に修正可能。他にも商人の商売能力を上げたりとか、ノミバスの人が落っこちないように位置を修正するとか色々できそう。
 

おまかせ機能の覚え書き

  • Enchant Pointは悩む。そのままでいいのかな。
 

Tweak ESS

  • セーブデータを解析して問題点を修正するプログラム。作成中。Pekomoと目的が違うけど、プログラム的に共通する部分があるから別々に作り辛い。良い考えが浮かばない限り、Pekomoの一部として作る予定。
  • Morrowindを起動する前にTweak ESSでセーブデータを修正するような使い方を想定。
  • 実現できそうなこと。
    • 防具と武器のHealthの現在値>最大値問題の修正。
    • 商人の商売能力をプレイヤーの商売能力の向上に合わせて調整。
    • ノミバスの人が落ちないように位置修正。
    • 交通機関の料金関係のGMSTをPCのレベルアップに応じて調整。PCがレベルアップすると値段が上がるもっともらしい理由を考えないと。税金とか?
    • 消えるNPCバグ対策に使えないか?消えやすいNPCの位置をリセットすればなんとかならんかな。

コメント欄

  • Pekomo自体はもうほとんどできてるんだけど、問題はTweakerの方なんだよな。つまりアイテムのバランスを改善するには何をどんな計算式に当てはめて処理するかを考えなくちゃならない。それが難しい。例えば値段をValue = 50 * Sqrt(Value)にするとまあまあよさげな感じになるけど、しばらくプレイしてみないとわからないし、人によって好みも違うし。Sqrtは平方根。 -- 管理人 2008-12-11 (木) 19:17:10
  • おお、すばらしい。これは期待せずには居られない。 -- 2008-12-11 (木) 21:18:44
  • 少しは需要があるのか。それはMod作成補助ツールとしての需要?それとも簡単にアイテムのバランスを調節することができるってことの方かな?後者だとしたらバランスの落とし所にとても悩む予定なので、いつになったらできるのやら自分でもわからない。 -- 管理人 2008-12-11 (木) 21:36:16
  • 両方です (^^) -- 2008-12-11 (木) 22:27:19
  • なるほど。要望や文句があったら遠慮なく書き込んで下さい。 -- 管理人 2008-12-12 (金) 08:37:13
  • Pekomo Beta3を公開。服(アミュレットや指輪も含む)にも対応した。 -- 管理人 2008-12-15 (月) 17:38:50
  • Beta4を公開。PythonとwxPythonの扱いに少しずつ慣れてきた。 -- 管理人 2008-12-28 (日) 20:15:08
  • Beta5を公開。 -- 管理人 2009-02-20 (金) 19:21:04
  • Beta6を公開。Omakase.pyを起動してApplyボタンをクリックすれば、有効になっている全てのModから防具と服と武器のデータをかき集めてomakaseフォルダ内の設定ファイルに従ってアイテムの性能を調節し、Data Filesフォルダに三つのespファイルとして出力するようにしてある。 -- 管理人 2009-03-27 (金) 16:24:01
  • GJ。最初から作り直したにワラタ。 -- 2009-03-28 (土) 14:08:45
  • おー。こんな地味なプログラムに興味がある奴が自分の他にいるとは…。なんか意見があれば書き込んでくれるとありがたいです。 -- 管理人 2009-03-28 (土) 19:19:14
  • 要望を書きたいのですが、今Morrowindすら入っていない状態で。Pekomoもそうですが、完成したら全部一気に入れてやり直そうと目論んでいます。 -- 2009-03-28 (土) 20:54:32
  • 思うにフォーラムに書いちゃっても良いんではないかと。たぶん外人さんにも需要はあるし。ただ英語の壁が問題ですが、Azura様の英語力なら大丈夫!きっと。 -- 2009-03-28 (土) 20:58:34
  • 自分は英語はまあまあ読めるけど全然書けないんです。公式フォーラムに投げたらどうなるかなーとたまに考えるけど、会話が成り立たない可能性が非常に高いです。いや、正直に言うと外人さんと会話すること自体が怖いですw。まあ、たまに公式フォーラムに書き込みしてるんで、この程度の片言英語でも大丈夫そうだと確信が持てたらModアイデアスレにでも書き込もうかな。でも怖いなー。 -- 管理人 2009-03-28 (土) 21:50:37
  • Beta7を公開。機能の整理や改善をした。Omakase機能のサンプル設定は武器のみ。Pekomoをインストールする場所はどこでも良いが、Morrowindがデフォルトのフォルダにインストールされていると想定している。module/config.pyをいじればMorrowindをデフォルト以外のフォルダにインストールしている場合に対応できるはずだが、試していない。動作しない場合は適当なpyファイルを右クリックして、Edit with IDLEを選択して、Run -> Run Moduleを実行すればエラーが表示されると思うから、それを教えて。 -- 管理人 2009-04-23 (木) 16:38:41
  • アイテムの素材を自動判定する仕組みを実装中。スクリーンショット。Modで追加されたアイテムは「素材不明」になる場合があるけど、わかる場合もある。誤判定を可能な限り少なくする方針。その代わりある程度の素材不明判定は許容する。で、素材を条件にデータをいじれるようにする予定。(シンプルイズベストの方針で行くことにしたので、この機能はやめる。 by 管理人 @ 20090811) -- 管理人 2009-05-17 (日) 15:36:53