Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Тема для новичков. Вопросы по маппингу/моддингу - любые!-2 Пред.  1, 2, 3 ... 38, 39, 40 ... 61, 62, 63  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!-2Ответить
АвторСообщение
YURA_111
UAC Sergeant Major
Next rank: Chief Petty Officer after 86 points
764

Doom Rate: 1.98

Posts quality: +136
Ссылка на пост №761 Отправлено: 04.09.21 13:49:36
Всем привет. A_ChangeFlag("NOCLIP", 1) - кто может подсказать, почему такая штука не работает у игрока ?
qwe8013
= Corporal =
Next rank: - Lance Corporal - after 14 points
116

Doom Rate: 1.93

Posts quality: +41
Ссылка на пост №762 Отправлено: 05.09.21 21:28:14
Хотелось бы спросить по поводу шейдеров в UDMF картах.
Есть Lump GLDEFS следующего содержания:
HardwareShader Texture CRATE2
{
	Shader SHADER1
}

и Lump SHADER1 следующего содержания:
uniform float timer;
vec4 Process(vec4 color)
{
  return color;
}


При попытке запустить GZDOOM пишет: "Unable to load SHADER1" В чём может быть проблема (не считая мозга)?
HellDoomer 666
= Master Corporal =
Next rank: - Sergeant - after 34 points
256

Doom Rate: 1.82

Posts quality: +5
Ссылка на пост №763 Отправлено: 07.09.21 12:50:03
Всем привет. Как заставить монстра проходить сквозь "портал" (line_setportal)? Если монстр находится в секторе рядом с порталом, то должен срабатывать некий триггер, указывающий монстру на проход через портал (портал интерактивный). Порт gzdoom 3.8
qwe8013
= Corporal =
Next rank: - Lance Corporal - after 14 points
116

Doom Rate: 1.93

Posts quality: +41
Ссылка на пост №764 Отправлено: 07.09.21 14:11:39
В общем сам отвечу на свой вопрос, надо пихать wad в pk3 архив, и шейдер тоже в pk3 архив, но не в wad, тогда всё работает, можно ли обойтись без pk3 архива я так и не понял.

Рейтинг сообщения: +3, отметил(и): VladGuardian, RastaManGames, JSO x
JSO x
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 10 points
1280

Doom Rate: 2.29

Posts quality: +669
Ссылка на пост №765 Отправлено: 07.09.21 14:43:57
Кто работал с цветовыми картами -- как свои FIXEDCOLORMAP создавать? По умолчанию их около тридцати двух штук (чёрно-белая инвертированность для неуязвимости из Doom, в Strife экран вроде как в жёлто-чёрную палитру перекрашивался, и подобное), но я так и не понял, где же находится их объявление: в (g-/q-/l-)zdoom.pk3 и в zd_extra.pk3 их будто нет.

* * *

На вопрос Юрия ответ уже был, но не на форуме. Чтобы кто-либо не запаривался с ответом ещё раз, приведу его под спойлером:
Скрытый текст:



"bNOCLIP" устанавливается игроку принудительно каждый такт:
virtual void CheckCheats() {
		let player = self.player;
		// No-clip cheat
		if ((player.cheats & (CF_NOCLIP | CF_NOCLIP2)) == CF_NOCLIP2)
		{ // No noclip2 without noclip
			player.cheats &= ~CF_NOCLIP2;
		}

    // Here:
		bNoClip = (player.cheats & (CF_NOCLIP | CF_NOCLIP2) || Default.bNoClip);
		if (player.cheats & CF_NOCLIP2)
		{
			bNoGravity = true;
		}
		else if (!bFly && !Default.bNoGravity)
		{
			bNoGravity = false;
		}
}


Переменная читов игрока сама по себе ни на что не влияет, но её состояние проверяется/может проверяться в других местах. В данном случае она и только она является источником информации для принудительного изменения (именно изменения, не сохранения) "bNOCLIP" актора игрока. Та самая строчка, исполняемая каждый такт, в переводе на русский звучит так:

"ЕСЛИ у игрока в переменной читов установлен один из двух флагов "Cheat_NOCLIP[2]" ИЛИ ЕСЛИ у игрока ещё с default-блока (со свойств актора) установлен флаг "bNOCLIP", ТО устанавливаем ему фактический флаг прохождения сквозь плотные объекты "bNOCLIP", ИНАЧЕ -- снимаем последний".

Из этого следует, что каждую 1/35 секунды флаг НЕпривязки актора к твёрдому миру либо остаётся взведённым, если изначально он таким был, либо форсированно и по-любому будет изменён в зависимости от читов, но не от предыдущего состояния фактического "bNOCLIP".


Для решения этого можно либо менять флаг внутри "player.cheats", либо переписать виртуальную функцию.

Если первое -- следует дописать в код ZScript-игрока следующее:
action void A_ChangePlayerNoclip( bool set = false ) {
    if ( set )
        player.cheats |= CF_NOCLIP;
    else
        player.cheats &= ~CF_NOCLIP;
}

После этого функцию можно будет использовать в наследованном Decorate-классе игрока, например. Если то же нужно для оружия/инвентаря -- добавляешь ещё проверку на владельца ("if ( PlayerPawn( owner ) ) { <…> }").

Второй вариант мне как-то меньше нравится.

(P. S.: есть ещё третий, через морф в игрока с уже предустановленным флагом "+NOCLIP", но с ним есть проблема -- оставить то же количество жизней, что было у предыдущей формы).



Добавлено спустя 1 день 1 час 57 минут 50 секунд:

* * *

Дополню свой вопрос.

Не один раз наблюдал, что в старых *.WAD существуют колормапы определённого цвета а-ля "GRAYMAP", "REDMAP", "GREENMAP", "BLUEMAP", "YELLOMAP" и другие, однако же я ни разу не видел, чтобы они хоть как-то использовались -- вижу, что всё-таки они полезны в каком-то случае, но на картах такого не замечал. И, в любом случае, это немного не то, что требуется -- мне нужна именно перекраска экрана, а не текстуры/сектора, под иную палитру/под иной COLORMAP.

NB ADD: на LZDoom, GL-рендерер, изменение значения "int16 player.fixedcolormap" показывает следующие результаты:
-1) Стандартный COLORMAP;
0) Инверсия (== бессмертие в Doom);
1) Жёлто-чёрный;
2) Красно-чёрный;
3) Зелёно-чёрный;
4) Сине-чёрный (== WATERMAP?);
Любой другой в диапазоне [-32768; -2] ∪ [5; 32767]) Обычный COLORMAP без затемнения, то есть отсутствие такой "постобработки".

Этот список соответствует предсозданным значениям из "Powerup.Color", и, собственно, его-то я и хочу расширить, добавив в него дополнительные blend-карты (вернее, поставить свои COLORMAP или их ZDoom-аналоги в доступ для "player.fixedcolormap").

P. S.: команды "testcolor", "testblend" и "testfade" отчего-то не действует в OpenGL-рендерере. Надеюсь, это не зависит от того, что OpenGL в целом не способен поддерживать подобное -- цветные сектора-то отрисовывает.

Рейтинг сообщения: +3, отметил(и): VladGuardian, YURA_111, RastaManGames
2 7 1
qwe8013
= Corporal =
Next rank: - Lance Corporal - after 14 points
116

Doom Rate: 1.93

Posts quality: +41
Ссылка на пост №766 Отправлено: 12.09.21 16:55:05
Ещё один дурацкий вопрос. Скачал с realm667 evil eyes различных цветов, закинул в pk3-архив рядом с wad-ом, проставил в DECORATE Actor-ам номера. Всё вроде-бы нормально... в редакторе:

Но вот в игре (gzdoom) всё выглядит так:

WTF?
VladGuardian
= Commissar =
Next rank: - UAC Commissar - after 263 points
5537

Doom Rate: 1.28

Posts quality: +1899
Ссылка на пост №767 Отправлено: 12.09.21 17:19:10
qwe8013 пишет:
закинул в pk3-архив рядом с wad-ом,

В строке запуска, файл монстрика тоже нужно подключать:
gzdoom.exe -iwad doom2.wad -file <твой_вад> <монстр_1> <монстр_2> ...
(он НЕ подключится автоматически, если явно не указать)
4 10 23
ChaingunPredator
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 78 pointsМодератор форума
1362

Doom Rate: 2.44

Posts quality: +174
Ссылка на пост №768 Отправлено: 12.09.21 19:42:33
qwe8013
Как правило, в таких случаях неплохо бы посмотреть ошибки в консоли гздума
1 2 5
qwe8013
= Corporal =
Next rank: - Lance Corporal - after 14 points
116

Doom Rate: 1.93

Posts quality: +41
Ссылка на пост №769 Отправлено: 13.09.21 18:51:07
Поместил все данные на злые глаза в wad (а не рядом -- в pk3 архив), всё работает.

Рейтинг сообщения: +2, отметил(и): VladGuardian, RastaManGames
qwe8013
= Corporal =
Next rank: - Lance Corporal - after 14 points
116

Doom Rate: 1.93

Posts quality: +41
Ссылка на пост №770 Отправлено: 17.09.21 21:17:25
Пишу я тут PostProcess шейдер (UDMF). Сделал так:
layout(binding=0) uniform sampler2D tex;
vec4 pixelpos;

void main()
{
	FragColor = texture(tex, pixelpos.xy);
}

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

Что я делаю не так?
Doomgay1999
- Corporal -
Next rank: = Corporal = after 6 points
94

Doom Rate: 2

Posts quality: -1
Ссылка на пост №771 Отправлено: 28.10.21 08:38:04
Я скачал эффект дождя с сайта Realm667.com, и у меня вопрос как добавить его в вад?
Герр Смертоносец
Chief Petty Officer
Next rank: Chief Petty Officer after 63 points
877

Doom Rate: 1.29

Posts quality: +785
Ссылка на пост №772 Отправлено: 29.10.21 01:35:34
Doomgay1999 пишет:
Я скачал эффект дождя с сайта Realm667.com, и у меня вопрос как добавить его в вад?

Ставишь на карту RainSpawner с четырьмя аргументами: размер в маппикселях, период, звук (0 есть, 1 нет), форма (0 квадрат, 1 круг). Чтобы поставить - в декорейте прописываешь ему editor number сразу после объявления актора. Пофиг какой, лишь бы с имеющимися не конфликтовал.

Рейтинг сообщения: +2, отметил(и): VladGuardian, RastaManGames
2
Doomgay1999
- Corporal -
Next rank: = Corporal = after 6 points
94

Doom Rate: 2

Posts quality: -1
Ссылка на пост №773 Отправлено: 30.10.21 20:22:06
Герр Смертоносец, а где он находится я не могу найти?
JSO x
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 10 points
1280

Doom Rate: 2.29

Posts quality: +669
Ссылка на пост №774 Отправлено: 30.10.21 23:45:33
Вопрос, "он" -- это кто и в каком контексте. Из общих рекомендаций могу предложить проверить путь до файла, название класса актора, формат уровня (в формате старого Doom не уверен, отображается ли Decorate-совместимое объявление) и объявление через "// $Category" (по умолчанию в [U/GZ]Doom Builder [2] -- ищи в бежевой вкладке с названием "Decorate").

* * *

На свой вопрос чуть выше (насчёт использования COLORMAP) ответ нашёл совсем рядом: у Power-up'ов есть свойство "Powerup.Colormap". И, главное, что в ZScript-коде ничего путного нет, зато в исходниках ничтоже сумняшеся лежит откровенно захардкоженный кусок.
2 7 1
PepeL
= UAC Gunner =
Next rank: - Corporal - after 6 points
74

Doom Rate: 2

Posts quality: -1
Ссылка на пост №775 Отправлено: 17.11.21 21:46:45
всем привет, подскажите пожалуйста, как сделать монстра в gzdoom, создал наскоряк примитивную модель в блэндере (труба с отверстием :crazy: ) создал анимацию покоя и атаки, экспортнул в md3... и тут начался тупёж, decorate и modeldef. (как статичную модель добавить нет проблем без анимации) нигде не могу найти инфу, что качается кадров, из готовых моделей вообще ничё не пойму, взять например какодемона:
decorate:
Скрытый текст:


States
{
Spawn:
HEAD A 10 A_Look
Loop
See:
HEAD A 3 A_Chase
Loop
Missile:
HEAD BC 5 A_FaceTarget
HEAD D 5 Bright A_HeadAttack
Goto See
Pain:
HEAD E 3
HEAD E 3 A_Pain
HEAD F 6
Goto See
Death:
HEAD G 8
HEAD H 8 A_Scream
HEAD IJ 8
HEAD K 8 A_NoBlocking
HEAD L -1 A_SetFloorClip
Stop
Raise:
HEAD L 8 A_UnSetFloorClip
HEAD KJIHG 8
Goto See
}
}



как сообразить что за что отвечает:
HEAD A 3
HEAD BC 5
HEAD D 5
и т.д.
и modeldef:
Скрытый текст:


FrameIndex HEAD A 0 0 FrameIndex HEAD A 1 0 FrameIndex HEAD A 2 0

FrameIndex HEAD E 0 5 FrameIndex HEAD E 1 5 FrameIndex HEAD E 2 5
FrameIndex HEAD F 0 6 FrameIndex HEAD F 1 6 FrameIndex HEAD F 2 6
}


:crazy:
может где видосик есть как это делается... спасибо.
MyNameIs
= 1st Lieutenant =
Next rank: - Captain - after 64 points
2026

Doom Rate: 2.05

Posts quality: +876
Ссылка на пост №776 Отправлено: 18.11.21 00:31:32
PepeL

на вики есть примерная структура модельки в модельдефе


FrameIndex <XXXX> <X> <номер модели> <номер фрейма из блендера>



номер модели важен для составных моделей, если юзается больше одного md3

короче, на выходе будет чёт вроде того
Скрытый текст:


Model butthead
{
     Path "md3/butthead"

     Model 0 "butthead.md3"
     Skin 0 "butthead.png"
     Model 1 "ass.md3"
     Skin 1 "ass.png"

FrameIndex     HEAD     A     0     1          FrameIndex     HEAD     A     1     1
FrameIndex     HEAD     B     0     2          FrameIndex     HEAD     B     1     1
FrameIndex     HEAD     C     0     3          FrameIndex     HEAD     C     1     1
FrameIndex     HEAD     D     0     4          FrameIndex     HEAD     D     1     2
FrameIndex     HEAD     E     0     5          FrameIndex     HEAD     E     1     2
FrameIndex     HEAD     F     0     6          FrameIndex     HEAD     F     1     2
FrameIndex     HEAD     G     0     7          FrameIndex     HEAD     G     1     2
}



ну собсна суть в том, что каждому фрейму декорейта ABCDEFG ты прописываешь свой кадр из блендера
1 1 1
theleo_ua
= Colonel =
Next rank: - Commissar - after 260 points
4630

Doom Rate: 1.81

Posts quality: +996
Ссылка на пост №777 Отправлено: 18.11.21 01:44:24
PepeL пишет:
как сообразить что за что отвечает:
HEAD A 3
HEAD BC 5
HEAD D 5


В слейде открываешь ивадник, находишь там эти спрайты (например спрайт HEADA0 будет означать HEAD A) и смотришь, какие кадры анимации какодемона какой букве соответствуют

Рейтинг сообщения: +1, отметил(и): VladGuardian
3 1
PepeL
= UAC Gunner =
Next rank: - Corporal - after 6 points
74

Doom Rate: 2

Posts quality: -1
Ссылка на пост №778 Отправлено: 18.11.21 10:20:22
Йоптыть.... у меня допустим состояние покоя 40 кадров, как мне прописать? букв в анг язе 26 :)

и это, на будущее, как модель заставить не смотреть на игрока, т.е. статичная, как в UDB поставил, чтобы так и стояла. (для примера пушку хочу сделать из марио :lol2: )
ChaingunPredator
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 78 pointsМодератор форума
1362

Doom Rate: 2.44

Posts quality: +174
Ссылка на пост №779 Отправлено: 18.11.21 15:55:04
PepeL пишет:
Йоптыть.... у меня допустим состояние покоя 40 кадров, как мне прописать? букв в анг язе 26

Длительность задается в тиках, а не в кадрах. Тик = 1/35 секунды. Кадры (рендера) не привязаны ко времени никак вообще.
NAME A 40 // фрейм будет длиться 40 тиков

PepeL пишет:
и это, на будущее, как модель заставить не смотреть на игрока, т.е. статичная, как в UDB поставил, чтобы так и стояла.

А с чего ей вращаться, если это не монстр? Угол поворота модели зависит от параметра Angle, у монстра он меняется из-за логики нападения на игрока (A_Chase())

Рейтинг сообщения: +1, отметил(и): VladGuardian
1 2 5
PepeL
= UAC Gunner =
Next rank: - Corporal - after 6 points
74

Doom Rate: 2

Posts quality: -1
Ссылка на пост №780 Отправлено: 18.11.21 16:24:27
Ну в MODELDEF то надо прописывать вроде так:

FrameIndex NAME A 0 0
FrameIndex NAME B 0 1
FrameIndex NAME C 0 2
FrameIndex NAME D 0 3
FrameIndex NAME E 0 4
и т.д.

или есть иной способ?
Страница 39 из 63Перейти наверх Пред.  1, 2, 3 ... 38, 39, 40 ... 61, 62, 63  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!-2