![]() |
Показать все 46 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- XashXT (https://hlfx.ru/forum/forumdisplay.php?forumid=30)
-- Динамическая смена скайбокса (https://hlfx.ru/forum/showthread.php?threadid=3857)
Динамическая смена скайбокса
Тов. KRE030T не знает как реализовать динамическую смену дня и ночи в своём моде. Поскольку в XashXT на данный момент нету единой централизованной системы управлением времени суток, я решил привести пример мапперам, как это можно сделать не прибегая к кодингу, но при этом получив довольно неплохие результаты.
1. Немного теории.
Что нам потребуется для того чтобы иммитировать смену дня и ночи посредством смены скайбокса? Ну как минимум - эти самые скайбоксы с различными облаками, иммитирующие закат, рассвет, полдень. За этим далеко ходить не надо - такие скайбоксы лежат в папке valve (просто для примера). Однако движок не имеет встроенных способов плавной замены одного скайбокса другим. Что же делать в этой ситуации? Мы прибегнем к помощи 3D Sky и методу, продемонстрированному на карте demo_1 - натянем текстуры нашего небесного куба на самый обычный брашевый кубик. Если сделать это аккуратно и впоследствии выровнять скейл, то шва заметно не будет. Шов, к слову сказать, присутствует и при программной отрисовке скайбокса, и борются с ним точно так же - небольшим сдвигом текстурных координат. Итак, у нас есть скайбокс, однако он натянут на саму комнатку 3D Sky, мы не можем его плавно сфейдить, чтобы показать другой. Нам придется сделать копию нашей комнатки, немножко (на 1 юнит) сдвинуть её стенки к центру и обратить в func_illusionary. Таких комнаток следует сделать 4 шутки, проставить им rendermode texture и renderamt 0, кроме одной, та, которая будет видна при старте карты. Чтобы основная комнатка 3D Sky не вносила цветовых искажений при наших сменах скайбокса мы покрасим её стенки текстурой WHITE.
2. Практика.
Итак, у нас уже есть 4 скайбокса, которые только и ждут, чтобы мы начали их менять. Приступим. Для каждой энтити func_illusionary мы создадим два env_render, которые кроме резкой смены параметров имеют так же замечательную фичу - плавную смену параметров. Эта фича пришла к нам из спирита и активируется проставлением параметра в поле frags. Значение обозначает кол-во секунд, за которое один наш скайбокс поменяет свою прозрачность до нуля, а другой, соответственно, наоборот - наберет видимость с нуля. Как вы уже догадались, один env_render включает заданное небо, другой выключает. Теперь создадим 4 multi_manager, чтобы управится со всем этим хозяйством. Каждый из мульти_менеджеров будет давать команду одному из env_render на включение, а всем остальным - на выключение. Это позволит нам чередовать скайбоксы в произвольном порядке, если нам вдруг это захочется. Но для начала освоим простое циклическое переключение по кругу. Как вы уже наверное догадались для этого нам потребуется еще три энтити - multi_switcher, который будет активировать выбранную цель,
multi_manager который, через multi_switcher будет активировать собственно, какой скайбокс включить, выключив остальные, а так же с небольшой задержкой переключать multi_switcher на следующую позицию, ну и наконец generator, который будет переодически активировать наш multi_manager через заданный промежуток времени. Впрочем можно обойтись и без генератора, если закольцевать мультименеджер сам на себя.
3. ограничения:
убедитесь что квар r_lighting_extended не равен значению 2. Если это так, поставьте 1 или 0. Так же проверьте что у вас включена поддержка материалов (HD текстур), поскольку 8-битные текстуры неба выглядят ужасно
4. возможные доработки
Даже с такими жуткими текстурами скайбокса смена выглядит довольно терпимо, особенно если учесть, что переход занимает 10 секунд и игрок этого ждёт. В реальной игре с красивыми скайбоксами и временем на смену до 5-10 минут, ни один игрок не отличит сиё действо от сталкера.
Так что - экспериментируйте.
5. пример к туториалу можно скачать здесь:
www.hlfx.ru/xash/skybox_shuffle.rar - 2.8 Mb
распакуйте в папку xash и наберите в консоли weathdemo.
Смена скайбокса начнется через 20 секунд после начала игры.
Пожелания, предложения, вопросы?
Пожелания: поменьше энтить для реализации механизма. В самом деле, ведь ксашмод задумывался как альтернатива спириту, в которой все те же самые плюшки можно будет сделать с использованием меньшего количества энтить. Здесь же получается классический спиритовский изврат в стиле Доктора Тресни с тем лишь отличием от спирита, что гарантированно не глючит и выглядит на пятёрку.
Намного проще для мапперов использовать одну-единственную энтитю типа func_illusionary, текстуры которой будут плавно меняться при её активации по списку, находящемуся в свойствах этой энтити или в текстовом файле. Так что здесь кодинг треба Причём, по большей части на клиенте, текстуру ведь нужно менять посредством рендерера. А в таком случае можно какие-нибудь эффекты прикрутить.
Ku2zoff
Лучше делать универсальные фичи с десятком энтитей, чем узкоспециальные на одной-двух.
В этом смысле идеология спирита очень правильная.
Кому нужно что-то специализированное - всегда сможет сам нужный код написать.
__________________
Дядя Миша
Попрасил бы креозота чтобы скаи из сталкера выложил.
Насчет демки - выглядит прикольно, но весьма странно переключается - сначало плавно меняется, потом ждёт, потом опять меняется. К чему такие задержки?
Кстати старые халфовские компиляторы умели в каждой комнатке с небом делать собственный свет от солнышка, собсно вопрос: нельзя ли точно также чтобы у каждой комнатки с небом мог быть свой скайбокс?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Дядя Миша Можно ли поставить 4 light_environment и переключать их вместе со скаями? Как я понял, light_environment можно включать и выключать, причем плавно.
__________________
Base Defense on Steam, ModDB
Добавить модельку плывущих облаков, движущиеся солнце (env_glow), хотя можно вращать и сам скайбокс (если это возможно).
ТЕОРЕТИЧЕСКИ:
Для идеала наверное потребуется:
1) 3 (или более) скайбокса без облаков. Это утро, день, ночь (можно даже в фотошопе однотонные цвета подобрать, но я не дело ваше). Ещё лучше ещё добавить такие как рассвет, закат.
2) Анимированная моделька облаков.
3) Env_glow движущийся по путям - как бы имитация солнца.
3.1) Можно солнышко нарисовать и на самих скайбоксах, но придется крутиться и сам скайбокс.
Для большей крутости можно использовать несколько light_enviroment как и описал ДМ. Только, я так думаю, тени не будут динамическими. Будут стоять на месте вне зависимости от движения Солнца по небосклону. Хотя...я не проверял. Это теоретически. Но, думаю, стоит попробовать
Товарищи! Я вам просто показал принцип. Чтобы вы лучше его усвоили, вам необходимо попрактиковаться самостоятельно.
Почему бы например не замутить мини-конкурс на лучшую иммитацию погодных условий мапперскими способами?
Выкладывайте свои наработки прямо в тему.
А у меня ничего не получается. Смена идет, но скайбоксы переливаются, ну как бы мигают. Думал я с менеджерами намудрил. Пошел хардкорнее - полностью скопировал коробку со скайбоксами и менеджерами от ДМ к себе в тест карту - и что? Так же мигают скайбоксы!!!
Причем что на тест карте ДМ все впорядке, ничего не мигает, но копипаста всей коробки в моей карте дает глюки.
Порой бывает что освещение вырубается начисто. И потом снова включается...
Добавлено 24-03-2013 в 00:53:
r_lighting_extended и 1 и 0 пробовал
Добавлено 24-03-2013 в 03:45:
Дядь Миш. Скомпилировал я твой исходник. Не знаю чем ты компилировал, но после компиляции у меня так же моргают небеса (потому что браш друг в друге). Не знаю какими компиляторами ты компилировал, но я компилировал теми что идут в комплекте с ксаш модом под бсп31.
Я вижу такой выход: каждую следующую коробку с текстурой неба делать на 1 юнит больше. Но если приглядеться, то не так уж и идеально все получится.
Может там дело во float координатах, которые хаммером округляются?
__________________
-Brain is dead-
Я вам давно говорил - переходите на QuArK. Ну или хотя бы поставьте патч от китайца.
Попробуй скомпилить без участия хаммера - батником. Посмотрим что получится. Только map-файл возьми из пака, а не тот что перезаписал хаммер.
Компилировал как раз батником. Но правда перезаписывал хаммером...сейчас протестирую
Добавлено 24-03-2013 в 17:41:
Оо, а вот откомпилированный исходник без перезаписи хаммером работает!
Но есть разница!
В демки ДМ - освещение яркое
После перезаписи хаммером - темнее
После компиляции без перезаписи - совсем темное.
Но в чем причина то? Как теперь тоже самое в хаммере реализовать?
Лично мне видится наиболее правильный вариант динамического времени суток:
Внешняя оболочка скайбокса - сфера или куб с текстурой небесной сферы, но без облаков, с одной стороны должно быть дневное небо, с другой ночное(солнце и луна само-собой), ну и плавный переход между ними. Всё это дело должно вращаться, а в идеале угол поворота небесной сферы должен быть синхронизирован с глобальным временем игры.
Внутри этого - кубик с бэкграундом (горы, леса, моря или что там нужно), там же слой облаков, а лучше несколько для большей реалистичности, возможно даже имитация линии горизонта (слабо себе представляю, как это сделать, может какой-нить хитрой текстурой).
И уже внутри этого всего - энтети 3Dsky. На разных локациях положение 3Dsky должно отличатся, это добавит реалистичности. Ну и очень просто сделать какую-нибудь грозу - сделать верхний слой облаков непрозрачным, чтобы полностью закрыть небесную сферу, или чуть-чуть прозрачным, чтобы сквозь него проглядывало солнце (луна).
P.S. и кажется в какой-то игре я видел нужную текстуру небесной сферы (без облаков и остального), но судя по развёртке натягивалась сия текстура как раз на сферу. Вот только никак не вспомню, что за игра.
Думаю дело в параметрах компиляции.
Вот мои для рада:
-extra -bounce 3 -dscale 1 -gamma 0.4 -blur 2.0 |
Небо небом, но не стоит забывать что тени тоже как-то надо делать. А что если заюзать ксашевское динамическое освещение?
Мне кстати динамика в том же сталкере очень не нравится. Тени начинают рябить от перемещения игрока. С лайтмапами понятное дело такого не происходит.
Динамическая смена дня/ночи легко делается енв_рендерами в обычной халфе.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro
А у тебя есть исходник этой карты, можешь скинуть?
ксашевскую тень в лайтмап динамически запекать бы.
__________________
vk.com/skullcapstudios
(_-=ZhekA=-_) та было бы что смотреть. Извращение в стиле доктора Тресни.
куча функ_трейн которые быстро меняются. Монстров не расставишь, декали не нанесешь.
C виду смахивает больше на тучу light_spot с разным pitch.
__________________
Женщина - содержимое презерватива при полной инверсии пространства.
Дядя Миша
Совершенно верно, такой жестокий изврат для игры не годится ... Я думал оно все несколько проще сделано.
Дядя Миша
А почему монстров не разставишь? Игрок то ходит намано . А вот с декалями бида, хотя если бы был тип невидимых брашей на которых рисовались декали и это можно было бы забороть.
(_-=ZhekA=-_)
На КСМе выкладывал, поищи там. Лайтспотов там нет, рад текстура.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
How interesting, just look at that!
© Scientist
Мне кажется или там бамп? На 0:22 появился бамп, или меня глючит?
Это Emboss Bump Mapping - фейковый бамп, который ксаш поддерживает уже достаточно давно.
-=DrTressi=-
На обычной хл этот способ будет работать?
__________________
How interesting, just look at that!
© Scientist
-=DrTressi=-
Выложи исходник
__________________
How interesting, just look at that!
© Scientist
-=DrTressi=-
Хочу понять, как это устроено.
паранойевский бамп?
__________________
vk.com/skullcapstudios
-=DrTressi=-
А где отраженный свет?
>> На обычной хл этот способ будет работать?
Будет, у каждой энтити в поле эффектс есть флаг длайта.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
-=DrTressi=-
Если не хочешь выкладывать, то обьясни, как ты это сделал?
marikcool
(_-=ZhekA=-_)
А зачем? Ты читаешь и а инфа искажается.
Я говорю:
__________________
How interesting, just look at that!
© Scientist
-=DrTressi=-
Ты просто расскажи, что откуда украл и выдрал, и народ отстанет, сам пойдёт выдирать. А то ведёшь себя так, будто сам накодил.
__________________
-=DrTressi=-
Может хватит уже строить из себя не известно кого, а? Подними свои глаза немного выше и ты увидишь ответ на свой вопрос!
(_-=ZhekA=-_) Вот именно, подними глаза на сообщение Фиэктро и увидишь ответ на свой вопрос.
__________________
How interesting, just look at that!
© Scientist
(_-=ZhekA=-_)
Создай func_train с оригином и пропиши в поле effects значение 64. Теней конечно ждать никаких неприходится.
XaeroX
С карты Скаржа вестимо.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Great new,
nice work for Skychanger
I love skychanger
I would like to say about 2 different skies. like you are going to teleport and you will teleport in to another xeno world without changing level
Great idea.. i will build again
PS: Where is flashlight and shadow like am-half-lifecreations.com
Thanks
Временная зона GMT. Текущее время 22:35. | Показать все 46 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024