Каталог




Главная » Моды » TES V: Skyrim » Инструментарий » Изменение флага "Is Full LOd" для списка объектов



Изменение флага "Is Full LOd" для списка объектов


Zergii



Статус: Offline
Автор: Zergii
Версия: v.1_007
Распространение: Свободное распространение





Добавлено: 10 декабря 2012
Просмотров: 12185 | Загрузок: 270 | Комментарии: 28

Понравилось: 33 пользователям



Данная программа представляет собой скрипт управления интерфейсом редактора CreationKit написанный на языке autoit. Программа позволяет автоматически выставить флаг "Is Full LOd" для группы объектов выделенных в окне "Object Window".

 В Skyrim существует очень большая проблема, это результат развития всей игровой отрасли в пользу консолей. Несмотря на "бесшовный" игровой мир дальность детальной прорисовки ландшафта вызывает сильное отвращение. Поднявшись на любую возвышенность, мы видим голые гладкие равнины, на которых видны лишь крупные объекты и деревья. 
Разработчик оставляет нам лишь один способ увеличить дальность прорисовки, это известный всем параметр ugridstoload. Максимум игру удается запустить с параметром ugridstoload=11. После примерно 10 часов такой игры начинаются вылеты, да и падение производительности просто катастрофическое. Более менее стабильно можно играть с значениями 7 или 9.
В чем главная проблема параметра ugridstoload? Этот параметр загружает ячейки мира полностью, все постройки, камни, живые и неживые предметы. Каждый живой объект начинает взаимодействовать с окружением, что порождает кучу скриптов. Нагрузка на процессор возрастает геометрически, "захлебываются" самые мощные системы.
Оно нам надо? Мы хотели убрать "пустоту", а получили тормоза.. при этом даже с параметром ugridstoload=11 дальность прорисовки оставляет желать лучшего.

 Решением может стать отрисовка объектов, не порождающих дополнительных скриптов: скалы, камни, строения, дороги, мосты и т.п. Все эти объекты сгруппированы в Creation Kit в разделах Static/MovableStatic. 
Правильным способом отображения удаленных объектов является рисования LOD для объектов. Возможно кто-то и пойдет этим правильным путем. Я предлагаю простой способ отобразить объект на большом расстоянии. Для этого достаточно в свойстве каждого конкретного объекта установить флаг "Is Full LOD".

 Рекомендую запускать скрипт из такого положения CK:


Теперь попробую описать возможные вопросы и ответить на них:

1. Как это работает?
Скрипт выполняет движение мышки и нажатия кнопок на клавиатуре так, как будто это делаете вы.
Как правильно написал пользователь под ником Ansderay:
скрипт просто проделывает лишнюю монотонную работу за вас, дабы не сидеть и не проделывать 100 раз одно и тоже действие над каждым объектом вручную.
Однако лучше не отходить от компа далеко, т.к. программа в некоторых случаях срабатывает некорректно, сразу останавливайте через F9.

2. Я не доверяю чужим exe.
Я тоже. Исходник находится в архиве вместе с exe, просмотреть можно блокнотом(удобнее использовать специальный редактор с подсветкой синтаксиса).
Для запуска исходника без компиляции прочитайте тему:
Описание

3. Как и где запускать эту программу?
Запускать необходимо после запуска CreationKit, из положения указанного в скриншоте выше. Для демонстрации работы программы лучше использовать объекты группы: Bridges(их мало, они все разные, реализуют почти все возможные варианты)

4. Программа вылетает, что делать?
Собственно вылетает из-за тормозов/глюков самого редактора. Первым делом необходимо увеличить значение dalay для Use Report Window. Эта задержка будет выполняться каждый раз, когда в окне Use Report будет происходить выбор новой ячейки мира. По сути это время загрузки в редактор ячейки для редактирования(грузит не 1 ячейку, а ячейки ограниченные ugridstoload=5 как определено в настройках редактора), зависит от вашего железа.

5. Вылетает даже если ставить задержку Use Report больше 4с
Существует второй случай, когда CreationKit гарантированно вылетает. Это когда количество последовательно загруженных ячеек превышает значение 256-300(точно установить невозможно). При этом размер используемой редактором оперативной памяти не имеет принципиального значения, я видел значения до 2.9 Гб выделенной редактору памяти. Первым признаком приближения такого вылета является прекращение полной отрисовки окон, обычно перестает отрисовывать элементы окна "Reference".

В таком случае необходимо остановить выполнение скрипта F8(F9), запомнить номер последней ячейки обработанной скриптом, сохранить внесенные изменения в esp, перезапустить CreationKit, выполнить загрузку esp, перезапустить выполнение скрипта с последней обработанной ячейки(можно с взять с запасом значение меньше).

Проблема вызвана загрузкой ячеек мира во время обращения к объектам, т.е. если бы все редактируемые объекты были в 1 ячейке мира, то вылета не последует даже если объектов будет 1000. Creationkit частично выгружает ячейки мира которые уже обработал, но делает это только после выполнения сохранения и при переходе на другой тип объекта.

6. Что за "Kill Render"?
Это попытка запретить СК анимацию в окне Render, хотя для скрипта лучше отключить непосредственно загрузку самой ячейки мира. Выполняется не совсем корректно, т.к. отключение этого окна не предусмотрено в СК. Выключено по умолчанию в последней версии, т.к. часто приводит к вылетам.

7. Что делает "Handle objects Has Distant LOD"
Позволяет обрабатывать объекты имеющие отдельные Distant LOD.
Существует глюк, при котором такие объекты пропадают при приближении к ним. Обойти его НЕЛЬЗЯ. Но вы можете обрабатывать объекты к которым в игре нельзя приблизиться и взаимодействовать. Например можно выставить флаг "IS Full LOD" для объектов внутри городской стены. Тем самым вы добьетесь изменения внешнего вида города, а когда попробуете подойти к объекту, он будет невиден из-за стены.

Флаг "Is Full LOD" можно безболезненно использовать для любых объектов не внесенных в LOD текстуру. Если вы создадите такой объект, то он появится в игре в соответствии с дальностью загрузки ячейки мира. После того, как вы увидите его первый раз и выйдите далеко за пределы ячейки мира объект останется виден. Объект будет виден вплоть до перезагрузки сейва(возможно до очистки загруженных ячеек памяти).

8. install / remove the flag ""IS Full LOD"
Главное для чего создавался этот скрипт. Позволяет как установить, так и убрать значение флага. Однако гораздо проще сохранять каждую измененную группу в отдельный esp, а при необходимости просто его отключать.

9. "This is the first launch"
Особенность таблицы Cell View в том, что одновременно загружаются несколько рядом находящихся ячеек мира. Соответственно объектов в таблице может быть больше чем в выбранной ячейке мира, и скрипт их все сразу обработает. При загрузке другой ячейки обработанные ранее объекты будут помечены *. Это позволяет больше не редактировать эти объекты и уменьшить время работы скрипта.

10. "Only a selected group"
Выполнение скрипта только для выделенных групп объектов. Если убрать, то будет пытаться обработать все что видит в таблице "Object Window".

11. "skip Interior"
Пропускаем все объекты в ячейках помеченных как "Interior". Скорее всего это все объекты внутри чего-то и для них нет дальности прорисовки.

12. "delay interface(ms)"
Задержки необходимые для работы интерфейса, т.к. СК не может мгновенно не только загрузить ячейку мира, но и просто отрисовать окно.
"Window Wait Delay" и "Mouse Click Delay" являются глобалными и действуют для всех окон.
"Use Report window" и "Reference window" только для этих 2х окон.

13. "First cell""Last cell"
Работает только для 1 выделенной группы объектов.
Позволяет указать количество обрабатываемых ячеек. Отсчет начинается с 0(это первая ячейка).
Если указать 0 и 50, то обработает первые 50 ячеек.
Если указать 50 и 100, то обработает вторые 50 ячеек или, если ячеек меньше, до последней с номером <100.
Если указать 50 и 0, то обработает все ячейки после 50.

Не рекомендую обрабатывать больше 200 ячеек за один запуск.

14. Как работает пауза?
Нажав паузу вы останавливаете скрипт, и получаете полный доступ к интерфейсу. Например сможете сохранить выполненные скриптом изменения. Но не закрывайте/изменяйте окна открытые скриптом(Object,Cell View, Use Report и т.п.), это приведет к ошибке скрипта(лучше прервать выполнение скрипта если сделали изменения). Можно свернуть СК и потом вернуться и продолжить выполнение скрипта.
Лучше выполнять паузу во вреся загрузки новой ячейки мира.

15. Какие ограничения использования?
Никаких ограничений нет. Есть ссылка на исходник. Делайте что хотите.

16. Для кого это надо?
Прежде всего я это делал для себя.

17. Почему интерфейс на английском?
Во вторую очередь эта программа может пригодиться для людей делающих подобный мод
Skyrim Distant Detail
c отрисовкой удаленных объектов, а это надо на английском.

18. Главный вопрос, какое падение производительности?
Падение СУЩЕСТВЕННОЕ, но вы сможете сами выбрать какие объекты отображать на дальних планах. Кроме того, никаким ugridstoload вы не сможете добиться такой детализации на дальних планах. Это падение значительно легче переноситься, чем использование ugridstoload=11, т.к. объекты у вас просто загружены раньше чем положено и их уже не нужно подгружать потом.

19. Где результаты?
Результаты через некоторое время на этом сайте и возможно на nexus.

Скорее всего обновлений больше не будет. Всем удачи.





Скачать (вес не указан):

Для распаковки архивов *.7z используйте архиватор 7z.
Для распаковки архивов *.Rar используйте архиватор WinRar.



Скриншоты | Images:





Хотите больше русскоязычных модов? Станьте нашим переводчиком! Научим и поможем. Обращайтесь в тему на форуме. Будем рады вас видеть :)


Помогите нам в поиске качественных модов на локализацию! Если знаете хорошую модификацию, которой нет в базе, пишите в тему на форуме и мы постараемся добавить ее в базу. Большое вам спасибо! :)

Всего комментариев: 28

Информация
Для того, чтобы оставлять комментарии к данной публикации необходимо зарегистрироваться .
Набор в команду сайта
Наши конкурсы











Ответ на жалобу смотрите в разделе жалоб