OOO外しました。

なんかダンジョンのコンテナ開くと、イベント時のような操作不能状態になってしまう現象が発生したのでやむなく外し。

MOOとの競合(?)なのかなぁ。前のセーブだとそんなことなかったし、何かのScriptがぶつかったんだと思うんだけど(ただ、Form ID Finderで覗く限りvanillaコンテナにOOOのスクリプトが張り付いてるだけだったから、OOOだと思う、外したら直るし)。

loot menu経由だと中身が見えるコンテナ(つまり鍵がかかってない、トラップ対象ではないはず)でも発生するので本当になぞだった。

 

ということで再構築時のメモ

MOOの生産系deedのID。

3465F9 – outdoor forge deed

378607 – Saw Pit Deed

378605 – Workbench Deed

 

Anvilは比較的、既存の設置物が見つかるのでなし。

MOO + Fran + Enhanced Economy な環境だと序盤のお金稼ぎがきつい(からMOOの生産でなんとかやりくりして装備を調えるプレイがしたい)のに、生産設備がなくて生産出来ないというジレンマをなんとかするためにコンソールを使おう作戦。

それはそれでどうなの、という気もするから、Skyrim for Oblivion Crafting入れるのがいいのかなぁ、互換性どうなんだろうか。

Maskar’s Oblivion Overhaulの生産数が1個固定になるのに対処する。

タイトル通り。原因よく分からないんですよね。Script最適化系のmodが悪さをしているのかなんなのか。並列処理的なバグの出方をしている(CloseTextInput後に製作プロセスが呼ばれているような)。

大昔何か似たような問題に対処したような、対処の仕方を見たような気がするけど見つからなかったので力業。普通にプレイする場合は、ホットキーに登録して、インベントリメニューから抜けて(通常のゲームモードから)使用することで回避が可能。他のアイテムクリックでメニュー呼び出し系modでも大体同様

従って以下の内容はショートカットとか使いたくねぇぜ! という人向け。

スクリプト修正ではもちろん責任もちません。

MOOCraftScript

29行目くらいに

short mytmp

を追加。

MOOCraftGameMenuFunctionScript

(デバッグメッセージとか一杯仕込んだんで行数は適当)

45行目くらいに

set MOOCraft.mytmp to -1

を追加(特になくてもいいと思う、半分デバッグ用)。

65行目くらいに

if inputnumber > 0
set MOOCraft.mytmp to inputnumber
endif

を追加(let mystring := ToString inputnumber行の後くらいがほどいいんじゃないかな)。

 

78行目くらいに

set inputnumber to MOOCraft.mytmp

を追加(

if button != -1
let inputtext := GetInputText

の後くらい)。

何をしているか

この手のMenuScriptって無限に呼ばれるQuest Scriptでbuttnとinput textの状態を監視して動作するんだけど、実製作を行うMOOCraftSelectedEntryFunctionScriptの呼び出し前にInputTextおよびinputnumber(文字列を数値に変換したもの)がリセットされてしまうっぽくて、仕方なくGlobalな変数を保持してくれているっぽいMOOCraftScriptの変数に直前の入力を一時退避させている、というようなもの。

なので、ひねくれて0と入力すると正しい動作である1個の生産じゃなくて直前までの入力値が生産される。別にえやろ。

同じゲームデータでも直前までちゃんと動いてた気がするんだけどなーなんでだろなー。

追加してる変数はshortなんで多分destroyしなくても平気。

Maskar’s Oblivion Overhaul の使われていないresource ID

MOO.id_BoneBig 282
MOO.id_BoneThin 283
MOO.id_BoneClavicle 284
MOO.id_BonePelvis 285
MOO.id_BoneRibcage 286
MOO.id_BoneSkull 287

自分のID追加してたら気付いた。アップデートで使われるかもしれないけど(名前からして骨類だし)、この先アップデートあるか分からないし少しだけ自分のリソース増やしたい、という場合には使えるかもしれない。

Fundament Enchanting Addon の Scribingのバランスについて考える。

前の記事は、MOO環境なんだからInkwell生産したいよね、っていうことで書いてた。後は、Horadric CubeのGem変換をやりたいなという感じで。

ただ、Horadric Cubeに関しては、MOOのクラフトがアイテムIDではなくてnifで指定なんで、vanillaだとクラフト画面で分かりにくくて発狂するかもしれない(同じnif指定になりそう)。OOOとかGemsの高画質化とか入れて、名前も変えておけば多分大丈夫。

それはともかく、FEAのScribing。あれデフォ設定だとアホみたいに強い。

使えもしない自作魔法を適当に作って、更にそれを適度に育ったEnchanting でScroll化すると効果が増強されてそれはそれはとんでもないものができます。

まあ、高難易度で殺したくないNPCにbuffかける(ぼーちゃんとか騎士団とかBruma防衛隊とか……まーちゃんに当てるとチートなbuffを反射されてやっぱりチートになるんだけど)とかに縛ればいいんですが。

で、通常環境だとInkwellとかParchmentとか、それなりに集めるのが面倒臭いんだけど、MOOだと執筆キットのお陰で中途半端にそこそこ手に入る。そしてParchmentばかりが余る。

さて、じゃあInkwell相当をどうしようかとなるのだけど、生憎とFEAは(何故か)Parchment相当はBookタイプ、Inkwell相当はmiscタイプに限定している。そのため、Inkwell相当に余りがちなWelkynd Stone使っちゃえ、とはいかないのだ。

そして個人的なプレイスタイルにもよるのだけど、OblivionにしろSkyrimにしろ、序盤からがんがんエンチャントしていく(そもそもOblivionではMage Guild序盤では無理だが)スタイルではないので、どうせならScribing でEnchantを鍛えつつ、お金もある程度稼ぐかある程度回収するかして(何せFEA環境ではエンチャントしたアイテムを売るだけだと大赤字で、やはり序盤から鍛えることはできない……これはこれでVarla Stoneを使って無料にして…みたいな楽しみがあるんでいいんだが)、トレーナーに貢ぐだけのプレイから脱却したいところ。いや正直トレーナーに貢ぐのがデフォ設定だと多分一番楽。

Iniの設定を見て行く

set migFeaQ.maxInkwell to 1 ;

一つのInkwellを何回使えるようにするか。非MOO環境だったりするならこれは高くしないとやってられない気がする。ただEnchanting が育ってこれが高いままだと酷いことになる。

set migFeaQ.scribeNeedMastery to 0 ;0 ;If > 0, you need at least as much base skill level as the spell requires to be cast in order to scribe it.
set migFeaQ.scribeNeedMagicka to 1 ;0 ;If > 0, you need at least as much magicka as the spell costs to scribe it.

デフォルトだと両方ゼロ。何の制限もなく作成できる。

上は作成する魔法のスキル条件を満たしている必要があり、下は消費マジカを満たしている必要がある。

作成のたびにマジカを消費して……というようなパッチを考えもしたが、だるいだけなので却下。マスタリーについてはどんなに強力な魔法でも100あれば唱えられてしまうし、複合魔法にすれば調整も可能なのであんまり意味がないかな、と無効のまま。苦手なSchool でもScroll頑張れば作れるよ、の方がロマンがある気がするし。

消費マジカについては、アホみたいに強力なScroll作成に対する精一杯の抵抗。

set migFeaQ.scrollCostMult to 0.1 ;0 ;If > 0, multiplier to the scroll’s default cost when in the barter menu. Default is 0 so you can’t get money for nothing since they are almost free to make, but you can set it to what you prefer. 0.15 means 15% of default cost

スクロールの基本コストの何%が売買価格に反映されるか、というのが直訳になるものの、これは「エンチャントスキルで作成されたScrollが発揮する魔法を詠唱するとした場合の基本コスト」という意味。つまりEnchantingが成長すると売買コストも増加する。当たり前だよなぁ?

ゲームバランスを考えるなら0のままの方が気が楽。でも書写でバイトする魔法大学の苦学生とかやりたいじゃない、ということで0.1。

InkwellやParchmentのコストや、作成されるScrollのコスト次第で変えていいと思う(多分ちゃんとグラフを書くべき)。

set migFeaQ.fUseValue2 to 1.0 ;1 ;The experience gain base multiplier for scroll scribing, recharging with soulgems, and regular usage of enchanted weapons and scrolls.

こちらはscrollの作成、soulgemでのリチャージ、あるいはエンチャ武器やらScrollやらを使用した際の獲得経験値の倍率。つまりEnchant作成以外という感じ。

正直倍率をあげてもいい気はする。何故ならスキルが上がると自動リチャージ始まるし……、エンチャント武器を使うタイプならデフォルトか下げた状態で、恒常(CE)エンチャント防具と魔法、Scrollで戦うタイプなら上げて、という感じだろうか。

set migFeaQ.fScribingUseMult to 0.8 ;0.2 ;Multiplier to the skill use for scribing scrolls, based on the magicka cost of the spell.

作成するScrollのMagickaコスト(Scriptを見た訳でもないんで推測だが、これは魔法自体のコストだと思う、作成されたものであってもあんまり意味は変わらないけど)がどれだけSkill経験値に影響するか。

これが低すぎると、migFeaQ.maxInkwellの値を上げたくなり(まあInkwellじゃなくてParchmentのコストをあげりゃいいんだが)、販売価格を0にしない設定にすると無限に金が稼げる(経済系mod導入後だと不毛な商店巡り)ようになるので、調整が難しい、一旦4倍。正直10倍とかでもいいんじゃないかなとは思う。

;settings for how the Enchanting skill affects the magnitudes, durations or areas of the effects in the scrolls you scribe, set both scrollSkillMultxxx to 0 to disable this feature.
set migFeaQ.scrollSkillThreshold to 0 ;0 ;Enchanting skill threshold above which you’ll get a bonus instead of penalty to the above.
set migFeaQ.scrollSkillMultBonus to (1.0 / 100.0) ;0.01 ;Multiplier for each skill point above the threshold.
set migFeaQ.scrollSkillMultPenal to (1.0 / 100.0) ;0.01 ;Multiplier for each skill point below the threshold.

バランスの上での最難関。上から、作成されるScrollが標準性能となるSkill値、標準性能スキル値を1上回るごとに強化される割合、1下回るごとに弱体化される割合。下2つについては、0で強化も弱体化もされない。

なんとデフォルトではスキル値1から強化されていく状態。

強化されるのは効果量、時間、範囲…となっているが、基本的に時間が多いような。攻撃Spellや回復Spellは効果量かな?

多分、思い切って75くらいに設定してしまうのがScroll無双を抑制しつつScribing で日銭を稼ぐプレイスタイルに向くんじゃないかと。あるいは、scrollSkillMultBonusを0.01より更に低い値に設定して、Bonusとペナルティを非対称にして50や25程度に設定してもいいのかもしれない。

必要素材について考える

Scribingの必要アイテムはMigFEA – Custom Scribe Items.iniで設定。MOOのと大体同じ構造だけども、一揃えじゃないと機能しないのか、組み合わせ自由なのかは未テスト。

調整の方向性は2つで、Inkwellをレアにするか、Paperをレアにするか。vanillaに近い環境だと、Inkwellはギルドから拝借できる以外は意外に(というか全然)集まらないので、Inkwellの使用回数を2~3回に設定するだけでそれなりに楽しくダンジョンを探索できる気がする。魔術師系のダンジョンには大体置かれているしね。むしろ、vanillaでParchmentってどうやって入手するんだろう、という気になる。

尤も、MOOを外す気はあんまりないのでそれをベースに考えると執筆キット(Book Writing Kit)の存在が大きすぎる。

Paperアイテムを、例えば好色アルゴニアンメイドにして、(標準でresources登録されている)ParchmentやLichen, Gemsなどを素材にして作成するというのも一つの手段かと。

あるいは、OOO環境だとClutter類が豊富になっているので(単独modがあるかは知らない)、それなりにレアで窃盗フラグがつきやすいFine InkwellをScribingの必要アイテムとした上で、InkwellとWelkynd Stone Fragment, Gemsあたりを素材にしてFIne Inkwellを製造(非OOO環境なら適当なアイテムの追加modをでっち上げる)くらいが適当かなぁと。

基本的に、Paperは消費数を選べないのでInkwellで使用回数を微調整しながらInkwellアイテムの入手難易度を選べばいいのかなと。

 

正直こういう設定が煮詰まる頃には、自分でエンチャントするキャラに飽きてるんですけどね(Sigil Stone抽出設定にして、エンチャントを移植して好きな見た目にするくらいがバランス的にはいい気がする。自作魔法にしろ自作エンチャにしろOPになりがちなのは変わらないので)

maskar’s oblivion overhaul のクラフトに新しい素材タイプを追加したい。

参考(?):https://forums.nexusmods.com/index.php?/topic/9331378-need-help-maskars-recipe-and-resource-files/

要約:今はiniから素材を新規に追加はできないよ。追加したければmodから追加してね。

 

そうでしょうね(´・ω・`)

※補足:MOOに限らず最近のイケてるmodのiniは大体、ini settingというか、Scriptのバッチ処理になっているので、Maskar’s Oblivion Overhaul for craft resources.iniの内容を見る限り、どこかで MOO.id_resourceの変数を定義しつつ代入しているはず。しかし、iniファイルのいずれにもない(し、さすがにバッチでオブジェクト内の変数定義はできない、のかな?)

 

で、どうするか。

Maskar’s  oblivion overhaul.espのスクリプトをいじりましょう(当然、自己責任かつ非推奨)。

いじるところその1

MOOScript内にshort型でidを宣言している辺りがあるので、

short id_My01
short id_My02
short id_My03
short id_My04
short id_My05
short id_My06
short id_My07
short id_My08
short id_My09
short id_My10

みたいな感じで変数定義をしてあげる(前略resources.iniとcraft recipes.iniで使う変数名)。

CSEだと変数の多重定義で保存が弾かれるかもしれないのでその場合は多重定義のどっちかをコメントアウトで(ほんとに定義しかしてないところなんで多分平気…)。

いじるところその2

MOOInitCraftToolsFunctionScript内に

set MOO.id_resources的な記述が続いているので、

set MOO.id_My01 to 298
set MOO.id_My02 to 299
set MOO.id_My03 to 300
set MOO.id_My04 to 301
set MOO.id_My05 to 302
set MOO.id_My06 to 303
set MOO.id_My07 to 304
set MOO.id_My08 to 305
set MOO.id_My09 to 306
set MOO.id_My10 to 307

のような感じで続けて一意のIDを割り当てていく。連番じゃなくてもいいと思うけど、連番の方がいいんじゃないかな(これはその他にもIDを追加してるので298スタートだけど、通常は293から追加になると思う)。

定義文とあわせてExcelとかでまとめて一気に作っちゃうと楽で自分で追加したリソースの管理が楽そうっすね。セーブ肥大化するかもしれないけど。

いじるところその3

同じくMOOInitCraftToolsFunctionScript内の末尾に

; used for MOOCraft ( add 1 to total ids and types )
set MOO.totalids to 293
set MOO.totaltypes to 19

的な記述があるので、set MOO.totalids to 293 を増やした数だけ増加させる。10増やしたら303、15個増やしたら308。連番で増やしていたら末尾の数 + 1。

どっかのループで使っていそうな気がするから、多分、idに割り当てる数値は連番である必要があると思う。

ここまでやったらespを保存して(スクリプト書き換えはpatch espにしても全スクリプトがコピーされるので、正直バックアップをとって上書きがいいと思う)iniファイルを編集する。

Iniだけでなんとかならないの?

正直、自分がプレイするだけならなんとかならなくもない気がする。

iniのresources の記述としては

set MOO.ini_object_type to MOO.id_Inkwell
set MOO.ini_object_name to sv_Construct “Inkwell”

set MOO.ini_object_filename to sv_Construct “Clutter\Inkwell01.NIF”
SetStage MOO 50

となっていて、前2行がどの「MOO素材IDを設定するか」。

3行目がどのNIFファイルを素材として登録するか、4行目で登録となっており、1つのMOO素材IDに対して、複数のNIFファイルを割り当てることが出来る。

set MOO.ini_object_type to MOO.id_Bone
set MOO.ini_object_name to sv_Construct “Bone”

set MOO.ini_object_filename to sv_Construct “Dungeons\Misc\skel”
SetStage MOO 50

set MOO.ini_object_filename to sv_Construct “Dungeons\Misc\skull”
SetStage MOO 50

set MOO.ini_object_filename to sv_Construct “Clutter\ShamblesSkull”
SetStage MOO 50

こんな感じ。

で、例えばInkwell(インクつぼ)なんかは羽ペン以外の時には使わないので、

set MOO.ini_object_type to MOO.id_Inkwell
set MOO.ini_object_name to sv_Construct “Inkwell”

set MOO.ini_object_filename to sv_Construct “Clutter\Inkwell01.NIF”
SetStage MOO 50

set MOO.ini_object_filename to sv_Construct “\Gems\Topaz”
SetStage MOO 50

みたいなことをして、トパーズもInkwellとして登録してしまう。

 

後は、書写をするときにはインクつぼを持たないように、あるいは例えばトパーズを使う裁縫レシピを追加したとして、裁縫をするときにはインクつぼを持たないように、を徹底しさえすればコンソールでplayer.addItemして素材をゴミ箱に投げ込んで……とやるよりは、ゲーム的で没入感を削がない、安全な運用になると思う。

 

※ちなみに、id 293以降が空いてるなら~と思って定数を入力してみたけどやはりだめだった。多分MOO.totalidsがお仕事してるんだと思う。

今時のOOOをCobl Tweaksが拒絶するので躾けてみた

参考:https://forums.nexusmods.com/index.php?/topic/2950184-oscuros-oblivion-overhaul-136/page-11

意訳:

  • OOOのバージョン設定クエストの数値が、何故か最近1になってるからこれを37とかにすれば動くよ。
  • やってるけど動かないよ!
  • Cobl Tweaksにパッチしたのが公式の方にあるよ
  • 動いたぜ

結果:

  • クエストの数値変えてみたりSetStage 0にしてみたけど、何故か通らないよ
  • 公式フォーラムURL変わってて見つからないよ

(´・ω・`)

やったこと:

  1. Cobl Tweaks – OOO.espをCS(E)で開く。
  2. Gameplay > Edit Scriptsでスクリプトエディタを起動
  3. cobPatchOOOQS スクリプトを開く(Parent Pluginで探すと早い)
  4. 43~51行目までを;でコメントアウト

保存して保存して閉じる。MO経由だと(じゃなくても? 忘れた)ロードオーダーが変わるので直す。

で、スクリプトみてて気付いたけど、先に「OOOVersionInfoAvailable」をチェックしてて、バージョンの比較前にここで弾かれていた模様。

実際このTweaksが今のバージョンで動くかは不明なんでやるとしても自己責任で。他のところでバージョンの数値使ってるかもしれないしね。

Oblivion ReloadedのNightEye Shader

解凍してNightEyeフォルダに上書きするだけ。

色は変えずに明度を上げてコントラストを眠くする感じ。ini対応とかはよく分からないのでやってないちん。

 

ダウンロード:

NIGHTEYE000

 

※どっかでvanillaにshader replacer使えばいいじゃんw みたいなのみたけどCTDするんすよ。