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

Doom Rate: 1.98

Posts quality: +133
Ссылка на пост №821 Отправлено: 05.04.22 11:31:02
В gzdoom в функции A_Chase появился новый флаг:
CHF_DONTIDLE (development version 196d2ef only) – Hostile actors will not jump to their Spawn or Idle state once they no longer have a target. Allowing you to define custom states for them to jump to, when they have no target.

Кто знает куда прописывать кастом стейты для прыжка в эти самые стейты, в случае использования этого флага?
JSO x
UAC Sergeant Major
Next rank: Chief Petty Officer after 28 points
822

Doom Rate: 2.32

Posts quality: +348
Ссылка на пост №822 Отправлено: 05.04.22 18:33:42
Флаг только заставляет актора не останавливаться, если у него нет цели, а продолжать движение через A_Wander(). Никакие стейты никуда прописать не выйдет, просто нет такого функционала. Как понимаю, в описании имелось в виду что-то вроде конструкции "TNT1 A 0 A_JumpIf( target == NULL, "SomeWanderingState" );".

Во всём исходном коде есть только два упоминания этого флага, оба в одном файле, притом первое -- его объявление. Второе находится в этой строчке и, собственно, добавляет возможность недружественным монстрам блуждать, несмотря на отсутствия поля "target".
1 5 1
YURA_111
UAC Sergeant Major
Next rank: UAC Sergeant Major after 20 points
740

Doom Rate: 1.98

Posts quality: +133
Ссылка на пост №823 Отправлено: 06.04.22 10:51:28
JSO x
JSO x пишет:
Как понимаю, в описании имелось в виду что-то вроде конструкции "TNT1 A 0 A_JumpIf( target == NULL, "SomeWanderingState" );".


Либо я не понимаю чего-то, либо это реально странно звучит. Что мешает прописать тот же код "TNT1 A 0 A_JumpIf( target == NULL, "SomeWanderingState" )" в стейте IDLE без того самого флага из A_Chase ?
JSO x
UAC Sergeant Major
Next rank: Chief Petty Officer after 28 points
822

Doom Rate: 2.32

Posts quality: +348
Ссылка на пост №824 Отправлено: 06.04.22 12:18:38
YURA_111 пишет:
Что мешает прописать тот же код "TNT1 A 0 A_JumpIf( target == NULL, "SomeWanderingState" )" в стейте IDLE без того самого флага из A_Chase?

И "Spawn", и "Idle" по-любому по умолчанию не могут иметь цели... Только если это останавливает.


А, предлагаешь пофантазировать на тему использования! Навскидку два варианта вижу.

Первое и самое очевидное -- "A_Wander()" умеет обрабатывать не все флаги, присущие "A_Chase()". Соответственно, с нововведением потенциально появляется чуть более гибкая система бесцельного движения.

Второе -- сокращение длины кода. Если нужно использовать примерно одинаковый код движения вне зависимости от наличия или отсутствия поля "target" (как в "Shut up and Bleed", например), то также можно использовать этот флаг.

Повторюсь, что никаких способов задания своих стейтов при обнулении цели в исходном коде не обнаружено.
1 5 1
qwe8013
= Corporal =
Next rank: - Lance Corporal - after 20 points
110

Doom Rate: 2

Posts quality: +39
Ссылка на пост №825 Отправлено: 15.04.22 17:01:08
Итак, вопрос по редактору slade. Делаю значит карту в UDMF. Дело в том, что offset текстуры у linedef-а можно задавать отдельно для lower, middle и upper текстур. Но к сожалению, я не нашёл простого способа их задавать в 3d mode. Приходится писать их вручную, что не удобно. Есть ли нормальный способ их менять, или придётся мне страдать и задавать руками?

PS
Doom Builder не предлагать
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 48 pointsМодератор форума
6252

Doom Rate: 1.66

Posts quality: +1593
Ссылка на пост №826 Отправлено: 15.04.22 22:42:49
А почему удб не предлагать? Там это базовый функционал из коробки
А вообще способов нет, страдай Способы видимо есть, раз бивень написал, сорян
2 2 1
BeeWen
- Major -
Next rank: = Major = after 28 pointsСупермодератор форума
2912

Doom Rate: 1.59

Posts quality: +537
Ссылка на пост №827 Отправлено: 15.04.22 23:26:47
qwe8013 пишет:
Но к сожалению, я не нашёл простого способа их задавать в 3d mode.

Плохо искал. Оптимальным будет открыть настройки управления функциями редактора и в них посмотреть исходные назначения клавиш. Неужели не догадаться самому, что твой способ писать их вручную никак не может быть удобным для всех случаев.
Ещё есть мнение, что новичкам в маппинге этот формат категорически противопаказан как раз из-за его относительно широких возможностей.

Рейтинг сообщения: +1, отметил(и): D1m3
1 1 1
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 48 pointsМодератор форума
6252

Doom Rate: 1.66

Posts quality: +1593
Ссылка на пост №828 Отправлено: 16.04.22 17:45:12
BeeWen пишет:
Ещё есть мнение, что новичкам в маппинге этот формат категорически противопаказан как раз из-за его относительно широких возможностей.

Ещё есть мнение что плохие карты будучи выполненными в плохом формате становятся от этого только ещё более плохими, а аж никак не хорошими
2 2 1
BeeWen
- Major -
Next rank: = Major = after 28 pointsСупермодератор форума
2912

Doom Rate: 1.59

Posts quality: +537
Ссылка на пост №829 Отправлено: 17.04.22 02:05:52
ZZYZX пишет:
плохом формате

Плохих форматов не бывает, бывают хреновые мапперы.
1 1 1
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 48 pointsМодератор форума
6252

Doom Rate: 1.66

Posts quality: +1593
Ссылка на пост №830 Отправлено: 17.04.22 12:13:07
Хреновые мапперы это те, которые не смогли что-то замаппить в формате, который им пихают против их выбора, потому что так якобы проще и правильнее?)

Рейтинг сообщения: +2, отметил(и): theleo_ua, Mud
2 2 1
BeeWen
- Major -
Next rank: = Major = after 28 pointsСупермодератор форума
2912

Doom Rate: 1.59

Posts quality: +537
Ссылка на пост №831 Отправлено: 18.04.22 11:32:51
ZZYZX пишет:
Хреновые мапперы это те, которые не смогли что-то замаппить в формате, который им пихают против их выбора, потому что так якобы проще и правильнее?)

И которые не смогли ничего толкового намаппить вообще.
Никто никому ничего не пихает. Я просто советую поэтапное освоение мастерства, а не сразу заваливать кучей всего. Такой антиметод может произвести обратный эффект, так как поделки явно будут некачественные и критика может отвернуть от дальнейшего прогресса.
1 1 1
qwe8013
= Corporal =
Next rank: - Lance Corporal - after 20 points
110

Doom Rate: 2

Posts quality: +39
Ссылка на пост №832 Отправлено: 22.04.22 21:25:17
Приветствую всех. И ещё один вопрос. Когда-то давно начинал маппить вад и напихал туда кучу импортированных текстур и (судя по всему) сделал это весьма криво. Недавно к нему вернулся. Маппил в slade, но после обновления slade стал глючить и я решил помаппить через GZDoomBuilder на виртуалке или под вайном (именно поэтому ранее писал, что GZDoomBuilder не предлагать), так вот, в игре (gzdoom) всё работает нормально, но когда я открываю вад в GZDoomBuilder, происходит какое-то безумие с текстурами, они весьма перепутаны в 3D режиме. Как можно сие решить?

Проблема решена, заключалась она в том, что в ваде было два раза PNAMES.
+Ku6EPyXOBEPTKA+
- Major -
Next rank: = Major = after 97 pointsМодератор форума
2843

Doom Rate: 2.05

Posts quality: +1386
Ссылка на пост №833 Отправлено: 27.04.22 20:29:18
Решение проблемы было частично найдено. Вопрос оставлю на всякий будущим поколениям.

Скрытый текст:

Хелп. На свою голову занялся конвертированием моделек (с анимациями) в MD3. Есть одна, но очень сложная сложная. В ней 8 составных частей из-за того, что материалы разбросаны по деталям (да и в принципе никого бубенить не должно, сколько мне нужно под-моделей). В итоге разделить то разделил, но при записи деталей в modeldef боле чем 4 штуки, возникает следующее:

Script error, "model_test.zip:modeldef" line 22:
Too many models in MODEL


Самое с**а обидное, что никаких проблем нет вообще с конвертацией и все части подходят отлично без сбоев. Проблема в том, что поставлен лимит и я ХЗ с чем он связан. В общем, есть ли костыль, который исправит это положение? Может есть способ сдвоить 2 модели по 4 части? Елозить по развёрткам объединяя материалы чё-т не хочется. Да и задумка теряет смысл.

Пользуюсь блендером с тулзами под конверт в md3



Хм.... а стоило заглянуть на вики:
The number of model 'pieces' used to be restricted to 4, but that limitation was lifted in GZDoom 4.6.0 and is no longer valid.


Справедливый вопрос: а нахрена было?

UPDATE:
А да, кстати. И тут жидко кто-то обосрался. Анимации не работают в внутренних моделях начиная с 5-ой. Так что облом. Почему так, я хз, но это начинает меня выбешивать. Есть идеи, как эти ограничения обойти? (так понимаю, что косяк с анимациями ещё не известен науке, поскольку только к 4.6.0 эту лажу исправили, может зарепорнтить?)
2 1 7
qwe8013
= Corporal =
Next rank: - Lance Corporal - after 20 points
110

Doom Rate: 2

Posts quality: +39
Ссылка на пост №834 Отправлено: 28.04.22 01:17:02
Приветствую всех, господа.
Пытаюсь сделать кастомного монстра. На данный момент есть только его заготовка так сказать. Проблема в том, что большую часть времени он то ли не виден, то ли внутри стен сидит. И почему его не всегда видно, я не пойму, т.е. то видно -- то нет. Если что, то он сделан чисто на шейдерах, а исходные спрайты -- прозрачные квадраты.
DECORATE:
Скрытый текст:

actor Ball 32176
{
	Obituary "%o was killed by a ball."
	Health 100
	Radius 32
	Height 64
	Mass 50
	Speed 10
	PainChance 256
	Scale 4.0
	Monster
	+FLOAT
	+NOGRAVITY
	States
	{
		Spawn:
			EMPT A 10 A_Look
			Loop
		See:
			EMPT A 3 A_Chase
			Loop
		Pain:
			EMPT A 2 A_Pain
			Goto See
		Death:
			EMPT A 2
			Stop
		XDeath:
			EMPT A 2
			Stop
		Rise:
			EMPT A 2
			Goto See
	}
}


Текстуры EMPTA... -- прозрачные квадратики 64x64

GLDEFS:
Скрытый текст:

HardwareShader Sprite EMPTA1
{
	Shader "SHADER1"
	Texture rainb "RAINB"
}

HardwareShader Sprite EMPTA2A8
{
	Shader "SHADER1"
	Texture rainb "RAINB"
}

HardwareShader Sprite EMPTA3A7
{
	Shader "SHADER1"
	Texture rainb "RAINB"
}

HardwareShader Sprite EMPTA4A6
{
	Shader "SHADER1"
	Texture rainb "RAINB"
}

HardwareShader Sprite EMPTA5
{
	Shader "SHADER1"
	Texture rainb "RAINB"
}



SHADER1:
Скрытый текст:

uniform float timer;

mat3 rotate(float the_xy, float the_yz, float the_zx)
{
	float c1 = cos(the_xy);
	float s1 = sin(the_xy);

	float c2 = cos(the_yz);
	float s2 = sin(the_yz);

	float c3 = cos(the_zx);
	float s3 = sin(the_zx);

	mat3 xy = mat3(c1, -s1, 0.0f,
				   s1, c1, 0.0f,
				   0.0f, 0.0f, 1.0f);

	mat3 yz = mat3(c2, 0.0f, s2,
				   0.0f, 1.0f, 0.0f,
				   -s2, 0.0f, c2);

	mat3 zx = mat3(1.0f, 0.0f, 0.0f,
				   0.0f, c3, s3,
				   0.0f, -s3, c3);

	return xy*yz*zx;
}

vec3 get_col(float gray, vec3 rainbow)
{
	return gray*vec3(1.0f, 1.0f, 1.0f) + (1.0f - gray)*rainbow;
}

#define PI 3.1415926535897932384626433832795028841971693993751f

#define ROT_RAD (0.6f)
#define THE_SIZE (0.5f)
#define ELECTRON_RADIUS (0.05f)
#define PREC_VEL (0.1f)
#define PREC_TIME (PREC_VEL*(timer + 10.0f))
#define ROT_VEL (2.0f)
#define THE_TIME (timer*ROT_VEL)

#define COLOR_PER 50.0f

vec4 Process(vec4 color)
{
	vec3 basis_x = vec3(1.0f, 0.0f, 0.0f)*ROT_RAD;
	vec3 basis_y = vec3(0.0f, 1.0f, 0.0f)*ROT_RAD;

	vec3 b1r = vec3(0.5f*PREC_TIME, -1.3f*PREC_TIME, 2.7f*PREC_TIME);
	vec3 b2r = vec3(-1.7f*PREC_TIME, 2.2f*PREC_TIME, 3.1f*PREC_TIME);
	vec3 b3r = vec3(0.0f*PREC_TIME, 0.1f*PREC_TIME, 3.05f*PREC_TIME);
	vec3 b4r = vec3(1.9f*PREC_TIME, -2.4f*PREC_TIME, 0.5f*PREC_TIME);
	vec3 b5r = vec3(1.6f*PREC_TIME, -2.1f*PREC_TIME, 0.7f*PREC_TIME);

	mat3 mat_1 = rotate(b1r.x, b1r.y, b1r.z);
	mat3 mat_2 = rotate(b2r.x, b2r.y, b2r.z);
	mat3 mat_3 = rotate(b3r.x, b3r.y, b3r.z);
	mat3 mat_4 = rotate(b4r.x, b4r.y, b4r.z);
	mat3 mat_5 = rotate(b5r.x, b5r.y, b5r.z);

	vec3 basis_x_1 = mat_1*basis_x;
	vec3 basis_y_1 = mat_1*basis_y;

	vec3 basis_x_2 = mat_2*basis_x;
	vec3 basis_y_2 = mat_2*basis_y;

	vec3 basis_x_3 = mat_3*basis_x;
	vec3 basis_y_3 = mat_3*basis_y;

	vec3 basis_x_4 = mat_4*basis_x;
	vec3 basis_y_4 = mat_4*basis_y;

	vec3 basis_x_5 = mat_5*basis_x;
	vec3 basis_y_5 = mat_5*basis_y;

	float the_sin = sin(THE_TIME);
	float the_cos = cos(THE_TIME);

	vec3 e1 = basis_y_1*the_sin + basis_x_1*the_cos;
	vec3 e2 = basis_y_2*the_sin + basis_x_2*the_cos;
	vec3 e3 = basis_y_3*the_sin + basis_x_3*the_cos;
	vec3 e4 = basis_y_4*the_sin + basis_x_4*the_cos;
	vec3 e5 = basis_y_5*the_sin + basis_x_5*the_cos;

	vec2 ee1 = e1.xy;
	vec2 ee2 = e2.xy;
	vec2 ee3 = e3.xy;
	vec2 ee4 = e4.xy;
	vec2 ee5 = e5.xy;

	vec2 tc = gl_TexCoord[0].st;
	vec2 the_coord = (2.0f*tc) - vec2(1.0f, 1.0f);

	float d1 = length(the_coord - ee1);
	float d2 = length(the_coord - ee2);
	float d3 = length(the_coord - ee3);
	float d4 = length(the_coord - ee4);
	float d5 = length(the_coord - ee5);

	float l1 = min(d1, ELECTRON_RADIUS);
    float l2 = min(d2, ELECTRON_RADIUS);
    float l3 = min(d3, ELECTRON_RADIUS);
    float l4 = min(d4, ELECTRON_RADIUS);
    float l5 = min(d5, ELECTRON_RADIUS);
    
    float col_gray1 = step(l1, ELECTRON_RADIUS)*(ELECTRON_RADIUS - l1)/ELECTRON_RADIUS;
    float col_gray2 = step(l2, ELECTRON_RADIUS)*(ELECTRON_RADIUS - l2)/ELECTRON_RADIUS;
    float col_gray3 = step(l3, ELECTRON_RADIUS)*(ELECTRON_RADIUS - l3)/ELECTRON_RADIUS;
    float col_gray4 = step(l4, ELECTRON_RADIUS)*(ELECTRON_RADIUS - l4)/ELECTRON_RADIUS;
    float col_gray5 = step(l5, ELECTRON_RADIUS)*(ELECTRON_RADIUS - l5)/ELECTRON_RADIUS;

	float col_gray = step(length(the_coord), THE_SIZE)*(THE_SIZE - length(the_coord))/THE_SIZE;

	float final_col_gray = min(1.0f, col_gray + col_gray1 + col_gray2 + col_gray3 + col_gray4 + col_gray5);

	float rainbow_point = sin(timer*PI*2.0f/COLOR_PER)*0.5f + 0.5f;
	vec4 rainbow_col = texture(rainb, vec2(rainbow_point, 0.0f));

	vec3 final_col = get_col(final_col_gray, rainbow_col.xyz);

	return vec4(final_col, final_col_gray)*final_col_gray;
}



Текстура RAINB -- одномерная радуга.

Большие массивы текста нужно убирать в спойлер. BeeWen
Gadavre
UAC Sergeant Major
Next rank: UAC Sergeant Major after 60 points
700

Doom Rate: 1.24

Posts quality: +105
Ссылка на пост №835 Отправлено: 07.05.22 22:02:25
Как сделать чтобы из Шотгая после смерти не выпадал дробовик? Если сделать дробовик невидимым. то проблема решается, однако от взятия где либо дробовика придется отказаться. Как сделать чтобы невидимым становилось только выпавшее из моба оружие?
1
JSO x
UAC Sergeant Major
Next rank: Chief Petty Officer after 28 points
822

Doom Rate: 2.32

Posts quality: +348
Ссылка на пост №836 Отправлено: 07.05.22 22:58:19
Если порт, под который делается мод, относится к семейству *ZDoom -- то, по информации с ZDoom Wiki, достаточно прописать в монстра-замену свойство «DropItem "None"».

Actor MiserShotgunguy: Shotgunguy replaces Shotgunguy {
    DropItem "None"
}

Рейтинг сообщения: +1, отметил(и): Gadavre
1 5 1
Страница 42 из 42Перейти наверх Пред.  1, 2, 3 ... 40, 41, 42
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!-2