FOnline
|
Формат fo3d - это текстовый формат описания трехмерных объектов. Редактируется, соответственно, с помощью любого текстового редактора.
По ходу описания будут встречаться ссылки в квадратных скобках - [X], их содержание расположено ниже, перед примерами.
Для передачи данных используются различные модификаторы (ключи и значения). Строка с начала комментария (';', '#') игнорируются до ее окончания. Регистр модификаторов значения не имеет.
Для удобства соотношения некоторых номеров и имен смотрите скрипт _animations.fos.
Условные обозначения передаваемых параметров:
FileName - имя файла или пути и файла, путь может быть как полным, так и относительным;
IntegerValue - целое значение (0, 1, 22);
FloatValue - вещественное значение (0.0, 1.2, 22.1);
IntegerArray - массив целых чисел, перечисляется через знак '-', без пробелов, то есть 1-2-5-8;
FloatArray - массив вещественных чисел, перечисляется через знак '-', без пробелов, то есть 1.3-2.6-5.2-8.0, так же есть возможность их указания как целые числа (1-2.5-4-7);
String - строка, без пробелов;
Anim1Weapon [1] - тип оружия для анимации;
AnimationName [1] - имя анимации.
Указывает на базовую модель, поддерживаемые форматы: x, 3ds. Если файл содержит анимацию и дополнительно не указан модификатор model_animation, то будет использоваться данная анимация.
Указание файла, который будет вставлен в данном месте. Данный механизм предназначен для облегчения описания множества однотипных fo3d файлов. Суть состоит в том, что текст шаблона добавляется в место вызова модификатора, а затем там заменяются определенные идентификаторы. Идентификаторы перечисляются сразу после названия файла шаблона, сначала какое слово будет заменяться, затем на которое. В шаблоне заменяемый идентификатор должен быть расположен между знаками процента ('%'). Данный модификатор использует всю строку для определения передаваемых параметров, не используйте в ней другие модификаторы.
Отключение отрисовки тени.
Включение расчета касательного пространства, тангента и бинормали, которые можно использовать в эффектах, см. файл IOStructures.inc.
Перемещение модели по одной из оси. По-умолчанию равны 0.0.
Вращение модели по одной из оси. В градусах. По-умолчанию равны 0.0.
Масштабирование модели по одной из оси или сразу по всем трем (Scale). По-умолчанию равны 1.0.
Изменение скорости воспроизведения анимации. По-умолчанию равно 1.0.
Включение игнорирование обработки определенных слоев. Значения перечисляются через знак '-'.
Воспринимаются именованные константы из файла DefineNames.fos.
Включение игнорирование отрисовки определенных частей модели (материалов). Значения перечисляются через знак '-'.
Воспринимаются именованные константы из файла DefineNames.fos.
Установка значения текущего меша, на которые будут действовать такие модификаторы, как Texture, Effect.
Воспринимаются именованные константы из файла DefineNames.fos.
Установка значения части меша. При установке отрицательного значения дальнейшие модификаторы будут влиять на все части текущего меша, а не какой-то определенной.
Установка определенной текстуры для аналогичных переменных в самом эффекте. Но, значение 0 так же указывает на базовую текстуру (цветовую, диффузную) текущего меша и части.
Воспринимаются именованные константы из файла DefineNames.fos.
Установка определенного эффекта для текущего выбранного меша и части.
Передать определенное значение в эффект. Модификатор действует на эффект, указанный в последнем использованном модификаторе Effect. Передаются тип (String, Floats, Dword), имя параметра в файле эффекте и значение (в зависимости от типа - строка, массив вещественных чисел, целое значение).
Воспринимаются именованные константы из файла DefineNames.fos (для Dword).
Установка определенного слоя.
Воспринимаются именованные константы из файла DefineNames.fos.
Установка определенного значения слоя. Когда значение слоя будет равно данному, то все модификаторы, описанные в нем, начинают действовать.
Воспринимаются именованные константы из файла DefineNames.fos.
Присоединение определенной модели к базовой. Допустимые форматы: x, 3ds, fo3d (то есть возможно рекурсивное подключение, будьте внимательны). По умолчанию модели линкуются между собой по совпадающим именам костей у обоих. Если требуется точное указание к какой кости линковать рутовую кость, то используйте модификатор Link (см. ниже).
Линковка другой модели к текущей, с указанием куда линковать. То есть {Подключаемая модель Root-Bone} -> {Текущая модель String-Bone}. Данный модификатор действует только для прикрепленной модели (пока она не будет снята или выбрана другая).
Установка базовой модели для применения других модификаторов.
Данный модификатор используется для связывания имен анимаций с индексами, для дальнейшего использования в скриптах.
В AnimFile указывается имя файла, откуда она будет взята (если указать “ModelFile”, то поиск будет производиться в файле загружаемой модели)
В String указывается имя или порядковый номер анимации.
Модификатор для указания скорости определенной анимации.
Добавление алиасов для индексов анимации, чтобы не делать лишний копи-паст. IntegerValue - номер индекса, 1 или 2;
Отрисовка определенного кадра в спрайт. Используется, когда идет вывод пререндеренной модели.
В AnimFile указывается имя файла, откуда она будет взята (если указать “ModelFile”, то поиск будет производиться в файле загружаемой модели)
В String указывается имя или порядковый номер анимации. IntegerValue означает процент (0..100) времени анимации, с которого и будет произведен рендер.
Отрисовка определенной анимации в спрайт. Используется, когда идет вывод пререндеренной модели.
В AnimFile указывается имя файла откуда она будет взята (если указать “ModelFile”, то поиск будет производиться в файле загружаемой модели)
В String указывается имя или порядковый номер анимации. Первый IntegerValue означает процент (0..100) начала времени анимации, второй IntegerValue процент конечного кадра. Может быть использован обратный вывод, когда второе значение меньше первого. Частота кадров анимации берется из глобальной переменной __Animation3dFPS, если она равна нулю, то берется значение 10.
Остановка и возобновление обработки файла.
Примечания
Parsing
Include
some1.fo3d
some2.fo3d
_SomeTemplate.fo3d
После применения модификатора Include файлы будут выглядеть следующим образом: some1.fo3d
some2.fo3d
Textures, Normal mapping
Обычный вывод. "Mesh 0" в данном случае избыточен, он и так по-умолчанию 0, поставлен для примера.
Пример находится в "Client\data\art\misc\3d\box\simple.fo3d"
Рисование с использованием карты нормалей.
Пример находится в "Client\data\art\misc\3d\box\nmap.fo3d"
Frames render
Рендер одного спрайта в середине анимации использования. Без тени.
Пример находится в "Client\data\art\misc\3d\dclaw\frame.fo3d"
Рендер анимации, с начала и до конца. Увеличена в два раза.
Пример находится в "Client\data\art\misc\3d\dclaw\frames.fo3d"
Effects
Установка эффекта, передача параметров
В самом эффекте данные переменные будут иметь вышеуказанные значения