.::Russian Blood Community Forum::. »Blood: The Game We Playing In » Blood TC for Duke3D » Главная |
Страниц (45): первая страница « 35 36 37 38 39 40 41 42 43 [44] 45 » |
409. flanker - 22 Апреля, 2015 - 12:22:00 |
> как задать время для вращающихся дверей SE64 >не совсем понял вопроса > лотаг - скорость вращения в Blood карте нет скорости, есть параметр busyTime что задает время выполнения эффекта в десятых долях секунды. мне это время нужно перевести в скорость. Я могу конечно рассчитать на глаз, но прежде чем изобретать велосипед, решил поинтересоваться, возможно есть готовая формула? >что-то типа 410, ExplodCM спасибо, то что надо) >что когда я совмещал TROR сектора, я пытался искажать сектора-туннели я тоже думал , о туннелях, но пока решил апробировать имеющийся алгоритм на разных картах, а уже потом прикручивать к нему автоматическое разбиение. > как сделать что-бы некоторые вертикальные двери открывались только по каналу? вроде решил удалением локера >со светом не понял свет сделал, и на мой взгляд вполне прилично. >слайд сектора(не путать со слайд дверями) сделано, по крайней мере первая и вторая карта обрабатываются без косяков. сейчас из геометрических преобразований осталось только StarTrack двери, в Blood это обычно шторки. На этом годовалая эпопея с конвертером начнет подходить к концу. Останется править существующие алгоритмы, не все работают корректно на разных картах. Затем я начну выкладывать карты. Сначала буду делать те которые уже сделаны, опыт HRP подсказывает, что если программа без ошибок будет конвертировать первые четыре карты, то далее дело пойдет уже по накатанной. результат работы на примере первой карты, на текущий момент: https://yadi.sk/d/gXaTPD6Wg2DTZ (Отредактировано автором: 22 Апреля, 2015 - 12:26:57) |
410. [M210®] - 23 Апреля, 2015 - 08:54:16 | |||
Цитата:
В дюке один такт игры равен 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) |
411. flanker - 23 Апреля, 2015 - 14:41:39 | |||
>Как у тебя дела с 3д видом в твоем редакторе? сейчас все время съедает конвертер, т.е. до лета 3д вида не будет >стоит ли делать виевер карт под андройд? imho сейчас необходимости вроде нет, но я бы не исключал того, что она появится Цитата:
не совсем понятно в чем меряется время, в секундах или тактах и что означает путь для вращающегося предмета. если упростить твои формулы: Код:
илиКод:
http://www.wolframalpha.com/input/?i=S%2FV+%2B2%28V%2F%28V%5E2%2F%282%2F3S%29%29%29 = (Отредактировано автором: 23 Апреля, 2015 - 14:43:03) |
412. [M210®] - 23 Апреля, 2015 - 16:58:52 | ||
Цитата:
Да, забыл это указать, время в тактах, т.е. чтобы получить секунды, нужно разделить время на 26. Цитата:
Интересная штука....пока не разбирался, но 7S/3V - это расчет времени? Мне все-равно необходимо рассчитывать ускорение...а через ускорение - время, т.к. после горе-расчетов без плавающей запятой, приходится делать пересчет и вводить поправку |
413. flanker - 23 Апреля, 2015 - 18:37:04 | |
> 7S/3V - это расчет времени? общее время, да. если, конечно Код:
(Отредактировано автором: 23 Апреля, 2015 - 19:28:54) |
414. [M210®] - 23 Апреля, 2015 - 19:33:47 | |
Разобрался с сайтом)))) а то сначала подумал, что на сайте хитрый алгоритм для просчета ускорения, а это просто "упрощатор" формул)) Ну я бы упростил эту формулу и сам, но в моем алгоритме в этом нет необходимости, а так, обычно я их упрощаю само собой) Цитата:
Ну представляй угловую скорость вместо линейной, угловое ускорение...а расстояние - описывающая дуга. Если СЕ64 имеет начальный угол 128, а мувер_поинт имеет угол 512 (90гр), тогда путь, при движении против часовой стрелки будет равен S = 512 - 128 = 384 при этом номинальное значение скорости будет набрано после прохождения трети пути - 128ед, до 256ед будет прямолинейное движение поворота а при прохождении пути от 256 до 384 скорость будет уменьшаться...ну и сложность при расчете ускорения и замедления была связана как раз с остановкой именно на 384-м угле....а получалось 380 или 390, а то и вообще 290 или 490 при больших номинальных скоростях) (Отредактировано автором: 23 Апреля, 2015 - 19:58:19) |
415. flanker - 23 Апреля, 2015 - 21:05:47 | |
между прочим, если посмотреть на последнюю формулу, то 12 из числителя можно убрать, как незначительную константу, тогда S сокращается и вся формула сводится к: Код:
т.е. влияние ускорения на конечное время, при условии, что еще и приходится округлять до целого, практически нулевое. >а это просто "упрощатор" формул) да как бы не только. например: уравнение через две точки: http://www.wolframalpha.com/input/?i=line+through+%28-17%2C100%29+and+%285%2C1%29 > Ну я бы упростил эту формулу и сам это понятно, но провериться лишний раз не помешает) (Отредактировано автором: 23 Апреля, 2015 - 21:06:50) |
416. [M210®] - 23 Апреля, 2015 - 22:44:29 | ||
Цитата:
Цитата:
Но вот только путь нужно именно делить на 3 части а не увеличивать в 3 раза, поэтому какой физ.смысл будет у второй формулы с 12 в числителе я не знаю) (Отредактировано автором: 23 Апреля, 2015 - 22:44:53) |
417. flanker - 24 Апреля, 2015 - 07:10:50 |
[M210®], SWTCH1 и SWITCH3 чем различаются? |
418. [M210®] - 24 Апреля, 2015 - 10:54:05 |
спрайты? ничем, картинкой только |
419. flanker - 24 Апреля, 2015 - 13:06:15 | |
Цитата:
если нужно было сначала ускорить, а затем замедлить предмет, то не проще ли было воспользоваться квадратной функцией? если взять за скорость: где А = ускорение, T = полное время, то для A=1 и T=10; график скорости будет выглядеть так: т.е. скорость сначала возрастает, а затем убывает до нуля. И ничего делить не надо если допустим, у нас уже есть эффект который задан через постоянную скорость, и мы знаем расстояние на которое он движется, и время движения и нам нужно проиграть этот эффект через ускорение/замедление, то нужно только определить коэффициент А в приведенном выше уравнении. растояние S при равномерном поступательном движении, это площать прямоугольника S=V * T; т.е. нам надо подобрать коэффициент А, так что бы площадь ограниченная кривой и осью абсцисс равнялась пройденному пути. Площадь на участке кривой находится через определенный интеграл, и после нехитрых манипуляций где V - средняя скорость, T - полное время; если V средняя равна 5, а полное время Т равно 10, то А=0.3 график: (Отредактировано автором: 24 Апреля, 2015 - 14:35:46) |
420. [M210®] - 24 Апреля, 2015 - 15:11:38 |
Да, похоже именно такой формулы мне и нехватало...надо будет опять переписывать механику на новый лад только похоже в последней формуле ошибка - a=4*v / T^2 Тогда пик функции будет именно в значении v а не выше него. Под параметр Т лучше подрузамевать расстояние S...и складывать координаты объекта с полученным значение функции во времени (Отредактировано автором: 24 Апреля, 2015 - 15:17:09) |
422. [M210®] - 26 Апреля, 2015 - 11:41:46 |
А это что за программа? |
423. flanker - 26 Апреля, 2015 - 15:48:02 | |
>А это что за программа? Maxima - система символьных вычислений, хорошая штука, когда нужно обсчитать что-нибудь муторное. Цитата:
и вот, этот момент наступил. сделал первую пару карт первого эпизода: http://yadi.sk/d/GSWGSGCSgFbo4 общие впечатления: делать карты с помощью с конвертера, несмотря на его косяки, можно. вторую карту я сделал за утро c нуля. основную рутину: скилы, свет, звуки, конвертер делает. шаблонные решения чаще проще подправлять, нежели делать с нуля. Но, бинарный файл, я думаю еще не скоро выложу. Взрывающийся сектор через SE96/70 я так и не смог сделать, потому что не смог протянуть канал по xvel к детонаторам (желтые баллоны) . |
424. [M210®] - 26 Апреля, 2015 - 22:24:24 | |
Да, первая карта вообще почти полностью готова, даже спрайтовые двери сделал =)) Секрет-пила как то не там активируется, надо будет посмотреть, как ты ее реализовал....может быть там сам спрайт можно будет задать кнопкой (у меня такое есть) Вторая карта у меня почему то долго грузилась и часто подвисала в процессе игры...видать чтото там работает не по моим стандартам поворотную вагонетку в начале тоже надо делать через SE64, а там видать дюковский SE1 Но в целом да, все работает и это здорово) Прогу еще подпилить, добавить конвертирование триггеров и на выходе будут почти готовые карты (Добавление) Цитата:
Попробуй еще таким способом...в секторе стоит masterswitch...уже забыл, зачем он нужен, но без него не работает) http://rghost.ru/8hcFR2nFT (Отредактировано автором: 26 Апреля, 2015 - 22:41:20) |
425. flanker - 27 Апреля, 2015 - 01:51:17 |
>Секрет-пила как то не там активируется, надо будет посмотреть, как ты ее реализовал... там прозрачная кнопка вешается на место спрайта, поэтому сам спрайт немного ее загораживает. надо по нормальному вектору ее что-ли сдвигать >Вторая карта у меня почему то долго грузилась и часто подвисала в процессе игры...видать чтото там работает не по моим стандартам потестировал на старом двухядернике, сравнил по быстродействию с картой из комплекта bloodtc.06.2013, polymer+hrp, да разница по быстродействию есть:( >http://rghost.ru/8hcFR2nFT интересно, надо будет подумать [M210®] про respawn предметов что нибудь можешь рассказать? пытался сделать как respawn ключей, не прокатило ;) |
426. [M210®] - 27 Апреля, 2015 - 22:48:52 | ||
Цитата:
Наверно, лучше все использовать 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) |
427. flanker - 28 Апреля, 2015 - 20:34:39 |
>Присвой спрайту-пиле 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 вопрос пока решен. |
428. [M210®] - 29 Апреля, 2015 - 11:23:10 | |||
Цитата:
Поставь на SE64 owner и такой же owner на каждый спрайт, который нужно двигать. Должно сработать. SE64 тоже могут двигать спрайты, как и мувер...специально для таких случаев Цитата:
Потому что earth_zombie сам является спавнером...попробую сделать костыль для него если это необходимо) Цитата:
Это надо будет проверить |
429. flanker - 29 Апреля, 2015 - 12:01:51 | |
>Это надо будет проверит я проверил, вроде работает, видимо дело было в чем-то другом;) >...попробую сделать костыль для него если это необходимо) нет не надо, пусть пока так будет. Цитата:
посмотри карту на досуге: http://yadi.sk/d/w5_ThIEcgKWpk сектор с вагоном, owner == SE64.owner установлен на спрайты колесных пар. не работает( (Отредактировано автором: 29 Апреля, 2015 - 12:03:07) |
430. [M210®] - 29 Апреля, 2015 - 15:27:34 | |
Цитата:
А у меня работает) Только очень бешеная скорость) И спрайты нужно чуть отвести от стен, при повороте возникает погрешность и спрайт "тонет" в стене. А ты работаешь с моими последними скриптами? Теми, что я давал по почте? |
431. flanker - 05 Июня, 2015 - 21:38:42 | |
Цитата:
на мой взгляд, просто в мапстере неудобно работать с “этажами” отсюда и все сложности. на e1m6 протестировал свой алгоритм сшивки секторов с разной геометрией, прежде он работал только на e1m1. алгоритм там “мудрый”. во-первых, он рекурсивный. Это значит, что пока два разных сектора не станут идентичными, алгоритм из рекурсии не выйдет ;) для начала он ищет точку с одинаковыми координатами в обоих секторах. затем начинает обход стен с измерением их длины. Если длина не совпадет, то делит длинную стену на две: по длине короткой стены, плюс остаток. затем структура секторов заново считывается и начинается все сначала, пока все стены не станут одинаковыми. сложность в том, что все стены имеют указатели на соседние стены и секторы. При каждой вставке стены эти указатели на ВСЕЙ карте надо пересчитывать. Стены внутренних секторов, фактически состоят их двух стен, их надо делить вместе, причем пересчитывать индексы с учетом того вторая стена будет тоже делиться. алгоритм теоретически должен “сшивать” любые два произвольные сектора, лишь бы совпадала хоть одна точка. Но, я не берусь сказать, какая форма секторов будет после “сшивки”, например пятиконечной звезды и квадрата ;) сейчас у меня сделано первые пять карт первого эпизода, и “сделано”, наверно тут слишком сильно сказано, это скорее “выхлоп” с конвертера дополненный скопировынными решениями с готовых карт. Здесь я просто смотрел, в каких случаях конвертер не справляется, и как это реализовано мапером. К тому же для меня это обучение, т.к. я не мапер и опыта в создании карт у меня ноль. Выкладывать карты думаю не имеет смысла, они по качеству все равно хуже тех, что были сделаны вручную. Сейчас осталось еще с десяток карт второго и остатка первого эпизодов, и можно будет браться за карты третьего эпизода. |
Powered by ExBB 1.9.1 Original Style v1.5a2 created by Daemon.XP |