The PhysX Editor - спецификация файла .phx
Общая часть:
В этом файле описывается спецификация файлов для Dark Age PhysX Editor v 0.3842. Более подробно об этих параметрах смотрите в хелпе. Если чего то в хелпе нету, то параметр расписывается
MadMedic | MadMedic@rambler.ru | http://MadMedic.by.ru
Типы данных:
- Byte - 1 байт 0-255
- Long - 4 байта, целое от -2147483648 до 2147483647
- Float- 4 байта, число с плавающей точкой
- Bstring - строка формата blitz. Первый 4 байта (Long) количество символов в строке, затем строка, состящая из этого количества символов. Считывается Blitz командой ReadString
- Vector- 12 байтов, три числа Float.
Структура файла:
Заголовок
Bstring - служебная информация ("The Dark age PhysX description file. Editor version - ")
Bstring - версия редактора, сохранившего этот файл
Bstring - название проекта
Bstring - автор проекта
Long - флаг (не используется)
Float - ComplexMeshBoxSize#
Byte - Complex Mesh Use
Float - Complex Scale#
Bstring - Complex High Model
Float - Complex High Dist#
Bstring - Complex Low Model
Float - Complex Low Dist#
Byte - Complex Far Use
Bstring - ComplexFarModelName$
Float - ComplexFarDist#
Float - Complex Sleep Dist#
Float - Complex Sleep Energy#
Жесткие тела
Byte - NewRb, новое жесткое тело. Если равно единице, то записано еще одно тело. Если NewRb=0 то переходим к следующей части.
Bstring - Body Name
Float - mass#
Vector - позиция тела
Vector - вращение тела
Vector - размеры тела
Byte - Geom type. 1 - куб, 2 - сфера, 3 - цилиндр, 4 - капсула, 5 - хулл, 6 - меш, 7 - компаунд.
Bstring - Geom model
Long - rbGeomCompuonds. Количество объектов составной геометрии в объекте.
For i=1 To rbGeomCompuonds
Vector - позиция объекта составной геометрии № I
Vector - вращение объекта составной геометрии № I
Byte - тип геометрии объекта составной геометрии № I. 1 - куб, 2 - сфера, 3 - цилиндр, 4 - капсула, 5 - хулл
Vector - размеры объекта составной геометрии № I
Bstring - файл меша объекта составной геометрии № I для Hull
Next
Byte - Skeleton Use
Long - Skeleton Size
Float - Skeleton speed#
Vector - позиция центра масс
Vector - позиция меша относительно тела
Vector - вращение меша относительно тела
Byte - Use complex mesh
Bstring - Complex mesh
Bstring - Single mesh
Vector - растягивание меша
Vector - InitAngles Начальные углы вращения для чилда аним меша
Float - Near distance
Byte - Use Lod Single mesh
Bstring - Single mesh Low
Float - Far distance
Float - Alpha#
Float - Shiness#
Byte - Use Refraction
Bstring - Refraction Texture
Byte - Use reflection
Float - LinDamp#
Float - AngDamp#
Byte - Material (металл=2)
Byte - Big body
Byte - Dissapear
Long - Dissapear time
Byte - Breakable
Float - Health#
Bstring - Break Model
Float - SleepEnergy# - Минимальная кинетическая энергия, при которой тело "заснет"
Float - SleepDistance# - Расстояние, на котором тело "заснет"
Byte - Keps - количество поплавков
For i=1 To Keps
Vector - позиция поплавка
Float - buo#
Float - radius#
Float - maxdis#
Float - lindamp#
Float - angdamp#
Next
Теперь перходим на начало части "Жесткие Тела". Если больше жестких тел нету, то NewRb=0 если есть еще то грузим еще тела.
Джойнты
Byte - NewJoint, новый джойнт. Если равно единице, то записан еще один джойнт. Если NewJoint=0 то переходим к следующей части.
Vector - позиция джойнта
Vector - вращение джойнта, но не нормаль (!!). Нормаль получить можно через TFormNormal 0,0,1,Pivot,0
Bstring - Joint Name
Byte - Тип джойнта: 0 -Hinge, 1- Spherical, 2- Spring, 3- Prismathic,4 - Cylinder, 5 - On line, 6 - On Plane, 7 - Distance, 8 - D6
Bstring - Первое тело
Bstring - Второе тело
Byte - collision
Byte - Breakable
Float - BreakableForce#
Float - BreakableTorque#
Float - HingeLimitMin#
Float - HingeLimitMax#
Float - HingeSpringSpr#
Float - HingeSpringTargetVal#
Float - SphericalAnAngle#
Float - SphericalAnHardn#
Float - SphericalAnRestit#
Float - SphericalTwistMin#
Float - SphericalTwistMax#
Float - SphericalTwistSpr#
Float - SphericalTwistDamp#
Float - SphericalTwistTargetVal#
Float - SphericalSpringSpr#
Float - SphericalSpringDamp#
Float - SphericalSpringTargetVal#
Float - DistanceMin#
Float - DistanceMax#
Long - D6xMot%
Long - D6yMot%
Long - D6zMot%
Long - D6twistMot%
Long - D6swing1Mot%
Long - D6swing2Mot%
Float - D6LinearLimit#
Float - D6SwingLimit1#
Float - D6SwingLimit2#
Float - D6TwistLimitLow#
Float - D6TwistLimitHigh#
Теперь перходим на начало части "Джойнты". Если больше джойнтов нету, то NewJoint=0 если есть еще то грузим еще джойнты.
Мягкие тела
Byte - NewSB, новое мягкое тело. Если равно единице, то записано еще одно тело. Если NewSB=0 то переходим к следующей части.
Bstring - Name
Bstring - Mesh
Byte - Tearable
Float - TearFactor#
Byte - Attach to collided shapes
Float - Dist#
Float - Alpha#
Float - Shiness#
Byte - Use Refraction
Bstring - Refraction Texture
Byte - Use reflection
Float - AttRespCoef#
Float - BendStiffCoef#
Float - CollRespCoef#
Float - ComDampCoef#
Float - DampCoef#
Float - FrictionCoef#
Float - PressureCoef#
Float - ThicknessCoef#
Float - StrechStiffCoef#
Byte - Bending
Float - SleepLinearVelocity#
Float - SleepDistance#
Byte - MetalClothUse
Bstring - Metal body
Float - MetalClothImpThr#
Float - MetalClothDepth#
Теперь перходим на начало части "Мягкие тела". Если больше мягких тел нету, то NewSB=0 если есть еще то грузим еще тела.
Конец
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
(c) 2007 MadMedic