Farming Simulator Modding For Dummies / Моддинг Farming Simulator для чайников: Глава 11. Настраиваем XML файлы для техники

← →
Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

В верхней части диалогового окна маски столкновений находится ряд флажков, промаркированных от 0 до 31. Каждый флажок представляет собой один бит, который можно включить или выключить. В трех текстовых полях ниже показаны комбинации битов в двоичном (Bin), шестнадцатеричные (HEX), и десятичном (DEC) форматах. По сути это прото информационные поля. Они рассчитываются автоматически, когда вы включаете или отключаете биты. В таблицы 11-1 показаны приблизительные варианты бит-масок и функций, которые они выполняют.

Kanta 15.11.16 в 10:43

0

Если вы еще не поняли, то можно одновременно включать несколько битов в маске. И именно это нужно стделать, в зависимости от типа объектов, с которыми должно сталкиваться ваше транспортное сдерство.В таблице 11-2 показаны примеры бит-масок, которые вы можете использовать.

Kanta 15.11.16 в 10:46

0

0x в начале шестнадцатеричного значения - это стандартное обозначение, показывающее, что число именно шестнадцатеричное, а не десятичное или еще какое-нибудь.

Kanta 15.11.16 в 10:48

0

Бит-маски для трактора или комбайна, такие как в таблице 11-2, нужно устанавливать для их основной части (main body). если же вы устанавливаете маски столкновений для подобъектов вроде колес, то бит триггера в них не требуется. То есть в маске колеса трактора нужно включить только биты 1, 6 и 13. Бит 21 оставьте выключенным.

Kanta 15.11.16 в 10:56

0

Как написано в главе 8, все утилиты экспорта позволяют установить маску столкновений перед экспортом. Но в этих утилитах нужно ввести маску в шестнадцатеричном формате. В редакторе GIANTS Editor это делать удобнее, так что лучше установить маски после экспорта.

Kanta 15.11.16 в 11:23

0

Настройка двигателей и колес

Kanta 15.11.16 в 11:24

0

Если вы сделали мод транспортного средства, то было бы неплохо, чтобы он двигался. Для этого нам придется поработать над тэгами <wheels>(колеса) and <motor>(двигатель) в XML файле транспортного средства.

Kanta 15.11.16 в 11:27

0

Разбираемся с колесами.

Kanta 15.11.16 в 11:27

0

В самом теге <wheels>(колеса) есть только один атрибут, autoRotateBackSpeed. Этот атрибут задает скорость, с которой руль возвращается в центральное положение, когда игрок отпускает управление поворотом.

Kanta 15.11.16 в 11:29

0

В открывающим и закрывающим тэгами раздела <wheels>(колеса) есть несколько тэгов, называющихся <wheel> (колесо), для каждого колеса транспортного средства. Ниже приведен список основных атрибутов каждого тэка <wheel> (колесо):

Kanta 15.11.16 в 11:33

0

● repr: Каждый тэг <wheel> должен иметь этот атрибут. Это индекс пути к реальному объекту колеса вашей техники, но не к объекту столкновений колеса!

Kanta 15.11.16 в 11:35

0

● driveNode: Если колесо является потомком объекта крыла, и крыло не вращается, то атрибут repr должен содержать индекс пути крыла. Этот же атрибут должен содержать индекс пути фактического объекта колеса.

Kanta 15.11.16 в 11:38

0

● rotMax / rotMin: Эти атрибуты определяют пределы, до которых колеса поворачиваются при рулении. Естественно, для не рулевых колес оба этих атрибута должны быть равны нулю.

Kanta 15.11.16 в 11:40

0

● rotSpeed: Этот атрибут задает скорость поворота колес при рулении. Если ваша техника поворачивает задними колесами, сделайте значение этого атрибута отрицательным.

Kanta 15.11.16 в 12:51

0

● radius: Можете измерить радиус колеса в вашей программе 3D моделирования (нужно использовать в ней реальные еденицы измерения) и указать здесь радиус в метрах.

Kanta 18.11.16 в 12:04

0

● suspTravel (ход подвески): Движок игры использует виртуальные пружины, амортизирующие колесо. Этот атрибут содержит длину пружины.

Kanta 18.11.16 в 12:07

0

● spring/damper (пружина/амортизатор): Эти два атрибута работают вместе, задавая физические свойства виртуальной пружины. Если атрибут spring (пружина) слишком велик, то машина начнет подпрыгивать на любой кочке. Если атрибут damper (амортизатор) слишком большой, то машина поедет по любой корявой поверхности, как по асфальту.

Kanta 18.11.16 в 12:08

0

● deltaY: Виртуальная пружина расположена в центре объекта Repr и направлена вниз вдоль оси у, чтобы толкать колесо вертикально вниз. Можно компенсировать этот эффект с помощью атрибута deltaY. Для начала можно выставить половину значения атрибута suspTravel.

Kanta 18.11.16 в 12:19

0

● maxLongStiffness/maxLatStiffness (максимальныя продольная / максимальная поперечная жесткость):Имеется в виду продольная и поперечная сила трения колес. Без трения машина не поедет, так что придется попариться с ее настройкой. Если выставить эти атрибуты слишком большими, то машина не сдвинется с места. При слишком низких значениях она будет ехать, как по льду.

Kanta 18.11.16 в 12:24

0

● mass (масса): Это число определяет, как быстро колесо будет раскручиваться двигателем. Чем выше масса, тем медленнее оно будет ускоряться. Для начала можно поставить 0,27.

Kanta 18.11.16 в 12:26

0

Настройка двигателя

Kanta 18.11.16 в 12:27

0

Вторая половина уравнения, позволяющего вашей машине ехать это двигатель. Большинство параметров, настраивающих его работу, находится в разделе <motor> и его подразделах. Два бросающихся в глаза исключения касаются топлива. Кстати, именно эти два параметра пытается изменит начинающий моддер :)

Kanta 18.11.16 в 12:35

0

● <fuelCapacity> (Объем топливного бака): Максимальное количество топлива, которое можно залить в машину, в литрах.

Kanta 18.11.16 в 12:36

0

● <fuelUsage> (потребление топлива): Атрибут указывает, сколько литров топлива машина потребляет на метр пути.

Kanta 18.11.16 в 12:58

0

После настройки параметров, касающихся топлива, можно переходить к самому двигателю. В отличие от тега <wheels>(колеса), большинство настроет двигателя являются атрибутами основного тега <motor>, а не дочерними тегами. Главная причина в том, что у большинства машин двигатель только один. Итак, в разделе <motor> придется в первую очередь иметь дело со следующими атрибутами:

Kanta 18.11.16 в 13:02

0

● minRpm (минимальные обороты): Этот атрибут задает обороты холостого хода двигателя. Делайте их поменьше, или машина уедет, даже если не давить на газ.

Kanta 18.11.16 в 13:05

0

● maxRpm: Максимальные обороты двигателя

Kanta 18.11.16 в 13:06

0

● minForwardGearRatio/maxForwardGearRatio/minBackwardGearRatio/maxBackwardGearRatio (минимальное передаточное число передней передачи/максимальное/минимальное задней передачи/максиальное): Если установить передаточные отношения побольше, то можно заставить колеса вращаться быстрее, при тех же самых оборотах двигателя. Компромисс, однако, в том, что для высоких передаточных отношений нужны двигатели с большим крутящим моментом.

Kanta 18.11.16 в 13:10

0

В видео-руководстве по моддингу для Farming Simulator
(http://gdn.giants-software.com/videoTutorials.php), есть таблицу для выбора подходящих оборотов и передаточных чисел для разных двигателей. Ознакомьтесь с ней, чтобы меньше тратить времени на пробы и ошибки.

Kanta 18.11.16 в 13:13

0

Настройка камер

Kanta 18.11.16 в 12:27

0

Если машина позволяет игроку взаимодействовать с ней, например водить ее, то предполагается, что у игрока будет хотя бы одна точка обзора, а лучше несколько. Для этого нам и потребуется настроить для мода камеры. И хотя в файле i3D объекты-камеры, движку игры все же не совсем ясно, как их использовать. Надо объяснить ему, где находятся камеры и каковы их возможности. Это делается в разделе <cameras> файла XML вашей машины.

Kanta 18.11.16 в 13:37

0

Для работы раздела <cameras> необходимо выставить тег count (количество) чтобы указать движку, столько у машины камер. Теперь внутри тэга <cameras>, следует создать вложенные теги для каждой камеры конкретно, пронумерованные последовательно (например, <camera1>, <camera2>, и т.д. ). Основные атрибуты для этих тегов камер таковы:

Kanta 18.11.16 в 13:41

0

● index: Возможно, самый важный атрибут. Это индекс пути к объекту камеры. Без него движок игры не будет знать, какую камеру вы имеете в виду.

Kanta 21.11.16 в 12:16

0

● rotatable (вращающаяся): Как правило, этот атрибут имеет значение true (истина). Исключением может быть, разве что, запасная(?) камера заднего вида.

Kanta 21.11.16 в 12:19

0

● rotateNode: Если ваша камера вращается не вокруг собственной оси, а вокруг другого объекта, например, камера, смотрящая снаружи на вашу машину, то этот атрибут может пригодиться. В этом случае камера должна вращаться вокруг точки, находящейся где-то внутри транспортного средства. Атрибут rotateNode является индексом пути альтернативных осей. Чтобы все это работало, объект камеры должен быть дочерним к объекту, являющимся rotateNode (обычно это группа преобразований (transform group)).

Kanta 21.11.16 в 12:26

0
+1

Использовать атрибут rotateNode полезно, когда ваша камера смотрит снаружи на машину, а не для вида из кабины. Но когда вы создали внешнюю камеру, движок игры автоматически устанавливает некоторые параметры, чтобы игроку было удобнее ею управлять. Например, внешние камеры стараются избегать препятствий, которые могут закрыть обзор между камерой и машиной. При обнаружении такого препятствия движок передвигает камеру ближе к машине.

Kanta 21.11.16 в 12:33

0

Чтобы эта система автоматического избегания препятствий нормально работала, движку нужно дать несколько указаний. Нужно провести воображаемую линию между камерой и каким-либо другим объектом машины.
Эта воображаемая линия, или скорее луч, идущий из камеры к некой опорной точке. Движок игры будет стараться оставить хотя бы одну опорную точку видимой из камеры. Если во время игры препятствие пересечет этот луч, движок переместит камеру в направлении машины.

Kanta 21.11.16 в 12:43

0

Чтобы настроить эту систему в XML файле, нужно задать пару опорных точек, или как их еще называют "raycast nodes" (лучевые точки) (но не слишком много, а то на их вычисление уйдет слишком много ресурсов), поместив вложенный тег <raycastNode> внутри тега наружной камеры. Тег <raycastNode> (лучевые точки) имеет только один атрибут - индекс пути к объекту, к которому идет луч обзора от камеры. Вообще говоря,лучевые точки - это группы преобразований (transform groups) и обычно у нас имеется одна впереди машины и одна сзади.

Kanta 21.11.16 в 13:20

0

Добавляем свет

Kanta 18.11.16 в 12:27

0

Кроме камер, у машин, управляемых игроком, есть осветительные приборы. Нужно же что-то видеть, работая в тусклые предрассветные часы. Настройка освещения делается в разделе <lights> (осветительные приборы) файлов XML.

Kanta 18.11.16 в 12:30

0

Тег <lights> сам по себе не имеет атрибутов, но в него вложенны дочерние теги <light>(осветительный прибор), каждый из которых задает один осветительный прибор машины. Каждый тег <light> имеет до четырех атрибутов:

Kanta 21.11.16 в 13:23

0

● realLight (реальный осветительный прибор): Этот атрибут является индексом пути к объекту реального освещения в файле i3D. Обсчет реального освещения отнимает у движка игры много ресурсов, поэтому не злоупотребляйте их количеством на машине. Лучше сделать так, чтобы в игре было включено не больше двух одновременно.

Kanta 21.11.16 в 13:27

0

● fakeLight (ложный осветительный прибор): Поддельный свет не создает реального освещения на сцене и потребляет гораздо меньше вычислительной мощности. Как правило, поддельные огни коробки или конусы с градиеной текстурой, которая выглядит как свет, исходящий от источника. Атрибут fakeLight является индексом пути к одному из этих объектов. Игровой движок использует ложный свет, когда машину ведет искусственный интеллект (AI) или другой игрок в мультиплеере.

Kanta 21.11.16 в 13:28

0


●decoration (украшения): В главе 7 обсуждается настройка собственных коронных текстуры для осветительных приборов. Чтобы ими воспользоваться, нужно задать этот атрибут. Вы получаете, чтобы воспользоваться этими объектами с этим атрибутом. Он является индексом пути к объекту короны осветительного прибора.

Kanta 21.11.16 в 13:37

0

● lightType: Это простое целое число, указывающее игровому движку, где какой свет на транспортном средстве. Этот атрибут может иметь одно из четырех значений:

Kanta 18.11.16 в 14:21

0

● 0: Передяя фара

Kanta 18.11.16 в 14:22

0

● 1: Задняя рабочаа фара

Kanta 18.11.16 в 14:22

0

● 2: Передняя рабочая фара

Kanta 18.11.16 в 14:22

0

● 3: Основная фара

Kanta 18.11.16 в 14:23

0
Минутку...

← Предыдущая страница