RWX - RenderWare script - Справка по RWX командам |
Содержание.
Историческая справка
Справка по RWX командам
Разметка
Вертекс
Полигоны
Формы
Материал
Трансформация системы координат
Части тела
Историческая справка
Историческая справка является цитированием ru.wikipedia.org/wiki/RenderWare
Формат трёхмерной графики известный как - Текстовый RWX - (RenderWare script).
RenderWare - игровой движок, разработанный британской компанией Criterion Games в 1996 году и развиваемый до сегодняшнего времени.
Criterion Software Limited изначально была филиалом Canon, сейчас находится в собственности крупнейшего американского издателя и разработчика игр Electronic Arts.
Движок RenderWare является одной из самых известных технологий в области разработки компьютерных игр и был использован в таких играх как серия Grand Theft Auto, Burnout, Tony Hawk's Pro Skater, а также используется в симуляторе жизни The Sims 3 от компании Electronic Arts.
В RenderWare 2 появился свой собственный внутренний скриптовый язык RWX (RenderWare script). Однако в следующей версии RenderWare 3 поддержка RWX была удалена. В RenderWare 4 разработчики сфокусировалась на формате файлов с бинарной структурой. Как и в предыдущей версии, поддержка RWX снова отсутствовала.
Справка по RWX командам
Справка по RWX командам является в основном переводом раздела "RWX Command Reference", инструкции activeworlds.com/help/aw36/
Десятичные дроби пишутся строго через точку - ".". Например: ноль целых пять десятых - "0.5". Ноль в десятичных дробях, также можно не писать. Например: ноль целых пятьдесят две сотых - ".52".
Единицы измерения длинны - десятки метров, декаметры. То-есть рост человека "метр-восемьдесят" будет ".18".
Комментарии начинаются с символа #. При этом сочетание #! комментарием не является и игнорируется. Сочетание #! следует перед командами не являющимися стандартными для RWX, но используемыми в AW, например prelight, Collision, RandomUVs, Opacityfix.
Polygon - многоугольник. Треугольник(Triangle) и четырёхугольник(quad) - частные случаи многоугольника.
Неподдерживаемые команды
AddHint
Hints
Include
IncludeGeometry
RemoveHint
TextureDithering
TextureGammaCorrection
Trace
TransformJoint
Неподдерживаемые команды игнорируются или для некоторых выдаётся сообщение об ошибке.
Разметка
ModelBegin
Начало объекта. Необязательна и ничего не делает.
ModelEnd
Конец объекта. Команды после этой команды не читаются.
ClumpBegin
Начало куска объекта. Работает в паре с командой ClumpEnd. Куски могут быть вложенными.
Объект должен состоять из одного или больше кусков.
ClumpEnd
Конец куска объекта.
ProtoBegin <name>
Начало прототипа. Прототип это вертексы, полигоны, материалы
которые могут использоваться в объектах несколько раз как макрокоманда.
ProtoEnd
Конец прототипа.
ProtoInstance <name>
Использование прототипа в этом месте объекта.
ProtoInstanceGeometry <name>
Использование прототипа в этом месте объекта.
Но только геометрии(вертексы и полигоны), без материалов.
Вертекс
Vertex <x> <y> <z> [uv <u> <v>] [#! prelight <red> <green> <blue>]
Точка - вершина многоугольника, полигона, включая треугольники и четырёхугольники.
<x> <y> <z> - координаты, в десятках метров.
[uv <u> <v>] - UV координаты текстуры.
[#! prelight <red> <green> <blue>] освещение объекта,
если используется, освещение объекта будет независимо от света мира и локального света.
Полигоны
Triangle <v1> <v2> <v3> [Tag <tag>]
Треугольник - полигон на трёх вершинах - вертексах.
<v1> <v2> <v3> - номера вертексов в том порядке, в каком они перечислены.
[Tag <tag>] - таг поверхности.
Quad <v1> <v2> <v3> <v4> [Tag <tag>]
Четырёхугольник - полигон на четырёх вершинах - вертексах.
<v1> <v2> <v3> <v4> - номера вертексов в том порядке, в каком они перечислены.
[Tag <tag>] - таг поверхности.
Polygon <sides> <v1> .. <vn> [Tag <tag>]
Многоугольник - полигон на произвольном количестве вершин - вертексах.
<sides> - количество вершин - вертексов.
<v1> .. <vn> - номера вертексов в том порядке, в каком они перечислены.
[Tag <tag>] - таг поверхности.
[Tag <tag>] - таг поверхности.
Полигоны могут иметь метку - таг.
100 - для текстовых поверхностей. К ним будет применима команда стройки - sign.
200 - для картинок. К ним будет применима команда стройки - image.
300 - для обозначения руля при применении на транспорте.
Любое другое значение для применения с командой стройки - texture.
Формы
Block <width> <height> <depth>
Создаёт кирпич указанных размеров с центром в центре.
<width> <height> <depth> - ширина, высота, глубина - X, Y, z.
Sphere <radius> <density>
Создаёт сферу указанных размеров с центром в центре.
<radius> - радиус.
<density> - количество рёбер, например 12 или 24.
Hemisphere <radius> <density>
Создаёт полусферу указанных размеров с центром в центре сферы.
<radius> - радиус.
<density> - количество рёбер, например 12 или 24.
Cylinder <height> <bottom radius> <top radius> <sides>
Создаёт цилиндр указанных размеров с центром в середине высоты.
У цилиндра небудет верхней и нижней крышки, они создаются командой Disc.
<height> - высота цилиндра.
<bottom radius> - радиус нижнего основания.
<top radius> - радиус верхнего основания.
<sides> - количество рёбер, например 12 или 24.
Cone <height> <radius> <sides>
Создаёт конус указанных размеров с центром в середине высоты.
У конуса небудет нижней крышки, она создаются командой Disc.
<height> - высота конуса.
<radius> - радиус основания.
<sides> - количество рёбер, например 12 или 24.
Disc <height> <radius> <sides> Материал Color <red> <green> <blue> Surface <ambient> <diffuse> <specular> Ambient <ambient> Diffuse <diffuse> Specular <specular> Texture <name> [mask <mask>] Opacity <opacity> #! Collision <mode> LightSampling <sampling> MaterialMode <mode> RemoveMaterialMode <mode> GeometrySampling <sampling> AxisAlignment <alignment> #! RandomUVs #! TextureAddressMode <mode> #! Opacityfix <mode> MaterialBegin MaterialEnd AddTextureMode <mode> RemoveTextureMode <mode> TextureMipmapState <mode> Трансформация системы координат Rotate <x> <y> <z> <angle> Scale <x> <y> <z> Translate <x> <y> <z> Transform <elements> TransformBegin TransformEnd Identity Части тела Tag <tag>
Создаёт диск, заполненную одностороннюю поверхность окружности.
<height> - смещение диска от его центра,
тоесть при использовании диска в качестве крышки для цилиндра или конуса,
можно разместить диск по темже координатам что и цилиндр или конус,
указав для диска <height> равный половине от
При использовании диска в качестве крышки для полусферы <height> диска следует ставить равным нулю.
<radius> - радиус.
<sides> - количество рёбер, например 12 или 24.
Для всех форм (Block, Sphere, Hemisphere, Cone, Cylinder, Disc)
размеры (<width> <height> <depth> <radius> <height>)
могут быть как положительными так и отрицательными, отрицательные создают форму стенками вовнутрь.
<width> <height> <depth> <radius> не могут быть равными нулю - это ошибка.
Только <height> диска может быть равной нулю.
<red> <green> <blue> - цвет поверхности, каждая компонента цвета может иметь значение от 0 до 1.
Например "Color .5 .5 .5" - серый цвет. "Color 0 1 0" - зелёный.
Световые свойства объекта.
<ambient> - в какой степени поверхность воспринимает заливающий свет. От 0 до 1.
<diffuse> - в какой степени поверхность воспринимает направленный свет. От 0 до 1.
<specular> - в какой степени поверхность отражает свет. От 0 до 1.
В настоящий момент параметр <specular> в AW не используется.
Рекомендуемые значения от "Surface .6 1 0" до "Surface .9 1 0".
Световые свойства объекта.
<ambient> - в какой степени поверхность воспринимает заливающий свет. От 0 до 1.
Световые свойства объекта.
<diffuse> - в какой степени поверхность воспринимает направленный свет. От 0 до 1.
Световые свойства объекта.
<specular> - в какой степени поверхность отражает свет. От 0 до 1.
в настоящий момент этот параметр в AW не используется.
Текстура и маска поверхности. Для сброса текстуры используется значение "NULL".
Непрозрачность поверхности. От 0 до 1.
0 - означает полностью прозрачную поверхность.
1 - нормальную, непрозрачную поверхность, по умолчанию.
Проходимость поверхности для аватаров. "on" или "off".
"off" - означает проходимую поверхность.
"on" - нормальную, непроходимую поверхность, по умолчанию.
Важный параметр рендеринга объекта.
Может иметь значение "facet" или "vertex".
По умолчанию "facet".
"facet" означает что объект на свету будет выглядеть гранёным.
"vertex" означает что объект на свету будет выглядеть гладким, и будет работать быстрее.
Равна команде "MaterialModes <mode>" и команде "AddMaterialMode <mode>".
Может иметь тока одно значение "double".
Делает поверхности двусторонними.
Может иметь тока одно значение "double".
Отменяет двусторонность поверхностей установленную командой "MaterialMode double".
Может иметь значения "solid", "wireframe" или "pointcloud". "pointcloud" - неподдерживается.
"solid" - нормальный вид модели, по умолчанию.
"wireframe" - решотчатый вид модели.
Может иметь значения "none", "zorientx", "zorienty" или "xyz". "xyz" - неподдерживается.
"zorientx" и "zorienty" - означают одно и тоже - объект будет крутится вокруг своей оси "Y",
поворачиваясь к каждому пользователю одной и той-же стороной.
"none" - отменяет действие команды.
Распологает текстуру на объекте случайным образом,
указывая для каждого вертекса случайные UV координаты в диапозоне от 0 до 1.
как текстуры будут показаны за пределами UV координат, меньше 0 и больше 1.
Может иметь значения "wrap", "mirror" или "clamp". "wrap" - по умолчанию.
"wrap" - после окончания текстуры она начинается снова, сначала, нормальным образом.
"mirror" - после окончания текстуры она начинается снова, отзеркаленная образуя бесшовное соеденение.
Многие видеокарты не поддерживают такой режим и его использование не рекомендуется.
"clamp" - после окончания текстуры, последний ряд её пикселей продолжается дальше.
"clamp" - позволяет избежать такого глюка как появление непрозрачной полосы по краю текстуры с маской.
Однако UV координаты крайних вертексов должны быть точно равны 0 или 1.
"on" или "off". По умолчанию - "off".
Команда активирует другой, более медленный,
но более надёжный механизм рендеринга прозрачных и полупрозрачных поверхностей.
команда указывает, что начиная с этой строки изменения внесённые в действующий материал,
могут быть отменены командой MaterialEnd. Тоесть создаёт точку отката.
Отменяет все изменения внесённые в действующий материал между командой MaterialBegin и этой.
Равна команде "TextureMode <mode>" и команде "TextureModes <mode>".
Может иметь значения "lit", "foreshorten" или "filter".
"foreshorten" и "filter" - неподдерживается.
"lit" - по умолчанию.
Команда смысла не имеет.
Может иметь значения "lit", "foreshorten" или "filter".
"foreshorten" и "filter" - неподдерживается.
"lit" - по умолчанию.
Команда отменяет команду AddTextureMode.
Команда смысла не имеет.
"on" или "off". По умолчанию - "on".
Отключить или включить миппеппинг поверхности.
Поворачивает систему координат вокруг указанной оси на указанный угол.
<x> <y> <z> - ось вокруг которой осуществить поворот. 0 или 1.
<angle> - угол в градусах.
Например: "Rotate 0 1 0 90" - поворот вокруг оси Y на 90 градусов.
Масштабирует систему координат в указанное количество раз.
<x> <y> <z> - коэффициенты масштабирования.
Сдвигает систему координат на указанное количество десятков метров.
Выполняет одновременно команды Rotate, Scale, Translate в виде матрицы трансформации.
команда указывает, что начиная с этой строки изменения внесённые в систему координат,
могут быть отменены командой TransformEnd. То-есть создаёт точку отката.
Отменяет все изменения внесённые в систему координат между командой TransformBegin и этой.
Сбрасывает все изменения внесённые в систему координат.
Устанавливает её в самое начальное положение.
Каждому куску(Clump) можно назначить таг части тела,
Это используется в аватарах и объектах к которым применяются секвенции движения.
Не путать с тагом поверхности.
Таблица возможных значений:
Tag
Joint Position
Name in Sequence File
1
Pelvis
pelvis
2
Back
back
3
Neck
neck
4
Head
head
5
Right Sternum
rtsternum
6
Right Shoulder
rtshoulder
7
Right Elbow
rtelbow
8
Right Wrist
rtwrist
9
Right Fingers
rtfingers
10
Left Sternum
lfsternum
11
Left Shoulder
lfshoulder
12
Left Elbow
lfelbow
13
Left Wrist
lfwrist
14
Left Fingers
lffingers
15
Right Hip
rthip
16
Right Knee
rtknee
17
Right Ankle
rtankle
18
Right Toes
rttoes
19
Left Hip
lfhip
20
Left Knee
lfknee
21
Left Ankle
lfankle
22
Left Toes
lftoes
23
Neck 2
neck2
24
Tail 1
tail
25
Tail 2
tail2
26
Tail 3
tail3
27
Tail 4
tail4
28
Misc Obj 1
obj
29
Misc Obj 2
obj2
30
Misc Obj 3
obj3
31
Hair
hair
32
Hair 2
hair2
33
Hair 3
hair3
34
Hair 4
hair4
35
Right Chest
rtbreast
36
Left Chest
lfbreast
37
Right Eye
rteye
38
Left Eye
lfeye
39
Lips
lips
40
Nose
nose
41
Right Ear
rtear
42
Left Ear
lfear