2016年02月21日

(Sims3)シムをクリックすると、メニューが出るのが遅い!のを修正

長い事プレイを続けているといつの間にかストア品やCC品がどんどん増えている、Simsあるあるですね。
私も例に漏れず増えている口ですが、どうもオブジェクトが増える程、シムをクリックした時の反応が悪くなる気がします。特定のオブジェクトが原因とかではなくて、単純に数が増えるほど遅くなっている感じです。

私の環境(DCCacheフォルダが4.5G程度、tmpファイル除く)では、選択中のシム自身をクリックすると約3秒、他のシムにアクションしようとすると約1秒ほどの間、メニューが出るまでフリーズします。
我慢できないほどではないですが、やはり鬱陶しいのでその辺を調べて修正してみました。

例によって意味のない解説が続くので、興味のない方は飛ばしてください。


とりあえず怪しそうな所にタイマーを仕込んで実行時間を計測してみると、メニューのソートで時間がかかっているのが分かりました。
選択中のシムをクリックで2700ms位、他のシムをクリックで900ms位と、メニューが出るまでの時間の大半を占めています。
パイメニューは、最初にそのシムに出る可能性のあるメニューをすべてリストアップしてソート、それから相手が子供なのか恋人なのかなどで絞り込むので、最初の時点では800個とかあります。

特にストア品やCC品などの見た目だけ変えているオブジェクトが複数あると、同じメニューが多数登録されるので重くなるようです。
二つの文字列を比較することを考えるとわかりますが、例えば最初の文字が違えば1文字比較するだけで終わりますが、同じ文字列は最後まですべて比較しないと終わりません。実際は文字列以外も調べているのでもっと複雑ですが、大雑把にはそんな感じです。

まあそんな感じなので、ソート部分を適当に修正してやると、大体10倍程度に高速化できました。3秒が0.3秒になるくらいです。

頑張ればもう1桁くらい速くなりそうですが、大幅な改修が必要なので必要十分、という事でこれくらいにしておきました。あまり派手にやると他のスクリプトMODとの衝突、という事も起きかねないので。


例によってゲームコアを修正するので、渋滞修正&色々修正MOD(旧渋滞修正MOD)に含めてあります。
その辺りはこちらの記事からどうぞ。
インストール時の注意事項などもあるので、ダウンロードもそちらからお願いします。



.
タグ:SIMS3
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: