UDMF формат позволяет делить 1 обычный мапюнит еще на 1000, что дает мега возможности для зашкварной детализации на стенах, да и на полу наверное. Как вы думаете хорошо ли это для движка?
Нет. В OpenGL появляются несуществующие треугольники из-за этого, а в софте slime trail'ы. В моей простейшей карте к joy of mapping 3 пустые треугольники возникали раз 5, чисто из-за использования вертексов не по сетке 1х1.
Всем доброго! вернусь к тебе экспорта карт... карту смог экспортировать, а текстуры как поставить на нужное место не знаю. буду очень благодарен, если поможете.
Всем доброго! вернусь к тебе экспорта карт... карту смог экспортировать, а текстуры как поставить на нужное место не знаю. буду очень благодарен, если поможете.
Вопрос из разряда "У меня вад не запускается помогите". Где подробности? Какой редактор юзаешь?
TesaQ:
как сделать так, чтобы звук проигрался следом за другим в саундинфо(только 1 раз, без цикла), без склеивания в редакторах звуковых
Смотря за что речь. Если ты за эмбиэнт звук на карте, то лучше через ACS травить. А если это звук у монстра/оружия, то в декорейте (помимо саундинфо) пропиши этот единичный звук один раз без цикла
Там в окошке же "Export to Wavefront .obj" есть пункт "Export textures". В самом низу.
Вот снимок подобного экспорта: Карта E1M1 из Ultimate Doom в Blender'е
было бы так просто, это не сущность, а звуки мира, то есть, открытие/закрытие дверей, лифт и прочее.
Без подробностей непонятно.
А сухая теория - все саунд сиквенсы делаются очень хорошо в ACS. Ставишь на дверь Mapspot с тэгом, саму дверь отмечаешь тем же самым тэгом и на него вешаешь скрипт, где проигрываешь какие угодно звуки, которые игра может загрузить из вада. После чего на дверь вешаешь не какой-нибудь action "202" (Door Generic) а action "80" (ACS Script Execute), где прописываешь сначала экшен открытия двери (физическую суть) и на него вешаешь звук, который будет играть mapspot. И тогда при открытии двери будет тебе играться что угодно и сколько угодно раз. С loop'ом и без него.
Ок. Это покажется сложным, но на самом деле все просто, куча текста может сбить с толку, не пугайся. Тогда твой код должен быть таким:
Скрытый текст:
#include "zcommon.acs"
script 1 (int doorTag, int soundTag) {
Ceiling_MoveToValue(doorTag, A, B, C);
PlaySound(soundTag, "doors/dr1_open");
Delay(210);
Ceiling_MoveToValue(doorTag, D, E, F);
PlaySound(soundTag, "doors/dr1_clos");
PlaySound(soundTag, "тот_второй_звук_что_ты_хочешь_вставить");
}
Как это работает:
У тебя есть дверь. Прямо в его проем ставим объект "9001" или Mapspot. Он будет играть звуки, которые указаны в скрипте. К нему еще вернемся.
Ceiling_Move - это движение потолка. Этим "потолком" выступит твоя дверь. Без Mapspot дверь будет открываться без звуков вообще.
Doortag - его тэг (обязательно на саму дверь назначь тот же тэг).
"A" - скорость открытия (16 - стандарт)
"B" - абсолютная высота. То есть это высота прямо в редакторе. Надо, чтобы дверь поднялась до уровня "107" - значит пишешь "107", а не считаешь калькулятором разницу и прочее.
"C" - значение абсолютной высоты. Она бывает положительная "+107" и отрицательная "-107". Игра должна это понимать. Если у нас +107, то C=0. Если у нас -107, то C=1.
PlaySound - это звук, который будет играть MapSpot. Скрипт позволяет на него назначить можно любой тэг, но в твоем случае логично ставить тот же тэг, что и у двери. У MapSpot должен быть опять тот же тэг.
Delay - это пауза. Обязательно нужен Delay, иначе скрипт будет работать криво (попытается открыть и закрыть дверь одновременно). 210 - это стандартный промежуток для дверей или лифтов.
Потом снова Ceiling_Move - ставишь туда же значения высоты, когда дверь "закрыта" (т.е. чтобы потолок опять прижался к полу).
Потом играет звук закрытия двери и потом играет твой звук второй следом.
Если что, я могу тебе устроить мини-вад-представление, только скинь свои звуки, которые будешь использовать, чтобы тебе было легче потом интегрировать в свою карту.
Fantom черт, не думал что всё так сложнее, я всего лишь хотел повторить старый баг в psx doom'e
а сильно ли это будет нагружать карту, если таких дверей будет много?просто я не знаю, насколько оптимизирован ацс
TesaQ, сама карта будет вести себя как и при обычных дверях. Но без ложки дегтя не обойдется, к сожалению - на разные двери нельзя использовать "один" скрипт. Даже если двери на одной и той же высоте. В противном случае если открыть одну дверь, то вторая не откроется, пока не закроется первая. Так что придется дублировать одинаковые скрипты, давая им разные нумерации.
Fantom ох ты боже мой, я случайно нашел решение своей проблемы, хотя рылся в gzdoom.pk3 совсем по другим делам.Нашел там файл sndsqnc, точно не помню как называется, но благодаря этой штуке можно манипулировать звуками дверей, это точно, я сделал так как хотел.И вот я думаю, или это с новой версии гоззы, просто не верю, что такой знаток ацс мог не знать этого
TesaQ, я работал с sndsqnc. В моем проекте он не смог мне помочь - он не обладал нужными производственными силами.
Твой вопрос был схож (пусть и отдаленно) с моими старыми наработками, поэтому я уже даже на sndsqnc не стал смотреть. Тем не менее, что ж - я просчитался) Хорошо, что удалось найти решение
Fantom знаешь, все же стоило рассчитывать как альтернативу, чтобы обойтись без этой ложочки "дёгтя", по сути, через delay и на следующей строчке play "звук" все работает отлично.только если поставить больше 14 тиков, то почему-то не работает, но больше и не надо.
худмесседж умеет печатать текст по буквам через HUDMSG_TYPEON и когда он исчезает, он затухает.
а можно сделать нормальным способом, чтобы он убирался так же, как и появлялся? путем стирания по одной букве