В данной подборке материалов собирается база знаний по созданию своих наборов уровней, дополняющих сюжет игры или рассказывающих другую историю о приключениях Гарри Поттера. Тема модостроения (МОД – сокращение от “модификация” – частичное или полное изменение сюжета основной игры).
Чтобы сделать свой МОД, нужно придерживаться указанных ниже рекомендаций. Имя мода, для примера: hp-games_test
- Рисуем будущий МОД на бумаге: взаимное расположение комнат; форма комнат; места для ловушек, сундуков, врагов. При наличии опыта – можно и примерно определиться с размерами локаций (в единицах длины движка) и текстурами.
- Пишем сценарий: по какому маршруту должен двигаться игрок, где должны стоять нужные триггеры, какие нужно использовать диалоги, какие будут использованы сцены-на-движке (cutscenes).
- После того, как ваш проект будет представлен указанными выше бумажными документами, 10 раз просмотрен, то можно приступать к следующим этапам. Напомним: этап на бумаге кажется ненужным только новичкам и гениям. Но на самом деле он экономит уйму сил и времени, особенно если МОД делается в свободное время, и его создание затягивается на месяцы.
- Теперь определяемся с файлами. Нам потребуется создать, как минимум, один файл уровня (с расширением unr), пакет с текстурами (utx). Дополнительная музыка, сценарии для сцен-на-движке обычно используются при необходимости.
- Пакет текстур. Если вам хватает текстур самой игры, то этот пункт можно пропустить. Но если вы хотите использовать и другие текстуры, то здесь есть варианты:
- просто набрать пакетов из других игр и использовать их в своём МОДе. Способ достаточно простой, но чем больше у вас будет работ, тем больше путаницы будет вызывать этот способ. Также все заимствованные пакеты нужно поставлять вместе с МОДом, в результате чего объём архива получает достаточно заметным, а если забыть положить в архив МОДа ходя бы один пакет текстур – у пользователей МОД может не заработать;
- модифицировать существующие пакеты текстур (добавить свои текстуры в существующие пакеты). Способ плох тем, что если так будут делать 2 и более автора или же один автор будет использовать разные наборы текстур в файлах с одинаковыми именами, то пользователь не сможет нормально их использовать, получая ошибки во время запуска игры или просто незапускаемый уровень. Причём от этого вполне могут пострадать и оригинальные уровни игры (если перепаковка выполнена с ошибкой);
- третий вариант идёт посложнее, но позволяет избежать проблем предыдущих способов. Он заключается в том, что делается копия любого пакета текстур оригинальной игры, переименовывается так, чтобы имя совпадало с именем вашего МОДа (но с расширением utx ;-). Например: hp-games_test.utx). После чего из пакета можно удалить ненужные текстуры и добавить свои. Как это сделать – указано на этой же странице, только пониже ;-). Если МОД достаточно объёмный, то можно сделать несколько таких пакетов, с добавлением номеров: hp-games_test_01.utx, hp-games_test_02.utx. Это позволит избежать многих проблем с этим МОДом в будущем. Сохраняем в папке Textures тестовой игры (которую вы подключили к редактору при его настройке). Ну и лучше оставить в этом пакете только те текстуры, которых нет в оригинальных пакетах игры – это позволит уменьшить размеры вашего МОДа.
- Создание файла уровней. Для этого переходим непосредственно к редактору уровней и создаём новый файл (hp-games_test.unr). Сохраняем в папке Maps тестовой игры (которую вы подключили к редактору при его настройке). Если в вашем МОДе будет несколько уровней, то файлы уровней лучше нумеровать: hp-games_test_01.unr, hp-games_test_02.unr, hp-games_test_03.unr,…
- Создаём первую комнату и размещаем в ней модель Гарри (берём из дерева актёров, подсказка о путях приведена ниже в этой статье) и PlayerStart (щёлкнуть дополнительной (правой) кнопкой мыши внутри комнаты и выбрать пункт ‘Add PlayerStart’ – “Добавить точку начала”). Для ФК при этом ещё и придётся повозиться с переносом камеры из другого уровня – иначе уровень может не запуститься. Сохраняем результат.
- Создаём остальные локации согласно бумажному плану-проекту, обклеиваем их текстурами из нужных нам пакетов текстур (или созданного нами пакета). Сохраняем.
- Создаём головоломки, ловушки, расставляем мебель, врагов, точки патрулирования и прочее. Сохраняем.
- Запускаем сборку уровня (Build All). Отдельно запускать построение путей, геометрии и освещения не обязательно – это имело смысл на момент создания игры, так как позволяло сэкономить время, если вы с момент последней сборки изменили только пару путей или добавили пару стульев в уровень.
- После завершения процесса сборки сохраняем и можем попробовать запустить уровень в игре. Если МОД нормально проходится до конца, то можно поделиться им, отправив на публикацию к нам или на свой сайт.
- Перед отправкой МОДа на публикацию имеет смысл установить МОД на сборку игры без МОДов. Конечно, если это возможно. Перед публикацией мы проверяем уровень на работоспособность и, в случае успеха, создаём снимок экрана (часто и видеопрохождение) и публикуем МОД.
- Удачных МОДов 🙂
Левая кнопка мыши + движение мышью – перемещение по координатам x,y и поворот камеры влево-вправо.
Правая кнопка мыши + движение мышью – поворот камеры.
Левая и правая кнопки мыши + движение мышью – перемещение влево-вправо, вверх-вниз.
CTRL+ALT+SHIFT + движение мышью – возможность выделить сразу несколько элементов сцены
Примитив (геометрический примитив) – простая модель, объёмная геометрическая фигура (куб, конус, сфера). Применяется для создания более сложных объектов.
Surface (Поверхность) – обычно внешняя сторона примитива. У куба их 6. У более сложных фигур намного больше. Для полых геометрических примитивов также характерны внутренние поверхности.
Cube (куб) – геометрический примитив. Применяется для создания помещений, локаций в целом, кубов для решения головоломок, простых моделей (шкафы, подстриженные кусты, чемоданы с плоскими поверхностями).
Cylinder (цилиндр) – геометрический примитив.
Sheet (лист) – геометрический примитив. Плоская пластина. Применяется для создания неосновных стен, платформ для прыжков.
Cone (конус) – геометрический примитив.
Volumetric (пересечение) – геометрический примитив. Применяется для создания простых моделей кустов.
Tetrahedron (Sphere) (сфера) – геометрический примитив.
Curved Staircase (изогнутая лестница) – геометрический примитив.
Spiral Staircase (спиральная лестница) – геометрический примитив.
Linear Staircase (прямая лестница) – геометрический примитив.
BSP based terrain (поверхность на основе BSP) – сложный объект для создания сложных поверхностей, вроде холмов, гор, впадин.
Mover (подвижный элемент) – модель, обычно получаемая из одного или нескольких примитивов. Основная особенность: может двигаться по заданному пути. В данном подвижный элемент может менять направление движение до 9 раз (имеет 9 ключей перемещения – промежуточных положений). Применяется для создания открывающихся дверей и любых подвижных конструкций.
Projection (Проекция) – определение того, как будет выглядеть сцена, если на неё посмотреть с определённой стороны. Редактор предоставляет доступ к проекции сверху (Top, вид сверху), фронтальной проекции (front, вид спереди), боковой проекции (side, со стороны).
Texture (текстура) – обычно графическое изображение (иногда – набор изображений), размещаемое на поверхности или поверхностях примитива или модели. Обычно если размер текстуры меньше размера поверхности, то текстура располагается в несколько рядов, пока полностью не заполнит поверхность.
Анимированные текстуры (например, – текстуры воды) могут представлять собой плоские фигуры со многими поверхностями с нанесёнными на них обычными текстурами.
Package (Пакет) – файл со сложным строением. Позволяет хранить в упорядоченном виде текстуры, звуковые фрагменты и другие ресурсы.
Actor (Актёр) – сложная модель, которая может содержать набор встроенных сложных анимаций движений (Гарри, Рон, Гермиона) или просто представлять из себя элементы мебели, триггеры и другие элементы, которые можно добавить в сцену.
Scene (сцена) – обычно под этим понимают фрагмент уровня. имеет достаточно много значений.
Collision (Столкновение) – происходит при соприкосновении поверхностей или внутренних каркасов двух и более моделей.
CutScene (заранее созданная сцена) – специальный сценарий, согласно которому движок игры в реальном времени строит и отображает заранее срежессированные сцены, где актёры действуют без вмешательства игрока.
PatrolPoint (Точка патрулирования) – набор этих актёров позволяет задать траекторию движения второстепенных персонажей (огнекрабов, улиток). Пример использования приведён в других подразделах данной страницы.
Camera (Камера) – специальный объект игры. Через него игрок видит игровой мир.
Trigger (Триггер) – в данном редакторе это чувствительный элемент, который может запускать различные игровые механизмы. Пример: триггер заклинаний реагирует на попытку применить заклинание, музыкальный триггер запускает указанную мелодию, если его потревожить (например, пройти сквозь него).
Build (Сборка уровня) – процесс создания игрового мира (или его части) с использованием задействованных в уровне моделей и примитивов. Может включать в себя: построение путей перемещения (по точкам патрулирования, например) неосновных персонажей (улитки, огнекрабы), построение карты освещения, расчёт границ игровых зон и многое другое.
Сохранение уровня – запись уровня на диск в виде файла.
unr – расширение файлов пакетов, содержащих игровые карты (уровни) игры. Обычно не содержит текстур, звуков и других ресурсов. Изменение в основных пакетах игры приведёт к проблемам совместимости у пользователей модов.
utx – расширение файлов пакетов для хранения текстур.Изменение в основных пакетах игры приведёт к проблемам совместимости у пользователей модов.
uax – расширение файлов пакетов для хранения звуков (озвученные реплики). Изменение в основных пакетах игры приведёт к проблемам совместимости у пользователей модов.
u – расширение файлов пакетов для хранения программных классов, моделей, специальных звуков к ним и текстур. Работа с классами осуществляется прямо в самом редакторе. Модели и текстуры, в виде Актёров, добавляются в “дерево актёров” самим редактором. Существуют программы для просмотра и экспорта содержимого этих пакетов (импорт в таких программах обычно недоступен). Изменять содержимое стандартных пакетов крайне не рекомендуется – возникнут проблемы совместимости у пользователей модов (аналог “ада библиотек функций (dll)” у программистов).
int – обычно это расширение файлов, представляющих собой текстовый файл, содержащий игровой сценарий. Изменение основных сценариев игры приведёт к проблемам совместимости у пользователей модов.
- Открыть 2 экземпляра редактора
- В одном экземпляре редактора (1) открыть файл, из которого нужно что-то позаимствовать
- Во втором экземпляре редактора (2) предполагается делать свой уровень на основе вставляемого фрагмента
- В редакторе (1) выделяем нужный фрагмент сцены и копируем его в буфер обмена (пункт Copy в меню)
- В редакторе (2) вставляем скопированный фрагмент
- Удаляем лишние элементы, включая ненужные триггеры, персонажей и прочих объектов и актёров
- Закрываем редактор (1) без сохранения и продолжаем работу в редакторе (2).
Управление невидимыми стенами с помощью Люмос
Смотрим в статье Атоса
Сколько всего доступно заклинаний?
ФК: порядка 18, но нормально реализованы только те, что были задействованы в игре. Остальные либо вообще не реализованы, либо требуют вмешательство и код движка.
ТК: 27, но нормально реализованы только те, что были задействованы в игре. Остальные либо вообще не реализованы, либо требуют вмешательства в код движка.
- Alohomora (Алохомора)
- Incendio (Инсендио)
- LocomotorWibbly (Локомотор Виббли)
- Lumos (Люмос)
- Nox (Нокс)
- Petrificus Totalus (Петрификус Тоталус)
- Wingardium Leviosa (Вингардиум Левиоса)
- Verdimillious (Вердимиллиус)
- Vermillious (Вермиллиус)
- Flintifores (Флинтифорс)
- Reparo (Репаро)
- Mucor Ad Nauseum
- Flipendo (Флипендо)
- Ectomatic (Эктоматик)
- Avifores (Авифорс)
- FireCracker (ФайрКрэкер)
- Transfiguration (Трансфигурация)
- WingSustain
- Diffindo (Диффиндо)
- Skurge (Скурж)
- Spongify (Спонж(г)ифай)
- Rictusempra (Риктусемпра)
- Ecto (Экто)
- Fire (Файр)
- Duel Rictusempra (дуэльная версия Риктусемпры)
- Duel Mimblewimble (дуэльная версия Мимбль-Вимбль)
- Dual Expelliarmus (дуэльная версия Экспеллиармус)
Обучаем Гарри всем реализованным заклинаниям
Для этого в ТК есть специальный триггер – TriggerTurnOnAllSpells
Гарри достаточно пройти сквозь него и все заклинания, доступные в игре, станут ему известны.
Вопрос: Как создать нору, откуда гном уже не выберется?
Ответ:
- Определиться с местом для норы (сделать маленькую комнату, отгородить что-нибудь)
- Поместить в неё объект Pawn — KPawn — HPawn — Despawner.
- Добавить объект Gnome Home (декоративный вход в нору). Это необязательно.
- При необходимости, увеличить радиус действия объекта Despawner.
Как только гном попадёт на этот объект — исчезнет, превратившись в бобы + появится звук куда-то улетающего гнома.
Вопрос: Как сделать так, чтобы в ловушках исчезали огнекрабы?
Ответ:
- Установить свойство огнекраба bDespawnable в True.
- Поместить в ловушку объект Pawn — KPawn — HPawn — Despawner.
- При необходимости, увеличить радиус действия объекта Despawner.
Замеченный побочный эффект – после попадания огнекраба в Despawner, огнекраб может не исчезнуть до тех пор, пока не пропадёт из из поля зрения игровой камеры (Гарри).
Вопрос: Размеры гномов и прочих
Ответ (от посетителя ЭМ-Тот самый (Макс Некрасов)):
Сначала мы берем любой объект, ставим.
Дальше заходим в параметры предмета, ищем Display, DrawScale и DrawScale 3D и вводим свой размер.
И готово.
1 Набор уроков для движка Unreal Engine 1.0 (многое подходит и для игр о ГП). Язык: английский. Было бы здорово, если бы нам помогли с переводом основных уроков отсюда. Загрузить (13 МБ)
2 Руководство к редактору с примерами создания уровня с арками и прочим. Загрузить (chm 12 МБ) Язык – английский.
Загрузить (doc, 17,5 МБ) Язык – английский – та же инструкция, но преобразованная в формат MS Word нашим посетителем Serhiy1994.
3 Обзор редактора первых 3 игр. Перейти
Создание головоломок с поворотными колёсами (как в практикуме по риктусемпре): (автор: Дмитрий “Лимон”)
Для начала нужен Elevator Mover нужной формы, в виде кольца, как здесь, или диска либо переключателя со стрелкой, как в библиотеке.
Делаем кольцо нужного размера, делаем на нём метки с нужными текстурами, берём кисть, которая полностью, по всем измерениям перекрывает кольцо, жмём кнопку Intersect.
Кисть принимает форму кольца с вырезами. Делаем на её основе Elevator mover. Задаём для него четыре положения.
Чтобы mover двигался по всем четырём точкам, открываем его свойства – mover – numKeys и ставим в этой строке число положений мувера, в данном случае – 4.
Далее переходим в свойство – ElevatorMover – bGoStraight и ставим там true.
Далее ставим на нужном месте SpellTrigger. В его свойстве TriggerOnceOnly обязательно должно стоять False. К нему надо подключить RoundRobin, он в ветке триггеров. В его свойствах – RoundRobin – bLoop ставим true.
Далее разворачиваем подветку outEvents и пишем в четырёх первых строках названия положений elevator mover’а, например: Ring1Key1; Ring1Key2; Ring1Key3; Ring1Key0 (из третьей точки mover должен перемещаться в нулевую).
Далее размещаем ElevatorTrigger (так же в ветке триггеров), четыре штуки, и подсоединяем их всех Event-oм к Tag-y mover’а. В Tag-ах элеватор триггеров вписываем то, что писали в outEvents RoundRobin’a.
Потом переходим в ветку ElevatorTrigger – GotoKeyframe и вписываем в каждом элеватор триггере номер точки, в которую должен переместиться mover. Эти номера должны соответствовать тому, что написано в Tag‘е этого триггера. И раунд робин и элеватор триггеры следует размещать вне досягаемости Гарри, иначе он может случайно активировать их.
Если всё сделали правильно, то кольцо должно поворачиваться при применении заклинания к спелтриггеру, и из третьего положения обратным ходом, без остановок переходить в нулевое.
Делаем нужное количество таких систем, например три. Необходимо учесть, что outEvents у RoundRobin‘ов и Tag у подсоединённых к ним элеватор триггеров для каждого кольца должны быть разные (например для первого – Ring1Key1; Ring1Key2; Ring1Key3; Ring1Key0, для второго – Ring2Key1; Ring2Key2; Ring2Key3; Ring2Key0, и так далее).
Далее делаем так, чтобы весь этот механизм открывал двери, когда кольца находятся в правильном положении.
Ставим двери, подключаем их к обычным триггерам. Далее размещаем PuzzleTrigger, путь – Triggers – Trigger – KTrigger – PuzzleTrigger. Подключаем их к триггерам дверей. Если подсоединить PuzzleTrigger напрямую к муверу, ничего работать не будет. Переходим в его свойства Puzzle. Там три строки. Во вторую, где написано PuzzleName вписываем что-нибудь, например, Rings1, тоже самое надо записать в свойствах колец – ElevatorMover – PuzzleName. Разворачиваем первую и третью строки свойства Puzzle. В третьей ветке (Tags) вписываем в первых трёх строках Tag‘и колец (например Ring1, Ring2, Ring3). В первой вписываем номера положения колец, в которых эта конкретная дверь должна открываться (например 1, 2, 3).
Если всё сделать правильно, то когда первое кольцо находится в первом положении, второе – во втором, а третье – в третьем, эта дверь будет открыта. Как только хотя бы одно кольцо сместится, дверь закроется. Делаем таким же образом остальные двери.
Если нужно, чтобы такая головоломка активировала не простой мувер, а ещё один элеватор мувер (например, вращающуюся комнату), всё равно придётся помимо раунд робина, управляющего таким вторичным элеватор мувером, подключить к паре пазлТриггер – триггер мувер, иначе ничего не сработает. Можно сделать небольшой мувер в виде кубика, находящийся где-нибудь под полом или за стеной, где его не будет видно.
Надеюсь, объяснил понятно. Удачи вам в модостроении!
Как сделать подвижную платформу (Mover): (спасибо Мистеру Краму)
См. видео: перейти к просмотру.
Более старая текстовая инструкция:
- Задаём форму кисти (к примеру 32 а 256 на 256)
- В верхней строке выбираем: Brush= Add Mover или жмём на кнопочку на которой изображён параллелепипед со стрелочками (см изображение 1; )
- Кликаем правой кнопкой мыши по Mover-у, находим: Movers= Выходит колонка. Там жмём:
Show Polys и дальше закрашиваем Mover в нужные нам текстуры
Теперь жмём Key0 (base)
Потом Key1
Дальше передвигаем Mover туда куда мы хотим, чтобы она переместилась.
И жмём Key2 (см изображение 2😉 - В свойствах Mover-а устанавливаем следующие значения (см изображение 3😉
Где KeyNum=0 это количество «кадров» (положений mover-а) по которым он вернётся обратно
MoveTime это время передвижения Mover-а
Trigger toggle это свойство Moer-а двигаться за счёт триггера. - Устанавливаем SpellTrigger (триггер заклинаний) и делаем следующие настройки (см изображение 4😉
Где eVulnerableToSpell это заклинание, которое можно применить, чтобы запустить Mover
bTriggerOnceOnly это свойство работы триггера: постоянно или один раз.
Вопрос: Как сделать просто лифт (elevator)?
Ответ: Лифт можно сделать с помощью объекта mover, он пурпурного цвета, может двигаться по определённой траектории, по так называемым “ключевым кадрам” (keyframes). Чем больше этих кадров, тем более сложной может быть траектория движения. Для движения “вверх-вниз”, “влево-вправо” достаточно двух кадров.Для перемещения по прямоугольной траектории нужно хотя бы 4 кадра.
Кисти КУБ (Cube) задайте такие размеры, чтобы она приобрела вид пластины.
Вопрос: Гарри поднимает/бросает предметы (благодарность @rtem35 за находку)
Ответ: В свойствах предмета выставить HPawn – bObjectCanBePickedUp = True
Применимо как к вещам, так и к персонажам.
Вопрос: Фоновая музыка?
Ответ: Меню редактора View – Level Properties – Audio – Song. Для ТК указать имя файла из папки music (иногда нужно указывать имя файла без расширения).
Вопрос: Смена музыки в определённой точке?
Ответ: В нужное место поставить NewMusic Trigger. В свойствах триггера найти NewMusicTrigger – Song. Указать имя файла из папки music (Happy_Hogwarts.ogg).
Вопрос: Как поместить в сундук карточку или какой-то персонаж + бобы?
Ответ: Нормально работает в ТК (в ФК с этим бывают проблемы).
Заходим в свойства сундука (для примера – бронзовый сундук).
chestbronze bMakeSpawnPersistent = True bRandomBeans = False EjectedObjects - 0 - выбираем и указываем карточку или персонаж из дерева актёров. (ячейки 1-7 не трогаем) iNumberOfBeans = 100 - указываем, сколько нужно положить бобов
Вопрос: Как сделать, чтобы красная бутыль с бобами (DecanterSpawn) исчезала после выдачи бобов?
Ответ: Свойства – Generic Spawner – bDestroable = True.
Аналогично для шкатулок (CigarBoxSpawn, JewelBoxSpawn, MusicBoxSpawn), доспехов (Knightspawn), цветочных горшков (PlantPotSpawn), леек (OilCanSpawn).
Для заведомо одноразовых банок с корой (BarkSpawn) и слизью (MucusSpawn) это свойство уже установлено.
Вопрос: Как задать количество заклинаний Флипендо, после которых бобы в шкатулках, доспехах заканчиваются?
Ответ: Свойства – Genericspawner – Lives
В этом параметре нужно задать число “жизней”. Если указать “1”, то бобы закончатся после первого использования. Если 6 – игроки замучаются извлекать бобы)))
Пределы задаются в свойстве Limits. Количество жизней зависит от этих ограничений.
Применимо к большинству предметов, из которых можно извлечь бобы.
Вопрос: Кстати можно сделать так чтобы из ваз (при разбивании) вылетали всевозможные предметы…
Ответ: (предоставлен нашим посетителем с псевдонимом Крам)
- В дереве актёров: Pawn — KPawn — HPawn — HFlipendo — выберите FlapendoVaseBronze и поместите в уровень.
- В свойствах FlapendoVaseBronze выберете строку SpellEffects и сделайте следующие настройки:

В данном случае я выбрал звезду практикума, но вы можете выбрать любой другой объект, который будет появляться при разбитии вазы.
Вопрос: Патрулирование (перемещение по определённой траектории). Для ФК и ТК
Ответ: Персонаж (улитка, огнекраб, преподаватель) движется по определённой траектории. Улитки без проблем меняют её, если заметят Гарри, но потом возвращаются назад.
- Расставить точки патрулирования (NavigationPoint – PatrolPoint). Например, 4 штуки – по углам воображаемого прямоугольника.
- Указать каждой точке патрулирования на следующую точку патрулирования.
Свойства – PatrolPoint – NextPatrol = Имяследующейточки_патрулирования.
Имена всех объектов можно узнать здесь: Свойства – Object – Name
Например, у ваших точек патрулирования выставились такие имена: PatrolPoint11, PatrolPoint12, PatrolPoint13, PatrolPoint14.
Для PatrolPoint11 указываем следующей PatrolPoint12, для PatrolPoint12 – PatrolPoint13, для PatrolPoint14 – PatrolPoint11.
- Посадить как можно ближе к одной из точек патрулирования персонаж, например, улитку (OrangeSnail).
- В свойствах улитки:
patrol – bLoopPath = True (бесконечно двигаться по указанной траектории)
PatrolPoints – firstPatrolPointObjectName – имя_ближайшей патрульной точки, например: PatrolPoint11.
PatrolPoints – bGoToClosestPatrolPoint = True
Можно поэкспериментировать с типом патрулирования (patrol – ePatrolType). По умолчанию это PATROLTYPE_PATROL_POINTS (патрулирование по патрульным точкам).
Аналогично делается для огнекрабов и прочих объектов, у которых есть свойства патрулирования (Patrol, PatrolPoints).
Программы для создания и подготовки текстур
Потребуется графический редактор – для рисования своих текстур или дооформления фотографий. Это могут быть: MS Paint – входит в состав Windows; Paint.Net – достаточно сложный графический редактор, бесплатен, требует .NetFramework; GIMP – много чего умеет, но сложноват в освоении, бесплатен; Adobe Photoshop – его все знают, жутко дорогой и достаточно сложный в освоении.
Если вы хотите делать текстуры на основе готовых изображений, например, – фотографий, то подойдут редакторы-конверторы. Например:
- Photoscape – содержит набор инструментов для постобработки фотографий. Работает как с одной картинкой, так и сразу со многими.
- Xnview – редактор-конвертор. Лучше использовать именно его.
Подготовка текстур к импорту в редактор
Игровой движок Unreal Engine 1.5 (ФК, ТК) работает только с текстурами, глубина цвета которых – 256 цветов (8 бит/пиксель).
Ширина и высота могут иметь только такие значения: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 пиксела.
Поэтому картинки необходимо подгонять под размер и уменьшать количество цветов.
Проще всего это делать в программе xnview (ссылка приведена в нижней части раздела).
Порядок действий:
- Открываем программу XnView.
- Перетаскиваем картинку на окно программы. Картинка открывается в новой вкладке.
- Изменение размера картинки: Меню “Изображение” – “Изменение размера…”. В появившемся окне указываете конечный размер (только размер изображения). ОК и получаем уменьшенную картинку. Если получилась ерунда – отмените действие – Меню “Правка” – “отмена”. Если порядок – продолжаем.
- Изменение глубины цвета. Меню “Изображение” – “Преобразовать в цветное”. Указываете количество цветов (256) и нажимаете “Применить”.
- Сохраняем результат. Меню “Файл” – “Сохранить как…” – выбираем папку и формат (только bmp!). Нажимаем экранную кнопку “Сохранить”.
Текстура готова. Переименуйте её так, чтобы её название было коротким, содержало только английские буквы и арабские цифры. Ну и никаких пробелов.
Создание своих пакетов и импорт текстур
Сейчас у вас должны быть готовы файлы текстур – нужных размеров и глубины цвета.
Теперь нужно:
- Открыть папку с текстурами.
- Выбрать любой пакет текстур (файл с расширением utx) и сделать его копию в этой же папке.
- Переименовать копию так, чтобы в её имени были только английские буквы, арабские цифры. И никаких пробелов. Ну и расширение utx 😉
- В редакторе игры в меню найти: “View” (Вид) – “Texture Browser…” (Обозреватель текстур)
- В открывшемся окне “Open package” (Открыть пакет) и выбрать только что переименованный пакет. Содержимое пакета появится в обозревателе. Обычно каждый пакет содежит от одной до нескольких групп. Все действия, которые можно выполнить над текстурой, доступны после щёлчка правой кнопкой на текстуре.
- Удалите ненужные текстуры.
- Импорт своих текстур: в окне Textures (этого самого браузера текстур) находим меню File, а в нём: Import… Указываем на свои текстуры и нажимаем “открыть”. Если текстуры сделаны правильно, то импорт проходит без каких-либо проблем.
- По окончании процесса не забудьте нажать кнопку “Save package” (Сохранить пакет), чтобы редактор внёс изменения в ваш пакет.
- Текстуры добавлены. Теперь при создании уровня вы можете добавить в него текстуры из своего пакета. Если захотите поделиться своим уровнем с другими, то не зебудьте к unr-файлам приложить свой пакет текстур.
Удачного модостроения!
Найти программу XnView можно на её официальном сайте
Основные редакторы: Metallicafan212’s Harry Potter 2 (только ГП и Тайная комната), UnWorld, очень старый редактор от Koops1997.
1. Первый урок
Список действий из видео (составил Serhiy1994)
- (куб 512х512х512, выдавливаем)
- (ещё 1)
- (3 – проход, причем поуже)
- (текстурируем)
- (лампочки)
- (ставим гарри, разворачиваем на 180)
- (ставим начинку)
- (триггер + триггер ТурнОнАллСпелс, точку старта)
2. Подборка ссылок на материалы Дмитрия «Лимона», где показаны основные приёмы создания модификаций-карт.. Перейти
3. Создаём блок, который можно двигать заклинанием Флипендо. Автор удалённого видео: Koops1997.
Описание действий, показанных в удалённом видео
- В описании могут быть ошибки и неточности, так как купс не комментирует свои действия.
- Заставка: “Koops представляет”
- Заставка: “Урок Блок Флипендо”
- Действие: в обозревателе ресурсов, на вкладке “Текстуры”, щёлкаем по кнопке “Открыть”
- В открывшемся диалоговом окне находим папку с игрой (которая находится в папке с редактором).
- В ней переходим в папку Textures.
- Выделяем все utx-пакеты и ждём “Открыть”.
- Ожидаем окончания импорта всех пакетов.
- В раскрывающемся списке обозревателя текстур находим пакет HP2_Master, а в нём секцию wall_runners
- В панели инструментов нажимаем кнопку “Куб”. Выставляем все 3 размера в 512 и нажимаем “Build”. Окно создания куба закрываем.
- Делаем куб полым
- Переходим в окно трёхмерного представления и обклеиваем куб текстурами изнутри (стены).
- В обозревателе текстур выбираем секцию “Floors”, выбираем текстуры пола
- В обозревателе текстур выбираем секцию “Cellings”, выбираем текстуры потолка
- Добавляем в куб источники освещения.
- Добавляем точку старта игрока (PlayerStart)
- В обозревателе переходим к дереву актёров и выбираем Pawn – PlayerPawn – KPlayerPawn – harry
- Добавляем актёра в куб
- С помощью панели инструментов создаём ещё один куб (Куб 2) размерами 512х512х512. Делаем его полым. Размещаем правее первого куба
- С помощью панели инструментов создаём ещё один куб (Куб 3) размерами 128х128х128. Вырезаем его и помещаем в Куб 2. Обклеиваем текстурой из пакета FlipendoBlocks секции Blocks (боковые грани). Верхнюю берём из пакета HP2_Master – Floors. выделяем боковые поверхности и выставляем им атрибут Unlit и Special Poly. Окно настройки поверхностей закрываем.
- Создаём КУБ 4 размерами 256х256х256. Он должен поглотить Куб 3. Далее вырезаем его, переходим в КУБ 1.
- В панели инструментов щёлкаем по кнопке Mover, в меню выбираем GridMover. В свойствах GridMover выставляем GridMover – MoveIncrement = 128, Display – bShadowCast = False
- Нажимаем кнопку “Построить все” (Build All).
- Сохраняем уровень в папку Maps. Запускаем игру.
4. Создание бездны, а также учим Гарри вскарабкиваться на блоки . Автор удалённого видео: Koops1997.
Список действий из видео (составил Serhiy1994)
- Делаем в ряд 3 кубика 512х512х512.
- Делаем кубик № 4 посередине, так, чтоб получилась буква Т.
- Текстурируем.
- В частности, стенки и дно ямы красим в что-нибудь маркое.
- Делаем кубик 64х256х256, помещаем посередине на уровне земли над ямой, жмем Add, текстурируем.
- Добавляем свет.
- Рисуем пластину 512х512, ставим ее под платформой в яме, в текстурах выбираем SkyBox.
- Выделяем пластину, жмем Add Special -> Zone Portal -> OK.
- В дереве актеров Info -> Zone Info -> Установить на дне ямы (но над пластиной).
- В свойствах лезем в самый низ, выбираем секцию Zone Info, там пишем bPainZone = True, DamagePerSec = 200.
- Выделяем полигоны стенок ямы, жмем ПКМ -> Surface Properties -> Special Poly.
- Ставим точку старта и Гарри.
- Компилируем, сохраняем карту и запускаем.
5. Делаем и настраиваем плитки Spongify. Автор удалённого видео: Koops1997.
Список действий из видео (составил Serhiy1994)
- Рисуем 4 кубика размерами по 512 так, чтобы сформировать некое подобие _|¯ – чтоб было откуда взлетать и куда приземляться.
- Проставляем свет, добавляем точку старта и Гарри.
- Текстурируем пол, стены, двери.
- Рисуем кубик 32x128x128 – стартовую площадку, назначаем ей текстуру змеевидного коврика. Жмем Substract, потом Add.
- Клацаем по верхнему полигону кубика, Surface properties -> Scale: 0.5.
- Выбираем в дереве актеров SpongifyPad (путь указан разделом ниже), размещаем его на стартовой площадке.
- Чуть ниже в дереве находим SpongifyTarget, размещаем там, куда хотим прилететь.
- ПКМ по SpongifyTarget -> Properties -> Events -> Tag: пишем что-нибудь.
- ПКМ по SpongifyPad -> Properties -> Events -> Event: пишем то же, что писали в шаге выше; -> Tag: пишем что-нибудь, но отличное от предыдущего слова.
- Ставим ТОАС, строим, сохраняем
6. Делаем двери. Автор удалённого видео: Koops1997
Список действий из видео (составил Serhiy1994)
- Рисуем 2 помещения с промежутком между ними, куда собираемся поместить дверной проем.
- Текстурируем стены, пол, крышу.
- Полигон, отвечающий месту предполагаемого дверного проема, текстурируем текстурой арки.
- Ставим свет.
- Меню Tools -> 2D editor -> кнопка Open -> выбрать файл HP2/System/Arch.2ds. Загрузится контур арки.
- Жмем кнопку Extrude, в появившемся окошке ставим толщину арки (как правило, равную толщине промежутка между комнатами), ОК. На игровом поле появился красный каркас арки.
- Размещаем кисть в желаемом месте (т.е. на месте проема), жмем Substract. Имеем дверной проем, теперь надо сделать дверь.
- Текстурируем внутренности арки (по желанию).
- Рисуем отдельно ото всего уровня кубик с размерами побольше. Так же, как выше, создаем кисть в форме арки, но с меньшей толщиной.
- Выдавливаем, получаем дверь. Но текстуры лежат криво, надо их поправить. Поэтому выделаем все полигоны на обеих сторонах двери -> ПКМ -> Align selected -> Align Wall Direction. Еще раз ПКМ -> Align Wall Panning.
- Выделяем саму синюю кисть, ПКМ -> Polygons -> Merge.
- Выделяем полигоны обеих сторон, ПКМ -> Surface Properties -> в разделе Pan нажимаем кнопки так, чтоб текстура вписалась в форму двери.
- Рисуем кубик чуть побольше двери, устанавливаем его вровень с дверью, но так, чтоб обтекало по бокам и сверху. Жмем Intersect.
- Размещаем нашу кисть в дверном проеме.
- Жмем ПКМ по кнопке Add Special Brush -> Mover.
- Выставляем муверу ключевые кадры (открыто/закрыто), как указано в соседней секции этой БЗ.
- ПКМ по муверу -> Object -> InitialState: TriggerToggle. Выше, Events -> Tag: Door (любое слово, строго говоря).
- В разделе MoverSounds выставляем звуки, к-рые будут звучать при открытии/закрытии двери (по желанию).
- Еще выше, Mover -> MoverEncroachT: ME_IgnoreWhenEncroach, MoveTime -> 2.000000 (время открытия в секундах)
- Ставим 2 триггера по обе стороны двери, выделяем их, ПКМ -> Properties -> Events -> Events: Door (т.е. пишем то же слово, что и выше писали).
- Ставим точку старта и Гарри.
- Компилируем, сохраняем карту и запускаем.
Пути расположения основных актёров в дереве (Тайная комната)
- Гарри: Pawn – PlayerPawn – KPlayerPawn
- Генераторы/уничтожители созданий: Pawn – Kpawn – Hpawn
- Генераторы приятных мелочей (доспехи, лейка, банка со слизью): Pawn – Kpawn – Hpawn – GenericSpawner
- Основные существа (Докси, Пикси, Гномы, Грибы и прочие): Pawn – Kpawn – Hpawn – HChar
- “Боссы” (Арагог, Василиск в действии, Вариации на тему Пивза): Pawn – Kpawn – Hpawn – HChar – baseBoss
- Основные персонажи и некоторые существа (Преподаватели, Добби, Драко, Фоукс, Улитка): Pawn – Kpawn – Hpawn – Characters
- Игроки в Квиддич: Pawn – Kpawn – Hpawn – QuidditchPlayer
- Предметы обстановки, неодушевлённые (сундуки, мебель, звёзды, Фордик, Шоколадная лягушка, котлы, маркеры, норы гнома и чёртика, фрагменты грибов, набор Спонж(г)ифай): Pawn – Kpawn – Hpawn – HProp
- Декорации: (статуи, доспехи, ёлка, телескоп): Pawn – Kpawn – Hpawn – HProp – Hdecoration
- Сундуки: Pawn – Kpawn – Hpawn – HProp – chestbronze
- Котлы: Pawn – Kpawn – Hpawn – HProp – HCauldron
- Для Диффиндо (нити, паутина): Pawn – Kpawn – Hpawn – HProp – HDiffindo
- Для Флипендо (вазы): Pawn – Kpawn – Hpawn – HProp – HFlipendo
- Мебель (Столы, стулья, шкафы, кровати, доски, диваны): Pawn – Kpawn – Hpawn – HProp – HFurniture
- Растения (деревья, кусты, цветы): Pawn – Kpawn – Hpawn – HProp – HPlants
- Бобы: Pawn – Kpawn – Hpawn – HProp – Jellybean
- Карточки: Pawn – Kpawn – Hpawn – HProp – WizardCardIcon
- Освещение: Pawn – Kpawn – Hpawn – HProp – HCandlesLamps
- Лучи света: Pawn – Kpawn – Hpawn – HProp – LightRay
- Триггеры: Triggers
- Книга сохранений: Pawn – KPawn – HPawn – SavePoint
- Техническая модификация с демонстрацией содержимого видимых объектов дерева актёров: перейти
Триггеры: основное назначение и расположение в дереве (Тайная комната)
- Triggers – KTriggers – TriggerTurnOnAllSpell – пройдя сквозь этот триггер, Гарри мгновенно обучается всем реализованным в игре заклинаниям (Скурж, Риктусемпра, Диффиндо, Спон(г)жифай).
Настраивать что-либо необязательно.
- Triggers – Trigger – KTrigger – GiveHousePoints. Получаем баллы
Настройка: указываем число для свойства GiveHousePoints – HousePoints.
- Triggers – Trigger – KTrigger – NewMusicTrigger. Стоит пройти сквозь этот триггер – заиграет музыка. Достаточно задать значение свойства NewMusicTrigger – Song – имя файла без полного пути в формате ogg, который лежит в папке music игры (sm_SCL_neutralhwo-1-29_01.ogg). Файлы формата ogg можно предварительно прослушать практически любым современным аудиоплеером (Aimp, VLC, KMPlayer,… ).
- Triggers – Trigger – KTrigger – TriggerChangeLevel. Служит для перехода на следующий уровень.
Настройка: вписываем название уровня (без указания полного пути, например, – test.unr) в свойство TriggerChangeTrigger – NewMapName.
Создание сцен-на-движке (cut-scenes, кат-сцен bz_cut_scenes(jpg))
Сюда входят: работа с подвижными кистями (муверами); создание тайников, препятствий и пропастей; оформление; свечи, факелы, лампочки, туман; враждебные существа; бонусы/призы/вкусняшки; использование заклинаний; зацикленный мувер LoopMover; открытое пространство и небосвод (SkyBox); купола, арки, окна; головоломка с вращающимися кольцами; кисти сложной формы; патрулирование; создание текстур в GIMPe; создание дома; таймеры и телепортация; катсцены и другое.
ФК. Добавление предметов, освещение и музыка
Как отправить нам ваш МОД?
- Проверьте, что он работает.
- Упакуйте его файлы в архив (zip, 7z, rar).
- Напишите нам письмо (адрес можно узнать здесь) или отправьте сообщение в Discord. Добавьте ссылку на ваш МОД в письмо или сообщение.
Обязательно укажите:
- Название игры.
- Название вашей модификации.
- Имя или псевдоним автора.
- Краткое описание (сюжет или что она делает).
- Если вы знаете несколько языков, то просьба прислать название и описание на всех известных вам языках.
Используются наработки:
- Setebos: изначально оформил.
- Крам: делился опытом и картинками.
- Наших посетителей, задававших вопросы и помогавших друг другу разобраться с ними 🙂
- АlехeyMS : ведение страницы, добавление “справочных” данных.
- Serhiy1994: конструктивная критика и описания к некоторым видео.
- Вклад остальных участников указан в тексте статьи 😉
Дмитрий Лимон, как вы сделали так, чтобы Гарри погибал при столкновении с мувером?
Вот так: https://yadi.sk/i/L8qUcinp3K6DjJ
Но этой опции нет в редакторе Купса, как вы её сюда добавили?
Как нет? Была вроде. Может, у вас редактор бракованный?
Ну не знаю… Возможно, эта опция есть только в редакторе от UnWorld.
Я её применял ещё в испытании Диффиндо. А тогда об Анворлде даже не слышал никто. Делал в купсовском. Не верите? Вот скриншот. https://yadi.sk/i/o2s3RCcE3K7wDS
Разобрался, спасибо.
Все-таки я сюда напишу, что я знаю и чем могу поделится:
1. Вы хотите заставить ученика Хогвартса что-нибудь сказать. Для этого открываем свойства ученика, далее видим строчку BumpLines, открываем ее и находим строку BumpLineSet. Туда мы и будем писать. Факультет и пол ученика не важен. Писать можно только эти фразы:
Hub3Bump
Hub4Bump
Hub5Bump
Hub6Bump
Hub7Bump и вот так до 17, дальше не работает
Hub20utBumps
StaircaseBumps
Затем в BumpLines находим строку bUseBumpLine и ставим True(еще я ставлю true в строке bBumpCaptureHarry). Вот и все.
2.Заметил такую фишечку. Когда расставляются патрульные точки, многие замечают, что во времена передвижения персонаж идет НЕ ТУДА куда нам надо. Оказывается все зависит от РАССТОЯНИЯ между патрульными точками, тоесть персонаж пройдя патрульную точку от места старта, начинает искать ближайшую к нему. И даже нету смысла писать к каждой патрульной точке следующую точку. Поэтому, чтобы было все отлично, надо возле каждой точки ставить еще несколько, чтобы получалась змейка и тогда персонаж не будео уходить со своего пути.
3. Если вы хотите чтобы ученик или кто-то нибудь еще ходил, а не бегал, заходим в свойста, затем выбираем HPawn и видим bPlayRunAnim, ставим false.
Фуф, это только часть того чего я еще хотел написать, но это как-нибудь потом. Надеюсь моя информация была полезна. Так что вперед, эксперементируйте???☺?
От модератора: в принципе, так постепенно можете и на статью насобирать материала 😉
Я думаю, что эту информацию можете добавить в Базу знаний))
От модератора: вполне можно 😉 Главное – доделать то, что сейчас делаем.
Ура!! Я теперь знаю как заставить учеников разговаривать?☺, когда я к ним подхожу))
От модератора: смутно вспоминается, что там требовалось заполнить пару свойств 🙂 Но таки смутно)
Я могу объяснить как это делается)))???
От модератора: а объясните 😉 Может и другим пригодится)
Друзья, я извиняюсь, но есть ли здесь те, кто разбирается в разработке вырезанных сцен или cut-scene?
От модератора: теоретически есть, но бывают нечасто.
Здрасть. У меня тут вылезла пачечка вопросов. 1 – где мне найти старый UE (1-3). 2 – Если я и сделаю мод, то как его или загрузить или что-то ещё сделать? 3 – Я имею такие программы, как Blender или Maya. Можно ли мне перекинуть оттуда модельки в UE? И если можно, то какие?
От модератора: по первому вопросу точно к этим парням – https://www.epicgames.com/ru . Второй вопрос – вероятность удачи весьма велика, но всё же нужно читать документацию к движкам, чтобы определить оптимальные промежуточные форматы.
Можете пожалуйста сделать видео как делаются простые cutscene.. или хотя бы объяснить по-подробней. Я читаю прошлые комментарии и вообще ничего не понимаю. Куда что вписывать?? Ни капли не разбираюсь. А посмотреть в других уровнях как это делается я тоже не могу, ведь в свойствах нужных объектов ничего нету, пусто. Надеюсь это сообщение не останется проигнорированным??
От модератора: игноры получаются из-за того, что я мало что знаю в модостроении, а писать ерунду явно не стоит. Поэтому ваши комментарии ждут ответа от других, если кто-то вообще ответит.
Можно ли заставить огнекраба плеваться не огнём, а чем нибудь другим?
От модератора: вопрос перенаправлен UnWorld’у – интересно его мнение об этом)
Как пользоваться CreatureGenerator-om?
Как сделать так, чтобы когда подходишь к ученику или учителю, он тебе что-нибудь сказал?
Как сделать ночной режим?
Очень странные дела творятся в Хогвартсе. Делаю сейчас МОД. Время от времени запускаю его и тестирую. Вдруг, ни с того ни с сего игра начинает вылетать при запуске этого мода. Причём вылетать очень странно. Открываю окно со списком уровней, щёлкаю по уровню. Он открывается. И пока ничего не происходит. Но стоит нажать F4 для закрытия окна со списком, как игра тут же выключается, причём, не выдаёт после этого сообщения об ошибке. Попутно дополняю пакеты с текстурами, но вряд ли это может как то повлиять. Обычно, если игре не нравится текстура, которая однако нормально работает в редакторе, вместо неё отображается зелёный пенопласт. Если же нех ватает какого то файла, уровень просто не запускается. Если имеется мувер сложной формы, который игра почему то не может переварить, то игра вылетает сразу при запуске мода и выдаёт сообщение об ошибке. Ещё была странная проблема с деревьями (уровень так же вылетал сразу при запуске и выдавал ошибку), возникла когда много деревьев просто скопировал. В этом случае помогла посадка деревьев по одной штуке. Но этот случай явно не относится ко всему вышеперечиленному. Пол часа пытался понять, что может быть не так. Удалил из уровня, все объекты, размещенные перед тем, как он начал вылетать, удалил из пакета текстуру, которая как мне казалось, могла стать причиной проблемы. Переустановил игру в конце концов. Ничего не помогает.
Может, кто нибудь сталкивался с подобным и знает, как решить? Очень не хочется заново уровень делать.
Что такое CutMark и для чего он используется?
CutMark – объект кат-сцены, что следует из названия. Он требуется для перемещения персонажей в кат-сцена-пеший шаг и телепортация. В его свойствах, кажется, Cutscene, можно написать название этой точки в кат-сцене. Например кат-название, которое вам захотелось WalkMark1. Чтобы персонаж к ней подошел, в кат действиях надо ввести WalkTo/RunTo WalkMark1, за одно раньше приставочку, обозначающую имя персонажа в сцене. У меня, если вы не заметили, этой теме целый Мод посвящен.
А как сделать так, чтобы ученики хогвартса ходили? А то они у меня постоянно бегают
От модератора: может, вам другие посетители подскажут – ибо я дальше привязки к закольцованным точкам патрулирования не углублялся.
Хммм. Столкнулся с такой проблемой. Не могу добавить фоновую музыку на карту. Делаю все как написано, но уровень мой не хочет запускаться. Если я сохранюсь и выйду из редактора и снова попытаюсь открыть ту же с карту с вставленой музыкой, то выдает ошибку и вот не знаю как быть
От модератора: не забывайте, перед сохранением, пересобирать уровень (Build All). Иначе – могут быть и не такие эффекты. Ну и насчёт музыки – подсмотрите параметры качества “родных” музыкальных файлов (скорость потока (в кбит/с), качество (1-10)). Ну и допустимый формат – ogg.
Есть проблемма с вращающимся луп мувером.
Делаю вертушку (наподобие тех, что были в экзамене по карпе ретрактум.
Пришлось делать её из нескольких частей из за проблем с текстурами.
В анворлдовском редакторе задаю свойство LоopMove, копирую мувер в купсовский редактор. Задаю положения мувера.
И в игре вертушка совершает один оборот и благополучно останавливается.
Аналогичным образом делал летающую платформу, но она работает совершенно нормально.
Может, знает кто нибудь, как заставить её крутиться?
От модератора: информация передана UnWorld’у.
Обновлено: рекомендация от UnWorld – использовать такой вариант: https://www.youtube.com/watch?v=0y0l7RyAr9M
Так это по узнику, а я делаю в ТК.
Но проблему решил уже. Сделал обычный мувер, который совершает 50 оборотов в течение 1000 секунд. Для прохождения участка, в котором задействована эта вертушка, более чем достаточно.
Заметил странный баг в игре связанный с громкостью звука убавил на полную звук слышен.
А как копировать из оригинального уровня?
От модератора: упрощённый алгоритм добавлен на эту страницу, под “Основными понятиями”.
М-р Крам Пожалуйста подскажите как озадачить LoopMover двигаться. Попробовал сделать как программируют обычный шиш тебе говорит не двигается.
Граждане,товарищи здравствуйте. Подскажите,Loop mover юзается и работает так же как и обычный или я что-то не так понял?
Проблема с текстурами. Создал собственный пакет и там имеются текстуры металлических решёток. Промежутки между прутьями чисто чёрные. При применении к такой текстуре свойства “Masked” эти чёрные промежутки должны становиться невидимыми. Но они невидимы всё время, вне зависимости от этого свойства. Причём, только в игре, в редакторе всё выглядит нормально. Можно это как то исправить, не переделывая все эти текстуры?