Автор | Сообщение |
N00b Chief Petty Officer
| 922 |
Doom Rate: 2.15 Posts quality: +384 |
Отправлено: 29.09.16 20:33:18 | | | Каким образом в более-менее современных (не под DOS, вроде DB/GZDB/SLADE3) редакторах в DoomII-формате делается эффект глубокой воды (как на MAP02 tnt.wad, сектор №111)? Иными словами, как нарисовать сектор 2 внутри сектора 1, не изменяя сектора 1? | |
|
| |
Lainos - Captain -
| | 2299 |
Doom Rate: 1.8 Posts quality: +336 |
Отправлено: 29.09.16 20:38:27 | | | N00b2015 Внутри сектора воды создаешь новый. Опускаешь насколько тебе надо (больше 24 игрок не сможет подняться). Всем его линиям ставишь номер заднего сектора тот же, что и у переднего. |
Рейтинг сообщения: +1, отметил(и): N00b |
|
1 |
10 |
1 |
|
|
| |
N00b Chief Petty Officer
| 922 |
Doom Rate: 2.15 Posts quality: +384 |
Отправлено: 29.09.16 20:51:21 | | | Lainos [B0S] Да, точно, спасибо, self-ref должны сработать. И чем тогда, интересно, отличаются первые два ванильных метода на этой страничке?.. | |
|
| |
ZZYZX - UAC Commissar -
| | 6284 |
Doom Rate: 1.65 Posts quality: +1631 |
Отправлено: 29.09.16 20:57:29 | | | В современных портах (ZDoom) делается либо http://zdoom.org/wiki/Fake_floor, либо http://zdoom.org/wiki/Sector_Set3dFloor. Свои вариации 3D-полов существуют под Doom Legacy, Vavoom, EDGE. Но я не знаю их спешиалов. Фейк флор вроде есть в буме, но аналогично предыдущим (не знаю спешиала). В несовременных всё так, как написал лайнос.
Вопроса про "чем отличаются" не понял. На странице один ванильный метод, который соответствует посту лайноса. | |
|
2 |
2 |
1 |
|
|
| |
N00b Chief Petty Officer
| 922 |
Doom Rate: 2.15 Posts quality: +384 |
Отправлено: 29.09.16 21:16:36 | | | ZZYZX Ну, про современные порты понятно.
| Vanilla
(1) The very simplest method is by exploiting flat bleeding and surrounding the deep sector with a shallow (higher floor) sector. The boundary linedefs between both sectors are left without lower textures so that the shallow sector's floor bleeds over the deep sector and hides it. This method is easily detected and emulated by hardware-accelerated source ports and can be used with any map editor. It is used in MAP02 of TNT: Evilution. (2) Deep water can be simulated by using self-referencing sectors. This method is the most common. (3) Deep water can also be obtained by superposing sectors of identical shape, tracing a diagonal linedef on one of them.
|
Метод (3) вроде отличается от (2), разве нет? Правда, почему-то в PrBoom+ он прекрасно воспроизводится, в GLBoom+ не отображается пол у соседнего сектора, на ZDoom-производных просто не видно второго сектора (в статье упомянуто, что он "нестандартный, и поэтому не будет работать в некоторых портах"). | |
|
| |
ZZYZX - UAC Commissar -
| | 6284 |
Doom Rate: 1.65 Posts quality: +1631 |
Отправлено: 29.09.16 21:30:16 | | | А, ты про это перечисление. Ну метод (1) тоже отличается от (2). При (2) линии смотрят в себя, при (1) они просто без текстуры ставятся. | |
|
2 |
2 |
1 |
|
|
| |
N00b Chief Petty Officer
| 922 |
Doom Rate: 2.15 Posts quality: +384 |
Отправлено: 29.09.16 21:42:17 | | | ZZYZX Тогда на map02 в некотором смысле композиция двух первых методов (там AASHITTY) | |
|
| |
BeeWen Lieutenant Colonel
| | 3458 |
Doom Rate: 1.61 Posts quality: +860 |
Отправлено: 30.09.16 00:07:31 | | | Бум и Гоза понимают значение линии 242 для фальшивой поверхности. Вынесенный отдельно присоединенный сектор со смежным ему сектором с выставленной нужной высотой показывают пресловутую воду и любой другой невидимый сектор. Это касается в основном не простреливаемых окон с имитацией полупрозрачности. К тому же этот смежный сектор является трансфером освещения и текстуры фальшивого пола. | |
|
1 |
1 |
1 |
|
|
| |
theleo_ua = Colonel =
| 4804 |
Doom Rate: 1.8 Posts quality: +1033 |
Отправлено: 30.09.16 21:35:55 | | | Требуется: чтобы актор всегда смотрел на игрока, но не только по горизонтали, а и по вертикали
В прошлых версиях гоззы (например в 2.0.05) это решалось с помощью A_FaceTarget(0,0)
Теперь (пробую на 2.2.0) актор алайнится по горизонтали, но не алайнится по вертикали
В вики есть расширенный фейстаргет http://zdoom.org/wiki/A_FaceTarget (там где 5 параметров и флаги), пробовал разные значения, не помогает
Никто не в курсе, как в гоззе 2.2.0 заставить актора смотреть на игрока по вертикали? | |
|
3 |
1 |
|
|
| |
alekv - Colonel -
| | 4168 |
Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 30.09.16 22:46:09 | | | theleo_ua В настройках гоззы, в display option > openGl>preferens есть 2 настройки Sprite billdoard и Sprite face camera, поклацай их посмотри что будет. что бы спрайт смотрел по вертикали, не знаю как щас, раньше актеру надо было писать флаг forceYXbillboard или как-то так назывался. Это что касается спрайтов, если тебе надо вертеть 3д модель именно угол актера, то A_FaceTarget кажется работает только если есть цель, т.е. актер у которого прописана фейс таргет является монстром и его таргетом к примеру будет игрок, тогда все норм, если актер не будет монстром, то и функция работать не должна по идее, а там хз.. попробуй поклацай те 2 настройки может они что-то изменят. А так еще можешь использовать как аналог фейс таргету такую функцию это так на будущее A_SetAngle(GetAngle(false,AAPTR_PLAYER1)) ставишь это монстру(или просто актеру) и он будет следить за игроком, но только угол к сожалению без питч.
Еще можно написать функцию acs которая будет вертеть актера в сторону игрока и запускать в decorate у монстра типа такой
Script "SpyForPlayer" (void)
{
int Monster_TID = ActivatorTID();
if (Monster_TID == 0) Monster_TID = UniqueTID();
Thing_ChangeTID(0, Monster_TID);
SetActivator(0,AAPTR_PLAYER1);
while (true) {
int distx = GetActorX(0)-GetActorX(Monster_TID);
int disty = GetActorY(0)-GetActorY(Monster_TID);
int distz = GetActorZ(0)-GetActorZ(Monster_TID);
ChangeActorAngle(Monster_TID , VectorAngle(distx, disty), true);
ChangeActorPitch(Monster_TID , VectorAngle(VectorLength(distx, disty), -distz), true);
Delay(1);
}
} Да, я не тестил если что, не знаю будет работать нормально или нет. |
|
|
1 |
3 |
1 |
|
|
| |
theleo_ua = Colonel =
| 4804 |
Doom Rate: 1.8 Posts quality: +1033 |
Отправлено: 30.09.16 23:22:09 | | | alekv: | В настройках гоззы, в display option > openGl>preferens есть 2 настройки Sprite billdoard и Sprite face camera, поклацай их посмотри что будет. |
про спрайты я в курсе, мой вопрос касается строго 3д модели
alekv: | Это что касается спрайтов, если тебе надо вертеть 3д модель именно угол актера, то A_FaceTarget кажется работает только если есть цель, т.е. актер у которого прописана фейс таргет является монстром |
да, игрок является таргетом, это делается через a_look в акторе 3дмодельки, и в 2.0.05 это работало
alekv: | A_SetAngle(GetAngle(false,AAPTR_PLAYER1)) ставишь это монстру(или просто актеру) и он будет следить за игроком, но только угол к сожалению без питч. |
По горизонтали 3дмодель и так следит за игроком (в этом плане a_facetarget(0,0) отрабатывает как мне надо ). Но проблема как раз в том, что по горизонтали то следит, а по вертикали не хочет
alekv: | A_SetAngle(GetAngle(false,AAPTR_PLAYER1))
|
С pitch такой фокус не прокатит я так понял
alekv: | int distx = GetActorX(0)-GetActorX(Monster_TID); int disty = GetActorY(0)-GetActorY(Monster_TID); int distz = GetActorZ(0)-GetActorZ(Monster_TID); ChangeActorAngle(Monster_TID , VectorAngle(distx, disty), true); ChangeActorPitch(Monster_TID , VectorAngle(VectorLength(distx, disty), -distz), true); |
А вот так заработало, большое спасибо.
Тем не менее, вопрос про facetarget актуален, мне интересно, это я неправильно им пользуюсь или он таки сломан в 2.2.0 | |
|
3 |
1 |
|
|
| |
alekv - Colonel -
| | 4168 |
Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 30.09.16 23:33:49 | | | theleo_ua: | С pitch такой фокус не прокатит я так понял |
Если была бы функция проверки питча в декорейте типа GetPitch как аналог декорейтовской GetAngle, то заработало, но увы такого нет, а A_SetAngle(GetAngle(false,AAPTR_PLAYER1)) хороша тем что ей плевать монстр актер или нет, она все равно будет следить за актером иногда это очень надо)
А вот про фейстаргет не знаю, но чему там собно не работать? если старый фейс таргет брать, 2 аргумента всего угол и питч.. оба в 0 и должно вертеться.. мб сломался. | |
|
1 |
3 |
1 |
|
|
| |
MaxED UAC Sergeant Major
| 704 |
Doom Rate: 2.12 Posts quality: +39 |
Отправлено: 01.10.16 01:13:06 | | | zdoom.wiki: | The following is dynamic data for use in DECORATE definitions and expressions: Actor position and movement x — The actor's X position in the world. y — Same, but for Y. z — Same, but for Z. angle — Actor's angle, in degrees ceilingz — See GetActorCeilingZ. floorz — See GetActorFloorZ. pitch — The actor's pitch in degrees. roll - The actor's roll. Currently, this only really affects players such as the rotation of view. |
| |
|
| |
theleo_ua = Colonel =
| 4804 |
Doom Rate: 1.8 Posts quality: +1033 |
Отправлено: 01.10.16 02:03:09 | | | MaxED, как с помощью предложенной тобой информации внутри актора А проверить pitch актора Б ? | |
|
3 |
1 |
|
|
| |
sanek_47 = Master Corporal =
| 272 |
Doom Rate: 2.16 Posts quality: +64 |
Отправлено: 01.10.16 18:54:13 | | | Как делаются такие скалы, как здесь? До этого импортировал obj модели рельефа, может в билдере есть какие-нибудь более удобные инструменты для этого?
| |
|
| |
navy_seals - UAC Gunner -
| 44 |
Doom Rate: 2
|
Отправлено: 01.10.16 19:33:57 | | | Не хочу отводить внимание от вопроса sanek_47, но у меня совсем простенький для знающих людей вопрос: В udmf невозможно лайндефу задать высоту параметра "block everything"? Нужно заблокировать ~30 маппикселей высоты для hitscan атак без использования секторов. | |
|
| |
alekv - Colonel -
| | 4168 |
Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 01.10.16 19:42:58 | | | sanek_47 То что на скрине делается просто и мб удобно.. Смотри в гздб рисуешь линиями треугольник если не включено отображение в 3д режиме вертексов, жми alt+V (по дефолту) и в 3д режиме будешь видеть вертексы этого треугольника, просто выдели 1 вертекс и колесом мыши подними его вверх или вниз.. вот и продолжай в том же духе, там поймешь что к чему. Да, и что бы делать такие горы, сектора должны быть обязательно треугольниками, иначе вертекс не будет отображаться. |
Рейтинг сообщения: +1, отметил(и): sanek_47 |
|
1 |
3 |
1 |
|
|
| |
sanek_47 = Master Corporal =
| 272 |
Doom Rate: 2.16 Posts quality: +64 |
Отправлено: 01.10.16 19:48:06 | | | alekv спасибо! Уже давно с gzdb работаю, а таких простых вещей не знал... Да, и еще хотел узнать. Можно ли каким-нибудь образом поворачивать текстуры стен? | |
|
| |
ZZYZX - UAC Commissar -
| | 6284 |
Doom Rate: 1.65 Posts quality: +1631 |
Отправлено: 01.10.16 20:16:12 | | | navy_seals: | Не хочу отводить внимание от вопроса sanek_47, но у меня совсем простенький для знающих людей вопрос: В udmf невозможно лайндефу задать высоту параметра "block everything"? Нужно заблокировать ~30 маппикселей высоты для hitscan атак без использования секторов. |
3D-пол сделай. Прозрачный. С требуемой высотой. О, без использования секторов? Нопе. | |
|
2 |
2 |
1 |
|
|
| |
alekv - Colonel -
| | 4168 |
Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 01.10.16 20:33:21 | | | sanek_47: | Да, и еще хотел узнать. Можно ли каким-нибудь образом поворачивать текстуры стен? |
увы текстуры стен не вертятся =( Только пол\потолок
Кстати интересно а почему нельзя вертеть текстуры стен? Вопрос видимо к ZZYZX
ZZYZX: | О, без использования секторов? Нопе. |
А есть же мидлтекстура или как там ее, по которой еще ходить можно, она разве не блокирует хитсканы? И если блокирует можно ли ее как-то скрыть от рендера? | |
|
1 |
3 |
1 |
|
|
| |