Skyrim Special Edition Mod データベース

 DLC2MiraakScript Fix [バグフィックス] ID:89890 Author:ferrari365 2023-04-24 03:08 Version:1.0.0

RATE: =271 G=2 [DOWNLOAD SITE]
TAG: [バグフィックス] [スクリプト] [Dragonborn] [バグ修正] [NO-ESP]
DLC2MiraakScript Fix Title画像

DLC2MiraakScript Fix

スクリプトのバグフィックス
ドラゴンボーンDLCのメインクエストが進むとミラークがランダムにドラゴンソウルを横取りするようになります。
これは一連のスクリプトイベントによって行われ、そのうちの1つは、横取りの後にミラークの出現と消滅を制御するスクリプトです。

残念ながらこのスクリプトには一見すると全く無害なものでありながら、
ゲームを壊す結果をもたらす可能性のあるかなり深刻な欠陥が実装されています。


■この問題について
問題なのはミラークの近くにいる間、ミラークが留まっている視覚効果です。
この効果は、余裕のないwhileループによって制御されており、ゲームの処理容量が限界まで高速で何度も実行されます。
バニラでは時間ごとのスクリプトの処理回数に上限が有るためこの問題はそれほど深刻ではありませんが、
スクリプトの実行とスループットを向上させるMOD(Papyrus Tweaksなど)を使用している場合、このスクリプトは文字通り起動直後にゲームのスクリプトリソースをすべて占有し、他の処理をさせる余裕がなくなり、そのためシーン自体がスタックして進行不能になることがあります。

この改造は、問題のあるwhileループに小さな待機時間を追加し、
できるだけ短時間の連続実行されないようにします。
またさらに何か問題が発生した場合に、2分後にシャットダウンする内部緊急停止処理を追加します。

■導入について
ミラークが現在ドラゴンソウルを横取りしてる最中のセーブでなければ、既存のセーブに安全にインストールできます。

Scripts Carefully Reworked Optimized and Tactfully Enhanced (SCROTE) - Simply Optimized Scripts AIO に同封
  • DLC2MiraakScript Fix画像1
Skyrim Special Edition Nexus, ferrari365. 24 Apr 2023. DLC2MiraakScript Fix. 24 Apr 2023 <https://www.nexusmods.com/skyrimspecialedition/mods/89890>.
2023-04-24 09:09:18 [編集する] [差分] [日本語化UP]

上記説明は古い又は異なる場合があります。導入の際はDescriptionを確認の上、自己責任でお願いします。
説明はどなたでも編集する事が可能です、古い又は異なる場合は編集にご協力をお願いします。

To users except in Japan
コメントコメントだけでも投稿できます。気に入ったMODはNEXUSでもENDORSEしましょう。
[Spoiler]テキスト[/Spoiler]とする事で隠しテキスト、#や>>後、半角数字でアンカーを使用可。
-
  • File (5MB以下) ZIP,RAR,7z,LZH
  • Version
  • Del Key (削除用)
  • Support Tool

▼ コメントは任意で入力して下さい(入力するとアンカーが付きます)

  • Name0/8
  • Comment0/1000
  • MOD評価
  • 書込
 
▼ Version : 1.0.0
#8
名無し
#7
まあ思えばSkyrimはもう12才だもんね。作り始めた時期を考えるともっと前なわけで。当時、スーパーマニアレベルがxeon dualとかで36スレッドくらいを実現してたレベルなわけだけど、まさかこんなことになるとは誰も想像してない実装なんだろうと思う。w

それはそうと、今ままでi9 7959XE+2080tiの旧環境でskyrim動かしてたんだよ。それで40-60fpsくらいでgpuが100%回ってなかった。
メインPCのグラボが調子悪いんで、13900環境に2080ti挿して、200GBのskyrimデータ入ってるところをマウントして動かしてみたら、60fpsどころじゃなくて2560*1440で動かしても重いところで48fpsだった。(GPU90%付近)

GPUに金を費やすよりCPUだなと改めてw
それはそうと、13900k環境だと何故かcpuコアが複数稼働するんだが、これがpコア、eコアというやつなのか。。。iRSTでディスクI/Oでeコアが沢山仕事してるってことか・・・。

余談が過ぎました。   ID:AxZTg1ZT Day:0 Good:3 Bad:0
  • Good
  • Bad
  • 89890
#7
名無し
#5 #6
Wait処理は呼びだしたスクリプトだけを一時停止するものやから基本的に問題ない。
PapyrusTweak前のスクリプトは同期処理周りの関係で各命令実行時に実質0.01ぐらいのWait処理を挟むような事やってたから今回みたいなwhile文での無限ループで(表面上だけは)問題は起こらなかったけど、
PapyrusTweak後は一部の命令以外では各命令実行時の実質0.01ぐらいのWait処理が消えるからWaitが入ってないwhileの無限ループは問題が発生するようになる。

まあ、Scriptエンジンはアレなのは確か。
PapyrusTweakの修正内容見る限りだと元々のエンジンはスクリプト処理をロースペで無理やり動かすために安定性度外視してる(しかも弊害でPCスペックの向上の恩恵受けづらくなってる)としか思えんような内容だったし。   ID:Y3YjQxMz Day:171 Good:1 Bad:0
  • Good
  • Bad
  • 89890
#6
名無し
#5
流石にScriptエンジン(インタープリタだろうけど)レベルで制御してるということなんですかね。しかし、それにしてはCTDやStackが多いこと多いことw
それなりというかトップレベルの技術力ありそうな人も開発してるんで、どちらかというと相当にエンジンがク○なんだろうなって思ってました。   ID:AxZTg1ZT Day:1178 Good:0 Bad:0
  • Good
  • Bad
  • 89890
#5
名無し
#4 wait中はそのスクリプトの実行が止まるだけで、他のスクリプトは動きますね。試しに2つのスクリプトが同じトリガでwhile文とwaitが動くようにしてみて、2つ同時に動くことが確認できました。みんなwait使いまくってますし、他のスクリプトの動きも止めてたら阿鼻叫喚なことになってたでしょうね…   ID:JiOGY0YT Day:0 Good:0 Bad:0
  • Good
  • Bad
  • 89890
#4
名無し
シングルスレッドでwhileは・・・。
wait入れても減るのは負荷であって処理待ちは出そうだけど違うの?
まあないよりはマシなんだけどね。
FastSMPはスレッド分離できたみたいだし、別スレッド駆動のタイマーとか実装されれば回避できるんだろうけど。   ID:AxZTg1ZT Day:1178 Good:0 Bad:0
  • Good
  • Bad
  • 89890
#3
名無しGood!
#2 排他処理のためですかね? While文入ってる間は他の処理実行できないんで。実行頻度考えてちゃんと書いてれば問題ないから、スクリプトにwhile入ってるだけで毛嫌いしないでほしいかな
そういやPapyrusTweak入れた最近ではミラークに会ってももいないやwと思い出したので、同作者さんのDLC2dunSeekerInvisScript Fixと合わせて導入します。   ID:JiOGY0YT Day:0 Good:0 Bad:0
  • Good
  • Bad
  • 89890
#2
名無し
>バニラでは時間ごとのスクリプトの処理回数に上限が有るためこの問題はそれほど深刻ではありませんが
Papyrus Tweaks NGがきっかけで表出したみたいな感じだけど結局そもそもの設計が致命的なのでは…と感じてしまう
なんでそんなにwhileループが好きなのか…   ID:hkNzliNG Day:0 Good:1 Bad:0
  • Good
  • Bad
  • 89890
#1
名無しGood!
迷惑すぎるw   ID:RmZGRhZT Day:57 Good:0 Bad:0
  • Good
  • Bad
  • 89890
機械翻訳 説明引用 [原文]
「DLC2MiraakScript を修正し、非常に非効率的な while ループを作り直すことで、ゲームのスクリプト リソースをすべて占有し、その過程でスクリプト エンジンを破壊し...」
Real Time Information!CLOSE
1732160070 1732102069 1732177929 none none
89890
▲ OPEN COMMENT