Список форумов .::Russian Blood Community Forum::.
Официальный форум русского сообщества фанатов игры BLOOD
Deep Cold Grave
Официальный сайт издательства ОНО
BloodGame

 

Blood: The Game We Playing In
Blood TC for Duke3D
Главная
[Страниц (49): первая страница « 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 [48] 49 » ]

Главная
| Новая тема | Ответить | | Поиск в теме |
| Версия для печати |
flanker


Палач

Вернуться к началу
Профиль :

> как задать время для вращающихся дверей SE64
>не совсем понял вопроса
> лотаг - скорость вращения
в Blood карте нет скорости, есть параметр busyTime что задает время выполнения эффекта в десятых долях секунды. мне это время нужно перевести в скорость. Я могу конечно рассчитать на глаз, но прежде чем изобретать велосипед, решил поинтересоваться, возможно есть готовая формула?

>что-то типа 410, ExplodCM
спасибо, то что надо)

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

> как сделать что-бы некоторые вертикальные двери открывались только по каналу?
вроде решил удалением локера

>со светом не понял
свет сделал, и на мой взгляд вполне прилично.

>слайд сектора(не путать со слайд дверями)
сделано, по крайней мере первая и вторая карта обрабатываются без косяков.


сейчас из геометрических преобразований осталось только StarTrack двери, в Blood это обычно шторки. На этом годовалая эпопея с конвертером начнет подходить к концу. Останется править существующие алгоритмы, не все работают корректно на разных картах. Затем я начну выкладывать карты. Сначала буду делать те которые уже сделаны, опыт HRP подсказывает, что если программа без ошибок будет конвертировать первые четыре карты, то далее дело пойдет уже по накатанной.

результат работы на примере первой карты, на текущий момент:
https://yadi.sk/d/gXaTPD6Wg2DTZ




(Отредактировано автором: 22 Апреля, 2015 - 12:26:57)

Всего записей: 208 : Дата рег-ции: Апр. 2009 : Отправлено: 22 Апреля, 2015 - 12:22:00
[M210®]



Избранный
Откуда: Москва

Вернуться к началу
WWW : Профиль :

Цитата:
возможно есть готовая формула?

В дюке один такт игры равен 1/26сек...т.е. 26 тактов в секунду.
При расчете движения секторов я делил путь на 3 части - ускорение, равномерная скорость и замедление, для чего тоже расчитывал время, чтобы знать, когда какой задавать режим движения для каждой точки.
время на ускорении и замедлении расчитывал как t1 = V / a,
V - это скорость которую я задаю мувер_поинту или GPSPEED. a - ускорение a = V^2/2*(S/3)

S - это путь, на который должна проехать дверь для полного открытия.

таким образом на 1/3 пути у нас время t1.
По истечению этого времени "наступает" равномерное движение
t2 = S / V
и t3 = t1, т.к. замедление делаю такое-же как и ускорение, только с обратным знаком.
Общее время движения двери получается T = t1 + t2+ t3 + погрешность из-за отсутствия переменных с плавающей точкой в дюке. Или проще - Т = 2*t1 + t2

Но у меня также есть опция в extra, где я могу отключить ускорение или замедление или все сразу, это тоже наверно можно учитывать


Цитата:
результат работы на примере первой карты, на текущий момент:

Почти все хорошо, но нет интерактивных элементов и спрайт-движений (дверь при выходе во двор и кнопка-пила на секрет)
Еще нужно задать синхронизирующий факел в начале игры, а то все моргает по-своему...позже расскажу как это сделать.

мне еще надо будет сделать описание работы триггеров
муверов, кнопок.

Как у тебя дела с 3д видом в твоем редакторе?) И как думаешь, стоит ли делать виевер карт под андройд?


(Добавление)
Цитата:
что если программа без ошибок будет конвертировать первые четыре карты,

для простой механики - да, а для логической части - не совсем Улыбка мне часто приходилось дополнять или создавать новый логический элемент при редактировании 3го и 4го эпизода


(Отредактировано автором: 23 Апреля, 2015 - 09:09:41)

Всего записей: 946 : Дата рег-ции: Янв. 2008 : Отправлено: 23 Апреля, 2015 - 08:54:16
flanker


Палач

Вернуться к началу
Профиль :

>Как у тебя дела с 3д видом в твоем редакторе?
сейчас все время съедает конвертер, т.е. до лета 3д вида не будет

>стоит ли делать виевер карт под андройд?
imho сейчас необходимости вроде нет, но я бы не исключал того, что она появится

Цитата:
V - это скорость которую я задаю мувер_поинту или GPSPEED. a - ускорение a = V^2/2*(S/3)

S - это путь, на который должна проехать дверь для полного открытия.

таким образом на 1/3 пути у нас время t1.
По истечению этого времени "наступает" равномерное движение
t2 = S / V
и t3 = t1, т.к. замедление делаю такое-же как и ускорение, только с обратным знаком.
Общее время движения двери получается T = t1 + t2+ t3 + погрешность из-за отсутствия переменных с плавающей точкой в дюке. Или проще - Т = 2*t1 + t2


не совсем понятно в чем меряется время, в секундах или тактах и что означает путь для вращающегося предмета.

если упростить твои формулы:
Код:
T = 2t1 + t2,
где t2=S/V , t1=V/a , a=V^2/(2*S/3), итого:
T=S/V + 2*(V*2/3S)/V^2 = S/V + 2*(2/3*S/V)=S/V + 4/3S/V  =7/3*S/V


илиКод:
V=7S/3T

http://www.wolframalpha.com/input/?i=S%2FV+%2B2%28V%2F%28V%5E2%2F%282%2F3S%29%29%29

=

(Отредактировано автором: 23 Апреля, 2015 - 14:43:03)

Всего записей: 208 : Дата рег-ции: Апр. 2009 : Отправлено: 23 Апреля, 2015 - 14:41:39
[M210®]



Избранный
Откуда: Москва

Вернуться к началу
WWW : Профиль :

Цитата:
в секундах или тактах и что означает путь для вращающегося предмета.

Да, забыл это указать, время в тактах, т.е. чтобы получить секунды, нужно разделить время на 26.
Цитата:
если упростить твои формулы:

Интересная штука....пока не разбирался, но 7S/3V - это расчет времени?
Мне все-равно необходимо рассчитывать ускорение...а через ускорение - время, т.к. после горе-расчетов без плавающей запятой, приходится делать пересчет и вводить поправку

Всего записей: 946 : Дата рег-ции: Янв. 2008 : Отправлено: 23 Апреля, 2015 - 16:58:52
flanker


Палач

Вернуться к началу
Профиль :

> 7S/3V - это расчет времени?
общее время, да. если, конечно Код:
a = V^2/2*(S/3)
S/3 в знаменателе как я подумал сперва, а не в числителе. Если все же в числителе, то там результат более мудрено выглядит:


(Отредактировано автором: 23 Апреля, 2015 - 19:28:54)

Всего записей: 208 : Дата рег-ции: Апр. 2009 : Отправлено: 23 Апреля, 2015 - 18:37:04
[M210®]



Избранный
Откуда: Москва

Вернуться к началу
WWW : Профиль :

Разобрался с сайтом)))) а то сначала подумал, что на сайте хитрый алгоритм для просчета ускорения, а это просто "упрощатор" формул)) Ну я бы упростил эту формулу и сам, но в моем алгоритме в этом нет необходимости, а так, обычно я их упрощаю само собой)

Цитата:
и что означает путь для вращающегося предмета.

Ну представляй угловую скорость вместо линейной, угловое ускорение...а расстояние - описывающая дуга.

Если СЕ64 имеет начальный угол 128, а мувер_поинт имеет угол 512 (90гр), тогда путь, при движении против часовой стрелки будет равен S = 512 - 128 = 384
при этом номинальное значение скорости будет набрано после прохождения трети пути - 128ед, до 256ед будет прямолинейное движение поворота а при прохождении пути от 256 до 384 скорость будет уменьшаться...ну и сложность при расчете ускорения и замедления была связана как раз с остановкой именно на 384-м угле....а получалось 380 или 390, а то и вообще 290 или 490 при больших номинальных скоростях)


(Отредактировано автором: 23 Апреля, 2015 - 19:58:19)

Всего записей: 946 : Дата рег-ции: Янв. 2008 : Отправлено: 23 Апреля, 2015 - 19:33:47
flanker


Палач

Вернуться к началу
Профиль :

между прочим, если посмотреть на последнюю формулу, то 12 из числителя можно убрать, как незначительную константу, тогда S сокращается и вся формула сводится к:

Код:
V=S/T

т.е. влияние ускорения на конечное время, при условии, что еще и приходится округлять до целого, практически нулевое.

>а это просто "упрощатор" формул)
да как бы не только. например: уравнение через две точки:
http://www.wolframalpha.com/input/?i=line+through+%28-17%2C100%29+and+%285%2C1%29

> Ну я бы упростил эту формулу и сам
это понятно, но провериться лишний раз не помешает)


(Отредактировано автором: 23 Апреля, 2015 - 21:06:50)

Всего записей: 208 : Дата рег-ции: Апр. 2009 : Отправлено: 23 Апреля, 2015 - 21:05:47
[M210®]



Избранный
Откуда: Москва

Вернуться к началу
WWW : Профиль :

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

Код:
V=S/T

т.е. влияние ускорения на конечное время, при условии, что еще и приходится округлять до целого, практически нулевое.


Цитата:
S/3 в знаменателе как я подумал сперва, а не в числителе.


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


(Отредактировано автором: 23 Апреля, 2015 - 22:44:53)

Всего записей: 946 : Дата рег-ции: Янв. 2008 : Отправлено: 23 Апреля, 2015 - 22:44:29
flanker


Палач

Вернуться к началу
Профиль :

[M210®], SWTCH1 и SWITCH3 чем различаются?

Всего записей: 208 : Дата рег-ции: Апр. 2009 : Отправлено: 24 Апреля, 2015 - 07:10:50
[M210®]



Избранный
Откуда: Москва

Вернуться к началу
WWW : Профиль :

спрайты?
ничем, картинкой только

Всего записей: 946 : Дата рег-ции: Янв. 2008 : Отправлено: 24 Апреля, 2015 - 10:54:05
flanker


Палач

Вернуться к началу
Профиль :

Цитата:
таким образом на 1/3 пути у нас время t1.
По истечению этого времени "наступает" равномерное движение
t2 = S / V
и t3 = t1, т.к. замедление делаю такое-же как и ускорение, только с обратным знаком.

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


где А = ускорение, T = полное время, то для A=1 и T=10;
график скорости будет выглядеть так:


т.е. скорость сначала возрастает, а затем убывает до нуля. И ничего делить не надо
если допустим, у нас уже есть эффект который задан через постоянную скорость, и мы знаем расстояние на которое он движется, и время движения и нам нужно проиграть этот эффект через ускорение/замедление, то нужно только определить коэффициент А в приведенном выше уравнении. растояние S при равномерном поступательном движении, это площать прямоугольника
S=V * T;
т.е. нам надо подобрать коэффициент А, так что бы площадь ограниченная кривой и осью абсцисс равнялась пройденному пути. Площадь на участке кривой находится через определенный интеграл, и после нехитрых манипуляций


где V - средняя скорость, T - полное время;
если V средняя равна 5, а полное время Т равно 10, то А=0.3
график:




(Отредактировано автором: 24 Апреля, 2015 - 14:35:46)

Всего записей: 208 : Дата рег-ции: Апр. 2009 : Отправлено: 24 Апреля, 2015 - 13:06:15
[M210®]



Избранный
Откуда: Москва

Вернуться к началу
WWW : Профиль :

Да, похоже именно такой формулы мне и нехватало...надо будет опять переписывать механику на новый лад Улыбка только похоже в последней формуле ошибка - a=4*v / T^2
Тогда пик функции будет именно в значении v а не выше него.

Под параметр Т лучше подрузамевать расстояние S...и складывать координаты объекта с полученным значение функции во времени

(Отредактировано автором: 24 Апреля, 2015 - 15:17:09)

Всего записей: 946 : Дата рег-ции: Янв. 2008 : Отправлено: 24 Апреля, 2015 - 15:11:38
flanker


Палач

Вернуться к началу
Профиль :

>Тогда пик функции будет именно в значении v а не выше него
по формуле V это не пик, а среднее значение
смысл с том, чтобы за одинаковое время проходить ту же дистанцию, что и при равномерном движении со скоростью V, но с эффектами ускорения и замедления.
сделал небольшой слайд для наглядности:


здесь полное время T выражено через полный путь L, т.е. T=L/V


(Отредактировано автором: 25 Апреля, 2015 - 11:26:37)

Всего записей: 208 : Дата рег-ции: Апр. 2009 : Отправлено: 24 Апреля, 2015 - 19:16:25
[M210®]



Избранный
Откуда: Москва

Вернуться к началу
WWW : Профиль :

А это что за программа?

Всего записей: 946 : Дата рег-ции: Янв. 2008 : Отправлено: 26 Апреля, 2015 - 11:41:46
flanker


Палач

Вернуться к началу
Профиль :

>А это что за программа?
Maxima - система символьных вычислений, хорошая штука, когда нужно обсчитать что-нибудь муторное.

Цитата:
сейчас из геометрических преобразований осталось только StarTrack двери, в Blood это обычно шторки. На этом годовалая эпопея с конвертером начнет подходить к концу. Останется править существующие алгоритмы, не все работают корректно на разных картах. Затем я начну выкладывать карты.

и вот, этот момент наступил. сделал первую пару карт первого эпизода:
http://yadi.sk/d/GSWGSGCSgFbo4

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

Взрывающийся сектор через SE96/70 я так и не смог сделать, потому что не смог протянуть канал по xvel к детонаторам (желтые баллоны) .


Всего записей: 208 : Дата рег-ции: Апр. 2009 : Отправлено: 26 Апреля, 2015 - 15:48:02
[M210®]



Избранный
Откуда: Москва

Вернуться к началу
WWW : Профиль :

Да, первая карта вообще почти полностью готова, даже спрайтовые двери сделал =))
Секрет-пила как то не там активируется, надо будет посмотреть, как ты ее реализовал....может быть там сам спрайт можно будет задать кнопкой (у меня такое есть)
Вторая карта у меня почему то долго грузилась и часто подвисала в процессе игры...видать чтото там работает не по моим стандартам Улыбка
поворотную вагонетку в начале тоже надо делать через SE64, а там видать дюковский SE1
Но в целом да, все работает и это здорово) Прогу еще подпилить, добавить конвертирование триггеров и на выходе будут почти готовые карты

(Добавление)
Цитата:
зрывающийся сектор через SE96/70 я так и не смог сделать,

Попробуй еще таким способом...в секторе стоит masterswitch...уже забыл, зачем он нужен, но без него не работает)
http://rghost.ru/8hcFR2nFT

(Отредактировано автором: 26 Апреля, 2015 - 22:41:20)

Всего записей: 946 : Дата рег-ции: Янв. 2008 : Отправлено: 26 Апреля, 2015 - 22:24:24
flanker


Палач

Вернуться к началу
Профиль :

>Секрет-пила как то не там активируется, надо будет посмотреть, как ты ее реализовал...

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

>Вторая карта у меня почему то долго грузилась и часто подвисала в процессе игры...видать чтото там работает не по моим стандартам
потестировал на старом двухядернике, сравнил по быстродействию с картой из комплекта bloodtc.06.2013, polymer+hrp, да разница по быстродействию есть:(

>http://rghost.ru/8hcFR2nFT
интересно, надо будет подумать


[M210®] про respawn предметов что нибудь можешь рассказать? пытался сделать как respawn ключей, не прокатило ;)

Всего записей: 208 : Дата рег-ции: Апр. 2009 : Отправлено: 27 Апреля, 2015 - 01:51:17
[M210®]



Избранный
Откуда: Москва

Вернуться к началу
WWW : Профиль :

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

Наверно, лучше все использовать respawn-actor (7197)
http://rghost.ru/7nWyGWq4P

xvel - активация спавна
lotag - спрайт активации
hitag - уровень сложности, при котором будет происходит спавн, 0 - спавнит на всех уровнях сложности.

zvel = 1, слежение на монстром...будет спавнить объекты после смерти монстра, у которого yvel равен xvel у респава
спавнит спрайт такого же размера и палитры как и respawn


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

Присвой спрайту-пиле statnum = 16, extra = 0
а yvel поставь такой какой стоял на кнопке, кнопку удаляй.
statnum = 16 делает любой спрайт кнопкой...extra - это изменение текстуры после активации, nextTexture = currentTexture + extra...можно менять текстуру спрайта после нажатия. при extra = 0 ничего меняться не будет

(Отредактировано автором: 27 Апреля, 2015 - 23:07:21)

Всего записей: 946 : Дата рег-ции: Янв. 2008 : Отправлено: 27 Апреля, 2015 - 22:48:52
flanker


Палач

Вернуться к началу
Профиль :

>Присвой спрайту-пиле statnum = 16, extra = 0
здесь более менее все получилось, правда extra при котором у меня не меняется спрайт все же равняется -1. надо будет еще спрайтовые ворота так же сделать и освоил использование стены в качестве кнопки (lotag/hitag)

>respawn-actor (7197)
с неодушевленными предметами вышло без проблем, а вот c earth_zombi без накладок не обошлось. ставил disappear trigger, спрайт спаувнится когда тот вылазит из земли. ставил счетчик на 2 или enem_kill trigger вообще не работало. с остальными монстрами diasappear trigger нормально работает. но так, в целом, геймплей веселее пошел.

>поворотную вагонетку в начале тоже надо делать через SE64
поставил SE64, move_point ,hitag на сопряженные сектора и... вагон поворачивается, а спрайты остаются на месте. были мысли крутить их mover'ом... но решил что это через чур.

>закрывающийся сектор через SE96/70 я так и не смог сделать,
>Попробуй еще таким способом...в секторе стоит masterswitch...уже забыл, зачем он >нужен, но без него не работает)
обнаружилось, что два SE70 сектора с одинаковыми каналами xvel перестают работать. в итоге сделал через связку SE13+MASTERSWITCH+PushTrigger
вопрос пока решен.



Всего записей: 208 : Дата рег-ции: Апр. 2009 : Отправлено: 28 Апреля, 2015 - 20:34:39
[M210®]



Избранный
Откуда: Москва

Вернуться к началу
WWW : Профиль :

Цитата:
поставил SE64, move_point ,hitag на сопряженные сектора и... вагон поворачивается, а спрайты остаются на месте.

Поставь на SE64 owner и такой же owner на каждый спрайт, который нужно двигать. Должно сработать. SE64 тоже могут двигать спрайты, как и мувер...специально для таких случаев
Цитата:
а вот c earth_zombi без накладок не обошлось.

Потому что earth_zombie сам является спавнером...попробую сделать костыль для него если это необходимо)
Цитата:
обнаружилось, что два SE70 сектора с одинаковыми каналами xvel перестают работать.

Это надо будет проверить Улыбка

Всего записей: 946 : Дата рег-ции: Янв. 2008 : Отправлено: 29 Апреля, 2015 - 11:23:10
flanker


Палач

Вернуться к началу
Профиль :

>Это надо будет проверит
я проверил, вроде работает, видимо дело было в чем-то другом;)

>...попробую сделать костыль для него если это необходимо)
нет не надо, пусть пока так будет.

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

посмотри карту на досуге:
http://yadi.sk/d/w5_ThIEcgKWpk

сектор с вагоном, owner == SE64.owner установлен на спрайты колесных пар.
не работает(

(Отредактировано автором: 29 Апреля, 2015 - 12:03:07)

Всего записей: 208 : Дата рег-ции: Апр. 2009 : Отправлено: 29 Апреля, 2015 - 12:01:51
[M210®]



Избранный
Откуда: Москва

Вернуться к началу
WWW : Профиль :

Цитата:
сектор с вагоном, owner == SE64.owner установлен на спрайты колесных пар.
не работает(

А у меня работает) Только очень бешеная скорость) И спрайты нужно чуть отвести от стен, при повороте возникает погрешность и спрайт "тонет" в стене.
А ты работаешь с моими последними скриптами? Теми, что я давал по почте?

Всего записей: 946 : Дата рег-ции: Янв. 2008 : Отправлено: 29 Апреля, 2015 - 15:27:34
flanker


Палач

Вернуться к началу
Профиль :

Цитата:
Карта e4m4 сущий ад. Я долго вручную подгонял ROR, т.к. там видимо вообще не заботились о геометрии и сопряжениях.


на мой взгляд, просто в мапстере неудобно работать с “этажами” отсюда и все сложности.
на e1m6 протестировал свой алгоритм сшивки секторов с разной геометрией, прежде он работал только на e1m1. алгоритм там “мудрый”. во-первых, он рекурсивный. Это значит, что пока два разных сектора не станут идентичными, алгоритм из рекурсии не выйдет ;)

для начала он ищет точку с одинаковыми координатами в обоих секторах. затем начинает обход стен с измерением их длины. Если длина не совпадет, то делит длинную стену на две: по длине короткой стены, плюс остаток. затем структура секторов заново считывается и начинается все сначала, пока все стены не станут одинаковыми.

сложность в том, что все стены имеют указатели на соседние стены и секторы. При каждой вставке стены эти указатели на ВСЕЙ карте надо пересчитывать. Стены внутренних секторов, фактически состоят их двух стен, их надо делить вместе, причем пересчитывать индексы с учетом того вторая стена будет тоже делиться.

алгоритм теоретически должен “сшивать” любые два произвольные сектора, лишь бы совпадала хоть одна точка. Но, я не берусь сказать, какая форма секторов будет после “сшивки”, например пятиконечной звезды и квадрата ;)

сейчас у меня сделано первые пять карт первого эпизода, и “сделано”, наверно тут слишком сильно сказано, это скорее “выхлоп” с конвертера дополненный скопировынными решениями с готовых карт. Здесь я просто смотрел, в каких случаях конвертер не справляется, и как это реализовано мапером. К тому же для меня это обучение, т.к. я не мапер и опыта в создании карт у меня ноль. Выкладывать карты думаю не имеет смысла, они по качеству все равно хуже тех, что были сделаны вручную. Сейчас осталось еще с десяток карт второго и остатка первого эпизодов, и можно будет браться за карты третьего эпизода.

Всего записей: 208 : Дата рег-ции: Апр. 2009 : Отправлено: 05 Июня, 2015 - 21:38:42
| Версия для печати |
| Новая тема | Ответить | | Поиск в теме |


Blood: The Game We Playing In
Blood TC for Duke3D
Главная
[Страниц (49): первая страница « 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 [48] 49 » ]


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


Top.Mail.Ru