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がお仕事してるんだと思う。

カテゴリーTES