Oblivion: Interesting MODs

OBSEの実装の進化に伴って、以前ならConceptは良いんだけどEngineの制約で不可能、としか思えなかったようなMODsが結構出てきていたり。今年のQ1/Q2辺りは忙しくてForumも殆どCheckしていなかったので、ここ暫く各所を巡ってみて気になったものを色々試してみた。

1) Windom Earl_s Oblivion Crash Prevention System

これはTitleが全てを語っているというか、Crashに繋がるExceptionをCatchして、CrashさせないようにしようというOBSEのPlugin。一旦環境を整えて、必要なPatchを作ったり、あるいはespそのものを編集してしまったりした後には、滅多にCTDは無いのでいまいちご利益は不明。

2) Fast Exit

Oblivionをすばやく、かつCrashを回避して終了するというOBSEのPlugin。終了時のCTDには殆ど遭遇しないので、Crashを回避してくれるのかどうかは定かではないけれど、普通に終了するとDesktopに戻るまで1分程度かかっていたのがあっという間に終了するようになったので結構いいかも。

3) Oblivion Stutter Remover

Stutterを低減してくれる、というOBSEのPlugin。過去のForumのTopicなんかも読んでみて何をしているかは原理的には理解できたけれど、これはSide Effectsがありそうという一品だ。

実際使用してみると、結構底上げはしてくれるのでいい感じではあるかもしれないけれど、Child ThreadをSleepさせたりしている影響かActorの挙動にかなり影響が出てしまう。INIファイルのiSleepExtraを-1にSetすればMain ThreadはSleepしないようになる、と記述があったので試してみたけれど、改善はするものの解決には至らずというところだ。

ActorのAIが正常にEvaluateされていない、あるいはOnLoadの途中で処理が止まってるんじゃないかと思えるようなCaseもあったので原因を突き止めるのに結構四苦八苦した。TravelしているはずのActorがただ立ち止まっていたり、HostileのActorがそばによっても敵対行動を取らなかったり。(話しかけると、あるいは暫くそばで眺めていると結構な時間が経ってからAIが動き出す)…後は遠距離からFire BoltやらArrowを撃ち込んで見ると素通りして行ったり…結構Quest系MODsに影響の大きそうなSide Effectが発生する。

少なくともこのPluginを外すと発生しなくなる。ただし、我が家の環境によって引き起こされる問題なのか、Genericな問題なのかは不明。よほどPerformance的に困っていない限りは人にはRecommend出来ないものという感じ。

どうしても使用しないと…という場合にはiSleepExtraは-1にSetすべきだろう。Main ThreadがCritical Sectionに行っている間にSleepとかしたら他のThread全てが止まってしまうだろうし。

4) Clean Up

これはなんと言うかSide Effectsの無いPurge Cell Buffers命令といえばいいだろうか。ReferenceされていないActorの死体、Objects、Quest Itemではない、そしてReferenceされていないItemをCleanupしてくれるMODである。

PurgeCellBuffersはその挙動上、PermanentなはずのものまでUnloadされるという問題があって、Side Effectsとして死体が棒立ち状態になっている、あるいはQuestが進行しなくなるなどの問題があったけれど、このMODの説明を見る限りそういうSide Effectsとは無縁でかつ不必要なものをClean Upしてくれる。

INIファイルは特に編集せずにそのまま使っても十分だろう。これを入れてようやくStreamlineのPCB機能を完全にOffにすることが出来た。

個人的にはかなりお勧めなMODだ。

5) Spawn

Cellの種類ごとにRespawn時間を設定できるようになるMOD。これを入れるとDungeonは2日でRespawnして、Playerの所有するCellは長めにとかそういう設定が可能になる。またCellに決められた手順に従ってRespawn時間をSetしておけば、このMODがその値を参照してRespawn時間をControlしてくれるというModder向けの機能も搭載。

後は通常Respawnは最後にPCが訪れてから、となるけれどOptionでPCのVisitを一回無視できるという設定もある。

まだ全ての動作を確認できるほど使ってはいないけれど、使い方によっては中々便利かも。

後は今BetaのOBSE 0018が正式ReleaseになるとUser Defined Functionが使えるようになるので、さらに出来そうなことが増えそう。ただ現状だとOBSE18ではArray辺りの処理が変わっているのか動かなくなるMODが多いようだ。Oblivion XPも盛大にErrorを吐き出すので今のところちょっと様子見というところ。

広告

Oblivion: Interesting MODs」への12件のフィードバック

  1. はじめまして。
    参考になる記事がたくさんあって見させてもらってます。
    CleanUpというMOD、私も使ってるんですがMODの説明がとてもわかりずらくて実際ゲーム内で検証するなどしてみたりして、これはアイテムやアクターを消去してセーブファイルの肥大化を防ぐもの?みたいな見解で落ち着いたんですが、何かいまいち消去の過程や基準みたいなものがわからずでした。で、なるほどそういうことか!と。私もコソコsとやってるブログに記事に書いてはみたものの・・・なんだかな~と思ってました。BOSSの最新マスタリストにもesp情報が追加されてたのでけっこう便利なMODかなぁと思ったり。お勧めということなので私も引き続き導入していきます!

  2. はじめまして、

    Clean UpのObjects消去は即効性があるわけではないので、分かりづらいと思います。Dead Actorや、Playerが一度も手を触れていない、動的に生成されたItemsなどは、次のRespawnのTimingで消去されないといけないのですが、これが正常に働かないケースがあります。たとえばBanditsが最大4人出現するListで1人がこの状態になると、この1人は、Engineから見れば既に存在している扱いになるので、次回のRespawnでは、最大3人までしかRespawnしない(+そこにある死体)という状態になってしまいます。このMODでは(iHoursToRespawnCell)時間以上経過した死体をDisableにしてくれるので、次のRespawn時までには安全にPurgeされるでしょう。

    Itemsに関して言えば、その死んでいるのにPurgeされない死体が保持しているもの、あるいはPlayerが一度でもPick-UpしてからDropしたものなどは、Game World内に永遠に残り続けることになります。これが続くと、最終的にはGame World内の人口が徐々に減っていき、また不要なItemsが増えることによりSave Dataが肥大化していくことになります。

    Clean UpではこれらをPurgeしてくれるのですが、この時にQuest Itemでは無いかなどをCheckした上で、Cleaner NPCに拾わせています。また、PlayerがDropしたItemsについては、もしかしたら気が変わって戻ってくるかも知れないということを考慮して、一定の距離以上はなれて、さらに再度戻ってきてもPickupしなかった場合に消去出来ると判断し、その後にPlayerが設定距離以上はなれた場合にCleaner NPCがPickupするという動作になっていたりします。

    実際、所持重量を超えたので、Dungeonの入り口などで、いったん一部をDropして売却してから再度戻ってくる、というようなPlayも考えられるので、その辺を考慮しているのだと思います。

    このClean Upと、COBLのゴミ箱なんかを組み合わせれば、不要なItemの処分に悩むことは無くなると思いますし、死体がいつまでも消えないという現象も殆どなくなるのではないかと思います。

    PCB(PurgeCellBuffers)は即効性もあり、非常に有効なのですが、本来PurgeしてはいけないPermanent ReferenceなObjectsまでPurgeしてしまうので、それぞれの環境でMemoryが必要十分にあるなら、PCBの使用をやめて、細かいごみの掃除にこのMODを使うのがいいのかなというところです。

    PCB命令による即効的なBuffer PurgeをしないとMemoryが厳しい、という環境の場合には、Streamlineや他のPCB Modのような即効性は無いので、このMODにそれらと同等のPerformance維持的な機能を求めるのはちょっと難しいと思います。

  3. こんばんは。
    おおー!詳しい解説助かります。
    確かに、CleanUp使ってるとItemの処分に困ったり、死体がいつまでも消えないという現象は皆無と言っていいほどです。

    ありがとうございました。

  4. ピンバック: Oblivion: Less Predictable Respawn « blauen Himmels

  5. Less Predictable RespawnというCellごとにRespawnの時間をRandomizeするMODを導入すると死体のClean Upまでの時間を、iHoursToRespawnCellとは別に設定できるようです 🙂

  6. ほほう!って遅くなりました。
    情報ありがとうございます。
    Less Predictable Respawn導入してみます。
    私はBashedPatchのTweakSettingの項目のCellRespawnTime[1day]にしているんですが、もしかして同じことなのかな?と思いつつも

  7. CellRespawnTimeを24 hoursにしている場合は、このMODは入れなくてもいいかもしれませんね。

    設定したMin HoursからMax Hoursの間で、各CellがRandomにRespawnするというMODです。Less Predictableという名前の示すとおり、いつRespawnするのかの予測を難しくしようというMODです。このMinとMaxの間を長めに取ると、そろそろRespawnしているのかな?という予測がかなり難しくなります。(Cell毎に違った時間でRespawnするようになるので)

  8. はじめまして。
    ここで紹介されている一通りのModを導入を試してみたのですがClean Upだけ、
    “This author has requested for this file to be blocked from viewing for the time being”
    とあり、現在公開停止中のようで、入手できませんでした。
    話題の組み合わせて使う方法も試してみたかったのですが・・・

  9. 今日Beth ForumのPostを読んでいたら、ある特定のCellのOwnerがPlayerかどうかを判別する部分のCODEが動作していない、(Engineの問題みたいですね)というPostがあって、今現在それを修正しようとしているようです。

    本来Playerの持ち家は、Safe Zoneを設定しなくてもDisplay Caseなどに並べたItemsなどはClean Upしない仕様なのですが、GetParentCellOwner == Player という条件判定にEngineがFalseを返すという問題のために、Safe Zoneを設定していない自宅のDisplay Case内のItemsなどもClean Upしちゃうという現象が起きます。

    私自身はCOBLのThe Luggageに全部放り込んじゃうので、全く気がつかなかったというか… :p

    Fixが完了すれば再公開されると思います。

  10. おお、グッドニュース。今から導入が楽しみです。

    それにしてもフォームをModネームで探しても見つからなかったのは、
    製作者名で場所が用意されてたからだったのか…
    それには思い至らなかったです。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中