PDA

Просмотр полной версии : Конвертер мешей в окклюдеры для 4ds


admpos
20.08.2019, 06:26
Собственно сабж скачать без регистрации и смс https://cloud.mail.ru/public/2g9Y/5E9EhRSPN или https://yadi.sk/d/O6504YbbvxOhYQ

попробовал я таки поиграться с окклюдерами в 4ds и понял, что конвертирование ручками - вот вообще не моё :D вспомнил, что когда-то писал что то для 4ds и забросил, когда осознал, что структура значительно сложнее, чем описано на вики (был там раньше раздел, посвященный мафии, не знаю как щас). открыл, пришел в ужос, переписал, благо сейчас у меня есть шаблоны hdmaster'a c разжеванной структурой :) ну и вот результат. открывает медленно (особенно заметно на больших файлах - scene.4ds фрирайда или тестаросса Staghound'a), сохраняет быстрее :)

по поводу поиграться с окклюдерами. имхо, эксперимент прошел успешно! :D видео с результатами: https://cloud.mail.ru/public/5Jmy/2Um4fJd8t
за качество видюхи прошу не бить, у меня отказалась грузиться оригинальная запись на 1.1 гб, у которой качество тоже было не ахти :D пришлось еще пережимать
на видео видно, что дым состоит из кусочков, которые по очереди прячутся за окклюдером. окклюдеры стоят по периметру двора в больших зданиях, и размером чуть меньше самих домов. и по горизонтали проблем не возникает, но вот по крышам... по дыму видно, что граница действия окклюдера явно выше крыши. или по горизонтали его распирает - хз.
и еще - окклюдер работает, пока он между камерой и объектом. если камера попадает внутрь окклюдера - он отключается

ну и самое главное - окклюдер работает, только если моделька с ним вставлена в scene2.bin. в кэше не работает. зато скорее всего заработает в scene.4ds. понимаю что это очевидно, но я вечер потратил чтобы добыть это знание :D

Добавлено через 10 минут
и мне лень делать новую тему, поэтому тут
https://cloud.mail.ru/public/2fFG/KWDgCR6eX или https://yadi.sk/d/Tuob9ghecmDtdw
это Rotation Calculator - конвертер человеческих ротаций (которые в градусах по трем осям) в квантернион - 4 флоат-значения, как оно есть в 4ds. автор не я, нашел на каком то сайте по гта. пара моментов:
1. писался явно для гта, так что выдает xyzw вместо wxyz, нужных мафии, но это мелочи
2. хуже то, что при повороте по всем трем осям выдает неправильный результат (хз, мож в гта оно и правда иначе считается). в таких случаях помогают онлайн конвертеры. я вот этим пользуюсь: https://quat.zachbennett.com/
он во первых выдает как надо wxyz, а во вторых умеет не только градусы в wxyz, но и обратно


-------------
upd от 10.05.2023: новая версия (https://mafia-game.ru/forum/showpost.php?p=19931&postcount=6)

Firefox3860
20.08.2019, 15:09
Вот это дело, спасибо :)
а размер окклюдеров не изменяет программа при конвертировании? вершины берёт какие есть в объекте, без смешения? я вот сделал одинаковые кубы, и один из них сконвертировал. как будто сам окклюдер стал меньше, а верхняя граница - почему-то выше. или игра так отрисовывает?..

https://mafia-game.ru/forum/imgcache/2019/08/20/f1apkfneqcnkhteukyeksjs.jpg https://mafia-game.ru/forum/imgcache/2019/08/20/mvrzduegzpjeret3.jpg https://mafia-game.ru/forum/imgcache/2019/08/20/trarc5mcfdvxytqfxmup.jpg

Конвертер квата тоже пригодится, жаль что только онлайновый правильный. помню, один раз мне вообще пришлось вручную кват считать :D (хорошо одна ось была). а в оснвном я мве использую для этих целей :)

admpos
21.08.2019, 05:45
перепроверил. вроде всё норм, вершины копируются как есть. побайтово сравнил исходник и конверт - совпадает. так что я склонен валить всё на игру :D
а так да, тоже с этим столкнулся. рабочая зона окклюдера явно не совпадает с размерами :( чтоб не заслонялся оак хилл на видео, я соответствующий окклюдер опускал с -6 до -15

Melhior
21.08.2019, 09:04
Можно на другой файлообменник загрузить? У меня с мэйл.ру не хочет скачиваться, почему то.

admpos
21.08.2019, 16:41
Можно на другой файлообменник загрузить?
можно :) добавил на яндекс

admpos
10.05.2023, 14:47
не прошло и 5 лет, и подъехала новая версия :) теперь это не узкоспециализированный конвертер, а еще один редактор 4ds (ведь это именно то, чего не хватало в 2023?)

mail.ru (https://cloud.mail.ru/public/9Yj7/i9ph2B32F) yandex.ru (https://disk.yandex.ru/d/KCyRvb0aAwVxZw)
архив защищен мегапаролем 1234, потому что mail.ru находит там вирус и не дает расшарить. вирусов там нет (ну, я не добавлял), верьте мне! :D антивирусы от мс не находят ничего, других антивирей под рукой нет

https://mafia-game.ru/forum/imgcache/2023/05/10/umt9ckywcugcdytw.jpg

из умений программы:
- прочитать и сохранить 4ds файл :)
- скопировать/удалить объект(ы)
- поправить position объекта(ов)
- поменять properties объекта(ов)
- сконвертировать первый лод visual object'a в окклюдер
- посмотреть/поменять флаги материала
- посмотреть/поменять текстуры материала (нужна папка с текстурами)
- удалить материал (с обязательной заменой на другой)


тут будет немного лирики, читать необязательно.

некоторые особенности ("не баг, а фича"):
- на вкладке с объектами разрешено множественное выделение (в т.ч. с шифтом или контролом), на вкладке с материалами - только одиночное (так надо. возможно, потом поправлю)
- при длительном использовании отъедает память
- дочерние окна меньше определенного размера увеличиваются до этого самого размера при перетаскивании
- изменение флагов материалов напрямую не влияет на сами материалы. но некоторые флаги влияют на структуру файла, это всплывет при сохранении
- снизилась скорость чтения/записи по сравнению с occl_converter'ом. взамен функция чтения/записи стала одним целым (раньше было 2 разных, с соответствующим количеством ошибок), часть параметров вынесена в отдельный массив (мне стало проще править код :D)
- кнопка рефреш не дает ничего полезного, просто пересчитывает отображаемые массивы материалов/объектов (да, отображается не совсем то, что прочиталось с файла) и перерисовывает гуи
- наверное, есть еще что то, но сейчас не помню

насчет "прочитать и сохранить 4ds файл" - на самом деле, именно это главная фича. серьезно. не было бы ее - не было бы и всего остального. и именно она заняла больше всего времени и сил. за структуру 4DS спасибо RoadTrain'у и его шаблонам для 010EDITOR, без них я бы не справился.
вообще, еще когда начал ковырять мафию (году в 2015-2016), захотел редактор, которого тогда не было - с блэкджеком редактируемой табличкой-списком материалов/объектов. и вот именно редактируемой таблички пока не получилось, так что, наверное, будут новые версии.

TODO:
- editable listview
- кнопки undo/redo
- в чтение/запись добавить оставшиеся типы объектов
- конвертер в другие типы объектов
- пофиксить проблемы с памятью (обнулять локальные массивы в конце функций?)

написано на autoit v3.3.14.5. почему на нем? потому что я могу :D
если вдруг кому интересно - могу выложить исходник, для запуска нужен сам autoit v3.3.14.5

grandshot
10.05.2023, 17:02
Autoit это ругательство :D

Полезнее будет изучить Python и переписать прожку на модуле TKinter :)

Firefox3860
10.05.2023, 18:20
Питон это ругательство :D (ну, по крайней мере, для меня, уж извините :D)

admpos, круто. Кажется, программы с функций удаления и копирования объектов ещё не было. Будет полезно :)
Ты тут даже меня опередил - я тоже делаю программу для 4ds, вот тут показывал - https://mafia-game.ru/forum/showpost.php?p=18822&postcount=110

C# и winforms. Недавно как раз только сохранение в ней дописал.

Я пока ещё не все функции твоей проги просмотрел, но как понял, типы объектв она должна все читать, включая части тел людей и животных, их кости и target-объекты. Пока увидел, что открывает не все файлы нормально. Некоторые локации с лайтсекторами, например, - объекты прочитать не может. Модель Тома не открывает - на каком-то из объектов сбивается. На морфинге в одной из локаций тоже сбилась. Не знаю, это из-за тех шаблонов ли, сам их ещё не рассматривал подробно.
Ещё, кстати, последний байт (один или несколько) в модели не обязателен, его может и не быть.

____
А, морфинг вроде и не разобран, ну понятно, тогда на будущее.

grandshot
11.05.2023, 00:29
Питон это ругательство (ну, по крайней мере, для меня, уж извините )

Ну всё. Такого нахальства я так просто оставить не могу.
Теперь я тоже напишу свой 4ds менеджер на Питоне :D

Firefox3860
11.05.2023, 03:04
Ну всё. Такого нахальства я так просто оставить не могу.
Теперь я тоже напишу свой 4ds менеджер на Питоне :DВо, круто, чем больше конкуренция, тем чаще и я буду своей прогой заниматься, так что давай скорее! :D

admpos
11.05.2023, 11:47
вот слов нет, одни эмоции. и где вы все были раньше? у меня есть пачка пожеланий к будущим редакторам! :D

питон, конечно, лучше, когда его знаешь. а вот еще sql хорош, и его я даже знаю, а толку. кстати, структура 4дс вообще отлично легла бы в базу данных, но я не смог sqlite прикрутить

А, морфинг вроде и не разобран, ну понятно, тогда на будущее.
некоторые типы пока не поддерживаются, не помню точно какие. но у меня записано :)
если в файле нет последнего байта - считается, что там 0. при записи после последнего байта дописывается еще один 0.

о, вот еще что забыл. если выбираешь "сохранить как" - в timestamp принудительно проставляется 0xFFFFFFFFFFFFFFFF, аналогично 4ds_unlocker'у, иначе заноза отказывается открывать файл

Kardini
11.05.2023, 12:15
Ну всё. Такого нахальства я так просто оставить не могу.
Теперь я тоже напишу свой 4ds менеджер на Питоне :D
Лучше допишите boz'овскую читалку .4ds внутрь блендера. Она афигенная, но скелетки и морфинга там очень не хватает. Просто буквально порвёте мир моддинга :D :beer:
Там как раз питон

grandshot
11.05.2023, 14:21
Kardini, Я лучше с нуля свою версию сделаю, чтобы разобраться как писать плагины для блендера :)

Firefox3860
11.05.2023, 17:12
вот слов нет, одни эмоции. и где вы все были раньше? у меня есть пачка пожеланий к будущим редакторам! :DТак здесь и были... А кое-кто другой, наверное, где-то пропадал :D
Пожелания всегда готов выслушать ;)

если в файле нет последнего байта - считается, что там 0. при записи после последнего байта дописывается еще один 0.Странно, я если что имею в виду тот байт, который идёт сразу после номера материала последней фейсгруппы последнего лода последнего объекта. И отвечает он вроде как за то, проигрывает ли модель анимацию. У меня твоя прога бунтует при чтении файла без него, что она ну никак не ожидала такого скорого завершения файла... А после добавления этого байта бунт сразу же прекращается :)

о, вот еще что забыл. если выбираешь "сохранить как" - в timestamp принудительно проставляется 0xFFFFFFFFFFFFFFFF, аналогично 4ds_unlocker'у, иначе заноза отказывается открывать файлКстати, как раз эта временная метка интересовала. В каком формате она пишется, как её можно расшифровать?

grandshot
11.05.2023, 21:08
В каком формате она пишется, как её можно расшифровать?

Это 64-х битный FILETIME (https://learn.microsoft.com/ru-ru/windows/win32/api/minwinbase/ns-minwinbase-filetime). Вся информация в доке. 010 Editor понимает и отображает этот тип данных.

grandshot
12.05.2023, 00:25
Парсер моделей готов :)

https://mafia-game.ru/forum/attachment.php?attachmentid=2444&stc=1&d=1683840323

Firefox3860
12.05.2023, 00:39
Парсер моделей готов :)Ох ё, я, конечно, не имел в виду настолько скорее :D Круто! А что, уже полностью - все типы объектов (и морфинг, и части тел, и кости, и target-ы)? Только чтение или запись уже тоже? :D

А у тебя есть информация по всем битовым флагам материала, за что конкретно они отвечают?

grandshot
12.05.2023, 00:57
Да, читает все. Теперь буду писать экспорт.

А у тебя есть информация по всем битовым флагам материала, за что конкретно они отвечают?

Я инфу по материалам уже давно в моддинг вики постил (https://lhm.fandom.com/ru/wiki/4ds). Остальную спецификацию формата обновить так никогда руки и не доходили :D

GOLOD55
13.05.2023, 08:32
хы движуха какая-то движится:)

grandshot
13.05.2023, 13:20
хы движуха какая-то движится:)

Вот если бы кто нибудь LS3DF.dll среверсил - была бы настоящая движуха)

Там много всего интересного. К примеру, фрейм объект Landscape, представляющий собой интерпретацию террейна из первого H&D () (Принимает четыре текстуры и одну текстуру детализации).

Или другой объект Particle element, представляющий собой аналог партикла из scene2.

Либо объект тени(I3D_VISUAL_SHADOW), который может быть как аналогом 6ds файла, так и лайтмапом.

А еще интересно, что при определенном типе сектора в нем мог идти настоящий снег, использующий текстуру Snow.tga, а не имитация из дождя.

4ds моделей с этими объектами в играх на двиге не встречается, поэтому единственный вариант остается получить структуры реверсом. Псевдокод в этом деле не помощник, придется дизассемблировать. Кто умеет? :)

GOLOD55
14.05.2023, 06:44
LS3DF.dll занимается лишь рендерингом, сами объекты-то(фреймы) подсовывает екзе.
Landscape вроде только и неизвестен как фрейм ога, но вряд ли там че тересное.

grandshot
14.05.2023, 23:27
GOLOD55, судя по названиям функций, которые мне удалось восстановить из дебаг принтов, лоадеры структур находятся в LS3DF'е.

И раз фреймов нет в шаблонах hdmaster'a\RoadTrain'a, значит они считаются не разобранными. Другой инфой-то никто публично не делился, если она и есть.

grandshot
16.05.2023, 21:17
Интересную штуку обнаружил: файл tvoda01.4ds совершенно иной версии 58 (в Мафии 29), использует текстуры tvoda и tvoda1, и был создан 15 марта 2000-го. Движок игры его не воспринимает, так как структура другая. Вероятно, представляет из себя блок воды, возможно даже с морф анимацией как в порту.

Firefox3860
16.05.2023, 21:33
Интересную штуку обнаружил: файл tvoda01.4ds совершенно иной версии 59 (в Мафии 29), использует текстуры tvoda и tvoda1, и был создан 15 марта 2000-го. Движок игры его не воспринимает, так как структура другая. Вероятно, представляет из себя блок воды, возможно даже с морф анимацией как в порту.Ага, я тоже этот файл заметил, только его версия 58, а не 59 :) Кстати, ещё у какого-то файла тоже из мафии нашёл версию 27. Формат был тот же, что у 29. Жаль, не записал, какой именно файл. А есть полный список всех известных версий формата в том числе не только из мафии?

Сделал ещё у себя отображение временной метки :) А ты знаешь, как точно в ней указывается, заблокирован файл или нет? Вроде для разблокировки необязательно все 8 байт 0xFF, unlocker там всего какой-то один бит меняет...

grandshot
16.05.2023, 22:02
А есть полный список всех известных версий формата в том числе не только из мафии?

Пока известно лишь то что было в шаблонах, и то что обнаружил: i3d_versions = {27:'Mafia', 29:'Mafia', 41:'HD2', 42:'Chameleon', 58:'MafiaDeprecated'}
Скоро скачаю все игры на двиге и проверю. Из мафии дампнул все модели. Вот, например, таблица с названиями моделей и текстурами: https://docs.google.com/spreadsheets/d/1MtsmmrHy6WL0I1DmSzvi5JcOaDvwwrfJblH_Ww-VlpE/edit?usp=sharing

Поздновато, вероятно, так как ретекстуры уже давно сделаны. Но пусть будет )


А ты знаешь, как точно в ней указывается, заблокирован файл или нет? Вроде для разблокировки необязательно все 8 байт 0xFF, unlocker там всего какой-то один бит меняет

Увы, не знаю. Нужно занозой файл тестить, подменяя по очереди каждый из байтов на 0xFF и проверять импортирует ли.

grandshot
17.05.2023, 03:05
Дампы из Hidden & Dangerous 2: https://docs.google.com/spreadsheets/d/12Xcsa-E6iSkQhO0kWreu49kz3dAAbGwThl4_o01gCes/edit?usp=sharing

Дампы из Хамелеона: https://docs.google.com/spreadsheets/d/1_kNGcgLabNwZZlU-HT2jWdyljPIqkySxoBPir29K8Aw/edit?usp=sharing

Подтвердилось, что неизвестных типов фреймов в играх не встречается. Обнаружил лишь сломанную модельку jd_mother.4ds в Хамелеоне, и на этом все (побит фрейм VisualSingleMorph в конце). Wings of War пока не закачалась, но не думаю что в ней чего нового найдется.

Chicago1920
17.05.2023, 13:31
Ребят, вы меня простите, а про что вы тут говорите? Ничего не понял, но очень интересно))). Если не сложно, правда, скажите о чем разговор идет?

grandshot
17.05.2023, 16:42
Chicago1920, об игровых 3д моделях в специальном формате *.4ds :)

GOLOD55
17.05.2023, 21:44
А какой там тип фрейма в 4дс кто-то запихал не так давно, не помню?

Firefox3860
17.05.2023, 23:00
А какой там тип фрейма в 4дс кто-то запихал не так давно, не помню?Окклюдер (флаг 0x0C). В шапке темы, собственно, об этом написано и программа конвертирующая там. admpos и запихал.

Добавлено через 54 секунды
grandshot, значит, в итоге неизвестных версий в тех играх тоже не нашлось?

GOLOD55
17.05.2023, 23:58
А, О! хех. А структурка окклюдера в 4дс где-то описана?
Флаг 0x0C, все верно, должен быть.


Инфа из моих записок_натуралиста:

sub_10019210 вторая программа генерации(невизуалы)

...
lea eax, [ecx-2] ; ecx=лонг на входе
cmp eax, 0Fh ; switch 16 cases


case obj class метка

case0 = light 10097C28 (id=2, size=1F0); +154=3(тип лайта, 5=фог)
case1 = camera\GameCamera 10097690 (id=3, size=4F4); хмм
case2 = sound? 10098E10 (id=4, size=1EC)
case3 = sector 10098A28 (id=5, size=234)
case4 = dummy 100978C0 (id=6, size=19C)
case5 = target 10098EF0 (id=7, size=154)
case6 = 10098F90 (id=8, size=144); user(?) не найдено в игре
case7 = model_obj 10098100 (id=9, size=158)
case8 = bone(?) 10097A48 (id=0A,size=20C)
case9 = 100990F0 (id=0B,size=174); Frame_volume(?) не найдено в игре
case10= occluder 100983B8 (id=0C,size=5EC)
case11= scene 10098898 (id=0D,size=33C); Frame_scene. примсектора описаны. один объект.
case12= city_music 10097420 (id=0E,size=17C)
case13= shadow 10098AE0 (id=0F,size=214); +1D4=метка SHD. почему в невизуалах??
case14= 10097B88 (id=10,size=62144); Frame_landscap(?) не найдено в игре
case15= Car_particle 100984D0 (id=11,size=1F0)

Прим: строка 1140 в сцене2 имеет парам типа_объекта(0C000000 у окклюдеров) – его в виде байта переносим в 4дс.
Объект 0E тогда в 4дс должен быть музик_ареей и т.п.

Firefox3860
18.05.2023, 00:43
А, О! хех. А структурка окклюдера в 4дс где-то описана?Хех :) Да, вот тут описана - https://mafia-game.ru/forum/showpost.php?p=5609&postcount=113
Или вот во вложении класс из моей проги на c# (если так удобнее) (в языке тип uint/int - 4 байта, а ulong/long - 8 байт).

Инфа из моих записок_натуралиста: ...Это фрагмент на ассемблере прямо из кода игры, флаги оттуда же взяты?
Получается, можно вообще любой из этих типов запихать в 4ds, если поставить однобайтовый флаг и попасть в структуру? Даже model_obj - будет одна модель вызывать другую :D?

sector (5) - это я так понимаю, запись о звуковых параметрах при нахождении в одноимённом секторе 4ds. Можно было бы их встраивать прямо в модели своих локаций, а не в scene2 :)

shadow (0F) - прямо в модели машин, чтоб 6ds не класть отдельно :) В невизуалах, наверное, потому, что свою геометрию также не отображает, а только эффект даёт, как и окклюдер.

А scene (0D) - это что? Car_particle (11) и Frame_volume (0B) - не одно и тоже?)

GOLOD55
18.05.2023, 01:06
Фрагмент - резалт анализа программы генерации невизуалов(из лс3дф судя по всему).

sector (5) дак енто лайт_сектор и есть. в 4дс у него ж флаг 05.

Тень машины, пожалуй, удобно перенести в саму ее. Думаю, схема примерно та же: в самом теле объекта сперва 2 чексуммы(вертексов и фейсов) пишем, затем оба блока. ли как-то так. попробуй.

По scene (0D) коммент есть, прокомментировать доп-но уже не могу, не помню. скорее всего выискивал в памяти и смотрел че там в кешированной форме напихано(примсекторы описаны как-то).
Frame_volume не найдено в игре. хз че. может думми-вертикальный цилиндр?

grandshot
18.05.2023, 01:34
Хех Да, вот тут описана - https://mafia-game.ru/forum/showpost...&postcount=113

Да вот же нормально читаемый C-код из шаблонов к 010 Editor'у https://github.com/RoadTrain/mafia-formats/blob/master/4ds.bt

Scene2.bin энтити описаны в HD2 Wiki: https://hd2.fandom.com/wiki/Entities


Получается, можно вообще любой из этих типов запихать в 4ds, если поставить однобайтовый флаг и попасть в структуру? Даже model_obj - будет одна модель вызывать другую ?

Нужно знать точную структуру чтобы заработало. В Scene2.bin структура Энтити другая. Там все разделено на блоки и подблоки. Перед каждым блоком указывается размер в байтах (На жаргоне Голода - чексумма). Просто удалить эти размеры и сформировать из энтити 4ds фреймы не получится, так как может отличаться и количество значений-данных, и их порядок. Я когда то пытался угадать структуру Frame Model, добавляя строку с именем стороннего 4ds как "дату" нода. Но так и не получилось, игра такой нод не воспринимала.

Добавлено через 1 минуту
Frame_volume не найдено в игре. хз че. может думми-вертикальный цилиндр?

У меня предположение, что это репрезентаций примитивов коллизии из klz.

Добавлено через 3 минуты
grandshot, значит, в итоге неизвестных версий в тех играх тоже не нашлось?

Да, никаких неизвестных фреймов. Ни Landpatch, ни Area, ни Shadow, ни Projector'a.

GOLOD55
18.05.2023, 01:39
репрезентаций примитивов коллизии из klz
Ну да, можно попробовать также указать точку, да радиус в качестве тела объекта.
Сложно только определить, поняла ли оное игра, ведь енто невизуал :)
Ну если мафа прочитает объект, следующий за ним в 4дс, и скрипт-компас в игре волумю тоже увидит(в ненулевых коордах), то норм.

Firefox3860
18.05.2023, 01:40
sector (5) дак енто лайт_сектор и есть. в 4дс у него ж флаг 05.А, он же тоже невизуал, ну да :D

Тень машины, пожалуй, удобно перенести в саму ее. Думаю, схема примерно та же: в самом теле объекта сперва 2 чексуммы(вертексов и фейсов) пишем, затем оба блока. ли как-то так. попробуй.Ладно, надо будет попробовать. Правда, если в машины класть, то, новерное, будет с carindex-ом конфликтовать...

Да вот же нормально читаемый C-код из шаблонов к 010 Editor'у https://github.com/RoadTrain/mafia-formats/blob/master/4ds.btНу да, они у меня есть, но ссылки не было под рукой.

Нужно знать точную структуру чтобы заработало. В Scene2.bin структура Энтити другая. Там все разделено на блоки и подблоки. Перед каждым блоком указывается размер в байтах (На жаргоне Голода - чексумма). Просто удалить эти размеры и сформировать из энтити 4ds фреймы не получится, так как может отличаться и количество значений-данных, и их порядок.Ага, ну я и говорю, что надо попасть в структуру, со Scene2 тоже знаком.

А я ещё знаете, что хотел спросить, геометрия city_music может быть невыпуклой? И могут ли в одном таком фрейме быть фактически 2 области? Я как-то пробовал так сделать (не в 4ds, а только в scene2). Есть 2 области (оаквуд в городе и около мотеля за городом), где одна и та же музыка звучит. Вот хотел их объединить, чтоб дополнительно музыкальный файл в мод не класть. Но почему-то не работало нормально. Вот и думаю, может, она работает только когда геометрия выпуклая (когда нету как-бы углублений). Но может и ошибок наделал при соединении, не знаю.

И у лайт-сектора требуется ли определённый жёсткий порядок перечисления вершин/фейсов? Если, допустим, просто перенести их блоки из стандартного визуала (исключив из вершин нормали), то будет сектор работать? Или придётся переделывать?

GOLOD55
18.05.2023, 01:44
будет с carindex-ом конфликтовать
надо тестить, ставя машину через сцену2 с нерегенным именем модели. для этого и удобна мб такая тень будет, иначе ж тени у таких машин нету.
у лайт-сектора требуется ли определённый жёсткий порядок перечисления вершин/фейсов?
да.

grandshot
18.05.2023, 01:47
Firefox3860, вероятно, структура frame_area точно такая же как у окклюдеров. Потому что их энтити в 4ds схожи.

Firefox3860
18.05.2023, 01:55
Firefox3860, вероятно, структура frame_area точно такая же как у окклюдеров. Потому что их энтити в 4ds схожи.Я тогда даже её понял, сделал в занозе свою область по нужной форме и перенёс в scene2 по его структуре. Но работало очень криво. Посмотрел на форму, многоугольник в её проекции на x-z был невыпуклый. Тогда раздедил на несколько выпуклых - и всё стало отлично. Поэтому, наверное, и объединение не сработало...

да.Круто :D А какой этот порядок, известно?

GOLOD55
18.05.2023, 02:05
А какой этот порядок, известно?
а хрен знат. я када делал в гексе то копировал с оригинала порядки.
Но может самому мешу пофиг как(можно с занозы взять его), но с лайт_окнами сложнее.

grandshot
18.05.2023, 15:45
Ну да, можно попробовать также указать точку, да радиус в качестве тела объекта.

Дополнил свою ida базу по твоим "Запискам натуралиста". Но это конструкторы которые задают структуры для экземпляров объектов (может классы), и размерами не соответствуют Фреймам из 4ds. Попытался воссоздать структуры Frame_Volume и Frame_Model - успеха нет.

Не помнишь каким способом ты прочитанные модели из памяти дампил? Можно было бы забить неизвестные структуры определенными байтами, а затем с их помощью размеры структур и некоторых значений определить по тому что будет в дампе.

GOLOD55
18.05.2023, 19:49
Ммм поясняю: объект(фрейм) в памяти - ето уже его кешированная(загруженная) форма.
Там своя структура, подстановкой значений можно лишь выяснить, что данная ячейка хранит за инфу, но енто все не даст структур файлов упаковки данных(4дс, бин и пр.).
Для структур надо искать программы чтения файлов, в теории.
С другой стороны, при генерации фрейма\актора отуда-то инфу надо брать. либо из файлов, либо из некого прекешированного массива.

grandshot
22.05.2023, 22:04
Зарубежные товарищи тоже активизировались.

Asa-sk выложил видеотуториал про создание секторов:

iQu6ge8XENQ

GOLOD55
22.05.2023, 22:14
BOZ-прога ж умеет тож делать сектора, где-то есть туториал. я как-то тестил, работало. там лайт_окна ложатся как лоды в объект, и прога конверит.

grandshot
22.05.2023, 23:26
GOLOD55, все же это костыльно реализовано. Лучше из 3д редактора напрямую экспортировать.

Firefox3860
23.05.2023, 04:42
GOLOD55, если ты про ls3d sandbox, то я тоже тестил, работало, но у неё прикол в том, что она похоже, берёт вершины для сектора не прямо из созданной заготовки, а измеряет её по min/max-координатам. То есть создать в ней сектор со стенами, не параллельными осям координат, невозможно. Ну у меня не получилось.
А насчёт этого способа из видео не знаю, ещё сам его не пробовал.

regis77
23.05.2023, 13:45
GOLOD55, если ты про ls3d sandbox, то я тоже тестил, работало, но у неё прикол в том, что она похоже, берёт вершины для сектора не прямо из созданной заготовки, а измеряет её по min/max-координатам. То есть создать в ней сектор со стенами, не параллельными осям координат, невозможно. Ну у меня не получилось.
А насчёт этого способа из видео не знаю, ещё сам его не пробовал.

способ на видео уже старый, он максимально простой и рабочий