Editor, ещё во время видео ролика заметил блики на доспехе Артаса так что и оклюжен тоже завезли.
Оклюжн это немного другое. Блики это pbr карты: металл, роачнесс. Кстати с травой интересная тема. На некоторых постановочных кадрах она есть, но на геймплейном видео она отсутствует.
Может статься что и блики в итоге запекут просто в диффузку.
Куча игры с красками, которая отвлекает внимание и режет глаз. Когда в вц3 все просто и строго, легко для визуального восприятия и концентрации на игре.
И зачастую модмейкеры впихивают тонны импорта и 14к+ декораций в свои карты))
В итоге количество доступных на просторах интернета моделей изрядно просядет т.к. порог вхождения до уровня когда получаются приличные модели намного выше.
Для стимовской дотки же моделлеры быстро же подтянулись.
вообще геймплейные, не постановочные кадры выглядят как ск 2, с их убогими жесткими тенями и сомнительно водой. Постпроцессов бы для сочности. Ато выглядит ужасно сухо.
вот если поддержку fbx воткнут то мдливс навиг не нужен будет. Темболее что там нормал мапы и возможно пбр. (хотя больше похоже что кадры где пбр и травка на земле слегка фейковые)
Судя по графике игра работает на движке starcraft II.
Судя по тайловой природе террейна - не похоже на чистый ск2 движок, у него совсем другой террейн. А если подразумевается поддержка старых карт, то движок ск2 просто отпадает, ему такое практически невозможно скормить. Вполне возможно, что они поменяли рендер на современный, оставив начинку прежней.
Если даже джасс обертку и оставят, либо запилят конвертер, то половина карт отпадает, из-за того что половина Фитч в кастомках реализуется на костылях и багах, но это все можно пережить я думаю, так же как это было с ретурн багом.
Если у вас есть функция, по которой изменяется высота точек между центром кратера и его окончанием, то буду очень признателен.
Я имею ввиду проходиться минимальным радиусом, захватывая по одной вершинке, тогда проблем не будет, однако долго, для больших карт.
кстати получалось еще создавать почти идеальные круглые горки-плато
(вот /||||||||||\ такой формы).
С начало спавниш кратер вверх, затем вниз в той же точке, но меньшего радиуса. ( r2 = r1*0.8,d2 = d1*0.4 ) Такие горки могут быстро покрывать большие области, в отличие от обычных холмов, которые смешиваются непредсказуемо, периодически образуя горы до небес, превышая лимиты высот и образуя "черные дыры" .
а пока что на ровном местое генерировать через наработку xgm.guru/p/wc3/dungeongenerator на разные этажи хоть криво но терпимо.
Кстати, если карта в итоге должна представлять из себя некие этажи данжей, то тогда почему бы вообще не сделать готовые модель блоки типа "мост" и не мучать террейн?
К примеру делаешь модель которая имеет N анимаций.
Каждая анимация показывает разный тип блока который включает в себя пол и стены. Всю карту заполняешь блоками , затем через анимацию генеришь различные комнаты. Блоки это "не разрушаемая" декорация ( избавит от проблем рендера, когда центр декорации не попадает в камеру ).
Высота и текстура путей задается невидимыми "разрушаемыми" декорациями типа "мост" .
Vlod:
Почему неизвестна? Она поднимает или опускает попавшие в радиус вершинки на указанную высоту. Если пройтись по рельефу и сохранить высоты, то рельеф можно воссоздать. Единственная проблема это скорость.
Но на небольшом террейне вполне можно попытаться.
и генерирует которые есть данные и создает а не рандомный...
Даже в рандомном террейне можно по хорошему указать статичные ключевые точки: лагеря монстров, поселения людей и прочее.
К примеру реки и дороги в моем проекте хоть и рандомные но строятся между опорных точек, которые также спавняться рандомно, но учитывая нужные условия. Но ничего не мешает установить их фиксировано.
читать данные прямо в jass и генерировать например типо блокнотом
Ну теоретически можно пройтись по всей карте триггером, с проверками высоты и тайла, затем выгрузить это в текстовик. (получиться что то вроде карты высот)
Но для 100 процентной четкости нужно пройтись по каждому полику. Такая генерация займет много времени уже на средней карте. Но 32x32/64x64 можно попытаться.
Jack-of-shadow, свет буду печь я, только на отдельную карту теней,а то одних текстур будет мегабайт 200. Только я за созданием моделей засиделся, возможно с конкруса вылечу, отдельно выложу тогда
Второй ув сет mdx вроде как не держит, но можно конечно запечь текстуру теней низкого разрешения и заблендить в материале.
Но тогда нужно избегать повторение деталей на развертке
PT153
Немного поэкспериментировал с boolexpr, получилось создать массив функций для баффов через них, не используя даже кэш, раньше делал массив функций через массив триггеров с экзекутом + кеш, для прокачки и использования триггерных спеллов.
Есть конечно ограничение по кол-ву юнитов, но мне больше и не нужно.
Для непериодических баффов у меня были обычные жасовые функции с изменением нужных переменных героя, и аттач эфекта с таймером удаления.
Для остальных юзалась другая логика. В общем, не то что бы прям мешанина была, для большинства я тупо копировал шаблон и менял атрибуты.
Но столкнулся с проблемой что бафф может быть наложен дважды, и получался просто стак. Но минус в том что висели лишние эффекты.
А простая проверка на имеющийся бафф требовала нахождения таймера который уже мог быть запущен, то бишь нужно было хранить его хендл, а там еще всякие коллизии начинали возникать.
Поэтому захотелось все таки покурить структуры и придумать более изящный вариант.
Дык ты уже рассписал какраз все что тебе нужно. Юнит на которого применена способность - это GetSpellTargetUnit() или "Реакция на событие - Target unit of ability being cast" в триггерах.
Имеется ввиду шрифт на лоадскрине? Если руки дойдут то я картинку другую запилю в 1.03.
Последнее время очень редко удается добраться до варика, по этому релиз слегка затянулся. Но все же работа над улучшением проекта не стоит на месте. ссылка
» WarCraft 3 / Проблема с игрой по сети
» WarCraft 3 / Blizzcon: Анонсирован WarCraft III Reforged (remaster)
» WarCraft 3 / Blizzcon: Анонсирован WarCraft III Reforged (remaster)
Может статься что и блики в итоге запекут просто в диффузку.
Ред. Jack-of-shadow
» WarCraft 3 / Blizzcon: Анонсирован WarCraft III Reforged (remaster)
» WarCraft 3 / Blizzcon: Анонсирован WarCraft III Reforged (remaster)
» WarCraft 3 / Blizzcon: Анонсирован WarCraft III Reforged (remaster)
» WarCraft 3 / Blizzcon: Анонсирован WarCraft III Reforged (remaster)
В вов вроде просто хайки запекаются в диффуз, там нет нормал мап. Или уже есть?
Ред. Jack-of-shadow
» WarCraft 3 / Blizzcon: Анонсирован WarCraft III Reforged (remaster)
Ред. Jack-of-shadow
» WarCraft 3 / Blizzcon: Анонсирован WarCraft III Reforged (remaster)
Ред. Jack-of-shadow
» WarCraft 3 / Blizzcon: Анонсирован WarCraft III Reforged (remaster)
Ред. Jack-of-shadow
» WarCraft 3 / Как копировать данные ландшфат?
(вот /||||||||||\ такой формы).
С начало спавниш кратер вверх, затем вниз в той же точке, но меньшего радиуса. ( r2 = r1*0.8,d2 = d1*0.4 ) Такие горки могут быстро покрывать большие области, в отличие от обычных холмов, которые смешиваются непредсказуемо, периодически образуя горы до небес, превышая лимиты высот и образуя "черные дыры" .
Каждая анимация показывает разный тип блока который включает в себя пол и стены. Всю карту заполняешь блоками , затем через анимацию генеришь различные комнаты. Блоки это "не разрушаемая" декорация ( избавит от проблем рендера, когда центр декорации не попадает в камеру ).
Высота и текстура путей задается невидимыми "разрушаемыми" декорациями типа "мост" .
000 000 001 001 000 001
000 111 111 001 101 101
+ те же блоки с подъемами, лестницами и прочими вариациями.
Например:
Ред. Jack-of-shadow
» WarCraft 3 / Как копировать данные ландшфат?
Почему неизвестна? Она поднимает или опускает попавшие в радиус вершинки на указанную высоту. Если пройтись по рельефу и сохранить высоты, то рельеф можно воссоздать. Единственная проблема это скорость.
Но на небольшом террейне вполне можно попытаться.
» WarCraft 3 / Как копировать данные ландшфат?
К примеру реки и дороги в моем проекте хоть и рандомные но строятся между опорных точек, которые также спавняться рандомно, но учитывая нужные условия. Но ничего не мешает установить их фиксировано. Ну теоретически можно пройтись по всей карте триггером, с проверками высоты и тайла, затем выгрузить это в текстовик. (получиться что то вроде карты высот)
Но для 100 процентной четкости нужно пройтись по каждому полику. Такая генерация займет много времени уже на средней карте. Но 32x32/64x64 можно попытаться.
» WarCraft 3 / Как копировать данные ландшфат?
Ред. Jack-of-shadow
» Crazy Dwarf Race / Crazy Dwarf Race
Аххах мда, я тот ещё грамматей, с обновлением поправлю)
Ред. Jack-of-shadow
» Crazy Dwarf Race / Crazy Dwarf Race
» WarCraft 3 / Конкурс ландшафтов - XGM [Halloween]
Но тогда нужно избегать повторение деталей на развертке
» WarCraft 3 / Конкурс ландшафтов - XGM [Halloween]
Ред. Jack-of-shadow
» Crazy Dwarf Race / Crazy Dwarf Race
Ред. Jack-of-shadow
» Crazy Dwarf Race / Crazy Dwarf Race
WarCraft_Font
Snap_ITC_Font
» WarCraft 3 / Триггерный бафф
Немного поэкспериментировал с boolexpr, получилось создать массив функций для баффов через них, не используя даже кэш, раньше делал массив функций через массив триггеров с экзекутом + кеш, для прокачки и использования триггерных спеллов.
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
timer t = GetExpiredTimer( )
integer i = R2I(TimerGetRemaining(t)+0.5)
BUnitId = BUnitIdArray[i]
BDestroy = true
ForceEnumPlayers(BForce, BCode[BBuffIdArray[i]])
DestroyTimer (t)
}
t = CreateTimer()
TimerStart(t, I2R(b), false, null)
PauseTimer(t)
TimerStart(t, d, false, function BuffEnd )
ForceEnumPlayers (BForce, BCode[BBuffIdArray[b]])
}
integer id = unitid*BMax+buffid
BDestroy = false
BUnitId = unitid
BUnitIdArray [id] = unitid
BBuffIdArray [id] = buffid
BTimerEx(BTimer[id],id,time)
}
endlibrary
if BDestroy {
Msg("Buff1_Destroy"+" for unit "+I2S(BUnitId))
}else{
Msg("Buff1"+" for unit "+I2S(BUnitId))
}
return false
}
if BDestroy {
Msg("Buff2_Destroy"+" for unit "+I2S(BUnitId))
}else{
Msg("Buff2"+" for unit "+I2S(BUnitId))
}
return false
}
BuffIni(1,function Buff1)
BuffIni(2,function Buff2)
}
» WarCraft 3 / Триггерный бафф
Для остальных юзалась другая логика. В общем, не то что бы прям мешанина была, для большинства я тупо копировал шаблон и менял атрибуты.
Но столкнулся с проблемой что бафф может быть наложен дважды, и получался просто стак. Но минус в том что висели лишние эффекты.
А простая проверка на имеющийся бафф требовала нахождения таймера который уже мог быть запущен, то бишь нужно было хранить его хендл, а там еще всякие коллизии начинали возникать.
Поэтому захотелось все таки покурить структуры и придумать более изящный вариант.
Ред. Jack-of-shadow
» WarCraft 3 / Как сделать чтобы триггер узнавал на кого действует способность?
Ред. Jack-of-shadow
» Crazy Dwarf Race / Crazy Dwarf Race
» WarCraft 3 / Как повернуть кость Bone_Root