|
|
|
Канал X Rebirth »
Модовый и скриптовый отсек X Rebirth: «Ковыряем новый движок (моддинг)» |
|
|
MistR
80 EGP
 Рейтинг канала: 1(1) Репутация: 29 Сообщения: 193 Откуда: Краснодар Зарегистрирован: 25.12.2008
 |
|
Но тут как я понимаю около 20к в ЛОДе, если да, то в полном масштабе у них будет около 60-70к... А станции? Тут станции по более будут. Да и кораблей в секторе не 20 штук летает...
_________________ НЕТ - Читам!!! |
|
|
AlexYar
1941 EGP
               Рейтинг канала: 5(187) Репутация: 325 Сообщения: 33077
Зарегистрирован: 26.10.2003
 |
|
MistR : |
Но тут как я понимаю около 20к в ЛОДе, если да, то в полном масштабе у них будет около 60-70к...
|
В 1 момент времени рендерится только 1 лод. В зависимости от удаления игрока переключается на другой. Так что максимальную полигональность можно смотреть по высшему лоду.
Станции тут круты конечно, но практически никогда в кадре не бывает так, чтобы на ней все лоды (всех блоков) были высшими. А если ползунок дальности видимости на минус отодвинуть - будет ещё меньше поликов. А если ещё и детализацию крутануть, так высшего лода вообще не увидишь
|
|
|
MistR
80 EGP
 Рейтинг канала: 1(1) Репутация: 29 Сообщения: 193 Откуда: Краснодар Зарегистрирован: 25.12.2008
 |
|
AlexYar : |
|
Спс, я в курсе как это работает...)))
Просто хотел сказать что количество поликов выросло, хотя это мои догадки... Лоды тоже не одни их может быть несколько. Будем надеяться что это не самые дальние.)))
_________________ НЕТ - Читам!!! |
|
|
Xwin
80 EGP
 Репутация: -2 Сообщения: 644
Зарегистрирован: 06.02.2007
 |
|
Господа, а Вы уверены что торговля работала до патча 1.17 ?
В файле trade.performtraderun.xml (v1.17) добавлена одна строка
<set_command command="command.trade" param="$targetobject" />
Т.е. этот патч как раз торговлю и разрешил Или это установка команды капитану ....
Скрипты move.undock.xml и move.unpark.xml (v1.17) вызывают друг друга, может возникнуть ситуация когда это станет бесконечным циклом
Последний раз редактировалось: Xwin (17:15 27-11-2013), всего редактировалось 2 раз(а) |
|
|
HikeR
145 EGP
   Рейтинг канала: 4(57) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005
 |
|
все что знаю на текущий момент про файлы .xmf
темных пятен еще хватает даже в самом формате, не говоря уже про структуру моделей, поможите кто чем могет ;)
|
|
|
MistR
80 EGP
 Рейтинг канала: 1(1) Репутация: 29 Сообщения: 193 Откуда: Краснодар Зарегистрирован: 25.12.2008
 |
|
HikeR, а в чем именно проблема?
_________________ НЕТ - Читам!!! |
|
|
HikeR
145 EGP
   Рейтинг канала: 4(57) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005
 |
|
проблема в переменных с именами unknown*, я не знаю для чего они, к чему относятся и как к ним по жизни относиться. а также пока неясно где сидят банальные нормали и UV-координаты.
|
|
|
Andre_013
55 EGP
 Рейтинг канала: 1(3) Репутация: 6 Сообщения: 48 Откуда: Украина, Харьков Зарегистрирован: 19.11.2009
 |
|
Xwin : |
Господа, а Вы уверены что торговля работала до патча 1.17 ?
В файле trade.performtraderun.xml (v1.17) добавлена одна строка
<set_command command="command.trade" param="$targetobject" />
Т.е. этот патч как раз торговлю и разрешил Или это установка команды капитану ....
Скрипты move.undock.xml и move.unpark.xml (v1.17) вызывают друг друга, может возникнуть ситуация когда это станет бесконечным циклом
|
На 1.15 работает без замечаний пока. Убрал масстрафик, увеличил jobs для мелких (класс М) втрое, так они нигде не простаивают и масстрафик заменяют. Носятся по трассам со страшной силой.
|
|
|
HikeR
145 EGP
   Рейтинг канала: 4(57) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005
 |
|
как мог "продвинулся" в конвертере моделей, лежит рядом с шрифтогенератором, на выходе банальный Wavefront OBJ.
ручной запуск из корня:
Код: |
tools\luajit.exe lua\xmf2obj.lua path_to_xmf [output_dir [output_name|dump]] |
path_to_xmf: путь к .xmf-файлу
output_dir: выходной каталог, по-умолчанию "." (текущий)
output_name: имя для модели, по-умолчанию "out"
dump: вместо конвертации будут вытащены бинарные данные (для дальнейшего курения)
пример вывода (коменты мои):
Код: |
==== xmf info: ==============
chunk headers: 2 x 188 bytes // кол-во и размер чанков
vertices: 34 // кол-во вершин
indexes: 48 // кол-во индексов
faces: 16 // кол-во треугольников
materials: 1 // кол-во материалов
= chunks info: ======================
id1 part id2 qty bytes
-------------------------------------
0 0 32 34 x 24 // параметры чанков, три штуки неких айдишников,
30 0 30 48 x 2 // кол-во элементов и размер каждого из них
= materials: =========================
start count name
--------------------------------------
0 48 argon.ar_unique_02 // начальный индекс и кол-во индексов для выбранного материала
parse chunks data...
0-0-32-24: FAIL, unknown, skip... // вот тут случился облом, неизвестный чанк
30-0-30-2: OK, indexes (2 bytes)... // а тут все хорошо, хотя бы индексы есть
convert failed :( // но в итоге все равно облом, вершин не найдено |
индексный буфер везде одинаковый, набор 30-0-30-2 для моделей с числом вершин меньше 64К, 30-0-31-4 — для остальных (то есть 2 или 4 байта под индекс).
однако даже вершины не везде можно отыскать с наскоку. практически все *-collision.xmf файлы имеют параметры 0-0-2-12, то есть 12 байт под одну вершину, 4 байта на координату, обычный float. нет ни нормалей, ни UV-координат, как раз для физической модели. но детализацию этих моделей я уже показывал, такие "болванки" не стыдно и в самой игре использовать как основные ;)
в других моделях вершинный буфер может быть от 14 до 64 байт на единицу. координаты обычно идут первыми, а вот что там еще напихано - тут я сдался. поэтому если вместо имени модели (последний параметр) написать "dump", то скрипт вытащит голые необработанные данные:
chunk#N.bin - заголовок чанка, может быть 56 или 188 байт, первые 40 байт в нем известны, остальное надо изучать
chunkdata#N_(0_0_32)_34x24.bin - сам буфер с непонятным содержимым, в скобках айдишники, а также кол-во элементов и размер каждого (произведение даст общий размер файла ;)
есть модели с двумя чанками (вершины и индексы), есть по 6-8 (последний всегда индексный), в остальных просто должны быть вершины, нормали и текстурные координаты (это просто необходимый минимум).
однако если кто изучал распакованные текстуры, то наверное обратил внимание на такой факт - большинство из них монохромные. нет картинок для "красных" или "желтых" кораблей, их цвет задается в конфигах, причем чуть-ли не отдельно для каждой части. так вот, в большинстве чанков явно прослеживаются RGBA значения (4 байта) для каждой вершины, только как это применить - хз.
а вот примерно что уже можно надергать, некоторые части от Capital Destroyer (за неимением текстур материалы просто имеют разный цвет):
    
p.s.
и опять не перестаю удивляться эгософтовским моделлерам, обычный кубик у них имеет 36 вершин и 12 треугольников. поэтому если будет какое желание поработать с теми моделями, что получатся, то сначала их нужно прогнать через любой оптимизатор. иначе получится не модель, а набор отдельных несвязанных треугольников ;)
|
|
|
AlexYar
1941 EGP
               Рейтинг канала: 5(187) Репутация: 325 Сообщения: 33077
Зарегистрирован: 26.10.2003
 |
|
В хоумворде модели строились похожим образом, и тоже красились отдельно. В хоме-2 болванка модели была отдельно (её лоды тоже отдельно), а кроме болванки был ещё одной моделью набор всяких крышечек, антенн, лючков и прочего обвеса (сперва пропадал он при удалении, а потом уже лоды начинали переключаться).
Может и здесь так же?
|
|
|
HikeR
145 EGP
   Рейтинг канала: 4(57) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005
 |
|
здесь тоже так (как и во многих других играх) — детализация имеет отдельную модель (detail_*.xmf) и иногда даже свои собственные LOD-ы
слева направо: детализация, максимальный lod, минимальный lod
|
|
|
bugaj
50 EGP
 Репутация: 0 Сообщения: 8
Зарегистрирован: 30.11.2013
 |
|
Пытаюсь ковыряться в скриптах.
1) никак не могу найти где можно увеличить количество приказов кораблю. Т.е. сейчас нельзя дать больше 3х приказов, нашел где он по этим приказам бежит (ну собственно трейдран), но никак не могу найти, где этот лимит определяется ( кто нибудь знает?
2) в trade.findfreetraderun.xml насколько я понял должен выполняться когда командир находится в состоянии "свободная торговля", но ничего в этом режиме он не делает. Хотя в файле описано, что нужно искать ордера на покупку если что то есть в карго и т.д. Т.е. либо скрипт не вызывается, либо не работает. Почему?
добавлено спустя 10 минут:
-<init>
-<do_if value="this.ship.commander">
<set_command command="command.trade"/>
</do_if>
-<do_else>
<set_command command="command.freetrade"/>
</do_else>
</init>
это значит что если в корабле сидит командир, то всегда будет выполнятся скрипт который бежит по очереди, которую ты дал кораблю, а не тот который на автоторговлю (freetrade)?
Последний раз редактировалось: bugaj (23:20 02-12-2013), всего редактировалось 5 раз(а) |
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 1(3) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
HikeR : |
и такая ситуация куда не глянь. может быть движок умеет оптимизировать меши на лету, но что-то у меня сомнения в этом.
|
Любой уважающий себя движок умеет это делать. Видимо егософтеры побоялись, что весь их контент тогда влезет на пару CD и запилили не оптимизированные меши. Хотя это же егософт — может они и за одно и про оптимизацию порядка индексов в меше ни сном, ни духом...
А как они нормали хранят — небось не пакуют в три байта как все остальное прогрессивное человечество? И UV у них наверняка во float вмест half...
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
Wizard
265 EGP
  Рейтинг канала: 1(2) Репутация: 59 Сообщения: 1592 Откуда: Питер Зарегистрирован: 06.08.2005
 |
|
DIMOSUS.X : |
HikeR : |
и такая ситуация куда не глянь. может быть движок умеет оптимизировать меши на лету, но что-то у меня сомнения в этом.
|
Любой уважающий себя движок умеет это делать. Видимо егософтеры побоялись, что весь их контент тогда влезет на пару CD и запилили не оптимизированные меши. Хотя это же егософт — может они и за одно и про оптимизацию порядка индексов в меше ни сном, ни духом...
А как они нормали хранят — небось не пакуют в три байта как все остальное прогрессивное человечество? И UV у них наверняка во float вмест half...
|
Я, как человек несведущий в этой теме, воспринял половину текста примерно как "Циклопентанпергидрофенантрен"...
Ссори за офтоп.
_________________ Последний раз редактировалось: Wizard (18:24 25-04-2021), всего редактировалось 411 раз |
|
|
HikeR
145 EGP
   Рейтинг канала: 4(57) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005
 |
|
DIMOSUS.X : |
может они и за одно и про оптимизацию порядка индексов в меше ни сном, ни духом...
|
о какой оптимизации идет речь?
DIMOSUS.X : |
небось не пакуют в три байта как все остальное прогрессивное человечество? И UV у них наверняка во float вмест half...
|
если бы не паковали и не экономили на спичках, то здесь уже бы импортер красовался ;)
|
|
|
AlexYar
1941 EGP
               Рейтинг канала: 5(187) Репутация: 325 Сообщения: 33077
Зарегистрирован: 26.10.2003
 |
|
bugaj : |
насколько я понял должен выполняться когда командир находится в состоянии "свободная торговля", но ничего в этом режиме он не делает.
|
Потому, что в этом режиме он никогда не бывает. То, что написано в приказах в буковской версии - это отсебятина буки. Она ни коим образом не соответствует реальным командам, выполняемым капитаном. Если ты там видишь "свободная торговля", то это означает, что капитан выполняет приказ "следовать за..." Если хочешь разобраться в игре/скриптах - запускай игру только с английскими настройками языка. Все другие локализации 100% чего-нибудь да отломают или что-то напортят (служебный тег отрежут, либо служебный маркер переведут, и он работать перестанет ).
bugaj : |
-<init>
-<do_if value="this.ship.commander">
<set_command command="command.trade"/>
</do_if>
-<do_else>
<set_command command="command.freetrade"/>
</do_else>
</init>
это значит что если в корабле сидит командир, то всегда будет выполнятся скрипт который бежит по очереди, которую ты дал кораблю, а не тот который на автоторговлю (freetrade)?
|
Скорее всего на фритрейд способны только корабли неписей (у них нет явноназначенного капитана). Игроковые корабли всегда выполняют только приказы игрока или менеджеров станций. Это логическое предположение, времени глубоко копать в эту тему у меня ещё не было. Да и способов отдать приказ на свободную торговлю своему транспорту в игре нет.
|
|
|
DIMOSUS.X
997 EGP
        Рейтинг канала: 1(3) Репутация: 188 Сообщения: 3252 Откуда: Vilnius/Minsk Зарегистрирован: 06.08.2008
 |
|
HikeR : |
о какой оптимизации идет речь?
|
http://www.gamedev.ru/tip/?id=75
В своей последней заготовке графического движка у меня это выполнялось на стадии компиляции мешей в свой формат.
Интересно — у них есть модели с двумя UV? В X3:TC в UV2 запекалось AO освещение.
_________________ Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом. |
|
|
bugaj
50 EGP
 Репутация: 0 Сообщения: 8
Зарегистрирован: 30.11.2013
 |
|
AlexYar : |
Скорее всего на фритрейд способны только корабли неписей (у них нет явноназначенного капитана). Игроковые корабли всегда выполняют только приказы игрока или менеджеров станций. Это логическое предположение, времени глубоко копать в эту тему у меня ещё не было. Да и способов отдать приказ на свободную торговлю своему транспорту в игре нет.
|
но сии файлы то можно поменять, значит можно и своим кораблям привить дух свободной торговли ) Ручная по 3 ордера если честно уже задолбала, и это у меня всего 3 транспорта еще. Поставил мод на "неисчезание" торговых предложений из памяти торгового компьютера, 8760 часов там стоит помнить. Но как то к утру опять все пропало ( Причем я сделал дальность сканирования торговых предложений и инфоточек 50 км, но от этого похоже только изменилась видимость этих точек, т.е. их видно издалека, но опять же в пределах прямой видимости, и чтобы торговое предложение стало активным (и добавилось в комп) к нему все равно нужно подлетать. Т.е. опять не торт. хотя возможно у меня просто не работает мод Т.к. наворачивать круги вокруг станций уже порядком задолбало (хотя похоже это единственное что можно делать в этой игре без багов). Хотелось бы как минимум, чтобы при влете в зону все ордера обновлялись и добавлялись в комп. Причем насколько я понял из скрипта на автотрейд - там если список ордеров не определен, то он видит все в пределах заданной области(капитал внутри сектора).
Последний раз редактировалось: bugaj (11:11 03-12-2013), всего редактировалось 1 раз |
|
|
HikeR
145 EGP
   Рейтинг канала: 4(57) Репутация: 30 Сообщения: 886 Откуда: Великий Новгород Зарегистрирован: 20.09.2005
 |
|
DIMOSUS.X : |
http://www.gamedev.ru/tip/?id=75
|
использовать D3DX для оптимизации — очень странный совет.
а порядок следования индексов и наличие/отсутствие нескольких текстурных координат можете и сами. от 12 до 64 байт на вертекс в зависимости от модели, монохромные текстуры, там *такого* может понаверчено...
|
|
|
AlexYar
1941 EGP
               Рейтинг канала: 5(187) Репутация: 325 Сообщения: 33077
Зарегистрирован: 26.10.2003
 |
|
bugaj : |
Ручная по 3 ордера если честно уже задолбала, и это у меня всего 3 транспорта еще.
|
Продай транспорты. Не торгуй, если задолбало. Не играй в конце концов. Но это не оправдания для чита с автоторговлей
Неписи не должны играть за тебя. Либо тебе нравится вручную торговать и ты торгуешь, либо не играешь.
В этой игре надобности в атоторговцах нет никакой вообще. Для станций игрока всё нужное привозят приписанные туда транспорты. Этого более чем достаточно.
|
|
|
|
|
|
Канал X Rebirth ->
Модовый и скриптовый отсек X Rebirth: «Ковыряем новый движок (моддинг)» |
|