26

» WarCraft 3 / Blizzcon: Анонсирован WarCraft III Reforged (remaster)

prog:
Судя по графике игра работает на движке starcraft II.
Судя по тайловой природе террейна - не похоже на чистый ск2 движок, у него совсем другой террейн. А если подразумевается поддержка старых карт, то движок ск2 просто отпадает, ему такое практически невозможно скормить. Вполне возможно, что они поменяли рендер на современный, оставив начинку прежней.
Если даже джасс обертку и оставят, либо запилят конвертер, то половина карт отпадает, из-за того что половина Фитч в кастомках реализуется на костылях и багах, но это все можно пережить я думаю, так же как это было с ретурн багом.
26

» WarCraft 3 / Как копировать данные ландшфат?

Vlod:
Если у вас есть функция, по которой изменяется высота точек между центром кратера и его окончанием, то буду очень признателен.
Я имею ввиду проходиться минимальным радиусом, захватывая по одной вершинке, тогда проблем не будет, однако долго, для больших карт.

кстати получалось еще создавать почти идеальные круглые горки-плато
(вот /||||||||||\ такой формы).
С начало спавниш кратер вверх, затем вниз в той же точке, но меньшего радиуса. ( r2 = r1*0.8,d2 = d1*0.4 ) Такие горки могут быстро покрывать большие области, в отличие от обычных холмов, которые смешиваются непредсказуемо, периодически образуя горы до небес, превышая лимиты высот и образуя "черные дыры" .

а пока что на ровном местое генерировать через наработку xgm.guru/p/wc3/dungeongenerator на разные этажи хоть криво но терпимо.
Кстати, если карта в итоге должна представлять из себя некие этажи данжей, то тогда почему бы вообще не сделать готовые модель блоки типа "мост" и не мучать террейн?

К примеру делаешь модель которая имеет N анимаций.
Каждая анимация показывает разный тип блока который включает в себя пол и стены. Всю карту заполняешь блоками , затем через анимацию генеришь различные комнаты. Блоки это "не разрушаемая" декорация ( избавит от проблем рендера, когда центр декорации не попадает в камеру ).
Высота и текстура путей задается невидимыми "разрушаемыми" декорациями типа "мост" .
Вариации блоков:
000 111 111 111 101 101
000 000 001 001 000 001
000 111 111 001 101 101

1 это стена, 0 пол.
+ те же блоки с подъемами, лестницами и прочими вариациями.

Скрытый меш не нагружает рендер. То бишь запихнуть в одну модель тонну вариаций не страшно.
Например:
тут
за краями карты (центр модели смещен), стоят фейковые острова, которые на самом деле просто модель, которая имеет 15 анимаций, с разным мешем.
26

» WarCraft 3 / Как копировать данные ландшфат?

Vlod:
Почему неизвестна? Она поднимает или опускает попавшие в радиус вершинки на указанную высоту. Если пройтись по рельефу и сохранить высоты, то рельеф можно воссоздать. Единственная проблема это скорость.
Но на небольшом террейне вполне можно попытаться.
26

» WarCraft 3 / Как копировать данные ландшфат?

JMCode:
и генерирует которые есть данные и создает а не рандомный...
Даже в рандомном террейне можно по хорошему указать статичные ключевые точки: лагеря монстров, поселения людей и прочее.
К примеру реки и дороги в моем проекте хоть и рандомные но строятся между опорных точек, которые также спавняться рандомно, но учитывая нужные условия. Но ничего не мешает установить их фиксировано.
читать данные прямо в jass и генерировать например типо блокнотом
Ну теоретически можно пройтись по всей карте триггером, с проверками высоты и тайла, затем выгрузить это в текстовик. (получиться что то вроде карты высот)
Но для 100 процентной четкости нужно пройтись по каждому полику. Такая генерация займет много времени уже на средней карте. Но 32x32/64x64 можно попытаться.
26

» WarCraft 3 / Как копировать данные ландшфат?

JMCode:
PT153, Это я уже понял просто если было jass возможно читать данные рельефа который есть в статьях и создавать было бы не плохо!
26

» WarCraft 3 / Конкурс ландшафтов - XGM [Halloween]

darkowlom:
Jack-of-shadow, свет буду печь я, только на отдельную карту теней,а то одних текстур будет мегабайт 200. Только я за созданием моделей засиделся, возможно с конкруса вылечу, отдельно выложу тогда
Второй ув сет mdx вроде как не держит, но можно конечно запечь текстуру теней низкого разрешения и заблендить в материале.
Но тогда нужно избегать повторение деталей на развертке
26

» WarCraft 3 / Конкурс ландшафтов - XGM [Halloween]

psychosis:
Komkozavr:
psychosis, а ты успеешь к окончанию конкурса? Уже 23 число. Осталось 8 дней
Я не уверен, что успею к созданию атмосферы и разбить модель на несколько чтобы рендерилось в самом движке варе.
А так можно?) яб даже освещение запек, учитывая что тут все по 30+МБ на карту втапливают
26

» Crazy Dwarf Race / Crazy Dwarf Race

Evilsizer:
RenderEdge? Второй вариант выглядит веселее.
Заморочился, портанул лоадскрин сцену в анриал, хотя, да ейджем получилось бы практически то же самое наверно.
26

» Crazy Dwarf Race / Crazy Dwarf Race

Опрос: Так все таки какой шрифт лучше?
1. 
WarCraft_Font
2. 
Snap_ITC_Font
3. 
Другой

WarCraft_Font

Snap_ITC_Font


26

» WarCraft 3 / Триггерный бафф

PT153
Немного поэкспериментировал с boolexpr, получилось создать массив функций для баффов через них, не используя даже кэш, раньше делал массив функций через массив триггеров с экзекутом + кеш, для прокачки и использования триггерных спеллов.

Есть конечно ограничение по кол-ву юнитов, но мне больше и не нужно.
BuffLibrary
library BuffLib uses TextLib
globals
constant integer BMax = 50 Макслимальное бафов, 8192/UntitMax = BMax
boolexpr array BCode Функция бафа
timer array BTimer Таймер бафа
integer array BUnitIdArray ид юнита прикрепояемый к тайммеру
integer array BBuffIdArray ид бафа прикрепояемый к бафу
integer array BEffectArray ид эффекта прикрепояемого к бафу
boolean BDestroy = true аттрибут_функции_Удаления бафа
integer BUnitId = 0 аттрибут_функции_Ид юнита
force BForce = CreateForce()
endglobals
nothing BuffEnd (){
timer t = GetExpiredTimer( )
integer i = R2I(TimerGetRemaining(t)+0.5)
BUnitId = BUnitIdArray[i]
BDestroy = true
ForceEnumPlayers(BForce, BCode[BBuffIdArray[i]])
DestroyTimer (t)
}
nothing BTimerEx (timer t, integer b, real d){
t = CreateTimer()
TimerStart(t, I2R(b), false, null)
PauseTimer(t)
TimerStart(t, d, false, function BuffEnd )
ForceEnumPlayers (BForce, BCode[BBuffIdArray[b]])
}
nothing AddBuff (integer unitid, integer buffid, real time){
integer id = unitid*BMax+buffid
BDestroy = false
BUnitId = unitid
BUnitIdArray [id] = unitid
BBuffIdArray [id] = buffid
BTimerEx(BTimer[id],id,time)
}
nothing BuffIni (integer i, code c){ BCode[i] = Condition (c) }
endlibrary
BuffData
library BuffData uses BuffLib
boolean Buff1 (){
if BDestroy {
Msg("Buff1_Destroy"+" for unit "+I2S(BUnitId))
}else{
Msg("Buff1"+" for unit "+I2S(BUnitId))
}
return false
}
boolean Buff2 (){
if BDestroy {
Msg("Buff2_Destroy"+" for unit "+I2S(BUnitId))
}else{
Msg("Buff2"+" for unit "+I2S(BUnitId))
}
return false
}
nothing BCodeIni(){
BuffIni(1,function Buff1)
BuffIni(2,function Buff2)
}
endlibrary
Загруженные файлы
26

» WarCraft 3 / Триггерный бафф

Всем спасибо! По изучаю, что как работает.

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

» WarCraft 3 / Как сделать чтобы триггер узнавал на кого действует способность?

Дык ты уже рассписал какраз все что тебе нужно. Юнит на которого применена способность - это GetSpellTargetUnit() или "Реакция на событие - Target unit of ability being cast" в триггерах.
26

» Crazy Dwarf Race / Crazy Dwarf Race

NixEon:
Шрифт плохой, поменяйте
Имеется ввиду шрифт на лоадскрине? Если руки дойдут то я картинку другую запилю в 1.03.

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

» WarCraft 3 / Как повернуть кость Bone_Root

В проще всего в мдливсе создать новую рутовую кость, а старую привязать к ней. Далее создать глобальную и развернуть на сколько тебе надо.
26

» WarCraft 3 / Вращение свечения героя

В мдливсе каждую глоу плашку крепишь к своей кости. В свойствах кости ставишь галочку "синфазность" (или билборд в War3ModelEditor'e ).
26

» WarCraft 3 / Респаун разрушаемых декораций

Все с ними хорошо будет. Никуда не денутся, хоть сразу мертвыми создавай.
26

» WarCraft 3 / Где можно найти хорошие предметы?

1.Качаеш спелы со всех конкурсов.
  1. Качаеш спелы с батлов.
  2. Качаеш заклинания на заказ.
    Profit!
26

» WarCraft 3 / Удаление спецэффекта с null'евым путем к моделе

DracoL1ch:
да, игре похер, какой путь до модели, объект создается всегда
блин как то раньше об этом не задумывался, получается локальные спецефекты через пустую строку плодят утечки у остальных игроков..хмм

а хотя нет. эфект же всеравно будет удаляться потом (ну если по хорошему), тогда и у остальных удалиться как раз если не будет проблем с пустой строкой.
26

» WarCraft 3 / Видимость через декорацию

Dezard:
Кривой перевод как всегда. Мне как раз кстати обратный эффект нужен был, что бы подходя к деревьям вплотную можно было видеть противника дабы устраивать засады.
26

» WarCraft 3 / Оптимизация карты при большом количестве декораций

Dezard:
ну вот например тут на карте генерится 30 к декора и тормоза идут только от объектов в камере.
Кстати да, самый жесткий декор это тот по которому можно ходить, уже 100 объектов могут вызывать тормоза и ломать поиск путей у юнитов. Из-за этого пришлось целую систему проверки высот писать.

Кстати есть такая тема, что у декора анимации проигрываются только когда ты на них смотришь. Тобишь если ты хайдиш 12 к декора анимацией "death", и потом летаешь камерой по карте, то только в момент когда ты на них посмотришь анимация "death" и проиграется. По этому после сокрытия будут тормоза при первом попадении в камеру.
вот тут 22 к флагов насажал. И после сокрытия очень хорошо видно, что хайдится они начинают только при попадении в камеру.

С террейном тоже самое. Если сгенерировать терейн то будут черные дыры на каждом полике, пока один раз не попадут в камеру и не отрендерятся.
Загруженные файлы
26

» WarCraft 3 / Оптимизация карты при большом количестве декораций


Dezard:
Разницы с видимым декором вообще никакой. Такие же просадки фпс начинаются.
По идее не должно. В примере 2 к флагов в одной точке вызывают жуткие лаги. После скрытия все тормоза пропадают. Возможно проблема в анимации твоих моделей. (например если в анимации объект скрывается только прозрачностью материала)

Я своем проекте как раз использую сокрытие мелкого декора и источников освещения, как настройку для занижения графики. Прирост производительности получается довольно ощутимый.
Загруженные файлы
26

» WarCraft 3 / Оптимизация карты при большом количестве декораций

DracoL1ch:
Разве локальное проигрывание анимаций вызывает десник у декора? Всегдаж работало вроде, исключение декор с галочкой "можно пройти" при триггерной проверке высоты на нем.
26

» WarCraft 3 / Карта размером в 2048х2048?

Нет, есть лимит. И даже если каким то волшебством его удастся превысить, то скорее всего у юнитов будут проблемы с поиском путей. В конце концов можно уменьшить модели в 2-3 раза. Но раз уж ты моделиш сам, с нуля, то не майся фигней, качай анриал, или уж юнити на крайняк, и радуйся жизни.