Евгений "Джубей" Соболь
Многие игроки жалуются на низкую производительность The Elder Scrolls IV: Oblivion. Распространено мнение, будто в эту игру невозможно комфортно играть на компьютерах с бюджетными графическими адаптерами и объёмом оперативной памяти менее одного гигабайта. Надеемся, прочитав эту статью, вы сможете убедиться, что это мнение ошибочно, а также получить рецепт, как провести оптимизацию ini-файла для вашей системы.
Откройте в любом текстовом редакторе файл Oblivion.ini, который в Windows XP по умолчанию расположен по адресу C:\Documents and Settings\Имя пользователя\Мои документы\My Games\Oblivion (для этой цели можете воспользоваться обычным "Блокнотом" или, например, бесплатной программой Notepad++). Вы видите множество строк с параметрами, которым присвоены некие значения. Логически файл поделён на секции, название которых выделено с обеих сторон квадратными скобками. Для того, чтобы оставить комментарии (например, написать рядом с изменённым параметром его исходное значение), достаточно поставить в начале новой строки знак ";" (точка с запятой). Учтите, если после правки файла игра начинает вести себя неподобающим образом (например, часто "вылетать" на рабочий стол), достаточно удалить файл Oblivion.ini. При следующем запуске игры он создастся вновь (если, конечно, вы не удалили файл Oblivion_default.ini, расположенный в папке с игрой).
В рамках данного текста мы не преследовали цели рассказать о каждом параметре, а ограничились лишь теми, что, во-первых, существенно влияют на производительность, во-вторых, не могут быть изменены из меню игры. Наши рекомендации предназначены для владельцев более или менее современных систем (512 Мб ОЗУ и видеокарта класса NVIDIA GeForce 6 - необходимый минимум). Для запуска игры на старом аппаратном обеспечении используйте программу Oldblivion. Здесь вы можете ознакомиться с минимальными системными требованиями, советуем также просмотреть эту тему на официальном форуме Bethsoft (на английском).
Итак, приступим.
Увеличиваем производительность
Секция "General"
bRunMiddleLowLevelProcess=1
Выключение (значение "0") параметра присваивает процессу игры высокий приоритет в операционной системе. Это означает, что все ресурсы компьютера будут в первую очередь предоставляться игре, а уже затем остальным запущенным программам. Это увеличивает производительность, но может создать определённые проблемы, если игра "зависнет".
uInterior Cell Buffer=3
Значение параметра обозначает число последних посещённых игроком внутренних локаций, остающихся в оперативной памяти для ускорения их повторной загрузки. Так как внутренние локации и так загружаются весьма быстро, рекомендую значение "1".
uExterior Cell Buffer=36
То же, что и параметр "uInterior Cell Buffer", но влияет на число внешних локаций. Значение "36" рекомендуется для 512 Мбайт ОЗУ, "72" - для 1 Гбайта, "144" - для 2 Гбайт. Значение автоматически изменяется игрой, если с момента её последнего запуска изменилось значение параметра "uGridsToLoad=5".
bUseThreadedBlood=0
При использовании многоядерных процессоров включение (значение "1") этого параметра делает загрузку локаций более плавной.
bUseThreadedMorpher=0
При использовании многоядерных процессоров включение этого параметра делает загрузку локаций более плавной.
bAllowScriptedAutosave=1
Значение "0" запрещает игре автоматически сохранять прогресс в местах, где это было явно указано разработчиками. Например, сразу после создания персонажа. Пригодится, если вы хотите отключить абсолютно все автосохранения ("bSaveOnTravel", "bSaveOnWait", "bSaveOnRest", "bSaveOnInteriorExteriorSwitch").
bPreemptivelyUnloadCells=0
Включение параметра заставляет игру принудительно выгружать неиспользуемые данные из оперативной памяти. Впрочем, не рекомендуется включать этот параметр, если в Вашей системе установлено более 512 Мбайт ОЗУ. Кроме того, включение данного параметра вызывает графические артефакты при использовании плагина "Almost Everything VWD" (текстуры на сильно удалённых от игрока объектах становятся полностью чёрными). На некоторых системах включение данного параметра и вовсе приводит к "вылетам" игры при попытке выхода из неё.
iPreloadSizeLimit=26214400
Размер кэша, хранимого игрой на жёстком диске (см. чуть ниже параметр "bUseHardDriveCache"). Оптимальные значения: для 512 Мбайт ОЗУ - "26214400" (25 Мбайт кэша), для 1 Гбайта ОЗУ - "52428800" (50 Мбайт кэша), для 2 Гбайт ОЗУ - "104857600" (100 Мбайт кэша).
bUseHardDriveCache=0
Включение параметра разрешает игре использовать кэш на жёстком диске (без этого параметр "iPreloadSizeLimit" не имеет смысла).
bUseThreadedTempEffects=0
При использовании многоядерных процессоров включение этого параметра делает загрузку локаций более плавной.
bUseThreadedParticleSystem=0
При использовании многоядерных процессоров включение этого параметра делает загрузку локаций более плавной.
Секция "Display"
bLocalMapShader=1
Выключение параметра заставит игру не накладывать эффект "карандашного наброска" поверх карты местности, вернув её вид к тому, что использовался в The Elder Scrolls III: Morrowind. Ускоряет открытие карты местности.
iMaxDecalsPerFrame=10
Количество следов крови, которые могут одновременно отображаться на экране. Можно безболезненно понизить до пяти, если Вы не меняли значение параметра "fDecalLifetime" (если же вы его увеличили, то можно оставить без изменений).
iShadowMapResolution=1024
или iShadowMapResolution=256
Данный параметр отвечает за разрешение карт теней, отбрасываемых персонажами.
Стандартное значение составляет "1024". Параметр может принимать значения, равные степени двойки: "256", "512", "1024", "2048"... Чем меньше значение, тем выше производительность и ниже качество теней, отбрасываемых персонажами.
При установке в Microsoft Windows XP Home Edition Service Pack 2 (русская 32-х разрядная версия) патча 1.2.0416 стандартное значение ("1024") меняется на "256". Что странно, в 32-х разрядной русской Microsoft Windows Vista Home Premium значение не изменяется, то есть остаётся равным "1024".
Смена значения на отличное от "1024" может приводить к странной ошибке: при активации порталов (дверей, люков...) экран становится полностью черным, звуки зацикливаются, игра зависает так, что помогает только Reset. Данная ошибка проявляется только при использовании видеокарт NVIDIA (по крайней мере, сведений о проблемах с видеокартами ATi не поступало). Для избавления от этого бага достаточно исправить значение на стандартное ("1024").
bAllow30Shaders=0
Включение данного параметра увеличивает производительность игры на видеокартах с поддержкой пиксельных и вершинных шейдеров третьей ревизии (начиная с NVIDIA GeForce 6*** и ATi Radeon X1***).
bLandscapeBlend=1
Отключение параметра делает удалённый (LOD) ландшафт менее размытым. Это несколько ухудшает качество его отображения (хотя, конечно, дело вкуса), зато немного ускоряет загрузку внешних локаций.
bUseWaterDepth=1
Выключение параметра делает воду непрозрачной. Помогает избавиться от графических артефактов, возникающих при сильном увеличении параметра "uGridsToLoad" и снижает нагрузку на графический адаптер.
Секция "Audio"
bDSoundHWAcceleration=1
Выключение параметра запрещает игре использовать аппаратное ускорение звука. Это ухудшает его звука, но иногда помогает при частых вылетах игры на рабочий стол.
bMusicEnabled=1
Значение "0" выключает музыку в игре. Музыка в игре является динамической (то есть в зависимости от ситуации загружается соответствующая композиция), поэтому её отключение снижает нагрузку на жёсткий диск и увеличивает скорость загрузки локаций. Кроме того, иногда это помогает при частых вылетах игры на рабочий стол.
iMaxImpactSoundCount=32
Число звуковых каналов, используемых игрой. Если Ваша звуковая карта поддерживает их больше, чем 32, можно увеличить значение в ущерб производительности. Можно также попробовать уменьшить значение для улучшения производительности. В любом случае, рекомендуется использовать кратные восьми значения: "16", "24", "32", "48", "64"...
Секция "Pathfinding"
bBackgroundPathing=0
Включение параметра делает загрузку локаций более плавной.
Секция "Havok"
iNumHavokThreads=1
Число потоков, в которые обсчитывается игровая физика в системах с многоядерными процессорами. Рекомендуется значение "5".
Секция "GamePlay"
bSaveOnInteriorExteriorSwitch=1
Значение "0" отключает автосохранение во время перехода между внутренними и внешними локациями. Ускоряет загрузку локаций. Кроме того, иногда помогает при частых вылетах игры на рабочий стол.
Секция "BackgroundLoad"
bBackgroundLoadLipFiles=0
Включение параметра делает загрузку локаций более плавной.
bLoadBackgroundFaceGen=0
Включение параметра делает загрузку локаций более плавной.
bSelectivePurgeUnusedOnFastTravel=0
Включение параметра заставляет игру выгружать из оперативной памяти ненужные данные при использовании функции "Fast Travel".
Секция "Grass"
iMinGrassSize=80
Чем больше значение параметра, тем меньше плотность травы и лучше производительность. Рекомендуется значение "120". Кроме того, Вы можете использовать небольшую модификацию под названием Low-Poly Grass.
Секция "BlurShader"
Если вы не можете использовать режим HDR, то посредством изменения параметров этой секции можно без ущерба для производительности улучшить эффект Bloom (засветка белых областей изображения).
fSkyBrightness= 0.5000
Измените значение на "0.7000".
fAlphaAddInterior=0.5000
Измените значение на "0.8500".
fBlurRadius=0.0300
Измените значение на "0.0600".
iNumBlurpasses=1
Измените значение на "3".
Кроме того, вы дополнительно можете использовать небольшую библиотеку FakeHDR, эмулирующую эффект HDR (даже на видеокартах, поддерживающих лишь Pixel Shader 2.0). Единственная проблема: изменения не сохраняются на скриншотах.
Секция "OPENMP"
iThreads=3
Количество потоков вычислений, используемых игрой в системах с многоядерными процессорами. Рекомендуется значение "9".
Модификации и программы, повышающие производительность
Oldblivion - позволяет запустить игру даже на видеокартах серии NVIDIA GeForce 3. Кроме того, программа окажется полезной для слабых DirectX9-видеокарт (например, серия NVIDIA GeForce FX).
Low-Poly Grass - как позволяет догадаться название, модификация заменяет модель травы на менее полигональную.
DeParallaxer Mod - убирает parallax mapping (эффект объёмности текстур) со всех поверхностей в игре.
SpellStrip - упрощает эффекты заклинаний.
ATi AA Refraction Fix - устраняет аномальное понижение производительности игры, иногда возникающее возле врат в Обливион при использовании полноэкранного сглаживания на видеокартах ATi.
No Refraction Gate - полностью убирает эффект горячего воздуха возле врат в Обливион.
Chameleon No Refraction - упрощает эффект, накладываемый на главного героя при использовании заклинания "Хамелеон".
Operation Optimization - модификация заменяет множество игровых моделей на менее детализированные (хотя визуально этого совершенно не заметно).
Streamline - небольшой плагин, автоматически очищающий оперативную память от ненужных игровых данных.
Улучшаем качество
Секция "General"
uGridsToLoad=5
Чем больше значение параметра, тем больше радиус окружности вокруг игрока, внутри которой используются высокодетализированные текстуры и модели. Снаружи окружности для визуализации ландшафта используются спрайты и текстуры низкого разрешения. Может принимать только нечётные значения больше трёх ("5", "7", "9"...). При увеличении значения возможно возникновение графических артефактов при отображении воды (для решения этой проблемы см. параметр "bUseWaterDepth" секции [Water]). Параметр весьма конфликтный - его изменение может приводить к различным рода ошибкам. Если Вы всё равно решили его изменить, воспользуйтесь этими значениями: для 512 Мбайт ОЗУ - "5", для 1 Гбайта ОЗУ - "7", для 2 Гбайт ОЗУ - "9".
bCheckIDsOnInit=0
Значение "1" заставляет игру проверять корректность идентификационных номеров (ID) предметов/персонажей/заданий/... при каждой загрузке сохранённой игры. Это несколько замедляет скорость загрузки, зато позволяет исправить ошибки, например, со стадиями заданий. Наиболее полезно при частом отключении/подключении плагинов.
Секция "Display"
fDecalLifetime=10.0000
Число секунд, в течение которых отображаются следы крови (см. выше параметр "iMaxDecalsPerFrame"), прежде чем исчезнуть.
bHighQuality20Lighting=0
Включение параметра незначительно улучшает качество освещения, но ухудшает производительность.
fShadowFadeTime=1.0000
Параметр определяет число секунд, на протяжении которых происходит угасание/появление теней, отбрасываемых персонажами. Например, если Вы переключите вид от первого лица на вид от третьего лица, то заметите, что тень появляется не сразу, а по прошествии одной секунды. Чтобы исправить это, используйте значение "0.0000".
bAllowPartialPrecision=1
Значение "1" включает оптимизации пониженной точности расчетов в пиксельных шейдерах версий 2.0 и 3.0. При выставленном значении "1" компиляция шейдеров производится с учетом такой возможности, которая может быть особенно полезной для low-end видеокарт серии NVIDIA GeForce FX. Если же Вы хотите незначительно улучшить качество графики в ущерб производительности, используйте значение "0".
Секция "Water"
bUseWaterReflectionsMisc=0
bUseWaterReflectionsStatics=0
bUseWaterReflectionsTrees=0
bUseWaterReflectionsActors=0
Включение этих параметров включает в игре дополнительные отражения на воде: отражения предметов, объектов, деревьев и персонажей. Понижает производительность.
Секция "Grass"
bGrassPointLighting=0
Включение параметра незначительно улучшает качество освещения травы, но ухудшает производительность.
Прочие настройки
Секция "General"
SMainMenuMovie=Map loop.bik
Видеоролик, воспроизводящийся на заднем плане главного меню. Если удалить всё, что находится справа от знака "=" (то есть привести строку к виду "SMainMenuMovie="), в главном меню на заднем плане будет только статичное изображение.
SMainMenuMovieIntro=Oblivion iv logo.bik
Стартовый ролик, воспроизведение которого начинается перед отображением главного меню. Удаление значения ("Oblivion iv logo.bik") отключает воспроизведение этого ролика.
SIntroSequence=bethesda softworks HD720p.bik,2k games.bik,game studios.bik,Oblivion Legal.bik
Стартовые ролики, воспроизведение которых начинается сразу после запуска игры. Полностью аналогично предыдущему параметру.
bBorderRegionsEnabled=1
Значение "0" отключает все границы игрового мира, убирая предупреждения о невозможности продолжить движение дальше.
bCheckIDsOnInit=0
Значение "1" заставляет игру проверять корректность идентификационных номеров (ID) предметов/персонажей/заданий/… при каждой загрузке сохранённой игры. Это несколько замедляет скорость загрузки, зато позволяет исправить ошибки, например, со стадиями заданий. Наиболее полезно при частом отключении/подключении плагинов.
Секция "Display"
bAllowScreenShot=0
Включение параметра разрешает использовать кнопку Print Screen для снятия скриншотов (в формате *.bmp). Скриншоты сохраняются в папке с игрой (по-умолчанию для локализованной версии *:\Program Files\Oblivion, для оригинальной *:\Program Files\Bethesda Softworks\Oblivion).
iScreenShotIndex=0
Значение параметра добавляется к имени файла-скриншота (см. параметр "SScreenShotBaseName"). Увеличивается на единицу при каждом снятии скриншота (см. параметр "bAllowScreenShot"), чтобы избежать перезаписи файлов. При аварийном завершении работы игры значение параметра не сохраняется, что может привести к перезаписи файлов скриншотов. Чтобы избежать этого, измените значение параметра вручную: значение должно быть на единицу больше числа в имени самого "свежего" скриншота.
SScreenShotBaseName=ScreenShot
Собственно, имя файла-скриншота, к которому добавляется значение параметра "iScreenShotIndex". Можно порекомендовать, например, значение "oblivion_".
Секция "Control"
Если вы используете для игры в Oblivion игровой контроллёр Xbox 360, то можете улучшить работу этого контроллёра, заменив эту группу параметров:
fJoystickMoveFBMult=1.0000
fJoystickMoveLRMult=1.0000
iJoystickLookUpDown=6
iJoystickLookLeftRight=3
fJoystickLookUDMult=0. 0020
fJoystickLookLRMult=0.0020
этой:
fJoystickMoveFBMult=2.0000
fJoystickMoveLRMult =2.0000
iJoystickLookUpDown=5
iJoystickLookLeftRight=4
fJoystickLookUDMult= 0.7500
fJoystickLookLRMult=0.7500
bBackground Keyboard=0
Включение параметра помогает решить проблему, выражающуюся в том, что игра не реагирует на нажатия клавиш при использовании Oblivion Script Extender (http://obse.silverlock.org/).
bUse Joystick=1
Выключение параметра позволяет решить проблему, когда движение главного персонажа замедляется или происходит рывками. Это происходит, когда операционная система сканирует порты на наличие подключённых к ним устройств управления (в частности, геймпадов). Разумеется, при выключении параметра не удастся воспользоваться геймпадом для игры в Oblivion.
Секция "Interface"
fDlgFocus=2.1000
Обозначает степень приближения камеры при начале диалога с NPC. Чем больше значение, тем меньше приближение камеры. Попробуйте, например, значение "2.8000".
Секция "GamePlay"
bAllowHavokGrabTheLiving=0
Включение данного параметра существенно упрощает задачу перемещения тел мёртвых существ. Впрочем, включение этого параметра может приводить к различным ошибкам, а потому не рекомендуется.