Пятница, 24.11.2017, 22:46
Under sky of Half-Life
Приветствую Вас Гость | RSS
Главная | Ареапорталы - Форум USofHL | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: plazmer 
Форум USofHL » Мэппинг в SSDK » Вопросы по мэппингу » Ареапорталы (Что это за звери и с чем их едят?)
Ареапорталы
GhaydnДата: Вторник, 21.07.2009, 18:24 | Сообщение # 1
Сержант
Группа: Зарегистр. пользователи
Сообщений: 69
Репутация: 1
Статус: Offline
Объясните мне, пожалуйста, как правильно использовать ареапорталы. Потому что все имеющиеся объяснения я не понял, в том числе developer.valvesoftware.com, они все описывают какие-то невнятные "общие положения". Понял главное - ареапорталами надо отделять зону целиком, иначе образуются лики. Но вот как ими правильно пользоваться - так и не понял. При попытке расставить их по окнам и дверям, возник мощный глюк отображения.
Было бы хорошо по этому поводу видеть тутор, отличающийся от прочих.


— Доктор, меня не понимают…
— вРН БШ ЯЙЮГЮКХ?
 
plazmerДата: Вторник, 21.07.2009, 20:26 | Сообщение # 2
PreAdmin
Группа: Администраторы
Сообщений: 115
Статус: Offline
Да, было бы очень хорошо, тутор, но нет, к сожалению, времени на его написание. Надеюсь, что JOHN напишет biggrin
А я вкратце попробую объяснить.
Есть два вида Areaportal'ов:
1) func_areaportal - используется в дверных проемах помещений/зданий из брашей, НЕ ентитей. А можно использовать и на открытых поверхностях.
Например, есть небольшой домик, у которого стены, пол и потолок - браши, и в домике одно отверстие, которое отвечает за дверной проем. И есть дверь, например, func_door, даем ей имя. Так вот размером с эту дверь внутрь этой двери ставится браш, покрытый со всех сторон текстурой tools/toolsareaportal. Далее, браш отправляется в ентитю func_areaportal, дается имя этой ентити. В свойствах ентити в параметре "Name of Linked Door" указываем имя ентити func_door. Затем от двери делаем два оутпута:
1. OnOpen -> <имя_ареапортала> -> Open
2. OnFullClosed -> <имя_ареапортала> -> Close.
Т.е., когда открывается дверь, открывается ареапортал и все, что находится в этом помещении, прорисовывается движком. Когда дверь закроется полностью, тогда ареапортал закрывается и все, что находится в помещении, НЕ прорисовывается.

2) func_areaportalwindow - используется в оконных проемах.
Например, в том же домике создаем отверстие, которое будет отвечать за оконный проем. Создаем 3 браша - первый будет отвечать за работу ареапортала, второй - за окно и третий - будет сам ареапортал.
Все браши будут размером с оконный проем.
1-й браш: браш-ентитя func_illusionary, с одной (уличной) стороны покрытая текстурой dev/dev_windowportal, со всех остальных сторон - tools/toolsnodraw. Даем этой ентити имя.
2-й браш: браш-ентитя func_brush, func_detail или func_breakable - в общем на твое усмотрение, главное, что она ентитя. Текстура окна - тоже, на твое усмотрение, но покрывать ей только уличную и внутреннюю стороны, со всех остальных сторон - tools/toolsnodraw.
3-й браш: та самая ентитя func_areaportalwindow, покрытая со всех сторон текстурой tools/toolsareaportal.
В свойствах ентити в параметре "Rendered Window" указываем имя func_illusionary. Также есть 2 параметра - "Fade Start Distance" - т.е. расстояние в юнитах, когда начинает происходить затемнение в оконном проеме, в результате которого движок перестает прорисовывать объекты, находящиеся внутри помещения за этим окном, и "Fade End Distance" - расстояние в юнитах, когда затемнение достигает максимального значения.

ЗДЕСЬ есть информация по ареапорталам (на англ.). Но по иллюстрациям можно понять некоторые моменты.
Желаю удачи.


Pl@zmer
 
JOHNДата: Среда, 22.07.2009, 18:15 | Сообщение # 3
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Исследование показало что все существенно проще.

func_areaportal в дверном проеме у меня работает без инпутов, достаточно в его Name of Linked Door указать имя его двери. Все четко при открывании он выключается, при закрывании включается. Я их даже не именую. Но у Плазмера так не работает, я ему свой рабочий исходник кидал, у него не пашет. Странно.

func_areaportalwindow у меня работает тоже проще :).

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

Если стекла нет, то можно создать Func_illusonary, покрытую Nodrav, и с одной обозреваемой стороны func_areaportalwindow(у меня сиреневая клеточка), поименовать ее, и указать в свойствах ареапортала.
Эта фигня будет при достижении определенного ареапорталом расстояния отражать скайбокс, или cubemap.

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

Добавлено (22.07.2009, 01:28)
---------------------------------------------
Да, забыл.
Стекло в Func_brush работает красивей. Плавней затухает, и существенно более прозрачное.
А Func_illusonary затухает весьма резко, и в упор недостаточно прозрачно.

В довершение закидываю исходник с обоими вариантами.

Добавлено (22.07.2009, 18:15)
---------------------------------------------
Итак, я вывел формулу волшебного окна.
Оказалось что func_areaportalwindow имеет некий параметр "Translucency limit" который по умолчанию стоит 0.2, и делает любую текстуру браша (которого контроллирует func_areaportalwindow) весьма прозрачной при ближайшем рассмотрении. Так у окон становятся прозрачными рамы, что не очень приятно.
Если в этот параметр поставить единичку, то текстуры будут такими какие они и есть, но переход от непрозрачного состояния к прозрачному, будет осуществлен слишком резко, отчетливо видно мигание если окно в зоне видимости.
Вы спросите "Но что же нам тогда делать?!". Спокойно. Сейчас я закончу выделываться, и все расскажу.

func_areaportalwindow я оставил на месте, и Translucency limit оставил по умолчанию т.е. 0.2.
От Func_brush'а я избавился конвертнув его обратно в обычный, и поставив на передний план показывать вид окна(на нем и есть наша текстура окна или стекла).
А за ним уже поставил func_illusonary с именем на которое ссылается func_areaportalwindow.
Получилось что текстура окна всегда одна и та же, а за ней при определенном расстоянии от глаз возникает типа отражения, и движок не обрабатывает ту поганую комнату.
В общем, оказалось все еще проще...

Прикрепления: Areaportal_Wind.zip(4Kb)


Сообщение отредактировал JOHN - Среда, 22.07.2009, 18:22
 
plazmerДата: Среда, 22.07.2009, 21:54 | Сообщение # 4
PreAdmin
Группа: Администраторы
Сообщений: 115
Статус: Offline
После долгих наших споров и согласований глубокоуважаемый JOHN написал первую часть статьи "С чем едят Areaportal'ы".

Ghaydn, в общем, мы почти что ответили на твой вопрос полностью. happy


Pl@zmer
 
GhaydnДата: Четверг, 23.07.2009, 04:57 | Сообщение # 5
Сержант
Группа: Зарегистр. пользователи
Сообщений: 69
Репутация: 1
Статус: Offline
Круто! Туда бы ещё третью часть - "бьющиеся окна". Потому как при декомпиляции таковых, скажем, возле маяка обнаруживаю в каждом оконном проёме кучу всяких иллюзионариев и брашевый ареапортал (т. е. не преобразованный в энтию). Жаль только, что прочитаю я её в любом случае не раньше, чем через неделю.

— Доктор, меня не понимают…
— вРН БШ ЯЙЮГЮКХ?
 
JOHNДата: Пятница, 24.07.2009, 18:33 | Сообщение # 6
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Ну вообще это и так было в планах. А конкретней про бьющиеся нельзя спросить? Там слишком просто на мой взгляд, думаю много написать не получится.

Добавлено (24.07.2009, 18:33)
---------------------------------------------
Специально для Плазмера: Обнаружено еще одно полезное свойство func_areaportalwindow - Foreground bmodel.
Думал знаю что это, даже написал. Но в двух случаях разный эффект. При указании на полноразмерный браш func_brekable эффекта ноль, при указании осколков стекла, осколки вообще не прозрачны даже в упор...

Сообщение отредактировал JOHN - Пятница, 24.07.2009, 18:37
 
PollLДата: Пятница, 24.07.2009, 18:50 | Сообщение # 7
Рядовой
Группа: Проверенные
Сообщений: 30
Репутация: 3
Статус: Offline
Молодцы ребята Просто Гордонфримены из "МТИ" !! А декомпилить и посмотреть у Вальвовцев ??
Эпизод2 мапа ep2_outland_12 . Там в домиках стёкла с ареапорталами и бьющиеся.. Причём у домиков коегде дверей нет.. Голые проёмы.. И в них ареапорталы тоже .. И кстати стёкла там не brekable_surf а funk_brekable. На Сёрфе это не сработает как надо ..
 
JOHNДата: Пятница, 24.07.2009, 19:44 | Сообщение # 8
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Не вижу повода нас осуждать.
Я с подачи Плазмера не нуждался в декомпиленных уровнях, и мне было интересно разбираться. Надеюсь продолжить.
Разбиваемые уже делал, ничего необычного, просто добавить аутпут - килл ареапорталу. Времени больше было затрачено на изготовление нового уровня для тутора, фотографирование, и собственно текст.
Или я не понял критику?
 
PollLДата: Пятница, 24.07.2009, 19:48 | Сообщение # 9
Рядовой
Группа: Проверенные
Сообщений: 30
Репутация: 3
Статус: Offline
Кто-ж вас осуждает !! Смысл был не тот .. Кому время жаль - делает как разработчик.. А кому не жаль - ставит опыты и наступает на чужие грабли ...
Как говориться - "Кому попадья а кому свиной хрящик" ... biggrin
 
JOHNДата: Суббота, 25.07.2009, 04:54 | Сообщение # 10
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Мне время очень даже жаль. Причем на подсознательном уровне. Дело не в том. От этого я еще могу получать удовольствие, а удовольствие это не то на что жаль время.
Кроме того, когда понимаешь механизмы работы, а не сделал как кто-то(а он мог и ошибиться в рассматриваемом случае), нет риска быстро все забыть.
Плюс понимание что к чему позволяет делать только то, что тебе необходимо, а это уже какая-то экономия времени и сил.
Ну и без разбора не получилось бы никакого тутора.
 
BinoclДата: Понедельник, 27.07.2009, 16:16 | Сообщение # 11
Рядовой
Группа: Зарегистр. пользователи
Сообщений: 14
Репутация: 1
Статус: Offline
Совершенно согласен, я тоже предпочитаю поэксперементровать, зато потом не мучаться... А за статью спасибо, я не очень про портал window знал. Только не пойму - если указана дверь в портале, аутпуты от нее нужны?

PS Дране укоз, авы нет, хотя ставил ее оО

Сообщение отредактировал Binocl - Понедельник, 27.07.2009, 16:17
 
plazmerДата: Понедельник, 27.07.2009, 16:42 | Сообщение # 12
PreAdmin
Группа: Администраторы
Сообщений: 115
Статус: Offline
Binocl, пробуй не ставить аутпуты.
У меня почему-то было обратное до определенного времени, т.е. приходилось ставить аутпуты.


Pl@zmer
 
JOHNДата: Понедельник, 27.07.2009, 16:50 | Сообщение # 13
Майор
Группа: Проверенные
Сообщений: 263
Репутация: 4
Статус: Offline
Quote (Binocl)
если указана дверь в портале, аутпуты от нее нужны?

У меня прекрасно работает без аутпутов. Только не забывай птичку во флагах поставить.
 
GhaydnДата: Вторник, 28.07.2009, 17:29 | Сообщение # 14
Сержант
Группа: Зарегистр. пользователи
Сообщений: 69
Репутация: 1
Статус: Offline
Я вернулся после пяти дней хорошего времяпровождения!
Помнится, декомпилил карту с ареапорталами в окнах - так там они вышлм обычными брашами, а не брашевыми энтиями. Вот и вышла проблема с ними.


— Доктор, меня не понимают…
— вРН БШ ЯЙЮГЮКХ?
 
Форум USofHL » Мэппинг в SSDK » Вопросы по мэппингу » Ареапорталы (Что это за звери и с чем их едят?)
Страница 1 из 11
Поиск:

© 2017, MonoLife   Сайт создан в системе uCoz