Привет Лед (и Пламя).
Начненем с вопросов ...
Тебе знакома структура dat-файлов игры?
То что у тебя получилось (рубка исчезла вдали ...) вполне нормально ...
Нужно в dat-файле подлодки (NSS_Uboat7b.dat) изменить координаты узла cfg#Z01 ... (вместо этого узла программой ставится рубка...) так, чтобы все было ОК ...
Чтобы найти объект в дат-файле можно использовать программу Pack3D, которую ты использовала для предыдущих работ (напр. экстрагирование и проч.) найти можно по имени, по идентификатору ...
Можно использовать прграмму http://sh4.skwas.net/S3D.msi ...
Можно HexEditor ...
Dat-файл состоит из блоков данных, которые делятся по типам и подтипам (версиям).
Основной (узловой) блок данных имеет Type 4, Subtype (Version) 100 ...
Его структура:
Type 4/100: NODE dBlock
Данные этого блока определяют иерархию объектов.
- Первые 4 байта – тип блока данных dBlock Type unsigned long
- Следующие 4 байта – версия (подтип) блока данных dBlock SubType long
- Следующие 4 байта – длина данных Data Size unsigned long.
следующие 24 байта (Zero end) Строка из трех идентификаторов:
- objectID – 8 байт идентификатор объекта
- parentID – 8 байт идентификатор родительского объекта
Root Node имеет parentObjID = 00 00 00 00 00 00 00 00
- obj3dID - 8 байт идентификатор 3D объекта
(obj3dID = 00 00 00 00 00 00 00 00 определяет невидимый Dummy объект (Node))
- ”00” – 1 байт конец строки
- ”01” – 1 байт (”00”, ”01”) boolean: 01 – видимый объект, 00 – невидимый
объект
- offsetX – 4 байта float смещение X относительно parent объекта
- offsetY – 4 байта float смещение Y относительно parent объекта
- offsetZ – 4 байта float смещение Z относительно parent объекта
- rotateX – 4 байта float угол поворота (ось X)
- rotateY – 4 байта float угол поворота (ось Y)
- rotateZ – 4 байта float угол поворота (ось Z)- matNum - 4 байта unsigned long количество применяемых материалов (number of
Materials)
- matID – (8 * matNum) байт, идентификаторы применяемых материалов (Type 2) Multi/Sub
- ”00000000”- 4 байта ...
Ну как следует продолжать ?