.::Russian Blood Community Forum::. »Blood: The Game We Playing In » Blood TC for Duke3D » Главная
Страниц (45): первая страница « 28 29 30 31 32 33 34 35 36 [37] 38 39 40 41 42 43 44 45 »
409. flanker - 06 Мая, 2014 - 21:50:15
>Конвертор карт сделать сможешь?
как сказать, такой чтобы вообще ручной работы не требовал, я вряд ли сделаю, а вот всякую мелочовку вроде тех же амбиент звуков, врагов, патроны разбосанные по всем углам, тривиальные свойства секторов, я должен суметь перекинуть на eduke32. Если так подумать, то все это, помноженое на колчество уровней в обоих аддонах, это колосальный объем рутинной работы который можно избежать.

> Хотя, кстати говоря, на каждый спрайт в дюке еще должны быть переменные xvel, yvel, zvel, clipdist и owner.

да, все эти перемыенные описаны в структурах:
Код:
struct Sprite {
 int x, y, z;
 short cstat, picnum;
 signed char shade;
 unsigned char pal, clipdist, filler;
 unsigned char xrepeat, yrepeat;
 signed char xoffset, yoffset;
 short sectnum, statnum;
 short ang, owner, xvel, yvel, zvel;
 short lotag, hitag, extra;
};

410. [M210®] - 06 Мая, 2014 - 22:37:34
Это структура Blood-карт?
Тут для меня неизвестная переменная только filler Улыбка
ну и data1-data4 Улыбка)

411. flanker - 07 Мая, 2014 - 05:06:29
это структура спрайта дюка. в бладе структура может содержать дополнительную секцию xSprite которая и содержит переменные data1-data4

по формату MAP карт на форуме существует тема, ээээ... девятилетней свежости
http://bloodgame.ru/forum/topic.php?forum=2&topic=2

и как результат иследования, итоговй excel-файл, где все структуры кроме xSprite расписаны:
http://bloodgame.ru/download/mapformat.rar


зы про конвертор.
индексакцию текстур я сделал, но на твоих картах на всех стенах заполнено поле overpic значением 5120. Его обязательно забивать?

Потом, не совсем понял, что с масштабом. Оружие, враги и медикаменты утопают в полу... какие занчения на сколько надо поменять?


(Отредактировано автором: 07 Мая, 2014 - 14:08:39)

412. [M210®] - 07 Мая, 2014 - 20:51:54
Цитата:
индексакцию текстур я сделал, но на твоих картах на всех стенах заполнено поле overpic значением 5120. Его обязательно забивать?


нет, не обязательно. видимо он сам забивается после конвертации.


Цитата:
Потом, не совсем понял, что с масштабом.

Дюк ровно в полтора раза меньше Калеба Улыбка Карту нужно уменьшать, если знаешь как, уменьш, если нет забей, потом сам уменьшу...хотя вроде как mapster32 новый такое умеет

413. flanker - 11 Мая, 2014 - 20:59:19
Разобрался более-менее с геометрической системой простроения уровня. Как оказалось, х/y координаты блада и дюка совместимы, а вот про z-координату так не скажешь. И поэтому, когда загружаешся в немасштабированный уровень, воникает ощущение, что не идешь, а ползешь на брюхе.

Про конвертор. Доработать blud2b под полноценный конвертор, никак не получится, по той причине, что blud2b работает
единовременно только о с одной записью т.е. посмотреть что записано в одном спрайте, и с учетом этого поменять информацию в другом спрайте, он никак не сможет. Нужно программу, которая бы загружала все карту в оперативку и могла бы прочесть/изменить произвольную запись. К счастью, когда я ковырял формат карт, я переписал blud2b на c++11, что бы программа мне распечатывала поля записей карты. Что бы сделать из нее конвертор, оставалось добавить запись в
дюковский формат. В принципе, если сравнивать со скриптами mapster'a( я почитал немного вики, но пока бегло) то последний в разы удобнее будет конечно, и цель конвертора не в том что бы заменить мапстер, а том чтобы перекинуть недостающую инифу, которую blud3b режет.

Исходник, не знаю нужен или нет, но все-же выложил сюда:
http://sourceforge.net/p/bloodcmhrp/blud2e/ci/master/tree/

написано под компилятор gcc, у кого нет его под рукой, могут спокойно собрать утилитку на облаке,
например http://koding.com



утилита, пока почти без правил, переобразования, просто основа программы. Работая без правил, программа выдает результат идентичный blud2b. Сейчас нужно придумывать правила.





(Отредактировано автором: 11 Мая, 2014 - 21:11:05)

414. [M210®] - 12 Мая, 2014 - 08:52:08
Спасибо за исходники, будет с чего начать изучать с++
Видимо, надо будет составить таблицу соответствия номеров звуков оригинала с номерами звуков BloodCM (звуки в игру добавлял по мере необходимости, поэтому нумерация не совпадает) Список лучше хранить и загружать в программу из txt файла, так настройка будет более гибкой.

Ну видимо, скоро у нас появится новый конвертер карт, это крутоПодмигивание

415. flanker - 12 Мая, 2014 - 21:31:17
>Спасибо за исходники, будет с чего начать изучать с++
ок. будет, что-то непонятно, спрашивай.

>надо будет составить таблицу соответствия номеров звуков оригинала с номерами звуков BloodCM (звуки в игру добавлял по мере необходимости, поэтому нумерация не совпадает)

да, задачка. пока единственное что приходит в голову: натравить программку сравнивать оригинальные карты и уже готовые. понятно что номера спрайтов сбиты, но каждый спрайт приписан к определенному сектору, кроме того имеет четкие пространственные координаты. и даже если оригинальный спрайт был передвинут, то скорее всего недалеко, и сравнивая модули векторв, можно построить таблицу соответствия.

>Список лучше хранить и загружать в программу из txt файла, так настройка будет более гибкой.

на мой взгляд сомнительно. в конфиг-файл надо пихать те данные которые придиться постоянно менять, т.е. это обычно пользовательские настройки: видео-режим и пр. а номера звуков зачем менять? я бы вынес табличку в заголовочный файл. но если очень хочется, могу прикрутить конфиг на LUA, это десять строчек в коде, а возможностей должно с головой хватить. Но так, чтобы дефолтные значения все равно задавались хардкорно, благо при открытых исходниках их посмотреть не проблема, а конфиг файл только бы менял их значения по необходимости.


416. [M210®] - 12 Мая, 2014 - 23:39:31
Цитата:
в конфиг-файл надо пихать те данные которые придиться постоянно менять,

Это как раз и будут те самые данные, сама по себе blud2b должна конвертировать звуки один к одному, но если будет особый параметр, как в случае с BloodCM, то использовать его...ну другими словами, лучше сделать настройки по-умолчанию как в blud2b, а таблица звуков - это частный случай.

Цитата:
понятно что номера спрайтов сбиты,

Номера спрайтов как раз не сбиты, там смещение на 5120, грубо говоря, в оригинале все картинки хранятся с TILE000.ART, но т.к. в eduke32 эти тайлы заняты, то первый тайл BloodCM имеет TILE020.ART. Сначала я просто хотел сделать BloodCM как мод к дюку, поэтому решил сделать такое смещение....в общем абсолютно все текстуры в конверторе подчиняются этому правилу, за исключением некоторых текстур в самом конце архива тайлов (там уже просто подгоняли по размеру текстуры, которые плохо смотрелись на полу, после машстабирования уровня)

И приведу пример переменные звуков в BloodCM:


Код:

//Caleb Talk
 
define FRESHVICTIMS  1001  
definesound FRESHVICTIMS   1001.wav 0   0    255  4   0
define BOOMSTICK  1002
definesound BOOMSTICK  1002.wav 0   0    255  4   0
define GOODBAD  1003
definesound GOODBAD  1003.wav 0   0    255  4   0
define SMELLOFNAPALM  1004
definesound SMELLOFNAPALM  1004.wav 0   0    255  4   0
define ALLIWANTISAFRIEND  1005
definesound ALLIWANTISAFRIEND  1005.wav 0   0    255  4   0
define NOONEWANTTOPLAY  1006  
definesound NOONEWANTTOPLAY  1006.wav 0   0    255  4   0  
define ISTHATGASOLINE  1007
definesound ISTHATGASOLINE  1007.wav 0   0    255  4   0
define OOH  1008
definesound OOH  1008.wav 0   0    255  4   0
define TADA  1009  
definesound TADA  1009.wav 0   0    255  4   0  
define LIVEAGAIN  1010


Может это тебе как-то поможет?

Если что, весь список звуков есть в файле sounds.con, хотя я не помню, притерпел ли он изменения с момента выхода версии 06.2013 Улыбка

417. flanker - 14 Мая, 2014 - 22:30:01
> Номера спрайтов как раз не сбиты, там смещение на 5120,
мы наверно говорили о разных переменных. я имел ввиду порядковый номер спрайта, а ты номер картинки. если в уровне всего около 500 спрайтов, то его номер не может быть более 5120 Улыбка

обновил программку. реализовал чтение переменных: data1-4 и launch байта. это позволило мне сделать:
враги расставлены по уровням,
предметы, оружие патроны на мультиплеер
AmbientSFX, радиус вроде корректно преобразовывет, номер мелодии пока нет.
SectorSFX только fix pic number т.е.
Gib Object - удаление
Explode Object/разрушаемый объект - вроде сделал, но не уверен, что правильно
Aplayer(multiplay) - вроде сделал

Сейчас вроде все в вытаскивание сектор-зффектов уперлось.

418. [M210®] - 15 Мая, 2014 - 22:07:28
Цитата:
обновил программку. реализовал чтение переменных: data1-4 и launch байта. это позволило мне сделать:

Ченить придумал, где эти переменные будут у дюка? Улыбка

419. flanker - 16 Мая, 2014 - 06:11:41
зависит от типа объекта. если это оружие или боеприпасы и launch байт равн 0x50 то в палитру пишем еденицу, и предмет помечается как для мультиплея. если это монстр, то в зависимости от значения того же launch байта пишем в lotag спрайта и монстр появляется на том уровне сложности, каком задумали левел-дизайнеры. если это амбиент, то дата3, номер мелодии, пишем в лотег, а дата2, раудиус, умножаем на десять и пишим в хайтег. ну и так далее и тому подобное)

420. [M210®] - 16 Мая, 2014 - 06:57:17
Ну впринципе да, чтото можно использовать. Не в курсе, в оригинале переменые xvel-zvel для спрайтов используются?

421. flanker - 16 Мая, 2014 - 09:00:55
в xvel какие-то данные есть.
yvel/zvel забиты нулями, так что можно сделать вывод, что не используются.

422. [M210®] - 16 Мая, 2014 - 10:04:52
У меня скоро тоже будет что показать Улыбка Поднял производительность в 2 раза, а может и выше...зомби стал немного умнее, буду теперь переделывать остальных врагов, и искать глюки Улыбка

423. [M210®] - 28 Мая, 2014 - 13:31:34
flanker, есть какие-нить новости?

424. flanker - 28 Мая, 2014 - 18:55:47
в прошлую неделю времени не было совсем, сейчас полегче.
бьюсь с sectorSFX и ambientSFX, т.е. со звуковыми спрайтами.

Цитата:
Список лучше хранить и загружать в программу из txt файла, так настройка будет более гибкой.


я сделал как и было предложено, чтение con файла sounds.con. алгоритм простейший: файл парсится на ключевое слово define, по следующим за ним двум словам составляется табличка типа:
название звука | его номер

сейчас нужно будет табличку соответствия с оригинальной нумерацией составить. ну и когда со звуками будет покончено, можно будет браться за двери. а то сейчас не интересно, дверь работает, а звука нет)

в целом, из-за парсинга con файлой и двух режимов работы, програмка стала несколько мудрёной по сравнению c blud2b

процесс идет потихоньку)

425. [M210®] - 28 Мая, 2014 - 21:37:51
А двери тоже можно переделывать программно? В это пока с трудом верится, даже просто алгоритм закрытия придумать сложно Улыбка)

(Добавление)
Таблицу соответствия можно взять тут....
http://rghost.ru/55936180
я сейчас поговорил с empy, он сказал, что не все звуковые эффекты можно будет заменить автоматом....т.к. в оригинале звуковой спрайт имеет 4 звука, у дверей - 2 для открытия и 2 для закрытия....в нашем ТСе мы для этого используем 2 звуковых спрайта

(Отредактировано автором: 28 Мая, 2014 - 21:49:53)

426. flanker - 28 Мая, 2014 - 23:54:59
> Таблицу соответствия можно взять тут....
О! это мне порядочно сэкономило времени, теперь можно к дверям приступать

> даже просто алгоритм закрытия придумать сложно
я не стану говорить о чем пока не делал, а делал я пока floor door, а там его главное распознать что это имено floor door, присвоить лотаг соответствующий и z-координате пола присвоить z-координату потолка. и дверь работает.

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

> 2 для открытия и 2 для закрытия....в нашем ТСе мы для этого используем 2 звуковых спрайта

проблем со вставкой дополнительных спрайтов по определенным правилам нет. Правда пока нет четкого мнения как выбирать x/y координаты для них.

427. [M210®] - 29 Мая, 2014 - 07:03:06
Цитата:
проблем со вставкой дополнительных спрайтов по определенным правилам нет. Правда пока нет четкого мнения как выбирать x/y координаты для них.

Да можно одни и те же координаты использовать, а потом уже вручную разнести, если надо будет, а можно использовать вращающийся вектор и ставить второй спрайт на каком-нить расстоянии в пустое место, предварительно проверив, что 100% находшься в том же секторе, где и основной спрайт.

Цитата:
что касается остальных типов, вроде тоже не должно быть проблем. немного возни с координатами, но все решаемо.

На floor и ceiling двери я тоже делал скрипты, это не сложно....а вот слайд двери мы заменяем вручную, удаляем старую дверь, делаем дверной проем заново, а потом строим там саму дверь (дополнительный сектор)...поэтому просто протащить две вершины до закрытия двери не достаточно

428. empy - 29 Мая, 2014 - 11:50:39
Менять ceiling-floor двери на дюковские и закрывать их не нужно. Дюковские мы уже не используем. Вместо них се69-70, и двери должны оставаться открытыми, как в оригинале.

В принципе, сделать скриптом их тоже нетрудно. Нужно просто поставить в секторе двери 3 спрайта: локер, се и мувер поинт.

Остальные двери, типа двустворчатых или раздвижных, требуют полной переделки вручную.

(Отредактировано автором: 29 Мая, 2014 - 11:52:17)

429. flanker - 29 Мая, 2014 - 12:59:26
по поводу звуков. преобразование id звуковых спрайтов я сделал. работает это так. имеется файл sounds.con взятый из con скриптов bloodcm. из него извлекается таблица вида:
название звука | номер звука в bloodcm

также имеется файл sounds_old.con созданый на основе выложенной вчера таблички.
из него извлекается следующая таблица:
номер звука в blood | название звука

название звука явяется связующим элементом, который объединяет записи в общую таблицу вида http://pastebin.com/raw.php?i=UMFD6v3W

т.о. при конвертации на входе имеем id блада, на выходе id bloodcm.

430. [M210®] - 01 Июня, 2014 - 23:53:06
flanker
можешь выложить новый конвертер? Основная работа занимается звуковые спрайты и уровни сложности, раз это все уже есть, значит можно использовать для 3го и 4го эпизода (все двери там уже сделаны)

431. flanker - 02 Июня, 2014 - 05:41:57
исходники лежат в репозитории, я ссылку давал:
http://sourceforge.net/p/bloodcmhrp/blud2e/ci/master/tree/
собрать можно везде где есть более-менее свежий gcc. SectorSFX там пока реализован только в виде одного спрайта, т.е. случай когда data1, data2 совпадают c data3, data4. вставку спрайта еще только предстоит реализовать. но проблема не в этом. программа в качестве входного файла читает карту из блада. т.е. она не может взять уже полу-готовую карту из дюка и дописать туда свою инфу. Може у тебя есть способ перетащить инфу из одной дюковской карты в другую? в приципе можно попытаться прикрутить функцию стравнения секторов по х/у координатам стен и на основании этого переписывать инфу. но, там, где геометрия изменена, т.е. двери, я просто незнаю как программе показать, что это бывший сектор такой-то.

432. [M210®] - 02 Июня, 2014 - 07:41:54
Сравнивать дюковские карты не обязательно, пропустим через конвертер карты оригинала, потом выделим оттуда звуковые спрайты и вставим в уже рабочие карты, ничего сложного быть не должно

(Добавление)
чето он больше не компилится Улыбка
blub2e.cpp не может найти путь к .h
а если компилить сам blub2e.h то куча ошибок


(Добавление)
Пришлось подключать <cstdlib>, чтобы прога понимала EXIT_FAILURE и EXIT_SUCCESS


(Добавление)
Конвертация E3M5 не получилась, Invalid map format, nothing loaded (code -3).
Редактор зависает

(Добавление)
Удалось сконвертировать и открыть простенькую карту-коробку
Может это поможет разобраться в ошибке
http://rghost.ru/56078630

(Отредактировано автором: 02 Июня, 2014 - 08:23:40)

433. flanker - 02 Июня, 2014 - 09:19:12
нет, наверно у тебя что-то не так собирается. там теперь сборка идет утилитой make.

твоя коробочка у меня без проблем конвертируется
http://fc07.deviantart.net/fs70/f/2014/152/8/e/duke0055_by_flankerus-d7kp9rh.png

и E3M5 в редакторе открывается. а тот файл который у тебя получился SPRITES-DUKE.MAP, он действительно поврежден.

Цитата:
равнивать дюковские карты не обязательно, пропустим через конвертер карты оригинала, потом выделим оттуда звуковые спрайты и вставим в уже рабочие карты, ничего сложного быть не должно

т.е. мне достаточно будет сейчас отконвертировать 3-й, 4-й эпизоды и послать карты тебе?

434. empy - 02 Июня, 2014 - 09:28:40
Что в итоге получится сконвертировать? Со спавном второго спрайта для двойных звуков нет проблем? Можно ли перенести уровни сложности врагов (там тоже есть нюансы) и мульти-синглплеерное оружие?

435. flanker - 02 Июня, 2014 - 09:39:53
добавление второго страйта, займет может строчки три в исходнике програмы, но я еще е тестировал такие объекты. если я для второго спрайта задам те же x/y/z координаты, можно ли в редакторе будет увидеть, что там именно два спрайта? ну так, в целом, коныертируются враги, оружие, снаряжение, амбиент звуки.
SectorSFX пока частично, как говорил.

(Добавление)
карта e3m5 для примера:
http://yadi.sk/d/wyagqpE9Rx5Y6

(Отредактировано автором: 02 Июня, 2014 - 09:41:29)

436. [M210®] - 02 Июня, 2014 - 11:28:52
Цитата:
нет, наверно у тебя что-то не так собирается. там теперь сборка идет утилитой make.

Я в конечном итоге и собрал прогу с помощью make, а на выходе кривые карты Улыбка

Цитата:
т.е. мне достаточно будет сейчас отконвертировать 3-й, 4-й эпизоды и послать карты тебе?


На первое время да.
Цитата:
редакторе будет увидеть, что там именно два спрайта?

В редакторе этого видно не будет, пока не разнесешь спрайты вручную, но чисто логически, можно будет ожидать два спрайта в зоне сектора двери, а т.к. дверь все равно переделывать, то два спрайта легко будет обнаружить, так что это не проблема.

и да, как empy предлагает, мультиплеерному оружию применяй сразу палитру №1 при конвертации

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

(Отредактировано автором: 02 Июня, 2014 - 11:30:04)


Powered by ExBB 1.9.1
Original Style v1.5a2 created by Daemon.XP